Browse Source

feature 代码提交

xiahan 11 months ago
parent
commit
21ed7fc6b7

+ 46 - 60
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,79 @@ 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;
-        }
+        JSCommonUtils.parameterCheck(() -> themeCheckDo == null, "无法通过ID 获取到检查计划", "无法通过ID 获取到检查计划", themeCheckId);
+        JSCommonUtils.parameterCheck(() -> themeCheckDo.getCreatetask() != null && themeCheckDo.getCreatetask() == 1,
+                "此检查计划已生成检查任务", "此检查计划已生成检查任务");
         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<ThemeCheckWorkparkDo> themeCheckWorkparks = themeCheckWorkparkService
+                .list(new LambdaQueryWrapper<ThemeCheckWorkparkDo>().eq(ThemeCheckWorkparkDo::getThemecheckid, themeCheckId));
+        JSCommonUtils.parameterCheck(themeCheckWorkparks::isEmpty,
+                "本次计划暂无检查小组任务", "本次计划暂无检查小组任务");
         // 获取所有检查小组的人员信息
-        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());
+        // 获取检查任务中的所有人员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<>();
         // 生成检查任务
         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(","))));
             }
+            SysUserDo userDo;
+            List<CheckTemplateItemsDo> chekTempItems;
             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 -> themeCheckItemDo.getId().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++;
                 }