Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/CheckTemplateServiceImpl.java
xiahan 11 months ago
parent
commit
9a5a1d83b2

+ 53 - 32
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/CheckTemplateServiceImpl.java

@@ -509,7 +509,7 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
      * @return
      */
     @Override
-    public R createCheckPlanByTempId(String id,Boolean mode) {
+    public R createCheckPlanByTempId(String id, Boolean mode) {
         CheckTemplateDo checkTemplateDo = this.getById(id);
         parameterCheck(() -> checkTemplateDo == null, "检查模板不存在", "检查模板不存在");
         // 生产检查任务
@@ -528,14 +528,38 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
         List<CheckTemplateItemsDo> templateItemsDos = checkTemplateItemsService.list(new LambdaQueryWrapper<CheckTemplateItemsDo>()
                 .in(CheckTemplateItemsDo::getChecktemplateid, checkTemplateDo.getId())
                 .eq(BaseDo::getDeleted, "0"));
-
-
-        if(!mode){
+        if (!mode) {
             templateItemsDos = templateItemsDos.stream().filter(data -> isNowCreateByFrequency(data.getFrequency())).collect(Collectors.toList());
         }
-        logger.debug("本次需要生成检查计划的模板数据有:{}",templateItemsDos.size());
+        logger.debug("本次需要生成检查计划的模板数据有:{}", templateItemsDos.size());
 
+        SysUserVo currentUser = JSCommonUtils.getCurrentUser();
+        // 获取当前时间的0点0分0秒
+        Calendar startCalendar = Calendar.getInstance();
+        startCalendar.setTime(new Date());
+        startCalendar.set(Calendar.HOUR_OF_DAY, 0);
+        startCalendar.set(Calendar.MINUTE, 0);
+        startCalendar.set(Calendar.SECOND, 1);
+        Calendar endCalendar = Calendar.getInstance();
+        endCalendar.setTime(new Date());
+        // 获取当前时间的23点59分59秒
+        endCalendar.set(Calendar.HOUR_OF_DAY, 23);
+        endCalendar.set(Calendar.MINUTE, 59);
+        endCalendar.set(Calendar.SECOND, 59);
+        endCalendar.set(Calendar.MILLISECOND, 999);
+        // 检查任务
+        List<ThemeCheckItemDo> themeCheckItemSaveDos = new ArrayList<>();
+        // 检查任务对应的检查项
+        List<ThemeCheckContentDo> themeCheckContentDos = new ArrayList<>();
+        ThemeCheckItemDo checkItemDo;
+        ThemeCheckContentDo themeCheckContentDo;
+        Date startTime = startCalendar.getTime();
+        Date endTime = endCalendar.getTime();
         templateItemsDos.forEach(tempDao -> {
+            if (StringUtils.isBlank(tempDao.getShift())) {
+                shiftTypeAndTempMap.computeIfAbsent("blank", k -> new ArrayList<>()).add(tempDao);
+                return;
+            }
             if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_SHIFT)) {
                 // 每班
                 shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_DAY_SHIFT, k -> new ArrayList<>()).add(tempDao);
@@ -563,26 +587,6 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
         });
 
 
-        SysUserVo currentUser = JSCommonUtils.getCurrentUser();
-        // 获取当前时间的0点0分0秒
-        Calendar startCalendar = Calendar.getInstance();
-        startCalendar.setTime(new Date());
-        startCalendar.set(Calendar.HOUR_OF_DAY, 0);
-        startCalendar.set(Calendar.MINUTE, 0);
-        startCalendar.set(Calendar.SECOND, 1);
-        Calendar endCalendar = Calendar.getInstance();
-        endCalendar.setTime(new Date());
-        // 获取当前时间的23点59分59秒
-        endCalendar.set(Calendar.HOUR_OF_DAY, 23);
-        endCalendar.set(Calendar.MINUTE, 59);
-        endCalendar.set(Calendar.SECOND, 59);
-        endCalendar.set(Calendar.MILLISECOND, 999);
-        // 检查任务
-        List<ThemeCheckItemDo> themeCheckItemSaveDos = new ArrayList<>();
-        // 检查任务对应的检查项
-        List<ThemeCheckContentDo> themeCheckContentDos = new ArrayList<>();
-        ThemeCheckItemDo checkItemDo;
-        ThemeCheckContentDo themeCheckContentDo;
         // 模板对应的检查项
         List<CheckTemplateItemsDo> items;
 
@@ -591,7 +595,11 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
             AspShiftTimeDo aspShiftTimeDo = aspShiftTimeDos.stream().filter(info -> k.equals(info.getShift())).findFirst().orElse(null);
 
             //当前班次最大的任务数量
-            int maxFrequency = entry.getValue().stream().mapToInt(CheckTemplateItemsDo::getShiftcount).max().orElse(1);
+//            int maxFrequency = entry.getValue().stream().mapToInt(CheckTemplateItemsDo::getShiftcount).max().orElse(1);
+            int maxFrequency = entry.getValue().stream()
+                    .mapToInt(item -> Optional.ofNullable(item.getShiftcount()).orElse(1))
+                    .max()
+                    .orElse(1);
             for (int i = 1; i <= maxFrequency; i++) {
                 checkItemDo = new ThemeCheckItemDo();
                 checkItemDo.setId(SecurityUtil.getUUID());
@@ -600,8 +608,13 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
                         "SC@{date:yyyyMM}@{serialNumber:#000000}", "date:yyyyMM", ""));
                 checkItemDo.setThemecheckid(checkTemplateDo.getId());
                 checkItemDo.setThemecheckname(checkTemplateDo.getTemplatename());
-                checkItemDo.setPlanstarttime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getStarttime));
-                checkItemDo.setPlanendtime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getEndtime));
+                if (aspShiftTimeDo != null) {
+                    checkItemDo.setPlanstarttime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getStarttime));
+                    checkItemDo.setPlanendtime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getEndtime));
+                } else {
+                    checkItemDo.setPlanstarttime(startTime);
+                    checkItemDo.setPlanendtime(endTime);
+                }
                 checkItemDo.setChecktype(checkTemplateDo.getTemplatetype());
                 checkItemDo.setTenantid(checkTemplateDo.getTenantid());
                 // TODO:XH add 2024/8/16 暂不止如何处理
@@ -614,10 +627,18 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
                 checkItemDo.setCheckstatus(THEME_CHECK_STATUS_WAIT);
                 themeCheckItemSaveDos.add(checkItemDo);
                 int finalI = i;
-                items = entry.getValue().stream().filter(info -> info.getShiftcount()>= finalI ).collect(Collectors.toList());
+//              items = entry.getValue().stream().filter(info -> info.getShiftcount() >= finalI).collect(Collectors.toList());
+                items = entry.getValue().stream()
+                        .map(info -> {
+                            Integer shiftcount = Optional.ofNullable(info.getShiftcount()).orElse(1);
+                            info.setShiftcount(shiftcount);
+                            return info;
+                        })
+                        .filter(info -> info.getShiftcount() >= finalI)
+                        .collect(Collectors.toList());
                 for (int j = 0; j < items.size(); j++) {
                     themeCheckContentDo = new ThemeCheckContentDo();
-                    themeCheckContentDo.setItemsort(j+1);
+                    themeCheckContentDo.setItemsort(j + 1);
                     themeCheckContentDo.setTenantid(checkTemplateDo.getTenantid());
                     themeCheckContentDo.setId(SecurityUtil.getUUID());
                     themeCheckContentDo.setThemecheckitemid(checkItemDo.getId());
@@ -638,12 +659,12 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
     public Date basedOnShiftGenerateTime(AspShiftTimeDo aspShiftTimeDo,
                                          Function<AspShiftTimeDo, String> getTimeFunction) {
         if (aspShiftTimeDo == null) {
-          return new Date();
+            return new Date();
         }
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(new Date());
         String timeStr = getTimeFunction.apply(aspShiftTimeDo);
-        if(CHECK_SHIFT_EVERY_NIGHT_SHIFT.equals(aspShiftTimeDo.getShift())){
+        if (CHECK_SHIFT_EVERY_NIGHT_SHIFT.equals(aspShiftTimeDo.getShift())) {
             calendar.add(Calendar.DATE, 1);
         }
         calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(timeStr.split(":")[0]));

+ 10 - 4
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/ScheduledTasksServiceImpl.java

@@ -45,7 +45,7 @@ import static com.rongwei.sfcommon.utils.MlConstants.DANGER_SOURCE_POINTCHECK;
  * @date 2024/08/27
  */
 @Service
-public class ScheduledTasksServiceImpl implements ScheduledTasksService{
+public class ScheduledTasksServiceImpl implements ScheduledTasksService {
     private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
     /**
      * 隐患跟踪任务整改提醒内容
@@ -94,6 +94,7 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService{
         );
         verifyNotify(hiddenDangerTrackList);
     }
+
     @Override
     public void affirmSystem() {
         List<HiddenDangerTrackDo> hiddenDangerTrackDos = hiddenDangerTrackService.list(new LambdaQueryWrapper<HiddenDangerTrackDo>()
@@ -166,17 +167,22 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService{
     }
 
     /**
-     * 根据安全检查模板 生成安全检查计划信息
+     * 根据安全检查模板 定时生成安全检查计划信息
+     *
      * @return
      */
     @Override
     public R createCheckPlanByTemp() {
         List<CheckTemplateDo> list = checkTemplateService.list(new LambdaQueryWrapper<CheckTemplateDo>()
                 .eq(BaseDo::getDeleted, "0")
+                .eq(CheckTemplateDo::getEnablestatus, "10")
                 .eq(CheckTemplateDo::getJobstarttype, "10"));
-        JSCommonUtils.parameterCheck(list::isEmpty,"","安全检查模板暂无定时任务");
-
 
+        JSCommonUtils.parameterCheck(list::isEmpty, "", "安全检查模板暂无定时任务");
+        //循环list
+        list.forEach(checkTemplateDo -> {
+            checkTemplateService.assembleCheckTask(checkTemplateDo, true);
+        });
 
 
         return R.ok();

+ 1 - 1
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/HiddenDangerTrackDo.java

@@ -344,5 +344,5 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
     /**
      * 评级
      */
-    private String RATE;
+    private String rate;
 }

+ 1 - 0
js-security/security-server/src/main/java/com/rongwei/savecheck/controller/ScheduledTasksController.java

@@ -91,6 +91,7 @@ public class ScheduledTasksController {
     @PostMapping("/save/check/plan")
     public R createCheckPlanByTemp() {
         log.info("点巡检隐患任务提醒");
+        scheduledTasksService.createCheckPlanByTemp();
         return R.ok();
     }
 }