Exemplo n.º 1
0
        public ApiJsonResultData Icd10BatchUpload([FromBody] UiBaseDataParam param)
        {
            return(new ApiJsonResultData(ModelState, new UiInIParam()).RunWithTry(y =>
            {
                var userBase = webServiceBasicService.GetUserBaseInfo(param.UserId);
                userBase.TransKey = param.TransKey;
                var dataList = new List <Icd10PairCodeDataParam>();

                //基层
                var queryDataNew = _sqlSugarRepository.QueryICD10PairCode();
                var queryData = queryDataNew.Where(c => c.IsDelete == false && c.State == 0).ToList();
                if (queryData.Any())
                {
                    dataList = queryData.Select(d => new Icd10PairCodeDataParam
                    {
                        DiseaseId = d.DiseaseId,
                        ProjectName = d.ProjectName,
                        ProjectCode = d.ProjectCode
                    }).ToList();
                }

                if (dataList.Any())
                {
                    int a = 0;
                    int limit = 400; //限制条数
                    int num = dataList.Count;
                    var count = Convert.ToInt32(num / limit) + ((num % limit) > 0 ? 1 : 0);
                    var idList = new List <string>();
                    while (a < count)
                    {
                        //排除已上传数据

                        var rowDataListAll = dataList.Where(d => !idList.Contains(d.DiseaseId))
                                             .ToList();
                        var sendList = rowDataListAll.Take(limit).ToList();


                        //回参构建
                        var icd10List = new List <Icd10PairCodeDateXml>();
                        icd10List.AddRange(sendList.Select(c => new Icd10PairCodeDateXml()
                        {
                            DiseaseId = c.DiseaseId,
                            DiseaseName = c.ProjectName,
                            DiseaseCoding = c.ProjectCode
                        }));

                        var xmlData = new Icd10PairCodeXml()
                        {
                            row = icd10List
                        };
                        var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData);
                        var saveXml = new SaveXmlDataParam()
                        {
                            User = userBase,
                            MedicalInsuranceBackNum = "CXJB002",
                            MedicalInsuranceCode = "91",
                            BusinessId = param.BusinessId,
                            BackParam = strXmlBackParam
                        };
                        //存基层
                        webServiceBasic.SaveXmlData(saveXml);
                        idList.AddRange(sendList.Select(c => c.DiseaseId));
                        a++;
                    }


                    hisSqlRepository.ExecuteSql("update [dbo].[ICD10PairCode] set state=1 where  [PairCodeUserName]='医保接口对码'");
                }
            }));
        }