浏览代码

修正了项目成本根据任务号二级搜索

longw 1 年之前
父节点
当前提交
0d195dc7cd

+ 0 - 2
module_kzks/src/main/java/org/jeecg/modules/Index/service/impl/IndexServiceImpl.java

@@ -3,9 +3,7 @@ package org.jeecg.modules.Index.service.impl;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.TypeReference;
 import org.apache.commons.lang3.ObjectUtils;
-import org.apache.ibatis.annotations.Param;
 import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.system.vo.LoginUser;

+ 2 - 0
module_kzks/src/main/java/org/jeecg/modules/Index/util/CacheKey.java

@@ -13,4 +13,6 @@ public class CacheKey {
 
     /*首页图表,合同额与合同数量*/
     public static final String CONTRACT_CHART_INFO_DATA_REDIS_KEY = "ContractChartInfoVoDataRedisKey:";
+
+    public static final String PROJECT_COST_HUIJI = "projectCosthuiji";
 }

+ 14 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCost/entity/ProjectCostSumVo.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.projectCost.entity;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.Data;
+import org.jeecg.modules.projectCost.vo.ProjectCostVO;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuijiVo;
+
+@Data
+public class ProjectCostSumVo {
+
+    private ProjectCostHuijiVo projectCostHuijiSum;
+
+    private IPage<ProjectCostVO> pageList;
+}

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

@@ -1,6 +1,8 @@
 package org.jeecg.modules.projectCost.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;
 import org.jeecg.modules.projectCost.vo.ProjectCostListVO;
@@ -37,4 +39,6 @@ public interface IProjectCostService extends IService<ProjectCost> {
     /**根据任务号查询项目成本中的相应数据*/
     public List<ProjectCost> costListByTaskNo(String taskno);
 
+
+    Page<ProjectCost> getCostListPage(Page<ProjectCost> page1, QueryWrapper<ProjectCost> query);
 }

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

@@ -2,6 +2,7 @@ package org.jeecg.modules.projectCost.service.impl;
 
 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.impl.ServiceImpl;
 import org.jeecg.modules.dataSourceSwitch.annotation.TargetDataSource;
 import org.jeecg.modules.dataSourceSwitch.enums.DataSourceType;
@@ -73,9 +74,8 @@ public class ProjectCostServiceImpl extends ServiceImpl<ProjectCostMapper, Proje
         return projectCostMapper.costListByTaskNo(taskno);
     }
 
-
-
-
-
-
+    @Override
+    public Page<ProjectCost> getCostListPage(Page<ProjectCost> page1, QueryWrapper<ProjectCost> query) {
+        return projectCostMapper.selectPage(page1,query);
+    }
 }

+ 63 - 9
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/controller/ProjectCostHuijiController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.copier.CopyOptions;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.lettuce.core.CopyArgs;
 import io.minio.CopyObjectArgs;
@@ -13,13 +14,17 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import net.sf.saxon.expr.instruct.Copy;
 import org.apache.commons.lang3.ObjectUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.Md5Util;
 import org.jeecg.common.util.RedisUtil;
+import org.jeecg.modules.Index.util.CacheKey;
 import org.jeecg.modules.mesInfoInstallationcost.service.IMesInfoInstallationcostService;
+import org.jeecg.modules.projectCost.entity.ProjectCost;
+import org.jeecg.modules.projectCost.entity.ProjectCostSumVo;
 import org.jeecg.modules.projectCost.service.IProjectCostService;
 import org.jeecg.modules.projectCost.vo.ProjectCostVO;
 import org.jeecg.modules.projectCostHuiji.convert.ProjectCostHuijiConvert;
@@ -42,6 +47,7 @@ import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @Description: 项目成本汇集表
@@ -70,7 +76,6 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
     @Autowired
     private RedisUtil redisUtil;
 
-    private static String PROJECT_COST_HUIJI = "projectCosthuiji";
 
     @ApiOperation(value = "111111111111")
     @GetMapping(value = "/children1")
@@ -106,12 +111,12 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
     //@AutoLog(value = "项目成本汇集表-分页列表查询")
     @ApiOperation(value = "项目成本汇集——分页查询——汇总+两级(一级汇集、二级主任务及主批产任务及子任务及子批产任务)", notes = "项目成本汇集——分页查询——两级(一级汇集、二级主任务及子任务)")
     @GetMapping(value = "/list")
-    public Result<ProjectCostHuijiSumVO> queryPageList(ProjectCostHuiji projectCostHuiji,
-                                                       @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                       @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                       HttpServletRequest req) {
+    public Result<Object> queryPageList(ProjectCostHuiji projectCostHuiji,
+                                        @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                        HttpServletRequest req) {
 
-        ProjectCostHuijiSumVO chcheResult = (ProjectCostHuijiSumVO) redisUtil.get(PROJECT_COST_HUIJI + ":" + pageNo + "&" + pageSize + ":" + projectCostHuiji.toString());
+        ProjectCostHuijiSumVO chcheResult = (ProjectCostHuijiSumVO) redisUtil.get(CacheKey.PROJECT_COST_HUIJI + ":" + pageNo + "&" + pageSize + ":" + projectCostHuiji.toString());
         if (ObjectUtils.isNotEmpty(chcheResult)) return Result.ok(chcheResult);
 
         ProjectCostHuijiSumVO sumVO = new ProjectCostHuijiSumVO();
@@ -138,7 +143,7 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
         KzksProjectCostYs ys = ysFuture.join();
         if (ObjectUtils.isEmpty(ys.getClys())) ys.setClys(BigDecimal.valueOf(0));
         if (ObjectUtils.isEmpty(ys.getWxys())) ys.setWxys(BigDecimal.valueOf(0));
-        if (pageList != null) {//costYsService
+        if (pageList != null && !pageList.getRecords().isEmpty()) {//costYsService
             List<ProjectCostHuijiListVO> list = pageList.getRecords().stream().map(i -> {
 
                 List<ProjectCostVO> children1 = costService.costListByTaskNoMain(i.getTaskno()); //主任务及批产的主任务
@@ -168,6 +173,7 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
             IPage<ProjectCostHuijiListVO> pageList1 = ProjectCostHuijiConvert.INSTANCE.toHuijiListVOPage(pageList, list);
 
             ProjectCostHuijiVo resultHuiJiVo = new ProjectCostHuijiVo();
+            if (ObjectUtils.isEmpty(huiji)) huiji = new ProjectCostHuiji();
             BeanUtils.copyProperties(huiji, resultHuiJiVo);
             resultHuiJiVo.setClys(ys.getClys());
             resultHuiJiVo.setWxys(ys.getWxys());
@@ -175,10 +181,58 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
             sumVO.setProjectCostHuijiSum(resultHuiJiVo);
             sumVO.setPageList(pageList1);
 
-            redisUtil.set(PROJECT_COST_HUIJI + ":" + pageNo + "&" + pageSize + ":" + projectCostHuiji.toString(),sumVO,1000L*60*60*2);
+            redisUtil.set(CacheKey.PROJECT_COST_HUIJI + ":" + pageNo + "&" + pageSize + ":" + projectCostHuiji.toString(), sumVO, 1000L * 60 * 60 * 2);
 
             return Result.OK(sumVO);
-        } else return Result.OK(new ProjectCostHuijiSumVO());
+        } 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);
+            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();
+                }
+                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);
+            }
+
+            ProjectCostHuijiVo resultHuiJiVo = new ProjectCostHuijiVo();
+            if (ObjectUtils.isEmpty(projectCostHuiji1)) projectCostHuiji1 = new ProjectCostHuiji();
+            BeanUtils.copyProperties(projectCostHuiji1, resultHuiJiVo);
+            resultHuiJiVo.setClys(clysSum);
+            resultHuiJiVo.setWxys(wxysSum);
+
+            ProjectCostSumVo projectCostSumVo = new ProjectCostSumVo();
+            Page<ProjectCostVO> projectCostListVOPage = ProjectCostHuijiConvert.INSTANCE.toProjectCostListVOPage(projectCosts, projectCostVOS);
+
+
+            projectCostSumVo.setProjectCostHuijiSum(resultHuiJiVo);
+            projectCostSumVo.setPageList(projectCostListVOPage);
+
+            return Result.OK(projectCostSumVo);
+        }
     }
 
     private ProjectCostVO apply(ProjectCostVO x) {

+ 2 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/convert/ProjectCostHuijiConvert.java

@@ -24,5 +24,7 @@ public interface ProjectCostHuijiConvert {
     @Mapping(target ="records",source ="results" )
     Page<ProjectCostHuijiListVO> toHuijiListVOPage(Page<ProjectCostHuiji> page, List<ProjectCostHuijiListVO> results);
 
+    @Mapping(target ="records",source ="results" )
+    Page<ProjectCostVO> toProjectCostListVOPage(Page<ProjectCost> page, List<ProjectCostVO> results);
 
 }

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

@@ -2,6 +2,7 @@ package org.jeecg.modules.projectCostHuiji.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
 
 import java.util.List;
@@ -22,4 +23,7 @@ public interface ProjectCostHuijiMapper extends BaseMapper<ProjectCostHuiji> {
     /**计算项目成本汇集的总和*/
     public ProjectCostHuiji costHJSum(ProjectCostHuiji projectCostHuiji);
 
+    ProjectCostHuiji costHJSumByProjectCost(ProjectCost projectCost);
+
+    Integer costHJYzslByProjectCost(ProjectCost projectCost);
 }

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

@@ -25,5 +25,31 @@
             <if test="zrbm != null  and zrbm != ''">and zrbm like concat('%', #{zrbm}, '%')</if>
         </where>
     </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,
+        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>
+            <if test="taskno != null  and taskno != ''">and taskno = #{taskno}</if>
+            <if test="processpercent != null  and processpercent != ''">and processPercent = #{processpercent}</if>
+            <if test="jycs != null  and jycs != ''">and jycs like concat('%', #{jycs}, '%')</if>
+            <if test="zrbm != null  and zrbm != ''">and zrbm like concat('%', #{zrbm}, '%')</if>
+        </where>
+    </select>
+    <select id="costHJYzslByProjectCost" resultType="java.lang.Integer">
+        select sum(a.yzsl) from (select distinct (taskno),yzsl
+        from kzks_project_cost
+        <where>
+            <if test="taskno != null  and taskno != ''">and taskno = #{taskno}</if>
+            <if test="processpercent != null  and processpercent != ''">and processPercent = #{processpercent}</if>
+            <if test="jycs != null  and jycs != ''">and jycs like concat('%', #{jycs}, '%')</if>
+            <if test="zrbm != null  and zrbm != ''">and zrbm like concat('%', #{zrbm}, '%')</if>
+        </where>
+        ) a
+    </select>
 
 </mapper>

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

@@ -3,6 +3,7 @@ package org.jeecg.modules.projectCostHuiji.service;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
 
 import java.util.List;
@@ -29,4 +30,7 @@ public interface IProjectCostHuijiService extends IService<ProjectCostHuiji> {
     /**计算项目成本汇集的总和*/
     public ProjectCostHuiji costHJSum(ProjectCostHuiji projectCostHuiji);
 
+    ProjectCostHuiji costHJSumByProjectCost(ProjectCost projectCost);
+
+    Integer costHJYzslByProjectCost(ProjectCost projectCost);
 }

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

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.dataSourceSwitch.annotation.TargetDataSource;
 import org.jeecg.modules.dataSourceSwitch.enums.DataSourceType;
+import org.jeecg.modules.projectCost.entity.ProjectCost;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
 import org.jeecg.modules.projectCostHuiji.mapper.ProjectCostHuijiMapper;
 import org.jeecg.modules.projectCostHuiji.service.IProjectCostHuijiService;
@@ -48,4 +49,14 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
         return huijiMapper.costHJSum(projectCostHuiji);
     }
 
+    @Override
+    public ProjectCostHuiji costHJSumByProjectCost(ProjectCost projectCost) {
+        return huijiMapper.costHJSumByProjectCost(projectCost);
+    }
+
+    @Override
+    public Integer costHJYzslByProjectCost(ProjectCost projectCost) {
+        return huijiMapper.costHJYzslByProjectCost(projectCost);
+    }
+
 }