From 5e0cc128324ecc24aa7cd6b0c690261a18b53d48 Mon Sep 17 00:00:00 2001
From: yxm <zhp1521624>
Date: Mon, 01 Jul 2024 17:22:21 +0800
Subject: [PATCH] 项目进度统计图柱状图v20240701
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml | 117 +++++++++++++++++++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StatisticsPrice.java | 14 +++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectService.java | 7 +
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java | 24 +++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java | 31 +++++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java | 1
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StatisticsPriceVO.java | 18 ++++
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.java | 10 ++
8 files changed, 219 insertions(+), 3 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java
index a2931fa..398b405 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/controller/TbProjectController.java
@@ -4,9 +4,9 @@
import cn.gistack.sm.sjztmd.excel.TbProjectExcel;
import cn.gistack.sm.sjztmd.excel.TbProjectImporter;
import cn.gistack.sm.sjztmd.service.ITbProjectService;
-import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
-import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTable;
-import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
+import cn.gistack.sm.sjztmd.statisticsVO.*;
+import cn.gistack.sm.sjztmd.vo.StatisticsPrice;
+import cn.gistack.sm.sjztmd.vo.StatisticsPriceVO;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -85,4 +85,22 @@
return R.status(tbProjectService.updatecheckState(id,checkState));
}
+ /**
+ * 项目管理统计饼状图
+ * @param statisticsParams
+ * @return
+ */
+
+ @GetMapping("/statisticsPie")
+ public R statisticsPie(StatisticsParams statisticsParams){
+ StatisticsPrice statisticsPrice = tbProjectService.statisticsPie(statisticsParams);
+ return R.data(statisticsPrice);
+ }
+
+ @GetMapping("/statisticsBar")
+ public R statisticsBar(StatisticsParams statisticsParams){
+ List<StatisticsPriceVO> list = tbProjectService.statisticsBar(statisticsParams);
+ return R.data(list);
+ }
+
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.java
index 7ae3eb2..78247c1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.java
@@ -4,6 +4,8 @@
import cn.gistack.sm.sjztmd.entity.TbProject;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
+import cn.gistack.sm.sjztmd.vo.StatisticsPrice;
+import cn.gistack.sm.sjztmd.vo.StatisticsPriceVO;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -19,4 +21,12 @@
List<StatisticsTableProject> getStatisticsTable(@Param("params") StatisticsParams statisticsParams);
TbProject getTbProjectInfo(@Param("params") TbProject params);
+
+ StatisticsPrice getStatisticsPie(@Param("params") StatisticsParams statisticsParams);
+
+ StatisticsPrice getStatisticsPies(@Param("params") StatisticsParams statisticsParams);
+
+ List<StatisticsPriceVO> getStatisticsPieBar(@Param("params") StatisticsParams statisticsParams);
+
+ List<StatisticsPriceVO> getStatisticsPieBars(@Param("params") StatisticsParams statisticsParams);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
index 160d2b8..419c156 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
@@ -131,6 +131,7 @@
SELECT
aab."guid" adCode,
aab."ad_name" adName,
+ aab."ad_grad" AS adGrad,
paab."guid" padCode,
paab."ad_name" padName,
tps.curMonthActualFund,
@@ -294,4 +295,120 @@
and "tb_year" = #{params.tbYear}
</if>
</select>
+ <select id="getStatisticsPie" resultType="cn.gistack.sm.sjztmd.vo.StatisticsPrice">
+ SELECT
+ sum(
+ NVL ( a."center_fund", 0 )+ NVL ( a."local_fund", 0 )) AS sumPrice,
+ sum(
+ NVL ( b."actual_fund", 0 )) sumPay,
+ sum(
+ NVL ( a."center_fund", 0 )+ NVL ( a."local_fund", 0 ))- sum(
+ NVL ( b."actual_fund", 0 )) noPay
+FROM
+ sjzt_md."tb_project" a
+ LEFT JOIN ( SELECT * FROM sjzt_md."tb_project_schedule"
+ WHERE 1=1
+ <if test="params.tbYear != null and params.tbYear !=''">
+ AND "year" = #{params.tbYear}
+ </if>
+ <if test="params.tbMonth != null and params.tbMonth !=''">
+ AND "month" = #{params.tbMonth}
+ </if>
+ ) b ON a."guid" = b."tb_project_id"
+ </select>
+ <select id="getStatisticsPies" resultType="cn.gistack.sm.sjztmd.vo.StatisticsPrice">
+ SELECT
+ sum(
+ NVL ( a."center_fund", 0 )+ NVL ( a."local_fund", 0 )) AS sumPrice,
+ sum(
+ NVL ( b."actual_fund", 0 )) sumPay,
+ sum(
+ NVL ( a."center_fund", 0 )+ NVL ( a."local_fund", 0 ))- sum(
+ NVL ( b."actual_fund", 0 )) noPay
+FROM
+ sjzt_md."tb_project" a
+ LEFT JOIN ( SELECT * FROM sjzt_md."tb_project_schedule"
+ WHERE 1=1
+ <if test="params.tbYear != null and params.tbYear !=''">
+ AND "year" = #{params.tbYear}
+ </if>
+ <if test="params.tbMonth != null and params.tbMonth !=''">
+ AND "month" = #{params.tbMonth}
+ </if>
+ ) b ON a."guid" = b."tb_project_id"
+ LEFT JOIN YWXT."att_ad_base" c ON ( a."city_code" = c."guid" )
+ OR ( a."county_code" = c."guid" )
+WHERE
+ c."guid" = #{params.adCode}
+ </select>
+ <select id="getStatisticsPieBar" resultType="cn.gistack.sm.sjztmd.vo.StatisticsPriceVO">
+ SELECT
+ c."ad_code" adCode,
+ c."ad_name" adName,
+
+ sum(
+ NVL ( a."center_fund", 0 )+ NVL ( a."local_fund", 0 )) AS sumPrice,
+ sum(
+ NVL ( b."actual_fund", 0 )) sumPay,
+ sum(
+ NVL ( a."center_fund", 0 )+ NVL ( a."local_fund", 0 ))- sum(
+ NVL ( b."actual_fund", 0 )) noPay
+ FROM
+ sjzt_md."tb_project" a
+ LEFT JOIN ( SELECT * FROM sjzt_md."tb_project_schedule"
+ WHERE 1=1
+ <if test="params.tbYear != null and params.tbYear !=''">
+ AND "year" = #{params.tbYear}
+ </if>
+ <if test="params.tbMonth != null and params.tbMonth !=''">
+ AND "month" = #{params.tbMonth}
+ </if>
+ ) b ON a."guid" = b."tb_project_id"
+ RIGHT JOIN YWXT."att_ad_base" c on c."ad_code" = a."city_code"
+ where c."p_ad_code" = #{params.adCode}
+ GROUP BY
+ c."ad_code" ,
+ c."ad_name"
+ </select>
+ <select id="getStatisticsPieBars" resultType="cn.gistack.sm.sjztmd.vo.StatisticsPriceVO">
+ SELECT
+ b."ad_name" adName,
+ b."ad_code" adCode,
+ a.sumPrice sumPrice,
+ a.noPay noPay,
+ a.sumPay sumPay
+FROM
+ (
+ SELECT
+ a."county_code",
+ a."county_name",
+ a."city_code",
+ sum(
+ NVL ( a."center_fund", 0 )+ NVL ( a."local_fund", 0 )) AS sumPrice,
+ sum(
+ NVL ( b."actual_fund", 0 )) sumPay,
+ sum(
+ NVL ( a."center_fund", 0 )+ NVL ( a."local_fund", 0 ))- sum(
+ NVL ( b."actual_fund", 0 )) noPay
+ FROM
+ sjzt_md."tb_project" a
+ LEFT JOIN ( SELECT * FROM sjzt_md."tb_project_schedule"
+ WHERE 1=1
+ <if test="params.tbYear != null and params.tbYear !=''">
+ AND "year" = #{params.tbYear}
+ </if>
+ <if test="params.tbMonth != null and params.tbMonth !=''">
+ AND "month" = #{params.tbMonth}
+ </if>
+ ) b ON a."guid" = b."tb_project_id"
+ GROUP BY
+ a."county_code",
+ a."county_name",
+ a."city_code"
+ ) a
+ RIGHT JOIN YWXT."att_ad_base" b ON ( b."guid" = a."city_code" )
+ OR ( b."guid" = a."county_code" )
+WHERE
+ b."p_ad_code" = #{params.adCode}
+ </select>
</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectService.java
index d56e91a..243fd3c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/ITbProjectService.java
@@ -4,7 +4,10 @@
import cn.gistack.sm.sjztmd.entity.TbProject;
import cn.gistack.sm.sjztmd.excel.TbProjectExcel;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
+import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
+import cn.gistack.sm.sjztmd.vo.StatisticsPrice;
+import cn.gistack.sm.sjztmd.vo.StatisticsPriceVO;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -23,4 +26,8 @@
void importUser(List<TbProjectExcel> data, Boolean isCovered);
boolean updatecheckState(String id,String checkState);
+
+ StatisticsPrice statisticsPie(StatisticsParams statisticsParams);
+
+ List<StatisticsPriceVO> statisticsBar(StatisticsParams statisticsParams);
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java
index eb66de5..4cec098 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/TbProjectServiceImpl.java
@@ -6,13 +6,17 @@
import cn.gistack.sm.sjztmd.entity.TbProjectSchedule;
import cn.gistack.sm.sjztmd.excel.TbProjectExcel;
import cn.gistack.sm.sjztmd.mapper.TbProjectMapper;
+import cn.gistack.sm.sjztmd.service.IAttAdBaseService;
import cn.gistack.sm.sjztmd.service.IAttResBaseService;
import cn.gistack.sm.sjztmd.service.ITbProjectScheduleService;
import cn.gistack.sm.sjztmd.service.ITbProjectService;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsParams;
+import cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTable;
import cn.gistack.sm.sjztmd.statisticsVO.StatisticsTableProject;
import cn.gistack.sm.sjztmd.util.CalculateUtils;
+import cn.gistack.sm.sjztmd.vo.StatisticsPrice;
+import cn.gistack.sm.sjztmd.vo.StatisticsPriceVO;
import cn.gistack.sm.sjztmd.vo.TbProjectVO;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -21,6 +25,7 @@
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
@@ -35,6 +40,8 @@
private final ITbProjectScheduleService tbProjectScheduleService;
private final IAttResBaseService attResBaseService;
+ @Autowired
+ private IAttAdBaseService iAttAdBaseService;
@Override
public Object getList(TbProjectVO tbProjectVO, IPage<TbProjectVO> page) {
@@ -165,4 +172,28 @@
tbProject.setCheckState(checkState);
return saveOrUpdate(tbProject);
}
+
+ @Override
+ public StatisticsPrice statisticsPie(StatisticsParams statisticsParams) {
+
+ AttAdBase ywxtAdDetail = iAttAdBaseService.getYwxtAdDetail(statisticsParams.getAdCode());
+ if (ywxtAdDetail.getAdGrad().equals("1")) {
+ StatisticsPrice statisticsPie =baseMapper.getStatisticsPie(statisticsParams);
+ return statisticsPie;
+ }
+ StatisticsPrice statisticsPie =baseMapper.getStatisticsPies(statisticsParams);
+
+ return statisticsPie;
+ }
+
+ @Override
+ public List<StatisticsPriceVO> statisticsBar(StatisticsParams statisticsParams) {
+ AttAdBase ywxtAdDetail = iAttAdBaseService.getYwxtAdDetail(statisticsParams.getAdCode());
+ if (ywxtAdDetail.getAdGrad().equals("1")) {
+ List<StatisticsPriceVO> statisticsPieBar =baseMapper.getStatisticsPieBar(statisticsParams);
+ return statisticsPieBar;
+ }
+ List<StatisticsPriceVO> statisticsPieBar =baseMapper.getStatisticsPieBars(statisticsParams);
+ return statisticsPieBar;
+ }
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java
index 8daafa5..ba1fab1 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java
@@ -11,6 +11,7 @@
private String adCode;
private String adName;
+ private String adGrad;
private String padCode;
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StatisticsPrice.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StatisticsPrice.java
new file mode 100644
index 0000000..fec281a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StatisticsPrice.java
@@ -0,0 +1,14 @@
+package cn.gistack.sm.sjztmd.vo;
+
+
+import lombok.Data;
+
+@Data
+public class StatisticsPrice {
+
+ private int sumPrice;
+
+ private int sumPay;
+
+ private int noPay;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StatisticsPriceVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StatisticsPriceVO.java
new file mode 100644
index 0000000..828f9a5
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/StatisticsPriceVO.java
@@ -0,0 +1,18 @@
+package cn.gistack.sm.sjztmd.vo;
+
+
+import lombok.Data;
+
+@Data
+public class StatisticsPriceVO {
+
+ private String adName;
+
+ private String adCode;
+
+ private int sumPrice;
+
+ private int noPay;
+
+ private int sumPay;
+}
--
Gitblit v1.9.3