|
|
@@ -625,7 +625,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
dealRecListParam(request);
|
|
|
IPage<CoreDrillTaskRecPageVo> page;
|
|
|
if (request.getRecStatus() != null) {
|
|
|
- page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request, request.getRecStatus());
|
|
|
+ page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request, Arrays.asList(request.getRecStatus()));
|
|
|
} else {
|
|
|
page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request, getRecStatus());
|
|
|
}
|
|
|
@@ -678,23 +678,23 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
request.setOrgPath(sysOrg.getPath());
|
|
|
}
|
|
|
|
|
|
- private Integer getRecStatus() {
|
|
|
+ private List<Integer> getRecStatus() {
|
|
|
Long orgId = SecurityUtils.getLoginUser().getOrgId();
|
|
|
SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(orgId, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
|
|
|
if (ObjectUtil.isNull(sysOrg.getType())) {
|
|
|
throw new SystemException("当前登陆用户机构信息异常!");
|
|
|
}
|
|
|
- Integer recStatus = null;
|
|
|
+ List<Integer> recStatus = null;
|
|
|
OrgTypeEnum orgTypeEnum = OrgTypeEnum.getOrgTypeEnum(sysOrg.getType());
|
|
|
switch (orgTypeEnum) {
|
|
|
case SHEGN_LIAN_SHE:
|
|
|
- recStatus = 4;
|
|
|
+ recStatus = Arrays.asList(4, 5);
|
|
|
break;
|
|
|
case BAN_SHI_CHU:
|
|
|
- recStatus = 2;
|
|
|
+ recStatus = Arrays.asList(2, 3, 4);
|
|
|
break;
|
|
|
case HANG_SHE:
|
|
|
- recStatus = 0;
|
|
|
+ recStatus = Arrays.asList(0, 1, 2);
|
|
|
break;
|
|
|
default:
|
|
|
throw new RuntimeException("暂不支持该用户所在机构查看数据!");
|
|
|
@@ -709,12 +709,24 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
if (drillTask == null) {
|
|
|
throw new SystemException("获取预案演练数据失败!");
|
|
|
}
|
|
|
- if (request.getRecStatus() > drillTask.getRecStatus()) {
|
|
|
- //说明是向上级推荐优秀案例,需要判断是否已达上限
|
|
|
- checkRecNum(drillTask, request.getRecStatus());
|
|
|
+
|
|
|
+ if (request.getRecStatus() == null) {
|
|
|
+ //取消推荐
|
|
|
+ int recStatus = checkRecStatus(drillTask);
|
|
|
+ if (recStatus > 0) {
|
|
|
+ return coreDrillTaskMapper.updateStatusById(request.getDrillTaskId(), recStatus);
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //判断是否已达上限
|
|
|
+ checkRecNum(drillTask, request.getRecStatus());
|
|
|
+ if (drillTask.getRecStatus().equals(request.getRecStatus())) {
|
|
|
+ throw new SystemException("该预案演练任务已推荐!");
|
|
|
}
|
|
|
//判断是否越级推荐
|
|
|
- if (ObjectUtil.notEqual(drillTask.getRecStatus(), request.getRecStatus() - 1)) {
|
|
|
+ if (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())) {
|
|
|
@@ -723,6 +735,20 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
|
|
|
return coreDrillTaskMapper.updateStatusById(request.getDrillTaskId(), request.getRecStatus());
|
|
|
}
|
|
|
|
|
|
+ private int checkRecStatus(CoreDrillTask drillTask) {
|
|
|
+ //前端传null,说明页面两个复选框都没勾选
|
|
|
+ //如果当前是正常案例/行社优秀案例/已推荐地区优秀案例 取消推荐后状态为正常案例
|
|
|
+ if (drillTask.getRecStatus() == 0 || drillTask.getRecStatus() == 1 || drillTask.getRecStatus() == 2) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ //如果当前是地区优秀案例/已推荐省级优秀案例 取消推荐后状态为行社优秀案例
|
|
|
+ if (drillTask.getRecStatus() == 3 || drillTask.getRecStatus() == 4) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ //走到这说明当前推荐状态为省级优秀案例,取消推荐后状态为地区优秀案例
|
|
|
+ return 3;
|
|
|
+ }
|
|
|
+
|
|
|
private void checkRecNum(CoreDrillTask drillTask, Integer recStatus) {
|
|
|
|
|
|
DrillRecStatus drillRecStatus = DrillRecStatus.getDrillRecStatus(recStatus);
|