|
@@ -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) {
|