Kaynağa Gözat

隐患整改任务生成

chenguangyu 1 yıl önce
ebeveyn
işleme
b0aabe0f4e

+ 213 - 190
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/SaveCheckItemServiceImpl.java

@@ -131,61 +131,84 @@ public class SaveCheckItemServiceImpl implements SaveCheckItemService {
             log.debug("检查结果为正常或无发现项,无需生成检查任务");
         }
         // 获取所有部门ID
-        List<String> deptIdList = aspCheckDiscoveryItemDos.stream().map(AspCheckDiscoveryItemDo::getDeptid).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
+//        List<String> deptIdList = aspCheckDiscoveryItemDos.stream().map(AspCheckDiscoveryItemDo::getDeptid).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toList());
         // 获取安全管理员
         SysUserDo safetyManager = saveCheckCommonDao.getSafetyManager();
         // 获取车间安全促进员
-        List<UserMailOrgVo> safetyPromoter = saveCheckCommonDao.getSafetyPromoter(deptIdList);
+//        List<UserMailOrgVo> safetyPromoter = saveCheckCommonDao.getSafetyPromoter(deptIdList);
         // 获取安全管理员
         List<HiddenDangerTrackDo> addList = new ArrayList<>();
         aspCheckDiscoveryItemDos.forEach(info -> {
             HiddenDangerTrackDo hiddenDangerTrack = new HiddenDangerTrackDo();
             hiddenDangerTrack.setId(SecurityUtil.getUUID());
-            hiddenDangerTrack.setThemecheckid(checkItemDo.getThemecheckid());
-            hiddenDangerTrack.setThemecheckname(checkItemDo.getThemecheckname());
-            //隐患来源 检查录入
+            //风险分析对象编码
+            hiddenDangerTrack.setRiskanalysisobjectcode(info.getRiskunitcode());
+            //隐患等级hazardlevel
+            hiddenDangerTrack.setHazardlevel(info.getGrade());
+            //隐患来源
             hiddenDangerTrack.setDangersource(MlConstants.DANGER_SOURCE_THEMECHECK);
-            hiddenDangerTrack.setRelationid(checkItemDo.getId());
-            hiddenDangerTrack.setFinduser(info.getFinduser());
-            hiddenDangerTrack.setFindusername(info.getFindusername());
-            hiddenDangerTrack.setFindtime(checkItemDo.getCreatedate());
-            hiddenDangerTrack.setActualchecktime(checkItemDo.getActualchecktime());
-            hiddenDangerTrack.setStatus(MlConstants.HIDDEN_DANGER_STATUS_NOTCLOSE);
-            hiddenDangerTrack.setTenantid(checkItemDo.getTenantid());
+            //治理类型
+            hiddenDangerTrack.setGovernancetype(info.getGovernancetype());
+            //隐患类别
+            hiddenDangerTrack.setHiddendangerleibie(info.getClassification());
+            //隐患类型
+            hiddenDangerTrack.setHiddendangertype(info.getType());
+            //隐患状态 默认整改中
+            hiddenDangerTrack.setHazardstate("0");
+            //隐患名称
+            hiddenDangerTrack.setHazardname(info.getName());
+            //隐患描述
+            if (StringUtils.isNotBlank(info.getHazarddescription())) {
+                hiddenDangerTrack.setHazarddescription(info.getHazarddescription());
+            }
+            //整改责任人
+            hiddenDangerTrack.setResponsiblepersonforrectification(info.getTrackuser());
+            //责任人 id
+            hiddenDangerTrack.setTrackuserid(info.getTrackuserid());
+            //检查任务id
+            hiddenDangerTrack.setCheckid(info.getId());
+            //创建人
+            hiddenDangerTrack.setCreateusername(info.getModifyusername());
+            hiddenDangerTrack.setCreateuserid(info.getModifyuserid());
+            hiddenDangerTrack.setModifyusername(info.getModifyusername());
+            hiddenDangerTrack.setModifyuserid(info.getModifyuserid());
+            hiddenDangerTrack.setModifydate(new Date());
+            //创建时间当前时间
+            hiddenDangerTrack.setCreatedate(new Date());
 
-            // 点检编号
+//
+//            hiddenDangerTrack.setThemecheckid(checkItemDo.getThemecheckid());
+//            hiddenDangerTrack.setThemecheckname(checkItemDo.getThemecheckname());
+//            hiddenDangerTrack.setRelationid(checkItemDo.getId());
+//
+//            hiddenDangerTrack.setFindtime(checkItemDo.getCreatedate());
+//            hiddenDangerTrack.setActualchecktime(checkItemDo.getActualchecktime());
+//            hiddenDangerTrack.setStatus(MlConstants.HIDDEN_DANGER_STATUS_NOTCLOSE);
+//            hiddenDangerTrack.setTenantid(checkItemDo.getTenantid());
 
-            String pointcheckcode = streamCodeGeneration("asp_hidden_danger_track_code_aq",
-                    "@{date:yyyyMMdd}@{serialNumber:#000000}", "date:yyyy", themeCheck.getTenantid());
+//            String pointcheckcode = streamCodeGeneration("asp_hidden_danger_track_code_aq",
+//                    "@{date:yyyyMMdd}@{serialNumber:#000000}", "date:yyyy", themeCheck.getTenantid());
 
-            hiddenDangerTrack.setCode(pointcheckcode);
+//            hiddenDangerTrack.setCode(pointcheckcode);
 
-            hiddenDangerTrack.setHiddendangertype(info.getType());
-            hiddenDangerTrack.setHiddendangerclassify(info.getClassification());
-            hiddenDangerTrack.setTrackuserid(info.getTrackuserid());
-            hiddenDangerTrack.setTrackusername(info.getTrackuser());
-            hiddenDangerTrack.setRectificationdate(info.getDeadline());
-            hiddenDangerTrack.setHiddendangercontent(info.getContent());
-            hiddenDangerTrack.setCheckphoto(checkItemDo.getCheckphoto());
-            hiddenDangerTrack.setStatus(MlConstants.HIDDEN_DANGER_STATUS_NOTCLOSE);
-            hiddenDangerTrack.setDiscoveryitemid(info.getId());
-            hiddenDangerTrack.setCreatedate(new Date());
-            hiddenDangerTrack.setCreateusername("日常检查自动生成");
-            hiddenDangerTrack.setModifyusername("日常检查自动生成");
-            hiddenDangerTrack.setModifydate(new Date());
-            hiddenDangerTrack.setWorkshop(emptyStrReplace(info.getDept()));
-            hiddenDangerTrack.setWorkshopid(emptyStrReplace(info.getDeptid()));
-            hiddenDangerTrack.setDangerworkpark(emptyStrReplace(info.getSectionid()));
-            hiddenDangerTrack.setDangerworkparkname(emptyStrReplace(info.getSection()));
-            hiddenDangerTrack.setRectificationfund(info.getRectificationfund());
-            hiddenDangerTrack.setMeasure(info.getMeasure());
-            UserMailOrgVo userMailOrgVo = safetyPromoter.stream().filter(data -> data.getOrgId().equals(info.getDeptid())).findFirst().orElse(null);
-            // 车间促进员
-            hiddenDangerTrack.setShopfacilitator(userMailOrgVo == null ? "" : userMailOrgVo.getName());
-            hiddenDangerTrack.setShopfacilitatorid(userMailOrgVo == null ? "" : userMailOrgVo.getId());
+//            hiddenDangerTrack.setHiddendangertype(info.getType());
+//            hiddenDangerTrack.setTrackuserid(info.getTrackuserid());
+//            hiddenDangerTrack.setTrackusername(info.getTrackuser());
+//            hiddenDangerTrack.setRectificationdate(info.getDeadline());
+//            hiddenDangerTrack.setHiddendangercontent(info.getHazarddescription());
+//            hiddenDangerTrack.setCheckphoto(checkItemDo.getCheckphoto());
+//            hiddenDangerTrack.setStatus(MlConstants.HIDDEN_DANGER_STATUS_NOTCLOSE);
+//            hiddenDangerTrack.setDiscoveryitemid(info.getId());
+//            hiddenDangerTrack.setCreatedate(new Date());
+//            hiddenDangerTrack.setCreateusername("日常检查自动生成");
+//            hiddenDangerTrack.setModifyusername("日常检查自动生成");
+//            hiddenDangerTrack.setModifydate(new Date());
+//
+//            hiddenDangerTrack.setRectificationfund(info.getRectificationfund());
+//            hiddenDangerTrack.setMeasure(info.getMeasure());
             // 安全管理员
-            hiddenDangerTrack.setSafetypromoter(safetyManager == null ? "" : safetyManager.getName());
-            hiddenDangerTrack.setSafetypromoterid(safetyManager == null ? "" : safetyManager.getId());
+//            hiddenDangerTrack.setSafetypromoter(safetyManager == null ? "" : safetyManager.getName());
+//            hiddenDangerTrack.setSafetypromoterid(safetyManager == null ? "" : safetyManager.getId());
             addList.add(hiddenDangerTrack);
         });
         hiddenDangerTrackService.saveBatch(addList);
@@ -200,83 +223,83 @@ public class SaveCheckItemServiceImpl implements SaveCheckItemService {
      *
      * @return
      */
-    @Async
-    public void sendDiscoveryMail(ThemeCheckItemDo checkItemDo, ThemeCheckDo themeCheck,
-                                  List<AspCheckDiscoveryItemDo> aspCheckDiscoveryItemDos) {
-        log.info("开始执行异步邮件发送方法");
-        if (aspCheckDiscoveryItemDos.isEmpty()) {
-            return;
-        }
-        // 获取拥有领导角色的员工
-        // 获取安全管理员
-        List<UserMailOrgVo> leaderUserMialList = saveCheckCommonDao.getUserInfoByDeptCode("code-leader");
-        // 获取邮件发送人
-        List<String> mailsenduserids = StringUtils.isBlank(checkItemDo.getMailsenduserids()) ? new ArrayList<String>()
-                : Arrays.asList(checkItemDo.getMailsenduserids().split(","));
-        // 邮件发送人信息
-        List<SysUserDo> mailSender = mailsenduserids.isEmpty() ? new ArrayList<SysUserDo>() :
-                sysUserService.list(new LambdaQueryWrapper<SysUserDo>().in(SysUserDo::getId, mailsenduserids));
-        // 获取检查项中对应部门的部门经理
-        List<String> deptIds = aspCheckDiscoveryItemDos.stream()
-                .map(AspCheckDiscoveryItemDo::getDeptid)
-                .filter(StringUtils::isNotBlank)
-                .distinct()
-                .collect(Collectors.toList());
-        // 部门经理以及邮箱信息
-        List<UserMailOrgVo> deptUserList = saveCheckCommonDao.getUserInfoByOrgIdAndRoleCode(deptIds, DEPT_MANAGE_CODE);
-        // 获取所有的工段主管
-        List<String> sectionIds = aspCheckDiscoveryItemDos.stream()
-                .map(AspCheckDiscoveryItemDo::getSectionid)
-                .filter(StringUtils::isNotBlank)
-                .distinct()
-                .collect(Collectors.toList());
-        List<UserMailOrgVo> sectionUserList = saveCheckCommonDao.getUserInfoByOrgIdAndRoleCode(sectionIds, SECTION_SUPERVISOR_CODE);
-        // 获取所有的指派跟踪人
-        List<String> trackUserIds = aspCheckDiscoveryItemDos.stream()
-                .map(AspCheckDiscoveryItemDo::getTrackuserid)
-                .filter(StringUtils::isNotBlank)
-                .distinct()
-                .collect(Collectors.toList());
-        List<SysUserDo> trackUserInfo = sysUserService.list(new LambdaQueryWrapper<SysUserDo>().in(SysUserDo::getId, trackUserIds));
-        // 邮件发送人 整改所有发现项发出
-        List<UserMailOrgVo> senderMailUser = mailSender.stream().map(info -> {
-            UserMailOrgVo userMailOrgVo = new UserMailOrgVo();
-            userMailOrgVo.setId(info.getId());
-            userMailOrgVo.setEmail(info.getEmail());
-            return userMailOrgVo;
-        }).collect(Collectors.toList());
-        // 部门经理 需要将已在邮件发送人中存在的部门经理踢出
-        deptUserList = userMailDistinct(senderMailUser, deptUserList);
-        // 工段主管的邮箱 需要排除部门经理和邮件发送人
-        List<UserMailOrgVo> sectionUserMail = userMailDistinct(Stream.of(deptUserList, senderMailUser)
-                .flatMap(Collection::stream)
-                .collect(Collectors.toList()), sectionUserList);
-        // 指派跟踪人邮箱 需要排除部门经理和邮件发送人和工段主管
-        List<UserMailOrgVo> trackUserMail = userDistinct(Stream.of(senderMailUser, deptUserList, sectionUserMail)
-                .flatMap(Collection::stream)
-                .collect(Collectors.toList()), trackUserInfo);
-        /*******************邮件相关信息**************************************/
-        String mailSubject = THEMECHECK_TYPE_SPECIALCHECK.equals(themeCheck.getChecktype()) ? SPECIALCHECK_MAIL_SUBJECT : TYPE_DAYCHECK_MAIL_SUBJECT;
-        String checkSubject = checkItemDo.getThemecheckname();
-        String groupLeaderName = checkItemDo.getGroupleadername();
-        String groupUserNames = checkItemDo.getGroupusernames();
-        Date startTime = checkItemDo.getPlanstarttime();
-        Date endTime = checkItemDo.getPlanendtime();
-        String inspectionStation = checkItemDo.getChargeorgname();
-        List<SysDictDo> sysDictDos = sysDictService.getDictsByType(HIDDEN_DANGER_CLASSIFY);
-        /********************开始发送对应的邮件信息*****************************/
-        log.info("开始发送检查结构邮件,邮件发送人:{},部门经理:{},工段主管:{},指派跟踪人:{}", senderMailUser, deptUserList, sectionUserMail, trackUserMail);
-        sendDiscoveryItemMail(leaderUserMialList, aspCheckDiscoveryItemDos, 0
-                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
-        sendDiscoveryItemMail(senderMailUser, aspCheckDiscoveryItemDos, 0
-                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
-        sendDiscoveryItemMail(deptUserList, aspCheckDiscoveryItemDos, 1
-                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
-        sendDiscoveryItemMail(sectionUserMail, aspCheckDiscoveryItemDos, 2
-                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
-        sendDiscoveryItemMail(trackUserMail, aspCheckDiscoveryItemDos, 3
-                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
-    }
+//    @Async
+//    public void sendDiscoveryMail(ThemeCheckItemDo checkItemDo, ThemeCheckDo themeCheck,
+//                                  List<AspCheckDiscoveryItemDo> aspCheckDiscoveryItemDos) {
+//        log.info("开始执行异步邮件发送方法");
+//        if (aspCheckDiscoveryItemDos.isEmpty()) {
+//            return;
+//        }
+//        // 获取拥有领导角色的员工
+//        // 获取安全管理员
+//        List<UserMailOrgVo> leaderUserMialList = saveCheckCommonDao.getUserInfoByDeptCode("code-leader");
+//        // 获取邮件发送人
+//        List<String> mailsenduserids = StringUtils.isBlank(checkItemDo.getMailsenduserids()) ? new ArrayList<String>()
+//                : Arrays.asList(checkItemDo.getMailsenduserids().split(","));
+//        // 邮件发送人信息
+//        List<SysUserDo> mailSender = mailsenduserids.isEmpty() ? new ArrayList<SysUserDo>() :
+//                sysUserService.list(new LambdaQueryWrapper<SysUserDo>().in(SysUserDo::getId, mailsenduserids));
+//        // 获取检查项中对应部门的部门经理
+//        List<String> deptIds = aspCheckDiscoveryItemDos.stream()
+//                .map(AspCheckDiscoveryItemDo::getDeptid)
+//                .filter(StringUtils::isNotBlank)
+//                .distinct()
+//                .collect(Collectors.toList());
+//        // 部门经理以及邮箱信息
+//        List<UserMailOrgVo> deptUserList = saveCheckCommonDao.getUserInfoByOrgIdAndRoleCode(deptIds, DEPT_MANAGE_CODE);
+//        // 获取所有的工段主管
+//        List<String> sectionIds = aspCheckDiscoveryItemDos.stream()
+//                .map(AspCheckDiscoveryItemDo::getSectionid)
+//                .filter(StringUtils::isNotBlank)
+//                .distinct()
+//                .collect(Collectors.toList());
+//        List<UserMailOrgVo> sectionUserList = saveCheckCommonDao.getUserInfoByOrgIdAndRoleCode(sectionIds, SECTION_SUPERVISOR_CODE);
+//        // 获取所有的指派跟踪人
+//        List<String> trackUserIds = aspCheckDiscoveryItemDos.stream()
+//                .map(AspCheckDiscoveryItemDo::getTrackuserid)
+//                .filter(StringUtils::isNotBlank)
+//                .distinct()
+//                .collect(Collectors.toList());
+//        List<SysUserDo> trackUserInfo = sysUserService.list(new LambdaQueryWrapper<SysUserDo>().in(SysUserDo::getId, trackUserIds));
+//        // 邮件发送人 整改所有发现项发出
+//        List<UserMailOrgVo> senderMailUser = mailSender.stream().map(info -> {
+//            UserMailOrgVo userMailOrgVo = new UserMailOrgVo();
+//            userMailOrgVo.setId(info.getId());
+//            userMailOrgVo.setEmail(info.getEmail());
+//            return userMailOrgVo;
+//        }).collect(Collectors.toList());
+//        // 部门经理 需要将已在邮件发送人中存在的部门经理踢出
+//        deptUserList = userMailDistinct(senderMailUser, deptUserList);
+//        // 工段主管的邮箱 需要排除部门经理和邮件发送人
+//        List<UserMailOrgVo> sectionUserMail = userMailDistinct(Stream.of(deptUserList, senderMailUser)
+//                .flatMap(Collection::stream)
+//                .collect(Collectors.toList()), sectionUserList);
+//        // 指派跟踪人邮箱 需要排除部门经理和邮件发送人和工段主管
+//        List<UserMailOrgVo> trackUserMail = userDistinct(Stream.of(senderMailUser, deptUserList, sectionUserMail)
+//                .flatMap(Collection::stream)
+//                .collect(Collectors.toList()), trackUserInfo);
+//        /*******************邮件相关信息**************************************/
+//        String mailSubject = THEMECHECK_TYPE_SPECIALCHECK.equals(themeCheck.getChecktype()) ? SPECIALCHECK_MAIL_SUBJECT : TYPE_DAYCHECK_MAIL_SUBJECT;
+//        String checkSubject = checkItemDo.getThemecheckname();
+//        String groupLeaderName = checkItemDo.getGroupleadername();
+//        String groupUserNames = checkItemDo.getGroupusernames();
+//        Date startTime = checkItemDo.getPlanstarttime();
+//        Date endTime = checkItemDo.getPlanendtime();
+//        String inspectionStation = checkItemDo.getChargeorgname();
+//        List<SysDictDo> sysDictDos = sysDictService.getDictsByType(HIDDEN_DANGER_CLASSIFY);
+//        /********************开始发送对应的邮件信息*****************************/
+//        log.info("开始发送检查结构邮件,邮件发送人:{},部门经理:{},工段主管:{},指派跟踪人:{}", senderMailUser, deptUserList, sectionUserMail, trackUserMail);
+//        sendDiscoveryItemMail(leaderUserMialList, aspCheckDiscoveryItemDos, 0
+//                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
+//        sendDiscoveryItemMail(senderMailUser, aspCheckDiscoveryItemDos, 0
+//                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
+//        sendDiscoveryItemMail(deptUserList, aspCheckDiscoveryItemDos, 1
+//                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
+//        sendDiscoveryItemMail(sectionUserMail, aspCheckDiscoveryItemDos, 2
+//                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
+//        sendDiscoveryItemMail(trackUserMail, aspCheckDiscoveryItemDos, 3
+//                , sysDictDos, mailSubject, checkSubject, groupLeaderName, groupUserNames, startTime, endTime, inspectionStation);
+//    }
 
     /**
      * 发送发现项邮件
@@ -286,79 +309,79 @@ public class SaveCheckItemServiceImpl implements SaveCheckItemService {
      * @param type                     区分 1 部门经理邮件 2 工段主管邮件 3 工段主管邮件 0 邮件发送人
      * @param mailSubject              邮件主题
      */
-    public void sendDiscoveryItemMail(List<UserMailOrgVo> trackUserMail,
-                                      List<AspCheckDiscoveryItemDo> aspCheckDiscoveryItemDos,
-                                      int type,
-                                      List<SysDictDo> sysDictDos,
-                                      String mailSubject,
-                                      String checkSubject,
-                                      String groupLeaderName,
-                                      String groupUserNames,
-                                      Date startTime,
-                                      Date endTime,
-                                      String inspectionStation) {
-        // 为空直接返回
-        if (trackUserMail.isEmpty()) {
-            log.debug("邮件接收人为空");
-            return;
-        }
-        // 筛选出邮箱不为空的数据
-        trackUserMail = trackUserMail.stream().filter(info -> StringUtils.isNotBlank(info.getEmail())).collect(Collectors.toList());
-        if (trackUserMail.isEmpty()) {
-            log.debug("邮件接收人:{}邮箱为空", trackUserMail);
-            return;
-        }
-        // 按照邮箱分组
-        Map<String, List<UserMailOrgVo>> groupByEmail = trackUserMail.stream().collect(Collectors.groupingBy(UserMailOrgVo::getEmail));
-        // 根据不同的邮箱发送
-        groupByEmail.forEach((k, v) -> {
-            List<AspCheckDiscoveryItemDo> mailCkeckItem;
-            StringBuffer discoveryItems = new StringBuffer();
-            if (type == 0) {
-                mailCkeckItem = aspCheckDiscoveryItemDos;
-            } else if (type == 1) {
-                List<String> orgIds = v.stream().map(UserMailOrgVo::getOrgId).collect(Collectors.toList());
-                mailCkeckItem = aspCheckDiscoveryItemDos.stream()
-                        .filter(data -> orgIds.contains(data.getDeptid())).
-                        collect(Collectors.toList());
-            } else if (type == 2) {
-                List<String> orgIds = v.stream().map(UserMailOrgVo::getOrgId).collect(Collectors.toList());
-                mailCkeckItem = aspCheckDiscoveryItemDos.stream()
-                        .filter(data -> orgIds.contains(data.getSectionid())).
-                        collect(Collectors.toList());
-            } else {
-                List<String> orgIds = v.stream().map(UserMailOrgVo::getId).collect(Collectors.toList());
-                mailCkeckItem = aspCheckDiscoveryItemDos.stream()
-                        .filter(data -> orgIds.contains(data.getTrackuserid())).
-                        collect(Collectors.toList());
-            }
-            int index = 1;
-            for (int i = 0; i < mailCkeckItem.size(); i++) {
-                AspCheckDiscoveryItemDo aspCheckDiscoveryItemDo = mailCkeckItem.get(i);
-                discoveryItems.append(String.format(DISCOVERY_ITEM_CONTENT, index++, emptyStrReplace(aspCheckDiscoveryItemDo.getDept()),
-                        emptyStrReplace(aspCheckDiscoveryItemDo.getSection()),
-                        emptyStrReplace(aspCheckDiscoveryItemDo.getContent()),
-                        getDictNameByDictValue(aspCheckDiscoveryItemDo.getClassification(), sysDictDos),
-                        DateUtil.format(aspCheckDiscoveryItemDo.getDeadline(), "yyyy-MM-dd")));
-            }
-            // 邮件发送
-            MailDo mail = new MailDo();
-            mail.setSubject(mailSubject);
-            mail.setReceiveEmail(new String[]{k});
-            mail.setNeedTransReceive(false);
-            mail.setContent(String.format(DISCOVERY_ITEM_MAIL_CONTENT, emptyStrReplace(checkSubject),
-                    emptyStrReplace(groupLeaderName), emptyStrReplace(groupUserNames), emptyStrReplace(inspectionStation),
-                    startTime, startTime, endTime, endTime, emptyStrReplace(discoveryItems.toString())));
-            try {
-                // 邮件发送服务调用
-                sysConfigFeignService.sendTextMail(mail);
-            } catch (Exception e) {
-                log.error("邮件发送失败!类型:{}( 1.部门经理邮件 2.工段主管邮件 3.工段主管邮件 0.邮件发送人)", type);
-                e.printStackTrace();
-            }
-        });
+//    public void sendDiscoveryItemMail(List<UserMailOrgVo> trackUserMail,
+//                                      List<AspCheckDiscoveryItemDo> aspCheckDiscoveryItemDos,
+//                                      int type,
+//                                      List<SysDictDo> sysDictDos,
+//                                      String mailSubject,
+//                                      String checkSubject,
+//                                      String groupLeaderName,
+//                                      String groupUserNames,
+//                                      Date startTime,
+//                                      Date endTime,
+//                                      String inspectionStation) {
+//        // 为空直接返回
+//        if (trackUserMail.isEmpty()) {
+//            log.debug("邮件接收人为空");
+//            return;
+//        }
+//        // 筛选出邮箱不为空的数据
+//        trackUserMail = trackUserMail.stream().filter(info -> StringUtils.isNotBlank(info.getEmail())).collect(Collectors.toList());
+//        if (trackUserMail.isEmpty()) {
+//            log.debug("邮件接收人:{}邮箱为空", trackUserMail);
+//            return;
+//        }
+//        // 按照邮箱分组
+//        Map<String, List<UserMailOrgVo>> groupByEmail = trackUserMail.stream().collect(Collectors.groupingBy(UserMailOrgVo::getEmail));
+//        // 根据不同的邮箱发送
+//        groupByEmail.forEach((k, v) -> {
+//            List<AspCheckDiscoveryItemDo> mailCkeckItem;
+//            StringBuffer discoveryItems = new StringBuffer();
+//            if (type == 0) {
+//                mailCkeckItem = aspCheckDiscoveryItemDos;
+//            } else if (type == 1) {
+//                List<String> orgIds = v.stream().map(UserMailOrgVo::getOrgId).collect(Collectors.toList());
+//                mailCkeckItem = aspCheckDiscoveryItemDos.stream()
+//                        .filter(data -> orgIds.contains(data.getDeptid())).
+//                        collect(Collectors.toList());
+//            } else if (type == 2) {
+//                List<String> orgIds = v.stream().map(UserMailOrgVo::getOrgId).collect(Collectors.toList());
+//                mailCkeckItem = aspCheckDiscoveryItemDos.stream()
+//                        .filter(data -> orgIds.contains(data.getSectionid())).
+//                        collect(Collectors.toList());
+//            } else {
+//                List<String> orgIds = v.stream().map(UserMailOrgVo::getId).collect(Collectors.toList());
+//                mailCkeckItem = aspCheckDiscoveryItemDos.stream()
+//                        .filter(data -> orgIds.contains(data.getTrackuserid())).
+//                        collect(Collectors.toList());
+//            }
+//            int index = 1;
+//            for (int i = 0; i < mailCkeckItem.size(); i++) {
+//                AspCheckDiscoveryItemDo aspCheckDiscoveryItemDo = mailCkeckItem.get(i);
+//                discoveryItems.append(String.format(DISCOVERY_ITEM_CONTENT, index++, emptyStrReplace(aspCheckDiscoveryItemDo.getDept()),
+//                        emptyStrReplace(aspCheckDiscoveryItemDo.getSection()),
+//                        emptyStrReplace(aspCheckDiscoveryItemDo.getContent()),
+//                        getDictNameByDictValue(aspCheckDiscoveryItemDo.getClassification(), sysDictDos),
+//                        DateUtil.format(aspCheckDiscoveryItemDo.getDeadline(), "yyyy-MM-dd")));
+//            }
+//            // 邮件发送
+//            MailDo mail = new MailDo();
+//            mail.setSubject(mailSubject);
+//            mail.setReceiveEmail(new String[]{k});
+//            mail.setNeedTransReceive(false);
+//            mail.setContent(String.format(DISCOVERY_ITEM_MAIL_CONTENT, emptyStrReplace(checkSubject),
+//                    emptyStrReplace(groupLeaderName), emptyStrReplace(groupUserNames), emptyStrReplace(inspectionStation),
+//                    startTime, startTime, endTime, endTime, emptyStrReplace(discoveryItems.toString())));
+//            try {
+//                // 邮件发送服务调用
+//                sysConfigFeignService.sendTextMail(mail);
+//            } catch (Exception e) {
+//                log.error("邮件发送失败!类型:{}( 1.部门经理邮件 2.工段主管邮件 3.工段主管邮件 0.邮件发送人)", type);
+//                e.printStackTrace();
+//            }
+//        });
 
-    }
+//    }
 
     /**
      * 对于用户信息进行去重

+ 86 - 32
js-security/security-entity/src/main/java/com/rongwe/scentity/domian/AspCheckDiscoveryItemDo.java

@@ -2,6 +2,7 @@ package com.rongwe.scentity.domian;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 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;
@@ -19,86 +20,139 @@ import java.util.Date;
 @TableName("asp_check_discovery_item")
 public class AspCheckDiscoveryItemDo extends BaseDo implements Serializable {
     private static final long serialVersionUID = 1L;
+
     /**
      * 主键ID
      */
+    @TableId
     private String id;
     /**
-     * 主题检查ID
+     * 检查任务ID
      */
     private String themecheckitemid;
+
     /**
-     * 部门ID
+     * 风险单元ID
      */
-    private String deptid;
+    private String riskunitid;
+
     /**
-     * 部门
+     * 风险分析对象编码
      */
-    private String dept;
+    private String riskunitcode;
+
+    /**
+     * 隐患等级
+     */
+    private String grade;
+
+    /**
+     * 治理类型
+     */
+    private String governancetype;
+
+    /**
+     * 隐患类别
+     */
+    private String classification;
+
     /**
-     * 工段ID
+     * 隐患类型(专业分类)
      */
-    private String sectionid;
+    private String type;
+
     /**
-     * 工段
+     * 隐患名称
      */
-    private String section;
+    private String name;
+
     /**
-     * 内容
+     * 隐患描述
      */
-    private String content;
+    private String hazarddescription;
+
     /**
-     * 文件
+     * 隐患图片
      */
     private String fileinfo;
+
     /**
-     * 跟踪人
+     * 控制措施
      */
-    private String trackuser;
+    private String measure;
+
     /**
-     * 跟踪人ID
+     * 整改责任人
      */
-    private String trackuserid;
+    private String trackuser;
+
     /**
-     * 隐患分类
+     * 整改责任人ID
      */
-    private String classification;
+    private String trackuserid;
+
     /**
-     * 隐患类型
+     * 整改资金
      */
-    private String type;
+    private String rectificationfund;
+
     /**
      * 整改期限
      */
     private Date deadline;
+
     /**
      * 租户ID
      */
-    @TableField(value = "TENANTID", fill = FieldFill.INSERT)
     private String tenantid;
+
     /**
      * 扩展json格式配置
      */
     private String roption;
+
     /**
-     * 下标
+     * 是否删除(Y/N)
      */
-    private int indexnum;
+    private String deleted;
+
     /**
-     * 整改资金
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
      */
-    private BigDecimal rectificationfund;
+    private Date createdate;
+
     /**
-     * 发现人
+     * 创建用户ID
      */
-    private String findusername;
+    private String createuserid;
+
     /**
-     * 发现人ID
+     * 修改日期
      */
-    private String finduser;
+    private Date modifydate;
+
     /**
-     * 整改措施
+     * 修改用户ID
      */
-    private String measure;
-    private Integer createtask;
+    private String modifyuserid;
+
+    /**
+     * 创建人名称
+     */
+    private String createusername;
+
+    /**
+     * 修改人名称
+     */
+    private String modifyusername;
+
+    /**
+     * 是否已生成任务
+     */
+    private int createtask;
 }

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

@@ -54,9 +54,9 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
     private String dangersource;
 
     /**
-     * 隐患工段
+     * 隐患类别
      */
-    private String dangerworkpark;
+    private String hiddendangerleibie;
 
     /**
      * 隐患工段名称
@@ -64,14 +64,14 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
     private String dangerworkparkname;
 
     /**
-     * 指派跟踪人
+     * 隐患工段
      */
-    private String trackusername;
+    private String dangerworkpark;
 
     /**
-     * 指派跟踪人ID
+     * 指派跟踪人
      */
-    private String trackuserid;
+    private String trackusername;
 
     /**
      * 最初指派跟踪人ID
@@ -83,6 +83,16 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
      */
     private String firsttrackusername;
 
+    /**
+     * 人物管理分类
+     */
+    private String classificationcharactermanagement;
+
+    /**
+     * 发生环节
+     */
+    private String occurrenceprocess;
+
     /**
      * 隐患类型
      */
@@ -113,6 +123,11 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
      */
     private String completionschedule;
 
+    /**
+     * 隐患整改照片
+     */
+    private String photoshiddendanger;
+
     /**
      * 预警状态
      */
@@ -128,6 +143,11 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
      */
     private String checkphoto;
 
+    /**
+     * 附件
+     */
+    private String file;
+
     /**
      * 处理说明
      */
@@ -192,7 +212,6 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
      * 完成照片
      */
     private String finishedphoto;
-
     /**
      * 安全促进员
      */
@@ -236,7 +255,7 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
     /**
      * 整改资金
      */
-    private BigDecimal rectificationfund;
+    private String rectificationfund;
 
     /**
      * 整改措施
@@ -261,7 +280,302 @@ public class HiddenDangerTrackDo extends BaseDo implements Serializable {
     /**
      * 退回次数
      */
-    private Integer returnsnum;
+    private int returnsnum;
+
+    /**
+     * 专项检查任务ID
+     */
+    private String checkid;
+
+    /**
+     * 风险分析对象编码
+     */
+    private String riskanalysisobjectcode;
+
+    /**
+     * 隐患等级
+     */
+    private String hazardlevel;
+
+    /**
+     * 治理类型
+     */
+    private String governancetype;
+
+    /**
+     * 隐患名称
+     */
+    private String hazardname;
+
+    /**
+     * 隐患描述
+     */
+    private String hazarddescription;
+
+    /**
+     * 整改责任人
+     */
+    private String responsiblepersonforrectification;
+    /**
+     * 整改责任人id
+     */
+    private String trackuserid;
+
+    /**
+     * 隐患状态
+     */
+    private String hazardstate;
+
+    /**
+     * 隐患照片
+     */
+    private String hazardphoto;
+
+    /**
+     * 原因分析
+     */
+    private String causeanalysis;
+
+    /**
+     * 隐患治理期限
+     */
+    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;
 
 
 }