Browse Source

项目成本展示材料预算和外协预算

longw 1 year ago
parent
commit
f3ccadc8fc

+ 34 - 4
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/controller/ProjectCostHuijiController.java

@@ -1,12 +1,17 @@
 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.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.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
@@ -17,11 +22,13 @@ import org.jeecg.modules.projectCost.service.IProjectCostService;
 import org.jeecg.modules.projectCost.vo.ProjectCostVO;
 import org.jeecg.modules.projectCostHuiji.convert.ProjectCostHuijiConvert;
 import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuijiVo;
 import org.jeecg.modules.projectCostHuiji.service.IProjectCostHuijiService;
 import org.jeecg.modules.projectCostHuiji.vo.ProjectCostHuijiListVO;
 import org.jeecg.modules.projectCostHuiji.vo.ProjectCostHuijiSumVO;
 import org.jeecg.modules.projectCostYs.entity.KzksProjectCostYs;
 import org.jeecg.modules.projectCostYs.service.IKzksProjectCostYsService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -97,11 +104,29 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
                                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                                        HttpServletRequest req) {
         ProjectCostHuijiSumVO sumVO = new ProjectCostHuijiSumVO();
-            ProjectCostHuiji huiji = projectCostHuijiService.costHJSum(projectCostHuiji);//汇集总和
+
+        CompletableFuture<ProjectCostHuiji> huijiFuture = CompletableFuture.supplyAsync(() -> {
+            return projectCostHuijiService.costHJSum(projectCostHuiji);//汇集总和
+        });
+
+        CompletableFuture<KzksProjectCostYs> ysFuture = CompletableFuture.supplyAsync(() -> {
+            return costYsService.selectSumClys();
+        });
 
         QueryWrapper<ProjectCostHuiji> queryWrapper = QueryGenerator.initQueryWrapper(projectCostHuiji, req.getParameterMap());
         Page<ProjectCostHuiji> page = new Page<ProjectCostHuiji>(pageNo, pageSize);
-        Page<ProjectCostHuiji> pageList = projectCostHuijiService.costHuijPage(page, queryWrapper);
+
+        CompletableFuture<Page<ProjectCostHuiji>> pageFuture = CompletableFuture.supplyAsync(() -> {
+            return projectCostHuijiService.costHuijPage(page, queryWrapper);
+        });
+
+        CompletableFuture<Void> future1 = CompletableFuture.allOf(huijiFuture, pageFuture,ysFuture);
+        future1.join();
+        ProjectCostHuiji huiji = huijiFuture.join();
+        Page<ProjectCostHuiji> pageList = pageFuture.join();
+        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
             List<ProjectCostHuijiListVO> list = pageList.getRecords().stream().map(i -> {
 
@@ -113,7 +138,6 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
                     return children1.stream().map(this::apply).collect(Collectors.toList());
                 });
 
-
                 CompletableFuture<List<ProjectCostVO>> children4Future = CompletableFuture.supplyAsync(() -> {
                     return children2.stream().map(this::apply).collect(Collectors.toList());
                 });
@@ -132,7 +156,12 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
 
             IPage<ProjectCostHuijiListVO> pageList1 = ProjectCostHuijiConvert.INSTANCE.toHuijiListVOPage(pageList, list);
 
-            sumVO.setProjectCostHuijiSum(huiji);
+            ProjectCostHuijiVo resultHuiJiVo = new ProjectCostHuijiVo();
+            BeanUtils.copyProperties(huiji,resultHuiJiVo);
+            resultHuiJiVo.setClys(ys.getClys());
+            resultHuiJiVo.setWxys(ys.getWxys());
+
+            sumVO.setProjectCostHuijiSum(resultHuiJiVo);
             sumVO.setPageList(pageList1);
             return Result.OK(sumVO);
         } else return Result.OK(new ProjectCostHuijiSumVO());
@@ -154,6 +183,7 @@ public class ProjectCostHuijiController extends JeecgController<ProjectCostHuiji
         }
         return x;
     }
+
     /**
      * 添加
      *

+ 1 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/entity/ProjectCostHuiji.java

@@ -214,4 +214,5 @@ public class ProjectCostHuiji implements Serializable {
 	@Excel(name = "生产工时", width = 15)
     @ApiModelProperty(value = "生产工时")
     private java.math.BigDecimal scgs;
+
 }

+ 20 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/entity/ProjectCostHuijiVo.java

@@ -0,0 +1,20 @@
+package org.jeecg.modules.projectCostHuiji.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+
+@Data
+public class ProjectCostHuijiVo extends ProjectCostHuiji  implements Serializable {
+
+    /**设计工时*/
+    @Excel(name = "材料预算", width = 15)
+    @ApiModelProperty(value = "材料预算")
+    private java.math.BigDecimal clys;
+    /**生产工时*/
+    @Excel(name = "外协预算", width = 15)
+    @ApiModelProperty(value = "外协预算")
+    private java.math.BigDecimal wxys;
+}

+ 2 - 2
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/vo/ProjectCostHuijiSumVO.java

@@ -2,12 +2,12 @@ package org.jeecg.modules.projectCostHuiji.vo;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.Data;
-import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuiji;
+import org.jeecg.modules.projectCostHuiji.entity.ProjectCostHuijiVo;
 
 @Data
 public class ProjectCostHuijiSumVO {
 
-    private ProjectCostHuiji projectCostHuijiSum;
+    private ProjectCostHuijiVo projectCostHuijiSum;
     private IPage<ProjectCostHuijiListVO> pageList;
 
 }

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

@@ -24,4 +24,9 @@ public interface KzksProjectCostYsMapper extends BaseMapper<KzksProjectCostYs> {
     @Select("update kzks_project_cost_ys set clys = #{clys}, wxys = #{wxys} where taskno = #{taskno}")
     public void updateYS(BigDecimal clys, BigDecimal wxys, String taskno);
 
+    @Select("select sum(clys) as clys,sum(wxys) as wxys from kzks_project_cost_ys ")
+    KzksProjectCostYs selectSumClys();
+
+
+
 }

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

@@ -3,6 +3,8 @@ package org.jeecg.modules.projectCostYs.service;
 import org.jeecg.modules.projectCostYs.entity.KzksProjectCostYs;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.math.BigDecimal;
+
 /**
  * @Description: 项目成本新加的两个预算
  * @Author: jeecg-boot
@@ -14,4 +16,5 @@ public interface IKzksProjectCostYsService extends IService<KzksProjectCostYs> {
     /**根据任务号查询预算*/
     public KzksProjectCostYs selectYSByTaskno(String taskno);
 
+    KzksProjectCostYs selectSumClys();
 }

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

@@ -9,6 +9,8 @@ import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.math.BigDecimal;
+
 /**
  * @Description: 项目成本新加的两个预算
  * @Author: jeecg-boot
@@ -27,4 +29,9 @@ public class KzksProjectCostYsServiceImpl extends ServiceImpl<KzksProjectCostYsM
      return costYsMapper.selectYSByTaskno(taskno);
     }
 
+    @Override
+    public KzksProjectCostYs selectSumClys() {
+        return costYsMapper.selectSumClys();
+    }
+
 }