From 768f8c6764f8ec51a884fc2356052f83c762a28b Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Thu, 22 May 2025 16:32:22 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1-?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=93=8D=E4=BD=9C=E6=8E=A5=E5=8F=A3=E5=8F=82?= =?UTF-8?q?=E6=95=B0source=E5=88=A0=E9=99=A4=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=EF=BC=8C=E5=89=8D=E7=AB=AF=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=97=B6=E4=B8=BB=E5=8A=A8=E8=AE=BE=E7=BD=AE=E5=8F=82=E6=95=B0?= =?UTF-8?q?source=E4=B8=BApc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1426802323456000]IT服务-工单操作接口参数source删除默认值,前端调用接口时主动设置参数source为pc http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1426802323456000 --- .../module/change/api/ChangeCompleteApi.java | 127 +++---- .../module/change/api/ChangePauseApi.java | 123 +++---- .../module/change/api/ChangeRecoverApi.java | 143 ++++---- .../module/change/api/ChangeRestartApi.java | 169 ++++----- .../module/change/api/ChangeStartApi.java | 87 ++--- .../module/change/api/ChangeStepAbortApi.java | 14 +- .../change/api/ChangeStepCommentApi.java | 201 +++++------ .../api/ChangeStepCommentDeleteApi.java | 8 +- .../change/api/ChangeStepCommentEditApi.java | 12 +- .../change/api/ChangeStepCompleteApi.java | 12 +- .../module/change/api/ChangeStepStartApi.java | 159 ++++----- .../change/api/ChangeStepUpdateApi.java | 227 ++++++------ .../api/ChangeStepWorkerBatchUpdateApi.java | 147 ++++---- .../module/change/api/ChangeUpdateApi.java | 330 +++++++++--------- 14 files changed, 884 insertions(+), 875 deletions(-) diff --git a/src/main/java/neatlogic/module/change/api/ChangeCompleteApi.java b/src/main/java/neatlogic/module/change/api/ChangeCompleteApi.java index bda7d82..4a53fc9 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeCompleteApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeCompleteApi.java @@ -27,78 +27,79 @@ import neatlogic.framework.change.exception.ChangeHandleHasNotStartedException; import neatlogic.framework.change.exception.ChangeNoPermissionException; import neatlogic.framework.change.exception.ChangeNotFoundException; import neatlogic.module.change.service.ChangeService; + //@Service //@Transactional public class ChangeCompleteApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private ChangeService changeService; + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private ChangeService changeService; - @Override - public String getToken() { - return "change/complete"; - } + @Override + public String getToken() { + return "change/complete"; + } - @Override - public String getName() { - return "完成变更"; - } + @Override + public String getName() { + return "nmca.changecompleteapi.getname"; + } - @Override - public String getConfig() { - return null; - } + @Override + public String getConfig() { + return null; + } - @Input({ - @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "变更id"), - @Param(name = "action", type = ApiParamType.ENUM, rule = "succeedchange,failedchange", isRequired = true, desc = "操作类型(确认成功或确认失败)"), - @Param(name = "content", type = ApiParamType.STRING, desc = "描述"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "完成变更") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeId = jsonObj.getLong("changeId"); - if(changeMapper.checkChangeIsExists(changeId) == 0) { - throw new ChangeNotFoundException(changeId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeId); - String action = jsonObj.getString("action"); - ChangeVo changeVo = changeService.getChangeById(changeId); - if(!changeService.isCompletableChange(changeVo, UserContext.get().getUserUuid(true))) { - throw new ChangeNoPermissionException(ChangeOperationType.getText(action)); - } - /** 完成变更时,将变更状态设置为“已成功”或“已失败” **/ - if(ChangeOperationType.SUCCEEDCHANGE.getValue().equals(action)) { - changeVo.setStatus(ChangeStatus.SUCCEED.getValue()); - } else { - changeVo.setStatus(ChangeStatus.FAILED.getValue()); - } - changeMapper.updateChangeStatus(changeVo); + @Input({ + @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changeid"), + @Param(name = "action", type = ApiParamType.ENUM, rule = "succeedchange,failedchange", isRequired = true, desc = "common.actiontype", help = "确认成功或确认失败"), + @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changecompleteapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeId = jsonObj.getLong("changeId"); + if (changeMapper.checkChangeIsExists(changeId) == 0) { + throw new ChangeNotFoundException(changeId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeId); + String action = jsonObj.getString("action"); + ChangeVo changeVo = changeService.getChangeById(changeId); + if (!changeService.isCompletableChange(changeVo, UserContext.get().getUserUuid(true))) { + throw new ChangeNoPermissionException(ChangeOperationType.getText(action)); + } + /** 完成变更时,将变更状态设置为“已成功”或“已失败” **/ + if (ChangeOperationType.SUCCEEDCHANGE.getValue().equals(action)) { + changeVo.setStatus(ChangeStatus.SUCCEED.getValue()); + } else { + changeVo.setStatus(ChangeStatus.FAILED.getValue()); + } + changeMapper.updateChangeStatus(changeVo); - /** 完成变更时,触发更新processtask_step_worker和processtask_step_user数据 **/ - ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); - if (processTaskStepChangeVo == null) { - throw new ChangeHandleHasNotStartedException(); - } - IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); - if (processStepUtilHandler == null) { - throw new ProcessStepUtilHandlerNotFoundException(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); - } - processStepUtilHandler.updateProcessTaskStepUserAndWorker(processTaskStepChangeVo.getProcessTaskId(), processTaskStepChangeVo.getProcessTaskStepId()); + /** 完成变更时,触发更新processtask_step_worker和processtask_step_user数据 **/ + ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); + if (processTaskStepChangeVo == null) { + throw new ChangeHandleHasNotStartedException(); + } + IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); + if (processStepUtilHandler == null) { + throw new ProcessStepUtilHandlerNotFoundException(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); + } + processStepUtilHandler.updateProcessTaskStepUserAndWorker(processTaskStepChangeVo.getProcessTaskId(), processTaskStepChangeVo.getProcessTaskStepId()); - /** 生成活动 **/ - ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); - currentProcessTaskStepVo.setProcessTaskId(processTaskStepChangeVo.getProcessTaskId()); - currentProcessTaskStepVo.setId(processTaskStepChangeVo.getProcessTaskStepId()); - currentProcessTaskStepVo.getParamObj().put("source", jsonObj.getString("source")); - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.getChangeAuditType(action)); - return null; - } + /** 生成活动 **/ + ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); + currentProcessTaskStepVo.setProcessTaskId(processTaskStepChangeVo.getProcessTaskId()); + currentProcessTaskStepVo.setId(processTaskStepChangeVo.getProcessTaskStepId()); + currentProcessTaskStepVo.getParamObj().put("source", jsonObj.getString("source")); + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.getChangeAuditType(action)); + return null; + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangePauseApi.java b/src/main/java/neatlogic/module/change/api/ChangePauseApi.java index da51cd7..d57e637 100644 --- a/src/main/java/neatlogic/module/change/api/ChangePauseApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangePauseApi.java @@ -28,78 +28,79 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + @Service @Transactional @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangePauseApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private ChangeService changeService; + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private ChangeService changeService; - @Override - public String getToken() { - return "change/pause"; - } + @Override + public String getToken() { + return "change/pause"; + } - @Override - public String getName() { - return "暂停变更"; - } + @Override + public String getName() { + return "nmca.changepauseapi.getname"; + } - @Override - public String getConfig() { - return null; - } + @Override + public String getConfig() { + return null; + } - @Input({ - @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "变更id"), - @Param(name = "content", type = ApiParamType.STRING, desc = "描述"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "变更暂停接口") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeId = jsonObj.getLong("changeId"); - ChangeVo changeVo = changeMapper.getChangeById(changeId); - if(changeMapper.checkChangeIsExists(changeId) == 0) { - throw new ChangeNotFoundException(changeId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeId); - String owner = changeMapper.getChangeUserByChangeId(changeId); - if(StringUtils.isNotBlank(owner)) { - changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); - } - changeVo.setChangeStepList(changeMapper.getChangeStepListByChangeId(changeId)); - if(!changeService.isPauseableChange(changeVo)) { - throw new ChangeNoPermissionException(ChangeOperationType.PAUSECHANGE.getText()); - } - /** 暂停变更时,将变更状态设置为“已取消”,变更步骤状态不变 **/ - changeVo.setStatus(ChangeStatus.PAUSED.getValue()); - changeMapper.updateChangeStatus(changeVo); + @Input({ + @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changeid"), + @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changepauseapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeId = jsonObj.getLong("changeId"); + ChangeVo changeVo = changeMapper.getChangeById(changeId); + if (changeMapper.checkChangeIsExists(changeId) == 0) { + throw new ChangeNotFoundException(changeId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeId); + String owner = changeMapper.getChangeUserByChangeId(changeId); + if (StringUtils.isNotBlank(owner)) { + changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); + } + changeVo.setChangeStepList(changeMapper.getChangeStepListByChangeId(changeId)); + if (!changeService.isPauseableChange(changeVo)) { + throw new ChangeNoPermissionException(ChangeOperationType.PAUSECHANGE.getText()); + } + /** 暂停变更时,将变更状态设置为“已取消”,变更步骤状态不变 **/ + changeVo.setStatus(ChangeStatus.PAUSED.getValue()); + changeMapper.updateChangeStatus(changeVo); - /** 生成活动 **/ - ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); - if(processTaskStepChangeVo == null) { - throw new ChangeHandleHasNotStartedException(); - } - IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); - ProcessTaskStepVo currentProcessTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepChangeVo.getProcessTaskStepId()); - String content = jsonObj.getString("content"); + /** 生成活动 **/ + ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); + if (processTaskStepChangeVo == null) { + throw new ChangeHandleHasNotStartedException(); + } + IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); + ProcessTaskStepVo currentProcessTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepChangeVo.getProcessTaskStepId()); + String content = jsonObj.getString("content"); /** 变更暂停提醒 **/ - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.saveStepRemind(currentProcessTaskStepVo, currentProcessTaskStepVo.getId(), content, ChangeRemindType.PAUSECHANGE); - jsonObj.remove("content"); - jsonObj.put(ProcessTaskAuditDetailType.CAUSE.getParamName(), content); - currentProcessTaskStepVo.getParamObj().putAll(jsonObj); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.PAUSECHANGE); - processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.PAUSECHANGE); - processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.PAUSECHANGE); - return null; - } + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.saveStepRemind(currentProcessTaskStepVo, currentProcessTaskStepVo.getId(), content, ChangeRemindType.PAUSECHANGE); + jsonObj.remove("content"); + jsonObj.put(ProcessTaskAuditDetailType.CAUSE.getParamName(), content); + currentProcessTaskStepVo.getParamObj().putAll(jsonObj); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.PAUSECHANGE); + processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.PAUSECHANGE); + processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.PAUSECHANGE); + return null; + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangeRecoverApi.java b/src/main/java/neatlogic/module/change/api/ChangeRecoverApi.java index 324546a..6c4efcd 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeRecoverApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeRecoverApi.java @@ -30,88 +30,89 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + @Service @Transactional @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangeRecoverApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private ChangeService changeService; + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private ChangeService changeService; + + @Override + public String getToken() { + return "change/recover"; + } - @Override - public String getToken() { - return "change/recover"; - } + @Override + public String getName() { + return "nmca.changerecoverapi.getname"; + } - @Override - public String getName() { - return "恢复变更"; - } + @Override + public String getConfig() { + return null; + } - @Override - public String getConfig() { - return null; - } + @Input({ + @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changeid"), + @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changerecoverapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeId = jsonObj.getLong("changeId"); + ChangeVo changeVo = changeMapper.getChangeById(changeId); + if (changeVo == null) { + throw new ChangeNotFoundException(changeId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeId); - @Input({ - @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "变更id"), - @Param(name = "content", type = ApiParamType.STRING, desc = "描述"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "恢复变更") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeId = jsonObj.getLong("changeId"); - ChangeVo changeVo = changeMapper.getChangeById(changeId); - if(changeVo == null) { - throw new ChangeNotFoundException(changeId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeId); - - String owner = changeMapper.getChangeUserByChangeId(changeId); - if(StringUtils.isNotBlank(owner)) { - changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); - } - changeVo.setChangeStepList(changeMapper.getChangeStepListByChangeId(changeId)); - if(!changeService.isRecoverableChange(changeVo)) { - throw new ChangeNoPermissionException(ChangeOperationType.RECOVERCHANGE.getText()); - } - /** 恢复变更时,将变更状态设置为“处理中” **/ - changeVo.setStatus(ChangeStatus.RUNNING.getValue()); - changeMapper.recoverChangeStatus(changeVo); - - /** 如果是变更步骤处理人暂停变更,将对应的变更步骤状态恢复 **/ - Long changeStepId = changeMapper.getChangeStepPauseOperateChangeStepIdByChangeId(changeId); - if(changeStepId != null) { - ChangeStepVo changeStepVo = changeMapper.getChangeStepById(changeStepId); - if(changeStepVo.getStartTime() != null) { - changeStepVo.setStatus(ChangeStatus.RUNNING.getValue()); - }else { - changeStepVo.setStatus(ChangeStatus.PENDING.getValue()); - } + String owner = changeMapper.getChangeUserByChangeId(changeId); + if (StringUtils.isNotBlank(owner)) { + changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); + } + changeVo.setChangeStepList(changeMapper.getChangeStepListByChangeId(changeId)); + if (!changeService.isRecoverableChange(changeVo)) { + throw new ChangeNoPermissionException(ChangeOperationType.RECOVERCHANGE.getText()); + } + /** 恢复变更时,将变更状态设置为“处理中” **/ + changeVo.setStatus(ChangeStatus.RUNNING.getValue()); + changeMapper.recoverChangeStatus(changeVo); + + /** 如果是变更步骤处理人暂停变更,将对应的变更步骤状态恢复 **/ + Long changeStepId = changeMapper.getChangeStepPauseOperateChangeStepIdByChangeId(changeId); + if (changeStepId != null) { + ChangeStepVo changeStepVo = changeMapper.getChangeStepById(changeStepId); + if (changeStepVo.getStartTime() != null) { + changeStepVo.setStatus(ChangeStatus.RUNNING.getValue()); + } else { + changeStepVo.setStatus(ChangeStatus.PENDING.getValue()); + } changeMapper.updateChangeStepStatus(changeStepVo); changeMapper.deleteChangeStepPauseOperateByChangeId(changeId); - } - - /** 生成活动 **/ - ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); - if(processTaskStepChangeVo == null) { - throw new ChangeHandleHasNotStartedException(); - } - IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); - ProcessTaskStepVo currentProcessTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepChangeVo.getProcessTaskStepId()); - currentProcessTaskStepVo.getParamObj().putAll(jsonObj); - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.RECOVERCHANGE); - processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.RECOVERCHANGE); - processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.RECOVERCHANGE); - processTaskCrossoverMapper.deleteProcessTaskStepRemind(new ProcessTaskStepRemindVo(processTaskStepChangeVo.getProcessTaskStepId(), ChangeRemindType.PAUSECHANGE.getValue())); - return null; - } + } + + /** 生成活动 **/ + ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); + if (processTaskStepChangeVo == null) { + throw new ChangeHandleHasNotStartedException(); + } + IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); + ProcessTaskStepVo currentProcessTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepChangeVo.getProcessTaskStepId()); + currentProcessTaskStepVo.getParamObj().putAll(jsonObj); + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.RECOVERCHANGE); + processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.RECOVERCHANGE); + processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.RECOVERCHANGE); + processTaskCrossoverMapper.deleteProcessTaskStepRemind(new ProcessTaskStepRemindVo(processTaskStepChangeVo.getProcessTaskStepId(), ChangeRemindType.PAUSECHANGE.getValue())); + return null; + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangeRestartApi.java b/src/main/java/neatlogic/module/change/api/ChangeRestartApi.java index 164c9b6..a52a329 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeRestartApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeRestartApi.java @@ -47,95 +47,96 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + @Service @Transactional @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangeRestartApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private ChangeService changeService; - - @Override - public String getToken() { - return "change/restart"; - } - - @Override - public String getName() { - return "重新开始变更"; - } - - @Override - public String getConfig() { - return null; - } - - @Input({ - @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "变更id"), - @Param(name = "content", type = ApiParamType.STRING, desc = "描述"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "重新开始变更") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeId = jsonObj.getLong("changeId"); - ChangeVo changeVo = changeMapper.getChangeById(changeId); - if(changeVo == null) { - throw new ChangeNotFoundException(changeId); - } - /* 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeId); - - String owner = changeMapper.getChangeUserByChangeId(changeId); - if(StringUtils.isNotBlank(owner)) { - changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); - } - changeVo.setChangeStepList(changeMapper.getChangeStepListByChangeId(changeId)); - if(!changeService.isRestartableChange(changeVo)) { - throw new ChangeNoPermissionException(ChangeOperationType.RESTARTCHANGE.getText()); - } - /** 重新开始变更时,将变更状态设置为“待处理”,变更步骤状态设置为“待处理”,is_active为0 **/ - changeVo.setStatus(ChangeStatus.PENDING.getValue()); - changeMapper.updateChangeStatus(changeVo); - - ChangeStepVo changeStepVo = new ChangeStepVo(); - changeStepVo.setAutoGenerateId(false); - changeStepVo.setChangeId(changeId); - changeStepVo.setStatus(ChangeStatus.PENDING.getValue()); - changeStepVo.setIsActive(0); - changeMapper.updateChangeStepStatus(changeStepVo); - changeMapper.updateChangeStepIsActive(changeStepVo); - /** 将变更状态设置为“处理中” **/ - changeVo.setStatus(ChangeStatus.RUNNING.getValue()); - changeMapper.updateChangeStatus(changeVo); - - /** 重新开始变更时,触发激活变更步骤 **/ - changeService.activeChangeStep(changeId); - - /** 重新开始变更时,触发更新processtask_step_worker和processtask_step_user数据 **/ - ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); - if (processTaskStepChangeVo == null) { - throw new ChangeHandleHasNotStartedException(); - } - IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); - if (processStepUtilHandler == null) { - throw new ProcessStepUtilHandlerNotFoundException(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); - } - processStepUtilHandler.updateProcessTaskStepUserAndWorker(processTaskStepChangeVo.getProcessTaskId(), processTaskStepChangeVo.getProcessTaskStepId()); - IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); - /** 生成活动 **/ - ProcessTaskStepVo currentProcessTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepChangeVo.getProcessTaskStepId()); - currentProcessTaskStepVo.getParamObj().putAll(jsonObj); - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.RESTARTCHANGE); - processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.RESTARTCHANGE); - processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.RESTARTCHANGE); - processTaskCrossoverMapper.deleteProcessTaskStepRemind(new ProcessTaskStepRemindVo(processTaskStepChangeVo.getProcessTaskStepId(), ChangeRemindType.PAUSECHANGE.getValue())); - return null; - } + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private ChangeService changeService; + + @Override + public String getToken() { + return "change/restart"; + } + + @Override + public String getName() { + return "nmca.changerestartapi.getname"; + } + + @Override + public String getConfig() { + return null; + } + + @Input({ + @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changeid"), + @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changerestartapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeId = jsonObj.getLong("changeId"); + ChangeVo changeVo = changeMapper.getChangeById(changeId); + if (changeVo == null) { + throw new ChangeNotFoundException(changeId); + } + /* 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeId); + + String owner = changeMapper.getChangeUserByChangeId(changeId); + if (StringUtils.isNotBlank(owner)) { + changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); + } + changeVo.setChangeStepList(changeMapper.getChangeStepListByChangeId(changeId)); + if (!changeService.isRestartableChange(changeVo)) { + throw new ChangeNoPermissionException(ChangeOperationType.RESTARTCHANGE.getText()); + } + /** 重新开始变更时,将变更状态设置为“待处理”,变更步骤状态设置为“待处理”,is_active为0 **/ + changeVo.setStatus(ChangeStatus.PENDING.getValue()); + changeMapper.updateChangeStatus(changeVo); + + ChangeStepVo changeStepVo = new ChangeStepVo(); + changeStepVo.setAutoGenerateId(false); + changeStepVo.setChangeId(changeId); + changeStepVo.setStatus(ChangeStatus.PENDING.getValue()); + changeStepVo.setIsActive(0); + changeMapper.updateChangeStepStatus(changeStepVo); + changeMapper.updateChangeStepIsActive(changeStepVo); + /** 将变更状态设置为“处理中” **/ + changeVo.setStatus(ChangeStatus.RUNNING.getValue()); + changeMapper.updateChangeStatus(changeVo); + + /** 重新开始变更时,触发激活变更步骤 **/ + changeService.activeChangeStep(changeId); + + /** 重新开始变更时,触发更新processtask_step_worker和processtask_step_user数据 **/ + ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); + if (processTaskStepChangeVo == null) { + throw new ChangeHandleHasNotStartedException(); + } + IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); + if (processStepUtilHandler == null) { + throw new ProcessStepUtilHandlerNotFoundException(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); + } + processStepUtilHandler.updateProcessTaskStepUserAndWorker(processTaskStepChangeVo.getProcessTaskId(), processTaskStepChangeVo.getProcessTaskStepId()); + IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); + /** 生成活动 **/ + ProcessTaskStepVo currentProcessTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepChangeVo.getProcessTaskStepId()); + currentProcessTaskStepVo.getParamObj().putAll(jsonObj); + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.RESTARTCHANGE); + processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.RESTARTCHANGE); + processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.RESTARTCHANGE); + processTaskCrossoverMapper.deleteProcessTaskStepRemind(new ProcessTaskStepRemindVo(processTaskStepChangeVo.getProcessTaskStepId(), ChangeRemindType.PAUSECHANGE.getValue())); + return null; + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangeStartApi.java b/src/main/java/neatlogic/module/change/api/ChangeStartApi.java index 971bc28..9ffc828 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStartApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStartApi.java @@ -21,57 +21,58 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + @Service @Transactional @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangeStartApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private ChangeService changeService; - - @Override - public String getToken() { - return "change/start"; - } + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private ChangeService changeService; + + @Override + public String getToken() { + return "change/start"; + } - @Override - public String getName() { - return "开始变更"; - } + @Override + public String getName() { + return "nmca.changestartapi.getname"; + } - @Override - public String getConfig() { - return null; - } + @Override + public String getConfig() { + return null; + } - @Input({ - @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "变更id"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "开始变更") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeId = jsonObj.getLong("changeId"); - ChangeVo changeVo = changeMapper.getChangeById(changeId); - if(changeVo == null) { - throw new ChangeNotFoundException(changeId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeId); - String owner = changeMapper.getChangeUserByChangeId(changeId); - if(StringUtils.isNotBlank(owner)) { - changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); - } - if(!changeService.isStartableChange(changeVo)) { - throw new ChangeNoPermissionException(ChangeOperationType.STARTCHANGE.getText()); - } - /** 开始变更 **/ - changeService.startChangeById(changeId, jsonObj.getString("source")); - return null; - } + @Input({ + @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changeid"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changestartapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeId = jsonObj.getLong("changeId"); + ChangeVo changeVo = changeMapper.getChangeById(changeId); + if (changeVo == null) { + throw new ChangeNotFoundException(changeId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeId); + String owner = changeMapper.getChangeUserByChangeId(changeId); + if (StringUtils.isNotBlank(owner)) { + changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); + } + if (!changeService.isStartableChange(changeVo)) { + throw new ChangeNoPermissionException(ChangeOperationType.STARTCHANGE.getText()); + } + /** 开始变更 **/ + changeService.startChangeById(changeId, jsonObj.getString("source")); + return null; + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangeStepAbortApi.java b/src/main/java/neatlogic/module/change/api/ChangeStepAbortApi.java index 1e74ea5..850e1d6 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStepAbortApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStepAbortApi.java @@ -51,7 +51,7 @@ public class ChangeStepAbortApi extends PrivateApiComponentBase { @Override public String getName() { - return "取消变更步骤"; + return "nmca.changestepabortapi.getname"; } @Override @@ -60,12 +60,12 @@ public class ChangeStepAbortApi extends PrivateApiComponentBase { } @Input({ - @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "变更步骤id"), - @Param(name = "changeAction", type = ApiParamType.ENUM, rule = "pausechange,abortchangestep", desc = "暂停变更或取消变更步骤"),//TODO linbq isRequired = true, - @Param(name = "content", type = ApiParamType.STRING, isRequired = true, minLength = 1, desc = "描述"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") + @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changestepid"), + @Param(name = "changeAction", type = ApiParamType.ENUM, rule = "pausechange,abortchangestep", desc = "common.actiontype", help = "暂停变更或取消变更步骤"),//TODO linbq isRequired = true, + @Param(name = "content", type = ApiParamType.STRING, isRequired = true, minLength = 1, desc = "common.content"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") }) - @Description(desc = "取消变更步骤") + @Description(desc = "nmca.changestepabortapi.getname") @Override public Object myDoService(JSONObject jsonObj) throws Exception { Long changeStepId = jsonObj.getLong("changeStepId"); @@ -140,7 +140,7 @@ public class ChangeStepAbortApi extends PrivateApiComponentBase { /** 判断所有变更步骤是否都完成了 **/ List changeStepList = changeMapper.getChangeStepListByChangeId(changeStep.getChangeId()); - if(CollectionUtils.isNotEmpty(changeStepList)){ + if (CollectionUtils.isNotEmpty(changeStepList)) { for (ChangeStepVo changeStepVo : changeStepList) { if (!changeStepVo.getStatus().equals(ChangeStatus.SUCCEED.getValue()) && !changeStepVo.getStatus().equals(ChangeStatus.ABORTED.getValue())) { return null; diff --git a/src/main/java/neatlogic/module/change/api/ChangeStepCommentApi.java b/src/main/java/neatlogic/module/change/api/ChangeStepCommentApi.java index aa3449b..4e9d96c 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStepCommentApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStepCommentApi.java @@ -30,111 +30,112 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; + @Service @Transactional @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangeStepCommentApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private FileMapper fileMapper; - - @Autowired - private ChangeService changeService; - - @Override - public String getToken() { - return "change/step/comment"; - } - - @Override - public String getName() { - return "回复变更步骤"; - } - - @Override - public String getConfig() { - return null; - } - - @Input({ - @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "变更步骤id"), - @Param(name = "content", type = ApiParamType.STRING, desc = "描述"), - @Param(name = "fileIdList", type=ApiParamType.JSONARRAY, desc = "附件id列表"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Output({ - @Param(name = "id", type = ApiParamType.LONG, desc = "回复id") - }) - @Description(desc = "回复变更步骤") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeStepId = jsonObj.getLong("changeStepId"); - ChangeStepVo changeStep = changeMapper.getChangeStepById(changeStepId); - if(changeStep == null) { - throw new ChangeStepNotFoundException(changeStepId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeStep.getChangeId()); - - ChangeVo changeVo = changeMapper.getChangeById(changeStep.getChangeId()); - changeService.getChangeStepDetail(changeStep); - if(!changeService.isCommentableChangeStep(changeVo, changeStep)) { - throw new ChangeNoPermissionException(ChangeOperationType.COMMENTCHANGESTEP.getText()); - } - - ChangeStepCommentVo comment = null; - - /** 描述内容 **/ - String content = jsonObj.getString("content"); - if (StringUtils.isNotBlank(content)) { - comment = new ChangeStepCommentVo(); - ChangeContentVo contentVo = new ChangeContentVo(content); - changeMapper.replaceChangeContent(contentVo); - comment.setContentHash(contentVo.getHash()); - } - /** 附件 **/ - List fileIdList = JSON.parseArray(JSON.toJSONString(jsonObj.getJSONArray("fileIdList")), Long.class); - if(CollectionUtils.isNotEmpty(fileIdList)) { - for(Long fileId : fileIdList) { - if(fileMapper.getFileById(fileId) == null) { - throw new FileNotFoundException(fileId); - } - changeMapper.insertChangeStepFile(new ChangeStepFileVo(changeStep.getChangeId(), changeStepId, fileId)); - } - if(comment == null) { - comment = new ChangeStepCommentVo(); - } - ChangeContentVo fileContent = new ChangeContentVo(JSON.toJSONString(fileIdList)); - changeMapper.replaceChangeContent(fileContent); - comment.setFileIdListHash(fileContent.getHash()); - } - if(comment != null) { - comment.setChangeId(changeStep.getChangeId()); - comment.setChangeStepId(changeStepId); - comment.setFcu(UserContext.get().getUserUuid(true)); - changeMapper.insertChangeStepComment(comment); - } - - /** 生成活动 **/ - ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeStep.getChangeId()); - if(processTaskStepChangeVo == null) { - throw new ChangeHandleHasNotStartedException(); - } - - ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); - currentProcessTaskStepVo.setProcessTaskId(processTaskStepChangeVo.getProcessTaskId()); - currentProcessTaskStepVo.setId(processTaskStepChangeVo.getProcessTaskStepId()); - currentProcessTaskStepVo.getParamObj().put("changeStepName", changeStep.getName()); - currentProcessTaskStepVo.getParamObj().putAll(jsonObj); - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.COMMENTCHANGESTEP); - processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.COMMENTCHANGESTEP); - processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.COMMENTCHANGESTEP); - return comment.getId(); - } + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private FileMapper fileMapper; + + @Autowired + private ChangeService changeService; + + @Override + public String getToken() { + return "change/step/comment"; + } + + @Override + public String getName() { + return "nmca.changestepcommentapi.getname"; + } + + @Override + public String getConfig() { + return null; + } + + @Input({ + @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changestepid"), + @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "fileIdList", type = ApiParamType.JSONARRAY, desc = "common.fileidlist"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Output({ + @Param(name = "id", type = ApiParamType.LONG, desc = "common.id") + }) + @Description(desc = "nmca.changestepcommentapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeStepId = jsonObj.getLong("changeStepId"); + ChangeStepVo changeStep = changeMapper.getChangeStepById(changeStepId); + if (changeStep == null) { + throw new ChangeStepNotFoundException(changeStepId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeStep.getChangeId()); + + ChangeVo changeVo = changeMapper.getChangeById(changeStep.getChangeId()); + changeService.getChangeStepDetail(changeStep); + if (!changeService.isCommentableChangeStep(changeVo, changeStep)) { + throw new ChangeNoPermissionException(ChangeOperationType.COMMENTCHANGESTEP.getText()); + } + + ChangeStepCommentVo comment = null; + + /** 描述内容 **/ + String content = jsonObj.getString("content"); + if (StringUtils.isNotBlank(content)) { + comment = new ChangeStepCommentVo(); + ChangeContentVo contentVo = new ChangeContentVo(content); + changeMapper.replaceChangeContent(contentVo); + comment.setContentHash(contentVo.getHash()); + } + /** 附件 **/ + List fileIdList = JSON.parseArray(JSON.toJSONString(jsonObj.getJSONArray("fileIdList")), Long.class); + if (CollectionUtils.isNotEmpty(fileIdList)) { + for (Long fileId : fileIdList) { + if (fileMapper.getFileById(fileId) == null) { + throw new FileNotFoundException(fileId); + } + changeMapper.insertChangeStepFile(new ChangeStepFileVo(changeStep.getChangeId(), changeStepId, fileId)); + } + if (comment == null) { + comment = new ChangeStepCommentVo(); + } + ChangeContentVo fileContent = new ChangeContentVo(JSON.toJSONString(fileIdList)); + changeMapper.replaceChangeContent(fileContent); + comment.setFileIdListHash(fileContent.getHash()); + } + if (comment != null) { + comment.setChangeId(changeStep.getChangeId()); + comment.setChangeStepId(changeStepId); + comment.setFcu(UserContext.get().getUserUuid(true)); + changeMapper.insertChangeStepComment(comment); + } + + /** 生成活动 **/ + ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeStep.getChangeId()); + if (processTaskStepChangeVo == null) { + throw new ChangeHandleHasNotStartedException(); + } + + ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); + currentProcessTaskStepVo.setProcessTaskId(processTaskStepChangeVo.getProcessTaskId()); + currentProcessTaskStepVo.setId(processTaskStepChangeVo.getProcessTaskStepId()); + currentProcessTaskStepVo.getParamObj().put("changeStepName", changeStep.getName()); + currentProcessTaskStepVo.getParamObj().putAll(jsonObj); + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.COMMENTCHANGESTEP); + processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.COMMENTCHANGESTEP); + processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.COMMENTCHANGESTEP); + return comment.getId(); + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangeStepCommentDeleteApi.java b/src/main/java/neatlogic/module/change/api/ChangeStepCommentDeleteApi.java index 1cb0912..0b3d479 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStepCommentDeleteApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStepCommentDeleteApi.java @@ -65,7 +65,7 @@ public class ChangeStepCommentDeleteApi extends PrivateApiComponentBase { @Override public String getName() { - return "删除变更步骤回复"; + return "nmca.changestepcommentdeleteapi.getname"; } @Override @@ -74,10 +74,10 @@ public class ChangeStepCommentDeleteApi extends PrivateApiComponentBase { } @Input({ - @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "回复id"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") + @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "common.id"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") }) - @Description(desc = "删除变更步骤回复") + @Description(desc = "nmca.changestepcommentdeleteapi.getname") @Override public Object myDoService(JSONObject jsonObj) throws Exception { Long id = jsonObj.getLong("id"); diff --git a/src/main/java/neatlogic/module/change/api/ChangeStepCommentEditApi.java b/src/main/java/neatlogic/module/change/api/ChangeStepCommentEditApi.java index 251ba35..f55f35e 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStepCommentEditApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStepCommentEditApi.java @@ -70,7 +70,7 @@ public class ChangeStepCommentEditApi extends PrivateApiComponentBase { @Override public String getName() { - return "编辑变更步骤回复"; + return "nmca.changestepcommenteditapi.getname"; } @Override @@ -79,12 +79,12 @@ public class ChangeStepCommentEditApi extends PrivateApiComponentBase { } @Input({ - @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "回复id"), - @Param(name = "content", type = ApiParamType.STRING, desc = "描述"), - @Param(name = "fileIdList", type = ApiParamType.JSONARRAY, desc = "附件id列表"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") + @Param(name = "id", type = ApiParamType.LONG, isRequired = true, desc = "common.id"), + @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "fileIdList", type = ApiParamType.JSONARRAY, desc = "common.fileidlist"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") }) - @Description(desc = "编辑变更步骤回复") + @Description(desc = "nmca.changestepcommenteditapi.getname") @Override public Object myDoService(JSONObject jsonObj) throws Exception { Long id = jsonObj.getLong("id"); diff --git a/src/main/java/neatlogic/module/change/api/ChangeStepCompleteApi.java b/src/main/java/neatlogic/module/change/api/ChangeStepCompleteApi.java index 3fb28e5..39b1a54 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStepCompleteApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStepCompleteApi.java @@ -51,7 +51,7 @@ public class ChangeStepCompleteApi extends PrivateApiComponentBase { @Override public String getName() { - return "完成变更步骤"; + return "nmca.changestepcompleteapi.getname"; } @Override @@ -60,11 +60,11 @@ public class ChangeStepCompleteApi extends PrivateApiComponentBase { } @Input({ - @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "变更步骤id"), - @Param(name = "content", type = ApiParamType.STRING, desc = "描述"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") + @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changestepid"), + @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") }) - @Description(desc = "完成变更步骤") + @Description(desc = "nmca.changestepcompleteapi.getname") @Override public Object myDoService(JSONObject jsonObj) throws Exception { Long changeStepId = jsonObj.getLong("changeStepId"); @@ -110,7 +110,7 @@ public class ChangeStepCompleteApi extends PrivateApiComponentBase { /** 判断所有变更步骤是否都完成了 **/ List changeStepList = changeMapper.getChangeStepListByChangeId(changeStep.getChangeId()); - if(CollectionUtils.isNotEmpty(changeStepList)){ + if (CollectionUtils.isNotEmpty(changeStepList)) { for (ChangeStepVo changeStepVo : changeStepList) { if (!changeStepVo.getStatus().equals(ChangeStatus.SUCCEED.getValue()) && !changeStepVo.getStatus().equals(ChangeStatus.ABORTED.getValue())) { return null; diff --git a/src/main/java/neatlogic/module/change/api/ChangeStepStartApi.java b/src/main/java/neatlogic/module/change/api/ChangeStepStartApi.java index 88c49a1..8a7f86a 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStepStartApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStepStartApi.java @@ -29,98 +29,99 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + @Service @Transactional @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangeStepStartApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private ChangeService changeService; + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private ChangeService changeService; - @Override - public String getToken() { - return "change/step/start"; - } + @Override + public String getToken() { + return "change/step/start"; + } - @Override - public String getName() { - return "开始变更步骤"; - } + @Override + public String getName() { + return "nmca.changestepstartapi.getname"; + } - @Override - public String getConfig() { - return null; - } + @Override + public String getConfig() { + return null; + } - @Input({ - @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "变更步骤id"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "开始变更步骤") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeStepId = jsonObj.getLong("changeStepId"); - ChangeStepVo changeStep = changeMapper.getChangeStepById(changeStepId); - if(changeMapper.checkChangeStepIsExists(changeStepId) == 0) { - throw new ChangeStepNotFoundException(changeStepId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeStep.getChangeId()); - ChangeVo changeVo = changeMapper.getChangeById(changeStep.getChangeId()); + @Input({ + @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changestepid"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changestepstartapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeStepId = jsonObj.getLong("changeStepId"); + ChangeStepVo changeStep = changeMapper.getChangeStepById(changeStepId); + if (changeMapper.checkChangeStepIsExists(changeStepId) == 0) { + throw new ChangeStepNotFoundException(changeStepId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeStep.getChangeId()); + ChangeVo changeVo = changeMapper.getChangeById(changeStep.getChangeId()); // changeService.getChangeStepDetail(changeStep); - boolean workerIsTeam = false; - /** 处理人或组 **/ - ChangeStepUserVo changeStepUserVo = changeMapper.getChangeStepUserByChangeStepId(changeStep.getId()); - if(changeStepUserVo != null && StringUtils.isNotBlank(changeStepUserVo.getUserVo().getUuid())) { - changeStep.setWorker(GroupSearch.USER.getValuePlugin() + changeStepUserVo.getUserVo().getUuid()); - }else { - ChangeStepTeamVo changeStepTeamVo = changeMapper.getChangeStepTeamByChangeStepId(changeStep.getId()); - if(changeStepTeamVo != null && StringUtils.isNotBlank(changeStepTeamVo.getTeamUuid())) { - workerIsTeam = true; - changeStep.setWorker(GroupSearch.TEAM.getValuePlugin() + changeStepTeamVo.getTeamUuid()); - } - } - if(!changeService.isStartableChangeStep(changeVo, changeStep)) { - throw new ChangeNoPermissionException(ChangeOperationType.STARTCHANGESTEP.getText()); - } - - /** 开始变更步骤时,将变更步骤状态设置为“处理中” **/ - changeStep.setId(changeStepId); - changeStep.setStatus(ChangeStatus.RUNNING.getValue()); - changeMapper.updateChangeStepStatus(changeStep); + boolean workerIsTeam = false; + /** 处理人或组 **/ + ChangeStepUserVo changeStepUserVo = changeMapper.getChangeStepUserByChangeStepId(changeStep.getId()); + if (changeStepUserVo != null && StringUtils.isNotBlank(changeStepUserVo.getUserVo().getUuid())) { + changeStep.setWorker(GroupSearch.USER.getValuePlugin() + changeStepUserVo.getUserVo().getUuid()); + } else { + ChangeStepTeamVo changeStepTeamVo = changeMapper.getChangeStepTeamByChangeStepId(changeStep.getId()); + if (changeStepTeamVo != null && StringUtils.isNotBlank(changeStepTeamVo.getTeamUuid())) { + workerIsTeam = true; + changeStep.setWorker(GroupSearch.TEAM.getValuePlugin() + changeStepTeamVo.getTeamUuid()); + } + } + if (!changeService.isStartableChangeStep(changeVo, changeStep)) { + throw new ChangeNoPermissionException(ChangeOperationType.STARTCHANGESTEP.getText()); + } + + /** 开始变更步骤时,将变更步骤状态设置为“处理中” **/ + changeStep.setId(changeStepId); + changeStep.setStatus(ChangeStatus.RUNNING.getValue()); + changeMapper.updateChangeStepStatus(changeStep); - /** 如果变更步骤开始之前是指定到处理组,当前用户点击开始之后,将处理组删掉,设置当前用户为处理人 **/ - if (workerIsTeam) { - changeMapper.deleteChangeStepTeamByChangeStepId(changeStepId); - changeMapper.insertChangeStepUser(new ChangeStepUserVo(changeStep.getChangeId(), changeStepId, UserContext.get().getUserUuid(true))); - } + /** 如果变更步骤开始之前是指定到处理组,当前用户点击开始之后,将处理组删掉,设置当前用户为处理人 **/ + if (workerIsTeam) { + changeMapper.deleteChangeStepTeamByChangeStepId(changeStepId); + changeMapper.insertChangeStepUser(new ChangeStepUserVo(changeStep.getChangeId(), changeStepId, UserContext.get().getUserUuid(true))); + } - /** 开始变更步骤时,触发更新processtask_step_worker和processtask_step_user数据 **/ - ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeStep.getChangeId()); - if (processTaskStepChangeVo == null) { - throw new ChangeHandleHasNotStartedException(); - } - IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); - if (processStepUtilHandler == null) { - throw new ProcessStepUtilHandlerNotFoundException(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); - } - processStepUtilHandler.updateProcessTaskStepUserAndWorker(processTaskStepChangeVo.getProcessTaskId(), processTaskStepChangeVo.getProcessTaskStepId()); + /** 开始变更步骤时,触发更新processtask_step_worker和processtask_step_user数据 **/ + ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeStep.getChangeId()); + if (processTaskStepChangeVo == null) { + throw new ChangeHandleHasNotStartedException(); + } + IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); + if (processStepUtilHandler == null) { + throw new ProcessStepUtilHandlerNotFoundException(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); + } + processStepUtilHandler.updateProcessTaskStepUserAndWorker(processTaskStepChangeVo.getProcessTaskId(), processTaskStepChangeVo.getProcessTaskStepId()); - /** 生成活动 **/ - ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); - currentProcessTaskStepVo.setProcessTaskId(processTaskStepChangeVo.getProcessTaskId()); - currentProcessTaskStepVo.setId(processTaskStepChangeVo.getProcessTaskStepId()); - currentProcessTaskStepVo.getParamObj().put("changeStepName", changeStep.getName()); - currentProcessTaskStepVo.getParamObj().putAll(jsonObj); - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.STARTCHANGESTEP); - processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.STARTCHANGESTEP); - processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.STARTCHANGESTEP); - return null; - } + /** 生成活动 **/ + ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); + currentProcessTaskStepVo.setProcessTaskId(processTaskStepChangeVo.getProcessTaskId()); + currentProcessTaskStepVo.setId(processTaskStepChangeVo.getProcessTaskStepId()); + currentProcessTaskStepVo.getParamObj().put("changeStepName", changeStep.getName()); + currentProcessTaskStepVo.getParamObj().putAll(jsonObj); + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.STARTCHANGESTEP); + processStepHandlerCrossoverUtil.notify(currentProcessTaskStepVo, ChangeTriggerType.STARTCHANGESTEP); + processStepHandlerCrossoverUtil.action(currentProcessTaskStepVo, ChangeTriggerType.STARTCHANGESTEP); + return null; + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangeStepUpdateApi.java b/src/main/java/neatlogic/module/change/api/ChangeStepUpdateApi.java index 8a07bf0..f9eaa04 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStepUpdateApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStepUpdateApi.java @@ -33,128 +33,129 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + @Service @Transactional @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangeStepUpdateApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private ChangeService changeService; + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private ChangeService changeService; + + @Override + public String getToken() { + return "change/step/update"; + } + + @Override + public String getName() { + return "nmca.changestepupdateapi.getname"; + } - @Override - public String getToken() { - return "change/step/update"; - } + @Override + public String getConfig() { + return null; + } - @Override - public String getName() { - return "更新变更步骤"; - } + @Input({ + @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "term.itsm.processtaskstepid"), + @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changestepid"), + @Param(name = "planStartDate", type = ApiParamType.STRING, desc = "common.planstartdate"), + @Param(name = "startTimeWindow", type = ApiParamType.STRING, desc = "common.starttimewindow"), + @Param(name = "endTimeWindow", type = ApiParamType.STRING, desc = "common.endtimewindow"), + @Param(name = "worker", type = ApiParamType.STRING, isRequired = true, minLength = 37, maxLength = 37, desc = "term.itsm.worker"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changestepupdateapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeStepId = jsonObj.getLong("changeStepId"); + ChangeStepVo changeStep = changeMapper.getChangeStepById(changeStepId); + if (changeStep == null) { + throw new ChangeStepNotFoundException(changeStepId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeStep.getChangeId()); + ChangeVo changeVo = changeMapper.getChangeById(changeStep.getChangeId()); + String owner = changeMapper.getChangeUserByChangeId(changeStep.getChangeId()); + if (StringUtils.isNotBlank(owner)) { + changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); + } + if (!changeService.isEditableChangeStep(changeVo, changeStep)) { + throw new ChangeNoPermissionException(ChangeOperationType.EDITCHANGESTEP.getText()); + } + /** 查出旧处理人或组 **/ + ChangeStepUserVo changeStepUserVo = changeMapper.getChangeStepUserByChangeStepId(changeStepId); + if (changeStepUserVo != null && StringUtils.isNotBlank(changeStepUserVo.getUserVo().getUuid())) { + changeStep.setWorker(GroupSearch.USER.getValuePlugin() + changeStepUserVo.getUserVo().getUuid()); + } else { + ChangeStepTeamVo changeStepTeamVo = changeMapper.getChangeStepTeamByChangeStepId(changeStepId); + if (changeStepTeamVo != null && StringUtils.isNotBlank(changeStepTeamVo.getTeamUuid())) { + changeStep.setWorker(GroupSearch.TEAM.getValuePlugin() + changeStepTeamVo.getTeamUuid()); + } + } - @Override - public String getConfig() { - return null; - } + ChangeStepVo changeStepVo = JSON.toJavaObject(jsonObj, ChangeStepVo.class); + /** 更新变更步骤计划起止时间和时间窗口 **/ + changeStepVo.setId(changeStepId); + String worker = changeStepVo.getWorker(); + if (!worker.startsWith(GroupSearch.USER.getValuePlugin()) && !worker.startsWith(GroupSearch.TEAM.getValuePlugin())) { + throw new ParamIrregularException("worker"); + } + boolean isUpdate = false; + if (!Objects.equal(changeStep.getWorker(), changeStepVo.getWorker())) { + isUpdate = true; + /** 删除旧变更步骤处理人或组**/ + changeMapper.deleteChangeStepUserByChangeStepId(changeStepId); + changeMapper.deleteChangeStepTeamByChangeStepId(changeStepId); + /** 更新变更步骤处理人或组 **/ + String[] split = worker.split("#"); + if (GroupSearch.USER.getValue().equals(split[0])) { + changeMapper.insertChangeStepUser(new ChangeStepUserVo(changeStep.getChangeId(), changeStepId, split[1])); + } else if (GroupSearch.TEAM.getValue().equals(split[0])) { + changeMapper.insertChangeStepTeam(new ChangeStepTeamVo(changeStep.getChangeId(), changeStepId, split[1])); + } + } else if (!Objects.equal(changeStep.getPlanStartDate(), changeStepVo.getPlanStartDate())) { + isUpdate = true; + } else if (!Objects.equal(changeStep.getStartTimeWindow(), changeStepVo.getStartTimeWindow())) { + isUpdate = true; + } else if (!Objects.equal(changeStep.getEndTimeWindow(), changeStepVo.getEndTimeWindow())) { + isUpdate = true; + } - @Input({ - @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "工单步骤id"), - @Param(name = "changeStepId", type = ApiParamType.LONG, isRequired = true, desc = "变更步骤id"), - @Param(name = "planStartDate", type = ApiParamType.STRING, desc = "计划开始日期"), - @Param(name = "startTimeWindow", type = ApiParamType.STRING, desc = "开始时间窗口"), - @Param(name = "endTimeWindow", type = ApiParamType.STRING, desc = "结束时间窗口"), - @Param(name = "worker", type = ApiParamType.STRING, isRequired = true, minLength = 37, maxLength = 37, desc = "处理人或组"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "更新变更步骤") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeStepId = jsonObj.getLong("changeStepId"); - ChangeStepVo changeStep = changeMapper.getChangeStepById(changeStepId); - if(changeStep == null) { - throw new ChangeStepNotFoundException(changeStepId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeStep.getChangeId()); - ChangeVo changeVo = changeMapper.getChangeById(changeStep.getChangeId()); - String owner = changeMapper.getChangeUserByChangeId(changeStep.getChangeId()); - if(StringUtils.isNotBlank(owner)) { - changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); - } - if(!changeService.isEditableChangeStep(changeVo, changeStep)) { - throw new ChangeNoPermissionException(ChangeOperationType.EDITCHANGESTEP.getText()); - } - /** 查出旧处理人或组 **/ - ChangeStepUserVo changeStepUserVo = changeMapper.getChangeStepUserByChangeStepId(changeStepId); - if(changeStepUserVo != null && StringUtils.isNotBlank(changeStepUserVo.getUserVo().getUuid())) { - changeStep.setWorker(GroupSearch.USER.getValuePlugin() + changeStepUserVo.getUserVo().getUuid()); - }else { - ChangeStepTeamVo changeStepTeamVo = changeMapper.getChangeStepTeamByChangeStepId(changeStepId); - if(changeStepTeamVo != null && StringUtils.isNotBlank(changeStepTeamVo.getTeamUuid())) { - changeStep.setWorker(GroupSearch.TEAM.getValuePlugin() + changeStepTeamVo.getTeamUuid()); - } - } + if (isUpdate) { + changeMapper.updateChangeStepById(changeStepVo); + ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); + ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeStep.getChangeId()); + if (processTaskStepChangeVo != null) { + currentProcessTaskStepVo.setProcessTaskId(processTaskStepChangeVo.getProcessTaskId()); + if (Objects.equal(changeStep.getIsActive(), 1)) { + IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); + if (processStepUtilHandler == null) { + throw new ProcessStepUtilHandlerNotFoundException(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); + } + /** 更新变更步骤处理人时,触发更新processtask_step_worker和processtask_step_user数据 **/ + processStepUtilHandler.updateProcessTaskStepUserAndWorker(processTaskStepChangeVo.getProcessTaskId(), processTaskStepChangeVo.getProcessTaskStepId()); + } + } else { + Long processTaskId = changeMapper.getProcessTaskIdByChangeId(changeStep.getChangeId()); + currentProcessTaskStepVo.setProcessTaskId(processTaskId); + } + Long currentProcessTaskStepId = jsonObj.getLong("processTaskStepId"); + currentProcessTaskStepVo.setId(currentProcessTaskStepId); + /** 生成活动 **/ + currentProcessTaskStepVo.getParamObj().put("changeStepName", changeStep.getName()); + currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.CHANGESTEPINFO.getParamName(), JSON.toJSONString(changeStepVo)); + currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.CHANGESTEPINFO.getOldDataParamName(), JSON.toJSONString(changeStep)); + currentProcessTaskStepVo.getParamObj().put("source", jsonObj.getString("source")); + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.EDITCHANGESTEP); + } - ChangeStepVo changeStepVo = JSON.toJavaObject(jsonObj, ChangeStepVo.class); - /** 更新变更步骤计划起止时间和时间窗口 **/ - changeStepVo.setId(changeStepId); - String worker = changeStepVo.getWorker(); - if(!worker.startsWith(GroupSearch.USER.getValuePlugin()) && !worker.startsWith(GroupSearch.TEAM.getValuePlugin())) { - throw new ParamIrregularException("worker"); - } - boolean isUpdate = false; - if(!Objects.equal(changeStep.getWorker(), changeStepVo.getWorker())) { - isUpdate = true; - /** 删除旧变更步骤处理人或组**/ - changeMapper.deleteChangeStepUserByChangeStepId(changeStepId); - changeMapper.deleteChangeStepTeamByChangeStepId(changeStepId); - /** 更新变更步骤处理人或组 **/ - String[] split = worker.split("#"); - if(GroupSearch.USER.getValue().equals(split[0])) { - changeMapper.insertChangeStepUser(new ChangeStepUserVo(changeStep.getChangeId(), changeStepId, split[1])); - }else if(GroupSearch.TEAM.getValue().equals(split[0])) { - changeMapper.insertChangeStepTeam(new ChangeStepTeamVo(changeStep.getChangeId(), changeStepId, split[1])); - } - }else if(!Objects.equal(changeStep.getPlanStartDate(), changeStepVo.getPlanStartDate())) { - isUpdate = true; - }else if(!Objects.equal(changeStep.getStartTimeWindow(), changeStepVo.getStartTimeWindow())) { - isUpdate = true; - }else if(!Objects.equal(changeStep.getEndTimeWindow(), changeStepVo.getEndTimeWindow())) { - isUpdate = true; - } - - if(isUpdate) { - changeMapper.updateChangeStepById(changeStepVo); - ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); - ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeStep.getChangeId()); - if(processTaskStepChangeVo != null) { - currentProcessTaskStepVo.setProcessTaskId(processTaskStepChangeVo.getProcessTaskId()); - if(Objects.equal(changeStep.getIsActive(), 1)) { - IProcessStepInternalHandler processStepUtilHandler = ProcessStepInternalHandlerFactory.getHandler(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); - if (processStepUtilHandler == null) { - throw new ProcessStepUtilHandlerNotFoundException(ChangeProcessStepHandlerType.CHANGEHANDLE.getHandler()); - } - /** 更新变更步骤处理人时,触发更新processtask_step_worker和processtask_step_user数据 **/ - processStepUtilHandler.updateProcessTaskStepUserAndWorker(processTaskStepChangeVo.getProcessTaskId(), processTaskStepChangeVo.getProcessTaskStepId()); - } - }else { - Long processTaskId = changeMapper.getProcessTaskIdByChangeId(changeStep.getChangeId()); - currentProcessTaskStepVo.setProcessTaskId(processTaskId); - } - Long currentProcessTaskStepId = jsonObj.getLong("processTaskStepId"); - currentProcessTaskStepVo.setId(currentProcessTaskStepId); - /** 生成活动 **/ - currentProcessTaskStepVo.getParamObj().put("changeStepName", changeStep.getName()); - currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.CHANGESTEPINFO.getParamName(), JSON.toJSONString(changeStepVo)); - currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.CHANGESTEPINFO.getOldDataParamName(), JSON.toJSONString(changeStep)); - currentProcessTaskStepVo.getParamObj().put("source", jsonObj.getString("source")); - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.EDITCHANGESTEP); - } - - return null; - } + return null; + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangeStepWorkerBatchUpdateApi.java b/src/main/java/neatlogic/module/change/api/ChangeStepWorkerBatchUpdateApi.java index bb0c088..f3d578e 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeStepWorkerBatchUpdateApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeStepWorkerBatchUpdateApi.java @@ -33,87 +33,88 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; + @Service @Transactional @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangeStepWorkerBatchUpdateApi extends PrivateApiComponentBase { - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private ChangeService changeService; + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private ChangeService changeService; + + @Override + public String getToken() { + return "change/step/worker/batchupdate"; + } + + @Override + public String getName() { + return "nmca.changestepworkerbatchupdateapi.getname"; + } + + @Override + public String getConfig() { + return null; + } - @Override - public String getToken() { - return "change/step/worker/batchupdate"; - } + @Input({ + @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "term.itsm.processtaskstepid"), + @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changeid"), + @Param(name = "worker", type = ApiParamType.STRING, isRequired = true, minLength = 37, maxLength = 37, desc = "term.itsm.worker"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changestepworkerbatchupdateapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeId = jsonObj.getLong("changeId"); + ChangeVo changeVo = changeMapper.getChangeById(changeId); + if (changeVo == null) { + throw new ChangeNotFoundException(changeId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeId); + String owner = changeMapper.getChangeUserByChangeId(changeId); + if (StringUtils.isNotBlank(owner)) { + changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); + } + if (!changeService.isBatchUpdateChangeStepWorker(changeVo)) { + throw new ChangeNoPermissionException(ChangeOperationType.BATCHEDITCHANGESTEPWORKER.getText()); + } - @Override - public String getName() { - return "批量更新变更步骤处理人"; - } + String worker = jsonObj.getString("worker"); + if (!worker.startsWith(GroupSearch.USER.getValuePlugin()) && !worker.startsWith(GroupSearch.TEAM.getValuePlugin())) { + throw new ParamIrregularException("worker"); + } + String[] split = worker.split("#"); + /** 更新所有变更步骤处理人或组 **/ + List changeStepList = changeMapper.getChangeStepListByChangeId(changeId); + if (CollectionUtils.isNotEmpty(changeStepList)) { + changeMapper.deleteChangeStepTeamByChangeId(changeId); + changeMapper.deleteChangeStepUserByChangeId(changeId); + for (ChangeStepVo changeStepVo : changeStepList) { + if (GroupSearch.USER.getValue().equals(split[0])) { + changeMapper.insertChangeStepUser(new ChangeStepUserVo(changeStepVo.getChangeId(), changeStepVo.getId(), split[1])); + } else if (GroupSearch.TEAM.getValue().equals(split[0])) { + changeMapper.insertChangeStepTeam(new ChangeStepTeamVo(changeStepVo.getChangeId(), changeStepVo.getId(), split[1])); + } + } + } - @Override - public String getConfig() { - return null; - } - - @Input({ - @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "工单步骤id"), - @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "变更id"), - @Param(name = "worker", type = ApiParamType.STRING, isRequired = true, minLength = 37, maxLength = 37, desc = "处理人或组"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "更新变更步骤") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeId = jsonObj.getLong("changeId"); - ChangeVo changeVo = changeMapper.getChangeById(changeId); - if(changeVo == null) { - throw new ChangeNotFoundException(changeId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeId); - String owner = changeMapper.getChangeUserByChangeId(changeId); - if(StringUtils.isNotBlank(owner)) { - changeVo.setOwner(GroupSearch.USER.getValuePlugin() + owner); - } - if(!changeService.isBatchUpdateChangeStepWorker(changeVo)) { - throw new ChangeNoPermissionException(ChangeOperationType.BATCHEDITCHANGESTEPWORKER.getText()); - } - - String worker = jsonObj.getString("worker"); - if(!worker.startsWith(GroupSearch.USER.getValuePlugin()) && !worker.startsWith(GroupSearch.TEAM.getValuePlugin())) { - throw new ParamIrregularException("worker"); - } - String[] split = worker.split("#"); - /** 更新所有变更步骤处理人或组 **/ - List changeStepList = changeMapper.getChangeStepListByChangeId(changeId); - if(CollectionUtils.isNotEmpty(changeStepList)) { - changeMapper.deleteChangeStepTeamByChangeId(changeId); - changeMapper.deleteChangeStepUserByChangeId(changeId); - for(ChangeStepVo changeStepVo : changeStepList) { - if(GroupSearch.USER.getValue().equals(split[0])) { - changeMapper.insertChangeStepUser(new ChangeStepUserVo(changeStepVo.getChangeId(), changeStepVo.getId(), split[1])); - }else if(GroupSearch.TEAM.getValue().equals(split[0])) { - changeMapper.insertChangeStepTeam(new ChangeStepTeamVo(changeStepVo.getChangeId(), changeStepVo.getId(), split[1])); - } - } - } - - Long processTaskId = changeMapper.getProcessTaskIdByChangeId(changeId); - ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); - currentProcessTaskStepVo.setProcessTaskId(processTaskId); - Long currentProcessTaskStepId = jsonObj.getLong("processTaskStepId"); - currentProcessTaskStepVo.setId(currentProcessTaskStepId); - /** 生成活动 **/ - currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.WORKER.getParamName(), worker); - currentProcessTaskStepVo.getParamObj().put("source", jsonObj.getString("source")); - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.BATCHEDITCHANGESTEPWORKER); - return null; - } + Long processTaskId = changeMapper.getProcessTaskIdByChangeId(changeId); + ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); + currentProcessTaskStepVo.setProcessTaskId(processTaskId); + Long currentProcessTaskStepId = jsonObj.getLong("processTaskStepId"); + currentProcessTaskStepVo.setId(currentProcessTaskStepId); + /** 生成活动 **/ + currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.WORKER.getParamName(), worker); + currentProcessTaskStepVo.getParamObj().put("source", jsonObj.getString("source")); + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.BATCHEDITCHANGESTEPWORKER); + return null; + } } diff --git a/src/main/java/neatlogic/module/change/api/ChangeUpdateApi.java b/src/main/java/neatlogic/module/change/api/ChangeUpdateApi.java index 882a06e..efc729a 100644 --- a/src/main/java/neatlogic/module/change/api/ChangeUpdateApi.java +++ b/src/main/java/neatlogic/module/change/api/ChangeUpdateApi.java @@ -66,108 +66,108 @@ import java.util.Objects; @AuthAction(action = PROCESS_BASE.class) @OperationType(type = OperationTypeEnum.OPERATE) public class ChangeUpdateApi extends PrivateApiComponentBase { - + private static Logger logger = LoggerFactory.getLogger(ChangeUpdateApi.class); - - @Autowired - private ChangeMapper changeMapper; - - @Autowired - private FileMapper fileMapper; - - @Autowired - private ChangeService changeService; - - @Autowired + + @Autowired + private ChangeMapper changeMapper; + + @Autowired + private FileMapper fileMapper; + + @Autowired + private ChangeService changeService; + + @Autowired private SchedulerManager schedulerManager; - @Override - public String getToken() { - return "change/update"; - } + @Override + public String getToken() { + return "change/update"; + } - @Override - public String getName() { - return "更新变更"; - } + @Override + public String getName() { + return "nmca.changeupdateapi.getname"; + } - @Override - public String getConfig() { - return null; - } - - @Input({ - @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "工单步骤id"), - @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "变更id"), - @Param(name = "planStartEndTime", type = ApiParamType.JSONARRAY, desc = "计划起止时间"), - @Param(name = "autoStart", type = ApiParamType.INTEGER, desc = "是否自动开始"), - @Param(name = "startTimeWindow", type = ApiParamType.STRING, desc = "开始时间窗口"), - @Param(name = "endTimeWindow", type = ApiParamType.STRING, desc = "结束时间窗口"), - @Param(name = "content", type = ApiParamType.STRING, desc = "变更描述"), - @Param(name = "fileIdList", type = ApiParamType.JSONARRAY, desc = "附件"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源") - }) - @Description(desc = "更新变更") - @Override - public Object myDoService(JSONObject jsonObj) throws Exception { - Long changeId = jsonObj.getLong("changeId"); - ChangeVo change = changeMapper.getChangeById(changeId); - if(change == null) { - throw new ChangeNotFoundException(changeId); - } - /** 获取当前变更锁 **/ - changeMapper.getChangeLockById(changeId); - String owner = changeMapper.getChangeUserByChangeId(changeId); - if(StringUtils.isNotBlank(owner)) { - change.setOwner(GroupSearch.USER.getValuePlugin() + owner); - } - if(!changeService.isEditableChange(change)) { - throw new ChangeNoPermissionException(ChangeOperationType.EDITCHANGE.getText()); - } + @Override + public String getConfig() { + return null; + } - ChangeVo newChangeVo = new ChangeVo(); - boolean isUpdateBaseInfo = false; + @Input({ + @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "term.itsm.processtaskstepid"), + @Param(name = "changeId", type = ApiParamType.LONG, isRequired = true, desc = "term.change.changeid"), + @Param(name = "planStartEndTime", type = ApiParamType.JSONARRAY, desc = "common.planstartendtime"), + @Param(name = "autoStart", type = ApiParamType.INTEGER, desc = "common.autostart"), + @Param(name = "startTimeWindow", type = ApiParamType.STRING, desc = "common.starttimewindow"), + @Param(name = "endTimeWindow", type = ApiParamType.STRING, desc = "common.endtimewindow"), + @Param(name = "content", type = ApiParamType.STRING, desc = "common.content"), + @Param(name = "fileIdList", type = ApiParamType.JSONARRAY, desc = "common.fileidlist"), + @Param(name = "source", type = ApiParamType.STRING, desc = "common.source") + }) + @Description(desc = "nmca.changeupdateapi.getname") + @Override + public Object myDoService(JSONObject jsonObj) throws Exception { + Long changeId = jsonObj.getLong("changeId"); + ChangeVo change = changeMapper.getChangeById(changeId); + if (change == null) { + throw new ChangeNotFoundException(changeId); + } + /** 获取当前变更锁 **/ + changeMapper.getChangeLockById(changeId); + String owner = changeMapper.getChangeUserByChangeId(changeId); + if (StringUtils.isNotBlank(owner)) { + change.setOwner(GroupSearch.USER.getValuePlugin() + owner); + } + if (!changeService.isEditableChange(change)) { + throw new ChangeNoPermissionException(ChangeOperationType.EDITCHANGE.getText()); + } + + ChangeVo newChangeVo = new ChangeVo(); + boolean isUpdateBaseInfo = false; Integer autoStart = jsonObj.getInteger("autoStart"); - if(autoStart != null && !Objects.equals(change.getAutoStart(), autoStart)) { + if (autoStart != null && !Objects.equals(change.getAutoStart(), autoStart)) { isUpdateBaseInfo = true; newChangeVo.setAutoStart(autoStart); } List planStartEndTime = JSON.parseArray(JSON.toJSONString(jsonObj.getJSONArray("planStartEndTime")), String.class); - if(planStartEndTime != null && !Objects.equals(change.getPlanStartEndTime(), planStartEndTime)) { - isUpdateBaseInfo = true; - newChangeVo.setPlanStartEndTime(planStartEndTime); - } - + if (planStartEndTime != null && !Objects.equals(change.getPlanStartEndTime(), planStartEndTime)) { + isUpdateBaseInfo = true; + newChangeVo.setPlanStartEndTime(planStartEndTime); + } + String startTimeWindow = jsonObj.getString("startTimeWindow"); - if(startTimeWindow != null && !Objects.equals(change.getStartTimeWindow(), startTimeWindow)) { - isUpdateBaseInfo = true; - newChangeVo.setStartTimeWindow(startTimeWindow); - newChangeVo.setEndTimeWindow(change.getEndTimeWindow()); - } + if (startTimeWindow != null && !Objects.equals(change.getStartTimeWindow(), startTimeWindow)) { + isUpdateBaseInfo = true; + newChangeVo.setStartTimeWindow(startTimeWindow); + newChangeVo.setEndTimeWindow(change.getEndTimeWindow()); + } String endTimeWindow = jsonObj.getString("endTimeWindow"); - if(endTimeWindow != null && !Objects.equals(change.getEndTimeWindow(), endTimeWindow)) { - isUpdateBaseInfo = true; - newChangeVo.setEndTimeWindow(endTimeWindow); - if(newChangeVo.getStartTimeWindow() == null) { - newChangeVo.setStartTimeWindow(change.getStartTimeWindow()); - } - } + if (endTimeWindow != null && !Objects.equals(change.getEndTimeWindow(), endTimeWindow)) { + isUpdateBaseInfo = true; + newChangeVo.setEndTimeWindow(endTimeWindow); + if (newChangeVo.getStartTimeWindow() == null) { + newChangeVo.setStartTimeWindow(change.getStartTimeWindow()); + } + } boolean isUpdate = false; - if(isUpdateBaseInfo) { + if (isUpdateBaseInfo) { isUpdate = true; newChangeVo.setId(changeId); changeMapper.updateChangeById(newChangeVo); - } + } String content = jsonObj.getString("content"); - if(content != null) { + if (content != null) { newChangeVo.setContent(content); String contentHash = changeMapper.getChangeDescriptionContentHashByChangeId(changeId); - if(StringUtils.isNotBlank(content)) { + if (StringUtils.isNotBlank(content)) { ChangeContentVo contentVo = new ChangeContentVo(newChangeVo.getContent()); - if(!Objects.equals(contentVo.getHash(), contentHash)) { - if(contentHash != null) { + if (!Objects.equals(contentVo.getHash(), contentHash)) { + if (contentHash != null) { change.setContent(changeMapper.getChangeContentByHash(contentHash)); changeMapper.deleteChangeDescriptionByChangeId(changeId); } @@ -175,109 +175,109 @@ public class ChangeUpdateApi extends PrivateApiComponentBase { changeMapper.insertChangeDescription(new ChangeDescriptionVo(changeId, contentVo.getHash())); isUpdate = true; } - }else if(contentHash != null) { + } else if (contentHash != null) { change.setContent(changeMapper.getChangeContentByHash(contentHash)); changeMapper.deleteChangeDescriptionByChangeId(changeId); isUpdate = true; } } - + List newFileIdList = JSON.parseArray(JSON.toJSONString(jsonObj.getJSONArray("fileIdList")), Long.class); - if(newFileIdList != null) { + if (newFileIdList != null) { List fileIdList = changeMapper.getChangeFileIdListByChangeId(changeId); - if(!Objects.equals(newFileIdList, fileIdList)) { - if(CollectionUtils.isNotEmpty(fileIdList)) { + if (!Objects.equals(newFileIdList, fileIdList)) { + if (CollectionUtils.isNotEmpty(fileIdList)) { change.setFileList(fileMapper.getFileListByIdList(fileIdList)); changeMapper.deleteChangeFileByChangeId(changeId); } - if(CollectionUtils.isNotEmpty(newFileIdList)) { + if (CollectionUtils.isNotEmpty(newFileIdList)) { newChangeVo.setFileList(fileMapper.getFileListByIdList(newFileIdList)); - for(Long fileId : newFileIdList) { + for (Long fileId : newFileIdList) { changeMapper.insertChangeFile(new ChangeFileVo(changeId, fileId)); } } isUpdate = true; } } - String source = jsonObj.getString("source"); - if(isUpdate) { - ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); - if(processTaskStepChangeVo != null) { - IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); - ProcessTaskStepVo processTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepChangeVo.getProcessTaskStepId()); - if(processTaskStepVo != null && Objects.equals(processTaskStepVo.getIsActive(), 1)) { - IJob jobHandler = SchedulerManager.getHandler(ChangeAutoStartJob.class.getName()); - if(jobHandler == null) { - throw new ScheduleHandlerNotFoundException(ChangeAutoStartJob.class.getName()); - } - JobObject.Builder jobObjectBuilder = new JobObject - .Builder(changeId.toString(), jobHandler.getGroupName(), jobHandler.getClassName(), TenantContext.get().getTenantUuid()); - JobObject jobObject = jobObjectBuilder.build(); - if(Objects.equals(change.getAutoStart(), 1)) { - if(Objects.equals(autoStart, 0)) { - changeMapper.deleteChangeAutoStartByChangeId(changeId); - schedulerManager.unloadJob(jobObject); - }else { - if(newChangeVo.getPlanStartTime() != null) { - if(!Objects.equals(change.getPlanStartTime(), newChangeVo.getPlanStartTime())) { - changeMapper.deleteChangeAutoStartByChangeId(changeId); - schedulerManager.unloadJob(jobObject); - try { - Date planStartTime = new SimpleDateFormat(TimeUtil.YYYY_MM_DD_HH_MM).parse(newChangeVo.getPlanStartTime()); - if(planStartTime.after(new Date())) { - /* 如果还没到计划开始时间,则启动定时器 **/ - ChangeAutoStartVo changeAutoStartVo = new ChangeAutoStartVo(changeId, planStartTime); - changeMapper.insertChangeAutoStart(changeAutoStartVo); - jobHandler.reloadJob(jobObject); - }else { - /* 如果过了计划开始时间,则开始变更 **/ - changeService.startChangeById(changeId, source); - } - } catch (ParseException e) { - logger.error(e.getMessage(), e); - } - } - } - } - }else { - if(Objects.equals(autoStart, 1)) { - String planStartTimeStr = change.getPlanStartTime(); - if(StringUtils.isNotBlank(newChangeVo.getPlanStartTime())) { - planStartTimeStr = newChangeVo.getPlanStartTime(); - } - try { - Date planStartTime = new SimpleDateFormat(TimeUtil.YYYY_MM_DD_HH_MM).parse(planStartTimeStr); - if(planStartTime.after(new Date())) { - /** 如果还没到计划开始时间,则启动定时器 **/ - ChangeAutoStartVo changeAutoStartVo = new ChangeAutoStartVo(changeId, planStartTime); - changeMapper.insertChangeAutoStart(changeAutoStartVo); - jobHandler.reloadJob(jobObject); - }else { - /** 如果过了计划开始时间,则开始变更 **/ - changeService.startChangeById(changeId, source); - } - } catch (ParseException e) { - logger.error(e.getMessage(), e); - } - } - } - } - } - - /** 生成活动 **/ - ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); - Long processTaskId = changeMapper.getProcessTaskIdByChangeId(changeId); - currentProcessTaskStepVo.setProcessTaskId(processTaskId); - Long currentProcessTaskStepId = jsonObj.getLong("processTaskStepId"); - currentProcessTaskStepVo.setId(currentProcessTaskStepId); - currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.CHANGEINFO.getParamName(), JSON.toJSONString(newChangeVo)); - currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.CHANGEINFO.getOldDataParamName(), JSON.toJSONString(change)); - currentProcessTaskStepVo.getParamObj().put("source", source); - IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); - processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.UPDATECHANGE); - } - return null; - } + String source = jsonObj.getString("source"); + if (isUpdate) { + ProcessTaskStepChangeVo processTaskStepChangeVo = changeMapper.getProcessTaskStepChangeHandleByChangeId(changeId); + if (processTaskStepChangeVo != null) { + IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); + ProcessTaskStepVo processTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepChangeVo.getProcessTaskStepId()); + if (processTaskStepVo != null && Objects.equals(processTaskStepVo.getIsActive(), 1)) { + IJob jobHandler = SchedulerManager.getHandler(ChangeAutoStartJob.class.getName()); + if (jobHandler == null) { + throw new ScheduleHandlerNotFoundException(ChangeAutoStartJob.class.getName()); + } + JobObject.Builder jobObjectBuilder = new JobObject + .Builder(changeId.toString(), jobHandler.getGroupName(), jobHandler.getClassName(), TenantContext.get().getTenantUuid()); + JobObject jobObject = jobObjectBuilder.build(); + if (Objects.equals(change.getAutoStart(), 1)) { + if (Objects.equals(autoStart, 0)) { + changeMapper.deleteChangeAutoStartByChangeId(changeId); + schedulerManager.unloadJob(jobObject); + } else { + if (newChangeVo.getPlanStartTime() != null) { + if (!Objects.equals(change.getPlanStartTime(), newChangeVo.getPlanStartTime())) { + changeMapper.deleteChangeAutoStartByChangeId(changeId); + schedulerManager.unloadJob(jobObject); + try { + Date planStartTime = new SimpleDateFormat(TimeUtil.YYYY_MM_DD_HH_MM).parse(newChangeVo.getPlanStartTime()); + if (planStartTime.after(new Date())) { + /* 如果还没到计划开始时间,则启动定时器 **/ + ChangeAutoStartVo changeAutoStartVo = new ChangeAutoStartVo(changeId, planStartTime); + changeMapper.insertChangeAutoStart(changeAutoStartVo); + jobHandler.reloadJob(jobObject); + } else { + /* 如果过了计划开始时间,则开始变更 **/ + changeService.startChangeById(changeId, source); + } + } catch (ParseException e) { + logger.error(e.getMessage(), e); + } + } + } + } + } else { + if (Objects.equals(autoStart, 1)) { + String planStartTimeStr = change.getPlanStartTime(); + if (StringUtils.isNotBlank(newChangeVo.getPlanStartTime())) { + planStartTimeStr = newChangeVo.getPlanStartTime(); + } + try { + Date planStartTime = new SimpleDateFormat(TimeUtil.YYYY_MM_DD_HH_MM).parse(planStartTimeStr); + if (planStartTime.after(new Date())) { + /** 如果还没到计划开始时间,则启动定时器 **/ + ChangeAutoStartVo changeAutoStartVo = new ChangeAutoStartVo(changeId, planStartTime); + changeMapper.insertChangeAutoStart(changeAutoStartVo); + jobHandler.reloadJob(jobObject); + } else { + /** 如果过了计划开始时间,则开始变更 **/ + changeService.startChangeById(changeId, source); + } + } catch (ParseException e) { + logger.error(e.getMessage(), e); + } + } + } + } + } + + /** 生成活动 **/ + ProcessTaskStepVo currentProcessTaskStepVo = new ProcessTaskStepVo(); + Long processTaskId = changeMapper.getProcessTaskIdByChangeId(changeId); + currentProcessTaskStepVo.setProcessTaskId(processTaskId); + Long currentProcessTaskStepId = jsonObj.getLong("processTaskStepId"); + currentProcessTaskStepVo.setId(currentProcessTaskStepId); + currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.CHANGEINFO.getParamName(), JSON.toJSONString(newChangeVo)); + currentProcessTaskStepVo.getParamObj().put(ChangeAuditDetailType.CHANGEINFO.getOldDataParamName(), JSON.toJSONString(change)); + currentProcessTaskStepVo.getParamObj().put("source", source); + IProcessStepHandlerCrossoverUtil processStepHandlerCrossoverUtil = CrossoverServiceFactory.getApi(IProcessStepHandlerCrossoverUtil.class); + processStepHandlerCrossoverUtil.audit(currentProcessTaskStepVo, ChangeAuditType.UPDATECHANGE); + } + return null; + } } -- Gitee