Преглед изворни кода

08 18 02 fix 报表辅助功能

hr пре 4 година
родитељ
комит
df149f6dfa

+ 2 - 2
src/main/java/com/imed/costaccount/model/vo/CostResponsibilityVO.java

@@ -40,13 +40,13 @@ public class CostResponsibilityVO{
     private String shareName;
 
     @ApiModelProperty(name = "deptStatus",value = "责任中心状态,0.门诊,1.住院")
-    private Integer deptStatus;
+    private Integer isDefault;
 
     private Long parentId;
 
     /**
      * 子责任中心
      */
-    @JsonInclude(value = JsonInclude.Include.NON_NULL)
+    @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
     private List<CostResponsibilityVO> child;
 }

+ 7 - 25
src/main/java/com/imed/costaccount/service/impl/AccountingServiceImpl.java

@@ -68,14 +68,9 @@ public class AccountingServiceImpl extends ServiceImpl<AccountingMapper, Account
                 });
             }
         }
-        // 顶层的
-        List<AccountVO> parents = all.stream().filter(i -> i.getParentId() == 0).collect(Collectors.toList());
-        List<AccountVO> accountVOS = new ArrayList<>();
-        for (AccountVO parent : parents) {
-            List<AccountVO> accountTree = this.getAccountTree(parent, all);
-            accountVOS.addAll(accountTree);
-        }
-        return accountVOS;
+        return all.stream().filter(o -> o.getParentId() == 0)
+                .peek(o -> o.setChildren(this.getAccountTree(o, all)))
+                .collect(Collectors.toList());
     }
 
     /**
@@ -86,22 +81,9 @@ public class AccountingServiceImpl extends ServiceImpl<AccountingMapper, Account
      * @return
      */
     private List<AccountVO> getAccountTree(AccountVO accountVO, List<AccountVO> list) {
-        List<AccountVO> accountVOS = new ArrayList<>();
-        accountVOS.add(accountVO);
-        for (AccountVO account : list) {
-            // 如果是父子关系
-            if (accountVO.getId().equals(account.getParentId())) {
-                List<AccountVO> child = accountVO.getChildren();
-                if (CollUtil.isEmpty(child)) {
-                    child = new ArrayList<>();
-                }
-                child.add(account);
-                accountVO.setChildren(child);
-                // 处理子节点
-                this.getAccountTree(account, list);
-            }
-        }
-        return accountVOS;
+        return list.stream().filter(o -> o.getParentId().equals(accountVO.getId()))
+                .peek(o -> o.setChildren(this.getAccountTree(o, list)))
+                .collect(Collectors.toList());
     }
 
 
@@ -112,7 +94,7 @@ public class AccountingServiceImpl extends ServiceImpl<AccountingMapper, Account
      * @param user
      */
     @Override
-    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public void saveAccounting(AccountingSaveDTO accountingSaveDTO, User user) {
         // 校验会计科目代码
         this.checkAccountingCode(accountingSaveDTO.getAccountingCode(), user.getHospId());

+ 35 - 33
src/main/java/com/imed/costaccount/service/impl/ResponsibilityServiceImpl.java

@@ -47,16 +47,19 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
     public List<CostResponsibilityVO> getList(User user) {
         // 1. 获取所有的列表然后组装
         List<CostResponsibilityVO> costResponsibilityVOS = this.getCostResponsibilityVO(user);
-        List<CostResponsibilityVO> parentCostResponsibility = costResponsibilityVOS.stream()
-                .filter(i -> i.getParentId() == 0).collect(Collectors.toList());
-        // 多层结构
-        List<CostResponsibilityVO> all = new ArrayList<>();
-        // todo 试试多线程实现方式
-        for (CostResponsibilityVO parent : parentCostResponsibility) {
-            List<CostResponsibilityVO> children = this.getResponsibilityChildren(parent, costResponsibilityVOS);
-            all.addAll(children);
-        }
-        return all;
+        return costResponsibilityVOS.stream().filter(i -> i.getParentId() == 0)
+                .peek(i -> i.setChild(this.getResponsibilityChildren(i, costResponsibilityVOS)))
+                .collect(Collectors.toList());
+//        List<CostResponsibilityVO> parentCostResponsibility = costResponsibilityVOS.stream()
+//                .filter(i -> i.getParentId() == 0).collect(Collectors.toList());
+//        // 多层结构
+//        List<CostResponsibilityVO> all = new ArrayList<>();
+//        // todo 试试多线程实现方式
+//        for (CostResponsibilityVO parent : parentCostResponsibility) {
+//            List<CostResponsibilityVO> children = this.getResponsibilityChildren(parent, costResponsibilityVOS);
+//            all.addAll(children);
+//        }
+//        return all;
     }
 
     private List<CostResponsibilityVO> getCostResponsibilityVO(User user) {
@@ -81,20 +84,23 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
      * @return
      */
     private List<CostResponsibilityVO> getResponsibilityChildren(CostResponsibilityVO parent, List<CostResponsibilityVO> costResponsibilityVOS) {
-        List<CostResponsibilityVO> list = new LinkedList<>();
-        list.add(parent);
-        for (CostResponsibilityVO costResponsibilityVO : costResponsibilityVOS) {
-            if (parent.getId().equals(costResponsibilityVO.getParentId())) {
-                List<CostResponsibilityVO> child = parent.getChild();
-                if (CollUtil.isEmpty(child)) {
-                    child = new ArrayList<>();
-                }
-                child.add(costResponsibilityVO);
-                parent.setChild(child);
-                this.getResponsibilityChildren(costResponsibilityVO, costResponsibilityVOS);
-            }
-        }
-        return list;
+        return costResponsibilityVOS.stream().filter(o -> o.getParentId().equals(parent.getId()))
+                .peek(o -> o.setChild(this.getResponsibilityChildren(o, costResponsibilityVOS)))
+                .collect(Collectors.toList());
+//        List<CostResponsibilityVO> list = new LinkedList<>();
+//        list.add(parent);
+//        for (CostResponsibilityVO costResponsibilityVO : costResponsibilityVOS) {
+//            if (parent.getId().equals(costResponsibilityVO.getParentId())) {
+//                List<CostResponsibilityVO> child = parent.getChild();
+//                if (CollUtil.isEmpty(child)) {
+//                    child = new ArrayList<>();
+//                }
+//                child.add(costResponsibilityVO);
+//                parent.setChild(child);
+//                this.getResponsibilityChildren(costResponsibilityVO, costResponsibilityVOS);
+//            }
+//        }
+//        return list;
     }
 
 
@@ -124,13 +130,8 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
             center.setShareLevel(0);
             center.setShareName("");
         }
-        // 父节点不允许为非汇总中心
-        Responsibility byId = this.getById(id);
-        if (Objects.nonNull(byId) && (byId.getIsGatherCenter() == 2)) {
-            throw new CostException(500, "非汇总中心不允许添加下属层级");
-        }
 
-        // 只允许存在一个汇总中心
+        // 只允许存在一个默认中心
         if (responsibilitySaveDTO.getIsDefault() == 1) {
             this.checkIsDefault(user.getHospId());
         }
@@ -206,12 +207,11 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
                 .setHospId(user.getHospId())
                 .setCreateTime(System.currentTimeMillis())
                 .setParentId(dto.getParentId());
-        // 如果变成了汇总中心,那么变成第一层
+        // 如果变成了汇总中心 不存在分摊层级名称等
         if (dto.getIsGatherCenter() == 1) {
             newResponsibility.setShareId(null)
                     .setShareLevel(0)
-                    .setShareName(null)
-                    .setParentId(0L);
+                    .setShareName(null);
         }
         if (dto.getParentId() == 0) {
             // 永远为2的情况
@@ -347,6 +347,7 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
      */
     @Override
     public List<CenterDepartmentVO> getParentSon(User user) {
+        // 获取所有数据
         // 1. 获取所有的列表然后组装
         List<Responsibility> parentList = this.list(
                 new LambdaQueryWrapper<Responsibility>()
@@ -362,6 +363,7 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
                         .eq(Responsibility::getHospId, user.getHospId())
                         .ne(Responsibility::getParentId, 0)
         );
+
         List<CenterDepartmentVO> list = new ArrayList<>();
         // 拷贝组合
         for (Responsibility parent : parentList) {