ソースを参照

Merge branch 'master' of huangrui/CostAccount into dev

lijiaxi 4 年 前
コミット
be6b5c457a

+ 11 - 2
src/main/java/com/imed/costaccount/mapper/CostAccountShareMapper.java

@@ -1,8 +1,11 @@
 package com.imed.costaccount.mapper;
 package com.imed.costaccount.mapper;
 
 
-import com.imed.costaccount.model.CostAccountShare;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.imed.costaccount.model.CostAccountShare;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 /**
 /**
  * 责任中心成本对照表
  * 责任中心成本对照表
@@ -12,5 +15,11 @@ import org.apache.ibatis.annotations.Mapper;
  */
  */
 @Mapper
 @Mapper
 public interface CostAccountShareMapper extends BaseMapper<CostAccountShare> {
 public interface CostAccountShareMapper extends BaseMapper<CostAccountShare> {
-	
+    /**
+     * 查询当前会计科目对应的
+     * @param accountIdList 会计科目的Id集合
+     * @return
+     */
+
+    List<Long> getResponsibilityIdsByAccountId(@Param("accountIdList") List<String> accountIdList);
 }
 }

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

@@ -21,6 +21,7 @@ import com.imed.costaccount.model.vo.CostShareParamStatusVO;
 import com.imed.costaccount.model.vo.CostShareParamVO;
 import com.imed.costaccount.model.vo.CostShareParamVO;
 import com.imed.costaccount.model.vo.ShareParamProportionVO;
 import com.imed.costaccount.model.vo.ShareParamProportionVO;
 import com.imed.costaccount.service.*;
 import com.imed.costaccount.service.*;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Propagation;
@@ -32,7 +33,7 @@ import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
-
+@Slf4j
 @Service("costAccountShareService")
 @Service("costAccountShareService")
 public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMapper, CostAccountShare> implements CostAccountShareService {
 public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMapper, CostAccountShare> implements CostAccountShareService {
 
 
@@ -359,6 +360,7 @@ public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMap
         Map<Long, Responsibility> responsibilityMap = responsibilityService.list(new QueryWrapper<Responsibility>().lambda()
         Map<Long, Responsibility> responsibilityMap = responsibilityService.list(new QueryWrapper<Responsibility>().lambda()
                 .eq(Responsibility::getHospId, hospId)).stream().collect(Collectors.toMap(Responsibility::getId, synOne -> synOne));
                 .eq(Responsibility::getHospId, hospId)).stream().collect(Collectors.toMap(Responsibility::getId, synOne -> synOne));
         long millis = System.currentTimeMillis();
         long millis = System.currentTimeMillis();
+
         responsibilityIds.forEach(i -> {
         responsibilityIds.forEach(i -> {
             CostAccountShare accountShareRequest = BeanUtil.convertObj(costAccountShare, CostAccountShare.class);
             CostAccountShare accountShareRequest = BeanUtil.convertObj(costAccountShare, CostAccountShare.class);
             accountShareRequest.setId(null);
             accountShareRequest.setId(null);
@@ -398,12 +400,19 @@ public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMap
         List<Long> costShareIds = costShareLevelService.list(new QueryWrapper<CostShareLevel>().lambda()
         List<Long> costShareIds = costShareLevelService.list(new QueryWrapper<CostShareLevel>().lambda()
                 .eq(CostShareLevel::getHospId, hospId).eq(CostShareLevel::getCalcType, calcType))
                 .eq(CostShareLevel::getHospId, hospId).eq(CostShareLevel::getCalcType, calcType))
                 .stream().map(CostShareLevel::getId).distinct().collect(Collectors.toList());
                 .stream().map(CostShareLevel::getId).distinct().collect(Collectors.toList());
-        // 筛选责任中心里面符合指定类型的责任中心
+        String accountingIds = costAccountShare.getAccountingIds();
+        List<Long> responsibilityIdList=null;
+        if (StrUtil.isNotBlank(accountingIds)){
+            List<String> accountIdList = Arrays.asList(accountingIds.split(StrUtil.COMMA));
+            responsibilityIdList= baseMapper.getResponsibilityIdsByAccountId(accountIdList);
+        }
         // 筛选指定类型的责任中心 并且当前没有设置的责任中心
         // 筛选指定类型的责任中心 并且当前没有设置的责任中心
+        List<Long> finalResponsibilityIdList = responsibilityIdList;
         List<Responsibility> responsibilityList = responsibilityService.list(new QueryWrapper<Responsibility>().lambda()
         List<Responsibility> responsibilityList = responsibilityService.list(new QueryWrapper<Responsibility>().lambda()
-                .eq(Responsibility::getHospId, hospId).ne(Responsibility::getShareId,NumberConstant.ZERO));
-        responsibilityList=responsibilityList.stream()
-                .filter(i -> costShareIds.contains(i.getShareId()) && !responsibilityId.equals(i.getId())).collect(Collectors.toList());
+                .eq(Responsibility::getHospId, hospId)
+                .ne(Responsibility::getShareId,NumberConstant.ZERO))
+                .stream().filter(i -> costShareIds.contains(i.getShareId()) && !responsibilityId.equals(i.getId())).collect(Collectors.toList());
+//        && (CollUtil.isNotEmpty(finalResponsibilityIdList) && !finalResponsibilityIdList.contains(i.getId()))
         return responsibilityList;
         return responsibilityList;
     }
     }
 
 

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

@@ -1,7 +1,6 @@
 package com.imed.costaccount.service.impl;
 package com.imed.costaccount.service.impl;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.ReUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -15,7 +14,6 @@ import com.imed.costaccount.model.User;
 import com.imed.costaccount.model.dto.CopyReportDTO;
 import com.imed.costaccount.model.dto.CopyReportDTO;
 import com.imed.costaccount.model.dto.ReportFormEditDTO;
 import com.imed.costaccount.model.dto.ReportFormEditDTO;
 import com.imed.costaccount.model.dto.ReportFormSaveDTO;
 import com.imed.costaccount.model.dto.ReportFormSaveDTO;
-import com.imed.costaccount.model.vo.RelationVO;
 import com.imed.costaccount.model.vo.ReportFormVO;
 import com.imed.costaccount.model.vo.ReportFormVO;
 import com.imed.costaccount.service.ReportFormService;
 import com.imed.costaccount.service.ReportFormService;
 import com.imed.costaccount.service.ReportRelationService;
 import com.imed.costaccount.service.ReportRelationService;
@@ -159,6 +157,9 @@ public class ReportFormServiceImpl extends ServiceImpl<ReportFormMapper, ReportF
      */
      */
     private void checkCalcFormula(String calcFormula, Long hospId, Integer reportType) {
     private void checkCalcFormula(String calcFormula, Long hospId, Integer reportType) {
         // 校验公式不存在单独的'[' 或 ']',中括号未闭合
         // 校验公式不存在单独的'[' 或 ']',中括号未闭合
+        if (StrUtil.isBlank(calcFormula)){
+            throw new CostException("计算公式未传递");
+        }
         boolean flag = CommonUtil.whetherStringClose(calcFormula);
         boolean flag = CommonUtil.whetherStringClose(calcFormula);
         if (!flag) {
         if (!flag) {
             throw new CostException("计算公式错误,英文中括号未正确闭合");
             throw new CostException("计算公式错误,英文中括号未正确闭合");

+ 12 - 0
src/main/resources/mapper/CostAccountShareMapper.xml

@@ -20,6 +20,18 @@
         <result property="createTime" column="create_time"/>
         <result property="createTime" column="create_time"/>
         <result property="deleteTime" column="delete_time"/>
         <result property="deleteTime" column="delete_time"/>
     </resultMap>
     </resultMap>
+    <select id="getResponsibilityIdsByAccountId" resultType="java.lang.Long">
+
+        <foreach collection="accountIdList" item="item" separator="," open="(" close=")" index="index">
+            select distinct  responsibility_id
+            from cost_account_share
+            where delete_time=0 and
+             (accounting_ids LIKE CONCAT( #{item}, ",", "%" )
+            OR accounting_ids LIKE CONCAT( #{item} )
+            OR accounting_ids LIKE CONCAT( "%",",",  #{item} )
+            OR accounting_ids LIKE CONCAT("%",",",#{item},",","%"))
+        </foreach>
+    </select>
 
 
 
 
 </mapper>
 </mapper>