Просмотр исходного кода

处理履职,安全检查,培训,演练 任务重复提交导致状态覆盖的问题

jingyuanchao 1 год назад
Родитель
Сommit
c10054ae56

+ 42 - 54
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -278,6 +278,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
      * @return 结果
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int updateCoreDrillTask(CoreDrillTaskEditDto request) {
         CoreDrillTask coreDrillTask = coreDrillTaskMapper.selectById(request.getId());
         boolean isAdd = false;
@@ -296,12 +297,24 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             coreDrillTask.setPlanCycle(DrillPlanCycleEnum.NONE.getCode());
             coreDrillTask.setCreateBy(SecurityUtils.getUserId().toString());
             coreDrillTask.setCreateTime(new Date());
+            coreDrillTask.setStatus(DrillDoStatus.WAIT_RECORDED.getCode());
             coreDrillTask.setStartDate(DateUtil.beginOfDay(new Date()));
             // 临时添加的任务 特殊把任务的开始结束时间设置为当前时间的一周,否则待办查询不到
             Long endTime = coreDrillTask.getStartDate().getTime();
             Date end = new Date(endTime + 7 * 24 * 60 * 60 * 1000 - 1000);
             coreDrillTask.setEndDate(end);
         }
+        if (ObjectUtil.equal(request.getSubmitType(), 2)) {
+            if (ObjectUtil.notEqual(coreDrillTask.getStatus(), DrillDoStatus.WAIT_SUBMIT.getCode())&&ObjectUtil.notEqual(coreDrillTask.getStatus(), DrillDoStatus.WAIT_RECORDED.getCode())){
+                throw new SystemException("当前状态不允许修改,请退出当前页面后刷新重试!");
+            }
+            coreDrillTask.setStatus(DrillDoStatus.WAIT_SIGN.getCode());
+        } else {
+            if (ObjectUtil.notEqual(coreDrillTask.getStatus(), DrillDoStatus.WAIT_SUBMIT.getCode())&&ObjectUtil.notEqual(coreDrillTask.getStatus(), DrillDoStatus.WAIT_RECORDED.getCode())){
+                throw new SystemException("当前状态不允许修改,请退出当前页面后刷新重试!");
+            }
+            coreDrillTask.setStatus(DrillDoStatus.WAIT_SUBMIT.getCode());
+        }
         taskToUserMapper.deleteByMap(MapUtil.of("drill_task_id", request.getId()));
         coreDrillTask.setType(request.getType());
         coreDrillTask.setDrillStartTime(request.getDrillStartTime());
@@ -327,11 +340,6 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         }
         saveTaskUserData(request);
 
-        if (ObjectUtil.equal(request.getSubmitType(), 2)) {
-            coreDrillTask.setStatus(DrillDoStatus.WAIT_SIGN.getCode());
-        } else {
-            coreDrillTask.setStatus(DrillDoStatus.WAIT_SUBMIT.getCode());
-        }
         coreDrillTask.setCategory(request.getCategory());
         coreDrillTask.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getId().toString());
         coreDrillTask.setUpdateTime(DateUtils.getNowDate());
@@ -490,8 +498,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         final Map<Long, List<SysWorkTime>> listMap = workTimeList.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
 
         for (SysOrg org : orgList) {
-            if(org.getIsLock().equals(1) || org.getDeleted().equals(1))
-            {
+            if (org.getIsLock().equals(1) || org.getDeleted().equals(1)) {
                 continue;
             }
             Map<Short, DateRange> rangeMap;
@@ -588,12 +595,12 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             task.setNo(list.indexOf(task) + 1);
         }
         try {
-            String baseHeaderName="预案演练情况表";
+            String baseHeaderName = "预案演练情况表";
             // 设置响应头
             response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(baseHeaderName, "utf-8"));
             response.setContentType("application/octet-stream;charset=UTF-8");
             response.setCharacterEncoding("utf-8");
-            String header=baseHeaderName+"("+DateUtil.format( request.getStartTime(),"yyyy-MM")+"~"+DateUtil.format( request.getEndTime(),"yyyy-MM")+")";
+            String header = baseHeaderName + "(" + DateUtil.format(request.getStartTime(), "yyyy-MM") + "~" + DateUtil.format(request.getEndTime(), "yyyy-MM") + ")";
             // 数据导出
             EasyExcel.write(response.getOutputStream(), CoreDrillTaskReportVo.class)
                     .registerWriteHandler(new ValueCellWriteHandler(header)).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet(baseHeaderName).doWrite(list);
@@ -627,7 +634,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         request.setOrgPath(sysOrg.getPath());
 
         List<SysOrg> sysOrgList;
-        if (null==sysOrg.getType()){
+        if (null == sysOrg.getType()) {
             return Collections.emptyList();
         }
         if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社")) {
@@ -653,19 +660,16 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             //buildEmptyData(sysOrgList, result);
         } else {
             for (SysOrg org : sysOrgList) {
-                if(ObjectUtil.equal(sysOrg.getType(),OrgTypeEnum.HANG_SHE.getCode()) && !ObjectUtil.equal(org.getType(),OrgTypeEnum.YINGYE_WANGDIAN.getCode()))
-                {
+                if (ObjectUtil.equal(sysOrg.getType(), OrgTypeEnum.HANG_SHE.getCode()) && !ObjectUtil.equal(org.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
                     continue;
                 }
-                List<CoreDrillTaskReportVo> childrenOrgData =new ArrayList<>();
-                if(ObjectUtil.equal(org.getType(),OrgTypeEnum.YINGYE_WANGDIAN.getCode()))
-                {
+                List<CoreDrillTaskReportVo> childrenOrgData = new ArrayList<>();
+                if (ObjectUtil.equal(org.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
                     childrenOrgData = list.stream()
                             //.filter(vo -> vo.getOrgPath().startsWith(org.getPath()))
                             .filter(vo -> vo.getOrgId().equals(org.getId()))
                             .collect(Collectors.toList());
-                }
-                else {
+                } else {
                     childrenOrgData = list.stream().filter(vo -> vo.getOrgPath().startsWith(org.getPath())).collect(Collectors.toList());
                 }
 //                List<CoreDrillTaskReportVo> childrenOrgData = list.stream().filter(vo -> vo.getOrgPath().startsWith(org.getPath())).collect(Collectors.toList());
@@ -921,20 +925,13 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             //处理演练任务类型字典
             record.setTypeText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_TYPE, record.getType()));
             // 6 不推荐(保留普通案例) 7   不推荐(保留行社优秀案例) 8 不推荐(保留地区优秀案例)
-            if(ObjectUtil.equal(6,record.getUnrecStatus()))
-            {
+            if (ObjectUtil.equal(6, record.getUnrecStatus())) {
                 record.setRecStatusText("不推荐(保留普通案例)");
-            }
-            else if(ObjectUtil.equal(7,record.getUnrecStatus()))
-            {
+            } else if (ObjectUtil.equal(7, record.getUnrecStatus())) {
                 record.setRecStatusText("不推荐(保留行社优秀案例)");
-            }
-            else if(ObjectUtil.equal(8,record.getUnrecStatus()))
-            {
+            } else if (ObjectUtil.equal(8, record.getUnrecStatus())) {
                 record.setRecStatusText("不推荐(保留地区优秀案例)");
-            }
-            else
-            {
+            } else {
                 //处理演练任务推荐状态字典
                 record.setRecStatusText(DictUtils.getDictLabel(DictConstants.DRILL_TASK_REC_STATUS, record.getRecStatus()));
             }
@@ -961,17 +958,14 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     }
 
     private void dealRecListParam(CoreDrillTaskRecPageDto request) {
-        
+
         //App的查询, App 默认下穿
         request.setCheckSub(true);
-        if(ObjectUtil.isNotEmpty(request.getRecStatus())){
-            if(isUnRecStatus(request.getRecStatus()))
-            {
+        if (ObjectUtil.isNotEmpty(request.getRecStatus())) {
+            if (isUnRecStatus(request.getRecStatus())) {
                 request.setUnRecStatus(request.getRecStatus());
                 request.setRecStatus(null);
-            }
-            else
-            {
+            } else {
                 request.setUnRecStatus(null);
             }
         }
@@ -1020,7 +1014,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             //取消推荐
             int recStatus = checkRecStatus(drillTask, request.getRecStatus());
 
-            return coreDrillTaskMapper.updateStatusById(request.getDrillTaskId(), recStatus,request.getRecStatus());
+            return coreDrillTaskMapper.updateStatusById(request.getDrillTaskId(), recStatus, request.getRecStatus());
         }
 
 
@@ -1030,38 +1024,34 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
             return 1;
         }
         //判断是否越级推荐
-        if (request.getRecStatus()<DrillRecStatus.UNREC_NORMAL_CASE.getCode() && ObjectUtil.notEqual(drillTask.getRecStatus(), request.getRecStatus() - 1) && ObjectUtil.notEqual(drillTask.getRecStatus(), request.getRecStatus() - 2)) {
+        if (request.getRecStatus() < DrillRecStatus.UNREC_NORMAL_CASE.getCode() && ObjectUtil.notEqual(drillTask.getRecStatus(), request.getRecStatus() - 1) && ObjectUtil.notEqual(drillTask.getRecStatus(), request.getRecStatus() - 2)) {
             throw new SystemException("推荐状态异常!");
         }
         if (ObjectUtil.notEqual(DrillDoStatus.DONE.getCode(), drillTask.getStatus())) {
             throw new SystemException("该预案演练任务未完成或已逾期!");
         }
-        return coreDrillTaskMapper.updateStatusById(request.getDrillTaskId(), request.getRecStatus(),null);
+        return coreDrillTaskMapper.updateStatusById(request.getDrillTaskId(), request.getRecStatus(), null);
     }
 
-    private boolean isUnRecStatus(Integer recStatus)
-    {
-        if(recStatus.equals(DrillRecStatus.UNREC_NORMAL_CASE.getCode())
+    private boolean isUnRecStatus(Integer recStatus) {
+        if (recStatus.equals(DrillRecStatus.UNREC_NORMAL_CASE.getCode())
                 || recStatus.equals(DrillRecStatus.UNREC_HS_EXCELLENT_CASE.getCode())
-                || recStatus.equals(DrillRecStatus.UNREC_REGION_EXCELLENT_CASE.getCode()))
-        {
+                || recStatus.equals(DrillRecStatus.UNREC_REGION_EXCELLENT_CASE.getCode())) {
             return true;
         }
         return false;
     }
-    
+
     private int checkRecStatus(CoreDrillTask drillTask, Integer recStatus) {
 
         // -1 为不推荐
         if (!isUnRecStatus(recStatus) && drillTask.getRecStatus() > recStatus) {
             return recStatus;
         }
-        if(recStatus.equals(DrillRecStatus.UNREC_NORMAL_CASE.getCode()))
-        {
+        if (recStatus.equals(DrillRecStatus.UNREC_NORMAL_CASE.getCode())) {
             return DrillRecStatus.NORMAL.getCode();
         }
-        if(recStatus.equals(DrillRecStatus.UNREC_HS_EXCELLENT_CASE.getCode()))
-        {
+        if (recStatus.equals(DrillRecStatus.UNREC_HS_EXCELLENT_CASE.getCode())) {
             return DrillRecStatus.HS_EXCELLENT_CASE.getCode();
         }
 
@@ -1192,12 +1182,10 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
                 DrillDoStatus.WAIT_RECORDED.getCode(), DrillDoStatus.WAIT_SIGN.getCode());
         List<PanelListVo> list = coreDrillTaskMapper.selectCurUserTaskList(panelListDto, statusList);
         //获取需要登录人 签名的所有任务,解决人员还没签名就调动到其他机构的问题
-        List<PanelListVo> loginUserAllNeedSignlist = coreDrillTaskMapper.selectUserAllDrillSignList(panelListDto,statusList);
-        if(ObjectUtil.isNotEmpty(loginUserAllNeedSignlist))
-        {
-            loginUserAllNeedSignlist.stream().forEach(x->{
-                if(!list.stream().anyMatch(y->ObjectUtil.equal(y.getId(),x.getId())))
-                {
+        List<PanelListVo> loginUserAllNeedSignlist = coreDrillTaskMapper.selectUserAllDrillSignList(panelListDto, statusList);
+        if (ObjectUtil.isNotEmpty(loginUserAllNeedSignlist)) {
+            loginUserAllNeedSignlist.stream().forEach(x -> {
+                if (!list.stream().anyMatch(y -> ObjectUtil.equal(y.getId(), x.getId()))) {
                     list.add(x);
                 }
             });

+ 11 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -38,16 +38,19 @@ import com.xunmei.common.core.enums.edu.EduTrainingPlanStatus;
 import com.xunmei.common.core.enums.edu.EduTrainingType;
 import com.xunmei.common.core.event.WorkTimeChangeEvent;
 import com.xunmei.common.core.exception.SystemException;
+import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.TaskCreatingServiceImplBase;
-import com.xunmei.core.edu.mapper.*;
+import com.xunmei.core.edu.mapper.CoreEduTrainingPlanMapper;
+import com.xunmei.core.edu.mapper.CoreEduTrainingTaskMapper;
+import com.xunmei.core.edu.mapper.CoreEduTrainingTaskToRoleMapper;
+import com.xunmei.core.edu.mapper.CoreEduTrainingTaskToUserMapper;
 import com.xunmei.core.edu.service.ICoreEduTrainingTaskService;
 import com.xunmei.core.edu.service.ICoreEduTrainingTaskToUserService;
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
-import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteFileService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
@@ -362,8 +365,14 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         }
         // 暂存: 待提交    提交:待签名
         if (ObjectUtil.equal(request.getSubmitType(), 1)) {
+            if (ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_SUBMIT.getCode())&&ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_RECORDED.getCode())){
+                throw new SystemException("当前状态不允许修改,请退出当前页面后刷新重试!");
+            }
             coreEduTrainingTask.setStatus(EduTrainingDoStatus.WAIT_SUBMIT.getCode());
         } else {
+            if (ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_SUBMIT.getCode())&&ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_RECORDED.getCode())){
+                throw new SystemException("当前状态不允许修改,请退出当前页面后刷新重试!");
+            }
             coreEduTrainingTask.setStatus(EduTrainingDoStatus.WAIT_SIGN.getCode());
         }
 

+ 37 - 25
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/gx/service/ResumptionServiceImpl.java

@@ -120,6 +120,17 @@ public class ResumptionServiceImpl implements ResumptionService {
         if (sysResumption == null) {
             throw new RuntimeException("任务数据不存在!");
         }
+        if (sysResumption.getStatus() == 4) {
+            throw new RuntimeException("该任务已过期不能完成提交");
+        }
+        if (ObjectUtil.equal(1, taskDetailVo.getSubType()) && ObjectUtil.notEqual(ResumptionStatus.NO_START.getCode(), sysResumption.getStatus())) {
+            throw new RuntimeException("当前状态不允许修改,请退出当前页面后刷新重试!");
+        }
+        if (ObjectUtil.equal(2, taskDetailVo.getSubType()) && ObjectUtil.notEqual(ResumptionStatus.NO_START.getCode(), sysResumption.getStatus()) && ObjectUtil.notEqual(ResumptionStatus.PROGRESS.getCode(), sysResumption.getStatus())) {
+            throw new RuntimeException("当前状态不允许修改,请退出当前页面后刷新重试!");
+        }
+
+
         AppPlan appPlan = appPlanMapper.getById(sysResumption.getPlanId());
         sysResumption.setUpdateBy(SecurityUtils.getUsername());
         sysResumption.setSubmitorId(SecurityUtils.getUserId());
@@ -157,7 +168,7 @@ public class ResumptionServiceImpl implements ResumptionService {
                 data.setAreaId(check.getAreaId());
                 data.setCheckId(point.getCheckId());
                 data.setItemId(point.getPointId());
-                if(ObjectUtil.equal(point.getResValue(),1)){
+                if (ObjectUtil.equal(point.getResValue(), 1)) {
                     data.setRectificationDeadline(point.getRectificationDeadline());
                     data.setResRemark(point.getResRemark());
                 }
@@ -200,7 +211,7 @@ public class ResumptionServiceImpl implements ResumptionService {
                             .submitTime(ObjectUtil.isNull(data.getSubmitTime()) ? new Date() : data.getSubmitTime())
                             .reformDeadline(DateUtil.endOfDay(DateUtil.offsetDay(new Date(), Integer.parseInt(point.getRectificationDeadline()))))
                             .build();
-                    if(appPlan != null){
+                    if (appPlan != null) {
                         question.setSrcTaskType(appPlan.getPlanType());
                     }
                     IdWorker.getId(question);
@@ -219,7 +230,7 @@ public class ResumptionServiceImpl implements ResumptionService {
                     exceptionCount++;
                 }
 
-                if(ObjectUtil.equal(point.getResValue(), 1) && ObjectUtil.isNotNull(point.getImgs())){
+                if (ObjectUtil.equal(point.getResValue(), 1) && ObjectUtil.isNotNull(point.getImgs())) {
                     //有异常时才保存图片
                     List<AppResumptionDataRemarkimg> imgs = point.getImgs();
                     for (AppResumptionDataRemarkimg img : imgs) {
@@ -282,63 +293,64 @@ public class ResumptionServiceImpl implements ResumptionService {
     }
 
 
-    private List<ResumptionNFCVo> getTaskNfc(List<ResumptionPlanVo> resumptionPlanVos,List<ResumptionNFCVo> nfcs,Resumption resumption){
+    private List<ResumptionNFCVo> getTaskNfc(List<ResumptionPlanVo> resumptionPlanVos, List<ResumptionNFCVo> nfcs, Resumption resumption) {
 
         if (ResumptionStatus.COMPLETED.getCode().equals(resumption.getStatus())) {
             //已提交的只显示nfc扫描的记录
             nfcs = nfcs.stream().filter(n -> n.getStatus() != null && n.getStatus() == 1).collect(Collectors.toList());
         }
-        if(ResumptionStatus.PROGRESS.getCode().equals(resumption.getStatus())){
+        if (ResumptionStatus.PROGRESS.getCode().equals(resumption.getStatus())) {
             //已保存时,只显示保存后的记录
             nfcs = nfcs.stream().filter(n -> n.getStatus() != null).collect(Collectors.toList());
         }
 
-        if(ResumptionStatus.NO_START.getCode().equals(resumption.getStatus()) ||
+        if (ResumptionStatus.NO_START.getCode().equals(resumption.getStatus()) ||
                 ResumptionStatus.OUT_DATE.getCode().equals(resumption.getStatus()) ||
                 ResumptionStatus.PROGRESS.getCode().equals(resumption.getStatus())
-        ){
+        ) {
             //待履职时,需要对所有标签进行筛选
             List<ResumptionNFCVo> news = new ArrayList<>();
             Set<String> areaIds = new HashSet<>();
             Set<String> acs = new HashSet<>();
-            Map<String,Integer> scans = new HashMap<>();
+            Map<String, Integer> scans = new HashMap<>();
             for (ResumptionPlanVo vo : resumptionPlanVos) {
                 Long areaId = vo.getAreaId();
                 Long checkId = vo.getCheckId();
                 Integer pointScan = vo.getPointScan();
 
-                if(areaId != null && checkId == null){
+                if (areaId != null && checkId == null) {
                     areaIds.add(areaId.toString());
-                    scans.put(areaId.toString(),pointScan);
+                    scans.put(areaId.toString(), pointScan);
                 }
 
-                if(areaId!=null && checkId != null){
+                if (areaId != null && checkId != null) {
                     acs.add(areaId + "_" + checkId);
-                    scans.put(areaId + "_" + checkId,pointScan);
+                    scans.put(areaId + "_" + checkId, pointScan);
                 }
 
             }
 
             for (ResumptionNFCVo nfc : nfcs) {
-                if( !ResumptionStatus.PROGRESS.getCode().equals(resumption.getStatus())){
+                if (!ResumptionStatus.PROGRESS.getCode().equals(resumption.getStatus())) {
                     nfc.setStatus(0);
                 }
-                if(areaIds.contains(nfc.getAreaId().toString())){
+                if (areaIds.contains(nfc.getAreaId().toString())) {
                     Integer scan = scans.get(nfc.getAreaId().toString());
                     nfc.setPointScan(scan);
                     news.add(nfc);
                 }
 
-                if(acs.contains(nfc.getAreaId() + "_"+ nfc.getCheckId())){
-                    Integer scan = scans.get(nfc.getAreaId() + "_"+ nfc.getCheckId());
+                if (acs.contains(nfc.getAreaId() + "_" + nfc.getCheckId())) {
+                    Integer scan = scans.get(nfc.getAreaId() + "_" + nfc.getCheckId());
                     nfc.setPointScan(scan);
                     news.add(nfc);
                 }
             }
-            nfcs.clear();;
+            nfcs.clear();
+            ;
             nfcs.addAll(news);
         }
-        nfcs =  nfcs.stream().distinct().collect(Collectors.toList());
+        nfcs = nfcs.stream().distinct().collect(Collectors.toList());
         return nfcs;
     }
 
@@ -369,13 +381,13 @@ public class ResumptionServiceImpl implements ResumptionService {
          * 获取 机构下所有nfc数据
          */
         List<ResumptionNFCVo> nfcs = resumptionMapper.selectNFCOfOrg(resumption.getId(), resumption.getOrgId());
-        nfcs = getTaskNfc(resumptionPlanVos,nfcs,resumption);
+        nfcs = getTaskNfc(resumptionPlanVos, nfcs, resumption);
 
         /**
          * nfc按区域分组,并统计已扫描和未扫描的数量
          */
-        Map<String,Integer> nfcGroupCount = new HashMap<>();
-        groupNFCByAreaId(nfcs,nfcGroupCount);
+        Map<String, Integer> nfcGroupCount = new HashMap<>();
+        groupNFCByAreaId(nfcs, nfcGroupCount);
 
 
         //获取任务的所有图片信息
@@ -393,7 +405,7 @@ public class ResumptionServiceImpl implements ResumptionService {
         //区域数据
         Map<Long, AreaResumptionVo> map = new HashMap<>();
 
-        dealData(resumptionPlanVos, imgMap, itemMap, itComMap, map,taskVo, isExist);
+        dealData(resumptionPlanVos, imgMap, itemMap, itComMap, map, taskVo, isExist);
 
 
         int yesNFC = 0;
@@ -433,7 +445,7 @@ public class ResumptionServiceImpl implements ResumptionService {
         taskVo.setYesNFCNums(yesNFC);
         taskVo.setAreas(areas);
         taskVo.setChecks(ListUtil.toList(itemMap.values()));
-        taskVo.setNfcs(nfcs );
+        taskVo.setNfcs(nfcs);
         return taskVo;
     }
 
@@ -444,7 +456,7 @@ public class ResumptionServiceImpl implements ResumptionService {
      * @return
      */
 
-    private void groupNFCByAreaId(List<ResumptionNFCVo> nfcs,Map<String,Integer> map) {
+    private void groupNFCByAreaId(List<ResumptionNFCVo> nfcs, Map<String, Integer> map) {
 
         for (ResumptionNFCVo nfc : nfcs) {
             Integer status = nfc.getStatus();
@@ -484,7 +496,7 @@ public class ResumptionServiceImpl implements ResumptionService {
                           Map<Long, Map<String, Integer>> itComMap,
                           Map<Long, AreaResumptionVo> map,
                           ResumptionTaskDetailVo taskVo,
-                           boolean isExist) {
+                          boolean isExist) {
 
         Integer noPointNum = 0;
         Integer yesPointNum = 0;

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

@@ -442,6 +442,16 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         if (ObjectUtil.isNull(org)) {
             throw new ServiceException("被检机构不存在");
         }
+        if (!isNewTask) {
+            CoreSafetyTask safetyTask = getById(data.getId());
+            if (ObjectUtil.equal(data.getIsSubmit(), 0) && ObjectUtil.notEqual(safetyTask.getStatus(), SafetyCheckTaskStatus.Waiting.getValue())) {
+                throw new ServiceException("当前状态不允许修改,请退出当前页面后刷新重试!");
+            }
+            if (ObjectUtil.equal(data.getIsSubmit(), 1) && ObjectUtil.notEqual(safetyTask.getStatus(), SafetyCheckTaskStatus.UnderWay.getValue())) {
+                throw new ServiceException("当前状态不允许修改,请退出当前页面后刷新重试!");
+            }
+
+        }
 
         if (baseMapper.selectCount(new LambdaQueryWrapper<CoreSafetyTask>()
                 .eq(CoreSafetyTask::getId, data.getId())
@@ -483,7 +493,7 @@ 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,isNewTask);
+                Question question = dataVoToQuestion(data, org, point, pointVo, user, isNewTask);
                 questions.add(question);
             }
         }
@@ -565,7 +575,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
         return img;
     }
 
-    private Question dataVoToQuestion(TaskRegisterVo task, SysOrg org, CoreSafetyTaskData point, AppTaskRegisterPointVo pointVo, LoginUser user,Boolean isNewTask) {
+    private Question dataVoToQuestion(TaskRegisterVo task, SysOrg org, CoreSafetyTaskData point, AppTaskRegisterPointVo pointVo, LoginUser user, Boolean isNewTask) {
         Question question = Question.builder()
                 .srcTaskId(task.getId())
                 .orgId(task.getBeCheckedOrgId())
@@ -585,8 +595,7 @@ public class SafetyCheckRegisterSericeImpl extends ServiceImpl<CoreSafetyTaskMap
                 .reformDeadline(DateUtil.endOfDay(DateUtil.offsetDay(new Date(), Integer.parseInt(point.getRectificationDeadline()))))
                 .build();
 
-        if(isNewTask)
-        {
+        if (isNewTask) {
             question.setSubmitTime(task.getPlanStartTime());
             question.setReformDeadline(DateUtil.endOfDay(DateUtil.offsetDay(task.getPlanStartTime(), Integer.parseInt(point.getRectificationDeadline()))));
         }