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