Browse Source

Merge remote-tracking branch 'origin/master'

QAQ 陈 11 months ago
parent
commit
07733d4951
25 changed files with 568 additions and 462 deletions
  1. 7 13
      js-common/src/main/java/com/rongwei/safecommon/config/BsMetaObjectHandler.java
  2. 6 0
      js-security/security-common/pom.xml
  3. 15 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/ApsSpecialInspectionTaskDao.java
  4. 15 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/ApsSpecialInspectionTaskZibiaoDao.java
  5. 11 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/ApsSpecialInspectionTaskService.java
  6. 11 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/ApsSpecialInspectionTaskZibiaoService.java
  7. 1 1
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckTemplateService.java
  8. 13 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/SpecialInspectionService.java
  9. 21 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/ApsSpecialInspectionTaskServiceImpl.java
  10. 23 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/ApsSpecialInspectionTaskZibiaoServiceImpl.java
  11. 63 52
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/CheckTemplateServiceImpl.java
  12. 81 0
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/SpecialInspectionServiceImpl.java
  13. 45 64
      js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/ThemeCheckServiceImpl.java
  14. 107 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/ApsSpecialInspectionTaskDo.java
  15. 81 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/ApsSpecialInspectionTaskZibiaoDo.java
  16. 0 39
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/AspCheckDiscoveryItemDo.java
  17. 1 0
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/CheckTemplateDo.java
  18. 1 1
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/CheckTemplateItemsDo.java
  19. 0 238
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/HiddenDangerTrackDo.java
  20. 0 9
      js-security/security-entity/src/main/java/com/rongwe/scentity/domian/ThemeCheckWorkparkDo.java
  21. 9 5
      js-security/security-server/src/main/java/com/rongwei/savecheck/controller/CheckTemplateController.java
  22. 36 0
      js-security/security-server/src/main/java/com/rongwei/savecheck/controller/SpecialInspectionController.java
  23. 8 13
      js-security/security-server/src/main/java/com/rongwei/savecheck/controller/ThemeCheckController.java
  24. 8 16
      js-security/security-server/src/main/resources/logback-spring.xml
  25. 5 11
      js-training/training-server/src/main/resources/logback-spring.xml

+ 7 - 13
js-common/src/main/java/com/rongwei/safecommon/config/BsMetaObjectHandler.java

@@ -43,30 +43,24 @@ public class BsMetaObjectHandler implements MetaObjectHandler {
                 sysUser.setName("系统操作");
             } else {
                 HttpServletRequest request = attributes.getRequest();
-                if (request == null) {
+                String token = request.getHeader("token");
+                logger.info("token.... " + token);
+                if (token == null || "".equals(token)) {
                     sysUser = new SysUserVo();
                     sysUser.setId("0");
                     sysUser.setName("系统操作");
                 } else {
-                    String token = request.getHeader("token");
-                    logger.info("token.... " + token);
-                    if (token == null || "".equals(token)) {
+                    sysUser = redisService.getLoginUser(token);
+                    if (sysUser == null) {
+                        logger.info("当前token未查到对应的用户信息");
                         sysUser = new SysUserVo();
-                        sysUser.setId("0");
-                        sysUser.setName("系统操作");
-                    } else {
-                        sysUser = redisService.getLoginUser(token);
-                        if (sysUser == null) {
-                            logger.info("当前token未查到对应的用户信息");
-                            sysUser = new SysUserVo();
-                        }
                     }
                 }
             }
 
             logger.info("start insert fill ....");
             Object tenantid = this.getFieldValByName("tenantid", metaObject);
-            if (null == tenantid && sysUser != null) {
+            if (null == tenantid) {
                 // 所有组织机构
                 List<SysOrganizationDo> orgdos = (List<SysOrganizationDo>) redisService.getRedisCatchObj("allOrgs");
                 // 获取所属工厂

+ 6 - 0
js-security/security-common/pom.xml

@@ -37,6 +37,12 @@
             <version>4.4.0</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.rongwei</groupId>
+            <artifactId>training-common</artifactId>
+            <version>1.1-SNAPSHOT</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 15 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/ApsSpecialInspectionTaskDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.ApsSpecialInspectionTaskDo;
+
+/**
+ * @Entity generator.domain.ApsSpecialInspectionTask
+ */
+public interface ApsSpecialInspectionTaskDao extends BaseMapper<ApsSpecialInspectionTaskDo> {
+
+}
+
+
+
+

+ 15 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/dao/ApsSpecialInspectionTaskZibiaoDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.sfcommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.ApsSpecialInspectionTaskZibiaoDo;
+
+/**
+ * @Entity generator.domain.ApsSpecialInspectionTaskZibiao
+ */
+public interface ApsSpecialInspectionTaskZibiaoDao extends BaseMapper<ApsSpecialInspectionTaskZibiaoDo> {
+
+}
+
+
+
+

+ 11 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/ApsSpecialInspectionTaskService.java

@@ -0,0 +1,11 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.ApsSpecialInspectionTaskDo;
+
+/**
+ *
+ */
+public interface ApsSpecialInspectionTaskService extends IService<ApsSpecialInspectionTaskDo> {
+
+}

+ 11 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/ApsSpecialInspectionTaskZibiaoService.java

@@ -0,0 +1,11 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwe.scentity.domian.ApsSpecialInspectionTaskZibiaoDo;
+
+/**
+ *
+ */
+public interface ApsSpecialInspectionTaskZibiaoService extends IService<ApsSpecialInspectionTaskZibiaoDo> {
+
+}

+ 1 - 1
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/CheckTemplateService.java

@@ -24,6 +24,6 @@ public interface CheckTemplateService extends IService<CheckTemplateDo> {
 
     void updateStatusByHiId(Map<String, Object> map);
 
-    R createCheckPlanByTempId(String id);
+    R createCheckPlanByTempId(String id,Boolean mode);
 }
 

+ 13 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/SpecialInspectionService.java

@@ -0,0 +1,13 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.rongwei.rwcommon.base.R;
+
+/**
+ * SpecialInspectionService class
+ *
+ * @author XH
+ * @date 2024/08/20
+ */
+public interface SpecialInspectionService {
+    R createHiddenDangerTrack(String id);
+}

+ 21 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/ApsSpecialInspectionTaskServiceImpl.java

@@ -0,0 +1,21 @@
+package com.rongwei.sfcommon.sys.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwe.scentity.domian.ApsSpecialInspectionTaskDo;
+import com.rongwei.sfcommon.sys.dao.ApsSpecialInspectionTaskDao;
+import com.rongwei.sfcommon.sys.service.ApsSpecialInspectionTaskService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class ApsSpecialInspectionTaskServiceImpl extends ServiceImpl<ApsSpecialInspectionTaskDao, ApsSpecialInspectionTaskDo>
+        implements ApsSpecialInspectionTaskService {
+
+}
+
+
+
+

+ 23 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/ApsSpecialInspectionTaskZibiaoServiceImpl.java

@@ -0,0 +1,23 @@
+package com.rongwei.sfcommon.sys.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import com.rongwe.scentity.domian.ApsSpecialInspectionTaskZibiaoDo;
+import com.rongwei.sfcommon.sys.dao.ApsSpecialInspectionTaskZibiaoDao;
+import com.rongwei.sfcommon.sys.service.ApsSpecialInspectionTaskZibiaoService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ *
+ */
+@Service
+public class ApsSpecialInspectionTaskZibiaoServiceImpl extends ServiceImpl<ApsSpecialInspectionTaskZibiaoDao, ApsSpecialInspectionTaskZibiaoDo>
+implements ApsSpecialInspectionTaskZibiaoService {
+
+}
+
+
+
+

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

@@ -9,6 +9,7 @@ import com.rongwe.scentity.vo.CheckTemplateItemsVo;
 import com.rongwe.scentity.vo.CheckTemplateVo;
 import com.rongwei.commonservice.serial.service.CommonDictService;
 import com.rongwei.rwadmincommon.system.domain.SysDictDo;
+import com.rongwei.rwadmincommon.system.service.impl.WidgetInstServiceImpl;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.BaseDo;
 import com.rongwei.rwcommon.base.R;
@@ -27,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import static com.rongwei.safecommon.utils.JSCommonUtils.parameterCheck;
@@ -77,6 +79,8 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
     private ThemeCheckItemService themeCheckItemService;
     @Autowired
     private ThemeCheckContentService themeCheckContentService;
+    @Autowired
+    private WidgetInstServiceImpl widgetInstService;
 
     /**
      * 通用Map转自定义业务实体类
@@ -501,54 +505,60 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
      * 根据模板ID创建计划
      *
      * @param id
+     * @param mode 是否忽略检查项的频次 0:不忽略 1:忽略
      * @return
      */
     @Override
-    public R createCheckPlanByTempId(String id) {
+    public R createCheckPlanByTempId(String id,Boolean mode) {
         CheckTemplateDo checkTemplateDo = this.getById(id);
         parameterCheck(() -> checkTemplateDo == null, "检查模板不存在", "检查模板不存在");
         // 生产检查任务
-        assembleCheckPlan(Collections.singletonList(checkTemplateDo), true);
+        assembleCheckTask(checkTemplateDo, mode);
         return R.ok();
     }
 
 
-    public void assembleCheckPlan(List<CheckTemplateDo> checkTemplateDos, boolean singleExecution) {
+    public void assembleCheckTask(CheckTemplateDo checkTemplateDo, Boolean mode) {
         // 各班次需要生产任务的模板信息
-        Map<String, List<CheckTemplateDo>> shiftTypeAndTempMap = new HashMap<>();
-        if (!singleExecution) {
-            // 获取本次可以生成计划的模板信息
-            checkTemplateDos = checkTemplateDos.stream().filter(data -> isNowCreateByFrequency(data.getFrequency())).collect(Collectors.toList());
-        }
+        Map<String, List<CheckTemplateItemsDo>> shiftTypeAndTempMap = new HashMap<>();
         // 获取工作时间信息
         List<AspShiftTimeDo> aspShiftTimeDos = aspShiftTimeDao.selectByMap(SHIFT_TIME_QUERY);
-
-        log.debug("本次需要生成");
-        checkTemplateDos.forEach(tempDao -> {
+        // 获取模板对应的检查项
+        List<CheckTemplateItemsDo> templateItemsDos = checkTemplateItemsService.list(new LambdaQueryWrapper<CheckTemplateItemsDo>()
+                .in(CheckTemplateItemsDo::getChecktemplateid, checkTemplateDo.getId())
+                .eq(BaseDo::getDeleted, "0"));
+        if(!mode){
+            templateItemsDos = templateItemsDos.stream().filter(data -> isNowCreateByFrequency(data.getFrequency())).collect(Collectors.toList());
+        }
+        logger.debug("本次需要生成检查计划的模板数据有:{}",templateItemsDos.size());
+        templateItemsDos.forEach(tempDao -> {
+            if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_SHIFT)) {
+                // 每班
+                shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_DAY_SHIFT, k -> new ArrayList<>()).add(tempDao);
+                shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_MIDDLE_SHIFT, k -> new ArrayList<>()).add(tempDao);
+                shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_NIGHT_SHIFT, k -> new ArrayList<>()).add(tempDao);
+                return;
+            }
+            // 白班
             if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_DAY_SHIFT)) {
                 shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_DAY_SHIFT, k -> new ArrayList<>()).add(tempDao);
-            } else if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_MIDDLE_SHIFT)) {
+            }
+            if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_MIDDLE_SHIFT)) {
                 // 中班
                 shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_MIDDLE_SHIFT, k -> new ArrayList<>()).add(tempDao);
-            } else if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_NIGHT_SHIFT)) {
+            }
+            if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_NIGHT_SHIFT)) {
                 // 夜班
                 shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_NIGHT_SHIFT, k -> new ArrayList<>()).add(tempDao);
-            } else if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_CHANGBAI_CLASS_SHIFT)) {
+            }
+            if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_CHANGBAI_CLASS_SHIFT)) {
                 // 长白班
                 shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_CHANGBAI_CLASS_SHIFT, k -> new ArrayList<>()).add(tempDao);
-            } else if (tempDao.getShift().contains(CHECK_SHIFT_EVERY_SHIFT)) {
-                // 每班
-                shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_DAY_SHIFT, k -> new ArrayList<>()).add(tempDao);
-                shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_MIDDLE_SHIFT, k -> new ArrayList<>()).add(tempDao);
-                shiftTypeAndTempMap.computeIfAbsent(CHECK_SHIFT_EVERY_NIGHT_SHIFT, k -> new ArrayList<>()).add(tempDao);
             }
+
         });
-        // 获取检查模板ID
-        List<String> tempId = checkTemplateDos.stream().map(CheckTemplateDo::getId).collect(Collectors.toList());
-        // 获取模板对应的检查项
-        List<CheckTemplateItemsDo> templateItemsDos = checkTemplateItemsService.list(new LambdaQueryWrapper<CheckTemplateItemsDo>()
-                .in(CheckTemplateItemsDo::getChecktemplateid, tempId)
-                .eq(BaseDo::getDeleted, "0"));
+
+
         SysUserVo currentUser = JSCommonUtils.getCurrentUser();
         // 获取当前时间的0点0分0秒
         Calendar startCalendar = Calendar.getInstance();
@@ -573,11 +583,14 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
         Date endTime = endCalendar.getTime();
         // 模板对应的检查项
         List<CheckTemplateItemsDo> items;
-        for (Map.Entry<String, List<CheckTemplateDo>> entry : shiftTypeAndTempMap.entrySet()) {
+
+        for (Map.Entry<String, List<CheckTemplateItemsDo>> entry : shiftTypeAndTempMap.entrySet()) {
             String k = entry.getKey();
             AspShiftTimeDo aspShiftTimeDo = aspShiftTimeDos.stream().filter(info -> k.equals(info.getShift())).findFirst().orElse(null);
-            basedOnShiftGenerateTime(aspShiftTimeDo, startTime, endTime);
-            for (CheckTemplateDo checkTemplateDo : entry.getValue()) {
+
+            //当前班次最大的任务数量
+            int maxFrequency = entry.getValue().stream().mapToInt(CheckTemplateItemsDo::getShiftcount).max().orElse(1);
+            for (int i = 1; i <= maxFrequency; i++) {
                 checkItemDo = new ThemeCheckItemDo();
                 checkItemDo.setId(SecurityUtil.getUUID());
                 JSCommonUtils.setBaseDetail(checkItemDo, currentUser);
@@ -585,31 +598,32 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
                         "SC@{date:yyyyMM}@{serialNumber:#000000}", "date:yyyyMM", ""));
                 checkItemDo.setThemecheckid(checkTemplateDo.getId());
                 checkItemDo.setThemecheckname(checkTemplateDo.getTemplatename());
-                checkItemDo.setPlanstarttime(startTime);
-                checkItemDo.setPlanendtime(endTime);
+                checkItemDo.setPlanstarttime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getStarttime));
+                checkItemDo.setPlanendtime(basedOnShiftGenerateTime(aspShiftTimeDo, AspShiftTimeDo::getEndtime));
                 checkItemDo.setChecktype(checkTemplateDo.getTemplatetype());
                 checkItemDo.setTenantid(checkTemplateDo.getTenantid());
                 // TODO:XH add 2024/8/16 暂不止如何处理
 //                checkItemDo.setChecker();
 //                checkItemDo.setCheckerid();
                 // TODO:XH add 2024/8/16 检查区域暂不处理
-//                checkItemDo.setThemecheckworkspartid();
+//                checkItemDo.setThemecheckworkspartid();a
 //                checkItemDo.setCheckworkspart();
                 checkItemDo.setCheckresult("20");
                 checkItemDo.setCheckstatus(THEME_CHECK_STATUS_WAIT);
                 themeCheckItemSaveDos.add(checkItemDo);
-                items = templateItemsDos.stream().filter(data -> checkTemplateDo.getId().equals(data.getChecktemplateid())).collect(Collectors.toList());
-                for (int i = 0; i < items.size(); i++) {
+                int finalI = i;
+                items = entry.getValue().stream().filter(info -> info.getShiftcount()>= finalI ).collect(Collectors.toList());
+                for (int j = 0; j < items.size(); j++) {
                     themeCheckContentDo = new ThemeCheckContentDo();
-                    themeCheckContentDo.setItemsort(i+1);
+                    themeCheckContentDo.setItemsort(j+1);
                     themeCheckContentDo.setTenantid(checkTemplateDo.getTenantid());
                     themeCheckContentDo.setId(SecurityUtil.getUUID());
                     themeCheckContentDo.setThemecheckitemid(checkItemDo.getId());
                     JSCommonUtils.setBaseDetail(themeCheckContentDo, currentUser);
-                    themeCheckContentDo.setCheckposition(items.get(i).getCheckposition());
-                    themeCheckContentDo.setCheckmethod(items.get(i).getChecktype());
-                    themeCheckContentDo.setCheckcontent(items.get(i).getCheckcontent());
-                    themeCheckContentDo.setManagement(items.get(i).getManagement());
+                    themeCheckContentDo.setCheckposition(items.get(j).getCheckposition());
+                    themeCheckContentDo.setCheckmethod(items.get(j).getChecktype());
+                    themeCheckContentDo.setCheckcontent(items.get(j).getCheckcontent());
+                    themeCheckContentDo.setManagement(items.get(j).getManagement());
                     themeCheckContentDos.add(themeCheckContentDo);
                 }
             }
@@ -619,24 +633,21 @@ public class CheckTemplateServiceImpl extends ServiceImpl<CheckTemplateDao, Chec
         JSCommonUtils.batchChunk(themeCheckContentDos, themeCheckContentService::saveBatch, 20);
     }
 
-    public void basedOnShiftGenerateTime(AspShiftTimeDo aspShiftTimeDo,
-                                         Date startTime, Date endTime) {
+    public Date basedOnShiftGenerateTime(AspShiftTimeDo aspShiftTimeDo,
+                                         Function<AspShiftTimeDo, String> getTimeFunction) {
         if (aspShiftTimeDo == null) {
-            return;
+          return new Date();
         }
-        String starttime = aspShiftTimeDo.getStarttime();
-        String endtime = aspShiftTimeDo.getEndtime();
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(new Date());
-        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(starttime.split(":")[0]));
-        calendar.set(Calendar.MINUTE, Integer.parseInt(starttime.split(":")[1]));
-        calendar.set(Calendar.SECOND, Integer.parseInt(starttime.split(":")[2]));
-        startTime = calendar.getTime();
-        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(endtime.split(":")[0]));
-        calendar.set(Calendar.MINUTE, Integer.parseInt(endtime.split(":")[1]));
-        calendar.set(Calendar.SECOND, Integer.parseInt(endtime.split(":")[2]));
-        endTime = calendar.getTime();
-
+        String timeStr = getTimeFunction.apply(aspShiftTimeDo);
+        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]));
+        calendar.set(Calendar.MINUTE, Integer.parseInt(timeStr.split(":")[1]));
+        calendar.set(Calendar.SECOND, Integer.parseInt(timeStr.split(":")[2]));
+        return calendar.getTime();
     }
 
 

+ 81 - 0
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/SpecialInspectionServiceImpl.java

@@ -0,0 +1,81 @@
+package com.rongwei.sfcommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.rongwe.scentity.domian.ApsSpecialInspectionTaskDo;
+import com.rongwe.scentity.domian.AspCheckDiscoveryItemDo;
+import com.rongwe.scentity.domian.HiddenDangerTrackDo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.base.BaseDo;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.safecommon.utils.JSCommonUtils;
+import com.rongwei.sfcommon.sys.service.SpecialInspectionService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * SpecialInspectionServiceImpl class
+ *
+ * @author XH
+ * @date 2024/08/20
+ */
+@Service
+public class SpecialInspectionServiceImpl implements SpecialInspectionService {
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+
+    @Autowired
+    private ApsSpecialInspectionTaskZibiaoServiceImpl apsSpecialInspectionTaskZibiaoService;
+    @Autowired
+    private ApsSpecialInspectionTaskServiceImpl apsSpecialInspectionTaskService;
+    @Autowired
+    private AspCheckDiscoveryItemServiceImpl aspCheckDiscoveryItemService;
+    @Autowired
+    private HiddenDangerTrackServiceImpl hiddenDangerTrackService;
+
+    /**
+     * 专项检查生成隐患任务
+     *
+     * @param id
+     * @return
+     */
+    @Override
+    public R createHiddenDangerTrack(String id) {
+        log.info("开始根据专项检查任务:{}生成隐患任务", id);
+        ApsSpecialInspectionTaskDo specialInspectionTaskDo = apsSpecialInspectionTaskService.getById(id);
+        JSCommonUtils.parameterCheck(() -> specialInspectionTaskDo == null, "无法找到对应的专项检查任务",
+                "根据id:{}无法找到对应的专项检查任务", id);
+        // 获取改专项检查任务对应的隐患任务
+        List<AspCheckDiscoveryItemDo> checkDiscoveryItemDos = aspCheckDiscoveryItemService.list(new LambdaQueryWrapper<AspCheckDiscoveryItemDo>().eq(BaseDo::getDeleted, "0")
+                .eq(AspCheckDiscoveryItemDo::getThemecheckitemid, id));
+        JSCommonUtils.parameterCheck(checkDiscoveryItemDos::isEmpty, "暂无隐患任务需要生成",
+                "");
+
+        List<HiddenDangerTrackDo> saveList = new ArrayList<>();
+        HiddenDangerTrackDo hiddenDangerTrackDo;
+        SysUserVo currentUser = JSCommonUtils.getCurrentUser();
+        for (AspCheckDiscoveryItemDo checkDiscoveryItemDo : checkDiscoveryItemDos) {
+            hiddenDangerTrackDo = new HiddenDangerTrackDo();
+            hiddenDangerTrackDo.setId(SecurityUtil.getUUID());
+            JSCommonUtils.setBaseDetail(hiddenDangerTrackDo, currentUser);
+            hiddenDangerTrackDo.setRiskanalysisobjectcode(checkDiscoveryItemDo.getRiskunitcode());
+            hiddenDangerTrackDo.setHazardlevel(checkDiscoveryItemDo.getGrade());
+            hiddenDangerTrackDo.setDangersource("10");
+            hiddenDangerTrackDo.setGovernancetype(checkDiscoveryItemDo.getGovernancetype());
+            hiddenDangerTrackDo.setHiddendangertype(checkDiscoveryItemDo.getType());
+            hiddenDangerTrackDo.setHazardstate("0");
+            hiddenDangerTrackDo.setHazardname(checkDiscoveryItemDo.getName());
+            hiddenDangerTrackDo.setHazarddescription(checkDiscoveryItemDo.getHazarddescription());
+            hiddenDangerTrackDo.setHazardphoto(checkDiscoveryItemDo.getFileinfo());
+            hiddenDangerTrackDo.setResponsiblepersonforrectification(checkDiscoveryItemDo.getTrackuser());
+            hiddenDangerTrackDo.setTrackuserid(checkDiscoveryItemDo.getTrackuserid());
+            saveList.add(hiddenDangerTrackDo);
+        }
+        JSCommonUtils.batchChunk(saveList, hiddenDangerTrackService::saveBatch, 100);
+        return R.ok();
+    }
+}

+ 45 - 64
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/ThemeCheckServiceImpl.java

@@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.rongwei.sfcommon.utils.MlConstants.THEME_CHECK_STATUS_WAIT;
 
@@ -163,94 +164,74 @@ public class ThemeCheckServiceImpl extends ServiceImpl<ThemeCheckDao, ThemeCheck
      */
     @Transactional(rollbackFor = Exception.class)
     public void sendMailByCheckId(String themeCheckId) {
-        if (StringUtils.isBlank(themeCheckId)) {
-            logger.error("检查计划ID 为空");
-            return;
-        }
+        JSCommonUtils.parameterCheck(() -> StringUtils.isBlank(themeCheckId), "检查计划ID 为空", "");
+
         ThemeCheckDo themeCheckDo = this.getById(themeCheckId);
-        if (themeCheckDo == null) {
-            logger.debug("无法通过ID 获取到检查计划");
-            return;
-        }
-        if (themeCheckDo.getCreatetask() != null && themeCheckDo.getCreatetask() == 1) {
-            logger.debug("此检查计划已生成检查任务");
-            return;
-        }
-        Map<String, Object> queryMap = new HashMap<>();
-        queryMap.put("THEMECHECKID", themeCheckId);
-        // 获取检查小组人员
-        List<ThemeCheckWorkparkDo> themeCheckWorkparks = (List<ThemeCheckWorkparkDo>) themeCheckWorkparkService.listByMap(queryMap);
-        if (themeCheckWorkparks.isEmpty()) {
-            log.error("该检查计划没有检查小组");
-            return;
-        }
-        // 获取所有检查小组的人员信息
-        List<String> userIds = new ArrayList<>();
-        Set<String> uniqueValuesOuter = new HashSet<>();
-        for (ThemeCheckWorkparkDo themeCheckWorkparkDo : themeCheckWorkparks) {
-            String groupLeader = "";
-            if (StringUtils.isNotBlank(themeCheckWorkparkDo.getGroupleader())) {
-                groupLeader = themeCheckWorkparkDo.getGroupleader();
-            }
-            if (StringUtils.isNotBlank(themeCheckWorkparkDo.getGroupusers())) {
-                groupLeader = String.format(INSPECTION_TEAM, groupLeader, themeCheckWorkparkDo.getGroupusers());
+        JSCommonUtils.parameterCheck(() -> themeCheckDo == null, "无法通过ID 获取到检查计划", "无法通过ID 获取到检查计划", themeCheckId);
+        JSCommonUtils.parameterCheck(() -> themeCheckDo.getCreatetask() != null && themeCheckDo.getCreatetask() == 1,
+                "此检查计划已生成检查任务", "此检查计划已生成检查任务");
+        // 获取本次检查计划的
+        List<ThemeCheckWorkparkDo> themeCheckWorkparks = themeCheckWorkparkService
+                .list(new LambdaQueryWrapper<ThemeCheckWorkparkDo>().eq(ThemeCheckWorkparkDo::getThemecheckid, themeCheckId));
+        JSCommonUtils.parameterCheck(themeCheckWorkparks::isEmpty,
+                "本次计划暂无检查小组任务", "本次计划暂无检查小组任务");
+        // 获取检查任务中的所有人员ID
+        List<String> userIds = themeCheckWorkparks.stream().map(data -> {
+            String users = data.getGroupleader();
+            if (StringUtils.isNotBlank(data.getGroupusers())) {
+                users = String.format(INSPECTION_TEAM, users, data.getGroupusers());
             }
-            String[] apply = groupLeader.split(",");
-            for (String s : apply) {
-                if (StringUtils.isNotBlank(s)) {
-                    if (uniqueValuesOuter.add(s)) {
-                        userIds.add(s);
-                    }
-                }
-            }
-        }
+            return users.split(",");
+        }).flatMap(Arrays::stream).distinct().collect(Collectors.toList());
+        // 获取人员信息
         List<SysUserDo> userList = sysUserService.list(new LambdaQueryWrapper<SysUserDo>().in(SysUserDo::getId, userIds));
         // 当前检查小组的人员信息
         HashSet<String> currentCheckUserIds = new HashSet<>();
+        // 需要保存检查任务的相关数据
         List<ThemeCheckItemDo> saveCheckItemList = new ArrayList<ThemeCheckItemDo>();
         List<ThemeCheckContentDo> saveCheckContentList = new ArrayList<ThemeCheckContentDo>();
+
         // 获取检查小组中的所有检查主题
-        List<String> checkTemplateIds = new ArrayList<>();
-        Set<String> uniqueValues = new HashSet<>();
-        for (ThemeCheckWorkparkDo themeCheckWorkpark : themeCheckWorkparks) {
-            String checktemplateid = themeCheckWorkpark.getChecktemplateid();
-            if (uniqueValues.add(checktemplateid)) {
-                if (StringUtils.isNotBlank(checktemplateid)) {
-                    checkTemplateIds.add(checktemplateid);
-                }
-            }
-        }
+        List<String> checkTemplateIds = themeCheckWorkparks.stream()
+                .map(ThemeCheckWorkparkDo::getChecktemplateid)
+                .filter(StringUtils::isNotBlank)
+                .collect(Collectors.toList());
         // 检查主题明细
         List<CheckTemplateItemsDo> checkTemplateItemsDos = checkTemplateItemsService.list(new LambdaQueryWrapper<CheckTemplateItemsDo>()
                 .eq(BaseDo::getDeleted, "0")
                 .in(CheckTemplateItemsDo::getChecktemplateid, checkTemplateIds)
         );
-        String mailSubject = MlConstants.THEMECHECK_TYPE_SPECIALCHECK.equals(themeCheckDo.getChecktype()) ? "周五专项检查" : "全厂检查";
+//        String mailSubject = MlConstants.THEMECHECK_TYPE_SPECIALCHECK.equals(themeCheckDo.getChecktype()) ? "周五专项检查" : "全厂检查";
         // 发送提醒的map
         Map<String, String> sendNotifyMap = new HashMap<>();
         // 生成检查任务
+        SysUserDo userDo;
+        List<CheckTemplateItemsDo> chekTempItems;
         for (ThemeCheckWorkparkDo info : themeCheckWorkparks) {
-            String groupleader = info.getGroupleader();
-            String groupusers = info.getGroupusers();
+            String groupLeader = info.getGroupleader();
+            String groupUsers = info.getGroupusers();
             currentCheckUserIds.clear();
-            if (StringUtils.isNotBlank(groupleader)) {
-                currentCheckUserIds.add(groupleader);
+            if (StringUtils.isNotBlank(groupLeader)) {
+                currentCheckUserIds.add(groupLeader);
             }
-            if (StringUtils.isNotBlank(groupusers)) {
-                currentCheckUserIds.addAll(new HashSet<>(Arrays.asList(groupusers.split(","))));
+            if (StringUtils.isNotBlank(groupUsers)) {
+                currentCheckUserIds.addAll(new HashSet<>(Arrays.asList(groupUsers.split(","))));
             }
             for (String userId : currentCheckUserIds) {
-                SysUserDo userDo = null;
-                for (SysUserDo userInfo : userList) {
-                    if (userId.equals(userInfo.getId())) {
-                        userDo = userInfo;
-                        break;
-                    }
+                userDo = userList.stream().filter(user -> userId.equals(user.getId())).findFirst().orElse(null);
+                if (userDo == null) {
+                    logger.error("无法根据用户id:{}获取到用户信息", userId);
+                    break;
                 }
+                // 生成检查任务主表信息
                 ThemeCheckItemDo themeCheckItemDo = generateThemeCheckItem(userDo, info, themeCheckDo);
                 saveCheckItemList.add(themeCheckItemDo);
+                chekTempItems = checkTemplateItemsDos.stream()
+                        .filter(data -> info.getChecktemplateid().equals(data.getChecktemplateid()))
+                        .collect(Collectors.toList());
                 int index = 1;
-                for (CheckTemplateItemsDo checkTemplate : checkTemplateItemsDos) {
+                // 生成检查任务子表
+                for (CheckTemplateItemsDo checkTemplate : chekTempItems) {
                     saveCheckContentList.add(generateThemeCheckContent(userDo, themeCheckItemDo, checkTemplate, index));
                     index++;
                 }
@@ -286,7 +267,7 @@ public class ThemeCheckServiceImpl extends ServiceImpl<ThemeCheckDao, ThemeCheck
         themeCheckContentDo.setCheckmethod(checkTemplateItemsDo.getChecktype());
         themeCheckContentDo.setCheckposition(checkTemplateItemsDo.getCheckposition());
         themeCheckContentDo.setCheckcontent(checkTemplateItemsDo.getCheckcontent());
-        themeCheckContentDo.setManagement(checkTemplateItemsDo.getManagement());
+        themeCheckContentDo.setManagement(checkTemplateItemsDo.getCheckstandard());
         return themeCheckContentDo;
     }
 

+ 107 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/ApsSpecialInspectionTaskDo.java

@@ -0,0 +1,107 @@
+package com.rongwe.scentity.domian;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 专项检查任务
+ * @TableName aps_special_inspection_task
+ */
+@TableName(value ="aps_special_inspection_task")
+@Data
+public class ApsSpecialInspectionTaskDo extends BaseDo implements Serializable {
+    /**
+     * 主键ID
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 租户ID
+     */
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    private String roption;
+
+    /**
+     * 企业名称
+     */
+    private String companyname;
+
+    /**
+     * 企业编码
+     */
+    private String companycode;
+
+    /**
+     * 任务类型
+     */
+    private String tasktypename;
+
+    /**
+     * 任务开始时间 
+     */
+    private Date taskstarttime;
+
+    /**
+     * 任务结束时间
+     */
+    private Date taskendtime;
+
+    /**
+     * 任务状态
+     */
+    private String taskstate;
+
+    /**
+     * 任务描述
+     */
+    private String taskcontent;
+
+    /**
+     * 检查人
+     */
+    private String inspector;
+
+    /**
+     * 计划检查时间
+     */
+    private Date plannedinspectiontime;
+
+    /**
+     * 检查时间
+     */
+    private Date checkdate;
+
+    /**
+     * 危险源编码
+     */
+    private String hazardcode;
+
+    /**
+     * 检查类型
+     */
+    private String checktype;
+
+    /**
+     * 是否停厂整顿
+     */
+    private String resultstatus;
+
+    /**
+     * 任务名称
+     */
+    private String taskname;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 81 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/ApsSpecialInspectionTaskZibiaoDo.java

@@ -0,0 +1,81 @@
+package com.rongwe.scentity.domian;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 专项检查任务
+ * @TableName aps_special_inspection_task_zibiao
+ */
+@TableName(value ="aps_special_inspection_task_zibiao")
+@Data
+public class ApsSpecialInspectionTaskZibiaoDo extends BaseDo implements Serializable {
+    /**
+     * 主键ID
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 租户ID
+     */
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    private String roption;
+
+    /**
+     * 主表 id
+     */
+    private String madinid;
+
+    /**
+     * 检查序号
+     */
+    private String checkname;
+
+    /**
+     * 检查内容
+     */
+    private String checkcontent;
+
+    /**
+     * 检查方式
+     */
+    private String checkway;
+
+    /**
+     * 检查依据
+     */
+    private String checkbasis;
+
+    /**
+     * 适用场合
+     */
+    private String applicableplace;
+
+    /**
+     * 是否为否决项
+     */
+    private String isreject;
+
+    /**
+     * 扣分分值
+     */
+    private Integer deductpoint;
+
+    /**
+     * 扣分说明
+     */
+    private String deductillustrate;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 0 - 39
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/AspCheckDiscoveryItemDo.java

@@ -111,45 +111,6 @@ public class AspCheckDiscoveryItemDo extends BaseDo implements Serializable {
      */
     private String roption;
 
-    /**
-     * 是否删除(Y/N)
-     */
-    private String deleted;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-    /**
-     * 创建时间
-     */
-    private Date createdate;
-
-    /**
-     * 创建用户ID
-     */
-    private String createuserid;
-
-    /**
-     * 修改日期
-     */
-    private Date modifydate;
-
-    /**
-     * 修改用户ID
-     */
-    private String modifyuserid;
-
-    /**
-     * 创建人名称
-     */
-    private String createusername;
-
-    /**
-     * 修改人名称
-     */
-    private String modifyusername;
 
     /**
      * 是否已生成任务

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

@@ -96,4 +96,5 @@ public class CheckTemplateDo extends BaseDo implements Serializable {
      * 班次
      */
     private String shift;
+
 }

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

@@ -47,7 +47,7 @@ public class CheckTemplateItemsDo extends BaseDo implements Serializable {
      */
     private String checktype;
     /**
-     * 检查标准
+     * 检查依据
      */
     private String checkstandard;
     /**

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

@@ -340,242 +340,4 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
      * 隐患治理期限
      */
     private Date deadlineforhazardcontrol;
-
-
-//    /**
-//     * 总编号
-//     */
-//    private String code;
-//
-//    /**
-//     * 发现时间
-//     */
-//    private Date findtime;
-//
-//    /**
-//     * 发现人
-//     */
-//    private String findusername;
-//
-//    /**
-//     * 发现人ID
-//     */
-//    private String finduser;
-//
-//    /**
-//     * 隐患来源
-//     */
-//    private String dangersource;
-//
-//    /**
-//     * 隐患工段
-//     */
-//    private String dangerworkpark;
-//
-//    /**
-//     * 隐患工段名称
-//     */
-//    private String dangerworkparkname;
-//
-//    /**
-//     * 指派跟踪人
-//     */
-//    private String trackusername;
-//
-//    /**
-//     * 指派跟踪人ID
-//     */
-//    private String trackuserid;
-//
-//    /**
-//     * 最初指派跟踪人ID
-//     */
-//    private String firsttrackuserid;
-//
-//    /**
-//     * 最初指派跟踪人名称
-//     */
-//    private String firsttrackusername;
-//
-//    /**
-//     * 隐患类型
-//     */
-//    private String hiddendangertype;
-//
-//    /**
-//     * 隐患分类
-//     */
-//    private String hiddendangerclassify;
-//
-//    /**
-//     * 隐患内容
-//     */
-//    private String hiddendangercontent;
-//
-//    /**
-//     * 限整改日期
-//     */
-//    private Date rectificationdate;
-//
-//    /**
-//     * 完成日期
-//     */
-//    private Date finishdate;
-//
-//    /**
-//     * 措施完成进度
-//     */
-//    private String completionschedule;
-//
-//    /**
-//     * 预警状态
-//     */
-//    private String warnstatus;
-//
-//    /**
-//     * 状态
-//     */
-//    private String status;
-//
-//    /**
-//     * 检查照片
-//     */
-//    private String checkphoto;
-//
-//    /**
-//     * 处理说明
-//     */
-//    private String processexplain;
-//
-//    /**
-//     * 关联主键ID
-//     */
-//    private String relationid;
-//
-//    /**
-//     * 租户ID
-//     */
-//    private String tenantid;
-//
-//    /**
-//     * 扩展json格式配置
-//     */
-//    private String roption;
-//
-//    /**
-//     * 是否删除(Y/N)
-//     */
-//    private String deleted;
-//
-//    /**
-//     * 备注
-//     */
-//    private String remark;
-//
-//    /**
-//     * 创建时间
-//     */
-//    private Date createdate;
-//
-//    /**
-//     * 创建用户ID
-//     */
-//    private String createuserid;
-//
-//    /**
-//     * 修改日期
-//     */
-//    private Date modifydate;
-//
-//    /**
-//     * 修改用户ID
-//     */
-//    private String modifyuserid;
-//
-//    /**
-//     * 创建人名称
-//     */
-//    private String createusername;
-//
-//    /**
-//     * 修改人名称
-//     */
-//    private String modifyusername;
-//
-//    /**
-//     * 完成照片
-//     */
-//    private String finishedphoto;
-//
-//    /**
-//     * 安全促进员
-//     */
-//    private String safetypromoter;
-//
-//    /**
-//     * 安全促进员ID
-//     */
-//    private String safetypromoterid;
-//
-//    /**
-//     * 发现项ID
-//     */
-//    private String discoveryitemid;
-//
-//    /**
-//     * 主题检查ID
-//     */
-//    private String themecheckid;
-//
-//    /**
-//     * 主题检查名称
-//     */
-//    private String themecheckname;
-//
-//    /**
-//     * 实际检查日期
-//     */
-//    private Date actualchecktime;
-//
-//    /**
-//     * 车间
-//     */
-//    private String workshop;
-//
-//    /**
-//     * 车间ID
-//     */
-//    private String workshopid;
-//
-//    /**
-//     * 整改资金
-//     */
-//    private BigDecimal rectificationfund;
-//
-//    /**
-//     * 整改措施
-//     */
-//    private String measure;
-//
-//    /**
-//     * 车间促进员
-//     */
-//    private String shopfacilitator;
-//
-//    /**
-//     * 车间促进员ID
-//     */
-//    private String shopfacilitatorid;
-//
-//    /**
-//     * 数据来源(0-安全生产 1-设备管理)
-//     */
-//    private String source;
-//
-//    /**
-//     * 退回次数
-//     */
-//    private Integer returnsnum;
-
-
 }

+ 0 - 9
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/ThemeCheckWorkparkDo.java

@@ -72,15 +72,6 @@ public class ThemeCheckWorkparkDo extends BaseDo implements Serializable {
      * 扩展json格式配置
      */
     private String roption;
-    /**
-     * 创建人名称
-     */
-    private String createusername;
-    /**
-     * 修改人名称
-     */
-    private String modifyusername;
-
     /**
      * 检查模板ID
      */

+ 9 - 5
js-security/security-server/src/main/java/com/rongwei/savecheck/controller/CheckTemplateController.java

@@ -165,13 +165,17 @@ public class CheckTemplateController {
     }
 
     /**
-     * 根据模板生成任务
+     * 根据模板生成检查任务
+     *
+     * @param id   安全检查模板id
+     * @param mode 是否忽略检查项的频次 0:不忽略 1:忽略
      * @return
      */
-    @PostMapping("/create/check/task/{id}")
-    public R createCheckPlan(@PathVariable(name = "id") String id){
-        log.info("开始根据模板:{}创建检查任务",id);
-        return checkTemplateService.createCheckPlanByTempId(id);
+    @PostMapping("/create/check/task/{id}/{mode}")
+    public R createCheckPlan(@PathVariable(name = "id") String id,
+                             @PathVariable(name = "mode") Boolean mode) {
+        log.info("开始根据模板:{}创建检查任务", id);
+        return checkTemplateService.createCheckPlanByTempId(id, mode);
     }
 
 

+ 36 - 0
js-security/security-server/src/main/java/com/rongwei/savecheck/controller/SpecialInspectionController.java

@@ -0,0 +1,36 @@
+package com.rongwei.savecheck.controller;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.sfcommon.sys.service.impl.SpecialInspectionServiceImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * SpecialInspectionController class
+ *
+ * @author XH
+ * @date 2024/08/20
+ */
+@RestController
+@RequestMapping("/special/inspection")
+public class SpecialInspectionController {
+    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
+    @Autowired
+    private SpecialInspectionServiceImpl specialInspectionService;
+    /**
+     * 生成隐患排查任务
+     *
+     * @param map
+     * @return
+     */
+    @GetMapping("/create/task/{id}")
+    public R createTask(@PathVariable(name = "id") String id) {
+        log.info("根据模板: {}生成隐患排查任务", id);
+        return specialInspectionService.createHiddenDangerTrack(id);
+    }
+}

+ 8 - 13
js-security/security-server/src/main/java/com/rongwei/savecheck/controller/ThemeCheckController.java

@@ -1,19 +1,19 @@
 package com.rongwei.savecheck.controller;
 
-import java.util.List;
-import java.util.Map;
-
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.rongwe.scentity.domian.ThemeCheckDo;
+import com.rongwei.rwcommon.base.QueryPar;
+import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.utils.StringUtils;
 import com.rongwei.sfcommon.sys.service.ThemeCheckItemService;
 import com.rongwei.sfcommon.sys.service.ThemeCheckService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import com.rongwei.rwcommon.base.QueryPar;
-import com.rongwei.rwcommon.base.R;
-import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * 专项检查和每天检查表
@@ -99,13 +99,8 @@ public class ThemeCheckController {
      */
     @PostMapping("/themeCheckSplit")
     public R themeCheckSplit(@RequestBody ThemeCheckDo themeCheckDo) {
-        try {
-            themeCheckService.sendMailByCheckId(themeCheckDo.getId());
-            return R.ok();
-        } catch (Exception e) {
-            log.error(StringUtils.spliceErrorMsg(e), e.fillInStackTrace());
-            return R.saveError();
-        }
+        themeCheckService.sendMailByCheckId(themeCheckDo.getId());
+        return R.ok();
     }
 
     /**

+ 8 - 16
js-security/security-server/src/main/resources/logback-spring.xml

@@ -11,26 +11,18 @@
     <!--按天生成日志-->
     <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <Prudent>true</Prudent>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <FileNamePattern>
-                icsavechecklog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
-            </FileNamePattern>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>icsavechecklog/%d{yyyy-MM-dd}/savecheck.%i.log</fileNamePattern>
+            <maxFileSize>5mb</maxFileSize>
+            <maxHistory>3</maxHistory>
+            <totalSizeCap>300MB</totalSizeCap>
         </rollingPolicy>
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>
-                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level -%msg%n
-            </Pattern>
-        </layout>
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
     </appender>
-
-    <logger name="com.bootdo" additivity="false">
-        <appender-ref ref="console"/>
-        <appender-ref ref="logFile"/>
-    </logger>
-
     <root level="error">
         <appender-ref ref="console"/>
         <appender-ref ref="logFile"/>
     </root>
-
 </configuration>

+ 5 - 11
js-training/training-server/src/main/resources/logback-spring.xml

@@ -11,10 +11,11 @@
     <!--按天生成日志-->
     <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <Prudent>true</Prudent>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <FileNamePattern>
-                ictraininglog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
-            </FileNamePattern>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>icsavechecklog/%d{yyyy-MM-dd}/training.%i.log</fileNamePattern>
+            <maxFileSize>5mb</maxFileSize>
+            <maxHistory>3</maxHistory>
+            <totalSizeCap>300MB</totalSizeCap>
         </rollingPolicy>
         <layout class="ch.qos.logback.classic.PatternLayout">
             <Pattern>
@@ -22,15 +23,8 @@
             </Pattern>
         </layout>
     </appender>
-
-    <logger name="com.incontrol" additivity="false">
-        <appender-ref ref="console"/>
-        <appender-ref ref="logFile"/>
-    </logger>
-
     <root level="error">
         <appender-ref ref="console"/>
         <appender-ref ref="logFile"/>
     </root>
-
 </configuration>