Просмотр исходного кода

统计金额采用合同金额

buzhanyi 2 лет назад
Родитель
Сommit
acd60b3e29

+ 3 - 3
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -1774,11 +1774,11 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         Map<String, Integer> mapReturn = new HashMap<>();
         // 查询项目总数量
         Map<String, Integer> mapCount = pmDemandMapper.purchaseProjectStatistical(pmDemandReqVo);
-        // 查询已完成项目数量,预算金额数量
+        // 查询已完成项目数量,预算(合同)金额数量
         Map<String, Integer> mapYWC = pmDemandMapper.purchaseProjectStatisticalYWC(pmDemandReqVo);
         // 查询新创建项目数量,预算金额数量
         Map<String, Integer> mapXCJ = pmDemandMapper.purchaseProjectStatisticalXCJ(pmDemandReqVo);
-        // 查询去年完成项目数量,预算金额数量
+        // 查询去年完成项目数量,预算(合同)金额数量
         Map<String, Integer> mapQNWC = pmDemandMapper.purchaseProjectStatisticalQNWC(pmDemandReqVo);
         mapReturn.putAll(mapCount);
         mapReturn.putAll(mapYWC);
@@ -2043,7 +2043,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         resVos.add(resVo2);
 
         //上年度重大规划采购任务数量:指上年度项目中,项目属性为“重大规划”的项目数
-        //预算金额:指上年度项目中,项目属性为“重大规划”的项目累加的预算金额
+        //预算金额:指上年度项目中,项目属性为“重大规划”的项目累加的预算(合同)金额
         StatisticalChartsResVo resVo3 = new StatisticalChartsResVo();
         resVo3 = pmDemandMapper.countMajorProjectLastYear(pmDemandReqVo);
         resVo3.setColumnName("上年度重大规划采购任务数量");

+ 32 - 26
purchase-system/src/main/resources/mapper/pm/PmDemandMapper.xml

@@ -34,10 +34,12 @@
 
     <select id="purchaseProjectStatisticalYWC" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="java.util.Map">
-        select count(demand_id) countYWC, ifnull(sum(evaluation), 0) evaluationYWC
-        from pm_demand
-        WHERE purchase_dept_id = #{purchaseDeptId}
-          AND project_status = '17'
+        select count(d.demand_id) countYWC, ifnull(sum(c.contract_amount), 0) evaluationYWC
+        from pm_demand d
+                 LEFT JOIN pm_contract_info c
+                           ON d.demand_id = c.demand_id
+                               AND d.purchase_dept_id = #{purchaseDeptId}
+                               AND d.project_status = '17'
     </select>
 
     <select id="purchaseProjectStatisticalXCJ" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
@@ -53,16 +55,17 @@
     <select id="purchaseProjectStatisticalQNWC" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="java.util.Map">
         -- DATE_FORMAT(plan_demand_sub_time,'%Y')
-        select count(demand_id) countQNWC, ifnull(sum(evaluation), 0) evaluationQNWC
-        from pm_demand
-        where purchase_dept_id = #{purchaseDeptId}
-          AND project_status = '17'
-          and year(plan_demand_sub_time) = year(NOW()) - 1
+        select count(d.demand_id) countYWC, ifnull(sum(c.contract_amount), 0) evaluationQNWC
+        from pm_demand d
+                 LEFT JOIN pm_contract_info c
+                           ON d.demand_id = c.demand_id
+                               AND d.purchase_dept_id = #{purchaseDeptId}
+                               AND d.project_status = '17'
     </select>
 
     <select id="countByProjectAttr" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT project_status columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT project_status columnName, COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
         GROUP BY project_status
@@ -70,7 +73,7 @@
 
     <select id="countByPurchaseMode" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT purchase_mode columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT purchase_mode columnName, COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
         GROUP BY purchase_mode
@@ -78,7 +81,7 @@
 
     <select id="countByEvaluationLt" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
           AND evaluation &lt; #{evaluation}
@@ -86,14 +89,14 @@
 
     <select id="countByEvaluationBet" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
           AND evaluation BETWEEN #{evaluation} and #{evaluationEnd}
     </select>
     <select id="countByEvaluationGt" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
           AND evaluation &gt; #{evaluation}
@@ -101,7 +104,7 @@
 
     <select id="countProjectExceed" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
           AND (real_demand_commit_time > plan_demand_sub_time
@@ -170,7 +173,7 @@
 
     <select id="majorProjectByStatus" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
           AND find_in_set('1', project_attr)
@@ -179,7 +182,7 @@
     </select>
 
     <select id="countMajorProjectExceed" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
           AND (real_demand_commit_time > plan_demand_sub_time
@@ -213,7 +216,7 @@
 
     <select id="countEveryStatusNum" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT project_status columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT project_status columnName, COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE purchase_dept_id = #{purchaseDeptId}
           AND `project_status` IN (9, 10, 11, 12, 13, 14)
@@ -222,10 +225,10 @@
     </select>
 
     <select id="countEveryStatusNumTwo" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT project_status columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT project_status columnName, COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE `project_status` IN (15, 16, 17)
-          and DATE_FORMAT(create_time, '%Y') = YEAR (NOW())
+          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW())
         GROUP BY project_status
     </select>
 
@@ -237,11 +240,14 @@
 
     <select id="countMajorProjectLastYear" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT YEAR(NOW()) - 1 columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
-        FROM `pm_demand`
-        WHERE purchase_dept_id = #{purchaseDeptId}
-          AND find_in_set('1', project_attr)
-          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW()) - 1
+        #           AND find_in_set('1', project_attr)
+        SELECT YEAR(NOW()) - 1 columnName, COUNT(d.demand_id) num, ifnull(sum(c.contract_amount), 0) evaluationTotal
+        FROM pm_demand d
+                 LEFT JOIN pm_contract_info c
+                           ON d.demand_id = c.demand_id
+                               AND find_in_set('1', d.project_attr)
+                               AND d.purchase_dept_id = #{purchaseDeptId}
+                               AND DATE_FORMAT(d.create_time, '%Y') = YEAR(NOW()) - 1
     </select>
 
     <select id="countProjectMajorByYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
@@ -411,7 +417,7 @@
 
     <select id="countProjectExceedAndMajor" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        SELECT COUNT(demand_id) num, ifnull(sum(evaluation), 0) evaluationTotal
         FROM `pm_demand`
         WHERE (real_demand_commit_time > plan_demand_sub_time
             or real_purchase_finish_time > plan_purchase_finish_time