Commit c8b63d0d authored by tianyiming's avatar tianyiming

停用启用保存并提交修改

parent 94bb9c1f
......@@ -136,4 +136,15 @@ public class JgEnableDisable extends BaseEntity {
*/
@TableField(value = "next_task_id")
private String nextTaskId;
@TableField(value = "create_user_company_name")
private String createUserCompanyName;
@TableField(exist = false)
private String equList;
@TableField(exist = false)
private String supervisoryCode;
}
......@@ -32,8 +32,8 @@ public enum BusinessTypeEnum {
JG_RENOVATION_REGISTRATION("111", "改造变更登记"),
JG_EQUIPMENT_STOP("112-1", "设备启用"),
JG_EQUIPMENT_START("112-2", "设备停用"),
JG_EQUIPMENT_START("112-1", "设备启用"),
JG_EQUIPMENT_STOP("112-2", "设备停用"),
JG_EQUIPMENT_MOVE("113-1", "移装报废"),
JG_EQUIPMENT_CANCEL("113-2", "注销报废"),
......
......@@ -9,24 +9,28 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisable;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEnableDisableEq;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContract;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto;
import com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEnableDisableEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEnableDisableMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintainNoticeMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgEnableDisableService;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEnableDisableDto;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import com.yeejoin.amos.feign.workflow.model.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -55,33 +59,54 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
JgEnableDisableEqServiceImpl jgEnableDisableEqService;
@Autowired
JgEnableDisableEqMapper jgEnableDisableEqMapper;
@Autowired
JgMaintainNoticeMapper jgMaintainNoticeMapper;
@Autowired
TzsServiceFeignClient tzsServiceFeignClient;
private final String WORK_FLOW_KEY = "deactivateEnable";
private final String PROCESS_DEFINITION_KEY = "deactivateEnable";
private static final String SUBMIT_TYPE_FLOW = "1";
public void saveOrUpdate(JSONObject map,ReginParams reginParams) {
@Autowired
private CommonServiceImpl commonService;
@Autowired
ICmWorkflowService iCmWorkflowService;
@Transactional(rollbackFor = Exception.class)
public void saveOrUpdate(JSONObject map, ReginParams reginParams) {
JgEnableDisable jgEnableDisable = new JgEnableDisable();
jgEnableDisable.setApplyDate(new Date());
String submit = String.valueOf(map.get("submit"));
String pageType = String.valueOf(map.get("pageType"));
if (map.containsKey("receiveOrgCode")) {
// 接收机构
String[] splitMaintenanceUnitCode = String.valueOf(map.getString("receiveOrgCode")).split("_");
jgEnableDisable.setReceiveOrgCode(splitMaintenanceUnitCode[0]);
jgEnableDisable.setReceiveOrgName(splitMaintenanceUnitCode[1]);
String record = String.valueOf(map.get("record"));
List<WorkflowResultDto> workflowResultList = new ArrayList<>();
String instanceId = "";
if (map.containsKey("instanceId")) {
instanceId = map.get("instanceId").toString();
} else {
// 启动工作流并返回信息
workflowResultList = workFlowInfo(submit, record);
}
jgEnableDisable.setUseUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgEnableDisable.setUseUnitName(reginParams.getCompany().getCompanyName());
// 获取申请编号
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.getCode.get(String.valueOf(map.get("businessCode"))), 1);
//业务数据组装等
if (!ObjectUtils.isEmpty(listResponseModel)) {
jgEnableDisable.setApplyNo(listResponseModel.getResult().get(0));
}
String businessCode = String.valueOf(map.get("businessCode"));
businessData(submit, reginParams, jgEnableDisable, map, workflowResultList);
// 仅保存
if ("add".equals(pageType)) {
// 获取申请编号
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.getCode.get(String.valueOf(map.get("businessCode"))), 1);
if (!ObjectUtils.isEmpty(listResponseModel)) {
jgEnableDisable.setApplyNo(listResponseModel.getResult().get(0));
}
jgEnableDisable.setAuditStatus(WorkFlowStatusEnum.ENABLE_SUBMIT.getPass());
this.save(jgEnableDisable);
} else {
// 编辑
......@@ -93,27 +118,88 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
}
// 关联设备表
JgEnableDisableEq jgEnableDisableEq = new JgEnableDisableEq();
jgEnableDisableEq.setEquId(String.valueOf(map.get("record")));
jgEnableDisableEq.setEquId(record);
jgEnableDisableEq.setEnableDisableApplyId(jgEnableDisable.getSequenceNbr().toString());
jgEnableDisableEqService.save(jgEnableDisableEq);
// 提交启动流程
if ("1".equals(submit)) {
String instanceId = "";
if (map.containsKey("instanceId")) {
instanceId = map.get("instanceId").toString();
} else {
instanceId = startByVariable();
}
if (!ObjectUtils.isEmpty(instanceId)) {
// 更新数据状态
updateExecuteIds(instanceId, jgEnableDisable.getSequenceNbr(), "0");
// 执行流程
flowExecute(jgEnableDisable.getSequenceNbr(), instanceId, "0", "");
}
// 如果为保存并提交,则创建代办
if (SUBMIT_TYPE_FLOW.equals(submit)) {
buildTask(Arrays.asList(jgEnableDisable),businessCode, workflowResultList);
}
}
/**
* 组装业务数据
*/
private void businessData(String submitType, ReginParams reginParams, JgEnableDisable jgEnableDisable, JSONObject map, List<WorkflowResultDto> workflowResultList) {
// 接收机构
String[] splitMaintenanceUnitCode = String.valueOf(map.getString("receiveOrgCode")).split("_");
jgEnableDisable.setReceiveOrgCode(splitMaintenanceUnitCode[0]);
jgEnableDisable.setReceiveOrgName(splitMaintenanceUnitCode[1]);
jgEnableDisable.setUseUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgEnableDisable.setUseUnitName(reginParams.getCompany().getCompanyName());
jgEnableDisable.setRemark(String.valueOf(map.get("remark")));
jgEnableDisable.setApplyType(map.getString("applyType"));
jgEnableDisable.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
jgEnableDisable.setPromoter(reginParams.getUserModel().getUserId());
jgEnableDisable.setInstanceId(workflowResultList.get(0).getInstanceId());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
jgEnableDisable.setNextExecutorIds(workflowResultList.get(0).getNextExecutorRoleIds());
jgEnableDisable.setExecuteSequence(workflowResultList.get(0).getNextExecutorRoleIds() + "," + workflowResultList.get(0).getExecutorRoleIds());
jgEnableDisable.setPromoter(reginParams.getUserModel().getUserId());
jgEnableDisable.setNextTaskId(workflowResultList.get(0).getNextTaskId());
}
jgEnableDisable.setEquList(map.get("equListDesc").toString());
jgEnableDisable.setSupervisoryCode(map.get("supervisoryCode").toString());
if (!CollectionUtils.isEmpty(workflowResultList)) {
jgEnableDisable.setInstanceId(workflowResultList.get(0).getInstanceId());
jgEnableDisable.setAuditStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
jgEnableDisable.setAuditStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
jgEnableDisable.setCreateUserName(reginParams.getUserModel().getRealName());
jgEnableDisable.setCreateUserId(reginParams.getUserModel().getUserId());
}
/**
* 插入代办
*/
private void buildTask(List<JgEnableDisable> list,String businessCode, List<WorkflowResultDto> workflowResultList) {
String taskType = businessCode.equals(ApplicationFormTypeEnum.SBQY.getBusinessCode())?BusinessTypeEnum.JG_EQUIPMENT_START.getCode():BusinessTypeEnum.JG_EQUIPMENT_STOP.getCode();
String taskTypeLabel = businessCode.equals(ApplicationFormTypeEnum.SBQY.getBusinessCode())?BusinessTypeEnum.JG_EQUIPMENT_START.getName():BusinessTypeEnum.JG_EQUIPMENT_STOP.getName();
List<TaskModelDto> taskModelDtoList = new ArrayList<>();
WorkflowResultDto workflowResultDto = workflowResultList.get(0);
list.forEach(item -> {
TaskModelDto taskModelDto = new TaskModelDto();
taskModelDto.setFlowCreateDate(item.getCreateDate());
taskModelDto.setTaskName(workflowResultDto.getNextTaskName()); // 工作流API返回
taskModelDto.setTaskCode(item.getApplyNo());
taskModelDto.setTaskType(taskType);
taskModelDto.setTaskTypeLabel(taskTypeLabel);
taskModelDto.setRelationId(item.getInstanceId());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds()); // 工作流API返回
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setFlowStatus(commonService.getDictionaryCodeByName(FlowStatusEnum.TO_BE_PROCESSED.getName())); // 流程状态枚举
taskModelDto.setFlowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setFlowCode(item.getNextTaskId());
taskModelDto.setStartUserId(item.getCreateUserId());
taskModelDto.setStartUser(item.getCreateUserName());
taskModelDto.setStartUserCompanyName(item.getCreateUserCompanyName()); // 任务发起人所在单位
taskModelDto.setStartDate(item.getCreateDate());
taskModelDto.setModel(item);
taskModelDto.setNextExecuteUser(item.getExecuteSequence());
taskModelDto.setTaskContent(String.format("来自%s【%s】的业务办理,【申请单号:%s】", item.getEquList(), item.getSupervisoryCode(), item.getApplyNo()));
taskModelDtoList.add(taskModelDto);
});
commonService.buildTaskModel(taskModelDtoList);
}
public Page<Map<String, Object>> pageList(Page<Map<String, Object>> page, JgEnableDisableDto dto) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
dto.setUseUnitCreditCode(reginParams.getCompany().getCompanyCode());
......@@ -126,7 +212,7 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
//启动流程
try {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(WORK_FLOW_KEY);
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey("submit");
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
instanceId = ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
......@@ -136,6 +222,35 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
return instanceId;
}
/**
* 工作流启动并执行
* @param submitType 是否提交
* @param record 设备record
* @return 工作流返回相关数据
*/
private List<WorkflowResultDto> workFlowInfo(String submitType, String record) {
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(record);
dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = iCmWorkflowService.startBatch(actWorkflowBatchDTO);
// 组装工作流返回的数据
return commonService.buildWorkFlowInfo(processTaskDTOS);
}
return new ArrayList<>();
}
public void flowExecute(Long id, String instanceId, String operate, String comment) {
try {
JgEnableDisable jgEnableDisable = this.baseMapper.selectById(id);
......@@ -266,7 +381,20 @@ public class JgEnableDisableServiceImpl extends BaseService<JgEnableDisableDto,
}
public Map<String, Object> getDetail(Long sequenceNbr) {
return this.baseMapper.getDetail(sequenceNbr);
Map<String,Object> resultMap = this.baseMapper.getDetail(sequenceNbr);
JgEnableDisableEq jgEnableDisableEq = jgEnableDisableEqMapper.selectOne(new LambdaQueryWrapper<JgEnableDisableEq>().eq(JgEnableDisableEq::getEnableDisableApplyId, sequenceNbr));
Map<String, Object> map = jgMaintainNoticeMapper.getEquipInfoByRecord(jgEnableDisableEq.getEquId());
map.put("equListDesc",map.get("equList"));
map.put("equCategoryDesc",map.get("equCategory"));
map.put("equDefineDesc",map.get("equDefine"));
String[] fields = {"productPhoto", "designDoc", "designStandard", "factoryStandard", "productQualityYieldProve",
"insUseMaintainExplain", "inspectReport", "proxyStatementAttachment", "installContractAttachment"};
for (String s : fields) {
if (map.containsKey(s) && !ObjectUtils.isEmpty(map.get(s)))
map.put(s, JSON.parseArray(map.get(s).toString()));
}
resultMap.putAll(map);
return resultMap;
}
......
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