|
@@ -3,16 +3,25 @@ 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.mapper.CostShareParamMapper;
|
|
|
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.service.CostShareParamService;
|
|
|
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("costShareParamService")
|
|
@@ -39,4 +48,59 @@ public class CostShareParamServiceImpl extends ServiceImpl<CostShareParamMapper,
|
|
|
pageUtils.setList(costShareParamVOList);
|
|
|
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);
|
|
|
+ }
|
|
|
}
|