Commit 14ba4827 authored by chenzhao's avatar chenzhao

单位变更登记修改

parent 279b33e8
......@@ -133,4 +133,7 @@ public class JgChangeRegistrationUnitDto extends BaseDto {
@ApiModelProperty(value = "设备地址")
private String equAddress;
@ApiModelProperty(value = "下一步任务id")
private String nextTaskId;
}
......@@ -29,10 +29,12 @@ import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.*;
import org.springframework.beans.BeanUtils;
......@@ -214,26 +216,28 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
String[] taskName = new String[]{"流程结束"};
// 字段转换
this.convertField(noticeDto);
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
ArrayList<String> roleListAll = new ArrayList<>();
ArrayList<String> roleListNext = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
AjaxResult ajaxResult;
// 发起流程
if (!StringUtils.hasText(noticeDto.getInstanceId())) {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey("1");
try {
ajaxResult = Workflow.taskClient.startByVariable(dto);
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
noticeDto.setInstanceId(instanceId);
// 查询下节点任务
getNext(roleListFirst, instanceId, taskName);
noticeDto.setInstanceStatus(String.join(",", roleListFirst));
} catch (Exception e) {
log.error("提交失败:{}", e);
}
}
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
processTasks = cmWorkflowService.startBatch(actWorkflowBatchDTO);
String instanceId = processTasks.get(0).getProcessInstance().getId();
String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
String taskname = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
JgChangeRegistrationUnit notice = new JgChangeRegistrationUnit();
JgChangeRegistrationUnit noticeOld = JgChangeRegistrationUnitMapper.selectById(noticeDto.getSequenceNbr());
......@@ -241,19 +245,17 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
boolean submit = submit(notice, op);
notice.setChangeCertificate(noticeDto.getChangeCertificate());
notice.setRemark(noticeDto.getRemark());
if (submit) {
// 查询下节点任务
getNext(roleListSecond, notice.getInstanceId(), taskName);
notice.setStatus(taskName[0]);
// notice.setStatus(taskName[0]);
if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) {
notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListSecond);
notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListAll);
} else {
notice.setInstanceStatus(String.join(",", roleListSecond));
notice.setInstanceStatus(String.join(",", roleListAll));
}
notice.setPromoter(RequestContext.getExeUserId());
notice.setNextExecutorIds(String.join(",", roleListSecond));
notice.setNextExecutorIds(String.join(",", roleListNext));
notice.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
JgChangeRegistrationUnitMapper.updateById(notice);
createTaskModel(notice,taskname,"1", nextUserIds);
}
} else {
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
......@@ -630,30 +632,71 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
public void cancel(JgChangeRegistrationUnitDto noticeDto) {
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String[] taskName = new String[]{"流程结束"};
FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(noticeDto.getInstanceId());
// FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(noticeDto.getInstanceId());
List<String> roleListNext = new ArrayList<>();
List<String> roleListAll = new ArrayList<>();
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(noticeDto.getInstanceId());
String nextTaskId = processTaskDTO.getNextTask().get(0).getId();
this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
// 待调整
taskCode = processTaskDTO.getNextTask().get(0).getKey();
JgChangeRegistrationUnit JgChangeRegistrationUnit = this.baseMapper.selectById(noticeDto.getSequenceNbr());
ArrayList<String> roleList = new ArrayList<>();
if (ajaxResult.getStatus() == 200) {
getNext(roleList, noticeDto.getInstanceId(), taskName);
JgChangeRegistrationUnit.setStatus(WorkFlowStatusEnum.getMessage(taskName[0]).getRollBack());
JgChangeRegistrationUnit.setPromoter("");
JgChangeRegistrationUnit.setNextExecutorIds(String.join(",", roleList));
JgChangeRegistrationUnit.setNextTaskId(nextTaskId);
JgChangeRegistrationUnit.setNextExecutorIds(String.join(",", roleListNext));
JgChangeRegistrationUnitMapper.updateById(JgChangeRegistrationUnit);
}
// 删除待办
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(JgChangeRegistrationUnit));
jsonObject.put("nextTaskId", JgChangeRegistrationUnit.getNextTaskId());
jsonObject.put("nextExecuteUser", JgChangeRegistrationUnit.getNextExecutorIds());
jsonObject.put("taskType",BusinessTypeEnum.JG_NAME_CHANGE_REGISTRATION.getCode());
commonServiceImpl.rollbackTask(noticeDto.getInstanceId(), jsonObject);
}
@Transactional
public void accept(JgChangeRegistrationUnitDto dto, String op) {
String[] taskName = new String[]{"已完成"};
String userId = RequestContext.getExeUserId();
String taskId = dto.getNextTaskId();
JgChangeRegistrationUnit jgChangeRegistrationUnit = this.JgChangeRegistrationUnitMapper.selectById(dto.getSequenceNbr());
jgChangeRegistrationUnit.setProcessAdvice(dto.getProcessAdvice());
List<String> roleListNext = new ArrayList<>();
List<String> roleListAll = new ArrayList<>();
ArrayList<String> roleList = new ArrayList<>();
boolean submit = submit(jgChangeRegistrationUnit, op);
if (submit) {
getNext(roleList, dto.getInstanceId(), taskName);
// boolean submit = submit(jgChangeRegistrationUnit, op);
// if (submit) {
// getNext(roleList, dto.getInstanceId(), taskName);
//组装信息
TaskResultDTO task = new TaskResultDTO();
task.setResultCode("approvalStatus");
task.setTaskId(taskId);
task.setComment("");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
if (!ObjectUtils.isEmpty(jgChangeRegistrationUnit.getInstanceStatus()) &&
(jgChangeRegistrationUnit.getAuditStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getReject()) ||
jgChangeRegistrationUnit.getAuditStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getRollBack()))) {
map.put("approvalStatus", "提交");
}
task.setVariable(map);
//执行流程
ProcessTaskDTO processTaskDTO = cmWorkflowService.complete(taskId, task);
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String taskName1 = "";
String nextTaskId = "";
this.buildRoleList(Collections.singletonList(processTaskDTO), roleList, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
if(processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() >0){
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName1 = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
jgChangeRegistrationUnit.setStatus(taskName[0]);
if ("0".equals(op)) {
if (roleList.size() == 0) {
......@@ -697,6 +740,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
//修改各类告知列表,置为废弃
this.updataInvalidStatusByHistory(jgChangeRegistrationUnitEq.getEquId(), jgChangeRegistrationUnit.getApplyNo());
updateTaskModel(jgChangeRegistrationUnit, op);
// TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
// @Override
// public void afterCommit() {
......@@ -712,14 +756,15 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
jgChangeRegistrationUnit.setPromoter(userId);
jgChangeRegistrationUnit.setStatus(WorkFlowStatusEnum.getMessage(taskName[0]).getPass());
}
executeOneStep(jgChangeRegistrationUnit, taskName1, nextUserIds, op); }
} else {
jgChangeRegistrationUnit.setPromoter("");
jgChangeRegistrationUnit.setNextExecutorIds(String.join(",", roleList));
jgChangeRegistrationUnit.setStatus(WorkFlowStatusEnum.getMessage(taskName[0]).getReject());
executeOneStep(jgChangeRegistrationUnit, taskName1, nextUserIds, op);
}
JgChangeRegistrationUnitMapper.updateById(jgChangeRegistrationUnit);
}
// }
}
/**
......@@ -838,4 +883,98 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
commonService.generateCertificateReport(exportParamsMap, response);
}
private String buildTaskContent(JgChangeRegistrationUnit obj) {
return "来自"+obj.getEquType()+"【"+obj.getSupervisoryCode()+"】的业务办理,【申请单号:"+obj.getApplyNo()+"】";
}
private void createTaskModel(JgChangeRegistrationUnit dto, String taskName, String submitType, String nextUserIds) {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
if ("1".equals(submitType)) {
TaskModelDto taskModelDto = new TaskModelDto();
taskModelDto.setFlowCreateDate(dto.getApplyDate());
taskModelDto.setTaskName(taskName);
taskModelDto.setTaskCode(dto.getApplyNo());
taskModelDto.setTaskContent(this.buildTaskContent(dto));
taskModelDto.setTaskDesc("");
taskModelDto.setTaskType(BusinessTypeEnum.JG_NAME_CHANGE_REGISTRATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_NAME_CHANGE_REGISTRATION.getName());
taskModelDto.setRelationId(dto.getInstanceId());
taskModelDto.setExecuteUserIds(nextUserIds);
taskModelDto.setTaskStatusLabel(dto.getAuditStatus());
taskModelDto.setStartUserId(dto.getCreateUserId());
taskModelDto.setStartUser(reginParams.getUserModel().getRealName());
taskModelDto.setStartUserCompanyName(dto.getUseUnitName());
taskModelDto.setNextExecuteUser(dto.getNextExecutorIds());
taskModelDto.setStartDate(dto.getCreateDate());
taskModelDto.setModel(dto);
commonServiceImpl.buildTaskModel(Collections.singletonList(taskModelDto));
}
}
private void buildRoleList(List<ProcessTaskDTO> processTasks, List<String> roleListNext, List<String> roleListAll) {
processTasks.forEach(p -> {
p.getNextCandidateGroups().values().forEach(e -> {
roleListNext.addAll(e);
roleListAll.addAll(e);
});
roleListAll.addAll(p.getCandidateGroups());
});
}
private void executeOneStep(JgChangeRegistrationUnit jgChangeRegistrationName, String taskName, String nextUserIds, String operate) {
// 先更新之前的待办
TaskV2Model taskV2Model = updateTaskModel(jgChangeRegistrationName, operate);
TaskModelDto taskModelDto = new TaskModelDto();
taskModelDto.setTaskDesc("");
taskModelDto.setTaskContent(this.buildTaskContent(jgChangeRegistrationName));
taskV2Model.setTaskName(taskName);
taskModelDto.setTaskDesc("");
taskModelDto.setTaskCode(jgChangeRegistrationName.getApplyNo());
taskV2Model.setExecuteUserIds(nextUserIds);
taskV2Model.setRelationId(jgChangeRegistrationName.getInstanceId());
taskV2Model.setTaskStatus(this.getTaskStatusByName(jgChangeRegistrationName.getAuditStatus()));
taskV2Model.setTaskStatusLabel(jgChangeRegistrationName.getAuditStatus());
taskV2Model.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
taskModelDto.setStartUser(jgChangeRegistrationName.getCreateUserName());
taskV2Model.setTaskTypeLabel(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
taskModelDto.setStartDate(jgChangeRegistrationName.getCreateDate());
taskModelDto.setStartUserId(jgChangeRegistrationName.getCreateUserId());
taskModelDto.setStartUserCompanyName(jgChangeRegistrationName.getUseUnitName());
taskModelDto.setExecuteUserIds(nextUserIds);
TaskModelDto modelDto = new TaskModelDto();
BeanUtil.copyProperties(taskV2Model,modelDto);
modelDto.setNextExecuteUser(jgChangeRegistrationName.getNextExecutorIds());
modelDto.setModel(jgChangeRegistrationName);
// 再插入新代办、数据待定
commonServiceImpl.buildTaskModel(Collections.singletonList(modelDto));
}
private TaskV2Model updateTaskModel(JgChangeRegistrationUnit jgChangeRegistrationName, String operate) {
Map<String, Object> params = new HashMap<>();
FlowStatusEnum flowStatusEnum = this.getTaskStatus(operate);
params.put("relationId",jgChangeRegistrationName.getInstanceId());
params.put("taskStatus", flowStatusEnum.getCode());
params.put("taskStatusLabel", flowStatusEnum.getName());
params.put("flowStatus",this.getTaskStatusByName(jgChangeRegistrationName.getAuditStatus()));
params.put("flowStatusLabel",jgChangeRegistrationName.getAuditStatus());
return commonServiceImpl.updateTaskModel(params);
}
private FlowStatusEnum getTaskStatus(String operate) {
if("0".equals(operate)){
return FlowStatusEnum.TO_BE_FINISHED;
} else {
return FlowStatusEnum.REJECTED;
}
}
private Integer getTaskStatusByName(String auditStatus) {
return commonServiceImpl.getDictionaryCodeByName(auditStatus);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment