Browse Source

部门用款查询修改

yewc 1 year ago
parent
commit
83c208314f

+ 10 - 4
zjugis-business/src/main/java/com/zjugis/business/flow/usemoney/dao/UseMoneyDao.java

@@ -64,16 +64,22 @@ public interface UseMoneyDao extends BaseMapperX<UseMoneyDO> {
                 .and(wq -> wq.in(UseMoneyDO::getDeptId, deptIds)
                         .or()
                         .in(projectIds.size()>0,UseMoneyDO::getProjectId, projectIds)
-                        )
+                        .or()
+                        .in(ids.size()>0,UseMoneyDO::getId, ids))
                 .orderByDesc(UseMoneyDO::getApplyTime));
     }
 
-    default List<UseMoneyDO> getUseMoneyDeptList(UseMoneyPageReqVO pageReqVO, List<String> projectIds) {
+    default List<UseMoneyDO> getUseMoneyDeptList(UseMoneyPageReqVO pageReqVO, List<String> projectIds, List<String> deptIds, List<String> ids) {
         return selectList(new LambdaQueryWrapperX<UseMoneyDO>()
+                .eqIfPresent(UseMoneyDO::getUserId, pageReqVO.getUserId())
+                .eqIfPresent(UseMoneyDO::getTotalAmount, pageReqVO.getTotalAmount())
+                .likeIfPresent(UseMoneyDO::getUseMoneyNo, pageReqVO.getUseMoneyNo())
                 .in(UseMoneyDO::getFlowStatus, FLOW_FINISHED, FLOW_PAYMENT)
-                .and(wq -> wq.eq(UseMoneyDO::getDeptId, pageReqVO.getDeptId())
+                .and(wq -> wq.in(UseMoneyDO::getDeptId, deptIds)
+                        .or()
+                        .in(projectIds.size()>0,UseMoneyDO::getProjectId, projectIds)
                         .or()
-                        .in(projectIds.size()>0,UseMoneyDO::getProjectId, projectIds))
+                        .in(ids.size()>0,UseMoneyDO::getId, ids))
                 .orderByDesc(UseMoneyDO::getApplyTime));
     }
 

+ 2 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/usemoney/dao/UseMoneyDetailDao.java

@@ -5,6 +5,7 @@ import com.zjugis.business.flow.usemoney.entity.UseMoneyDetailDO;
 import com.zjugis.framework.mybatis.core.mapper.BaseMapperX;
 import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -32,5 +33,5 @@ public interface UseMoneyDetailDao extends BaseMapperX<UseMoneyDetailDO> {
 
     UseMoneyBondVO getBondData(String projectId);
 
-    List<UseMoneyDetailDO> getListByDeptId(List<String> deptProjectIds, List<String> stringList);
+    List<String> getListByDeptId(@Param("deptProjectIds")List<String> deptProjectIds, @Param("stringList")List<String> stringList);
 }

+ 1 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/usemoney/service/UseMoneyDetailService.java

@@ -17,5 +17,5 @@ public interface UseMoneyDetailService {
 
     UseMoneyBondVO getBondData(String projectId);
 
-    List<UseMoneyDetailDO> getListByDeptId(List<String> deptProjectIds,List<String> stringList);
+    List<String> getListByDeptId(List<String> deptProjectIds,List<String> stringList);
 }

+ 1 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/usemoney/service/UseMoneyDetailServiceImpl.java

@@ -37,7 +37,7 @@ public class UseMoneyDetailServiceImpl implements UseMoneyDetailService {
     }
 
     @Override
-    public List<UseMoneyDetailDO> getListByDeptId(List<String> deptProjectIds,List<String> stringList) {
+    public List<String> getListByDeptId(List<String> deptProjectIds,List<String> stringList) {
         return useMoneyDetailDao.getListByDeptId(deptProjectIds,stringList);
     }
 }

+ 7 - 4
zjugis-business/src/main/java/com/zjugis/business/flow/usemoney/service/UseMoneyServiceImpl.java

@@ -190,9 +190,8 @@ public class UseMoneyServiceImpl implements UseMoneyService {
         Set<String> dept=commonService.getDeptCondition(pageReqVO.getDeptId());
         List<String> stringList = Arrays.asList(dept.toArray(new String[0]));
         //如果是代码,详情中有该部门的也要查询出来
-        List<UseMoneyDetailDO> detail=useMoneyDetailService.getListByDeptId(deptProjectIds,stringList);
-        List<String> listString = detail.stream().map(map -> map.getId()).collect(Collectors.toList());
-        PageResult<UseMoneyDO> pageResult = useMoneyDao.getUseMoneyDeptPage(pageReqVO, deptProjectIds,stringList,listString);
+        List<String> ids=useMoneyDetailService.getListByDeptId(deptProjectIds,stringList);
+        PageResult<UseMoneyDO> pageResult = useMoneyDao.getUseMoneyDeptPage(pageReqVO, deptProjectIds,stringList,ids);
         PageResult<UseMoneyRespVO> useMoneyRespVOPageResult = getUseMoneyRespVOPageResult(pageResult);
         return useMoneyRespVOPageResult;
     }
@@ -321,7 +320,11 @@ public class UseMoneyServiceImpl implements UseMoneyService {
     public UseMoneyOverviewVO getUseMoneyOverviewDept(UseMoneyPageReqVO pageReqVO) {
         List<Project> projects = projectService.selectByDeptId(pageReqVO.getDeptId());
         List<String> deptProjectIds = convertList(projects, Project::getId);
-        List<UseMoneyDO> useMoneyDeptList = useMoneyDao.getUseMoneyDeptList(pageReqVO, deptProjectIds);
+        Set<String> dept=commonService.getDeptCondition(pageReqVO.getDeptId());
+        List<String> stringList = Arrays.asList(dept.toArray(new String[0]));
+        //如果是代码,详情中有该部门的也要查询出来
+        List<String> ids=useMoneyDetailService.getListByDeptId(deptProjectIds,stringList);
+        List<UseMoneyDO> useMoneyDeptList = useMoneyDao.getUseMoneyDeptList(pageReqVO, deptProjectIds,stringList,ids);
         UseMoneyOverviewVO result = new UseMoneyOverviewVO();
         double totalAmount = useMoneyDeptList.stream().collect(Collectors.summarizingDouble(value -> value.getTotalAmount().doubleValue())).getSum();
         double totalUseAmount = useMoneyDeptList.stream().filter(useMoneyDO -> useMoneyDO.getFlowStatus() == FLOW_FINISHED).collect(Collectors.summarizingDouble(value -> value.getTotalAmount().doubleValue())).getSum();

+ 18 - 0
zjugis-business/src/main/resources/mapper/oracle/UseMoneyDetailMapper.xml

@@ -15,4 +15,22 @@
 
           and T.COST_TYPE='1401' and T1.FLOW_STATUS=90 AND T1.ISVALID = 1 AND T.ISVALID = 1
     </select>
+
+    <select id="getListByDeptId" resultType="java.lang.String">
+        select USE_MONEY_ID from WF_USE_MONEY_DETAIL
+        <where>
+            <if test="stringList!= null and stringList.size > 0">
+                AND DEPT_ID in
+                <foreach collection="stringList" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="deptProjectIds!= null and deptProjectIds.size > 0">
+                or PROJECT_ID in
+                <foreach collection="deptProjectIds" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 </mapper>