From 623deaca6c9948631badfb7145ee6ada462b90de Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Thu, 5 Dec 2024 16:25:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E6=9C=AC=E7=AE=A1=E7=90=86=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CostQuantityController.java | 8 ++ .../xmgl/modules/cost/dto/DynamicCostDto.java | 35 ++++++- .../modules/cost/entity/CostContract.java | 16 +++- .../modules/cost/entity/CostContractPay.java | 6 ++ .../modules/cost/entity/CostQuantity.java | 12 +++ .../service/impl/CostBudgetServiceImpl.java | 4 +- .../impl/CostContractDetailServiceImpl.java | 2 +- .../impl/CostContractPlanServiceImpl.java | 95 +++++++++++++++++-- .../modules/jz/entity/JzProjectStart.java | 6 ++ .../jz/entity/JzQualityInspectionRecord.java | 4 +- .../com/zhgd/xmgl/task/JiuzhuDataTask.java | 4 + .../com/zhgd/xmgl/util/JiuzhuDateUtil.java | 14 ++- 12 files changed, 180 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/controller/CostQuantityController.java b/src/main/java/com/zhgd/xmgl/modules/cost/controller/CostQuantityController.java index de2c01ab1..9cb3be6dc 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/controller/CostQuantityController.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/controller/CostQuantityController.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zhgd.annotation.OperLog; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; +import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; +import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.util.PageUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -65,6 +67,9 @@ public class CostQuantityController { @Autowired private ISystemUserService systemUserService; + @Autowired + private IProjectService projectService; + /** * 分页列表查询 * @@ -158,6 +163,9 @@ public class CostQuantityController { Long userId = Long.valueOf(object.getJSONArray("reportId").get(0).toString()); costQuantity.setReportId(userId); costQuantity.setReportBy(systemUserService.getById(userId).getRealName()); + ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(costQuantity.getProjectSn()); + costQuantity.setProjectId(projectInfoBySn == null ? "" : projectInfoBySn.getProjectId().toString()); + costQuantity.setAmount(object.getString("amount")); costQuantityService.save(costQuantity); return Result.success("添加成功!"); } diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/dto/DynamicCostDto.java b/src/main/java/com/zhgd/xmgl/modules/cost/dto/DynamicCostDto.java index 2ef2d887e..8c099cae1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/dto/DynamicCostDto.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/dto/DynamicCostDto.java @@ -22,15 +22,45 @@ public class DynamicCostDto { @ApiModelProperty(value = "目标+调整") private BigDecimal goal = new BigDecimal(0); - @ApiModelProperty(value = "动态成本") + @ApiModelProperty(value = "动态目标") private BigDecimal dynamicCost = new BigDecimal(0); + @ApiModelProperty(value = "差额") + private BigDecimal allowance = new BigDecimal(0); + @ApiModelProperty(value = "差额比例") private String costDifference = "0"; + @ApiModelProperty(value = "合同总额") + private BigDecimal contractAmountTotal = new BigDecimal(0); + @ApiModelProperty(value = "合同金额") private BigDecimal contractAmount = new BigDecimal(0); + @ApiModelProperty(value = "合同变更金额") + private BigDecimal contractAmountChange = new BigDecimal(0); + + @ApiModelProperty(value = "合同产值") + private BigDecimal costQuantity = new BigDecimal(0); + + @ApiModelProperty(value = "待发产值") + private BigDecimal costQuantityUnComplete = new BigDecimal(0); + + @ApiModelProperty(value = "付款申请") + private BigDecimal payApply = new BigDecimal(0); + + @ApiModelProperty(value = "开票金额") + private BigDecimal invoiceAmount = new BigDecimal(0); + + @ApiModelProperty(value = "实付登记") + private BigDecimal payAmount = new BigDecimal(0); + + @ApiModelProperty(value = "申请未付") + private BigDecimal unPayAmount = new BigDecimal(0); + + @ApiModelProperty(value = "应付账款") + private BigDecimal accountsPayAmount = new BigDecimal(0); + @ApiModelProperty(value = "在途成本") private BigDecimal underApproval = new BigDecimal(0); @@ -40,9 +70,6 @@ public class DynamicCostDto { @ApiModelProperty(value = "预估变更") private BigDecimal estimatedChange = new BigDecimal(0); - @ApiModelProperty(value = "规划余量") - private BigDecimal allowance = new BigDecimal(0); - @ApiModelProperty(value = "子级动态成本信息") private List children = new ArrayList<>(); } 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 579012ae0..01ac32f3f 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 @@ -116,11 +116,11 @@ public class CostContract implements Serializable { @ApiModelProperty(value = "合同类型") private String htlxnew; /** - * 相对方签约主体 + * 乙方单位 */ - @Excel(name = "相对方签约主体", width = 15) - @ApiModelProperty(value = "相对方签约主体") - private String xdfqyzt; + @Excel(name = "乙方单位", width = 15) + @ApiModelProperty(value = "乙方单位") + private String yfdw; /** * 统一社会信用代码 */ @@ -438,11 +438,17 @@ public class CostContract implements Serializable { */ @Excel(name = "科目", width = 15) @ApiModelProperty(value = "科目") - private String km; + private String kmlkd; /** * 合约规划 */ @Excel(name = "合约规划", width = 15) @ApiModelProperty(value = "合约规划") private String hygh; + /** + * 是否关联主合同 + */ + @Excel(name = "是否关联主合同", width = 15) + @ApiModelProperty(value = "是否关联主合同") + private String sfglzht; } diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostContractPay.java b/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostContractPay.java index 19e866af4..2de350d51 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostContractPay.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostContractPay.java @@ -266,6 +266,12 @@ public class CostContractPay implements Serializable { @Excel(name = "所属项目", width = 15) @ApiModelProperty(value = "所属项目") private String sxm; + /** + * 开票金额 + */ + @Excel(name = "开票金额", width = 15) + @ApiModelProperty(value = "开票金额") + private String jshj; @TableField(exist = false) @ApiModelProperty(value = "经办人") diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostQuantity.java b/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostQuantity.java index 7dba226db..8cf236a31 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostQuantity.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/entity/CostQuantity.java @@ -109,4 +109,16 @@ public class CostQuantity implements Serializable { @Excel(name = "资金计划ID", width = 15) @ApiModelProperty(value = "资金计划ID") private Long payPlanId; + /** + * 产值金额 + */ + @Excel(name = "产值金额", width = 15) + @ApiModelProperty(value = "产值金额") + private String amount; + /** + * 项目ID + */ + @Excel(name = "项目ID", width = 15) + @ApiModelProperty(value = "项目ID") + private String projectId; } 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 6a558dc7c..54cd10549 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 @@ -69,7 +69,7 @@ public class CostBudgetServiceImpl extends ServiceImpl children = allList.stream().filter(a -> a.getParentId().toString().equals(costBudget.getSubjectId().toString())).collect(Collectors.toList()); if (children.size() > 0) { - List contractIds = contractList.stream().filter(c -> children.stream().map(d -> d.getId().toString()).collect(Collectors.toList()).contains(c.getKm().toString())).map(c -> c.getId().toString()).collect(Collectors.toList()); + List contractIds = contractList.stream().filter(c -> children.stream().map(d -> d.getId().toString()).collect(Collectors.toList()).contains(c.getKmlkd().toString())).map(c -> c.getId().toString()).collect(Collectors.toList()); BigDecimal reduce = costContractPayList.stream().filter(c -> contractIds.contains(c.getHtmc())).map(c -> new BigDecimal(c.getSfje())) .reduce(BigDecimal.ZERO, BigDecimal::add); costBudget.setActualCost(reduce.toString()); @@ -80,7 +80,7 @@ public class CostBudgetServiceImpl extends ServiceImpl contractIds = contractList.stream().filter(c -> c.getKm().toString().equals(costBudget.getSubjectId().toString())).map(c -> c.getId().toString()).collect(Collectors.toList()); + List contractIds = contractList.stream().filter(c -> c.getKmlkd().toString().equals(costBudget.getSubjectId().toString())).map(c -> c.getId().toString()).collect(Collectors.toList()); BigDecimal reduce = costContractPayList.stream().filter(c -> contractIds.contains(c.getHtmc())).map(c -> new BigDecimal(c.getSfje())) .reduce(BigDecimal.ZERO, BigDecimal::add); costBudget.setActualCost(reduce.toString()); diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostContractDetailServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostContractDetailServiceImpl.java index e698e042f..55e09c56b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostContractDetailServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostContractDetailServiceImpl.java @@ -42,7 +42,7 @@ public class CostContractDetailServiceImpl extends ServiceImpl c.getSubjectId().toString()).collect(Collectors.joining(",")); - contractPlan.setKm(collect); + contractPlan.setKmlkd(collect); return costContractService.updateById(contractPlan); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostContractPlanServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostContractPlanServiceImpl.java index 60a2c5bfb..ba5e5ea8e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostContractPlanServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/cost/service/impl/CostContractPlanServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.ws.rs.GET; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; @@ -45,6 +46,15 @@ public class CostContractPlanServiceImpl extends ServiceImpl contractDetailList = costContractDetailService.list(Wrappers.lambdaQuery() // .eq(CostContractDetail::getProjectId, projectInfoBySn.getProjectId())); - resultList = getDynamicChildren(parentSubList, allSubList, costBudgetList, contractList); + List costPayPlanList = costPayPlanService.list(); + List costContractPayList = costContractPayService.list(); + List costQuantityList = costQuantityService.list(Wrappers.lambdaQuery().eq(CostQuantity::getProjectSn, projectInfoBySn.getProjectSn())); + resultList = getDynamicChildren(parentSubList, allSubList, costBudgetList, contractList, costPayPlanList, costContractPayList, costQuantityList); } return resultList; } @@ -205,7 +218,7 @@ public class CostContractPlanServiceImpl extends ServiceImpl contracts = contractList.stream().filter(c -> c.getKm().toString().equals(costSubject.getId().toString())).collect(Collectors.toList()); + List contracts = contractList.stream().filter(c -> c.getKmlkd().toString().equals(costSubject.getId().toString())).collect(Collectors.toList()); costContractPlanDto.setGoal(costBudgetList.stream().filter(c -> c.getSubjectId().toString().equals(costSubject.getId().toString())) .map(c -> new BigDecimal(c.getBudgetCost())).reduce(BigDecimal.ZERO, BigDecimal::add)); costContractPlanDto.setUnderApproval(contracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); @@ -228,39 +241,103 @@ public class CostContractPlanServiceImpl extends ServiceImpl getDynamicChildren(List list, List allList, List costBudgetList, List contractList) { + private List getDynamicChildren(List list, List allList, List costBudgetList, List contractList + , List costPayPlanList, List costContractPayList, List costQuantityList) { List dynamicCostDtoList = new ArrayList<>(); for (CostSubject costSubject : list) { DynamicCostDto dynamicCostDto = new DynamicCostDto(); dynamicCostDto.setSubjectId(costSubject.getId()); dynamicCostDto.setSubjectName(costSubject.getName()); - // 查询合约 List children = allList.stream().filter(a -> a.getParentId().toString().equals(costSubject.getId().toString())).collect(Collectors.toList()); if (children.size() > 0) { List stringList = children.stream().map(d -> d.getId().toString()).collect(Collectors.toList()); - List contracts = contractList.stream().filter(c -> stringList.contains(c.getKm().toString())).collect(Collectors.toList()); + List contracts = contractList.stream().filter(c -> stringList.contains(c.getKmlkd().toString()) + && c.getHtqszt().equals("履约完毕")).collect(Collectors.toList()); + List htbhList = contracts.stream().map(c -> c.getHtbh()).collect(Collectors.toList()); + List htidList = contracts.stream().map(c -> c.getId().toString()).collect(Collectors.toList()); + List subContracts = contracts.stream().filter(c -> htidList.contains(c.getGlzht())).collect(Collectors.toList()); dynamicCostDto.setGoal(costBudgetList.stream().filter(c -> stringList.contains(c.getSubjectId().toString())) .map(c -> new BigDecimal(c.getBudgetCost())).reduce(BigDecimal.ZERO, BigDecimal::add)); - dynamicCostDto.setContractAmount(contracts.stream().filter(c -> c.getHtqszt().equals("履约完毕")).map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); dynamicCostDto.setUnderApproval(contracts.stream().filter(c -> c.getHtqszt().equals("审核中")).map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); dynamicCostDto.setDynamicCost(dynamicCostDto.getContractAmount().add(dynamicCostDto.getUnderApproval()).add(dynamicCostDto.getToOccur()).add(dynamicCostDto.getContractAmount())); BigDecimal subtract = dynamicCostDto.getGoal().subtract(dynamicCostDto.getDynamicCost()); dynamicCostDto.setCostDifference(dynamicCostDto.getGoal().compareTo(new BigDecimal(0)) > 0 ? subtract.divide(dynamicCostDto.getGoal(), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).toString() : "0"); dynamicCostDto.setAllowance(subtract); + //合同金额 + dynamicCostDto.setContractAmount(contracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); + //变更金额 + dynamicCostDto.setContractAmountChange(subContracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); + //合同总额 + dynamicCostDto.setContractAmountTotal(dynamicCostDto.getContractAmount().add(dynamicCostDto.getContractAmountChange())); + //合同产值 + dynamicCostDto.setCostQuantity(costQuantityList.stream().filter(c -> htidList.contains(c.getContractId().toString())).map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add)); + //待发产值=合同金额-合同产值 + dynamicCostDto.setCostQuantityUnComplete(dynamicCostDto.getContractAmount().subtract(dynamicCostDto.getCostQuantity())); + //付款申请=合同产值*付款条件 + List jhfkjeList = costPayPlanList.stream().filter(c -> htbhList.contains(c.getHtbh())).map(c -> c.getJhfkje()).collect(Collectors.toList()); + dynamicCostDto.setPayApply(jhfkjeList.stream().map(j -> new BigDecimal(j)).reduce(BigDecimal.ZERO, BigDecimal::add)); + //开票金额 + dynamicCostDto.setInvoiceAmount(costContractPayList.stream().filter(c -> htbhList.contains(c.getHtbh())) + .map(c -> new BigDecimal(c.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add)); + //实付登记 + List sfjeList = costContractPayList.stream().filter(c -> htbhList.contains(c.getHtbh())).map(c -> c.getSfje()).collect(Collectors.toList()); + dynamicCostDto.setPayAmount(sfjeList.stream().map(j -> new BigDecimal(j)).reduce(BigDecimal.ZERO, BigDecimal::add)); + //申请未付=付款申请-实付登记 + dynamicCostDto.setUnPayAmount(dynamicCostDto.getPayApply().subtract(dynamicCostDto.getPayAmount())); + //应付账款=合同产值-实付登记 + dynamicCostDto.setAccountsPayAmount(dynamicCostDto.getCostQuantity().subtract(dynamicCostDto.getPayAmount())); } else { - List contracts = contractList.stream().filter(c -> c.getKm().toString().equals(costSubject.getId().toString())).collect(Collectors.toList()); + List contracts = contractList.stream().filter(c -> c.getKmlkd().toString().equals(costSubject.getId().toString())).collect(Collectors.toList()); + List htbhList = contracts.stream().map(c -> c.getHtbh()).collect(Collectors.toList()); + List htidList = contracts.stream().map(c -> c.getId().toString()).collect(Collectors.toList()); + List subContracts = contracts.stream().filter(c -> htidList.contains(c.getGlzht())).collect(Collectors.toList()); dynamicCostDto.setGoal(costBudgetList.stream().filter(c -> c.getSubjectId().toString().equals(costSubject.getId().toString())) .map(c -> new BigDecimal(c.getBudgetCost())).reduce(BigDecimal.ZERO, BigDecimal::add)); - dynamicCostDto.setContractAmount(contracts.stream().filter(c -> c.getHtqszt().equals("履约完毕")).map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); +// dynamicCostDto.setContractAmount(contracts.stream().filter(c -> c.getHtqszt().equals("履约完毕")).map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); dynamicCostDto.setUnderApproval(contracts.stream().filter(c -> c.getHtqszt().equals("审核中")).map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); dynamicCostDto.setDynamicCost(dynamicCostDto.getContractAmount().add(dynamicCostDto.getUnderApproval()).add(dynamicCostDto.getToOccur()).add(dynamicCostDto.getContractAmount())); BigDecimal subtract = dynamicCostDto.getGoal().subtract(dynamicCostDto.getDynamicCost()); dynamicCostDto.setCostDifference(dynamicCostDto.getGoal().compareTo(new BigDecimal(0)) > 0 ? subtract.divide(dynamicCostDto.getGoal(), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).toString() : "0"); dynamicCostDto.setAllowance(subtract); + dynamicCostDto.setChildren(getDynamicChildren(contracts.stream().filter(c -> c.getHtqszt().equals("履约完毕")).collect(Collectors.toList()), costSubject.getId().toString())); + //合同金额 + dynamicCostDto.setContractAmount(contracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); + //变更金额 + dynamicCostDto.setContractAmountChange(subContracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add)); + //合同总额 + dynamicCostDto.setContractAmountTotal(dynamicCostDto.getContractAmount().add(dynamicCostDto.getContractAmountChange())); + //合同产值 + dynamicCostDto.setCostQuantity(costQuantityList.stream().filter(c -> htidList.contains(c.getContractId().toString())).map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add)); + //待发产值=合同金额-合同产值 + dynamicCostDto.setCostQuantityUnComplete(dynamicCostDto.getContractAmount().subtract(dynamicCostDto.getCostQuantity())); + //付款申请=合同产值*付款条件 + List jhfkjeList = costPayPlanList.stream().filter(c -> htbhList.contains(c.getHtbh())).map(c -> c.getJhfkje()).collect(Collectors.toList()); + dynamicCostDto.setPayApply(jhfkjeList.stream().map(j -> new BigDecimal(j)).reduce(BigDecimal.ZERO, BigDecimal::add)); + //开票金额 + dynamicCostDto.setInvoiceAmount(costContractPayList.stream().filter(c -> htbhList.contains(c.getHtbh())) + .map(c -> new BigDecimal(c.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add)); + //实付登记 + List sfjeList = costContractPayList.stream().filter(c -> htbhList.contains(c.getHtbh())).map(c -> c.getSfje()).collect(Collectors.toList()); + dynamicCostDto.setPayAmount(sfjeList.stream().map(j -> new BigDecimal(j)).reduce(BigDecimal.ZERO, BigDecimal::add)); + //申请未付=付款申请-实付登记 + dynamicCostDto.setUnPayAmount(dynamicCostDto.getPayApply().subtract(dynamicCostDto.getPayAmount())); + //应付账款=合同产值-实付登记 + dynamicCostDto.setAccountsPayAmount(dynamicCostDto.getCostQuantity().subtract(dynamicCostDto.getPayAmount())); } // List allChildren = allList.stream().filter(a -> Arrays.asList(a.getAncestors().split(",")).contains(costSubject.getId().toString())).collect(Collectors.toList()); - dynamicCostDto.setChildren(getDynamicChildren(children, allList, costBudgetList, contractList)); + dynamicCostDto.setChildren(getDynamicChildren(children, allList, costBudgetList, contractList, costPayPlanList, costContractPayList, costQuantityList)); + dynamicCostDtoList.add(dynamicCostDto); + } + return dynamicCostDtoList; + } + + private List getDynamicChildren(List contracts, String subjectId) { + List dynamicCostDtoList = new ArrayList<>(); + for (CostContract contract : contracts) { + DynamicCostDto dynamicCostDto = new DynamicCostDto(); + dynamicCostDto.setSubjectName(contract.getHtmc()); + dynamicCostDto.setContractAmount(new BigDecimal(contract.getHtjea())); dynamicCostDtoList.add(dynamicCostDto); } return dynamicCostDtoList; diff --git a/src/main/java/com/zhgd/xmgl/modules/jz/entity/JzProjectStart.java b/src/main/java/com/zhgd/xmgl/modules/jz/entity/JzProjectStart.java index a43b79359..28aac96f2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/jz/entity/JzProjectStart.java +++ b/src/main/java/com/zhgd/xmgl/modules/jz/entity/JzProjectStart.java @@ -161,4 +161,10 @@ public class JzProjectStart implements Serializable { @Excel(name = "工程内容", width = 15) @ApiModelProperty(value = "工程内容") private String gcnr; + /** + * 附件 + */ + @Excel(name = "附件", width = 15) + @ApiModelProperty(value = "附件") + private String fileUrl; } diff --git a/src/main/java/com/zhgd/xmgl/modules/jz/entity/JzQualityInspectionRecord.java b/src/main/java/com/zhgd/xmgl/modules/jz/entity/JzQualityInspectionRecord.java index 1656a845c..0cc820760 100644 --- a/src/main/java/com/zhgd/xmgl/modules/jz/entity/JzQualityInspectionRecord.java +++ b/src/main/java/com/zhgd/xmgl/modules/jz/entity/JzQualityInspectionRecord.java @@ -103,7 +103,7 @@ public class JzQualityInspectionRecord implements Serializable { */ @Excel(name = "整改时限", width = 15) @ApiModelProperty(value = "整改时限") - private String changeLimitTime; + private Date changeLimitTime; /** * 检查人id */ @@ -133,7 +133,7 @@ public class JzQualityInspectionRecord implements Serializable { */ @Excel(name = "整改完成时间", width = 15) @ApiModelProperty(value = "整改完成时间") - private String completeTime; + private Date completeTime; /** * 项目唯一标识 */ diff --git a/src/main/java/com/zhgd/xmgl/task/JiuzhuDataTask.java b/src/main/java/com/zhgd/xmgl/task/JiuzhuDataTask.java index c6333c789..c63c05e5a 100644 --- a/src/main/java/com/zhgd/xmgl/task/JiuzhuDataTask.java +++ b/src/main/java/com/zhgd/xmgl/task/JiuzhuDataTask.java @@ -40,6 +40,10 @@ public class JiuzhuDataTask { public void projectData() { jiuzhuDateUtil.getSubCompanyData(); jiuzhuDateUtil.getProjectSupplier(); + } + + @Scheduled(cron = "0 0/2 * * * ?") + public void projectData1() { jiuzhuDateUtil.getContract(); jiuzhuDateUtil.getContractPay(); jiuzhuDateUtil.getPayPlan(); diff --git a/src/main/java/com/zhgd/xmgl/util/JiuzhuDateUtil.java b/src/main/java/com/zhgd/xmgl/util/JiuzhuDateUtil.java index 6ba785d7e..e8a321624 100644 --- a/src/main/java/com/zhgd/xmgl/util/JiuzhuDateUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/JiuzhuDateUtil.java @@ -36,6 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import java.math.BigDecimal; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -202,10 +203,17 @@ public class JiuzhuDateUtil { for (int i = 0; i < jsonArray.size(); i++) { JSONObject projectObj = jsonArray.getJSONObject(i).getJSONObject("mainTable"); CostContractPay costContractPay = JSONObject.parseObject(JSON.toJSONString(projectObj), CostContractPay.class); + JSONArray detailArray = jsonArray.getJSONObject(i).getJSONArray("detail6"); + BigDecimal jshjTotal = new BigDecimal(0); + for (Object o : detailArray) { + JSONObject detail6Obj = JSONObject.parseObject(JSON.toJSONString(o)); + String jshj = detail6Obj.getString("jshj"); + if (StringUtils.isNotBlank(jshj)) { + jshjTotal.add(new BigDecimal(jshj)); + } + } + costContractPay.setJshj(jshjTotal.toString()); contractPayList.add(costContractPay); - -// JSONArray detailArray = jsonArray.getJSONObject(i).getJSONArray("detail1"); -// System.out.println(detailArray); } costContractPayService.saveOrUpdateBatch(contractPayList); }