From 75462db4b64a9240c5f5734fdc731dffeb76a0b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=85=95=E6=9C=88=E9=9C=9C=E7=AC=99?= <13508313+moonlight-frost-sheng@user.noreply.gitee.com> Date: Wed, 15 May 2024 17:23:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kms/build/domain/vo/StageStatistics.java | 42 +++++++++++ .../service/BsSgcjsjdBuiProInfoService.java | 72 +++++++++++++++++++ .../controller/ProjectManageController.java | 12 ++-- .../build/BsSgcJsjdBuiProgressMapper.xml | 4 +- 4 files changed, 123 insertions(+), 7 deletions(-) create mode 100644 jwtech-system/src/main/java/com/kms/build/domain/vo/StageStatistics.java diff --git a/jwtech-system/src/main/java/com/kms/build/domain/vo/StageStatistics.java b/jwtech-system/src/main/java/com/kms/build/domain/vo/StageStatistics.java new file mode 100644 index 00000000..ea9ee507 --- /dev/null +++ b/jwtech-system/src/main/java/com/kms/build/domain/vo/StageStatistics.java @@ -0,0 +1,42 @@ +package com.kms.build.domain.vo; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class StageStatistics { + /** 初步批复日期*/ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date preliminaryApprovalDate; + + /** 项目开工日期*/ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date projectStartedDate; + + /** 项目完工日期*/ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date projectCompletedDate; + + /** 竣工验收日期*/ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date completionAcceptanceDate; + + /** 已投资金额 */ + private BigDecimal completeInvestmentAmount; + + /** 计划投资金额 */ + private BigDecimal planInvestmentAmount; + + /** 已过工期 */ + private String elapseConstructionPeriod; + + /** 总工期 */ + private String totalConstructionPeriod; + + /** 目前阶段 0初步批复 1项目开工 2项目完工 3竣工验收*/ + private String currentStage; +} diff --git a/jwtech-system/src/main/java/com/kms/build/service/BsSgcjsjdBuiProInfoService.java b/jwtech-system/src/main/java/com/kms/build/service/BsSgcjsjdBuiProInfoService.java index 4cc098f9..c1edca55 100644 --- a/jwtech-system/src/main/java/com/kms/build/service/BsSgcjsjdBuiProInfoService.java +++ b/jwtech-system/src/main/java/com/kms/build/service/BsSgcjsjdBuiProInfoService.java @@ -1,5 +1,6 @@ package com.kms.build.service; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -15,6 +16,10 @@ import com.kms.build.domain.dto.AssertStatisticsDto; import com.kms.build.domain.dto.HistogramDto; import com.kms.build.domain.dto.NumberDto; +import com.kms.build.domain.vo.StageStatistics; +import com.kms.build.mapper.BsSgcJsjdBuiComAccMapper; +import com.kms.build.mapper.BsSgcJsjdBuiConstrMeasMapper; +import com.kms.build.mapper.BsSgcJsjdBuiProgressPlanMapper; import com.kms.build.mapper.BsSgcjsjdBuiProInfoMapper; import com.kms.common.utils.UserUtils; import com.kms.earlyStage.domain.SpecialProjectInfo; @@ -28,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.time.Period; import java.util.*; @@ -47,6 +53,9 @@ public class BsSgcjsjdBuiProInfoService extends BaseService sp, String adcd) { @@ -368,6 +382,64 @@ public class BsSgcjsjdBuiProInfoService extends BaseService sp){ + + StageStatistics stageStatistics=new StageStatistics(); + + BsSgcJsjdBuiConstrMeas bsSgcJsjdBuiConstrMeas = bsSgcJsjdBuiConstrMeasMapper.selectOne(new QueryWrapper() + .eq("proNo", sp.getData().getProNo()).eq("proCode", sp.getData().getProCode())); + if (!ObjectUtil.isEmpty(bsSgcJsjdBuiConstrMeas)){ + if (!ObjectUtil.isEmpty(bsSgcJsjdBuiConstrMeas.getReportTime1())){ + stageStatistics.setPreliminaryApprovalDate(bsSgcJsjdBuiConstrMeas.getReportTime1()); + stageStatistics.setCurrentStage("0"); + } + } + + + BsSgcjsjdBuiProInfo bsSgcjsjdBuiProInfo = bsSgcjsjdBuiProInfoMapper.selectOne(new QueryWrapper() + .eq("proNo", sp.getData().getProNo()).eq("proCode", sp.getData().getProCode())); + if (!ObjectUtil.isEmpty(bsSgcjsjdBuiProInfo)){ + if (!ObjectUtil.isEmpty(bsSgcjsjdBuiProInfo.getCommencementDate())){ + stageStatistics.setProjectStartedDate(bsSgcjsjdBuiProInfo.getCommencementDate()); + if (!bsSgcjsjdBuiProInfo.getCommencementDate().before(new Date())){ + stageStatistics.setCurrentStage("1"); + } + } + } + + BsSgcJsjdBuiComAcc bsSgcJsjdBuiComAcc = bsSgcJsjdBuiComAccMapper.selectOne(new QueryWrapper() + .eq("proNo", sp.getData().getProNo()).eq("proCode", sp.getData().getProCode())); + if (!ObjectUtil.isEmpty(bsSgcJsjdBuiComAcc)){ + if (!ObjectUtil.isEmpty(bsSgcJsjdBuiComAcc.getContractAcceptTime())){ + stageStatistics.setProjectCompletedDate(bsSgcJsjdBuiComAcc.getContractAcceptTime()); + stageStatistics.setCurrentStage("2"); + } + + if (!ObjectUtil.isEmpty(bsSgcJsjdBuiComAcc.getContractAcceptTime())){ + stageStatistics.setCompletionAcceptanceDate(bsSgcJsjdBuiComAcc.getContractAcceptTime()); + stageStatistics.setCurrentStage("3"); + } + } + + + String mm = String.format(DateUtil.formatBetween(bsSgcjsjdBuiProInfo.getCommencementDate(), bsSgcjsjdBuiProInfo.getPlannedCompletionDate()), "MM"); + stageStatistics.setTotalConstructionPeriod(mm); + + String mmn = String.format(DateUtil.formatBetween(bsSgcjsjdBuiProInfo.getCommencementDate(), new Date()), "MM"); + stageStatistics.setElapseConstructionPeriod(mmn); + + BsSgcJsjdBuiProgressPlan bp = bsSgcJsjdBuiProgressPlanMapper.selectOne(new QueryWrapper() + .eq("proNo", sp.getData().getProNo()).eq("proCode", sp.getData().getProCode())); + BigDecimal total=bp.getV1().add(bp.getV2()).add(bp.getV3()).add(bp.getV4()) + .add(bp.getV5()).add(bp.getV6()).add(bp.getV7()).add(bp.getV8()) + .add(bp.getV9()).add(bp.getV10()).add(bp.getV11()).add(bp.getV12()); + stageStatistics.setCompleteInvestmentAmount(total); + + stageStatistics.setPlanInvestmentAmount(bsSgcjsjdBuiProInfo.getCentralArrangedFunds() + .add(bsSgcjsjdBuiProInfo.getProvincialFunding()).add(bsSgcjsjdBuiProInfo.getCityLevelFunds()) + .add(bsSgcjsjdBuiProInfo.getCountyLevelFunds()).add(bsSgcjsjdBuiProInfo.getTownshipInvestments())); + return stageStatistics; + } @Data public class Use { diff --git a/jwtech-system/src/main/java/com/kms/warn/controller/ProjectManageController.java b/jwtech-system/src/main/java/com/kms/warn/controller/ProjectManageController.java index eeeac89b..00653120 100644 --- a/jwtech-system/src/main/java/com/kms/warn/controller/ProjectManageController.java +++ b/jwtech-system/src/main/java/com/kms/warn/controller/ProjectManageController.java @@ -2,16 +2,14 @@ package com.kms.warn.controller; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jianwei.common.core.domain.AjaxResult; import com.jianwei.common.core.domain.SearchParam; import com.kms.build.domain.BsSgcjsjdBuiProInfo; import com.kms.build.service.BsSgcjsjdBuiProInfoService; import com.kms.warn.domain.dto.FlowDto; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/warn/projectManage") @@ -45,6 +43,10 @@ public class ProjectManageController { } - + @PostMapping("/get/stage/statistics") + @ApiOperation("预警项目信息统计") + public AjaxResult getStageStatistics(@RequestBody SearchParam sp){ + return AjaxResult.success(bsSgcjsjdBuiProInfoService.getStageStatistics(sp)); + } } diff --git a/jwtech-system/src/main/resources/mapper/build/BsSgcJsjdBuiProgressMapper.xml b/jwtech-system/src/main/resources/mapper/build/BsSgcJsjdBuiProgressMapper.xml index 55a406a8..4d5c32c8 100644 --- a/jwtech-system/src/main/resources/mapper/build/BsSgcJsjdBuiProgressMapper.xml +++ b/jwtech-system/src/main/resources/mapper/build/BsSgcJsjdBuiProgressMapper.xml @@ -16,8 +16,8 @@ FROM `bs_sgc_jsjd_bui_progress` bp JOIN ( SELECT *, max( create_time ) FROM `bs_sgc_jsjd_bui_progress` GROUP BY PRO_CODE, PRO_NO ) t ON t.id = bp.id - LEFT JOIN bs_slgc_qqjd_spe_pro_proposal pi on bp.PRO_NO=pi.PRO_NO and bp.PRO_CODE=pi.PROJECT_CODE - LEFT JOIN bs_sgc_jsjd_bui_pro_info pp ON pp.PRO_NO=pi.PRO_NO and pp.PRO_CODE=pi.PROJECT_CODE + INNER JOIN bs_slgc_qqjd_spe_pro_proposal pi on bp.PRO_NO=pi.PRO_NO and bp.PRO_CODE=pi.PROJECT_CODE + INNER JOIN bs_sgc_jsjd_bui_pro_info pp ON pp.PRO_NO=pi.PRO_NO and pp.PRO_CODE=pi.PROJECT_CODE