Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

suntianwu vor 2 Jahren
Ursprung
Commit
20630fda69

+ 15 - 1
purchase-admin/src/main/java/com/ozs/web/controller/statisticalAnalysis/StatisticalAnalysisController.java

@@ -154,7 +154,21 @@ public class StatisticalAnalysisController extends BaseController {
         if (StringUtils.isNull(pmDemandReqVo.getPurchaseDeptId())) {
         if (StringUtils.isNull(pmDemandReqVo.getPurchaseDeptId())) {
             return error("登录账号的单位 不能为空!");
             return error("登录账号的单位 不能为空!");
         }
         }
-        List<Map<String, Integer>> map = pmDemandService.purchaseProjectDistribution(pmDemandReqVo);
+        List<Map<String, String>> map = pmDemandService.purchaseProjectDistribution(pmDemandReqVo);
+        return success(map);
+    }
+
+    @ApiOperation(value = "项目数量分析")
+    @PostMapping("/purchaseProjectNumberAnalysis")
+    public AjaxResult purchaseProjectNumberAnalysis(@RequestBody PmDemandReqVo pmDemandReqVo) {
+        // 需求单位可查看本单位及其下属单位的统计数据
+        if (StringUtils.isNull(pmDemandReqVo.getPurchaseDeptId())) {
+            return error("登录账号的单位 不能为空!");
+        }
+        if (StringUtils.isNull(pmDemandReqVo.getTimeType())) {
+            return error("统计时间类型不能为空, 1:年度,2:季度,3:月份!");
+        }
+        List<Map<String, String>> map = pmDemandService.purchaseProjectNumberAnalysis(pmDemandReqVo);
         return success(map);
         return success(map);
     }
     }
 }
 }

+ 1 - 0
purchase-system/src/main/java/com/ozs/plan/service/impl/PlanYearsServiceImpl.java

@@ -963,6 +963,7 @@ public class PlanYearsServiceImpl extends ServiceImpl<PlanYearsMapper, PlanYears
             Long demandId = pmDemand.getDemandId();
             Long demandId = pmDemand.getDemandId();
             PmDemandResVo vo = new PmDemandResVo();
             PmDemandResVo vo = new PmDemandResVo();
             vo.setDemandId(demandId);
             vo.setDemandId(demandId);
+            vo.setDetailType(detailType);
             if ("1".equals(detailType)) { //项目计划
             if ("1".equals(detailType)) { //项目计划
                 BeanUtils.copyProperties(pmDemand, vo);
                 BeanUtils.copyProperties(pmDemand, vo);
                 SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(vo.getPurchaseDeptId()).get("sysDept");
                 SysDeptResponseVo sysDeptResponseVo = (SysDeptResponseVo) deptService.selectDeptById(vo.getPurchaseDeptId()).get("sysDept");

+ 4 - 1
purchase-system/src/main/java/com/ozs/pm/doman/vo/responseVo/PmDemandResVo.java

@@ -247,5 +247,8 @@ public class PmDemandResVo extends BaseEntity
      * 项目是否滞后 1为滞后
      * 项目是否滞后 1为滞后
      */
      */
     private String isExceedProject;
     private String isExceedProject;
-
+    /**
+     * 详情类型(1项目计划,2需求建档,3任务下达,4中标信息,5合同信息,6建设情况)
+     */
+    private String detailType;
 }
 }

+ 26 - 0
purchase-system/src/main/java/com/ozs/pm/mapper/PmDemandMapper.java

@@ -220,4 +220,30 @@ public interface PmDemandMapper extends BaseMapper<PmDemand> {
     StatisticalChartsResVo countMajorProjectExceed();
     StatisticalChartsResVo countMajorProjectExceed();
 
 
     StatisticalChartsResVo countMajorProjectLastYear();
     StatisticalChartsResVo countMajorProjectLastYear();
+
+    /**
+     * 各阶段项目数量分布
+     * @param pmDemandReqVo
+     * @return
+     */
+    Map<String, String> purchaseProjectDistribution(PmDemandReqVo pmDemandReqVo);
+
+    /**
+     * 项目数量分析--年
+     * @param pmDemandReqVo
+     * @return
+     */
+    List<Map<String, String>> purchaseProjectNumberAnalysisYear(PmDemandReqVo pmDemandReqVo);
+    /**
+     * 项目数量分析--季度
+     * @param pmDemandReqVo
+     * @return
+     */
+    List<Map<String, String>> purchaseProjectNumberAnalysisQuarter(PmDemandReqVo pmDemandReqVo);
+    /**
+     * 项目数量分析--月份
+     * @param pmDemandReqVo
+     * @return
+     */
+    List<Map<String, String>> purchaseProjectNumberAnalysisMonth(PmDemandReqVo pmDemandReqVo);
 }
 }

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

@@ -322,5 +322,12 @@ public interface IPmDemandService extends IService<PmDemand> {
      * @param pmDemandReqVo
      * @param pmDemandReqVo
      * @return
      * @return
      */
      */
-    List<Map<String, Integer>> purchaseProjectDistribution(PmDemandReqVo pmDemandReqVo);
+    List<Map<String, String>> purchaseProjectDistribution(PmDemandReqVo pmDemandReqVo);
+
+    /**
+     * 项目数量分析
+     * @param pmDemandReqVo
+     * @return
+     */
+    List<Map<String, String>> purchaseProjectNumberAnalysis(PmDemandReqVo pmDemandReqVo);
 }
 }

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

@@ -1692,6 +1692,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                         map1.put("yy", i);
                         map1.put("yy", i);
                         map1.put("evaluation", 0);
                         map1.put("evaluation", 0);
                         map1.put("contractAmount", 0);
                         map1.put("contractAmount", 0);
+                        map1.put("countNum", 0);
                         mapReturn.add(map1);
                         mapReturn.add(map1);
                     }
                     }
                 }
                 }
@@ -1708,6 +1709,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                         map1.put("yy", i);
                         map1.put("yy", i);
                         map1.put("evaluation", 0);
                         map1.put("evaluation", 0);
                         map1.put("contractAmount", 0);
                         map1.put("contractAmount", 0);
+                        map1.put("countNum", 0);
                         mapReturn.add(map1);
                         mapReturn.add(map1);
                     }
                     }
                 }
                 }
@@ -1726,6 +1728,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                         map1.put("yy", i);
                         map1.put("yy", i);
                         map1.put("evaluation", 0);
                         map1.put("evaluation", 0);
                         map1.put("contractAmount", 0);
                         map1.put("contractAmount", 0);
+                        map1.put("countNum", 0);
                         mapReturn.add(map1);
                         mapReturn.add(map1);
                     }
                     }
                 }
                 }
@@ -1734,19 +1737,133 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         return mapReturn;
         return mapReturn;
     }
     }
 
 
+    /**
+     * 各阶段项目数量分布
+     * @param pmDemandReqVo
+     * @return
+     */
     @Override
     @Override
-    public List<Map<String, Integer>> purchaseProjectDistribution(PmDemandReqVo pmDemandReqVo) {
+    public List<Map<String, String>> purchaseProjectDistribution(PmDemandReqVo pmDemandReqVo) {
         // 项目计划 4之前(包括4)
         // 项目计划 4之前(包括4)
-
-//        List<Map<String, Integer>> returnMap = pmDemandMapper.purchaseProjectDistribution();
+        List<String> xmjh = new ArrayList<>();
+        xmjh.add("4");
+        pmDemandReqVo.setProjectStatusList(xmjh);
+        Map<String, String> returnMapxmjh = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
+        returnMapxmjh.put("name", "计划管理");
         // 需求建党 4之后(不包括4)
         // 需求建党 4之后(不包括4)
+        List<String> xqjd = new ArrayList<>();
+        xqjd.add("5");
+        xqjd.add("6");
+        xqjd.add("7");
+        xqjd.add("8");
+        pmDemandReqVo.setProjectStatusList(xqjd);
+        Map<String, String> returnMapxqjd = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
+        returnMapxqjd.put("name", "需求管理");
         // 任务下达 8之后(不包括8)
         // 任务下达 8之后(不包括8)
+        List<String> rwxd = new ArrayList<>();
+        rwxd.add("9");
+        pmDemandReqVo.setProjectStatusList(rwxd);
+        Map<String, String> returnMaprwxd = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
+        returnMaprwxd.put("name", "任务下达");
         // 采购执行 9之后(不包括9)
         // 采购执行 9之后(不包括9)
-        // 合同信息 15之后(不包括15)
+        List<String> cgzx = new ArrayList<>();
+        cgzx.add("10");
+        cgzx.add("11");
+        cgzx.add("12");
+        cgzx.add("13");
+        cgzx.add("14");
+        cgzx.add("15");
+        pmDemandReqVo.setProjectStatusList(cgzx);
+        Map<String, String> returnMapcgzx = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
+        returnMapcgzx.put("name", "采购执行");
+        // 合同管理 15之后(不包括15)
+        List<String> htxx = new ArrayList<>();
+        htxx.add("16");
+        pmDemandReqVo.setProjectStatusList(htxx);
+        Map<String, String> returnMaphtxx = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
+        returnMaphtxx.put("name", "合同管理");
         // 项目建设 17
         // 项目建设 17
+        List<String> xmjs = new ArrayList<>();
+        xmjs.add("16");
+        pmDemandReqVo.setProjectStatusList(xmjs);
+        Map<String, String> returnMapxmjs = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
+        returnMapxmjs.put("name", "合同管理");
+
+        List<Map<String, String>> returnMap = new ArrayList<>();
+        returnMap.add(returnMapxmjh);
+        returnMap.add(returnMapxqjd);
+        returnMap.add(returnMaprwxd);
+        returnMap.add(returnMapcgzx);
+        returnMap.add(returnMaphtxx);
+        returnMap.add(returnMapxmjs);
+        return returnMap;
+    }
 
 
-
-        return null;
+    /**
+     * 项目数量分析
+     * @param pmDemandReqVo
+     * @return
+     */
+    @Override
+    public List<Map<String, String>> purchaseProjectNumberAnalysis(PmDemandReqVo pmDemandReqVo) {
+        List<Map<String, String>> mapReturn = new ArrayList<>();
+        // 统计时间类型 1:年度,2:季度,3:月份
+        if ("1".equals(pmDemandReqVo.getTimeType())) {
+            // 查询数据库中最小的年份
+            int minYear = pmDemandMapper.selectMinYear();
+            // 获取当前年份
+            Calendar calendar = Calendar.getInstance();
+            int year = calendar.get(Calendar.YEAR);
+            // 获取统计数据
+            // 获取项目统计
+            List<Map<String, String>> listMap = pmDemandMapper.purchaseProjectNumberAnalysisYear(pmDemandReqVo);
+            mapReturn.addAll(listMap);
+            for (int i = minYear; i <= year; i++) {
+                for (Map<String, String> map : listMap) {
+                    if (i != Integer.valueOf(map.get("yy"))) {
+                        Map<String, String> map1 = new HashMap<>();
+                        map1.put("yy", i + "");
+                        map1.put("countNum", 0 + "");
+                        mapReturn.add(map1);
+                    }
+                }
+            }
+        } else if ("2".equals(pmDemandReqVo.getTimeType())) {
+            // 当前年份季度统计
+            // 获取统计数据
+            List<Map<String, String>> listMap = pmDemandMapper.purchaseProjectNumberAnalysisQuarter(pmDemandReqVo);
+            mapReturn.addAll(listMap);
+            for (int i = 1; i <= 4; i++) {
+                for (Map<String, String> map : listMap) {
+                    int ii = Integer.parseInt(String.valueOf(map.get("yy")));
+                    map.put("yy", ii + "");
+                    if (i != ii) {
+                        Map<String, String> map1 = new HashMap<>();
+                        map1.put("yy", i + "");
+                        map1.put("countNum", 0 + "");
+                        mapReturn.add(map1);
+                    }
+                }
+            }
+        } else if ("3".equals(pmDemandReqVo.getTimeType())) {
+            // 当前年份月份统计
+            // 获取统计数据
+            List<Map<String, String>> listMap = pmDemandMapper.purchaseProjectNumberAnalysisMonth(pmDemandReqVo);
+            mapReturn.addAll(listMap);
+            for (int i = 1; i <= 12; i++) {
+                for (Map<String, String> map : listMap) {
+                    int ii = Integer.parseInt(String.valueOf(map.get("yy")));
+                    map.put("yy", ii + "");
+                    if (i != ii) {
+                        Map<String, String> map1 = new HashMap<>();
+                        map1.put("yy", i + "");
+                        map1.put("countNum", 0 + "");
+                        mapReturn.add(map1);
+                    }
+                }
+            }
+        }
+        return mapReturn;
     }
     }
 
 
     //查询不同状态下的项目数据
     //查询不同状态下的项目数据

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

@@ -249,7 +249,7 @@
 
 
     <select id="selectpurchaseProjectCompleteNumberYear" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
     <select id="selectpurchaseProjectCompleteNumberYear" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
             resultType="java.util.Map">
             resultType="java.util.Map">
-        select ifnull(sum(a.evaluation), 0) evaluation, year (a.plan_demand_sub_time) yy, ifnull(sum(b.contract_amount), 0) contractAmount
+        select count(demand_id) countNum, ifnull(sum(a.evaluation), 0) evaluation, year (a.plan_demand_sub_time) yy, ifnull(sum(b.contract_amount), 0) contractAmount
         from (
         from (
             select evaluation, plan_demand_sub_time, demand_id from pm_demand where project_status = '17'
             select evaluation, plan_demand_sub_time, demand_id from pm_demand where project_status = '17'
         ) a left join (
         ) a left join (
@@ -295,4 +295,35 @@
           AND find_in_set('1', project_attr)
           AND find_in_set('1', project_attr)
           and DATE_FORMAT(create_time, '%Y') = YEAR(NOW())
           and DATE_FORMAT(create_time, '%Y') = YEAR(NOW())
     </select>
     </select>
+
+    <select id="purchaseProjectDistribution" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="java.util.Map">
+        select count(demand_id) countNumber from pm_demand where project_status in
+        <foreach item = "item" collection="projectStatusList" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+
+    <select id="purchaseProjectNumberAnalysisYear" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="java.util.Map">
+        select count(demand_id) countNum, year(plan_demand_sub_time) yy
+        from pm_demand
+        group by year (plan_demand_sub_time)
+    </select>
+
+    <select id="purchaseProjectNumberAnalysisQuarter" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="java.util.Map">
+        select count(demand_id) countNum, quarter(plan_demand_sub_time) yy
+        from pm_demand
+        where year (plan_demand_sub_time) = year(NOW())
+        group by concat(Year (plan_demand_sub_time), quarter(plan_demand_sub_time))
+    </select>
+
+    <select id="purchaseProjectNumberAnalysisMonth" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="java.util.Map">
+        select count(demand_id) countNum, date_format(plan_demand_sub_time, '%m') yy
+        from pm_demand
+        where year(plan_demand_sub_time) = year(NOW())
+        group by date_format(plan_demand_sub_time, '%y%m')
+    </select>
 </mapper>
 </mapper>