Browse Source

项目成本 汇集任务中 材料预算和外协预算汇集

longw 1 year ago
parent
commit
8d2ea19ad3

+ 25 - 11
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/controller/ProjectCostHuijiController.java

@@ -1,25 +1,16 @@
 package org.jeecg.modules.projectCostHuiji.controller;
 
-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;
-import io.prometheus.client.Info;
 import io.swagger.annotations.Api;
 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;
@@ -27,6 +18,8 @@ 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.ProjectCostHuijiCustomConvert;
+import org.jeecg.modules.projectCostHuiji.convert.impl.ProjectCostHuijiConverCustomImpl;
 import org.jeecg.modules.projectCostHuiji.convert.ProjectCostHuijiConvert;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuijiVo;
@@ -47,7 +40,6 @@ import java.math.RoundingMode;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * @Description: 项目成本汇集表
@@ -76,6 +68,9 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
     @Autowired
     private RedisUtil redisUtil;
 
+    @Autowired
+    private ProjectCostHuijiConverCustomImpl projectCostHuijiConverCustom;
+
 
     @ApiOperation(value = "111111111111")
     @GetMapping(value = "/children1")
@@ -165,8 +160,27 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
                 List<ProjectCostVO> children4 = children4Future.join();
                 children.addAll(children3);
                 children.addAll(children4);
+                BigDecimal wxysSum = BigDecimal.valueOf(0);
+                BigDecimal clysSum = BigDecimal.valueOf(0);
+
+                CompletableFuture<BigDecimal> wxysFuture = CompletableFuture.supplyAsync(() -> {
+                    return children.stream().filter(o -> {
+                        return ObjectUtils.isEmpty(o.getStatus()) || (!"1".equals(o.getStatus()));
+                    }).map(ProjectCostVO::getWxys).filter(ObjectUtils::isNotEmpty).reduce(BigDecimal.ZERO, BigDecimal::add);
+                });
+
+                CompletableFuture<BigDecimal> clysFuture = CompletableFuture.supplyAsync(() -> {
+                    return children.stream().filter(o -> {
+                        return ObjectUtils.isEmpty(o.getStatus()) || (!"1".equals(o.getStatus()));
+                    }).map(ProjectCostVO::getClys).filter(ObjectUtils::isNotEmpty).reduce(BigDecimal.ZERO, BigDecimal::add);
+                });
+
+                CompletableFuture<Void> future2 = CompletableFuture.allOf(wxysFuture, clysFuture);
+                future2.join();
+                wxysSum = wxysFuture.join();
+                clysSum = clysFuture.join();
 
-                return ProjectCostHuijiConvert.INSTANCE.toHuijiListVO(i, children, 1);
+                return projectCostHuijiConverCustom.toHuijiListVOAndYs(i, children, 1, wxysSum, clysSum);
 
             }).collect(Collectors.toList());
 

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

@@ -11,6 +11,7 @@ import org.mapstruct.ReportingPolicy;
 import org.mapstruct.factory.Mappers;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -21,6 +22,8 @@ public interface ProjectCostHuijiConvert {
 
     ProjectCostHuijiListVO toHuijiListVO(ProjectCostHuiji huiji, List<ProjectCostVO> children, Integer ji);
 
+    ProjectCostHuijiListVO toHuijiListVOAndYs(ProjectCostHuiji huiji, List<ProjectCostVO> children, Integer ji,BigDecimal wxysSum, BigDecimal clysSum);
+
     @Mapping(target ="records",source ="results" )
     Page<ProjectCostHuijiListVO> toHuijiListVOPage(Page<ProjectCostHuiji> page, List<ProjectCostHuijiListVO> results);
 

+ 31 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/convert/ProjectCostHuijiCustomConvert.java

@@ -0,0 +1,31 @@
+package org.jeecg.modules.projectCostHuiji.convert;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.projectCost.entity.ProjectCost;
+import org.jeecg.modules.projectCost.vo.ProjectCostVO;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+import org.jeecg.modules.projectCostHuiji.vo.ProjectCostHuijiListVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+import org.springframework.util.CollectionUtils;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE,imports ={ CollectionUtils.class, Collectors.class})
+public interface ProjectCostHuijiCustomConvert {
+    ProjectCostHuijiCustomConvert INSTANCE = Mappers.getMapper(ProjectCostHuijiCustomConvert.class);
+
+    ProjectCostHuijiListVO toHuijiListVO(ProjectCostHuiji huiji, List<ProjectCostVO> children, Integer ji);
+
+    ProjectCostHuijiListVO toHuijiListVOAndYs(ProjectCostHuiji huiji, List<ProjectCostVO> children, Integer ji, BigDecimal wxysSum, BigDecimal clysSum);
+
+    @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);
+}

+ 207 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/convert/impl/ProjectCostHuijiConverCustomImpl.java

@@ -0,0 +1,207 @@
+package org.jeecg.modules.projectCostHuiji.convert.impl;
+
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.modules.projectCost.entity.ProjectCost;
+import org.jeecg.modules.projectCost.vo.ProjectCostVO;
+import org.jeecg.modules.projectCostHuiji.convert.ProjectCostHuijiCustomConvert;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+import org.jeecg.modules.projectCostHuiji.vo.ProjectCostHuijiListVO;
+import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class ProjectCostHuijiConverCustomImpl implements ProjectCostHuijiCustomConvert {
+    @Override
+    public ProjectCostHuijiListVO toHuijiListVO(ProjectCostHuiji huiji, List<ProjectCostVO> children, Integer ji) {
+        if ( huiji == null && children == null && ji == null ) {
+            return null;
+        }
+
+        ProjectCostHuijiListVO projectCostHuijiListVO = new ProjectCostHuijiListVO();
+
+        if ( huiji != null ) {
+            projectCostHuijiListVO.setId( huiji.getId() );
+            projectCostHuijiListVO.setTaskno( huiji.getTaskno() );
+            projectCostHuijiListVO.setTaskname( huiji.getTaskname() );
+            projectCostHuijiListVO.setXhname( huiji.getXhname() );
+            projectCostHuijiListVO.setJhwcsj( huiji.getJhwcsj() );
+            projectCostHuijiListVO.setYzjdname( huiji.getYzjdname() );
+            projectCostHuijiListVO.setProcesspercent( huiji.getProcesspercent() );
+            projectCostHuijiListVO.setCostPercent( huiji.getCostPercent() );
+            projectCostHuijiListVO.setYzsl( huiji.getYzsl() );
+            projectCostHuijiListVO.setOneIncome( huiji.getOneIncome() );
+            projectCostHuijiListVO.setOneCost( huiji.getOneCost() );
+            projectCostHuijiListVO.setOneProfit( huiji.getOneProfit() );
+            projectCostHuijiListVO.setLre( huiji.getLre() );
+            projectCostHuijiListVO.setLrl( huiji.getLrl() );
+            projectCostHuijiListVO.setEstimationcoat( huiji.getEstimationcoat() );
+            projectCostHuijiListVO.setContractfpe( huiji.getContractfpe() );
+            projectCostHuijiListVO.setTaskmoney( huiji.getTaskmoney() );
+            projectCostHuijiListVO.setZcb( huiji.getZcb() );
+            projectCostHuijiListVO.setClf( huiji.getClf() );
+            projectCostHuijiListVO.setZyf( huiji.getZyf() );
+            projectCostHuijiListVO.setSwf( huiji.getSwf() );
+            projectCostHuijiListVO.setWxf( huiji.getWxf() );
+            projectCostHuijiListVO.setRldlf( huiji.getRldlf() );
+            projectCostHuijiListVO.setGdzczj( huiji.getGdzczj() );
+            projectCostHuijiListVO.setGzjlwf( huiji.getGzjlwf() );
+            projectCostHuijiListVO.setGlf( huiji.getGlf() );
+            projectCostHuijiListVO.setZjcb( huiji.getZjcb() );
+            projectCostHuijiListVO.setLbsy( huiji.getLbsy() );
+            projectCostHuijiListVO.setWorkhour( huiji.getWorkhour() );
+            projectCostHuijiListVO.setZrbm( huiji.getZrbm() );
+            projectCostHuijiListVO.setJycsid( huiji.getJycsid() );
+            projectCostHuijiListVO.setJycs( huiji.getJycs() );
+            projectCostHuijiListVO.setHxzxid( huiji.getHxzxid() );
+            projectCostHuijiListVO.setHxzxname( huiji.getHxzxname() );
+            projectCostHuijiListVO.setTasktype( huiji.getTasktype() );
+            projectCostHuijiListVO.setAuditprice( huiji.getAuditprice() );
+            projectCostHuijiListVO.setIflag( huiji.getIflag() );
+            projectCostHuijiListVO.setBrief( huiji.getBrief() );
+            projectCostHuijiListVO.setReftaskno( huiji.getReftaskno() );
+            projectCostHuijiListVO.setPccode( huiji.getPccode() );
+            projectCostHuijiListVO.setBccode( huiji.getBccode() );
+            projectCostHuijiListVO.setBlcode( huiji.getBlcode() );
+            projectCostHuijiListVO.setBusinessman( huiji.getBusinessman() );
+            projectCostHuijiListVO.setSjgs( huiji.getSjgs() );
+            projectCostHuijiListVO.setScgs( huiji.getScgs() );
+        }
+        List<ProjectCostVO> list = children;
+        if ( list != null ) {
+            projectCostHuijiListVO.setChildren( new ArrayList<ProjectCostVO>( list ) );
+        }
+        projectCostHuijiListVO.setJi( ji );
+
+        return projectCostHuijiListVO;
+    }
+
+    @Override
+    public ProjectCostHuijiListVO toHuijiListVOAndYs(ProjectCostHuiji huiji, List<ProjectCostVO> children, Integer ji, BigDecimal wxysSum, BigDecimal clysSum) {
+        if ( huiji == null && children == null && ji == null && wxysSum == null && clysSum == null ) {
+            return null;
+        }
+
+        ProjectCostHuijiListVO projectCostHuijiListVO = new ProjectCostHuijiListVO();
+
+        if ( huiji != null ) {
+            projectCostHuijiListVO.setId( huiji.getId() );
+            projectCostHuijiListVO.setTaskno( huiji.getTaskno() );
+            projectCostHuijiListVO.setTaskname( huiji.getTaskname() );
+            projectCostHuijiListVO.setXhname( huiji.getXhname() );
+            projectCostHuijiListVO.setJhwcsj( huiji.getJhwcsj() );
+            projectCostHuijiListVO.setYzjdname( huiji.getYzjdname() );
+            projectCostHuijiListVO.setProcesspercent( huiji.getProcesspercent() );
+            projectCostHuijiListVO.setCostPercent( huiji.getCostPercent() );
+            projectCostHuijiListVO.setYzsl( huiji.getYzsl() );
+            projectCostHuijiListVO.setOneIncome( huiji.getOneIncome() );
+            projectCostHuijiListVO.setOneCost( huiji.getOneCost() );
+            projectCostHuijiListVO.setOneProfit( huiji.getOneProfit() );
+            projectCostHuijiListVO.setLre( huiji.getLre() );
+            projectCostHuijiListVO.setLrl( huiji.getLrl() );
+            projectCostHuijiListVO.setEstimationcoat( huiji.getEstimationcoat() );
+            projectCostHuijiListVO.setContractfpe( huiji.getContractfpe() );
+            projectCostHuijiListVO.setTaskmoney( huiji.getTaskmoney() );
+            projectCostHuijiListVO.setZcb( huiji.getZcb() );
+            projectCostHuijiListVO.setClf( huiji.getClf() );
+            projectCostHuijiListVO.setZyf( huiji.getZyf() );
+            projectCostHuijiListVO.setSwf( huiji.getSwf() );
+            projectCostHuijiListVO.setWxf( huiji.getWxf() );
+            projectCostHuijiListVO.setRldlf( huiji.getRldlf() );
+            projectCostHuijiListVO.setGdzczj( huiji.getGdzczj() );
+            projectCostHuijiListVO.setGzjlwf( huiji.getGzjlwf() );
+            projectCostHuijiListVO.setGlf( huiji.getGlf() );
+            projectCostHuijiListVO.setZjcb( huiji.getZjcb() );
+            projectCostHuijiListVO.setLbsy( huiji.getLbsy() );
+            projectCostHuijiListVO.setWorkhour( huiji.getWorkhour() );
+            projectCostHuijiListVO.setZrbm( huiji.getZrbm() );
+            projectCostHuijiListVO.setJycsid( huiji.getJycsid() );
+            projectCostHuijiListVO.setJycs( huiji.getJycs() );
+            projectCostHuijiListVO.setHxzxid( huiji.getHxzxid() );
+            projectCostHuijiListVO.setHxzxname( huiji.getHxzxname() );
+            projectCostHuijiListVO.setTasktype( huiji.getTasktype() );
+            projectCostHuijiListVO.setAuditprice( huiji.getAuditprice() );
+            projectCostHuijiListVO.setIflag( huiji.getIflag() );
+            projectCostHuijiListVO.setBrief( huiji.getBrief() );
+            projectCostHuijiListVO.setReftaskno( huiji.getReftaskno() );
+            projectCostHuijiListVO.setPccode( huiji.getPccode() );
+            projectCostHuijiListVO.setBccode( huiji.getBccode() );
+            projectCostHuijiListVO.setBlcode( huiji.getBlcode() );
+            projectCostHuijiListVO.setBusinessman( huiji.getBusinessman() );
+            projectCostHuijiListVO.setSjgs( huiji.getSjgs() );
+            projectCostHuijiListVO.setScgs( huiji.getScgs() );
+            projectCostHuijiListVO.setWxys(wxysSum);
+            projectCostHuijiListVO.setClys(clysSum);
+        }
+        List<ProjectCostVO> list = children;
+        if ( list != null ) {
+            projectCostHuijiListVO.setChildren( new ArrayList<ProjectCostVO>( list ) );
+        }
+        projectCostHuijiListVO.setJi( ji );
+
+        return projectCostHuijiListVO;
+    }
+
+    @Override
+    public Page<ProjectCostHuijiListVO> toHuijiListVOPage(Page<ProjectCostHuiji> page, List<ProjectCostHuijiListVO> results) {
+        if ( page == null && results == null ) {
+            return null;
+        }
+
+        Page<ProjectCostHuijiListVO> page1 = new Page<ProjectCostHuijiListVO>();
+
+        if ( page != null ) {
+            page1.setPages( page.getPages() );
+            page1.setTotal( page.getTotal() );
+            page1.setSize( page.getSize() );
+            page1.setCurrent( page.getCurrent() );
+            page1.setSearchCount( page.isSearchCount() );
+            page1.setOptimizeCountSql( page.isOptimizeCountSql() );
+            List<OrderItem> list1 = page.getOrders();
+            if ( list1 != null ) {
+                page1.setOrders( new ArrayList<OrderItem>( list1 ) );
+            }
+            page1.setCountId( page.getCountId() );
+            page1.setMaxLimit( page.getMaxLimit() );
+        }
+        List<ProjectCostHuijiListVO> list = results;
+        if ( list != null ) {
+            page1.setRecords( new ArrayList<ProjectCostHuijiListVO>( list ) );
+        }
+
+        return page1;
+    }
+
+    @Override
+    public Page<ProjectCostVO> toProjectCostListVOPage(Page<ProjectCost> page, List<ProjectCostVO> results) {
+        if ( page == null && results == null ) {
+            return null;
+        }
+
+        Page<ProjectCostVO> page1 = new Page<ProjectCostVO>();
+
+        if ( page != null ) {
+            page1.setPages( page.getPages() );
+            page1.setTotal( page.getTotal() );
+            page1.setSize( page.getSize() );
+            page1.setCurrent( page.getCurrent() );
+            page1.setSearchCount( page.isSearchCount() );
+            page1.setOptimizeCountSql( page.isOptimizeCountSql() );
+            List<OrderItem> list1 = page.getOrders();
+            if ( list1 != null ) {
+                page1.setOrders( new ArrayList<OrderItem>( list1 ) );
+            }
+            page1.setCountId( page.getCountId() );
+            page1.setMaxLimit( page.getMaxLimit() );
+        }
+        List<ProjectCostVO> list = results;
+        if ( list != null ) {
+            page1.setRecords( new ArrayList<ProjectCostVO>( list ) );
+        }
+
+        return page1;
+    }
+}