ljx %!s(int64=4) %!d(string=hai) anos
pai
achega
ae16426bd2

+ 10 - 1
src/main/java/com/imed/costaccount/mapper/CostAccountShareMapper.java

@@ -3,6 +3,9 @@ package com.imed.costaccount.mapper;
 import com.imed.costaccount.model.CostAccountShare;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 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
 public interface CostAccountShareMapper extends BaseMapper<CostAccountShare> {
-	
+    /**
+     * 查询当前会计科目对应的
+     * @param accountIdList 会计科目的Id集合
+     * @return
+     */
+
+    List<Long> getResponsibilityIdsByAccountId(@Param("accountIdList") List<String> accountIdList);
 }

+ 12 - 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.ShareParamProportionVO;
 import com.imed.costaccount.service.*;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -32,7 +33,7 @@ import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
-
+@Slf4j
 @Service("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()
                 .eq(Responsibility::getHospId, hospId)).stream().collect(Collectors.toMap(Responsibility::getId, synOne -> synOne));
         long millis = System.currentTimeMillis();
+
         responsibilityIds.forEach(i -> {
             CostAccountShare accountShareRequest = BeanUtil.convertObj(costAccountShare, CostAccountShare.class);
             accountShareRequest.setId(null);
@@ -398,12 +400,17 @@ public class CostAccountShareServiceImpl extends ServiceImpl<CostAccountShareMap
         List<Long> costShareIds = costShareLevelService.list(new QueryWrapper<CostShareLevel>().lambda()
                 .eq(CostShareLevel::getHospId, hospId).eq(CostShareLevel::getCalcType, calcType))
                 .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<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());
         return responsibilityList;
     }
 

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

@@ -20,6 +20,18 @@
         <result property="createTime" column="create_time"/>
         <result property="deleteTime" column="delete_time"/>
     </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>