浏览代码

添加责任中心选择在收入归集里面

ljx 4 年之前
父节点
当前提交
8a4999c9ad

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

@@ -31,7 +31,7 @@ public class CostAccountShare implements Serializable {
 	/**
 	 * 责任中心Id
 	 */
-	private Integer responsibilityId;
+	private Long responsibilityId;
 	/**
 	 * 责任中心分摊级别
 	 */
@@ -52,7 +52,7 @@ public class CostAccountShare implements Serializable {
 	 * 成本项目Id
 	 *
 	 */
-	private Integer accountingId;
+	private Long accountingId;
 	/**
 	 * 成本项目名称
 	 */

+ 1 - 0
src/main/java/com/imed/costaccount/model/CostIncomeGroupSet.java

@@ -51,6 +51,7 @@ public class CostIncomeGroupSet implements Serializable {
 	/**
 	 * 责任中心的代码
 	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private String responsibilityCode;
 	/**
 	 * 排除的成本科目的Id ,拼接

+ 0 - 2
src/main/java/com/imed/costaccount/model/dto/CostIncomeGroupSetSaveDto.java

@@ -16,8 +16,6 @@ import javax.validation.constraints.NotNull;
 @ApiOperation("收入归集设置的保存对象")
 public class CostIncomeGroupSetSaveDto {
 
-    public  Long ONE_HUNDRED=100L;
-
     @ApiModelProperty(name = "openDepartmentStatus", value = "开单科室的状态 1 收入中心  2 成本中心")
     @NotNull(message = "开单科室状态不能为空")
     private Integer openDepartmentStatus;

+ 3 - 0
src/main/java/com/imed/costaccount/model/vo/CostIncomeGroupSetVO.java

@@ -1,5 +1,6 @@
 package com.imed.costaccount.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -29,8 +30,10 @@ public class CostIncomeGroupSetVO {
     private Integer startDepartmentProportion;
 
     @ApiModelProperty(name = "responsibilityCode",value = "责任中心的代码")
+    @JsonInclude(value = JsonInclude.Include.NON_NULL)
     private String responsibilityCode;
 
     @ApiModelProperty(name = "responsibilityName",value = "责任中心的名称")
+    @JsonInclude(value = JsonInclude.Include.NON_NULL)
     private String responsibilityName;
 }

+ 1 - 23
src/main/java/com/imed/costaccount/model/vo/CostResponsibilityTreeVO.java

@@ -1,12 +1,8 @@
 package com.imed.costaccount.model.vo;
 
-import com.fasterxml.jackson.annotation.JsonInclude;
 import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.util.List;
-
 /**
  * @author 李加喜
  * @Package com.imed.costaccount.model.vo
@@ -14,25 +10,7 @@ import java.util.List;
  */
 @Data
 @ApiModel("责任中心的树形结构")
-public class CostResponsibilityTreeVO {
-
-    @ApiModelProperty(name = "id",value = "主键")
-    private Long id;
-
-    @ApiModelProperty(name = "responsibilityName",value = "名称")
-    private String responsibilityName;
-
-    @ApiModelProperty(name = "responsibilityCode",value = "责任中心代码")
-    private String responsibilityCode;
-
-    @ApiModelProperty(name = "responsibilityLevel",value = "责任级别(第一级为1,以此类推)")
-    private Integer responsibilityLevel;
+public class CostResponsibilityTreeVO extends CostResponsibilityVO{
 
-    private Long parentId;
 
-    /**
-     * 子责任中心
-     */
-    @JsonInclude(value = JsonInclude.Include.NON_NULL)
-    private List<CostResponsibilityVO> child;
 }

+ 7 - 0
src/main/java/com/imed/costaccount/service/ResponsibilityService.java

@@ -69,5 +69,12 @@ public interface ResponsibilityService extends IService<Responsibility> {
      * @return
      */
     List<CostResponsibilityLevelVO> getLevelTwo(Long hospId);
+
+    /**
+     * 责任中心在收入归集设置里面显示的列表
+     * @param user
+     * @return
+     */
+    List<CostResponsibilityVO> responsibilityList(User user);
 }
 

+ 1 - 1
src/main/java/com/imed/costaccount/service/impl/CostAccountShareServiceImpl.java

@@ -117,7 +117,7 @@ public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMap
         // 检验输入的责任中心是否存在
         List<CostAccountShare> costAccountShareList = baseMapper.selectList(new QueryWrapper<CostAccountShare>().lambda()
                 .eq(CostAccountShare::getHospId, hospId));
-        Map<Integer, List<CostAccountShare>> map = costAccountShareList.stream().collect(Collectors.groupingBy(CostAccountShare::getResponsibilityId));
+        Map<Long, List<CostAccountShare>> map = costAccountShareList.stream().collect(Collectors.groupingBy(CostAccountShare::getResponsibilityId));
         if (!CollectionUtils.isEmpty(map.get(costAccountShareSaveDto.getResponsibilityId()))){
             throw new CostException(500,"添加的责任中心已存在");
         }

+ 15 - 5
src/main/java/com/imed/costaccount/service/impl/CostIncomeGroupSetServiceImpl.java

@@ -16,7 +16,7 @@ import com.imed.costaccount.model.dto.CostIncomeGroupSetEditDto;
 import com.imed.costaccount.model.dto.CostIncomeGroupSetSaveDto;
 import com.imed.costaccount.model.vo.CostIncomeGroupSetVO;
 import com.imed.costaccount.service.CostIncomeGroupSetService;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.imed.costaccount.service.ResponsibilityService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -30,8 +30,11 @@ import java.util.stream.Collectors;
 @Service("costIncomeGroupSetService")
 public class CostIncomeGroupSetServiceImpl extends ServiceImpl<CostIncomeGroupSetMapper, CostIncomeGroupSet> implements CostIncomeGroupSetService {
 
-    @Autowired
-    private ResponsibilityServiceImpl responsibilityService;
+    private final ResponsibilityService responsibilityService;
+
+    public CostIncomeGroupSetServiceImpl(ResponsibilityService responsibilityService) {
+        this.responsibilityService = responsibilityService;
+    }
 
     /**
      * 分页查询
@@ -131,6 +134,12 @@ public class CostIncomeGroupSetServiceImpl extends ServiceImpl<CostIncomeGroupSe
                 costIncomeGroupSetSaveDto.setStartDepartmentProportion(NumberConstant.ZERO);
             }
         }
+        if (!StringUtils.isEmpty(costIncomeGroupSetSaveDto.getResponsibilityCode())){
+            if (NumberConstant.ONE.equals(costIncomeGroupSetSaveDto.getOpenDepartmentStatus()) ||
+                NumberConstant.ONE.equals(costIncomeGroupSetSaveDto.getStartDepartmentStatus())){
+                throw new CostException(500,"存在收益中心 不允许设置责任中心");
+            }
+        }
         // 检验原始数据里面是否存在
         List<CostIncomeGroupSet> costIncomeGroupSets = baseMapper.selectList(new QueryWrapper<CostIncomeGroupSet>().lambda()
                 .eq(CostIncomeGroupSet::getHospId, hospId));
@@ -171,10 +180,10 @@ public class CostIncomeGroupSetServiceImpl extends ServiceImpl<CostIncomeGroupSe
         CostIncomeGroupSetSaveDto costIncomeGroupSetSaveDto = BeanUtil.convertObj(costIncomeGroupSetEditDto, CostIncomeGroupSetSaveDto.class);
         // 检验输入的数据是否存在
         checkIncomeGroupSet(costIncomeGroupSetSaveDto,hospId);
-        CostIncomeGroupSet incomeGroupSet = BeanUtil.convertObj(costIncomeGroupSetEditDto, CostIncomeGroupSet.class);
+        CostIncomeGroupSet incomeGroupSet = BeanUtil.convertObj(costIncomeGroupSetSaveDto, CostIncomeGroupSet.class);
         incomeGroupSet.setHospId(hospId);
         incomeGroupSet.setCreateTime(System.currentTimeMillis());
-        incomeGroupSet.setResponsibilityCode(costIncomeGroupSet.getResponsibilityCode());
+        incomeGroupSet.setResponsibilityCode(costIncomeGroupSetSaveDto.getResponsibilityCode());
         incomeGroupSet.setAccountCode(costIncomeGroupSet.getAccountCode());
         baseMapper.insert(incomeGroupSet);
     }
@@ -206,6 +215,7 @@ public class CostIncomeGroupSetServiceImpl extends ServiceImpl<CostIncomeGroupSe
      * @param accountList 对应科目的Code集合
      */
     @Override
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
     public void updateAccountCode(Integer id,List<String> accountList) {
         CostIncomeGroupSet incomeGroupSet = this.getById(id);
         if (Objects.isNull(incomeGroupSet)){

+ 36 - 1
src/main/java/com/imed/costaccount/service/impl/ResponsibilityServiceImpl.java

@@ -438,8 +438,43 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
         });
         return costResponsibilityLevelVOS;
     }
+
     /**
-     * 树形结构返回责任中心列表数据
+     * 责任中心在收入归集设置里面显示的列表
+     *
+     * @param user
+     * @return
      */
+    @Override
+    public List<CostResponsibilityVO> responsibilityList(User user) {
+        // 1. 获取所有的列表然后组装
+        List<Responsibility> list = this.list(
+                new LambdaQueryWrapper<Responsibility>()
+                        .eq(Responsibility::getHospId, user.getHospId())
+                        .orderByDesc(Responsibility::getCreateTime)
+        );
+        if (CollUtil.isEmpty(list)) {
+            return Collections.emptyList();
+        }
+        // 拷贝组合
+        List<CostResponsibilityVO> costResponsibilityVOS = BeanUtil.convertList(list, CostResponsibilityVO.class);
+        List<CostResponsibilityVO> parentCostResponsibility = costResponsibilityVOS.stream()
+                .filter(i -> i.getResponsibilityLevel().equals(1)).collect(Collectors.toList());
 
+        parentCostResponsibility.forEach(i -> costResponsibilityVOS.forEach(j -> {
+            if (j.getParentId().equals(i.getId())) {
+                if (i.getResponsibilityLevel() == 1) {
+                    i.setShareLevel(null);
+                }
+                List<CostResponsibilityVO> child = i.getChild();
+                if (CollUtil.isEmpty(child)) {
+                    child = new ArrayList<>();
+                }
+                j.setResponsibilityName(i.getResponsibilityName()+"/"+j.getResponsibilityName());
+                child.add(j);
+                i.setChild(child);
+            }
+        }));
+        return parentCostResponsibility;
+    }
 }

+ 2 - 0
src/main/java/com/imed/costaccount/web/CostIncomeGroupSetController.java

@@ -8,6 +8,7 @@ import com.imed.costaccount.model.dto.CostIncomeGroupSetSaveDto;
 import com.imed.costaccount.model.vo.CostIncomeGroupSetVO;
 import com.imed.costaccount.service.CostIncomeGroupSetService;
 import com.imed.costaccount.service.impl.AccountingServiceImpl;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -25,6 +26,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/costAccount/costincomegroupset")
+@Api(tags = "收入归集设置操作")
 public class CostIncomeGroupSetController{
     @Autowired
     private CostIncomeGroupSetService costIncomeGroupSetService;

+ 9 - 0
src/main/java/com/imed/costaccount/web/ResponsibilityController.java

@@ -39,6 +39,15 @@ public class ResponsibilityController {
         return Result.ok(pageUtils);
     }
 
+    @ApiOperation("收入归集设置需要的责任中心列表")
+    @GetMapping("/responsibilityList")
+    public Result responsibilityList() {
+        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        List<CostResponsibilityVO> list = responsibilityService.responsibilityList(user);
+        PageUtils pageUtils = new PageUtils(list,0,0,0);
+        return Result.ok(pageUtils);
+    }
+
     @GetMapping("/getLevelTwo")
     @ApiOperation("获取可不是汇总中心列表")
     public Result getLevelTwo(){