Browse Source

修复项目成本查询诸多bug

longw 1 year ago
parent
commit
27577df387

+ 5 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/mapper/ProjectCostMapper.java

@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Select;
 import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCost.vo.ProjectCostVO;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -38,4 +39,8 @@ public interface ProjectCostMapper extends BaseMapper<ProjectCost> {
     List<String>  queryXdbmTasknoListbydepartNames(@Param("departNames") List<String>  departNames);
     @Select("select taskno from kzks_project_cost")
     List<String>  queryTasknoListAll();
+
+    List<String> getTaskNoListByRefTaskNo(@Param("taskNos") List<String> taskNos);
+
+    Integer getYzslSumByTaskNos(@Param("taskNos") List<String> taskList);
 }

+ 15 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/mapper/xml/ProjectCostMapper.xml

@@ -47,5 +47,20 @@
             #{item}
         </foreach>
     </select>
+    <select id="getTaskNoListByRefTaskNo" resultType="java.lang.String">
+        select taskno from kzks_project_cost where status != 1 and reftaskno IN
+        <foreach collection="taskNos" index="index" item="taskNo" open="(" separator="," close=")">
+            #{taskNo}
+        </foreach>
+    </select>
+    <select id="getYzslSumByTaskNos" resultType="java.lang.Integer">
+        select sum(yzsl)
+        from kzks_project_cost
+        where status != 1
+          and taskno in
+        <foreach collection="taskNos" index="index" item="taskNo" open="(" separator="," close=")">
+            #{taskNo}
+        </foreach>
+    </select>
 
 </mapper>

+ 5 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/service/IProjectCostService.java

@@ -8,6 +8,7 @@ import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCost.vo.ProjectCostListVO;
 import org.jeecg.modules.projectCost.vo.ProjectCostVO;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -41,4 +42,8 @@ public interface IProjectCostService extends IService<ProjectCost> {
 
 
     Page<ProjectCost> getCostListPage(Page<ProjectCost> page1, QueryWrapper<ProjectCost> query);
+
+    List<String> getTaskNoListByRefTaskNo(List<String> taskNos);
+
+    Integer getYzslSumByTaskNos(List<String> taskList);
 }

+ 11 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/service/impl/ProjectCostServiceImpl.java

@@ -15,6 +15,7 @@ import org.jeecg.modules.projectCost.vo.ProjectCostVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -78,4 +79,14 @@ public class ProjectCostServiceImpl extends ServiceImpl<ProjectCostMapper, Proje
     public Page<ProjectCost> getCostListPage(Page<ProjectCost> page1, QueryWrapper<ProjectCost> query) {
         return projectCostMapper.selectPage(page1,query);
     }
+
+    @Override
+    public List<String> getTaskNoListByRefTaskNo(List<String> taskNos) {
+        return projectCostMapper.getTaskNoListByRefTaskNo(taskNos) ;
+    }
+
+    @Override
+    public Integer getYzslSumByTaskNos(List<String> taskList) {
+        return projectCostMapper.getYzslSumByTaskNos(taskList);
+    }
 }

+ 116 - 36
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/controller/ProjectCostHuijiController.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.projectCostHuiji.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -110,22 +111,41 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
                                         @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                         HttpServletRequest req) {
 
-        ProjectCostHuijiSumVO chcheResult = (ProjectCostHuijiSumVO) redisUtil.get(CacheKey.PROJECT_COST_HUIJI + ":" + pageNo + "&" + pageSize + ":" + projectCostHuiji.toString());
+
+        String superQueryParams = Arrays.toString(req.getParameterMap().get("superQueryParams"));
+        ProjectCostHuijiSumVO chcheResult = (ProjectCostHuijiSumVO) redisUtil.get(CacheKey.PROJECT_COST_HUIJI + ":" + projectCostHuiji.toString() + ":" + superQueryParams + ":" + pageNo + "&" + pageSize);
         if (ObjectUtils.isNotEmpty(chcheResult)) return Result.ok(chcheResult);
 
         ProjectCostHuijiSumVO sumVO = new ProjectCostHuijiSumVO();
 
+        QueryWrapper<ProjectCostHuiji> queryWrapper = QueryGenerator.initQueryWrapper(projectCostHuiji, req.getParameterMap());
+
+        List<String> taskNos;
+        if (!superQueryParams.isEmpty() && !"[%5B%5D]".equals(superQueryParams) || ObjectUtils.anyNotNull(projectCostHuiji)) {
+            List<ProjectCostHuiji> resultList = projectCostHuijiService.selectList(queryWrapper);
+            taskNos = resultList.stream().map(ProjectCostHuiji::getTaskno).collect(Collectors.toList());
+        } else {
+            taskNos = new ArrayList<>();
+        }
+
         CompletableFuture<ProjectCostHuiji> huijiFuture = CompletableFuture.supplyAsync(() -> {
-            return projectCostHuijiService.costHJSum(projectCostHuiji);//汇集总和
+            if (taskNos.isEmpty())
+                return projectCostHuijiService.costHJSum(projectCostHuiji);//汇集总和
+            return projectCostHuijiService.costHJSumByTaskNoList(taskNos);
         });
 
+        if (!taskNos.isEmpty()) {
+            List<String> taskNoListByRefTaskNo = costService.getTaskNoListByRefTaskNo(taskNos);
+            taskNos.addAll(taskNoListByRefTaskNo);
+        }
+
         CompletableFuture<KzksProjectCostYs> ysFuture = CompletableFuture.supplyAsync(() -> {
-            return costYsService.selectSumClys();
+            if (taskNos.isEmpty())
+                return costYsService.selectSumClys();
+            return costYsService.selectSumClysByTaskNos(taskNos);
         });
 
-        QueryWrapper<ProjectCostHuiji> queryWrapper = QueryGenerator.initQueryWrapper(projectCostHuiji, req.getParameterMap());
         Page<ProjectCostHuiji> page = new Page<>(pageNo, pageSize);
-
         CompletableFuture<Page<ProjectCostHuiji>> pageFuture = CompletableFuture.supplyAsync(() -> {
             return projectCostHuijiService.costHuijPage(page, queryWrapper);
         });
@@ -135,6 +155,7 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
         ProjectCostHuiji huiji = huijiFuture.join();
         Page<ProjectCostHuiji> pageList = pageFuture.join();
         KzksProjectCostYs ys = ysFuture.join();
+        if (ys == null) ys = new KzksProjectCostYs();
         if (ObjectUtils.isEmpty(ys.getClys())) ys.setClys(BigDecimal.valueOf(0));
         if (ObjectUtils.isEmpty(ys.getWxys())) ys.setWxys(BigDecimal.valueOf(0));
         if (pageList != null && !pageList.getRecords().isEmpty()) {//costYsService
@@ -194,57 +215,116 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
             sumVO.setProjectCostHuijiSum(resultHuiJiVo);
             sumVO.setPageList(pageList1);
 
-                redisUtil.set(CacheKey.PROJECT_COST_HUIJI + ":" + pageNo + "&" + pageSize + ":" + projectCostHuiji.toString(), sumVO, 1000L * 60 * 60 * 10);
+            redisUtil.set(CacheKey.PROJECT_COST_HUIJI + ":" + projectCostHuiji.toString() + ":" + superQueryParams + ":" + pageNo + "&" + pageSize, sumVO, 1000L * 60 * 60 * 10);
 
             return Result.OK(sumVO);
         } else {
             ProjectCost projectCost = new ProjectCost();
             BeanUtils.copyProperties(projectCostHuiji, projectCost);
             QueryWrapper<ProjectCost> query = QueryGenerator.initQueryWrapper(projectCost, req.getParameterMap());
-            Page<ProjectCost> page1 = new Page<ProjectCost>(pageNo, pageSize);
-            Page<ProjectCost> projectCosts = costService.getCostListPage(page1, query);
-
-            ProjectCostHuiji projectCostHuiji1 = projectCostHuijiService.costHJSumByProjectCost(projectCost);
-            Integer yzsl = projectCostHuijiService.costHJYzslByProjectCost(projectCost);
-            if (ObjectUtils.isEmpty(yzsl)) yzsl = 0;
-            projectCostHuiji1.setYzsl(yzsl);
-            ArrayList<ProjectCostVO> projectCostVOS = new ArrayList<>();
-
-            BigDecimal clysSum = BigDecimal.valueOf(0);
-            BigDecimal wxysSum = BigDecimal.valueOf(0);
-
-            for (ProjectCost record : projectCosts.getRecords()) {
-                ProjectCostVO projectCostVO = new ProjectCostVO();
-                BeanUtils.copyProperties(record, projectCostVO);
-                KzksProjectCostYs kzksProjectCostYs = costYsService.selectYSByTaskno(record.getTaskno());
-
-                BigDecimal clys = BigDecimal.valueOf(0);
-                BigDecimal wxys = BigDecimal.valueOf(0);
 
-                if (ObjectUtils.isNotEmpty(kzksProjectCostYs)) {
-                    if (ObjectUtils.isNotEmpty(kzksProjectCostYs.getClys())) clys = kzksProjectCostYs.getClys();
-                    if (ObjectUtils.isNotEmpty(kzksProjectCostYs.getWxys())) wxys = kzksProjectCostYs.getWxys();
+            //根据条件分页查询任务
+            CompletableFuture<Page<ProjectCost>> pageCompletableFuture = CompletableFuture.supplyAsync(() -> {
+                Page<ProjectCost> page1 = new Page<ProjectCost>(pageNo, pageSize);
+                return costService.getCostListPage(page1, query);
+            });
+
+            //根据条件查询所有满足条件的任务号
+            CompletableFuture<List<String>> listCompletableFuture = CompletableFuture.supplyAsync(() -> {
+                List<ProjectCost> costs = costService.projectCostlist(query);
+                return costs.stream().map(ProjectCost::getTaskno).collect(Collectors.toList());
+            });
+
+            CompletableFuture<Void> future = CompletableFuture.allOf(pageCompletableFuture, listCompletableFuture);
+            future.join();
+            Page<ProjectCost> projectCosts = pageCompletableFuture.join();
+            List<String> taskList = listCompletableFuture.join();
+
+            CompletableFuture<ProjectCostHuiji> projectCostHuijiCompletableFuture = CompletableFuture.supplyAsync(() -> {
+                //如果是普通查询就走这个方法
+                ProjectCostHuiji projectCostHuiji1;  //筛选合计
+                if (taskList.isEmpty()) {
+                    projectCostHuiji1 = projectCostHuijiService.costHJSumByProjectCost(projectCost);
+                } else {
+                    projectCostHuiji1 = projectCostHuijiService.costHJSumByProjectCostByTaskList(taskList);
                 }
-                clysSum.add(clys);
-                wxysSum.add(wxys);
-                projectCostVO.setClys(clys.setScale(2, RoundingMode.HALF_UP));
-                projectCostVO.setWxys(wxys.setScale(2, RoundingMode.HALF_UP));
-                projectCostVOS.add(projectCostVO);
+                if (projectCostHuiji1 == null) projectCostHuiji1 = new ProjectCostHuiji();
+                return projectCostHuiji1;
+            });
+
+            CompletableFuture<KzksProjectCostYs> kzksProjectCostYsCompletableFuture = CompletableFuture.supplyAsync(() -> {
+                if (taskList.isEmpty()) return new KzksProjectCostYs();
+                return costYsService.selectSumClysByTaskNos(taskList);
+            });
+
+            CompletableFuture<Integer> yzslCompletableFuture = CompletableFuture.supplyAsync(() -> {
+                if (taskList.isEmpty()) return 0;
+                return costService.getYzslSumByTaskNos(taskList);
+            });
+
+
+            CompletableFuture<ArrayList<ProjectCostVO>> arrayListCompletableFuture = CompletableFuture.supplyAsync(() -> {
+                ArrayList<ProjectCostVO> projectCostVOS = new ArrayList<>();
+
+                for (ProjectCost record : projectCosts.getRecords()) {
+                    ProjectCostVO projectCostVO = new ProjectCostVO();
+                    BeanUtils.copyProperties(record, projectCostVO);
+                    KzksProjectCostYs kzksProjectCostYs = costYsService.selectYSByTaskno(record.getTaskno());
+
+                    BigDecimal clys = BigDecimal.valueOf(0);
+                    BigDecimal wxys = BigDecimal.valueOf(0);
+
+                    if (ObjectUtils.isNotEmpty(kzksProjectCostYs)) {
+                        if (ObjectUtils.isNotEmpty(kzksProjectCostYs.getClys())) clys = kzksProjectCostYs.getClys();
+                        if (ObjectUtils.isNotEmpty(kzksProjectCostYs.getWxys())) wxys = kzksProjectCostYs.getWxys();
+                    }
+                    projectCostVO.setClys(clys.setScale(2, RoundingMode.HALF_UP));
+                    projectCostVO.setWxys(wxys.setScale(2, RoundingMode.HALF_UP));
+                    projectCostVOS.add(projectCostVO);
+                }
+                return projectCostVOS;
+            });
+
+            CompletableFuture<Void> future2 = CompletableFuture.allOf(projectCostHuijiCompletableFuture, kzksProjectCostYsCompletableFuture, arrayListCompletableFuture, yzslCompletableFuture);
+            Void join = future2.join();
+            ProjectCostHuiji projectCostHuiji1 = projectCostHuijiCompletableFuture.join();
+            KzksProjectCostYs huijiYs = kzksProjectCostYsCompletableFuture.join();
+            ArrayList<ProjectCostVO> projectCostVOS = arrayListCompletableFuture.join();
+            Integer yzslSum = yzslCompletableFuture.join();
+            projectCostHuiji1.setYzsl(yzslSum);
+
+            BigDecimal contractfpe = projectCostHuiji1.getContractfpe();//合同分配额
+            BigDecimal estimationcoat = projectCostHuiji1.getEstimationcoat();//预估价
+            BigDecimal lre = projectCostHuiji1.getLre(); //利润额
+            BigDecimal cpt = BigDecimal.ZERO; //固定比较值
+            BigDecimal lrl = BigDecimal.ZERO; //利润率
+            if (contractfpe.compareTo(cpt)!= 0){
+                lrl = lre.divide(contractfpe, 2, RoundingMode.HALF_UP);
+            }else if (estimationcoat.compareTo(cpt) != 0){
+                lrl = lre.divide(estimationcoat,2,RoundingMode.HALF_UP);
             }
+            projectCostHuiji1.setLrl(lrl);
 
             ProjectCostHuijiVo resultHuiJiVo = new ProjectCostHuijiVo();
             if (ObjectUtils.isEmpty(projectCostHuiji1)) projectCostHuiji1 = new ProjectCostHuiji();
             BeanUtils.copyProperties(projectCostHuiji1, resultHuiJiVo);
-            resultHuiJiVo.setClys(clysSum);
-            resultHuiJiVo.setWxys(wxysSum);
+            BigDecimal clys = BigDecimal.ZERO;
+            BigDecimal wxys = BigDecimal.ZERO;
+            if (huijiYs != null) {
+                if (huijiYs.getClys() != null) clys = huijiYs.getClys();
+                if (huijiYs.getWxys() != null) wxys = huijiYs.getWxys();
+            }
+            resultHuiJiVo.setClys(clys);
+            resultHuiJiVo.setWxys(wxys);
 
             ProjectCostSumVo projectCostSumVo = new ProjectCostSumVo();
             Page<ProjectCostVO> projectCostListVOPage = ProjectCostHuijiConvert.INSTANCE.toProjectCostListVOPage(projectCosts, projectCostVOS);
 
-
             projectCostSumVo.setProjectCostHuijiSum(resultHuiJiVo);
             projectCostSumVo.setPageList(projectCostListVOPage);
 
+            redisUtil.set(CacheKey.PROJECT_COST_HUIJI + ":" + projectCostHuiji.toString() + ":" + superQueryParams + ":" + pageNo + "&" + pageSize, sumVO, 1000L * 60 * 60 * 10);
+
             return Result.OK(projectCostSumVo);
         }
     }

+ 4 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/mapper/ProjectCostHuijiMapper.java

@@ -26,4 +26,8 @@ public interface ProjectCostHuijiMapper extends BaseMapper<ProjectCostHuiji> {
     ProjectCostHuiji costHJSumByProjectCost(ProjectCost projectCost);
 
     Integer costHJYzslByProjectCost(ProjectCost projectCost);
+
+    ProjectCostHuiji costHJSumByTaskNoList(@Param("taskNos") List<String> list);
+
+    ProjectCostHuiji costHJSumByProjectCostByTaskList(@Param("taskList") List<String> taskList);
 }

+ 26 - 1
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/mapper/xml/ProjectCostHuijiMapper.xml

@@ -27,7 +27,7 @@
     </select>
     <select id="costHJSumByProjectCost"
             resultType="org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji">
-        select sum(lre) as lre,sum(lre)/sum(COALESCE(contractfpe,EstimationCoat)) as lrl,sum(EstimationCoat) as EstimationCoat,sum(contractfpe) as contractfpe,
+        select sum(yzsl) as yzsl,sum(lre) as lre,sum(lre)/sum(COALESCE(contractfpe,EstimationCoat)) as lrl,sum(EstimationCoat) as EstimationCoat,sum(contractfpe) as contractfpe,
         sum(TaskMoney) as TaskMoney,sum(zcb) as zcb,sum(clf) as clf,sum(zyf) as zyf,sum(swf) as swf,
         sum(wxf) as wxf,sum(rldlf) as rldlf,sum(gdzczj) as gdzczj,sum(gzjlwf) as gzjlwf,sum(glf) as glf,
         sum(zjcb) as zjcb,sum(lbsy ) as lbsy,sum(workhour) as workhour,sum(sjgs) as sjgs,
@@ -51,5 +51,30 @@
         </where>
         ) a
     </select>
+    <select id="costHJSumByTaskNoList" resultType="org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji">
+        select sum(yzsl) as yzsl, sum(lre) as lre,sum(lre)/sum(COALESCE(contractfpe,EstimationCoat)) as lrl,sum(EstimationCoat) as EstimationCoat,sum(contractfpe) as contractfpe,
+        sum(TaskMoney) as TaskMoney,sum(zcb) as zcb,sum(clf) as clf,sum(zyf) as zyf,sum(swf) as swf,
+        sum(wxf) as wxf,sum(rldlf) as rldlf,sum(gdzczj) as gdzczj,sum(gzjlwf) as gzjlwf,sum(glf) as glf,
+        sum(zjcb) as zjcb,sum(lbsy ) as lbsy,sum(workhour) as workhour,sum(sjgs) as sjgs,
+        sum(scgs) as scgs
+        from kzks_project_cost_huiji
+        where taskno in
+        <foreach collection="taskNos" index="index" item="taskNo" open="(" separator="," close=")">
+            #{taskNo}
+        </foreach>
+    </select>
+    <select id="costHJSumByProjectCostByTaskList"
+            resultType="org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji">
+        select sum(lre) as lre,sum(EstimationCoat) as EstimationCoat,sum(contractfpe) as contractfpe,
+               sum(TaskMoney) as TaskMoney,sum(zcb) as zcb,sum(clf) as clf,sum(zyf) as zyf,sum(swf) as swf,
+               sum(wxf) as wxf,sum(rldlf) as rldlf,sum(gdzczj) as gdzczj,sum(gzjlwf) as gzjlwf,sum(glf) as glf,
+               sum(zjcb) as zjcb,sum(lbsy ) as lbsy,sum(workhour) as workhour,sum(sjgs) as sjgs,
+               sum(scgs) as scgs
+        from kzks_project_cost
+        where taskno in
+        <foreach collection="taskList" index="index" item="taskno" open="(" separator="," close=")">
+            #{taskno}
+        </foreach>
+    </select>
 
 </mapper>

+ 7 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/service/IProjectCostHuijiService.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.projectCostHuiji.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.projectCost.entity.ProjectCost;
@@ -33,4 +34,10 @@ public interface IProjectCostHuijiService extends IService<ProjectCostHuiji> {
     ProjectCostHuiji costHJSumByProjectCost(ProjectCost projectCost);
 
     Integer costHJYzslByProjectCost(ProjectCost projectCost);
+
+    List<ProjectCostHuiji> selectList(QueryWrapper<ProjectCostHuiji> queryWrapper);
+
+    ProjectCostHuiji costHJSumByTaskNoList(List<String> list);
+
+    ProjectCostHuiji costHJSumByProjectCostByTaskList(List<String> taskList);
 }

+ 16 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/service/impl/ProjectCostHuijiServiceImpl.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.projectCostHuiji.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.dataSourceSwitch.annotation.TargetDataSource;
@@ -59,4 +60,19 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
         return huijiMapper.costHJYzslByProjectCost(projectCost);
     }
 
+    @Override
+    public List<ProjectCostHuiji> selectList(QueryWrapper<ProjectCostHuiji> queryWrapper) {
+        return huijiMapper.selectList(queryWrapper);
+    }
+
+    @Override
+    public ProjectCostHuiji costHJSumByTaskNoList(List<String> list) {
+        return huijiMapper.costHJSumByTaskNoList(list);
+    }
+
+    @Override
+    public ProjectCostHuiji costHJSumByProjectCostByTaskList(List<String> taskList) {
+        return huijiMapper.costHJSumByProjectCostByTaskList(taskList);
+    }
+
 }

+ 1 - 1
module_kzks/src/main/java/org/jeecg/modules/projectCostYs/mapper/KzksProjectCostYsMapper.java

@@ -28,5 +28,5 @@ public interface KzksProjectCostYsMapper extends BaseMapper<KzksProjectCostYs> {
     KzksProjectCostYs selectSumClys();
 
 
-
+    KzksProjectCostYs selectSumClysByTaskNos(@Param("taskNos") List<String> taskNos);
 }

+ 9 - 1
module_kzks/src/main/java/org/jeecg/modules/projectCostYs/mapper/xml/KzksProjectCostYsMapper.xml

@@ -2,4 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.projectCostYs.mapper.KzksProjectCostYsMapper">
 
-</mapper>
+    <select id="selectSumClysByTaskNos" resultType="org.jeecg.modules.projectCostYs.entity.KzksProjectCostYs">
+        select sum(clys) as clys, sum(wxys) as wxys
+        from kzks_project_cost_ys
+        where taskno in
+        <foreach collection="taskNos" item="taskNo" index="index" open="(" separator="," close=")">
+            #{taskNo}
+        </foreach>
+    </select>
+</mapper>

+ 3 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostYs/service/IKzksProjectCostYsService.java

@@ -4,6 +4,7 @@ import org.jeecg.modules.projectCostYs.entity.KzksProjectCostYs;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @Description: 项目成本新加的两个预算
@@ -17,4 +18,6 @@ public interface IKzksProjectCostYsService extends IService<KzksProjectCostYs> {
     public KzksProjectCostYs selectYSByTaskno(String taskno);
 
     KzksProjectCostYs selectSumClys();
+
+    KzksProjectCostYs selectSumClysByTaskNos(List<String> taskNos);
 }

+ 5 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostYs/service/impl/KzksProjectCostYsServiceImpl.java

@@ -10,6 +10,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @Description: 项目成本新加的两个预算
@@ -34,4 +35,8 @@ public class KzksProjectCostYsServiceImpl extends ServiceImpl<KzksProjectCostYsM
         return costYsMapper.selectSumClys();
     }
 
+    @Override
+    public KzksProjectCostYs selectSumClysByTaskNos(List<String> taskNos) {
+       return costYsMapper.selectSumClysByTaskNos(taskNos);
+    }
 }