Bläddra i källkod

Merge branch 'master' of http://124.70.58.209:3000/ytrd-project-management/purchase

 Conflicts:
	purchase-system/src/main/java/com/ozs/pm/mapper/PmDemandMapper.java
sunhh 2 år sedan
förälder
incheckning
2dcd3c09bd

+ 4 - 5
purchase-admin/src/main/java/com/ozs/web/controller/statisticalAnalysis/StatisticalAnalysisController.java

@@ -55,9 +55,9 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "滞后项目数量分析")
     @GetMapping("/exceedAnalysis")
-    public AjaxResult exceedAnalysis() {
+    public AjaxResult exceedAnalysis(String qType) {
         //统计不同时间维度的逾期项目
-        return pmDemandService.exceedAnalysis();
+        return pmDemandService.exceedAnalysis(qType);
     }
 
     @ApiOperation(value = "滞后项目时长分析")
@@ -88,10 +88,9 @@ public class StatisticalAnalysisController extends BaseController {
 
     @ApiOperation(value = "任务数量趋势分析")
     @GetMapping("/taskQuantityAnalysis")
-    public AjaxResult taskQuantityAnalysis() {
+    public AjaxResult taskQuantityAnalysis(String qType) {
         //任务数量趋势分析:按照月、季度、年统计“项目属性”字段中“重大规划”属性的项目
-        //统计数据包括:上年度已完成任务数、本年度已完成任务数、新受领任务数(指未完成的数量)
-        return pmDemandService.taskQuantityAnalysis();
+        return pmDemandService.taskQuantityAnalysis(qType);
     }
 
     @ApiOperation(value = "新完成采购任务数量")

+ 16 - 0
purchase-admin/src/main/java/com/ozs/web/controller/tool/TestTaskServer.java

@@ -0,0 +1,16 @@
+package com.ozs.web.controller.tool;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+@Component
+@Slf4j
+public class TestTaskServer {
+
+    public void logStr(){
+        log.info("******** 测试定时任务  开始");
+        log.info("******** testTaskServer.logStr");
+        log.info("******** 测试定时任务  结束");
+    }
+
+}

+ 2 - 2
purchase-system/src/main/java/com/ozs/pm/service/IPmDemandService.java

@@ -252,7 +252,7 @@ public interface IPmDemandService extends IService<PmDemand> {
      *
      * @return
      */
-    AjaxResult exceedAnalysis();
+    AjaxResult exceedAnalysis(String qType);
 
     /**
      * 滞后项目时长分析
@@ -273,7 +273,7 @@ public interface IPmDemandService extends IService<PmDemand> {
      *
      * @return
      */
-    AjaxResult taskQuantityAnalysis();
+    AjaxResult taskQuantityAnalysis(String qType);
 
     /**
      * 新完成采购任务数量

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

@@ -1443,45 +1443,76 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
      * @return
      */
     @Override
-    public AjaxResult exceedAnalysis() {
+    public AjaxResult exceedAnalysis(String qType) {
         HashMap<String, List<StatisticalChartsResVo>> resMap = new HashMap<>();
         List<StatisticalChartsResVo> byYear = pmDemandMapper.countProjectExceedYear();
-        List<StatisticalChartsResVo> byMonth = pmDemandMapper.countProjectExceedMonth();
-        List<StatisticalChartsResVo> byQuarter = new LinkedList<>();
-        for (StatisticalChartsResVo chartsResVo : byYear) {
-            for (int i = 1; i <= 4; i++) {
-                StatisticalChartsResVo quarter = pmDemandMapper.countProjectExceedQuarter(i, Integer.parseInt(chartsResVo.getColumnName()));
-                if (Integer.parseInt(quarter.getNum()) > 0) {
-                    quarter.setColumnName(chartsResVo.getColumnName() + "年第" + i + "季度");
-                    byQuarter.add(quarter);
+        if (qType.equals("1")) {
+            resMap.put("年", byYear);
+        } else if (qType.equals("2")) {
+            List<StatisticalChartsResVo> byQuarter = new LinkedList<>();
+            for (StatisticalChartsResVo chartsResVo : byYear) {
+                for (int i = 1; i <= 4; i++) {
+                    StatisticalChartsResVo quarter = pmDemandMapper.countProjectExceedQuarter(i, Integer.parseInt(chartsResVo.getColumnName()));
+                    if (Integer.parseInt(quarter.getNum()) > 0) {
+                        quarter.setColumnName(chartsResVo.getColumnName() + "年第" + i + "季度");
+                        byQuarter.add(quarter);
+                    }
                 }
             }
+            resMap.put("季度", byQuarter);
+        } else if (qType.equals("3")) {
+            List<StatisticalChartsResVo> byMonth = pmDemandMapper.countProjectExceedMonth();
+            resMap.put("月", byMonth);
         }
-
-        resMap.put("年", byYear);
-        resMap.put("月", byMonth);
-        resMap.put("季度", byQuarter);
         return AjaxResult.success(resMap);
     }
 
     @Override
-    public AjaxResult taskQuantityAnalysis() {
-        //任务数量趋势分析:按照月、季度、年统计“项目属性”字段中“重大规划”属性的项目
-        //统计数据包括:上年度已完成任务数、本年度已完成任务数、新受领任务数(指未完成的数量)
+    public AjaxResult taskQuantityAnalysis(String qType) {
         HashMap<String, List<StatisticalChartsResVo>> resMap = new HashMap<>();
-        List<StatisticalChartsResVo> thisYearFinish = pmDemandMapper.taskQuantityYear(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
-        List<StatisticalChartsResVo> lastYearFinish = pmDemandMapper.taskQuantityLastYear(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
-
-        return null;
+        //任务数量趋势分析:按照月、季度、年统计“项目属性”字段中“重大规划”属性的项目
+        List<StatisticalChartsResVo> byYear = pmDemandMapper.countProjectMajorByYear();
+        if (qType.equals("1")) {
+            resMap.put("年", byYear);
+        } else if (qType.equals("2")) {
+            List<StatisticalChartsResVo> byQuarter = new LinkedList<>();
+            for (StatisticalChartsResVo chartsResVo : byYear) {
+                for (int i = 1; i <= 4; i++) {
+                    StatisticalChartsResVo quarter = pmDemandMapper.countProjectMajorByQuarter(i, Integer.parseInt(chartsResVo.getColumnName()));
+                    if (Integer.parseInt(quarter.getNum()) > 0) {
+                        quarter.setColumnName(chartsResVo.getColumnName() + "年第" + i + "季度");
+                        byQuarter.add(quarter);
+                    }
+                }
+            }
+            resMap.put("季度", byQuarter);
+        } else if (qType.equals("3")) {
+            List<StatisticalChartsResVo> byMonth = pmDemandMapper.countProjectMajorByMonth();
+            resMap.put("月", byMonth);
+        }
+        return AjaxResult.success(resMap);
     }
 
     @Override
     public AjaxResult newFinishPro() {
         // 新完成采购任务数量:本年度状态为“合同待填制”、“项目建设中”、“项目建设完成”的项目
         //        预算金额:“合同待填制”、“项目建设中”、“项目建设完成”的项目累加的预算金额
-        //合同金额:“合同待填制”、“项目建设中”、“项目建设完成”的项目累加的合同金额
+        List<StatisticalChartsResVo> everyStatusNum = pmDemandMapper.countEveryStatusNumTwo();
+        if (!ObjectUtils.isEmpty(everyStatusNum) && everyStatusNum.size() > 0) {
+            for (StatisticalChartsResVo vo : everyStatusNum) {
+                switch (vo.getColumnName()) {
+                    case "15":
+                        vo.setColumnName(PmProjectStatus.CONTRACT_WAIT_FILL.getInfo());
+                    case "16":
+                        vo.setColumnName(PmProjectStatus.UNDER_CONSTRUCTION.getInfo());
+                    case "17":
+                        vo.setColumnName(PmProjectStatus.COMPLETION_CONSTRUCTION.getInfo());
+                }
+            }
+        }
 
-        return null;
+        //合同金额:“合同待填制”、“项目建设中”、“项目建设完成”的项目累加的合同金额
+        return AjaxResult.success(everyStatusNum);
     }
 
     @Override
@@ -1505,19 +1536,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                     case "14":
                         vo.setColumnName(PmProjectStatus.BIDDING_PUBLICITY.getInfo());
                 }
-                //展示信息包括:鼠标上到图表时,展示项目数量和平均消耗时长(平均消耗时长,指所有项目在该阶段完成的平均时间)
-                //Integer days= pmDemandMapper.getTimeByStatus(PmProjectStatus.WAIT_SELECT_AGENT.getCode());
-
             }
         }
-
-        //    WAIT_SELECT_AGENT("9", "待选取代理"),
-        //    WAIT_UPLOAD_BID_FILE("10", "待上传招标文件"),
-        //    WAIT_ANNOUNCEMENT("11", "待发布公告"),
-        //    WAIT_OPEN_BID("12", "待开标"),
-        //    WAIT_BID_ANNOUNCEMENT("13", "待发布中标公告"),
-        //    BIDDING_PUBLICITY("14", "中标公示中"),
-        return null;
+        return AjaxResult.success(everyStatusNum);
     }
 
     @Override
@@ -1570,22 +1591,30 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         //预算金额:指本年度状态为“项目建设完成”的项目属性为“重大规划”的项目累加的预算金额
         StatisticalChartsResVo resVo = new StatisticalChartsResVo();
         resVo = pmDemandMapper.majorProjectByStatus(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
-        resVo.setColumnName("项目建设完成");
+        resVo.setColumnName("今年已完成数量");
         resVos.add(resVo);
+
         //正常推进项目:指本年度正在进行中的项目属性为“重大规划”的项目数
         //预算金额:指本年度正在进行中的项目属性为“重大规划”的项目累加的预算金额
         StatisticalChartsResVo resVo1 = new StatisticalChartsResVo();
         resVo1 = pmDemandMapper.majorProjectByStatus(PmProjectStatus.UNDER_CONSTRUCTION.getCode());
-        resVo1.setColumnName("正常推进项目");
+        resVo1.setColumnName("正常推进数量");
         resVos.add(resVo1);
 
         //执行滞后数量:指本年度逾期项目中,项目属性为“重大规划”的项目数
         //预算金额:指本年度正在进行中的项目属性为“重大规划”的项目累加的预算金额
         StatisticalChartsResVo resVo2 = new StatisticalChartsResVo();
-        resVo2 = pmDemandMapper.countProjectExceedAndMajor();
+        resVo2 = pmDemandMapper.countMajorProjectExceed();
         resVo2.setColumnName("执行滞后数量");
         resVos.add(resVo2);
 
+        //上年度重大规划采购任务数量:指上年度项目中,项目属性为“重大规划”的项目数
+        //预算金额:指上年度项目中,项目属性为“重大规划”的项目累加的预算金额
+        StatisticalChartsResVo resVo3 = new StatisticalChartsResVo();
+        resVo3 = pmDemandMapper.countMajorProjectLastYear();
+        resVo3.setColumnName("上年度重大规划采购任务数量");
+        resVos.add(resVo3);
+
         //resVo2=pmDemandMapper.majorProjectByStatus(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
         return AjaxResult.success(resVos);
     }

+ 43 - 4
purchase-system/src/main/resources/mapper/pm/PmDemandMapper.xml

@@ -140,7 +140,7 @@
           AND DATE_FORMAT(create_time, '%Y') = year (now())
     </select>
 
-    <select id="countProjectExceedAndMajor" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+    <select id="countMajorProjectExceed" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
         SELECT COUNT(demand_id) num, SUM(evaluation) evaluationTotal
         FROM `pm_demand`
         WHERE (real_demand_commit_time > plan_demand_sub_time
@@ -168,21 +168,60 @@
             , project_attr)
           AND `project_status` = #{code}
           and DATE_FORMAT(create_time
-            , '%Y') = YEAR (NOW()) - 1
+                  , '%Y') = YEAR(NOW()) - 1
     </select>
 
     <select id="countEveryStatusNum" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
         SELECT project_status columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
         FROM `pm_demand`
         WHERE `project_status` IN (9, 10, 11, 12, 13, 14)
-          and DATE_FORMAT(create_time, '%Y') = YEAR (NOW())
+          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW())
+        GROUP BY project_status
+    </select>
+
+    <select id="countEveryStatusNumTwo" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+        SELECT project_status columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        FROM `pm_demand`
+        WHERE `project_status` IN (15, 16, 17)
+          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW())
         GROUP BY project_status
     </select>
 
     <select id="selectByPlanId" parameterType="java.lang.Integer" resultType="com.ozs.pm.doman.PmDemand">
         select *
         from pm_demand
-        where plan_id = #{planId} limit 1
+        where plan_id = #{planId}
+        limit 1
+    </select>
+
+    <select id="countMajorProjectLastYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+        SELECT YEAR(NOW()) - 1 columnName, COUNT(demand_id) num, SUM(evaluation) evaluationTotal
+        FROM `pm_demand`
+        WHERE find_in_set('1', project_attr)
+          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW()) - 1
+    </select>
+
+    <select id="countProjectMajorByYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+        SELECT DATE_FORMAT(create_time, '%Y') columnName, COUNT(demand_id) num
+        FROM `pm_demand`
+        WHERE find_in_set('1', project_attr)
+        GROUP BY DATE_FORMAT(create_time, '%Y')
+        order by create_time asc
+    </select>
+
+    <select id="countProjectMajorByMonth" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+        SELECT DATE_FORMAT(create_time, '%Y-%m') columnName, COUNT(demand_id) num
+        FROM `pm_demand`
+        WHERE find_in_set('1', project_attr)
+        GROUP BY DATE_FORMAT(create_time, '%Y-%m')
+    </select>
+
+    <select id="countProjectMajorByQuarter" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
+        SELECT create_time columnName, COUNT(demand_id) num
+        FROM `pm_demand`
+        WHERE find_in_set('1', project_attr)
+          and QUARTER(create_time) = #{quarter}
+          AND DATE_FORMAT(create_time, '%Y') = #{year}
     </select>
 
     <!-- 正常推荐项目 -->