From c0f53b1a9ec3beae66e6821e84f4a76993ddec59 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Mon, 2 Sep 2024 17:16:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProjectDataController.java | 11 +++++++++- .../cost/controller/CostBudgetController.java | 20 +++++++++---------- .../modules/cost/entity/CostContract.java | 6 ++++++ .../service/impl/CostBudgetServiceImpl.java | 6 ++++-- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ProjectDataController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ProjectDataController.java index 9cf1aa477..0fb13dd53 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ProjectDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/ProjectDataController.java @@ -161,10 +161,19 @@ public class ProjectDataController { for (int i = 0; i < jsonArray.size(); i++) { JSONObject projectObj = jsonArray.getJSONObject(i).getJSONObject("mainTable"); CostContract costContract = JSONObject.parseObject(JSON.toJSONString(projectObj), CostContract.class); - contractList.add(costContract); JSONArray detailArray = jsonArray.getJSONObject(i).getJSONArray("detail1"); + StringBuilder gys = new StringBuilder(); + for (int j = 0; j < detailArray.size(); j++) { + String gysbm = detailArray.getJSONObject(j).getString("gysbm"); + if (StringUtils.isNotBlank(gysbm)) { + gys.append(gysbm); + gys.append(","); + } + } System.out.println(detailArray); + costContract.setGysbm(gys.toString()); + contractList.add(costContract); } costContractService.saveOrUpdateBatch(contractList); } diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/controller/CostBudgetController.java b/src/main/java/com/zhgd/xmgl/modules/cost/controller/CostBudgetController.java index 3daf34826..549c6aa18 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/controller/CostBudgetController.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/controller/CostBudgetController.java @@ -448,17 +448,17 @@ public class CostBudgetController { long count = 1; while (count > 0 && num < 10) { for (CostBudget costBudget : costBudgetList) { - if (StringUtils.isBlank(costBudget.getBudgetCost()) || costBudget.getBudgetCost().equals("0")) { - List subIds = subjectList.stream().filter(s -> s.getParentId().toString().equals(costBudget.getSubjectId().toString())) - .map(c -> c.getId().toString()).collect(Collectors.toList()); - List costSubjects = costBudgetList.stream().filter(c -> subIds.contains(c.getSubjectId().toString())).collect(Collectors.toList()); - if (costSubjects.size() > 0 && costSubjects.stream().filter(c -> StringUtils.isBlank(c.getBudgetCost())).count() == 0) { - BigDecimal budgetCost = costSubjects.stream().map(s -> new BigDecimal(s.getBudgetCost())).reduce(BigDecimal.ZERO, BigDecimal::add); - costBudget.setBudgetCost(budgetCost.toString()); - costBudget.setActualCost("0"); - costBudget.setCostDifference("0"); - } +// if (StringUtils.isBlank(costBudget.getBudgetCost()) || costBudget.getBudgetCost().equals("0")) { + List subIds = subjectList.stream().filter(s -> s.getParentId().toString().equals(costBudget.getSubjectId().toString())) + .map(c -> c.getId().toString()).collect(Collectors.toList()); + List costSubjects = costBudgetList.stream().filter(c -> subIds.contains(c.getSubjectId().toString())).collect(Collectors.toList()); + if (costSubjects.size() > 0 && costSubjects.stream().filter(c -> StringUtils.isBlank(c.getBudgetCost())).count() == 0) { + BigDecimal budgetCost = costSubjects.stream().map(s -> new BigDecimal(s.getBudgetCost())).reduce(BigDecimal.ZERO, BigDecimal::add); + costBudget.setBudgetCost(budgetCost.toString()); + costBudget.setActualCost("0"); + costBudget.setCostDifference("0"); } +// } } count = costBudgetList.stream().filter(c -> StringUtils.isBlank(c.getBudgetCost())).count(); num ++; diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostContract.java b/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostContract.java index 59e57185d..239d0dd88 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostContract.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostContract.java @@ -416,6 +416,12 @@ public class CostContract implements Serializable { @Excel(name = "项目信息", width = 15) @ApiModelProperty(value = "项目信息") private String xmxx; + /** + * 供应商编码 + */ + @Excel(name = "供应商编码", width = 15) + @ApiModelProperty(value = "供应商编码") + private String gysbm; /** * 项目SN */ diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostBudgetServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostBudgetServiceImpl.java index c5d99dc23..5d2157470 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostBudgetServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostBudgetServiceImpl.java @@ -71,8 +71,10 @@ public class CostBudgetServiceImpl extends ServiceImpl contractIds.contains(c.getHtmc())).map(c -> new BigDecimal(c.getBczfje())) .reduce(BigDecimal.ZERO, BigDecimal::add); costBudget.setActualCost(reduce.toString()); - BigDecimal ratio = reduce.subtract(new BigDecimal(costBudget.getBudgetCost())).divide(new BigDecimal(costBudget.getBudgetCost()), 2, BigDecimal.ROUND_HALF_UP); - costBudget.setCostDifference(ratio.multiply(new BigDecimal(100)).toString()); + if (!costBudget.getActualCost().equals("0")) { + BigDecimal ratio = reduce.subtract(new BigDecimal(costBudget.getBudgetCost())).divide(new BigDecimal(costBudget.getBudgetCost()), 2, BigDecimal.ROUND_HALF_UP); + costBudget.setCostDifference(ratio.multiply(new BigDecimal(100)).toString()); + } } getChildren(dtoList, allDtoList, budgetList, true); }