|  | @@ -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);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              });
 |