Browse Source

成本参数的添加和修改操作

ljx 4 năm trước cách đây
mục cha
commit
b5ca4964e6

+ 36 - 0
src/main/java/com/imed/costaccount/model/dto/CostShareParamEditDto.java

@@ -0,0 +1,36 @@
+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-07-28 15:34
+ */
+@Data
+@ApiModel("修改分摊参数对象")
+public class CostShareParamEditDto {
+    @ApiModelProperty(name = "shareParamName",value = "原始分摊参数Id不能为空")
+    @NotNull(message = "原始分摊参数Id不能为空")
+    private Integer id;
+
+    @ApiModelProperty(name = "shareParamName",value = "分摊参数名称不能为空")
+    @NotNull(message = "分摊参数名称不能为空")
+    private String shareParamName;
+
+    @ApiModelProperty(name = "shareParamCode",value = "分摊参数代码的代码")
+    @NotNull(message = "分摊参数代码不能为空")
+    private String shareParamCode;
+    /**
+     * 医院Id
+     */
+    private Integer hospId;
+
+    @ApiModelProperty(name = "calcType",value = "分摊参数的计算方式")
+    @NotNull(message = "分摊参数计算方式不能为空")
+    private Integer calcType;
+}

+ 32 - 0
src/main/java/com/imed/costaccount/model/dto/CostShareParamSaveDto.java

@@ -0,0 +1,32 @@
+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-07-28 15:00
+ */
+@Data
+@ApiModel("保存分摊参数对象")
+public class CostShareParamSaveDto {
+    @ApiModelProperty(name = "shareParamName",value = "分摊参数名称不能为空")
+    @NotNull(message = "分摊参数名称不能为空")
+    private String shareParamName;
+
+    @ApiModelProperty(name = "shareParamCode",value = "分摊参数代码的代码")
+    @NotNull(message = "分摊参数代码不能为空")
+    private String shareParamCode;
+    /**
+     * 医院Id
+     */
+    private Integer hospId;
+
+    @ApiModelProperty(name = "calcType",value = "分摊参数的计算方式")
+    @NotNull(message = "分摊参数计算方式不能为空")
+    private Integer calcType;
+}

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

@@ -16,10 +16,10 @@ public class CostShareParamVO {
     @ApiModelProperty(name = "id",value = "分摊参数的Id")
     @ApiModelProperty(name = "id",value = "分摊参数的Id")
     private Integer id;
     private Integer id;
 
 
-    @ApiModelProperty(name = "shareParamName",value = "分摊层级的名称")
+    @ApiModelProperty(name = "shareParamName",value = "分摊参数的名称")
     private String shareParamName;
     private String shareParamName;
 
 
-    @ApiModelProperty(name = "shareParamCode",value = "分摊层级的代码")
+    @ApiModelProperty(name = "shareParamCode",value = "分摊参数的代码")
     private String shareParamCode;
     private String shareParamCode;
 
 
     @ApiModelProperty(name = "calcType",value = "分摊参数的计算方式")
     @ApiModelProperty(name = "calcType",value = "分摊参数的计算方式")

+ 14 - 0
src/main/java/com/imed/costaccount/service/CostShareParamService.java

@@ -3,6 +3,8 @@ package com.imed.costaccount.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.model.CostShareParam;
 import com.imed.costaccount.model.CostShareParam;
+import com.imed.costaccount.model.dto.CostShareParamEditDto;
+import com.imed.costaccount.model.dto.CostShareParamSaveDto;
 
 
 /**
 /**
  * 分摊参数对照表
  * 分摊参数对照表
@@ -20,5 +22,17 @@ public interface CostShareParamService extends IService<CostShareParam> {
      * @return
      * @return
      */
      */
     PageUtils queryList(Integer page, Integer pageSize, String name,Integer hospId);
     PageUtils queryList(Integer page, Integer pageSize, String name,Integer hospId);
+
+    /**
+     * 保存分摊参数
+     * @param costShareParamSaveDto
+     */
+    void addCostShareParam(CostShareParamSaveDto costShareParamSaveDto);
+
+    /**
+     * 修改分摊参数
+     * @param costShareParamEditDto
+     */
+    void updateCostShareParam(CostShareParamEditDto costShareParamEditDto);
 }
 }
 
 

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

@@ -3,16 +3,25 @@ package com.imed.costaccount.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.BeanUtil;
 import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.mapper.CostShareParamMapper;
 import com.imed.costaccount.mapper.CostShareParamMapper;
 import com.imed.costaccount.model.CostShareParam;
 import com.imed.costaccount.model.CostShareParam;
+import com.imed.costaccount.model.dto.CostShareParamEditDto;
+import com.imed.costaccount.model.dto.CostShareParamSaveDto;
 import com.imed.costaccount.model.vo.CostShareParamVO;
 import com.imed.costaccount.model.vo.CostShareParamVO;
 import com.imed.costaccount.service.CostShareParamService;
 import com.imed.costaccount.service.CostShareParamService;
 import org.springframework.stereotype.Service;
 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 org.springframework.util.StringUtils;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 
 
 @Service("costShareParamService")
 @Service("costShareParamService")
@@ -39,4 +48,59 @@ public class CostShareParamServiceImpl extends ServiceImpl<CostShareParamMapper,
         pageUtils.setList(costShareParamVOList);
         pageUtils.setList(costShareParamVOList);
         return pageUtils;
         return pageUtils;
     }
     }
+
+    /**
+     * 保存分摊参数
+     * 保存的时候需要校验分摊参数
+     * @param costShareParamSaveDto
+     */
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    public void addCostShareParam(CostShareParamSaveDto costShareParamSaveDto) {
+        //检验分摊参数是存在
+        getCostShareParamByCode(costShareParamSaveDto);
+        CostShareParam costShareParam = BeanUtil.convertObj(costShareParamSaveDto, CostShareParam.class);
+        costShareParam.setCreateTime(System.currentTimeMillis());
+        baseMapper.insert(costShareParam);
+    }
+    /**
+     * 检验分摊参数是存在
+     */
+    private void getCostShareParamByCode(CostShareParamSaveDto costShareParamSaveDto) {
+        List<CostShareParam> costShareParamList = baseMapper.selectList(new QueryWrapper<CostShareParam>().lambda()
+                .eq(CostShareParam::getHospId, costShareParamSaveDto.getHospId()));
+        // 检验添加的分摊参数是否存在
+        if (!CollectionUtils.isEmpty(costShareParamList)){
+            Map<String, List<CostShareParam>> costShareMap = costShareParamList.stream().collect(Collectors.groupingBy(CostShareParam::getShareParamCode));
+            if (!CollectionUtils.isEmpty(costShareMap.get(costShareParamSaveDto.getShareParamCode()))){
+                throw new CostException(500,"分摊参数已存在");
+            }
+        }
+    }
+
+    /**
+     * 修改分摊参数
+     *
+     * @param costShareParamEditDto
+     */
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
+    public void updateCostShareParam(CostShareParamEditDto costShareParamEditDto) {
+        Integer id = costShareParamEditDto.getId();
+        CostShareParam costShareParam = baseMapper.selectById(id);
+        if (Objects.isNull(costShareParam)){
+            throw new CostException(500,"对不起分摊参数不存在");
+        }
+        baseMapper.deleteById(id);
+        // 判断当前输入的Code以最初的Code是否一样
+        List<CostShareParam> costShareParamList = baseMapper.selectList(new QueryWrapper<CostShareParam>().lambda().select(CostShareParam::getShareParamCode).eq(CostShareParam::getHospId, costShareParamEditDto.getHospId()));
+        Map<String, List<CostShareParam>> map = costShareParamList.stream().collect(Collectors.groupingBy(CostShareParam::getShareParamCode));
+        if (!CollectionUtils.isEmpty(map.get(costShareParamEditDto.getShareParamCode()))){
+            throw new CostException(500,"对不起分摊参数代码已存在");
+        }
+        // TODO 如果修改的是按对应科目 修改对应的科目需要补充
+        CostShareParam costShareParamRequest = BeanUtil.convertObj(costShareParamEditDto, CostShareParam.class);
+        costShareParamRequest.setCreateTime(System.currentTimeMillis());
+        baseMapper.insert(costShareParamRequest);
+    }
 }
 }

+ 11 - 8
src/main/java/com/imed/costaccount/service/impl/ResponsibilityServiceImpl.java

@@ -3,23 +3,22 @@ package com.imed.costaccount.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.imed.costaccount.common.exception.CostException;
 import com.imed.costaccount.common.exception.CostException;
+import com.imed.costaccount.constants.NumberConstant;
 import com.imed.costaccount.enums.ErrorCodeEnum;
 import com.imed.costaccount.enums.ErrorCodeEnum;
+import com.imed.costaccount.mapper.ResponsibilityMapper;
+import com.imed.costaccount.model.Responsibility;
 import com.imed.costaccount.model.User;
 import com.imed.costaccount.model.User;
 import com.imed.costaccount.model.dto.ResponsibilityEditDTO;
 import com.imed.costaccount.model.dto.ResponsibilityEditDTO;
 import com.imed.costaccount.model.dto.ResponsibilitySaveDTO;
 import com.imed.costaccount.model.dto.ResponsibilitySaveDTO;
 import com.imed.costaccount.model.vo.CenterDepartmentVO;
 import com.imed.costaccount.model.vo.CenterDepartmentVO;
 import com.imed.costaccount.model.vo.CommonVO;
 import com.imed.costaccount.model.vo.CommonVO;
 import com.imed.costaccount.model.vo.CostResponsibilityVO;
 import com.imed.costaccount.model.vo.CostResponsibilityVO;
+import com.imed.costaccount.service.ResponsibilityService;
 import com.imed.costaccount.utils.BeanUtil;
 import com.imed.costaccount.utils.BeanUtil;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.beanutils.BeanUtilsBean;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-import com.imed.costaccount.mapper.ResponsibilityMapper;
-import com.imed.costaccount.model.Responsibility;
-import com.imed.costaccount.service.ResponsibilityService;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -62,7 +61,11 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
                 i.setChild(child);
                 i.setChild(child);
             }
             }
         }));
         }));
-
+        parentCostResponsibility.forEach(i->{
+            if (NumberConstant.ZERO.equals(i.getParentId())){
+                i.setShareLevel(null);
+            }
+        });
         return parentCostResponsibility;
         return parentCostResponsibility;
     }
     }
 
 
@@ -92,7 +95,7 @@ public class ResponsibilityServiceImpl extends ServiceImpl<ResponsibilityMapper,
         }
         }
 
 
         Responsibility center = BeanUtil.convertObj(responsibilitySaveDTO, Responsibility.class);
         Responsibility center = BeanUtil.convertObj(responsibilitySaveDTO, Responsibility.class);
-        center.setCreateTime(new Date().getTime()).setId(null).setParentId(id).setHospId(user.getHospId()).setResponsibilityLevel(2);
+        center.setCreateTime(System.currentTimeMillis()).setId(null).setParentId(id).setHospId(user.getHospId()).setResponsibilityLevel(2);
         if (id == 0) {
         if (id == 0) {
             center.setResponsibilityLevel(1);
             center.setResponsibilityLevel(1);
             center.setShareLevel(0);
             center.setShareLevel(0);

+ 16 - 6
src/main/java/com/imed/costaccount/web/CostShareParamController.java

@@ -4,6 +4,8 @@ import com.imed.costaccount.common.util.PageUtils;
 import com.imed.costaccount.common.util.Result;
 import com.imed.costaccount.common.util.Result;
 import com.imed.costaccount.model.CostShareParam;
 import com.imed.costaccount.model.CostShareParam;
 import com.imed.costaccount.model.User;
 import com.imed.costaccount.model.User;
+import com.imed.costaccount.model.dto.CostShareParamEditDto;
+import com.imed.costaccount.model.dto.CostShareParamSaveDto;
 import com.imed.costaccount.service.CostShareParamService;
 import com.imed.costaccount.service.CostShareParamService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
@@ -31,7 +33,7 @@ public class CostShareParamController {
      * 分页查询列表
      * 分页查询列表
      */
      */
     @GetMapping("/list")
     @GetMapping("/list")
-    @ApiOperation("分页查询成本相关参数")
+    @ApiOperation("分页查询成本分摊相关参数")
     public Result list(@RequestParam(defaultValue = "1", value = "page") Integer page,
     public Result list(@RequestParam(defaultValue = "1", value = "page") Integer page,
                        @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
                        @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
                         @RequestParam(value = "name",required = false) String name){
                         @RequestParam(value = "name",required = false) String name){
@@ -43,7 +45,7 @@ public class CostShareParamController {
 
 
 
 
     /**
     /**
-     * 信息
+     * 添加对应成本科目
      */
      */
     @GetMapping("/info/{id}")
     @GetMapping("/info/{id}")
     public Result info(@PathVariable("id") Integer id){
     public Result info(@PathVariable("id") Integer id){
@@ -55,8 +57,12 @@ public class CostShareParamController {
      * 保存
      * 保存
      */
      */
     @PostMapping("/save")
     @PostMapping("/save")
-    public Result save(@RequestBody CostShareParam costShareParam){
-		costShareParamService.save(costShareParam);
+    @ApiOperation("添加分摊参数信息")
+    public Result save(@RequestBody CostShareParamSaveDto costShareParamSaveDto){
+        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        Integer hospId = user.getHospId();
+        costShareParamSaveDto.setHospId(hospId);
+		costShareParamService.addCostShareParam(costShareParamSaveDto);
         return Result.ok();
         return Result.ok();
     }
     }
 
 
@@ -64,8 +70,12 @@ public class CostShareParamController {
      * 修改
      * 修改
      */
      */
     @PostMapping("/update")
     @PostMapping("/update")
-    public Result update(@RequestBody CostShareParam costShareParam){
-		costShareParamService.updateById(costShareParam);
+    @ApiOperation("修改参数信息")
+    public Result update(@RequestBody CostShareParamEditDto costShareParamEditDto){
+        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        Integer hospId = user.getHospId();
+        costShareParamEditDto.setHospId(hospId);
+		costShareParamService.updateCostShareParam(costShareParamEditDto);
         return Result.ok();
         return Result.ok();
     }
     }
 
 

+ 1 - 1
src/main/resources/application.yml

@@ -27,4 +27,4 @@ logging:
 cost:
 cost:
   jwt:
   jwt:
     secret: 12321312asdsdsfdfsd
     secret: 12321312asdsdsfdfsd
-    expire: 1
+    expire: 1000