ljx 4 سال پیش
والد
کامیت
772977391d
1فایلهای تغییر یافته به همراه56 افزوده شده و 49 حذف شده
  1. 56 49
      src/main/java/com/imed/costaccount/service/impl/CostShareParamGroupServiceImpl.java

+ 56 - 49
src/main/java/com/imed/costaccount/service/impl/CostShareParamGroupServiceImpl.java

@@ -56,7 +56,7 @@ public class CostShareParamGroupServiceImpl extends ServiceImpl<CostShareParamGr
      * @return
      */
     @Override
-    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public Result importShareParamGroup(List<List<Object>> list, User user, MultipartFile file, String dateTime, Integer fileType) {
         // 先检验当前年月是否存在数据
         int year = 0;
@@ -108,92 +108,99 @@ public class CostShareParamGroupServiceImpl extends ServiceImpl<CostShareParamGr
         });
         if (CollectionUtils.isEmpty(incomeErrorMessageList)) {
             this.saveBatch(costShareParamGroupList);
-            return Result.build(200,"数据导入成功",null);
-        }else {
+            return Result.build(200, "数据导入成功", null);
+        } else {
             return Result.build(500, "数据未成功导入", null);
         }
     }
 
     private void checkShareParamGroupData(List<List<Object>> list, int year, int month, List<IncomeErrorMessage> incomeErrorMessageList, Map<String, Department> departmentMap, Map<Long, Responsibility> responsibilityMap, Map<Long, Long> responsibilityDepMap, Map<String, CostShareParam> shareParamMap, List<CostShareParamGroup> costShareParamGroupList, List<Object> departmentCodes, List<Object> departmentNames) {
         for (int i = 2; i < list.size(); i++) {
-            int row=i+2;
+            int row = i + 2;
             List<Object> data = list.get(i);
             // 检验成本分摊参数是否正确
             CostShareParamGroup costShareParamGroupRequest = new CostShareParamGroup();
             String shareParamCode = data.get(0).toString();
             String shareParamName = data.get(1).toString();
             CostShareParam costShareParam = shareParamMap.get(shareParamCode + shareParamName);
-            if (Objects.nonNull(costShareParam)){
+            if (Objects.nonNull(costShareParam)) {
                 costShareParamGroupRequest.setShareParamCode(shareParamCode);
                 costShareParamGroupRequest.setShareParamName(shareParamName);
-            }else {
+            } else {
                 IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
                 incomeErrorMessage.setTotal(1);
-                incomeErrorMessage.setErrMessage("成本分摊代码:"+shareParamCode+" 名称"+shareParamName+"不存在");
+                incomeErrorMessage.setErrMessage("成本分摊代码:" + shareParamCode + " 名称" + shareParamName + "不存在");
                 incomeErrorMessageList.add(incomeErrorMessage);
             }
             for (int j = 2; j < departmentCodes.size(); j++) {
-                if (data.size() > j ) {
-                    if (Objects.isNull(data.get(j))){
+                if (data.size() > j) {
+                    if (Objects.isNull(data.get(j))) {
                         data.set(j, NumberConstant.ZERO);
-                    }else {
-                        data.set(j, Integer.parseInt(data.get(j).toString()));
+                    } else if (isNumeric(data.get(j).toString())) {
+                        data.set(j, Double.parseDouble(data.get(j).toString()));
+                    } else {
+                        IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
+                        incomeErrorMessage.setTotal(row);
+                        incomeErrorMessage.setErrMessage("第" + row + "行 第" + j + "列数据不符合规范");
+                        incomeErrorMessageList.add(incomeErrorMessage);
                     }
-                }else {
+                } else {
                     data.add(NumberConstant.ZERO);
                 }
             }
-            // 检验输入的数字是否合法
-            for (int j=2;j<data.size();j++){
-                if (!isNumeric(data.get(j).toString())){
-                    IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
-                    incomeErrorMessage.setTotal(row);
-                    incomeErrorMessage.setErrMessage("第"+row+"行 第"+j+"列数据不符合规范");
-                    incomeErrorMessageList.add(incomeErrorMessage);
+            if (CollectionUtils.isEmpty(incomeErrorMessageList)) {
+                // 检验数据是否全为0
+                Integer zeroStatus = 0;
+                for (int j = 0; j < data.size(); j++) {
+                    if (!NumberConstant.ZERO.equals(data.get(j))) {
+                        zeroStatus = 1;
+                        break;
+                    }
                 }
-            }
-            if (CollectionUtils.isEmpty(incomeErrorMessageList)){
-                for (int j = 2; j < data.size() ; j++) {
-                    CostShareParamGroup costShareParamGroup= BeanUtil.convertObj(costShareParamGroupRequest,CostShareParamGroup.class);
-                    // 检验科室信息是否准确
-                    String departmentCode = departmentCodes.get(j).toString();
-                    String departmentName = departmentNames.get(j).toString();
-                    Department department = departmentMap.get(departmentCode + departmentName);
-                    if (Objects.nonNull(department)) {
-                        // 检测责任中心是否存在
-                        Long id = department.getId();
-                        Long responsibilityId = responsibilityDepMap.get(id);
-                        if (Objects.nonNull(responsibilityId)) {
-                            Responsibility responsibility = responsibilityMap.get(responsibilityId);
-                            if (Objects.nonNull(responsibility)) {
-                                costShareParamGroup.setResponsibilityCode(responsibility.getResponsibilityCode());
-                                costShareParamGroup.setResponsibilityName(responsibility.getResponsibilityName());
+                if (NumberConstant.ONE.equals(zeroStatus)) {
+                    for (int j = 2; j < data.size(); j++) {
+                        CostShareParamGroup costShareParamGroup = BeanUtil.convertObj(costShareParamGroupRequest, CostShareParamGroup.class);
+                        // 检验科室信息是否准确
+                        String departmentCode = departmentCodes.get(j).toString();
+                        String departmentName = departmentNames.get(j).toString();
+                        Department department = departmentMap.get(departmentCode + departmentName);
+                        if (Objects.nonNull(department)) {
+                            // 检测责任中心是否存在
+                            Long id = department.getId();
+                            Long responsibilityId = responsibilityDepMap.get(id);
+                            if (Objects.nonNull(responsibilityId)) {
+                                Responsibility responsibility = responsibilityMap.get(responsibilityId);
+                                if (Objects.nonNull(responsibility)) {
+                                    costShareParamGroup.setResponsibilityCode(responsibility.getResponsibilityCode());
+                                    costShareParamGroup.setResponsibilityName(responsibility.getResponsibilityName());
 
+                                } else {
+                                    IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
+                                    incomeErrorMessage.setTotal(j);
+                                    incomeErrorMessage.setErrMessage("第" + j + "列科室信息对应的责任中心不存在");
+                                    incomeErrorMessageList.add(incomeErrorMessage);
+                                }
                             } else {
                                 IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
                                 incomeErrorMessage.setTotal(j);
-                                incomeErrorMessage.setErrMessage("第" + j + "列科室信息对应的责任中心不存在");
+                                incomeErrorMessage.setErrMessage("第" + j + "列科室信息不存在对应的责任中心");
                                 incomeErrorMessageList.add(incomeErrorMessage);
                             }
                         } else {
                             IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
                             incomeErrorMessage.setTotal(j);
-                            incomeErrorMessage.setErrMessage("第" + j + "列科室信息不存在对应的责任中心");
+                            incomeErrorMessage.setErrMessage("第" + j + "列科室信息不存在");
                             incomeErrorMessageList.add(incomeErrorMessage);
                         }
-                    } else {
-                        IncomeErrorMessage incomeErrorMessage = new IncomeErrorMessage();
-                        incomeErrorMessage.setTotal(j);
-                        incomeErrorMessage.setErrMessage("第" + j + "列科室信息不存在");
-                        incomeErrorMessageList.add(incomeErrorMessage);
+                        costShareParamGroup.setAmount(BigDecimal.valueOf(Double.parseDouble(("0".equals(data.get(j).toString()) || StrUtil.isBlank(data.get(j).toString())) ? "0.00" : data.get(j).toString())));
+                        costShareParamGroup.setHospId(UserContext.getHospId());
+                        costShareParamGroup.setCreateTime(System.currentTimeMillis());
+                        costShareParamGroup.setDateYear(year);
+                        costShareParamGroup.setDateMonth(month);
+                        costShareParamGroupList.add(costShareParamGroup);
                     }
-                    costShareParamGroup.setAmount(BigDecimal.valueOf(Double.parseDouble(("0".equals(data.get(j).toString()) || StrUtil.isBlank(data.get(j).toString())) ?"0.00":data.get(j).toString())));
-                    costShareParamGroup.setHospId(UserContext.getHospId());
-                    costShareParamGroup.setCreateTime(System.currentTimeMillis());
-                    costShareParamGroup.setDateYear(year);
-                    costShareParamGroup.setDateMonth(month);
-                    costShareParamGroupList.add(costShareParamGroup);
                 }
+
             }
 
         }