Browse Source

feature 隐患排查任务提交

xiahan 2 months ago
parent
commit
d49c9d4fa5

+ 7 - 5
js-common/src/main/java/com/rongwei/safecommon/utils/JSCommonUtils.java

@@ -53,7 +53,7 @@ import static com.rongwei.safecommon.utils.SaveConstans.*;
 @Component
 public class JSCommonUtils {
     public static final String DEFAULT_NOTIFY_STATUS = "3";
-    public static final SysUserVo DEFAULT_USER_VO = new SysUserVo(){{
+    public static final SysUserVo DEFAULT_USER_VO = new SysUserVo() {{
         setId("8672bf72ab274bec83052868ae336b38");
         setName("系统管理员");
     }};
@@ -367,12 +367,14 @@ public class JSCommonUtils {
         if (userVo == null) {
             userVo = getCurrentUser();
         }
+        if (userVo != null) {
+            t.setCreateuserid(userVo.getId());
+            t.setCreateusername(userVo.getName());
+            t.setModifyuserid(userVo.getId());
+            t.setModifyusername(userVo.getName());
+        }
         t.setCreatedate(new Date());
         t.setModifydate(new Date());
-        t.setCreateuserid(userVo.getId());
-        t.setCreateusername(userVo.getName());
-        t.setModifyuserid(userVo.getId());
-        t.setModifyusername(userVo.getName());
         t.setDeleted("0");
     }
 

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

@@ -0,0 +1,19 @@
+package com.rongwei.sfcommon.sys.dao;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwe.scentity.domian.AspRiskUnitPostInfoDo;
+
+/**
+ * @author libai
+ * @description 针对表【asp_risk_unit_post_info(安全风险分析单元-人员岗位职责信息)】的数据库操作Mapper
+ * @createDate 2025-05-23 13:48:56
+ * @Entity generator.domain.AspRiskUnitPostInfo
+ */
+public interface AspRiskUnitPostInfoDao extends BaseMapper<AspRiskUnitPostInfoDo> {
+
+}
+
+
+
+

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

@@ -0,0 +1,13 @@
+package com.rongwei.sfcommon.sys.service;
+
+import com.rongwe.scentity.domian.AspRiskUnitPostInfoDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author libai
+* @description 针对表【asp_risk_unit_post_info(安全风险分析单元-人员岗位职责信息)】的数据库操作Service
+* @createDate 2025-05-23 13:48:56
+*/
+public interface AspRiskUnitPostInfoService extends IService<AspRiskUnitPostInfoDo> {
+
+}

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

@@ -0,0 +1,22 @@
+package com.rongwei.sfcommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwe.scentity.domian.AspRiskUnitPostInfoDo;
+import com.rongwei.sfcommon.sys.dao.AspRiskUnitPostInfoDao;
+import com.rongwei.sfcommon.sys.service.AspRiskUnitPostInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author libai
+ * @description 针对表【asp_risk_unit_post_info(安全风险分析单元-人员岗位职责信息)】的数据库操作Service实现
+ * @createDate 2025-05-23 13:48:56
+ */
+@Service
+public class AspRiskUnitPostInfoServiceImpl extends ServiceImpl<AspRiskUnitPostInfoDao, AspRiskUnitPostInfoDo>
+        implements AspRiskUnitPostInfoService {
+
+}
+
+
+
+

+ 28 - 5
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/HazardInvestigationServiceImpl.java

@@ -3,6 +3,7 @@ package com.rongwei.sfcommon.sys.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.rongwe.scentity.domian.*;
 import com.rongwei.commonservice.serial.service.SysSerialNumberService;
+import com.rongwei.rwadmincommon.system.dao.WidgetInstDao;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.BaseDo;
 import com.rongwei.rwcommon.base.R;
@@ -44,21 +45,25 @@ public class HazardInvestigationServiceImpl implements HazardInvestigationServic
     private ApsDetailsHazardInvestigationTasksJcxzibiaoServiceImpl apsDetailsHazardInvestigationTasksJcxzibiaoService;
     @Autowired
     private AspMajorHazardSourcesServiceImpl aspMajorHazardSourcesService;
+    @Autowired
+    private AspRiskUnitPostInfoServiceImpl aspRiskUnitPostInfoService;
 
-    public static final Map<String, List<Function<AspMajorHazardSourcesDo, String>>>getCheckUserInfoFunctionMap=new HashMap<String, List<Function<AspMajorHazardSourcesDo, String>>>(){{
-        put("1",new ArrayList<Function<AspMajorHazardSourcesDo, String>>(){{
+    public static final Map<String, List<Function<AspMajorHazardSourcesDo, String>>> getCheckUserInfoFunctionMap = new HashMap<String, List<Function<AspMajorHazardSourcesDo, String>>>() {{
+        put("1", new ArrayList<Function<AspMajorHazardSourcesDo, String>>() {{
             add(AspMajorHazardSourcesDo::getMainresponsible);
             add(AspMajorHazardSourcesDo::getMainresponsibleid);
         }});
-        put("2",new ArrayList<Function<AspMajorHazardSourcesDo, String>>(){{
+        put("2", new ArrayList<Function<AspMajorHazardSourcesDo, String>>() {{
             add(AspMajorHazardSourcesDo::getTechnicalresponsible);
             add(AspMajorHazardSourcesDo::getTechnicalresponsibleid);
         }});
-        put("3",new ArrayList<Function<AspMajorHazardSourcesDo, String>>(){{
+        put("3", new ArrayList<Function<AspMajorHazardSourcesDo, String>>() {{
             add(AspMajorHazardSourcesDo::getOperationresponsible);
             add(AspMajorHazardSourcesDo::getOperationresponsibleid);
         }});
     }};
+    @Autowired
+    private WidgetInstDao widgetInstDao;
 
     @Override
     public R createTask(String id) {
@@ -108,6 +113,7 @@ public class HazardInvestigationServiceImpl implements HazardInvestigationServic
             log.error("无法根据id:{}找到对应的风险点", riskPointIds);
             throw new CustomException("无法获取对应的风险点");
         }
+
         // 重大危险源ID
         List<String> collect = aspRiskUnitDos.stream().map(AspRiskUnitDo::getMajorhazardid).collect(Collectors.toList());
         List<AspMajorHazardSourcesDo> aspMajorHazardSourcesDos = aspMajorHazardSourcesService.getBaseMapper().selectBatchIds(collect);
@@ -142,6 +148,7 @@ public class HazardInvestigationServiceImpl implements HazardInvestigationServic
                     JSCommonUtils.streamCodeGeneration("aps_details_hazard_investigation_tasks_NUMBER",
                             "YH@{date:yyyyMMdd}@{serialNumber:#000000}", "date:yyyyMM",
                             ""));
+            // 获取点检人
             String checkUserInfo = getCheckUserInfo(s, aspMajorHazardSourcesDos, tempData);
             apsDetailsHazardInvestigationTasksDo.setIdentifyperple(checkUserInfo.split("-;-")[0]);
             apsDetailsHazardInvestigationTasksDo.setIdentifyperpleid(checkUserInfo.split("-;-")[1]);
@@ -205,11 +212,27 @@ public class HazardInvestigationServiceImpl implements HazardInvestigationServic
                                    ApsHazardInvestigationTemplateDo tempData) {
         // 不是重大危险源直接返回责任人
         if (!"1".equals(aspRiskUnitDo.getMajorhazard()) || "0".equals(tempData.getChecktype())) {
+            // 获取风险点的隐患排查人
+            List<AspRiskUnitPostInfoDo> aspRiskUnitPostInfoDos = aspRiskUnitPostInfoService.list(new LambdaQueryWrapper<AspRiskUnitPostInfoDo>()
+                    .eq(AspRiskUnitPostInfoDo::getId, aspRiskUnitDo.getId())
+                    .like(AspRiskUnitPostInfoDo::getPost, "40")
+            );
+            if (!aspRiskUnitPostInfoDos.isEmpty()) {
+                String name = aspRiskUnitPostInfoDos.stream().map(AspRiskUnitPostInfoDo::getDutyofficername)
+                        .flatMap(data ->Arrays.stream(data.split(",")))
+                        .distinct()
+                        .collect(Collectors.joining(","));
+                String id = aspRiskUnitPostInfoDos.stream().map(AspRiskUnitPostInfoDo::getDutyofficername)
+                        .flatMap(data ->Arrays.stream(data.split(",")))
+                        .distinct()
+                        .collect(Collectors.joining(","));
+                return name + "-;-" + id;
+            }
             return aspRiskUnitDo.getDutyofficername() + "-;-" + aspRiskUnitDo.getDutyofficerid();
         }
         AspMajorHazardSourcesDo hazardSources = aspMajorHazardSourcesDos.stream().filter(data -> data.getId().equals(aspRiskUnitDo.getMajorhazardid())).findFirst()
                 .orElse(null);
-        JSCommonUtils.parameterCheck(()->hazardSources==null,"无法获取到重大危险源","无法获取到重大危险源");
+        JSCommonUtils.parameterCheck(() -> hazardSources == null, "无法获取到重大危险源", "无法获取到重大危险源");
         List<Function<AspMajorHazardSourcesDo, String>> functions = getCheckUserInfoFunctionMap.get(tempData.getChecktype());
         return functions.get(0).apply(hazardSources) + "-;-" + functions.get(1).apply(hazardSources);
     }

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

@@ -3,7 +3,6 @@ package com.rongwei.sfcommon.sys.service.impl;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.rongwe.scentity.domian.*;
 import com.rongwe.scentity.vo.ExportHiddenDangerVo;
 import com.rongwei.rwadmincommon.system.domain.SysDictDo;
@@ -232,17 +231,23 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService {
             subList = templateZibiaoDos.stream()
                     .filter(subData -> tempId.equals(subData.getMubanid()))
                     .collect(Collectors.toList());
+            List<ApsHazardInvestigationTemplateZibiaoDo> updateGenerationDateList = new ArrayList<>();
+            // 判断需要生成任务的模板数据
+            subList = subList.stream().filter(data -> {
+                Date date = preGenerationCheck(data, instance);
+                // 保存上一次生产记录的时间
+                ApsHazardInvestigationTemplateZibiaoDo updateGenerationDateDo = new ApsHazardInvestigationTemplateZibiaoDo();
+                updateGenerationDateDo.setId(data.getId());
+                updateGenerationDateDo.setGenerationdate(date);
+                updateGenerationDateList.add(updateGenerationDateDo);
+                return date != null;
+            }).collect(Collectors.toList());
+            // 当前模板对应的管控措施不满足任务生成条件
             if (subList.isEmpty()) {
                 continue;
             }
-            Date date = preGenerationCheck(mainData, instance);
-            if (date == null) {
-                continue;
-            }
-            apsHazardInvestigationTemplateService.update(new LambdaUpdateWrapper<ApsHazardInvestigationTemplateDo>()
-                    .eq(ApsHazardInvestigationTemplateDo::getId,mainData.getId())
-                    .set(ApsHazardInvestigationTemplateDo::getGenerationdate,date));
-            hazardInvestigationService.assembleTask(mainData,subList);
+            apsHazardInvestigationTemplateZibiaoService.updateBatchById(updateGenerationDateList);
+            hazardInvestigationService.assembleTask(mainData, subList);
         }
         return R.ok();
     }
@@ -250,7 +255,7 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService {
     @Override
     public R qualificationCertificateRemind() {
         List<AspCompanyCertificationsDo> list = aspCompanyCertificationsService.list(new LambdaQueryWrapper<AspCompanyCertificationsDo>()
-                .eq(AspCompanyCertificationsDo::getDeleted,"0")
+                .eq(AspCompanyCertificationsDo::getDeleted, "0")
                 .apply(" (DATEDIFF(NEXTREVIEWDATE,NOW()) <0  or DATEDIFF(NEXTREVIEWDATE,NOW()) in (30,15,7))"));
         aspCompanyCertificationsService.sendRemind(list);
         return R.ok();
@@ -258,20 +263,21 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService {
 
     /**
      * 更新隐患任务预警状态
+     *
      * @return
      */
     @Override
     public R updateHiddenDangerWarningStatus() {
         List<HiddenDangerTrackDo> hiddenDangerTracks = hiddenDangerTrackService.list(
-                new LambdaQueryWrapper<HiddenDangerTrackDo>().eq(HiddenDangerTrackDo::getDeleted,"0")
-                        .ne(HiddenDangerTrackDo::getHazardstate,"9"));
+                new LambdaQueryWrapper<HiddenDangerTrackDo>().eq(HiddenDangerTrackDo::getDeleted, "0")
+                        .ne(HiddenDangerTrackDo::getHazardstate, "9"));
         JSCommonUtils.parameterCheck(hiddenDangerTracks::isEmpty, "暂无需要更新状态的隐患任务", "暂无需要更新状态的隐患任务");
-        List<HiddenDangerTrackDo> updateList= new ArrayList<>();
+        List<HiddenDangerTrackDo> updateList = new ArrayList<>();
         HiddenDangerTrackDo updateDo;
         for (HiddenDangerTrackDo hiddenDangerTrack : hiddenDangerTracks) {
             //限整改日期
             Date deadlineforhazardcontrol = hiddenDangerTrack.getDeadlineforhazardcontrol();
-            if (deadlineforhazardcontrol == null ) {
+            if (deadlineforhazardcontrol == null) {
                 continue;
             }
             updateDo = new HiddenDangerTrackDo();
@@ -280,9 +286,9 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService {
             Date end = DateUtil.parseDate(DateUtil.format(deadlineforhazardcontrol, "yyyy-MM-dd"));
             Long bday = DateUtil.between(bg, end, DateUnit.DAY, false);
             // 更新预警状态
-            if (bday>3){
+            if (bday > 3) {
                 updateDo.setWarnstatus("正常");
-            }else if(bday > 1) {
+            } else if (bday > 1) {
                 updateDo.setWarnstatus("3天");
             } else if (bday >= 0) {
                 updateDo.setWarnstatus("1天");
@@ -292,13 +298,13 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService {
             updateDo.setModifydate(new Date());
             updateList.add(updateDo);
         }
-        if(!updateList.isEmpty()){
+        if (!updateList.isEmpty()) {
             hiddenDangerTrackService.updateBatchById(updateList);
         }
         return R.ok();
     }
 
-    public Date preGenerationCheck(ApsHazardInvestigationTemplateDo hazardInvestigationTemplateDo,
+    public Date preGenerationCheck(ApsHazardInvestigationTemplateZibiaoDo hazardInvestigationTemplateDo,
                                    Calendar calendar) {
         int currentMonth = calendar.get(Calendar.MONTH) + 1; // 月份是从0开始的,所以加1
         int currentDay = calendar.get(Calendar.DAY_OF_MONTH); // 当前日
@@ -319,14 +325,14 @@ public class ScheduledTasksServiceImpl implements ScheduledTasksService {
             LocalTime startTime = LocalTime.parse(hazardInvestigationTemplateDo.getStartingtimeofwork());
             LocalTime endTime = LocalTime.parse(hazardInvestigationTemplateDo.getEndtimeofwork());
             LocalTime currentTime = LocalTime.now();
-            if(!currentTime.isBefore(startTime) && !currentTime.isAfter(endTime)){
+            if (!currentTime.isBefore(startTime) && !currentTime.isAfter(endTime)) {
                 // 如果生成时间为空 或者 巡检周期大于时间差值
-                if(generationdate==null || inspectioncycle == i){
+                if (generationdate == null || inspectioncycle == i) {
                     return returnDate;
-                }else{
-                    return  null;
+                } else {
+                    return null;
                 }
-            }else{
+            } else {
                 return null;
             }
         } else if (SaveConstans.INSPECTION_CYCLE_UNIT.DAY.equals(inspectioncycleunit)) {

+ 0 - 2
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/ApsHazardInvestigationTemplateZibiaoDo.java

@@ -60,13 +60,11 @@ public class ApsHazardInvestigationTemplateZibiaoDo extends BaseDo implements Se
     /**
      * 工作开始时间
      */
-    @Deprecated
     private String startingtimeofwork;
 
     /**
      * 工作结束时间
      */
-    @Deprecated
     private String endtimeofwork;
 
     /**

+ 72 - 0
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/AspRiskUnitPostInfoDo.java

@@ -0,0 +1,72 @@
+package com.rongwe.scentity.domian;
+
+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 asp_risk_unit_post_info
+ */
+@TableName(value = "asp_risk_unit_post_info")
+@Data
+public class AspRiskUnitPostInfoDo extends BaseDo implements Serializable {
+
+    /**
+     * 主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     *
+     */
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    private String roption;
+
+    /**
+     * 对象分类
+     */
+    private String objclass;
+
+    /**
+     * 主表id
+     * 根据 对象分类
+     * 1:生产设备、 asp_check_items
+     * 2:风险分析单元  asp_risk_unit
+     */
+    private String pid;
+
+    /**
+     * 主表记录名称
+     */
+    private String mainrecordname;
+
+    /**
+     * 岗位
+     */
+    private String post;
+
+    /**
+     * 责任人名称
+     */
+    private String dutyofficername;
+
+    /**
+     * 责任人id
+     */
+    private String dutyofficerid;
+
+    /**
+     * 编号
+     */
+    private String pcode;
+
+}