Parcourir la source

项目执行进度

sunhh il y a 2 ans
Parent
commit
e4669aed59

+ 20 - 0
purchase-admin/src/main/java/com/ozs/web/controller/statisticalAnalysis/StatisticalAnalysisController.java

@@ -112,5 +112,25 @@ public class StatisticalAnalysisController extends BaseController {
         return pmDemandService.countEveryStatusNum();
     }
 
+    @ApiOperation(value = "采购项目--项目数量分析")
+    @PostMapping("/purchaseProjectNumber")
+    public AjaxResult purchaseProjectNumber(@RequestBody PmDemandReqVo pmDemandReqVo) {
+        // 需求单位可查看本单位及其下属单位的统计数据
+        if (StringUtils.isNull(pmDemandReqVo.getPurchaseDeptId())) {
+            return error("登录账号的单位 不能为空!");
+        }
+        Map<String, Integer> map = pmDemandService.purchaseProjectNumber(pmDemandReqVo);
+        return success(map);
+    }
 
+    @ApiOperation(value = "项目执行进度统计")
+    @PostMapping("/purchaseProjectExecute")
+    public AjaxResult purchaseProjectExecute(@RequestBody PmDemandReqVo pmDemandReqVo) {
+        // 需求单位可查看本单位及其下属单位的统计数据
+        if (StringUtils.isNull(pmDemandReqVo.getPurchaseDeptId())) {
+            return error("登录账号的单位 不能为空!");
+        }
+        Map<String, Integer> map = pmDemandService.purchaseProjectExecute(pmDemandReqVo);
+        return success(map);
+    }
 }

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

@@ -167,4 +167,18 @@ public interface PmDemandMapper extends BaseMapper<PmDemand> {
      * @return
      */
     PmDemand selectByPlanId(@Param("planId") Integer planId);
+
+    /**
+     * 项目执行进度统计--正常推进项目数量、预算金额
+     * @param pmDemandReqVo
+     * @return
+     */
+    Map<String, Integer> purchaseProjectExecuteNormalPropulsion(PmDemandReqVo pmDemandReqVo);
+
+    /**
+     * 项目执行进度统计--未完成采购任务,预算金额
+     * @param pmDemandReqVo
+     * @return
+     */
+    Map<String, Integer> purchaseProjectExecuteIncomplete(PmDemandReqVo pmDemandReqVo);
 }

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

@@ -295,4 +295,18 @@ public interface IPmDemandService extends IService<PmDemand> {
      * @return
      */
     PmDemand selectByPlanId(Integer planId);
+
+    /**
+     * 采购项目--项目数量分析
+     * @param pmDemandReqVo
+     * @return
+     */
+    Map<String, Integer> purchaseProjectNumber(PmDemandReqVo pmDemandReqVo);
+
+    /**
+     * 项目执行进度统计
+     * @param pmDemandReqVo
+     * @return
+     */
+    Map<String, Integer> purchaseProjectExecute(PmDemandReqVo pmDemandReqVo);
 }

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

@@ -1598,6 +1598,37 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         return pmDemandMapper.selectByPlanId(planId);
     }
 
+    /**
+     * 采购项目--项目数量分析
+     * @param pmDemandReqVo
+     * @return
+     */
+    @Override
+    public Map<String, Integer> purchaseProjectNumber(PmDemandReqVo pmDemandReqVo) {
+
+        return null;
+    }
+
+    /**
+     * 项目执行进度统计
+     * 1、正常推进项目数量:指未完成并且没有逾期的项目
+     *    预算金额:指未完成并且没有逾期的项目累加的预算金额
+     * 2、未完成采购任务:“合同待填制”状态之前的项目
+     *    预算金额:“合同待填制”状态之前的项目累加的预算金额
+     * @param pmDemandReqVo
+     * @return
+     */
+    @Override
+    public Map<String, Integer> purchaseProjectExecute(PmDemandReqVo pmDemandReqVo) {
+        Map<String, Integer> mapReturn = new HashMap<>();
+        // 正常推进项目数量、预算金额
+        Map<String, Integer> mapNormalPropulsion = pmDemandMapper.purchaseProjectExecuteNormalPropulsion(pmDemandReqVo);
+        // 未完成采购任务,预算金额
+        Map<String, Integer> mapIncomplete = pmDemandMapper.purchaseProjectExecuteIncomplete(pmDemandReqVo);
+        mapReturn.putAll(mapNormalPropulsion);
+        mapReturn.putAll(mapIncomplete);
+        return mapReturn;
+    }
 
     //查询不同状态下的项目数据
     public List<PmDemandResVo> getListByStatus(String projectStatus) {

+ 33 - 11
purchase-system/src/main/resources/mapper/pm/PmDemandMapper.xml

@@ -84,13 +84,13 @@
         WHERE (real_demand_commit_time > plan_demand_sub_time
             or real_purchase_finish_time > plan_purchase_finish_time
             or real_deliver_time > plan_deliver_time)
-          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW())
+          and DATE_FORMAT(create_time, '%Y') = YEAR (NOW())
     </select>
 
     <select id="countThisYear" resultType="java.lang.Integer">
         SELECT COUNT(demand_id) num
         FROM `pm_demand`
-        WHERE DATE_FORMAT(create_time, '%Y') = YEAR(NOW())
+        WHERE DATE_FORMAT(create_time, '%Y') = YEAR (NOW())
     </select>
 
     <select id="countProjectExceedYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
@@ -137,7 +137,7 @@
         FROM `pm_demand`
         WHERE find_in_set('1', project_attr)
           AND `project_status` = #{code}
-          AND DATE_FORMAT(create_time, '%Y') = year(now())
+          AND DATE_FORMAT(create_time, '%Y') = year (now())
     </select>
 
     <select id="countProjectExceedAndMajor" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
@@ -147,31 +147,35 @@
             or real_purchase_finish_time > plan_purchase_finish_time
             or real_deliver_time > plan_deliver_time)
           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 id="taskQuantityYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo">
-        SELECT YEAR(NOW()) columnName, COUNT(demand_id) num
+        SELECT YEAR (NOW()) columnName, COUNT (demand_id) num
         FROM `pm_demand`
-        WHERE find_in_set('1', project_attr)
+        WHERE find_in_set('1'
+            , project_attr)
           AND `project_status` = #{code}
-          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW())
+          and DATE_FORMAT(create_time
+            , '%Y') = YEAR (NOW())
     </select>
 
     <select id="taskQuantityLastYear" resultType="com.ozs.pm.doman.vo.responseVo.StatisticalChartsResVo"
             parameterType="java.lang.String">
-        SELECT YEAR(NOW()) - 1 columnName, COUNT(demand_id) num
+        SELECT YEAR (NOW()) - 1 columnName, COUNT (demand_id) num
         FROM `pm_demand`
-        WHERE find_in_set('1', project_attr)
+        WHERE find_in_set('1'
+            , project_attr)
           AND `project_status` = #{code}
-          and DATE_FORMAT(create_time, '%Y') = YEAR(NOW()) - 1
+          and DATE_FORMAT(create_time
+            , '%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>
 
@@ -180,4 +184,22 @@
         from pm_demand
         where plan_id = #{planId} limit 1
     </select>
+
+    <!-- 正常推荐项目 -->
+    <select id="purchaseProjectExecuteNormalPropulsion" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="java.util.Map">
+        select count(demand_id) countNormalPropulsion, ifnull(sum(evaluation), 0) evaluationNormalPropulsion
+        from pm_demand
+        where project_status != '17'
+            and  (real_demand_commit_time > plan_demand_sub_time
+            or real_purchase_finish_time > plan_purchase_finish_time
+            or real_deliver_time > plan_deliver_time)
+    </select>
+
+    <select id="purchaseProjectExecuteIncomplete" parameterType="com.ozs.pm.doman.vo.requestVo.PmDemandReqVo"
+            resultType="java.util.Map">
+        select count(demand_id) countIncomplete, ifnull(sum(evaluation), 0) evaluationIncomplete
+        from pm_demand
+        where project_status in (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
+    </select>
 </mapper>