소스 검색

修复内网缺陷

jiawuxian 2 년 전
부모
커밋
eb83ae4ff0

+ 3 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/SafetyCheckRegisterController.java

@@ -4,6 +4,7 @@ import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.annotation.RequiresPermissions;
+import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.safetyCheck.dto.register.AppPageDto;
 import com.xunmei.core.safetyCheck.dto.register.GrantDto;
 import com.xunmei.core.safetyCheck.service.SafetyCheckRegisterSerice;
@@ -27,6 +28,8 @@ public class SafetyCheckRegisterController extends BaseController {
     @PostMapping("page")
     @RequiresPermissions("core:safetycheck:appregister")
     public TableDataInfo getAppPage(@RequestBody AppPageDto query) {
+      Long[] roleIds=  SecurityUtils.getLoginUser().getSysUser().getRoleIds();
+
         TableDataInfo appRulePage = safetyCheckRegisterSerice.appList(query);
         return appRulePage;
     }

+ 2 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/domain/SafetyCheckRulePoint.java

@@ -1,9 +1,6 @@
 package com.xunmei.core.safetyCheck.domain;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
 import com.xunmei.common.core.web.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -45,7 +42,7 @@ public class SafetyCheckRulePoint extends BaseEntity {
     @TableField("area_id")
     private Long areaId;
 
-    @TableField("business_type")
+    @TableField(value="business_type",updateStrategy = FieldStrategy.IGNORED)
     @ApiModelProperty(value = "该要点关联的业务类型")
     private String businessType;
 

+ 32 - 19
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/SafetyCheckRegisterSericeImpl.java

@@ -116,7 +116,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         page.getRecords().forEach(vo -> {
             List<CoreSafetyTask> v = list.stream()
                     .filter(i -> ObjectUtil.equal(i.getPlanId(), vo.getPlanId()) && ObjectUtil.equal(vo.getCount(), i.getCount())
-                    && ObjectUtil.equal(i.getPlanStartTime(),vo.getPlanStartTime()) && ObjectUtil.equal(i.getPlanEndTime(),vo.getPlanEndTime()))
+                            && ObjectUtil.equal(i.getPlanStartTime(), vo.getPlanStartTime()) && ObjectUtil.equal(i.getPlanEndTime(), vo.getPlanEndTime()))
                     .collect(Collectors.toList());
             List<Long> roleIds = planToRoles.stream().filter(p -> ObjectUtil.equal(p.getPlanId(), vo.getPlanId()))
                     .map(p -> p.getRoleId()).collect(Collectors.toList());
@@ -213,6 +213,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         if (ObjectUtil.isNull(plan)) {
             throw new ServiceException("计划不存在");
         }
+
         List<Long> roleIds = coreSafecheckPlanToRoleMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToRole>()
                         .eq(CoreSafecheckPlanToRole::getPlanId, plan.getId())
                         .select(CoreSafecheckPlanToRole::getRoleId))
@@ -235,6 +236,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
 
         List<TaskRegisterNfcVo> nfcs = baseMapper.selectNfc(plan.getId(), id, task.getOrgId());
         TaskRegisterVo<AppTaskRegisterPointVo> vo = TaskRegisterVo.of(task, plan.getCheckOrgType().toString(), roleNames);
+        vo.setPlanType(plan.getCheckType().intValue());
         Set<Long> usedNfcId = new HashSet<>();
         for (AppTaskRegisterPointVo point : points) {
             List<CoreSafetyTaskDataRemarkimg> dataImgs = taskImgs.get(point.getPointDataId());
@@ -325,7 +327,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         }
 
         removeExistData(data.getId());
-        LoginUser user=SecurityUtils.getLoginUser();
+        LoginUser user = SecurityUtils.getLoginUser();
         List<CoreSafetyTaskData> points = new ArrayList();
         List<CoreSafetyTaskDataNfc> nfcs = new ArrayList<>();
         List<CoreSafetyTaskDataRemarkimg> remarkimgs = new ArrayList<>();
@@ -347,8 +349,8 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
                 }
             }
 
-            if (ObjectUtil.equal(data.getIsSubmit(),1) && ObjectUtil.equal(point.getValue(), 1)) {
-                Question question = dataVoToQuestion(data, org, point, pointVo,user);
+            if (ObjectUtil.equal(data.getIsSubmit(), 1) && ObjectUtil.equal(point.getValue(), 1)) {
+                Question question = dataVoToQuestion(data, org, point, pointVo, user);
                 questions.add(question);
             }
         }
@@ -361,7 +363,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
                 questionService.insertQuestion(question);
             }
         }
-        updateTask(data, questions.size());
+        updateTask(data, questions.size(), data.getIsSubmit());
 
         return true;
     }
@@ -417,7 +419,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         return img;
     }
 
-    private Question dataVoToQuestion(TaskRegisterVo task, SysOrg org, CoreSafetyTaskData point, AppTaskRegisterPointVo pointVo,LoginUser user) {
+    private Question dataVoToQuestion(TaskRegisterVo task, SysOrg org, CoreSafetyTaskData point, AppTaskRegisterPointVo pointVo, LoginUser user) {
         Question question = Question.builder()
                 .srcTaskId(task.getId())
                 .orgId(task.getBeCheckedOrgId())
@@ -430,8 +432,8 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
                 .checkItem(pointVo.getItemName())
                 .checkContent(pointVo.getPointName())
                 .questionDesc(point.getRemark())
-                .submitorId(ObjectUtil.isNull(point.getSubmitBy())?user.getUserid():point.getSubmitBy())
-                .submitorName(ObjectUtil.isNull(point.getSubmitName())?user.getName():point.getSubmitName())
+                .submitorId(ObjectUtil.isNull(point.getSubmitBy()) ? user.getUserid() : point.getSubmitBy())
+                .submitorName(ObjectUtil.isNull(point.getSubmitName()) ? user.getName() : point.getSubmitName())
                 .submitTime(point.getSubmitTime())
                 .reformDeadline(DateUtil.endOfDay(DateUtil.offsetDay(new Date(), Integer.parseInt(point.getRectificationDeadline()))))
                 .build();
@@ -439,7 +441,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         return question;
     }
 
-    private boolean updateTask(TaskRegisterVo data, Integer exceptionCount) {
+    private boolean updateTask(TaskRegisterVo data, Integer exceptionCount, Integer isSubmit) {
         LambdaUpdateWrapper<CoreSafetyTask> taskUpdateWraper = new LambdaUpdateWrapper();
         taskUpdateWraper.eq(CoreSafetyTask::getId, data.getId())
 //                .set(CoreSafetyTask::getStatus, ObjectUtil.equal(data.getIsSubmit(), 0) ? SafetyCheckTaskStatus.UnderWay.getValue() : SafetyCheckTaskStatus.Completed.getValue())
@@ -449,6 +451,10 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
                 .set(CoreSafetyTask::getSubmitBy, SecurityUtils.getLoginUser().getName())
                 .set(CoreSafetyTask::getExceptionCount, exceptionCount)
                 .set(CoreSafetyTask::getCheckTeam, data.getCheckTeam());
+        if (ObjectUtil.equal(isSubmit, 1) && ObjectUtil.notEqual(SecurityUtils.getUserId(), data.getGrantUserId())) {
+            //不是被授权人完成的该任务,则清空被授权人信息
+            taskUpdateWraper.set(CoreSafetyTask::getGrantUserId, null);
+        }
         return baseMapper.update(null, taskUpdateWraper) > 0;
     }
 
@@ -474,13 +480,18 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
                 .eq(CoreSafetyTask::getYmdDate, dto.getYmdDate());
         List<CoreSafetyTask> tasks = baseMapper.selectList(wrapper);
         Optional<CoreSafetyTask> taskOptional = tasks.stream().filter(t -> ObjectUtil.equal(t.getId(), dto.getTaskId())).findFirst();
+
         if (!taskOptional.isPresent()) {
             throw new ServiceException("任务不存在");
         }
-
-        if (ObjectUtil.equal(taskOptional.get().getStatus(), SafetyCheckTaskStatus.Completed.getValue())) {
+        CoreSafetyTask task = taskOptional.get();
+        if (ObjectUtil.equal(task.getStatus(), SafetyCheckTaskStatus.Completed.getValue())) {
             throw new ServiceException("任务已完成,不能授权");
         }
+        if (ObjectUtil.equal(task.getGrantUserId(), dto.getUserId())) {
+            throw new ServiceException("任务已授权给该用户,无须授权");
+        }
+
         Long loginUserId = SecurityUtils.getUserId();
         if (ObjectUtil.isNotNull(dto.getUserId())) {
             List<IdNameVo> roles = remoteUserService.getRoleInfoOfUser(dto.getUserId(), SecurityConstants.INNER);
@@ -498,14 +509,16 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
             }
         }
 
-        Long uncompletedCount = tasks.stream()
-                .filter(t -> !ObjectUtil.equal(t.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) && ObjectUtil.isNull(t.getGrantUserId()))
-                .count();
-        Long selfCompletedCount = tasks.stream()
-                .filter(t -> ObjectUtil.equal(t.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) && ObjectUtil.equal(t.getSubmitorId(), loginUserId))
-                .count();
-        if (uncompletedCount <= 1 && selfCompletedCount == 0) {
-            throw new ServiceException("至少完成一次任务");
+        if (ObjectUtil.isNull(task.getGrantUserId())) {
+            Long uncompletedCount = tasks.stream()
+                    .filter(t -> !ObjectUtil.equal(t.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) && ObjectUtil.isNull(t.getGrantUserId()))
+                    .count();
+            Long selfCompletedCount = tasks.stream()
+                    .filter(t -> ObjectUtil.equal(t.getStatus(), SafetyCheckTaskStatus.Completed.getValue()) && ObjectUtil.equal(t.getSubmitorId(), loginUserId))
+                    .count();
+            if (uncompletedCount <= 1 && selfCompletedCount == 0) {
+                throw new ServiceException("每月亲自检查不少于1次");
+            }
         }
 
         LambdaUpdateWrapper<CoreSafetyTask> updateWrapper = new LambdaUpdateWrapper<>();

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/SafetyCheckRuleItemServiceImpl.java

@@ -147,11 +147,12 @@ public class SafetyCheckRuleItemServiceImpl
     public TableDataInfo pageQuery(SafetyCheckRuleItemPageDto itemPageDto) {
         Page<SafetyCheckRuleItemPageVo> page;
 
+        String pointName= itemPageDto.getPointName();
         page = safetyCheckRuleItemMapper.pageQuery(itemPageDto.getPageDto(), itemPageDto);
 //        int order = itemPageDto() * itemPageDto.getSize();
         for (SafetyCheckRuleItemPageVo vo : page.getRecords()) {
 //            vo.setOrder(++order);
-            final List<SafetyCheckRulePointDetailDto> pointList = safetyCheckRulePointMapper.selectDataListByItemId(vo.getId(),itemPageDto.getPointName());
+            final List<SafetyCheckRulePointDetailDto> pointList = safetyCheckRulePointMapper.selectDataListByItemId(vo.getId(),pointName);
             vo.setPointDtoList(pointList);
         }
 

+ 6 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/vo/regsiter/TaskRegisterVo.java

@@ -11,6 +11,7 @@ import com.xunmei.core.safetyCheck.domain.CoreSafetyTask;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
 import lombok.Data;
+import org.hibernate.validator.constraints.Length;
 
 /**
  * 任务登记信息
@@ -31,6 +32,9 @@ public class TaskRegisterVo<T> {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long planId;
 
+    @ApiModelProperty(value = "计划类型")
+    private Integer planType;
+
     @ApiModelProperty(value = "计划开始时间")
     private Date planStartTime;
 
@@ -55,6 +59,7 @@ public class TaskRegisterVo<T> {
     private String beCheckOrgType;
 
     @ApiModelProperty(value = "检查组成员")
+    @Length(max = 255, message = "检查组成员最长255个字符")
     private String checkTeam;
 
     @ApiModelProperty(value = "任务周期的开始日期")
@@ -91,6 +96,6 @@ public class TaskRegisterVo<T> {
         vo.setYmdDate(task.getYmdDate());
         vo.setGrantUserId(task.getGrantUserId());
 
-        return  vo;
+        return vo;
     }
 }