| 
						 | 
						using Dapper;using Newtonsoft.Json.Converters;using Newtonsoft.Json;using Npgsql;using NPOI.SS.Formula.Functions;using System;using System.Collections.Generic;using System.Data.Common;using System.Linq;using System.Net.Http.Headers;using System.Text;using System.Threading.Tasks;using System.Text.RegularExpressions;using Shentun.Peis.PatientRegisters;using Shentun.Peis.PersonnelTypes;using Shentun.Peis.MedicalTypes;using Shentun.Peis.CustomerOrgs;using Shentun.Peis.CustomerOrgGroups;using Shentun.Peis.CustomerReports;using Shentun.Peis.CustomerOrgGroupDetails;using Shentun.Peis.CustomerOrgRegisters;using Shentun.Peis.Enums;using Shentun.Peis.Patients;using Shentun.Peis.PlugIns.PatientRegisters;using Shentun.Peis.PlugIns.ImportPacsResults;
namespace Shentun.Peis.PlugIns.Extensions.PatientRegisters.Qztl{    public class ImportPatientRegisterPlugInsQztl : ImportPatientRegisterPlugInsBase    {        private Guid _importCustomerOrgId;        private string _hospitalId;        private string _aesKEY;        private string _year;        private CustomerOrgDto _customerOrgDto;        private CustomerOrgRegisterDto _customerOrgRegisterDto;        private List<PersonnelTypeDto> _personnelTypes;        private List<CustomerOrgGroupDto> _customerOrgGroupDtos;        private string _answerWebApiUrl;
        public ImportPatientRegisterPlugInsQztl(Guid thirdInterfaceId) : base(thirdInterfaceId)        {
        }        public ImportPatientRegisterPlugInsQztl(string parmValue) : base(parmValue)        {
        }
        public override async Task ImportAsync()        {            await LoginAsync();            await InitAsync();
            var qztlPatientRegisterFromInterface = await CallInterfaceServiceAsync();            if (qztlPatientRegisterFromInterface == null || !qztlPatientRegisterFromInterface.plans.Any())            {                return;            }
            //设置导入人员信息
            foreach (var patient in qztlPatientRegisterFromInterface.plans)            {                try                {                    //婚姻状况
                    var maritalStatusId = ConvertMaritalStatus(patient.wedding);                    //人员类别
                    var personnelType = ConvertPersonnelType(patient.tjJieduan);                    //性别
                    var sexId = ConvertSex(patient.sex);                    //体检类别
                    var medicalTypeName = patient.tjpcV;                    MedicalTypeDto medicalTypeDto = null;                    if (!string.IsNullOrWhiteSpace(medicalTypeName))                    {                        medicalTypeDto = await CallAppServiceAsync<DisplayNameInputDto, MedicalTypeDto>(                       "api/app/MedicalType/GetByDisplayName", new DisplayNameInputDto() { DisplayName = medicalTypeName });                        if (medicalTypeDto == null)                        {                            var createMedicalTypeDto = new CreateMedicalTypeDto()                            {                                DisplayName = medicalTypeName,                            };                            medicalTypeDto = await CallAppServiceAsync<CreateMedicalTypeDto, MedicalTypeDto>(                            "api/app/medical-type", new CreateMedicalTypeDto() { DisplayName = medicalTypeName });                        }                    }                    //职称
                    var jobTitle = ConvertJobTitle(patient.gradeZwV);                    //职务
                    var jobPost = ConvertJobPost(patient.tjTab1);                    string workTypeV = patient.workTypeV;                    if (string.IsNullOrWhiteSpace(workTypeV))                    {                        workTypeV = "";                    }                    else                    {                        workTypeV = "," + workTypeV;                    }                    jobPost = jobPost + workTypeV;                    if (!string.IsNullOrWhiteSpace(jobPost) && jobPost.Length >= 10)                    {                        jobPost = jobPost.Substring(0, 10);//只能存储10个汉字
                    }
                    //查找子单位是否存在,如存在获取子单位id,如果不存在这创建子单位
                    var orgName = patient.orgName;                    var pos = orgName.IndexOf("_");                    orgName = orgName.Substring(0, pos);                    if (string.IsNullOrWhiteSpace(patient.mobile))                    {                        //青海省第五人民医院要强行设置为 11111111111
                    }                    var customerOrgDtos = await CallAppServiceAsync<CustomerOrgIdInputDto, List<CustomerOrgDto>>(                       "api/app/CustomerOrg/GetChildCustomerOrgsById",                       new CustomerOrgIdInputDto() { CustomerOrgId = _importCustomerOrgId });                    CustomerOrgDto customerOrgDto = null;                    if (customerOrgDtos != null && customerOrgDtos.Any())                    {                        customerOrgDto = customerOrgDtos.Where(o => o.DisplayName == orgName).FirstOrDefault();                    }                    if (customerOrgDto == null)                    {                        customerOrgDto = await CallAppServiceAsync<CreateCustomerOrgDto, CustomerOrgDto>(                      "api/app/customerorg/create", new CreateCustomerOrgDto()                      {                          MedicalCenterId = _customerOrgDto.MedicalCenterId,                          ParentId = _importCustomerOrgId,                          DisplayName = orgName,                          ShortName = orgName,                          IsActive = 'Y',                          IsLock = 'Y'                      });                    }                    CustomerOrgGroupDto customerOrgGroupDto;                    if (patient.ifFj == 1)                    {                        //复检
                        //加载单位分组信息
                        _customerOrgGroupDtos = await CallAppServiceAsync<Guid, List<CustomerOrgGroupDto>>(                            "api/app/customer-org-group/in-customer-org-id/" + _importCustomerOrgId.ToString()                            , Guid.Empty, "get");                        customerOrgGroupDto = _customerOrgGroupDtos.Where(o => o.DisplayName == "复检").FirstOrDefault();                        if (customerOrgGroupDto == null)                        {                            throw new Exception("没有复检这个分组");                        }                    }                    else                    {                        List<string> groupNames = new List<string>();                        if (patient.ifGy == 1)                        {                            groupNames.Add("高原");                        }                        else if (patient.ifJk == 1)                        {                            groupNames.Add("健康");                        }                        else                        {                            throw new Exception("分组名称必须是高原或健康体检二选一");                        }                        if (patient.ifGt == 1)                        {                            groupNames.Add("高铁");                        }                        if (patient.ifWh == 1)                        {                            groupNames.Add("职害");                        }                        if (patient.ifCw == 1)                        {                            groupNames.Add("普速");                        }                        if (patient.ifMain == 1)                        {                            groupNames.Add("行车");                        }                        if (patient.ifCy == 1)                        {                            groupNames.Add("从业");                        }                        customerOrgGroupDto = await GetCustomerOrgGroup(groupNames, sexId, maritalStatusId);                    }                    //获取病人ID
                    var patientRegister = new CreatePatientRegisterDto()                    {                        MedicalCenterId = _customerOrgDto.MedicalCenterId,                        //PatientRegisterId = null,
                        //PatientId = null,
                        IsMaxMedicalTimes = 'Y',                        CompleteFlag = '0',                        CustomerOrgId = customerOrgDto.Id,                        CustomerOrgRegisterId = _customerOrgRegisterDto.Id,                        CustomerOrgGroupId = customerOrgGroupDto.Id,                        PatientName = patient.personName,                        SexId = sexId,                        Age = patient.age,                        MaritalStatusId = maritalStatusId,                        MobileTelephone = patient.mobile,                        Planuserid = patient.id.ToString(),                        IdNo = patient.cardId,                        //PersonnelTypeId = personnelType.Id,
                        JobTitle = jobTitle,                        Remark = patient.remark,                        JobPost = jobPost,                        Remark2 = patient.tjOpinion,                        Remark3 = patient.fjOpinion,                        QztlIsFj = patient.ifFj == 1 ? 'Y' : 'N',                        QztlIsGt = patient.ifGt == 1 ? 'Y' : 'N',                        QztlIsWh = patient.ifWh == 1 ? 'Y' : 'N',                        QztlIsCw = patient.ifCw == 1 ? 'Y' : 'N',                        QztlIsMain = patient.ifMain == 1 ? 'Y' : 'N',                        QztlIsCy = patient.ifCy == 1 ? 'Y' : 'N',                        IsQztlImport = 'Y'                    };
                    if (!string.IsNullOrWhiteSpace(patient.cardId))                    {                        var patientInfo = await CallAppServiceAsync<IdNoInputDto, PatientDto>(                                   "api/app/patient/GetByIdNo",                                      new IdNoInputDto()                                      {                                          IdNo = patient.cardId                                      });                        if (patientInfo != null)                        {                            patientRegister.PatientId = patientInfo.Id;                        }
                    }
                    if (medicalTypeDto != null)                    {                        patientRegister.MedicalTypeId = medicalTypeDto.Id;                    }                    if (personnelType != null)                    {                        patientRegister.PersonnelTypeId = personnelType.Id;                    }                    if (patient.ifGy == 1)                    {                        patientRegister.QztlType = '0';                    }                    else if (patient.ifJk == 1) { }                    {                        patientRegister.QztlType = '1';                    }                    patientRegister.RegisterCheckAsbitems = new List<CreatePatientRegisterRegisterCheckAsbitem>();                    //获取分组信息
                    var customerOrgGroupDetailOrAsbitemDtos = await CallAppServiceAsync<Guid, List<CustomerOrgGroupDetailOrAsbitemDto>>(                            "api/app/customerorggroupdetail/getcustomerorggroupdetailinasbitem?CustomerOrgGroupId=" + customerOrgGroupDto.Id.ToString()                            , Guid.Empty, "get");                    if (!customerOrgGroupDetailOrAsbitemDtos.Any())                    {                        throw new Exception("分组未包含项目");                    }                    foreach (var asbitem in customerOrgGroupDetailOrAsbitemDtos)                    {                        patientRegister.RegisterCheckAsbitems.Add(new CreatePatientRegisterRegisterCheckAsbitem()                        {                            AsbitemId = asbitem.AsbitemId,                            StandardPrice = asbitem.Price,                            ChargePrice = asbitem.CustomerOrgGroupDetailPrice,                            PayTypeFlag = '1',                            IsCharge = 'N',                            Amount = asbitem.CustomerOrgGroupDetailAmount                        });                    }                    await CallAppServiceAsync<CreatePatientRegisterDto, object>(                      "api/PatientRegister/CreatePatientRegister",                      patientRegister);
                    var succesIds = new List<string>();                    var deleteIds = new List<string>();                    succesIds.Add(patientRegister.Planuserid);                    await AnswerOk(succesIds, deleteIds);                }
                catch (Exception ex)                {
                    if (ex.Message.Contains("人员信息姓名和性别和原来的信息都不一致") ||                        ex.Message.Contains("身份证号解析出的性别与填入的性别不一致"))                    {                        continue;                    }
                    else                    {                        throw ex;                    }                }            }
        }
        public async Task InitAsync()        {            var customerOrgIdStr = InterfaceConfig.GetSection("Interface").GetSection("单位编号").Value;            _hospitalId = InterfaceConfig.GetSection("Interface").GetSection("HospitalId").Value;            _aesKEY = InterfaceConfig.GetSection("Interface").GetSection("aesKEY").Value;            _answerWebApiUrl = InterfaceConfig.GetSection("Interface").GetSection("AnswerWebApiUrl").Value;            if (string.IsNullOrWhiteSpace(customerOrgIdStr))            {                return;            }            if (!Guid.TryParse(customerOrgIdStr, out _importCustomerOrgId))            {                throw new Exception("单位编号不正确");            }            if (string.IsNullOrWhiteSpace(_hospitalId))            {                throw new Exception("HospitalId参数不能为空");            }            if (string.IsNullOrWhiteSpace(_aesKEY))            {                throw new Exception("_aesKEY参数不能为空");            }            using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))            {                string sql;                sql = @"
                      SELECT id as  customer_org_id,                             display_name as customer_org_name,                             parent_id ,                             path_code                      from                       customer_org                       where id = @CustomerOrgId                      ";
                var customerOrgForPlugInss = (await conn.QueryAsync<CustomerOrgForPlugIns>(sql,                    new { CustomerOrgId = _importCustomerOrgId })).FirstOrDefault();
                if (customerOrgForPlugInss == null)                {                    throw new Exception("单位编号不正确,找不到单位");                }
                var year = customerOrgForPlugInss.CustomerOrgName.Substring(                    customerOrgForPlugInss.CustomerOrgName.Length - 5                    , 4);                if (!int.TryParse(year, out var yearNumber))                {                    throw new Exception("单位名称必须是以2000年这样的格式结尾");                }                if (yearNumber < 2024 || yearNumber > 2050)                {                    throw new Exception("单位名称年限范围必须在2024-2050之间");                }
                _year = year;            }            //加载单位信息
            _customerOrgDto = await CallAppServiceAsync<CustomerOrgIdInputDto, CustomerOrgDto>(                "api/app/CustomerOrg/GetById", new CustomerOrgIdInputDto()                {                    CustomerOrgId = _importCustomerOrgId,                });            //加载单位登记信息
            _customerOrgRegisterDto = await CallAppServiceAsync<CustomerOrgIdInputDto, CustomerOrgRegisterDto>(                "api/app/CustomerOrgRegister/GetLastCustomerOrgRegisterByCustomerOrgId", new CustomerOrgIdInputDto()                {                    CustomerOrgId = _importCustomerOrgId,                });            //加载人员类别列表
            _personnelTypes = await CallAppServiceAsync<string, List<PersonnelTypeDto>>("api/app/PersonnelType/GetAll", "");        }
        public async Task<List<PatientRegisterQztl>> GetPatientRegisterByCustomerOrgRegisterIdWithIdNo(Guid customerOrgRegisterId ,string idNo)        {            using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))            {                string sql;                sql = @"
                     SELECT *                     from patient_register,patient_register_exter                     where patient_register.patient_register_id = patient_register_exter.patient_register_id and                      customer_org_register_id =@CustomerOrgRegisterId and                      id_no =@IdNo                      ";
                var patientRegisters = (await conn.QueryAsync<PatientRegisterQztl>(sql,                    new { CustomerOrgRegisterId = customerOrgRegisterId,IdNo = idNo })).ToList();                return patientRegisters;            }        }        public async Task<QztlPatientRegisterFromInterface?> CallInterfaceServiceAsync()        {            string baseAddress = InterfaceWebApiUrl;            string ary = "HospitalId=" + _hospitalId + (char)38 + "year=" + _year + (char)38 + "AesKey=" + _aesKEY;            baseAddress = baseAddress + ary;            using (var httpClientHandler = new HttpClientHandler())            {                using (var httpClient = new HttpClient(httpClientHandler))                {                    httpClient.BaseAddress = new Uri(baseAddress);
                    httpClient.DefaultRequestHeaders.Accept.Add(                      new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));//设置accept标头,告诉JSON是可接受的响应类型
                    //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _accesToken);
                    IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();                    timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";                    //var sendData = JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.Indented, timeFormat);
                    using (HttpContent httpContent = new StringContent(""))                    {                        httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");                        HttpResponseMessage response = await httpClient.GetAsync("");                        string result;                        if (!response.IsSuccessStatusCode)                        {                            result = response.Content.ReadAsStringAsync().Result;                            throw new Exception("http通信错误:" + response.StatusCode + ",结果:" + result);                        }                        result = await response.Content.ReadAsStringAsync();
                        result = result.Replace(":\"[{", ":[{").Replace("}]\"", "}]").Replace("\\", "");                        if (result.IndexOf("status") < 0)                        {                            throw new Exception($"调用WebApi中无status,返回值:" + result);                        }                        QztlPatientRegisterFromInterface? resultDto = JsonConvert.DeserializeObject<QztlPatientRegisterFromInterface>(result);                        if (resultDto != null)                        {                            if (resultDto.status != 0)                            {                                throw new Exception($"调用WebApi失败,返回错误,消息:" + resultDto.status + resultDto.errorMsg);                            }                            //插入数据库中备份
                            using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))                            {                                string sql;                                var qztlImportDataEntity = new QztlImportDataEntity()                                {                                    Id = Guid.NewGuid(),                                    Data = result,                                    DataType = '0',                                    IsComplete = 'Y',                                    CreationTime = DateTime.Now,                                };
                                sql = @"insert into qztl_import_data(id, data, data_type, is_complete,creation_time) 
                             values(@Id, @Data, @DataType, @IsComplete,@CreationTime)";
                                conn.Execute(sql, qztlImportDataEntity);
                            }                            return resultDto;                        }                        return null;                    }
                }            }        }
        public char ConvertMaritalStatus(int maritalStatus)        {
            switch (maritalStatus)            {                case 1:                    return '0';                case 2:                    return '1';                case 3:                    return '4';                default:                    return '9';            }        }
        public char ConvertSex(int sex)        {
            switch (sex)            {                case 1:                    return 'M';                case 2:                    return 'F';                default:                    return 'U';            }        }
        public string ConvertJobPost(string jobPost)        {            if (string.IsNullOrWhiteSpace(jobPost))            {                return "";            }            switch (jobPost)            {                case "0":                    return "普通成员";                case "1":                    return "班子成员";                default:                    return "";            }        }        public string ConvertJobTitle(string jobTitle)        {            if (string.IsNullOrWhiteSpace(jobTitle))            {                return "无";            }            switch (jobTitle)            {                case "0":                    return "无";                case "1":                    return "科员";                case "2":                    return "副科";                case "3":                    return "正科";                case "4":                    return "副处";                case "5":                    return "正处";                case "6":                    return "副局";                case "7":                    return "正局";                default:                    return "无";            }        }
        public PersonnelTypeDto ConvertPersonnelType(int personnelType)        {            string personnelTypeName;            switch (personnelType)            {                case 1:                    personnelTypeName = "岗前";                    break;                case 2:                    personnelTypeName = "岗中";                    break;                case 3:                    personnelTypeName = "岗后";                    break;                default:                    personnelTypeName = "";                    break;            }            if (string.IsNullOrWhiteSpace(personnelTypeName))            {                return null;            }            var personnelTypeDto = _personnelTypes.Where(o => o.DisplayName == personnelTypeName).FirstOrDefault();            return personnelTypeDto;        }
        public async Task<CustomerOrgGroupDto> GetCustomerOrgGroup(List<string> goupNames, char sexId, char maritalStatusId)        {            string sexName = "";            if (sexId == 'M')            {                sexName = "男";            }            else if (sexId == 'F')            {                sexName = "女";            }            string groupName = "";            for (var i = 0; i < goupNames.Count; i++)            {                if (i == 0)                {                    groupName = goupNames[i];                }                else                {                    groupName += goupNames[i];                }            }            string maritalStatusName;            if (maritalStatusId == '0')            {                maritalStatusName = "未婚";            }            else            {                maritalStatusName = "已婚";            }            if (sexName == "女")            {                groupName += maritalStatusName + sexName;            }            else            {                groupName += sexName;            }
            _customerOrgGroupDtos = await CallAppServiceAsync<Guid, List<CustomerOrgGroupDto>>(               "api/app/customer-org-group/in-customer-org-id/" + _importCustomerOrgId.ToString()               , Guid.Empty, "get");            var customerOrgGroup = _customerOrgGroupDtos.Where(o => o.DisplayName == groupName).FirstOrDefault();            if (customerOrgGroup != null)            {                return customerOrgGroup;            }            //-------------自动创建分组
            //检测有没有单个分组
            string existGroupName = "";            var createCustomerOrgGroupWithDetailDto = new CreateCustomerOrgGroupWithDetailDto()            {                IsMaxMedicalTimes = 'Y',                CustomerOrgId = _importCustomerOrgId,                DisplayName = groupName,                ForSexId = sexId,                AgeLowerLimit = 0,                AgeUpperLimit = 200,                MaritalStatusId = 'A'            };            for (var i = 0; i < goupNames.Count; i++)            {                if (i == 0)                {                    if (sexName == "女")                    {                        existGroupName = goupNames[i] + maritalStatusName + sexName;                    }                    else                    {                        existGroupName = goupNames[i] + maritalStatusName + sexName;                    }                }                else                {                    existGroupName = goupNames[i];                }
                _customerOrgGroupDtos = await CallAppServiceAsync<Guid, List<CustomerOrgGroupDto>>(                         "api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=" + _importCustomerOrgId.ToString()                                 , Guid.Empty, "get");                customerOrgGroup = _customerOrgGroupDtos.Where(o => o.DisplayName == existGroupName).FirstOrDefault();                if (customerOrgGroup == null)                {                    throw new Exception($"分组名{existGroupName}不存在");                }
                var customerOrgGroupDetailOrAsbitemDtos = await CallAppServiceAsync<Guid, List<CustomerOrgGroupDetailOrAsbitemDto>>(                           "api/app/customerorggroupdetail/getcustomerorggroupdetailinasbitem?CustomerOrgGroupId=" + customerOrgGroup.Id.ToString()                       , Guid.Empty, "get");
                foreach (var customerOrgGroupDetailOrAsbitemDto in customerOrgGroupDetailOrAsbitemDtos)                {                    if (!createCustomerOrgGroupWithDetailDto.Details.                         Where(o => o.AsbitemId == customerOrgGroupDetailOrAsbitemDto.AsbitemId).ToList().Any())                    {                        createCustomerOrgGroupWithDetailDto.Details.Add(new CreateCustomerOrgGroupDetail_Detail()                        {                            AsbitemId = customerOrgGroupDetailOrAsbitemDto.AsbitemId,                            Amount = customerOrgGroupDetailOrAsbitemDto.CustomerOrgGroupDetailAmount,                            Price = customerOrgGroupDetailOrAsbitemDto.Price,                        });                    }
                }            }            customerOrgGroup = await CallAppServiceAsync<CreateCustomerOrgGroupWithDetailDto, CustomerOrgGroupDto>(               "api/app/CustomerOrgGroup/CreateCustomerOrgGroupWithDetail", createCustomerOrgGroupWithDetailDto);            return customerOrgGroup;        }
        public async Task AnswerOk(List<string> successIds, List<string> deleteIds)        {            if (successIds == null || deleteIds == null)            {                return;            }
            if (successIds.Count == 0 && deleteIds.Count == 0)            {                return;            }            string successIdStr = "";            for (var i = 0; i < successIds.Count; i++)            {                if (i == 0)                {                    successIdStr = successIds[i];                }                else                {                    successIdStr += "," + successIds[i];                }            }            string deleteIdStr = "";            for (var i = 0; i < deleteIds.Count; i++)            {                if (i == 0)                {                    deleteIdStr = deleteIds[i];                }                else                {                    deleteIdStr += "," + deleteIds[i];                }            }            string baseAddress = _answerWebApiUrl;// "http://62.156.10.237:8005/health/values/SetPlanOK?";
            string ary = "HospitalId=" + _hospitalId + (char)38 +                  "ids=" + successIdStr + (char)38 + "delids=" + deleteIdStr + (char)38 + "AesKey=" + _aesKEY;            baseAddress = baseAddress + ary;            using (var httpClientHandler = new HttpClientHandler())            {                using (var httpClient = new HttpClient(httpClientHandler))                {                    httpClient.BaseAddress = new Uri(baseAddress);
                    httpClient.DefaultRequestHeaders.Accept.Add(                      new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));//设置accept标头,告诉JSON是可接受的响应类型
                    //httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _accesToken);
                    IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();                    timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";                    //var sendData = JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.Indented, timeFormat);
                    using (HttpContent httpContent = new StringContent(""))                    {                        httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");                        HttpResponseMessage response = await httpClient.GetAsync("");                        string result;                        if (!response.IsSuccessStatusCode)                        {                            result = response.Content.ReadAsStringAsync().Result;                            throw new Exception("http通信错误:" + response.StatusCode + ",结果:" + result);                        }                        result = await response.Content.ReadAsStringAsync();
                        result = result.Replace(":\"[{", ":[{").Replace("}]\"", "}]").Replace("\\", "");                        if (result.IndexOf("更新ok") >= 0 || result.IndexOf("更新OK") >= 0 || result.IndexOf("更新Ok") >= 0)                        {                            return;                        }                        dynamic? resultDto = JsonConvert.DeserializeObject(result);                        if (resultDto != null)                        {                            if (resultDto.status != 0)                            {                                throw new Exception($"调用WebApi失败,返回错误,消息:" + resultDto.status + resultDto.errorMsg);                            }                            //插入数据库中备份
                            using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))                            {                                string sql;                                var qztlImportDataEntity = new QztlImportDataEntity()                                {                                    Id = Guid.NewGuid(),                                    Data = result,                                    DataType = '0',                                    IsComplete = 'Y',                                    CreationTime = DateTime.Now,                                };
                                sql = @"insert into qztl_import_data(id, data, data_type, is_complete,creation_time) 
                             values(@Id, @Data, @DataType, @IsComplete,@CreationTime)";
                                conn.Execute(sql, qztlImportDataEntity);
                            }                            return;                        }                        return;                    }
                }            }        }    }}
  |