소스 검색

预警调度

suntianwu 2 년 전
부모
커밋
3fcdb09d53

+ 61 - 4
purchase-admin/src/main/java/com/ozs/web/controller/tool/PmTaskServer.java

@@ -1,9 +1,18 @@
 package com.ozs.web.controller.tool;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ozs.common.enums.PmProjectStatus;
+import com.ozs.common.utils.DateUtils;
+import com.ozs.pm.doman.PmDemand;
 import com.ozs.pm.service.IPmDemandService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 项目管理任务调度
@@ -19,13 +28,61 @@ public class PmTaskServer {
      */
     public void updateDemandWarnStatus(){
         log.info("******** 项目管理任务  开始");
-        //采购需求管理:针对项目计划中提报需求时间截止时间前一个月还未提报采购需求材料的,进行预警
+        LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<>();
+        lw.in(PmDemand::getProjectStatus,
+                PmProjectStatus.DEMAND_WAIT_FILL.getCode(),
+                PmProjectStatus.DEMAND_WAIT_COMMIT.getCode(),
+                PmProjectStatus.DEMAND_AUDIT_RETURN.getCode(),
+
+                PmProjectStatus.DEMAND_WAIT_AUDIT.getCode(),
+                PmProjectStatus.TASK_WAIT_RELEASE.getCode(),
+                PmProjectStatus.CONTRACT_WAIT_FILL.getCode(),
+                PmProjectStatus.UNDER_CONSTRUCTION.getCode()
+        );
+
+        List<PmDemand> list = this.pmDemandService.list(lw);
+        if(ObjectUtils.isEmpty(list)){
+            return;
+        }
+        List<PmDemand> updateList = new ArrayList<>();
+
+        list.forEach(item-> {
+            if(PmProjectStatus.DEMAND_WAIT_FILL.getCode().equals(item.getProjectStatus())
+                    || PmProjectStatus.DEMAND_WAIT_COMMIT.getCode().equals(item.getProjectStatus())
+                    || PmProjectStatus.DEMAND_AUDIT_RETURN.getCode().equals(item.getProjectStatus())){
+                //采购需求管理:针对项目计划中提报需求时间截止时间前一个月还未提报采购需求材料的,进行预警
+                int diff = DateUtils.differentDaysByMillisecond(item.getPlanDemandSubTime(), new Date());
+                if (diff > 30 && ObjectUtils.isEmpty(item.getRealDemandCommitTime())) {
+                    updateList.add(item);
+                }
+            } else if(PmProjectStatus.TASK_WAIT_RELEASE.getCode().equals(item.getProjectStatus())){
+                //任务下达管理:针对采购需求已完成提报X天的项目,且尚未进行任务下达的,进行预警
+                int diff = DateUtils.differentDaysByMillisecond(item.getPlanDemandSubTime(), new Date());
+                if (diff > 30 && ObjectUtils.isEmpty(item.getRealDemandCommitTime())) {
+                    updateList.add(item);
+                }
+
+            } else if(PmProjectStatus.CONTRACT_WAIT_FILL.getCode().equals(item.getProjectStatus())){
+                //合同信息管理:针对中标通知书发放25天,且尚未提交合同相关材料的项目,进行预警
+                int diff = DateUtils.differentDaysByMillisecond(item.getPlanDemandSubTime(), new Date());
+                if (diff > 30 && ObjectUtils.isEmpty(item.getRealDemandCommitTime())) {
+                    updateList.add(item);
+                }
+
+            } else if(PmProjectStatus.UNDER_CONSTRUCTION.getCode().equals(item.getProjectStatus())){
+                //项目建设管理:针对各阶段预置的起始时间期限,进行预警
+
+
+            }
+
+        });
+
+
+
+
 
-        //任务下达管理:针对采购需求已完成提报X天的项目,且尚未进行任务下达的,进行预警
 
-        //合同信息管理:针对中标通知书发放25天,且尚未提交合同相关材料的项目,进行预警
 
-        //项目建设管理:针对各阶段预置的起始时间期限,进行预警
         log.info("******** 项目管理任务  结束");
     }
 

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

@@ -699,6 +699,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         PmDemand pmDemand = new PmDemand();
         pmDemand.setDemandId(pmDemandReqVo.getDemandId());
         pmDemand.setProjectStatus(PmProjectStatus.DEMAND_WAIT_AUDIT.getCode());
+        pmDemand.setRealDemandCommitTime(DateUtils.getNowDate());
         pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
         pmDemand.setUpdateTime(DateUtils.getNowDate());
         return this.updateById(pmDemand);
@@ -1139,6 +1140,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
                 PmDemand pmDemandUpdate = new PmDemand();
                 pmDemandUpdate.setDemandId(pmBidWinningReqVo.getDemandId());
                 pmDemandUpdate.setProjectStatus(PmProjectStatus.BIDDING_PUBLICITY.getCode());
+                pmDemandUpdate.setRealPurchaseFinishTime(pmBidWinningReqVo.getUpdateTime());//TODO ????
                 pmDemandUpdate.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
                 pmDemandUpdate.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
                 return this.updateById(pmDemandUpdate);
@@ -1311,6 +1313,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             PmDemand pmDemandUpdate = new PmDemand();
             pmDemandUpdate.setDemandId(demandId);
             pmDemandUpdate.setProjectStatus(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
+            pmDemandUpdate.setRealDeliverTime(pmProjectConstructionReqVo.getUpdateTime());
             pmDemandUpdate.setUpdateTime(pmProjectConstructionReqVo.getUpdateTime());
             pmDemandUpdate.setUpdateBy(pmProjectConstructionReqVo.getUpdateBy());
             return this.updateById(pmDemandUpdate);