xiongchao 3 年之前
父节点
当前提交
6d21f17893

+ 2 - 2
platform-dao/src/main/java/com/platform/dao/util/MessageTemplateUtil.java

@@ -88,8 +88,8 @@ public class MessageTemplateUtil {
         return String.format("报修【%s】已超过%d小时未完成", id);
     }
 
-    public static String getSpareWarnNotic(String str, int num) {
-        return String.format("近6个月内有【%s】种备件不足,请注意:明细如下:" + System.getProperty("line.separator") + "【%s】", num, str);
+    public static String getSpareWarnNotic(int month, String str, int num) {
+        return String.format("近【%s】个月内有【%s】种备件不足,请注意:明细如下:" + System.getProperty("line.separator") + "【%s】", month, num, str);
     }
 
     public static String getRepairCheck(String id) {

+ 18 - 0
platform-rest/src/main/java/com/platform/rest/controller/sqarepartmanage/SparePartInfoController.java

@@ -8,8 +8,10 @@ import com.platform.dao.entity.sb.SbModel;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
 import com.platform.dao.entity.sqarepartmanage.SpareType;
 import com.platform.dao.util.SelectUtil;
+import com.platform.dao.vo.query.check.CheckStandardSpareVO;
 import com.platform.dao.vo.sb.SbModelSpareBomVO;
 import com.platform.dao.vo.sb.SbModelVO;
+import com.platform.service.check.CheckStandardService;
 import com.platform.service.sb.SbModelService;
 import com.platform.service.sb.SbModelSpareBomService;
 import com.platform.service.sqarepartmanage.SparePartInfoService;
@@ -44,6 +46,8 @@ public class SparePartInfoController {
   private final SbModelSpareBomService sbModelSpareBomService;
   private final  SparePartInfoService sparePartInfoService;
   private final SbModelService sbModelService;
+
+  private final CheckStandardService checkStandardService;
   /**
    * 通过id查询单条记录
    *
@@ -137,6 +141,20 @@ public class SparePartInfoController {
       return new R<>(sparePartInfoService.selectPageInfo(sparePartInfoDTO, pageNum, pageSize));
   }
 
+    /**
+     * 获取分页
+     *
+     * @param pageNum 当前页码
+     * @param pageSize 每页条数
+     * @param month 查询最近几个月的-距离当前系统时间
+     * @param month 类别1点检,2保养
+     * @return R
+     */
+    @GetMapping("/check/warn/page")
+    public R query(@RequestParam(defaultValue = "6") int month, @RequestParam(defaultValue = "2") int type, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+        return new R<>(checkStandardService.selectSpareWarnVOPage(month, type, pageNum, pageSize));
+    }
+
   /**
    * 获取列表
    *

+ 2 - 2
platform-rest/src/main/java/com/platform/rest/task/CheckStandardTask.java

@@ -21,8 +21,8 @@ public class CheckStandardTask {
     /**
      * 备件需求预警:以年为单位保养才需要
      */
-    public void genSpareWarn () {
-        checkStandardService.genSpareWarnTask(2);
+    public void genSpareWarn (int month) {
+        checkStandardService.genSpareWarnTask(month, 2);
     }
 
 }

+ 16 - 1
platform-service/src/main/java/com/platform/service/check/CheckStandardService.java

@@ -1,10 +1,15 @@
 package com.platform.service.check;
 
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
+import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.check.CheckStandard;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
+import com.platform.dao.vo.query.check.CheckStandardSpareVO;
 import com.platform.dao.vo.query.check.CheckStandardVO;
+import com.platform.dao.vo.sb.SbInfoVO;
 import com.platform.service.base.IBaseService;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -50,5 +55,15 @@ public interface CheckStandardService extends IBaseService<CheckStandard, CheckS
 
     String importListByAdd(MultipartFile file);
 
-    void genSpareWarnTask(int type);
+    void genSpareWarnTask(int month, int type);
+
+    /**
+     * 分页查询
+     * @param month      :
+     * @param type      :
+     * @param pageNum  :
+     * @param pageSize :
+     * @return :
+     */
+    AbstractPageResultBean<CheckStandardSpareVO> selectSpareWarnVOPage(int month, int type, int pageNum, int pageSize);
 }

+ 39 - 7
platform-service/src/main/java/com/platform/service/check/impl/CheckStandardServiceImpl.java

@@ -6,6 +6,7 @@ import com.github.pagehelper.PageHelper;
 import com.platform.common.exception.BusinessException;
 import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
+import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
 import com.platform.dao.dto.check.CheckStandardParamDTO;
@@ -462,19 +463,20 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
 
     /**
      * 查询备件预警
-     *
-     * @param type
+     * @param month 距离当前时间的几个月
+     * @param type 类型:1点检,2保养
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void genSpareWarnTask(int type) {
+    public void genSpareWarnTask(int month, int type) {
         CheckStandardDTO checkStandardDTO = new CheckStandardDTO();
+        checkStandardDTO.setType(type);
         checkStandardDTO.setPeriodType(CheckPlanPeriodTypeEnum.YEAR.getValue());
         List<CheckStandard> checkStandardList = super.getModelListByDTO(checkStandardDTO);
 
         // 查询近六个月待执行的任务列表。
         LocalDate now = LocalDate.now();
-        LocalDate afterSixMonth = DateUtils.plus(now, 6, ChronoUnit.MONTHS);
+        LocalDate afterSixMonth = DateUtils.plus(now, month, ChronoUnit.MONTHS);
         Weekend<CheckJob> weekend = new Weekend<>(CheckJob.class);
         weekend.weekendCriteria().andNotEqualTo(CheckJob::getStatus, CheckJobStatusEnum.FINISHED.getValue())
         .andBetween(CheckJob::getStartTime, now, afterSixMonth);
@@ -497,13 +499,43 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
                     }
                     if(CollectionUtil.isNotEmpty(warnList)){
                         List<SysUser> users = getUsersByIdentity(Arrays.asList(new Integer[]{SysUserIdentityType.WXZG.getValue()}));
-                        sendOverTimeNotice(users, warnList);
+                        sendOverTimeNotice(month, users, warnList);
                     }
                 }
             }
         }
     }
 
+    @Override
+    public AbstractPageResultBean<CheckStandardSpareVO> selectSpareWarnVOPage(int month, int type, int pageNum, int pageSize) {
+        CheckStandardDTO checkStandardDTO = new CheckStandardDTO();
+        checkStandardDTO.setType(type);
+        checkStandardDTO.setPeriodType(CheckPlanPeriodTypeEnum.YEAR.getValue());
+        List<CheckStandard> checkStandardList = super.getModelListByDTO(checkStandardDTO);
+
+        // 查询近六个月待执行的任务列表。
+        LocalDate now = LocalDate.now();
+        LocalDate afterSixMonth = DateUtils.plus(now, month, ChronoUnit.MONTHS);
+        Weekend<CheckJob> weekend = new Weekend<>(CheckJob.class);
+        weekend.weekendCriteria().andNotEqualTo(CheckJob::getStatus, CheckJobStatusEnum.FINISHED.getValue())
+                .andBetween(CheckJob::getStartTime, now, afterSixMonth);
+        List<CheckJob> checkJobs = checkJobMapper.selectByExample(weekend);
+
+        // 获取未执行的标准id,不能用stream获取id列表,会覆盖重复的标准id(不会重复,因为一个标准对应一个任务。)
+        List<CheckStandardSpareVO> voList = new ArrayList<CheckStandardSpareVO>();
+        if(CollectionUtil.isNotEmpty(checkJobs)){
+            List<String> ids = checkJobs.stream().map(CheckJob::getStandardId).collect(Collectors.toList());
+            ids = ids.stream().filter(item -> StringUtils.isNotBlank(item)).collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(ids) && ids.size()>0) {
+                CheckStandardSpareDTO dto = new CheckStandardSpareDTO();
+                dto.setCheckIds(ids);
+                PageHelper.startPage(pageNum, pageSize);
+                voList = spareMapper.selectSpareWarn(dto);
+            }
+        }
+        return new MyVOPage<>(voList);
+    }
+
     /**
      * 根据身份获取用户
      *
@@ -522,14 +554,14 @@ public class CheckStandardServiceImpl extends BaseServiceImpl<CheckStandardMappe
      * @param users
      * @param tasks
      */
-    private void sendOverTimeNotice(List<SysUser> users, List<CheckStandardSpareVO> tasks) {
+    private void sendOverTimeNotice(int month, List<SysUser> users, List<CheckStandardSpareVO> tasks) {
         if (CollectionUtil.isNotEmpty(users) && CollectionUtil.isNotEmpty(tasks)) {
             List<String> userIds = users.stream().map(item -> item.getUserId()).collect(Collectors.toList());
             List<String> mails = users.stream().map(item -> item.getEmail()).collect(Collectors.toList());
             StringBuffer context = new StringBuffer();
             tasks.forEach(item -> context.append(item.toString()));
             SpringContextHolder.publishEvent(new WorkplaceBacklogEvent(WorkplaceBacklogTypeEnum.CHECK_SPARE_WARN.getValue(), WorkplaceBacklogDetailTypeEnum.CHECK_SPARE_WARN.getValue(),
-                    null, MessageTemplateUtil.getSpareWarnNotic(context.toString(), tasks.size()),
+                    null, MessageTemplateUtil.getSpareWarnNotic(month, context.toString(), tasks.size()),
                     null, userIds, mails));
         }
     }