ljx пре 4 година
родитељ
комит
eccb1662b8
20 измењених фајлова са 620 додато и 13 уклоњено
  1. 33 0
      src/main/java/com/imed/costaccount/common/util/UserContext.java
  2. 16 0
      src/main/java/com/imed/costaccount/mapper/CostIncomeGroupSetMapper.java
  3. 71 0
      src/main/java/com/imed/costaccount/model/CostIncomeGroupSet.java
  4. 2 2
      src/main/java/com/imed/costaccount/model/CostShareParam.java
  5. 40 0
      src/main/java/com/imed/costaccount/model/dto/CostIncomeGroupSetEditDto.java
  6. 37 0
      src/main/java/com/imed/costaccount/model/dto/CostIncomeGroupSetSaveDto.java
  7. 36 0
      src/main/java/com/imed/costaccount/model/vo/CostIncomeGroupSetVO.java
  8. 44 0
      src/main/java/com/imed/costaccount/model/vo/CostResponsibilityTreeVO.java
  9. 47 0
      src/main/java/com/imed/costaccount/service/CostIncomeGroupSetService.java
  10. 2 2
      src/main/java/com/imed/costaccount/service/impl/AccountingProductServiceImpl.java
  11. 3 3
      src/main/java/com/imed/costaccount/service/impl/CostAccountShareServiceImpl.java
  12. 182 0
      src/main/java/com/imed/costaccount/service/impl/CostIncomeGroupSetServiceImpl.java
  13. 1 1
      src/main/java/com/imed/costaccount/service/impl/CostResponsibilityDepartmentServiceImpl.java
  14. 1 1
      src/main/java/com/imed/costaccount/service/impl/CostShareLevelServiceImpl.java
  15. 1 1
      src/main/java/com/imed/costaccount/service/impl/CostShareParamServiceImpl.java
  16. 1 1
      src/main/java/com/imed/costaccount/service/impl/HospitalServiceImpl.java
  17. 2 1
      src/main/java/com/imed/costaccount/service/impl/ResponsibilityServiceImpl.java
  18. 80 0
      src/main/java/com/imed/costaccount/web/CostIncomeGroupSetController.java
  19. 0 1
      src/main/java/com/imed/costaccount/web/ResponsibilityController.java
  20. 21 0
      src/main/resources/mapper/CostIncomeGroupSetMapper.xml

+ 33 - 0
src/main/java/com/imed/costaccount/common/util/UserContext.java

@@ -0,0 +1,33 @@
+package com.imed.costaccount.common.util;
+
+import com.imed.costaccount.model.User;
+import org.apache.shiro.SecurityUtils;
+
+/**
+ * @author 李加喜
+ * @Package com.imed.costaccount.common.util
+ * @date 2021-08-03 8:46
+ */
+public class UserContext {
+    private static final ThreadLocal<User> current = new ThreadLocal();
+
+    public UserContext() {
+    }
+
+    public static User getCurrentUser() {
+        return (User) SecurityUtils.getSubject().getPrincipal();
+    }
+
+    public static void setCurrentUser(User user) {
+        current.set(user);
+    }
+
+    public static void removeUser() {
+        current.remove();
+    }
+
+    public static Long getHospId(){
+        User principal = (User) SecurityUtils.getSubject().getPrincipal();
+        return principal.getHospId();
+    }
+}

+ 16 - 0
src/main/java/com/imed/costaccount/mapper/CostIncomeGroupSetMapper.java

@@ -0,0 +1,16 @@
+package com.imed.costaccount.mapper;
+
+import com.imed.costaccount.model.CostIncomeGroupSet;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 收入归集设置
+ * 
+ * @author KCYG
+ * @date 2021-08-03 08:41:20
+ */
+@Mapper
+public interface CostIncomeGroupSetMapper extends BaseMapper<CostIncomeGroupSet> {
+	
+}

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

@@ -0,0 +1,71 @@
+package com.imed.costaccount.model;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 收入归集设置
+ * 
+ * @author KCYG
+ * @email KCYG@xinxicom
+ * @date 2021-08-03 08:41:20
+ */
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("cost_income_group_set")
+public class CostIncomeGroupSet implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 收入归集设置的Id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 开单科室状态 1收益中心 2成本中心
+	 */
+	private Integer openDepartmentStatus;
+	/**
+	 * 开单科室收益比例
+	 */
+	private Integer openDepartmentProportion;
+	/**
+	 * 执行科室状态 1收益中心 2成本中心
+	 */
+	private Integer startDepartmentStatus;
+	/**
+	 * 执行科室的收益比例
+	 */
+	private Integer startDepartmentProportion;
+	/**
+	 * 医院的Id
+	 */
+	private Long hospId;
+	/**
+	 * 责任中心的代码
+	 */
+	private String responsibilityCode;
+	/**
+	 * 排除的成本科目的Id ,拼接
+	 */
+	private String accountCode;
+	/**
+	 * 创建时间13位时间戳
+	 */
+	private Long createTime;
+	/**
+	 * 删除时间,如果存在表示已删除13位时间戳
+	 */
+	@TableLogic(value = "0",delval = "UNIX_TIMESTAMP(NOW()) * 1000")
+	private Long deleteTime;
+
+}

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

@@ -37,10 +37,10 @@ public class CostShareParam implements Serializable {
 	 */
 	private String shareParamCode;
 	/**
-	 * 关联的会计成本的科目的Id
+	 * 关联的会计成本的科目的Id ,拼接
 	 */
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
-	private Long accountingId;
+	private String accountingId;
 	/**
 	 * 医院Id
 	 */

+ 40 - 0
src/main/java/com/imed/costaccount/model/dto/CostIncomeGroupSetEditDto.java

@@ -0,0 +1,40 @@
+package com.imed.costaccount.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author 李加喜
+ * @Package com.imed.costaccount.model.dto
+ * @date 2021-08-03 9:51
+ */
+@Data
+@ApiModel("收入归集设置修改的对应")
+public class CostIncomeGroupSetEditDto {
+
+    @ApiModelProperty(name = "id",value = "收入归集设置的原始Id")
+    @NotNull(message = "原始Id不能为空")
+    private Long id;
+
+    @ApiModelProperty(name = "openDepartmentStatus", value = "开单科室的状态 1 收入中心  2 成本中心")
+    @NotNull(message = "开单科室状态不能为空")
+    private Integer openDepartmentStatus;
+
+    @ApiModelProperty(name = "openDepartmentProportion", value = "开单科室的比例")
+    @NotNull(message = "开单科室比例不能为空")
+    private Integer openDepartmentProportion;
+
+    @ApiModelProperty(name = "startDepartmentStatus", value = "执行科室状态 1 收入中心 2 成本中心")
+    @NotNull(message = "执行科室状态不能为空")
+
+    private Integer startDepartmentStatus;
+
+    @ApiModelProperty(name = "startDepartmentStatus", value = "执行科室的比例")
+    private Integer startDepartmentProportion;
+
+    @ApiModelProperty(name = "responsibilityCode", value = "责任中心的代码")
+    private String responsibilityCode;
+}

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

@@ -0,0 +1,37 @@
+package com.imed.costaccount.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author 李加喜
+ * @Package com.imed.costaccount.model.dto
+ * @date 2021-08-03 9:33
+ */
+@Data
+@ApiOperation("收入归集设置的保存对象")
+public class CostIncomeGroupSetSaveDto {
+    public static final Integer ONE_HUNDRED=100;
+    @ApiModelProperty(name = "openDepartmentStatus", value = "开单科室的状态 1 收入中心  2 成本中心")
+    @NotNull(message = "开单科室状态不能为空")
+    private Integer openDepartmentStatus;
+
+    @ApiModelProperty(name = "openDepartmentProportion", value = "开单科室的比例")
+    @NotNull(message = "开单科室比例不能为空")
+    private Integer openDepartmentProportion;
+
+    @ApiModelProperty(name = "startDepartmentStatus", value = "执行科室状态 1 收入中心 2 成本中心")
+    @NotNull(message = "执行科室状态不能为空")
+
+    private Integer startDepartmentStatus;
+
+    @ApiModelProperty(name = "startDepartmentStatus", value = "执行科室的比例")
+    private Integer startDepartmentProportion;
+
+    @ApiModelProperty(name = "responsibilityCode", value = "责任中心的代码")
+    private String responsibilityCode;
+
+}

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

@@ -0,0 +1,36 @@
+package com.imed.costaccount.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author 李加喜
+ * @Package com.imed.costaccount.model.vo
+ * @date 2021-08-03 9:01
+ */
+@Data
+@ApiModel("收入归集设置的返回对象")
+public class CostIncomeGroupSetVO {
+
+    @ApiModelProperty(name = "id",value = "主键")
+    private Long id;
+
+    @ApiModelProperty(name = "openDepartmentStatus",value = "开单科室的状态 1 收入中心  2 成本中心")
+    private Integer openDepartmentStatus;
+
+    @ApiModelProperty(name = "openDepartmentProportion",value = "开单科室的比例")
+    private Integer openDepartmentProportion;
+
+    @ApiModelProperty(name = "startDepartmentStatus",value = "执行科室状态 1 收入中心 2 成本中心")
+    private Integer startDepartmentStatus;
+
+    @ApiModelProperty(name = "startDepartmentStatus",value = "执行科室的比例")
+    private Integer startDepartmentProportion;
+
+    @ApiModelProperty(name = "responsibilityCode",value = "责任中心的代码")
+    private String responsibilityCode;
+
+    @ApiModelProperty(name = "responsibilityName",value = "责任中心的名称")
+    private String responsibilityName;
+}

+ 44 - 0
src/main/java/com/imed/costaccount/model/vo/CostResponsibilityTreeVO.java

@@ -0,0 +1,44 @@
+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
+ * @date 2021-08-03 10:46
+ */
+@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;
+
+    @ApiModelProperty(name = "shareLevel",value = "分摊级别 如果是顶层默认为0")
+    private Integer shareLevel;
+
+    @ApiModelProperty(name = "shareName",value = "分摊级别名称")
+    private String shareName;
+
+    private Long parentId;
+
+    /**
+     * 子责任中心
+     */
+    @JsonInclude(value = JsonInclude.Include.NON_NULL)
+    private List<CostResponsibilityVO> child;
+}

+ 47 - 0
src/main/java/com/imed/costaccount/service/CostIncomeGroupSetService.java

@@ -0,0 +1,47 @@
+package com.imed.costaccount.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.imed.costaccount.common.util.PageUtils;
+import com.imed.costaccount.model.CostIncomeGroupSet;
+import com.imed.costaccount.model.dto.CostIncomeGroupSetEditDto;
+import com.imed.costaccount.model.dto.CostIncomeGroupSetSaveDto;
+import com.imed.costaccount.model.vo.CostIncomeGroupSetVO;
+
+/**
+ * 收入归集设置
+ *
+ * @author KCYG
+ * @email KCYG@xinxicom
+ * @date 2021-08-03 08:41:20
+ */
+public interface CostIncomeGroupSetService extends IService<CostIncomeGroupSet> {
+    /**
+     * 分页查询
+     * @param current
+     * @param pageSize
+     * @param hospId
+     * @return
+     */
+    PageUtils queryList(Integer current, Integer pageSize, Long hospId);
+
+    /**
+     *  根据Id获取对应的收入归集设置的数据
+     * @param id
+     * @return
+     */
+    CostIncomeGroupSetVO getByIncomeGroupId(Long id,Long hospId);
+
+    /**
+     * 保存收入归集设置的数据
+     * @param costIncomeGroupSetSaveDto
+     */
+    void addCostIncomeGroupSet(CostIncomeGroupSetSaveDto costIncomeGroupSetSaveDto,Long hospId);
+
+    /**
+     * 修改收入归集设置的数据
+     * @param costIncomeGroupSetEditDto
+     * @param hospId
+     */
+    void updateByIncomeGroup(CostIncomeGroupSetEditDto costIncomeGroupSetEditDto, Long hospId);
+}
+

+ 2 - 2
src/main/java/com/imed/costaccount/service/impl/AccountingProductServiceImpl.java

@@ -97,7 +97,7 @@ public class AccountingProductServiceImpl extends ServiceImpl<AccountingProductM
                             .eq(AccountingProduct::getAccountingId, account.getId())
             );
             if (CollUtil.isNotEmpty(accountingProducts)) {
-                List<Integer> productIds = accountingProducts.stream().map(AccountingProduct::getProductId).collect(Collectors.toList());
+                List<Long> productIds = accountingProducts.stream().map(AccountingProduct::getProductId).collect(Collectors.toList());
                 List<Product> products = productMapper.selectList(
                         new LambdaQueryWrapper<Product>().in(Product::getId, productIds)
                 );
@@ -123,7 +123,7 @@ public class AccountingProductServiceImpl extends ServiceImpl<AccountingProductM
         Long accountId = accountProductSaveDTO.getId();
         this.remove(new LambdaQueryWrapper<AccountingProduct>().eq(AccountingProduct::getAccountingId, accountId));
 
-        List<Integer> products = accountProductSaveDTO.getProducts();
+        List<Long> products = accountProductSaveDTO.getProducts();
         List<AccountingProduct> accountingProducts = products.stream().map(i -> {
             AccountingProduct accountingProduct = new AccountingProduct();
             accountingProduct.setAccountingId(accountId)

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

@@ -81,7 +81,7 @@ public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMap
         Map<Long, List<Responsibility>> resMap = list.stream().collect(Collectors.groupingBy(Responsibility::getId));
         Map<Long, List<Accounting>> accountMap = accountingList.stream().collect(Collectors.groupingBy(Accounting::getId));
         costAccountShareList.forEach(i->{
-            Integer id = i.getResponsibilityId();
+            Long id = i.getResponsibilityId();
             List<Responsibility> responsibilities = resMap.get(id);
             if (!CollectionUtils.isEmpty(responsibilities)){
                 i.setResponsibilityId(id);
@@ -89,7 +89,7 @@ public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMap
                 i.setResponsibilityCode(responsibilities.get(0).getResponsibilityCode());
 
             }
-            Integer accountingId = i.getAccountingId();
+            Long accountingId = i.getAccountingId();
             if (accountingId>0){
                 List<Accounting> accountingList1 = accountMap.get(accountingId);
                 if (!CollectionUtils.isEmpty(accountingList1)){
@@ -164,7 +164,7 @@ public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMap
             }
         }
         // 检验输入的这个责任中心是否允许输入成本科目
-        Integer shareId = responsibility.getShareId();
+        Long shareId = responsibility.getShareId();
         CostShareLevel costShareLevel = costShareLevelService.getOne(new QueryWrapper<CostShareLevel>().lambda()
                 .eq(CostShareLevel::getHospId, hospId).eq(CostShareLevel::getId, shareId));
         if (Objects.nonNull(costShareLevel)){

+ 182 - 0
src/main/java/com/imed/costaccount/service/impl/CostIncomeGroupSetServiceImpl.java

@@ -0,0 +1,182 @@
+package com.imed.costaccount.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.imed.costaccount.common.exception.CostException;
+import com.imed.costaccount.common.util.BeanUtil;
+import com.imed.costaccount.common.util.PageUtils;
+import com.imed.costaccount.constants.NumberConstant;
+import com.imed.costaccount.mapper.CostIncomeGroupSetMapper;
+import com.imed.costaccount.model.CostIncomeGroupSet;
+import com.imed.costaccount.model.Responsibility;
+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 org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+
+@Service("costIncomeGroupSetService")
+public class CostIncomeGroupSetServiceImpl extends ServiceImpl<CostIncomeGroupSetMapper, CostIncomeGroupSet> implements CostIncomeGroupSetService {
+
+    @Autowired
+    private ResponsibilityServiceImpl responsibilityService;
+
+    /**
+     * 分页查询
+     *
+     * @param current
+     * @param pageSize
+     * @param hospId
+     * @return
+     */
+    @Override
+    public PageUtils queryList(Integer current, Integer pageSize, Long hospId) {
+        Page<CostIncomeGroupSet> costIncomeGroupSetPage = new Page<>(current, pageSize);
+        Page<CostIncomeGroupSet> pages = this.page(costIncomeGroupSetPage, new QueryWrapper<CostIncomeGroupSet>().lambda()
+                .eq(CostIncomeGroupSet::getHospId, hospId)
+                .orderByDesc(CostIncomeGroupSet::getCreateTime));
+        List<CostIncomeGroupSet> records = pages.getRecords();
+        List<Responsibility> responsibilityList = responsibilityService.list(new QueryWrapper<Responsibility>().lambda()
+                .eq(Responsibility::getHospId, hospId));
+        List<CostIncomeGroupSetVO> costIncomeGroupSetVOList = BeanUtil.convertList(records, CostIncomeGroupSetVO.class);
+        if (!CollectionUtils.isEmpty(responsibilityList)) {
+            Map<String, List<Responsibility>> listMap = responsibilityList.stream().collect(Collectors.groupingBy(Responsibility::getResponsibilityCode));
+            costIncomeGroupSetVOList.forEach(i -> {
+                String responsibilityCode = i.getResponsibilityCode();
+                if (!StringUtils.isEmpty(responsibilityCode)) {
+                    List<Responsibility> responsibilities = listMap.get(responsibilityCode);
+                    if (!CollectionUtils.isEmpty(responsibilities)) {
+                        i.setResponsibilityName(responsibilities.get(0).getResponsibilityName());
+                    }
+                }
+            });
+        }
+        PageUtils pageUtils = new PageUtils(pages);
+        pageUtils.setList(costIncomeGroupSetVOList);
+        return pageUtils;
+    }
+
+    /**
+     * 根据Id获取对应的收入归集设置的数据
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public CostIncomeGroupSetVO getByIncomeGroupId(Long id, Long hospId) {
+        CostIncomeGroupSet costIncomeGroupSet = baseMapper.selectById(id);
+        if (Objects.isNull(costIncomeGroupSet)) {
+            return null;
+        }
+        CostIncomeGroupSetVO costIncomeGroupSetVO = BeanUtil.convertObj(costIncomeGroupSet, CostIncomeGroupSetVO.class);
+        List<Responsibility> responsibilityList = responsibilityService.list(new QueryWrapper<Responsibility>().lambda()
+                .eq(Responsibility::getHospId, hospId));
+        if (!CollectionUtils.isEmpty(responsibilityList)) {
+            Map<String, List<Responsibility>> listMap = responsibilityList.stream().collect(Collectors.groupingBy(Responsibility::getResponsibilityCode));
+            String responsibilityCode = costIncomeGroupSetVO.getResponsibilityCode();
+            if (!StringUtils.isEmpty(responsibilityCode)) {
+                List<Responsibility> responsibilities = listMap.get(responsibilityCode);
+                if (!CollectionUtils.isEmpty(responsibilities)) {
+                    costIncomeGroupSetVO.setResponsibilityName(responsibilities.get(0).getResponsibilityName());
+                }
+            }
+        }
+        return costIncomeGroupSetVO;
+    }
+
+    /**
+     * 保存收入归集设置的数据
+     *
+     * @param costIncomeGroupSetSaveDto
+     */
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    public void addCostIncomeGroupSet(CostIncomeGroupSetSaveDto costIncomeGroupSetSaveDto, Long hospId) {
+        // 检验输入的数据是否符合要求
+        checkIncomeGroupSet(costIncomeGroupSetSaveDto, hospId);
+        CostIncomeGroupSet costIncomeGroupSet = BeanUtil.convertObj(costIncomeGroupSetSaveDto, CostIncomeGroupSet.class);
+        costIncomeGroupSet.setCreateTime(System.currentTimeMillis());
+        costIncomeGroupSet.setHospId(hospId);
+        baseMapper.insert(costIncomeGroupSet);
+    }
+
+    /**
+     * 检验输入的数据是否符合要求
+     * @param costIncomeGroupSetSaveDto
+     * @param hospId
+     */
+    private void checkIncomeGroupSet(CostIncomeGroupSetSaveDto costIncomeGroupSetSaveDto, Long hospId) {
+        Integer sum = costIncomeGroupSetSaveDto.getOpenDepartmentProportion() + costIncomeGroupSetSaveDto.getStartDepartmentProportion();
+        if (!NumberConstant.ONE_HUNDRED.equals(sum)) {
+            throw new CostException(500, "输入的比例和不是100");
+        }
+        if (NumberConstant.TWO.equals(costIncomeGroupSetSaveDto.getOpenDepartmentStatus())
+                && NumberConstant.TWO.equals(costIncomeGroupSetSaveDto.getStartDepartmentStatus())) {
+            if (StringUtils.isEmpty(costIncomeGroupSetSaveDto.getResponsibilityCode())){
+                throw new CostException(500, "两个成本中心需要输入对应的责任中心");
+            }else {
+                costIncomeGroupSetSaveDto.setOpenDepartmentProportion(NumberConstant.ZERO);
+                costIncomeGroupSetSaveDto.setStartDepartmentProportion(NumberConstant.ZERO);
+            }
+        }
+        // 检验原始数据里面是否存在
+        List<CostIncomeGroupSet> costIncomeGroupSets = baseMapper.selectList(new QueryWrapper<CostIncomeGroupSet>().lambda()
+                .eq(CostIncomeGroupSet::getHospId, hospId));
+        List<CostIncomeGroupSet> costIncomeGroupSetList = costIncomeGroupSets.stream().filter(i ->
+                i.getOpenDepartmentStatus().equals(costIncomeGroupSetSaveDto.getOpenDepartmentStatus()) &&
+                        i.getStartDepartmentStatus().equals(costIncomeGroupSetSaveDto.getStartDepartmentStatus())
+        ).collect(Collectors.toList());
+        if (!CollectionUtils.isEmpty(costIncomeGroupSetList)){
+            throw new CostException(500,"开单与执行的对应类型已经存在");
+        }
+        // 如果一个是收入中心一个是成本中心  那本自动调整比例设置为0 100  如果两个收益中心的话需要按照不理  都是成本中心就是0
+        if (!costIncomeGroupSetSaveDto.getOpenDepartmentStatus().equals(costIncomeGroupSetSaveDto.getStartDepartmentStatus())){
+            if (NumberConstant.ONE.equals(costIncomeGroupSetSaveDto.getOpenDepartmentStatus())){
+                costIncomeGroupSetSaveDto.setOpenDepartmentProportion(NumberConstant.ONE_HUNDRED);
+                costIncomeGroupSetSaveDto.setStartDepartmentProportion(NumberConstant.ZERO);
+            }else {
+                costIncomeGroupSetSaveDto.setOpenDepartmentProportion(NumberConstant.ZERO);
+                costIncomeGroupSetSaveDto.setStartDepartmentProportion(NumberConstant.ONE_HUNDRED);
+            }
+        }
+    }
+
+    /**
+     * 修改收入归集设置的数据
+     *
+     * @param costIncomeGroupSetEditDto
+     * @param hospId
+     */
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    public void updateByIncomeGroup(CostIncomeGroupSetEditDto costIncomeGroupSetEditDto, Long hospId) {
+        Long id = costIncomeGroupSetEditDto.getId();
+        CostIncomeGroupSet costIncomeGroupSet = baseMapper.selectById(id);
+        if (Objects.isNull(costIncomeGroupSet)) {
+            throw new CostException(500, "收入归集设置数据不存在");
+        }
+        baseMapper.deleteById(id);
+        CostIncomeGroupSetSaveDto costIncomeGroupSetSaveDto = BeanUtil.convertObj(costIncomeGroupSetEditDto, CostIncomeGroupSetSaveDto.class);
+        // 检验输入的数据是否存在
+        checkIncomeGroupSet(costIncomeGroupSetSaveDto,hospId);
+        CostIncomeGroupSet incomeGroupSet = BeanUtil.convertObj(costIncomeGroupSetEditDto, CostIncomeGroupSet.class);
+        incomeGroupSet.setHospId(hospId);
+        incomeGroupSet.setCreateTime(System.currentTimeMillis());
+        incomeGroupSet.setResponsibilityCode(costIncomeGroupSet.getResponsibilityCode());
+        incomeGroupSet.setAccountCode(costIncomeGroupSet.getAccountCode());
+        baseMapper.insert(incomeGroupSet);
+    }
+
+}

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

@@ -40,7 +40,7 @@ public class CostResponsibilityDepartmentServiceImpl extends ServiceImpl<CostRes
         User user = (User) SecurityUtils.getSubject().getPrincipal();
         // 当前医院责任中心所具有的的科室
         List<CostResponsibilityDepartment> costResponsibilityDepartmentList = baseMapper.selectList(new QueryWrapper<CostResponsibilityDepartment>().lambda().eq(CostResponsibilityDepartment::getResponsibilityId, responsibilityId));
-        Map<Integer, List<CostResponsibilityDepartment>> costResponsibilityDepartmentMap = costResponsibilityDepartmentList.stream().distinct().collect(Collectors.groupingBy(CostResponsibilityDepartment::getDepartmentId));
+        Map<Long, List<CostResponsibilityDepartment>> costResponsibilityDepartmentMap = costResponsibilityDepartmentList.stream().distinct().collect(Collectors.groupingBy(CostResponsibilityDepartment::getDepartmentId));
         // 所有科室
         List<Department> departmentList = departmentService.getByDepartment(null,null,null,user.getHospId());
         List<CostDepartmentVO> departVOList = BeanUtil.convertList(departmentList, CostDepartmentVO.class);

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

@@ -76,7 +76,7 @@ public class CostShareLevelServiceImpl extends ServiceImpl<CostShareLevelMapper,
     public void updateByCostShareLevel(CostShareLevelEditDto costShareLevelEditDto) {
         User user = (User) SecurityUtils.getSubject().getPrincipal();
         Long hospId = user.getHospId();
-        Integer id = costShareLevelEditDto.getId();
+        Long id = costShareLevelEditDto.getId();
         CostShareLevel costShareLevel = baseMapper.selectById(id);
         if (Objects.isNull(costShareLevel)){
             throw new CostException("分摊层级数据不存在");

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

@@ -120,7 +120,7 @@ public class CostShareParamServiceImpl extends ServiceImpl<CostShareParamMapper,
     @Override
     @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
     public CostShareParam updateCostShareParamByAccountId(CostShareParamAccountDto costShareParamAccountDto) {
-        Integer costShareParamId = costShareParamAccountDto.getCostShareParamId();
+        Long costShareParamId = costShareParamAccountDto.getCostShareParamId();
         CostShareParam costShareParam = baseMapper.selectById(costShareParamId);
         //  判断当前操作的分层参数的计算方式是不是按科目计算
         if (NumberConstant.TWO.equals(costShareParam.getCalcType())){

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

@@ -93,7 +93,7 @@ public class HospitalServiceImpl extends ServiceImpl<HospitalMapper, Hospital> i
                 throw new CostException(500, "当前医院标识已存在,请重新生成");
             }
         } else {
-            Integer parentId = hospitalSaveDto.getParentId();
+            Long parentId = hospitalSaveDto.getParentId();
             // 校验参数
             if (parentId == 0) {
                 throw new CostException(500, "新增院区请选择医院");

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

@@ -430,7 +430,7 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
         // 设置责任中心的计算方式
         costResponsibilityLevelVOS.forEach(i -> {
             i.setResponsibilityId(i.getId());
-            Integer shareId = i.getShareId();
+            Long shareId = i.getShareId();
             List<CostShareLevelVO> costShareLevelVOList = listMap.get(shareId);
             if (!CollectionUtils.isEmpty(costShareLevelVOList)) {
                 i.setCalcType(costShareLevelVOList.get(0).getCalcType());
@@ -438,4 +438,5 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
         });
         return costResponsibilityLevelVOS;
     }
+
 }

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

@@ -0,0 +1,80 @@
+package com.imed.costaccount.web;
+
+import com.imed.costaccount.common.util.PageUtils;
+import com.imed.costaccount.common.util.Result;
+import com.imed.costaccount.common.util.UserContext;
+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 org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Arrays;
+
+
+/**
+ * 收入归集设置
+ *
+ * @author KCYG
+ * @date 2021-08-03 08:41:20
+ */
+@RestController
+@RequestMapping("/costAccount/costincomegroupset")
+public class CostIncomeGroupSetController{
+    @Autowired
+    private CostIncomeGroupSetService costIncomeGroupSetService;
+
+    /**
+     * 分页查询列表
+     */
+    @GetMapping("/list")
+    public Result list(@RequestParam(defaultValue = "1", value = "current") Integer current,
+                       @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize){
+        Long hospId = UserContext.getHospId();
+        PageUtils pageUtils = costIncomeGroupSetService.queryList(current,pageSize,hospId);
+        return Result.ok(pageUtils);
+    }
+
+
+    /**
+     * 根据Id获取收入归集设置数据
+     */
+    @GetMapping("/info/{id}")
+    public Result info(@PathVariable("id") Long id){
+        Long hospId = UserContext.getHospId();
+        CostIncomeGroupSetVO costIncomeGroupSetVO = costIncomeGroupSetService.getByIncomeGroupId(id,hospId);
+        return Result.ok(costIncomeGroupSetVO);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/addCostIncomeGroupSet")
+    public Result save(@RequestBody @Valid CostIncomeGroupSetSaveDto costIncomeGroupSetSaveDto){
+        Long hospId = UserContext.getHospId();
+        costIncomeGroupSetService.addCostIncomeGroupSet(costIncomeGroupSetSaveDto,hospId);
+        return Result.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PostMapping("/update")
+    public Result update(@RequestBody CostIncomeGroupSetEditDto costIncomeGroupSetEditDto){
+        Long hospId = UserContext.getHospId();
+        costIncomeGroupSetService.updateByIncomeGroup(costIncomeGroupSetEditDto,hospId);
+        return Result.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @PostMapping("/delete")
+    public Result delete(@RequestBody Long[] ids){
+		costIncomeGroupSetService.removeByIds(Arrays.asList(ids));
+        return Result.ok();
+    }
+
+}

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

@@ -36,7 +36,6 @@ public class ResponsibilityController {
         User user = (User) SecurityUtils.getSubject().getPrincipal();
         List<CostResponsibilityVO> list = responsibilityService.getList(user);
         PageUtils pageUtils = new PageUtils(list,0,0,0);
-
         return Result.ok(pageUtils);
     }
 

+ 21 - 0
src/main/resources/mapper/CostIncomeGroupSetMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.imed.costaccount.mapper.CostIncomeGroupSetMapper">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.imed.costaccount.model.CostIncomeGroupSet" id="costIncomeGroupSetMap">
+        <result property="id" column="id"/>
+        <result property="openDepartmentStatus" column="open_department_status"/>
+        <result property="openDepartmentProportion" column="open_department_proportion"/>
+        <result property="startDepartmentStatus" column="start_department_status"/>
+        <result property="startDepartmentProportion" column="start_department_proportion"/>
+        <result property="hospId" column="hosp_id"/>
+        <result property="responsibilityCode" column="responsibility_code"/>
+        <result property="accountCode" column="account_code"/>
+        <result property="createTime" column="create_time"/>
+        <result property="deleteTime" column="delete_time"/>
+    </resultMap>
+
+
+</mapper>