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 queryData = hisSqlRepository.QueryAllICD10();

                if (queryData.Any())
                {
                    dataList = queryData.Select(d => new Icd10PairCodeDataParam
                    {
                        DiseaseId = d.DiseaseId,
                        ProjectCode = d.DiseaseCoding,
                        ProjectName = d.DiseaseName
                    }).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();

                        webServiceBasicService.Icd10PairCode(new Icd10PairCodeParam()
                        {
                            DataList = sendList,
                            User = userBase,
                            BusinessId = "00000000000000000000000000000000"
                        });
                        //更新数据上传状态
                        idList.AddRange(sendList.Select(d => d.DiseaseId).ToList());
                        a++;
                    }
                }
            }));
        }