Commit a7911fd0 authored by chenzhao's avatar chenzhao

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents e0a84038 34ffae7b
package com.yeejoin.amos.boot.module.jg.api.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
......@@ -9,6 +12,9 @@ import java.util.Date;
* @author Administrator
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TaskModelDto {
/**
* 工作流创建时间
......
......@@ -221,6 +221,15 @@ public class JgChangeRegistrationReform extends BaseEntity {
*/
@TableField(value = "next_task_id")
private String nextTaskId;
/**
* 创建人
*/
@TableField("create_user_name")
private String createUserName;
/**
*
*/
@TableField(value = "create_user_company_name")
private String createUserCompanyName;
}
......@@ -150,4 +150,7 @@ public class JgEquipTransfer extends BaseEntity {
*/
@TableField(value = "next_task_id")
private String nextTaskId;
@TableField(value = "create_user_company_name")
private String createUserCompanyName;
}
......@@ -214,6 +214,12 @@ public class JgMaintenanceContract extends BaseEntity {
private String createUserId;
/**
* 创建人名称
*/
@TableField("create_user_name")
private String createUserName;
/**
* 创建时间
*/
@TableField("create_date")
......
......@@ -298,11 +298,11 @@ public class JgTransferNotice extends BaseEntity {
@TableField(value = "handle_date")
private Date handleDate;
@TableField(value = "create_user_company_name")
@TableField(value = "\"create_user_company_name\"")
private String createUserCompanyName;
//下一步任务ID
@TableField(value = "next_taskId")
@TableField(value = "\"next_taskId\"")
private String nextTaskId;
}
......@@ -25,7 +25,7 @@ public enum WorkFlowStatusEnum {
/**
* 维保流程
* 维保备案
*/
MAIN_SUBMIT("使用单位提交", "mainSubmit", "使用单位待提交", "维保单位已驳回", "使用单位已撤回"),
MAIN_RECEIVE("维保单位审核确认", "mainReceive", "维保单位待受理", "监管单位已驳回", "维保单位已撤回"),
......
......@@ -56,51 +56,6 @@ public class JgMaintenanceContractController extends BaseController {
return ResponseHelper.buildResponse(jgMaintenanceContractServiceImpl.saveOrSubmit(submit,model, reginParams));
}
/**
* 更新维保合同和设备对应关系
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/updateMaintenanceAndEquipment")
@ApiOperation(httpMethod = "POST", value = "更新维保合同和设备对应关系", notes = "更新维保合同和设备对应关系")
public ResponseModel<Object> updateMaintenanceAndEquipment(@RequestBody Map<String , Object> model,
@RequestParam(value = "submit",required = false,defaultValue = "0") String submit) {
JgMaintenanceContractDto dto = JSON.parseObject(JSON.toJSONString(model), JgMaintenanceContractDto.class);
List<Map<String, Object>> list = (List<Map<String, Object>>) model.get("equipmentLists");
return ResponseHelper.buildResponse(jgMaintenanceContractServiceImpl.updateMaintenanceAndEquipment(submit,dto,list));
}
/**
* 提交
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/submit")
@ApiOperation(httpMethod = "POST", value = "维保合同提交", notes = "维保合同提交")
public ResponseModel<Object> submit(@RequestBody Map<String , Object> model) {
JgMaintenanceContractDto dto = JSON.parseObject(JSON.toJSONString(model), JgMaintenanceContractDto.class);
String comment = String.valueOf(model.get("comment"));
String operate = String.valueOf(model.get("operate"));
return ResponseHelper.buildResponse(jgMaintenanceContractServiceImpl.submit(dto,comment,operate));
}
/**
* 审批
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/approval")
@ApiOperation(httpMethod = "POST", value = "审批", notes = "审批")
public ResponseModel<Object> approval(@RequestBody Map<String , Object> model) {
JgMaintenanceContractDto dto = JSON.parseObject(JSON.toJSONString(model.get("formData")), JgMaintenanceContractDto.class);
String comment = String.valueOf(model.get("comment"));
String operate = String.valueOf(model.get("operate"));
return ResponseHelper.buildResponse(jgMaintenanceContractServiceImpl.approval(dto,comment,operate));
}
/**
* 撤回
......@@ -216,8 +171,7 @@ public class JgMaintenanceContractController extends BaseController {
public ResponseModel<Page<JgMaintenanceContractVo>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(value = "phase") int phase,
Map<String,Object> map,
JgMaintenanceContractDto maintenanceContractDto) {
Map<String,Object> map) {
Page<JgMaintenanceContract> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
......
......@@ -631,7 +631,7 @@ public class CommonServiceImpl implements ICommonService {
}
model.setFlowStatus(obj.getTaskStatus());
model.setFlowCode(obj.getTaskStatusLabel());
model.setTaskType("0");
model.setTaskStatus(0);
model.setFlowInstanceId(model.getRelationId());
model.setTaskTitle(obj.getStartUser() + "发起了" + obj.getTaskName());
model.setTaskSource("workFlow");
......
......@@ -224,6 +224,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
Map<String, Object> equipParamsMap = this.getEquipParamsMap(record, "", equIpClassMap.get("EQU_LIST").toString());
if (!ValidationUtil.isEmpty(equipParamsMap)) {
// 给技术参数中添加设备种类,标记技术参数属于那个设备
equipParamsMap.put("EQU_LIST",equIpClassMap.get("EQU_LIST").toString());
equipParamsMap.put("EQU_CATEGORY",equIpClassMap.get("EQU_CATEGORY").toString());
equipParamsMap.put("EQU_DEFINE",equIpClassMap.get("EQU_DEFINE").toString());
resultMap.put(EQUIP_PARAMS_FORM_ID, equipParamsMap);
}
}
......
......@@ -13,6 +13,7 @@ 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.dto.JgChangeRegistrationNameDto;
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;
......@@ -137,6 +138,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
List<String> roleListNext = new ArrayList<>();
List<String> roleListAll = new ArrayList<>();
String applyNo = applyNoList.get(0);
String nextUserIds = "";
if ("1".equals(submitType)) {
// 发起流程
try {
......@@ -153,6 +155,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
instanceId = processTasks.get(0).getProcessInstance().getId();
nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
taskName[0] = processTasks.get(0).getNextTask().get(0).getName();
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(processTasks);
nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
this.buildRoleList(processTasks, roleListNext, roleListAll);
} catch (Exception e) {
log.error("提交失败:{}", e);
......@@ -177,9 +181,11 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
dto.setUseUnitCreditCode(reginParams.getCompany().getCompanyCode());
dto.setUseUnitName(reginParams.getCompany().getCompanyName());
dto.setCreateUserId(RequestContext.getExeUserId());
dto.setCreateUserName(reginParams.getUserModel().getRealName());
this.save(dto);
// 创建代办
this.createTaskModel(dto, taskName[0], submitType);
this.createTaskModel(dto, taskName[0], submitType, nextUserIds);
}
private void buildRoleList(List<ProcessTaskDTO> processTasks, List<String> roleListNext, List<String> roleListAll) {
......@@ -192,7 +198,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
});
}
private void createTaskModel(JgChangeRegistrationName dto, String taskName, String submitType) {
private void createTaskModel(JgChangeRegistrationName 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();
......@@ -204,7 +210,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
taskModelDto.setTaskType(BusinessTypeEnum.JG_NAME_CHANGE_REGISTRATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_NAME_CHANGE_REGISTRATION.getName());
taskModelDto.setRelationId(dto.getInstanceId());
taskModelDto.setExecuteUserIds(dto.getNextExecutorIds());
taskModelDto.setExecuteUserIds(nextUserIds);
taskModelDto.setTaskStatus(this.getTaskCodeByName(dto.getAuditStatus()));
taskModelDto.setTaskStatusLabel(dto.getAuditStatus());
taskModelDto.setStartUserId(dto.getCreateUserId());
......@@ -259,6 +265,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
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 = commonService.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
jgChangeRegistrationNameDto.setInstanceStatus(String.join(",", roleListAll));
jgChangeRegistrationNameDto.setInstanceId(instanceId);
jgChangeRegistrationNameDto.setNextExecutorIds(String.join(",", roleListNext));
......@@ -266,7 +274,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
// 创建待办
JgChangeRegistrationName bean = new JgChangeRegistrationName();
BeanUtil.copyProperties(jgChangeRegistrationNameDto, bean);
createTaskModel(bean,taskName,"1");
createTaskModel(bean,taskName,"1", nextUserIds);
} catch (Exception e) {
log.error("提交失败:{}", e);
throw new BadRequest("提交失败" + e.getMessage());
......@@ -277,6 +285,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
String nextTaskId = processTaskDTO.getNextTask().get(0).getId();
String taskName = processTaskDTO.getNextTask().get(0).getName();
this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
// 查询下节点任务
if (!ObjectUtils.isEmpty(jgChangeRegistrationName.getInstanceStatus())) {
jgChangeRegistrationName.setInstanceStatus(jgChangeRegistrationName.getInstanceStatus() + "," + String.join("", roleListNext));
......@@ -287,7 +297,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationName.setNextExecutorIds(String.join(",", roleListNext));
jgChangeRegistrationName.setAuditStatus(String.valueOf(WorkFlowStatusEnum.UNIT_RENAME_RECEIVE.getPass()));
jgChangeRegistrationName.setNextTaskId(nextTaskId);
executeOneStep(jgChangeRegistrationName);
executeOneStep(jgChangeRegistrationName, taskName, nextUserIds);
}
BeanUtils.copyProperties(jgChangeRegistrationNameDto, jgChangeRegistrationName);
......@@ -300,12 +310,19 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
return jgChangeRegistrationNameDto;
}
private void executeOneStep(JgChangeRegistrationName jgChangeRegistrationName) {
private void executeOneStep(JgChangeRegistrationName jgChangeRegistrationName, String taskName, String nextUserIds) {
// 先更新之前的待办
TaskV2Model taskV2Model = updateTaskModel(jgChangeRegistrationName);
// 再插入新代办、数据待定
taskV2Model.setExecuteUserIds(jgChangeRegistrationName.getNextExecutorIds());
Systemctl.taskV2Client.create(taskV2Model);
taskV2Model.setTaskName(taskName);
taskV2Model.setExecuteUserIds(nextUserIds);
taskV2Model.setTaskStatus(this.getTaskStatusByName(jgChangeRegistrationName.getAuditStatus()));
taskV2Model.setTaskStatusLabel(jgChangeRegistrationName.getAuditStatus());
TaskModelDto modelDto = new TaskModelDto();
BeanUtil.copyProperties(taskV2Model,modelDto);
modelDto.setNextExecuteUser(jgChangeRegistrationName.getNextExecutorIds());
modelDto.setModel(jgChangeRegistrationName);
commonService.buildTaskModel(Collections.singletonList(modelDto));
}
......@@ -322,7 +339,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
private void convertField(JgChangeRegistrationNameDto model) {
// 处理文件
// 处理文件1
if (!ValidationUtil.isEmpty(model.getChangeCertificateList())) {
model.setChangeCertificate(JSON.toJSONString(model.getChangeCertificateList()));
}
......@@ -403,16 +420,21 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
List<String> roleListAll = new ArrayList<>();
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String taskName = "";
String nextTaskId = "";
JgChangeRegistrationName jgChangeRegistrationName = this.getBaseMapper().selectById(sequenceNbr);
if(processTaskDTO != null){
if(processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() >0){
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
jgChangeRegistrationName.setNextExecutorIds(String.join(",",roleListNext));
jgChangeRegistrationName.setPromoter(RequestContext.getExeUserId());
jgChangeRegistrationName.setInstanceId(instanceId);
jgChangeRegistrationName.setNextTaskId(nextTaskId);
if (!ObjectUtils.isEmpty(jgChangeRegistrationName.getInstanceStatus())) {
jgChangeRegistrationName.setInstanceStatus(jgChangeRegistrationName.getInstanceStatus() + "," + String.join(",",roleListNext));
} else {
......@@ -427,7 +449,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationName.setPromoter(null);
}
// 更新上一步待办、创建待办
executeOneStep(jgChangeRegistrationName);
executeOneStep(jgChangeRegistrationName, taskName, nextUserIds);
} else {
jgChangeRegistrationName.setAuditStatus(FlowStatusEnum.TO_BE_FINISHED.getName());
jgChangeRegistrationName.setAuditPassDate(new Date());
......
......@@ -18,21 +18,16 @@ import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationReformService;
import com.yeejoin.amos.boot.module.jg.api.dto.JgChangeRegistrationReformDto;
import com.yeejoin.amos.boot.module.jg.api.service.IJgRegistrationHistoryService;
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.biz.service.IIdxBizJgUseInfoService;
import com.yeejoin.amos.boot.module.jg.biz.utils.JsonUtils;
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.workflow.Workflow;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.*;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
......@@ -58,8 +53,6 @@ import java.util.stream.Collectors;
@Service
public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeRegistrationReformDto, JgChangeRegistrationReform, JgChangeRegistrationReformMapper> implements IJgChangeRegistrationReformService {
@Autowired
WorkFlowFeignService workFlowFeginService;
@Autowired
TzsServiceFeignClient tzsServiceFeignClient;
@Autowired
RedisUtils redisUtils;
......@@ -207,11 +200,12 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
// updateExecuteIds(instanceId, jgChangeRegistrationReform.getSequenceNbr(), "0");
} else {
// 如果是新启动的流程开启自动访问
jgChangeRegistrationReform.setCreateUserName(reginParams.getUserModel().getRealName());
jgChangeRegistrationReform.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
ProcessTaskDTO processTaskDTO = startByVariable();
updateExecuteIds(instanceId, jgChangeRegistrationReform, "startWorkfow", processTaskDTO);
List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, processTaskDTO));
// commonServiceImpl.buildTaskModel(taskModelDtoList);
commonServiceImpl.buildTaskModel(taskModelDtoList);
}
......@@ -245,6 +239,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
}
public void updateExecuteIds(String instanceId, JgChangeRegistrationReform jgChangeRegistrationReform, String operate, ProcessTaskDTO processTaskDTO) {
Boolean updateTodoAndCreate = Boolean.TRUE;
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
WorkflowResultDto workflowResultDto = conveterProcessTaskDTO2WorkflowResultDto(processTaskDTO);
String nextTaskid = Optional.ofNullable(workflowResultDto.getNextTaskId()).orElse("");
......@@ -257,6 +252,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
role =Optional.ofNullable(workflowResultDto.getExecutorRoleIds()).orElse("")+","+Optional.ofNullable(workflowResultDto.getNextExecutorRoleIds()).orElse("");
operate = "0";
instanceId =workflowResultDto.getInstanceId();
updateTodoAndCreate = Boolean.FALSE;
}
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
jgChangeRegistrationReform.setNextTaskId(nextTaskid);
......@@ -278,6 +274,24 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject());
jgChangeRegistrationReform.setPromoter(null);
}
if(updateTodoAndCreate) {
// 上个代办改为已办
HashMap<String, Object> map = new HashMap<>();
map.put("taskStatus", commonServiceImpl.getDictionaryCodeByName(jgChangeRegistrationReform.getStatus()));
map.put("taskStatusLabel", jgChangeRegistrationReform.getStatus());
map.put("relationId", jgChangeRegistrationReform.getInstanceId());
TaskV2Model taskV2Model = commonServiceImpl.updateTaskModel(map);
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
// 创建新的代办
taskModelDto.setModel(jgChangeRegistrationReform);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
commonServiceImpl.buildTaskModel(Collections.singletonList(taskModelDto));
}
} else {
jgChangeRegistrationReform.setAuditPassDate(new Date());
jgChangeRegistrationReform.setAuditStatus(FlowStatusEnum.TO_BE_FINISHED.getName());
......@@ -286,6 +300,11 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
String newUseRegistrationCertificateNumber = getCode(jgChangeRegistrationReform.getSupervisoryCode());
jgChangeRegistrationReform.setUseRegistrationCode(newUseRegistrationCertificateNumber);
updateTechparamsByEquIdAndCurrentDoucumentId(jgChangeRegistrationReformEq.getEquId(), jgChangeRegistrationReform.getSequenceNbr().toString(), newUseRegistrationCertificateNumber, jgChangeRegistrationReform.getApplyNo());
HashMap<String, Object> map = new HashMap<>();
map.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
map.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
map.put("relationId", jgChangeRegistrationReform.getInstanceId());
TaskV2Model taskV2Model = commonServiceImpl.updateTaskModel(map);
}
this.getBaseMapper().updateById(jgChangeRegistrationReform);
}
......@@ -336,6 +355,8 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
jgChangeRegistrationReform.setPromoter(reginParams.getUserModel().getUserId());
jgChangeRegistrationReform.setNextExecutorIds(role);
this.update(jgChangeRegistrationReform, lambda);
// commonServiceImpl.deleteTaskModel(instanceId);
commonServiceImpl.rollbackTask(instanceId);
}
public void deleteBatch(List<Long> ids) {
......@@ -594,7 +615,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
*/
public String getSummaryInfo(JgChangeRegistrationReform jgChangeRegistrationReform) {
String result = "来自%s【%s】的业务办理,【申请单号:%s】";
return String.format("电梯", jgChangeRegistrationReform.getSupervisoryCode(), jgChangeRegistrationReform.getApplyNo());
return String.format(result,"电梯", jgChangeRegistrationReform.getSupervisoryCode(), jgChangeRegistrationReform.getApplyNo());
}
public TaskModelDto getTaskModelDtoList(JgChangeRegistrationReform jgChangeRegistrationReform, ProcessTaskDTO processTaskDTO) {
......@@ -605,7 +626,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
//工作流创建时间
taskModelDto.setFlowCreateDate(jgChangeRegistrationReform.getCreateDate());
//工作流返回节点名称
taskModelDto.setTaskName(processTaskDTO.getNextTask().get(0).getName());
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
//taskCode 使用申请单编号
taskModelDto.setTaskCode(jgChangeRegistrationReform.getApplyNo());
//摘要
......@@ -615,25 +636,27 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
//任务类型
taskModelDto.setTaskType(BusinessTypeEnum.JG_RENOVATION_REGISTRATION.getCode());
//任务类型名称
taskModelDto.setTaskType(BusinessTypeEnum.JG_RENOVATION_REGISTRATION.getName());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_RENOVATION_REGISTRATION.getName());
//工作流实例id
taskModelDto.setRelationId(jgChangeRegistrationReform.getInstanceId());
//执行人id
taskModelDto.setExecuteUserIds(workflowResultDto.getExecutorId());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
//任务状态code
// taskModelDto.setTaskStatus();
taskModelDto.setTaskStatus(commonServiceImpl.getDictionaryCodeByName(jgChangeRegistrationReform.getStatus()));
//任务状态名称
taskModelDto.setTaskStatusLabel(jgChangeRegistrationReform.getStatus());
//任务创建人id
taskModelDto.setStartUserId(jgChangeRegistrationReform.getCreateUserId());
//任务创建人名称
taskModelDto.setStartUser(workflowResultDto.getStartUserName());
taskModelDto.setStartUser(jgChangeRegistrationReform.getCreateUserName());
//任务发起人所在单位
// taskModelDto.setStartUserCompanyName(startUser.getCompanys().get(0).getCompanyName());
taskModelDto.setStartUserCompanyName(jgChangeRegistrationReform.getCreateUserCompanyName());
//任务发起人发起时间
taskModelDto.setStartDate(new Date());
taskModelDto.setNextExecuteUser(jgChangeRegistrationReform.getNextExecutorIds());
//跳转路径
// taskModelDto.setRoutePath();
taskModelDto.setModel(jgChangeRegistrationReform);
return taskModelDto;
}
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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.dto.*;
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.mapper.JgEquipTransferEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipTransferMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgEquipTransferService;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.ymt.api.common.BaseException;
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.OtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
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.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -41,158 +38,187 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* 设备移交服务实现类
*
* @author system_generator
* @author LiuLin
* @date 2023-12-20
*/
@Slf4j
@Service
public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, JgEquipTransfer, JgEquipTransferMapper> implements IJgEquipTransferService {
private static final String EQUIP_TRANSFER_PROCESS_KEY = "equipmentHandover";
private static final String SUBMIT_TYPE_FLOW = "1";
@Autowired
JgEquipTransferEqMapper jgEquipTransferEqMapper;
@Autowired
OtherInfoMapper tzsJgOtherInfoMapper;
@Autowired
RegistrationInfoMapper tzsJgRegistrationInfoMapper;
@Autowired
RedisUtils redisUtils;
@Autowired
TzsServiceFeignClient tzsServiceFeignClient;
@Autowired
CmWorkflowServiceImpl workflowService;
@Autowired
CommonServiceImpl commonService;
@Autowired
CmWorkflowServiceImpl cmWorkflowService;
@Transactional(rollbackFor = {Exception.class, BaseException.class})
public void saveTransfer(String submitType, JSONObject jsonObjectMap, ReginParams reginParams) {
String[] taskName = new String[]{"流程结束"};
JgEquipTransferDto model = BeanUtil.toBeanIgnoreError(jsonObjectMap.get("model"), JgEquipTransferDto.class);
JgEquipTransferDto model = JSON.parseObject(JSONObject.toJSONString(jsonObjectMap), JgEquipTransferDto.class);
// 字段转换
convertField(model);
// 获取告知设备列表
List<Map<String, Object>> deviceList = model.getDeviceList();
if (CollectionUtils.isEmpty(deviceList)) {
return;
}
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.SBYJ.getCode(), deviceList.size());
if (!org.springframework.util.ObjectUtils.isEmpty(listResponseModel) && listResponseModel.getStatus() != HttpStatus.OK.value()) {
log.error("告知单获取失败: {}", listResponseModel.getMessage());
throw new BadRequest("告知单生成失败!");
}
List<String> applyNoList = listResponseModel.getResult();
if (CollectionUtils.isEmpty(applyNoList)) {
log.error("告知单返回为空");
throw new BadRequest("告知单生成失败!");
}
handleResponseModel(listResponseModel, "告知单获取失败: ");
List<String> applyNoList = listResponseModel.getResult();
handleApplyNoList(applyNoList);
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
ArrayList<String> instanceIdList = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
for (int i = 0; i < deviceList.size(); i++
) {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(String.valueOf(i));
list.add(dto);
}
actWorkflowBatchDTO.setProcess(list);
try {
FeignClientResult result = Workflow.taskV2Client.startByVariableBatch(actWorkflowBatchDTO);
List<Object> returnList = (List<Object>) result.getResult();
for (Object obj : returnList
) {
JSONObject jsonObject = JSON.parseObject(JSONObject.toJSONString(obj));
String instanceId = jsonObject.getString("id");
instanceIdList.add(instanceId);
// 查询下节点任务
if (returnList.get(0).equals(obj)) {
getNext(roleListFirst, instanceId, taskName);
}
// 推动下一个节点
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment("提交流程");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", "0");
dto.setVariable(map);
//执行流程
AjaxResult ajaxResult1;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
if (ajaxResult1.get("code").equals(200)) {
getNext(roleListSecond, instanceId, taskName);
} else {
log.error("提交失败");
}
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
}
}
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
}
}
List<WorkflowResultDto> workflowResultList = workFlowInfo(submitType, deviceList);
List<JgEquipTransfer> list = new ArrayList<>();
List<JgEquipTransferEq> equipTransferEqList = new ArrayList<>();
deviceList.forEach(obj -> {
JgEquipTransferEq jgEquipTransferEq = new JgEquipTransferEq();
JgEquipTransfer dto = new JgEquipTransfer();
BeanUtils.copyProperties(model, dto);
int i = deviceList.indexOf(obj);
IntStream.range(0, deviceList.size()).forEach(i -> {
Map<String, Object> obj = deviceList.get(i);
String applyNo = applyNoList.get(i);
dto.setApplyNo(applyNo);
dto.setApplyDate(new Date());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
dto.setNextExecuteIds(String.join(",", roleListSecond));
dto.setInstanceStatus(String.join(",", roleListFirst));
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setApplyStatus(taskName[0]);
}
jgEquipTransferEq.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgEquipTransferEq.setEquipTransferId(applyNo);
if (!CollectionUtils.isEmpty(instanceIdList)) {
dto.setInstanceId(instanceIdList.get(i));
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
JgEquipTransferEq jgEquipTransferEq = buildJgEquipTransferEq(obj, applyNo);
JgEquipTransfer dto = buildJgEquipTransfer(model, applyNo, reginParams, submitType, workflowResultList, i);
dto.setCreateUserName(reginParams.getUserModel().getRealName());
dto.setCreateUserId(reginParams.getUserModel().getUserId());
dto.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
list.add(dto);
equipTransferEqList.add(jgEquipTransferEq);
});
this.baseMapper.insertBatchSomeColumn(list);
List<JgEquipTransferEq> jgEquipTransferEqList = equipTransferEqList.stream().map(transferEq -> {
List<JgEquipTransfer> collect = list.stream().filter(transfer -> transferEq.getEquipTransferId().equals(transfer.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr();
return transferEq.setEquipTransferId(String.valueOf(sequenceNbr));
}).collect(Collectors.toList());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
buildTask(list, workflowResultList);
}
List<JgEquipTransferEq> jgEquipTransferEqList = buildJgEquipTransferEqList(equipTransferEqList, list);
jgEquipTransferEqMapper.insertBatchSomeColumn(jgEquipTransferEqList);
}
private JgEquipTransferEq buildJgEquipTransferEq(Map<String, Object> obj, String applyNo) {
JgEquipTransferEq jgEquipTransferEq = new JgEquipTransferEq();
jgEquipTransferEq.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgEquipTransferEq.setEquipTransferId(applyNo);
return jgEquipTransferEq;
}
private JgEquipTransfer buildJgEquipTransfer(JgEquipTransferDto model, String applyNo, ReginParams reginParams,
String submitType, List<WorkflowResultDto> workflowResultList, int i) {
JgEquipTransfer dto = new JgEquipTransfer();
BeanUtils.copyProperties(model, dto);
dto.setApplyNo(applyNo);
dto.setApplyDate(new Date());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
WorkflowResultDto workflowResult = workflowResultList.get(i);
dto.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
dto.setInstanceStatus(workflowResult.getNextExecutorRoleIds() + "," + workflowResult.getExecutorRoleIds());
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setNextTaskId(workflowResult.getNextTaskId());
}
return dto;
}
private List<JgEquipTransferEq> buildJgEquipTransferEqList(List<JgEquipTransferEq> equipTransferEqList, List<JgEquipTransfer> list) {
return equipTransferEqList.stream()
.map(transferEq -> {
Long sequenceNbr = list.stream()
.filter(transfer -> transferEq.getEquipTransferId().equals(transfer.getApplyNo()))
.findFirst()
.map(JgEquipTransfer::getSequenceNbr)
.orElse(null);
return transferEq.setEquipTransferId(String.valueOf(sequenceNbr));
})
.collect(Collectors.toList());
}
private void handleResponseModel(ResponseModel<List<String>> listResponseModel, String errorMessagePrefix) {
if (listResponseModel == null || listResponseModel.getStatus() != HttpStatus.OK.value()) {
log.error(errorMessagePrefix + "{}", listResponseModel != null ? listResponseModel.getMessage() : "null");
throw new BadRequest("告知单生成失败!");
}
}
private void handleApplyNoList(List<String> applyNoList) {
if (CollectionUtils.isEmpty(applyNoList)) {
log.error("告知单返回为空");
throw new BadRequest("告知单生成失败!");
}
}
/**
* 插入代办
*/
private void buildTask(List<JgEquipTransfer> list, List<WorkflowResultDto> workflowResultList) {
if (CollectionUtils.isEmpty(list) || CollectionUtils.isEmpty(workflowResultList)) {
return;
}
WorkflowResultDto workflowResultDto = workflowResultList.get(0);
List<TaskModelDto> taskModelDtoList = list.stream().map(item -> buildTaskModelDto(item, workflowResultDto)).collect(Collectors.toList());
commonService.buildTaskModel(taskModelDtoList);
}
private TaskModelDto buildTaskModelDto(JgEquipTransfer item, WorkflowResultDto workflowResultDto) {
return TaskModelDto.builder()
.flowCreateDate(item.getCreateDate())
.taskName(workflowResultDto.getNextTaskName())
.taskCode(item.getApplyNo())
.taskType(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getCode())
.taskTypeLabel(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getName())
.relationId(item.getInstanceId())
.executeUserIds(workflowResultDto.getNextExecutorUserIds())
.taskStatus(commonService.getDictionaryCodeByName(item.getApplyStatus()))
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.startUserId(item.getCreateUserId())
.startUser(item.getCreateUserName())
.startUserCompanyName(item.getCreateUserCompanyName())
.startDate(item.getCreateDate())
.model(item)
.nextExecuteUser(item.getNextExecuteIds())
.build();
}
private List<WorkflowResultDto> workFlowInfo(String submitType, List<Map<String, Object>> deviceList) {
if (!SUBMIT_TYPE_FLOW.equals(submitType)) {
return new ArrayList<>();
}
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = deviceList.stream()
.map(item -> {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
dto.setCompleteFirstTask(Boolean.TRUE);
return dto;
})
.collect(Collectors.toList());
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
// 组装工作流返回的数据
return commonService.buildWorkFlowInfo(processTaskDTOS);
}
private void convertField(JgEquipTransferDto model) {
if (null == model)
return;
......@@ -207,45 +233,6 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
}
}
void getNext(ArrayList<String> roleListFirst, String instanceId, String[] taskName) {
AjaxResult aj = Workflow.taskClient.getTaskNoAuth(instanceId);
JSONObject taskNoAuth = JSON.parseObject(JSON.toJSONString(aj.get("data")));
if (!org.springframework.util.ObjectUtils.isEmpty(taskNoAuth)) {
String nextTaskId = taskNoAuth.getString("id");
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
taskName[0] = taskNoAuth.getString("name");
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map) datum).containsKey("groupId")) {
roleListFirst.add(((Map) datum).get("groupId").toString());
}
}
}
}
/**
* 启动工作流
*
* @param businessKey businessKey
* @return s
* @throws Exception e
*/
public String startFlow(String businessKey) throws Exception {
// 重新开启工作流
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(StringUtils.defaultString(businessKey, "1"));
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
if (log.isDebugEnabled()) {
log.debug("开启工作流结果:{}", ajaxResult);
}
if (ajaxResult == null || (ajaxResult.get(AjaxResult.CODE_TAG) != null && !"200".equals(ajaxResult.get(AjaxResult.CODE_TAG).toString()))) {
throw new BaseException("开启工作流错误");
}
return ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
}
@Override
public Page<JgEquipTransferDto> queryForJgEquipTransferPage(Page<JgEquipTransferDto> page, JgEquipTransferDto dto, String type, ReginParams reginParams) {
Page<JgEquipTransferDto> equipTransferPage = this.baseMapper.queryForPage(page, dto, type, reginParams.getCompany().getCompanyCode());
......@@ -303,130 +290,216 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
}
public void accept(JgEquipTransferDto jgEquipTransferDto, String op) {
String[] taskName = new String[]{"流程结束"};
String userId = RequestContext.getExeUserId();
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
JgEquipTransfer jgEquipTransfer = this.baseMapper.selectById(jgEquipTransferDto.getSequenceNbr());
ProcessTaskDTO processTaskDTO;
WorkflowResultDto workflowResultDto;
TaskResultDTO workDto = new TaskResultDTO();
workDto.setResultCode("approvalStatus");
workDto.setTaskId(jgEquipTransfer.getNextTaskId());
HashMap<String, Object> commMap = new HashMap<>();
if (jgEquipTransfer.getApplyStatus().equals("6614") || jgEquipTransfer.getApplyStatus().equals("6615")) {
commMap.put("approvalStatus", "提交");
} else {
commMap.put("approvalStatus", op);
}
workDto.setVariable(commMap);
workDto.setComment(jgEquipTransferDto.getProcessAdvice());
processTaskDTO = cmWorkflowService.complete(jgEquipTransfer.getNextTaskId(), workDto);
// 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
jgEquipTransfer.setPromoter(reginParams.getUserModel().getUserId());
TaskV2Model taskV2Model = new TaskV2Model();
jgEquipTransfer.setProcessAdvice(jgEquipTransferDto.getProcessAdvice());
JgEquipTransferEq jgEquipTransferEq = jgEquipTransferEqMapper.selectOne(Wrappers.<JgEquipTransferEq>lambdaQuery().select(JgEquipTransferEq::getEquId)
.eq(JgEquipTransferEq::getEquipTransferId, jgEquipTransferDto.getSequenceNbr()));
ArrayList<String> roleList = new ArrayList<>();
boolean submit = submit(jgEquipTransfer, op);
if (submit) {
getNext(roleList, jgEquipTransferDto.getInstanceId(), taskName);
jgEquipTransfer.setApplyStatus(taskName[0]);
if ("0".equals(op)) {
if (roleList.isEmpty()) {
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jgEquipTransfer.setPromoter("");
if (jgEquipTransferEq != null){
Map<String,Map<String,Object>> resultMap = new HashMap<>();
Map<String,Object> esParamMap =new HashMap<>();
esParamMap.put("USC_UNIT_NAME", jgEquipTransfer.getInstallUnitName());
esParamMap.put("USC_UNIT_CREDIT_CODE", jgEquipTransfer.getInstallUnitName());
resultMap.put(jgEquipTransferEq.getEquId(),esParamMap);
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
}
} else {
jgEquipTransfer.setNextExecuteIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(jgEquipTransfer.getInstanceStatus())) {
jgEquipTransfer.setInstanceStatus(jgEquipTransfer.getInstanceStatus() + "," + String.join(",", roleList));
} else {
jgEquipTransfer.setInstanceStatus(String.join(",", roleList));
}
jgEquipTransfer.setPromoter(userId);
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
if ("0".equals(op)) {
if (StringUtils.isEmpty(workflowResultDto.getNextExecutorRoleIds())) {
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jgEquipTransfer.setPromoter("");
if (jgEquipTransferEq != null){
Map<String, Map<String, Object>> resultMap = MapBuilder.<String, Map<String, Object>>create()
.put(jgEquipTransferEq.getEquId(), MapBuilder.<String, Object>create()
.put("USC_UNIT_NAME", jgEquipTransfer.getInstallUnitName())
.put("USC_UNIT_CREDIT_CODE", jgEquipTransfer.getInstallUnitName())
.build())
.build();
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
}
// 上个代办改为已办
taskV2Model = commonService.updateTaskModel(MapBuilder.<String, Object>create()
.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode())
.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName())
.put("relationId", jgEquipTransfer.getInstanceId())
.build());
} else {
//驳回
jgEquipTransfer.setPromoter("");
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
}
updateById(jgEquipTransfer);
}
}
jgEquipTransfer.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
if (!ObjectUtils.isEmpty(jgEquipTransfer.getInstanceStatus())) {
jgEquipTransfer.setInstanceStatus(jgEquipTransfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else {
jgEquipTransfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
}
jgEquipTransfer.setPromoter(userId);
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
// 上个代办改为已办
commonService.updateTaskModel(MapBuilder.<String, Object>create()
.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode())
.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName())
.put("relationId", jgEquipTransfer.getInstanceId())
.build());
// 创建新的代办
TaskModelDto taskModelDto = TaskModelDto.builder()
.flowCreateDate(taskV2Model.getFlowCreateDate())
.taskName(workflowResultDto.getNextTaskName())
.taskCode(taskV2Model.getTaskCode())
.taskType(taskV2Model.getTaskType())
.taskTypeLabel(taskV2Model.getTaskTypeLabel())
.relationId(taskV2Model.getRelationId())
.executeUserIds(workflowResultDto.getNextExecutorUserIds())
.taskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode())
.taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName())
.startUserId(taskV2Model.getStartUserId())
.startUser(taskV2Model.getStartUser())
.startDate(taskV2Model.getStartDate())
.model(jgEquipTransfer)
.nextExecuteUser(workflowResultDto.getNextExecutorRoleIds())
.build();
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
public boolean submit(JgEquipTransfer transfer, String op) {
AjaxResult ajaxResult = Workflow.taskClient.getTask(transfer.getInstanceId());
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment("提交流程");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
dto.setVariable(map);
//执行流程
AjaxResult ajaxResult1;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
return ajaxResult1.get("code").equals(200);
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
return false;
}
} else {
//驳回
jgEquipTransfer.setPromoter("");
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
// 上个代办改为已办
commonService.updateTaskModel(MapBuilder.<String, Object>create()
.put("taskStatus", commonService.getDictionaryCodeByName(jgEquipTransfer.getApplyStatus()))
.put("taskStatusLabel", jgEquipTransfer.getApplyStatus())
.put("relationId", jgEquipTransfer.getInstanceId())
.build());
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
// 创建新的代办
taskModelDto.setModel(jgEquipTransfer);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
updateById(jgEquipTransfer);
}
/**
* 撤回
* @param equipTransferInfo equipTransferInfo
*/
public void cancel(JgEquipTransferDto equipTransferInfo) {
FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(equipTransferInfo.getInstanceId());
JgEquipTransfer equipTransfer = this.baseMapper.selectById(equipTransferInfo.getSequenceNbr());
if (ajaxResult.getStatus() == 200) {
equipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
equipTransfer.setPromoter("");
this.baseMapper.updateById(equipTransfer);
}
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(equipTransferInfo.getInstanceId());
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
equipTransfer.setPromoter("");
equipTransfer.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
equipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()));
this.baseMapper.updateById(equipTransfer);
commonService.deleteTaskModel(equipTransfer.getInstanceId());
commonService.rollbackTask(equipTransfer.getInstanceId());
}
public JgEquipTransferDto updateEquipTransfer(String submitType, JgEquipTransferDto equipTransferDto, String op) {
if (Objects.isNull(equipTransferDto) || StringUtils.isEmpty(submitType))
throw new IllegalArgumentException("参数不能为空");
String[] taskName = new String[]{"流程结束"};
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(
RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// 字段转换
this.convertField(equipTransferDto);
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
equipTransferDto.setPromoter(reginParams.getUserModel().getUserId());
JgEquipTransfer transfer = this.getById(equipTransferDto.getSequenceNbr());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
AjaxResult ajaxResult;
// 发起流程
if (!org.springframework.util.StringUtils.hasText(equipTransferDto.getInstanceId())) {
// 发起流程
ProcessTaskDTO processTaskDTO;
WorkflowResultDto workflowResultDto;
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey("1");
try {
ajaxResult = Workflow.taskClient.startByVariable(dto);
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
equipTransferDto.setInstanceId(instanceId);
// 查询下节点任务
getNext(roleListFirst, instanceId, taskName);
equipTransferDto.setInstanceStatus(String.join(",", roleListFirst));
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
throw new RuntimeException(e);
dto.setBusinessKey(equipTransferDto.getSequenceNbr().toString());
dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
processTaskDTO = cmWorkflowService.startBatch(actWorkflowBatchDTO).get(0);
// 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
BeanUtils.copyProperties(equipTransferDto, transfer);
if (!ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else {
transfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
}
}
JgEquipTransfer transfer = new JgEquipTransfer();
BeanUtils.copyProperties(equipTransferDto, transfer);
boolean submit = submit(transfer, op);
if (submit) {
// 查询下节点任务
getNext(roleListSecond, transfer.getInstanceId(), taskName);
transfer.setApplyStatus(taskName[0]);
if (!org.springframework.util.ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + roleListSecond);
transfer.setPromoter(RequestContext.getExeUserId());
transfer.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
transfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
updateById(transfer);
// 如果为保存并提交,则创建代办
buildTask(Collections.singletonList(transfer), Collections.singletonList(workflowResultDto));
}else {
ProcessTaskDTO processTaskDTO = new ProcessTaskDTO();
WorkflowResultDto workflowResultDto = new WorkflowResultDto();
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(transfer.getNextTaskId());
HashMap<String, Object> commMap = new HashMap<>();
if (transfer.getApplyStatus().equals("6614") || transfer.getApplyStatus().equals("6615")) {
commMap.put("approvalStatus", "提交");
} else {
commMap.put("approvalStatus", op);
}
dto.setVariable(commMap);
processTaskDTO = cmWorkflowService.complete(transfer.getNextTaskId(), dto);
// 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
BeanUtils.copyProperties(equipTransferDto, transfer);
if (!ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + workflowResultDto.getNextExecutorRoleIds());
} else {
transfer.setInstanceStatus(String.join(",", roleListSecond));
transfer.setInstanceStatus(workflowResultDto.getNextExecutorRoleIds());
}
transfer.setPromoter(RequestContext.getExeUserId());
transfer.setNextExecuteIds(String.join(",", roleListSecond));
transfer.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
transfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
updateById(transfer);
// 上个代办改为已办
HashMap<String, Object> map = new HashMap<>();
map.put("taskStatus", commonService.getDictionaryCodeByName(transfer.getApplyStatus()));
map.put("taskStatusLabel", transfer.getApplyStatus());
map.put("relationId", transfer.getInstanceId());
TaskV2Model taskV2Model = commonService.updateTaskModel(map);
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
// 创建新的代办
taskModelDto.setModel(transfer);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
} else {
JgEquipTransfer bean = new JgEquipTransfer();
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
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.dto.JgMaintenanceContractDto;
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.JgMaintenanceContract;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContractEq;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.MaintenanceEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgMaintenanceContractService;
import com.yeejoin.amos.boot.module.jg.api.vo.JgMaintenanceContractVo;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
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.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.BeanUtils;
......@@ -35,8 +37,10 @@ import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.*;
......@@ -54,37 +58,29 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
public static final String SUBMIT_DATA = "0";
public static final String SUBMIT_TYPE_FLOW = "1";
public static final String WB_PROCESS_DEFINITION_KEY = "maintenanceFiling";
private static final String HANDLING_STATUS_DICTIONARY = "JGGZZZ";
private static final String USE = "使用";
@Autowired
TzsServiceFeignClient tzsServiceFeignClient;
@Autowired
RestHighLevelClient restHighLevelClient;
@Autowired
WorkFlowFeignService workFlowFeginService;
@Autowired
private JgMaintenanceContractMapper maintenanceContractMapper;
@Autowired
private JgMaintenanceContractEqMapper maintenanceContractEqMapper;
@Autowired
private JgMaintenanceContractEqServiceImpl jgMaintenanceContractEqService;
@Autowired
private DataDictionaryServiceImpl iDataDictionaryService;
@Autowired
RedisUtils redisUtils;
@Autowired
ICmWorkflowService workflowService;
@Autowired
CommonServiceImpl commonService;
/**
* 分页查询
*/
public Page<JgMaintenanceContractVo> queryForPage(Page<JgMaintenanceContract> page,
int phase,
// JgMaintenanceContractDto dto,
Map<String,Object> map,
ReginParams reginParams) {
// JgMaintenanceContractDto dto = new JgMaintenanceContractDto();
// JgMaintenanceContractDto dto = (JgMaintenanceContractDto)map;
public Page<JgMaintenanceContractVo> queryForPage(Page<JgMaintenanceContract> page, int phase,
Map<String, Object> map, ReginParams reginParams) {
JgMaintenanceContractDto dto = JSON.parseObject(JSON.toJSONString(map.get("jgMaintenanceContractDto")), JgMaintenanceContractDto.class);
Page<JgMaintenanceContractDto> contractList = new Page<>();
......@@ -117,7 +113,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
BeanUtils.copyProperties(dto, vo);
vo.setMaintenanceContract(ObjectUtils.isEmpty(dto.getMaintenanceContract()) ? null : JSON.parseArray(dto.getMaintenanceContract()));
List<Map<String, Object>> list = maintenanceContractMapper.selectEquipList(sequenceNbr);
if (!ObjectUtils.isEmpty(list)){
if (!ObjectUtils.isEmpty(list)) {
vo.setEquipmentLists(list);
}
return vo;
......@@ -136,9 +132,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
public void flowExecute(Long id, String instanceId, String operate, String comment, Boolean update) {
try {
JgMaintenanceContract jgMaintenanceContract = this.getBaseMapper().selectById(id);
JSONObject task = workFlowFeginService.getTaskNoAuth(instanceId);
JSONObject taskMessage = JSON.parseObject(JSON.toJSONString(task.get("data")));
String taskId = taskMessage.getString("id");
String taskId = jgMaintenanceContract.getNextTaskId();
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
......@@ -150,55 +144,30 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
map.put("approvalStatus", "提交");
}
dto.setVariable(map);
//执行流程
Workflow.taskClient.completeByTask(taskId, dto);
ProcessTaskDTO complete = workflowService.complete(taskId, dto);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(Collections.singletonList(complete));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
createTaskModel(jgMaintenanceContract, complete.getNextTask().get(0).getName(), operate, nextUserIds);
// 更新下一步执行人
updateExecuteIds(complete, id, operate);
} catch (Exception e) {
e.printStackTrace();
}
// 更新下一步执行人
updateExecuteIds(instanceId, id, operate);
}
public void updateStatus(Long id , String taskName, String role, Boolean rollBack) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
LambdaQueryWrapper<JgMaintenanceContract> lambda = new QueryWrapper<JgMaintenanceContract>().lambda();
lambda.eq(JgMaintenanceContract::getSequenceNbr, id);
JgMaintenanceContract jgMaintenanceContract = this.getBaseMapper().selectOne(lambda);
if ("流程结束".equals(taskName)) {
jgMaintenanceContract.setStatus(taskName);
jgMaintenanceContract.setApplyStatus("已完成");
} else {
jgMaintenanceContract.setNextExecuteIds(role);
jgMaintenanceContract.setPromoter(reginParams.getUserModel().getUserId());
if (!ObjectUtils.isEmpty(jgMaintenanceContract.getInstanceStatus())) {
jgMaintenanceContract.setInstanceStatus(jgMaintenanceContract.getInstanceStatus() + "," + role);
} else {
jgMaintenanceContract.setInstanceStatus(role);
}
UseStatusEnum message = UseStatusEnum.getMessage(taskName);
jgMaintenanceContract.setStatus(message.getPass());
}
if (rollBack){
this.getBaseMapper().update(jgMaintenanceContract, lambda);
this.getBaseMapper().updatePromoter(jgMaintenanceContract.getSequenceNbr());
}else {
this.getBaseMapper().update(jgMaintenanceContract, lambda);
}
}
/**
* 批量删除
*/
@Transactional
public Boolean deleteForBatch(Long[] ids) {
List<Long> list = Arrays.asList(ids);
list.forEach(x->{
list.forEach(x -> {
QueryWrapper<JgMaintenanceContract> wrapper = new QueryWrapper<>();
wrapper.eq("sequence_nbr", x);
JgMaintenanceContract jgMaintenanceContract = maintenanceContractMapper.selectOne(wrapper);
LambdaQueryWrapper<JgMaintenanceContractEq> queryWrapper = new LambdaQueryWrapper<JgMaintenanceContractEq>()
.eq(JgMaintenanceContractEq::getEquipTransferId,jgMaintenanceContract.getApplyNo())
.eq(JgMaintenanceContractEq::getEquipTransferId, jgMaintenanceContract.getApplyNo())
.eq(JgMaintenanceContractEq::getIsDelete, false);
List<Long> listSeq = jgMaintenanceContractEqService.list(queryWrapper).stream()
.map(JgMaintenanceContractEq::getSequenceNbr).collect(Collectors.toList());
......@@ -208,151 +177,32 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
return true;
}
public String startByVariable() {
String instanceId = "";
//启动流程
try {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(WB_PROCESS_DEFINITION_KEY);
dto.setBusinessKey("submit");
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
instanceId = ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
} catch (Exception e) {
e.printStackTrace();
}
return instanceId;
}
/**
* 维保合同提交
*/
@Transactional
public Boolean submit(JgMaintenanceContractDto dto,String comment,String operate) {
String instanceId = "";
try {
AjaxResult ajaxResult;
ActWorkflowStartDTO flowDto = new ActWorkflowStartDTO();
flowDto.setProcessDefinitionKey(WB_PROCESS_DEFINITION_KEY);
flowDto.setBusinessKey("1");
ajaxResult = Workflow.taskClient.startByVariable(flowDto);
instanceId = ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
ajaxResult = Workflow.taskClient.getTask(instanceId);
// 执行一步
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO taskResultDTO = new TaskResultDTO();
taskResultDTO.setResultCode("approvalStatus");
taskResultDTO.setTaskId(taskId);
taskResultDTO.setComment(comment);
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
taskResultDTO.setVariable(map);
//执行流程
Workflow.taskClient.completeByTask(taskId, taskResultDTO);
Workflow.taskClient.completeByTask(taskId, taskResultDTO);
} catch (Exception e) {
e.printStackTrace();
}
dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setInstanceId(instanceId);
dto.setReceiveOrgCode(null);
return this.updateBySequenceNbr(dto);
}
@Transactional
public Boolean approval(JgMaintenanceContractDto dto,String comment,String operate) {
String instanceId = dto.getInstanceId();
try {
AjaxResult ajaxResult;
ajaxResult = Workflow.taskClient.getTask(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO taskResultDTO = new TaskResultDTO();
taskResultDTO.setResultCode("approvalStatus");
taskResultDTO.setTaskId(taskId);
taskResultDTO.setComment(comment);
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
taskResultDTO.setVariable(map);
//执行流程
Workflow.taskClient.completeByTask(taskId, taskResultDTO);
} catch (Exception e) {
e.printStackTrace();
}
// if("tongguo"){
// if("weibao"){
// dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
// }else {
// dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
// }
// }else {
// if("weibao"){
// dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
// }else {
// dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
// }
// }
if ("1".equals(operate)){
}
//审批通过
if ("0".equals(operate)){
}
dto.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setInstanceId(instanceId);
dto.setReceiveOrgCode(null);
return this.updateBySequenceNbr(dto);
}
/**
* 维保合同撤回
*/
@Transactional
public void revocation(String instanceId) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String taskCode = "";
JgMaintenanceContract jgMaintenanceContract = new JgMaintenanceContract();
LambdaQueryWrapper<JgMaintenanceContract> lambda = new QueryWrapper<JgMaintenanceContract>().lambda();
lambda.eq(JgMaintenanceContract::getInstanceId, instanceId);
ArrayList<String> roleList = new ArrayList<>();
try {
workFlowFeginService.rollBack(instanceId);
JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
taskCode = nextTask.getString("name");
if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
String nextTaskId = nextTask.getString("id");
FeignClientResult<JSONObject> nodeInfo = workFlowFeginService.getNodeInfo(nextTaskId);
JSONObject result = nodeInfo.getResult();
Map<String, Object> taskInfo = (Map<String, Object>) result.get("taskInfo");
taskCode = String.valueOf(taskInfo.get("taskDefinitionKey"));
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map<?, ?>) datum).containsKey("groupId")) {
roleList.add(((Map<?, ?>) datum).get("groupId").toString());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
if (!ObjectUtils.isEmpty(taskCode)) {
jgMaintenanceContract.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getRollBack());
public void revocation(String instanceId) {
// 执行流程
JgMaintenanceContract contract = new JgMaintenanceContract();
QueryWrapper<JgMaintenanceContract> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(JgMaintenanceContract::getInstanceId, instanceId);
List<String> roleListNext = new ArrayList<>();
List<String> roleListAll = new ArrayList<>();
ProcessTaskDTO processTaskDTO = workflowService.rollBack(instanceId);
String nextTaskId = processTaskDTO.getNextTask().get(0).getId();
this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
// 待调整
String taskCode = processTaskDTO.getNextTask().get(0).getKey();
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
contract.setApplyStatus(WorkFlowStatusEnum.getMessage(taskCode).getRollBack());
}
String join = String.join(",", roleList);
jgMaintenanceContract.setPromoter(reginParams.getUserModel().getUserId());
jgMaintenanceContract.setNextExecuteIds(join);
this.update(jgMaintenanceContract, lambda);
contract.setPromoter(RequestContext.getExeUserId());
contract.setNextExecuteIds(String.join(",", roleListNext));
contract.setNextTaskId(nextTaskId);
this.update(contract, queryWrapper);
// 删除待办
commonService.deleteTaskModel(contract.getInstanceId());
commonService.rollbackTask(contract.getInstanceId());
}
/**
......@@ -360,12 +210,13 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
*/
@Transactional(rollbackFor = Exception.class)
public Boolean saveOrSubmit(String submit, Map<String, Object> map, ReginParams reginParams) {
JgMaintenanceContractDto dto = JSON.parseObject(JSON.toJSONString(map), JgMaintenanceContractDto.class);
JgMaintenanceContractDto contractDto = JSON.parseObject(JSON.toJSONString(map), JgMaintenanceContractDto.class);
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) map.get("equipmentLists");
CompanyBo company = reginParams.getCompany();
JgMaintenanceContract contract = new JgMaintenanceContract();
BeanUtils.copyProperties(dto, contract);
contract.setCreateDate(new Date());
// JgMaintenanceContract contract = new JgMaintenanceContract();
// BeanUtils.copyProperties(contractDto, contract);
contractDto.setCreateDate(new Date());
contractDto.setPromoter(reginParams.getUserModel().getUserId());
//获取维保备案编号
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.WBBA.getCode(), 1);
if (!ObjectUtils.isEmpty(listResponseModel) && listResponseModel.getStatus() != HttpStatus.OK.value()) {
......@@ -373,36 +224,32 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
return false;
}
String wbApplyNo = listResponseModel.getResult().get(0);
contract.setApplyNo(wbApplyNo);
contract.setUseUnitCode(company.getCompanyCode());
contract.setUseUnitName(company.getCompanyName());
contractDto.setApplyNo(wbApplyNo);
contractDto.setUseUnitCode(company.getCompanyCode());
contractDto.setUseUnitName(company.getCompanyName());
//管理员信息
String[] MaintenanceManager = dto.getMaintenanceManagerId().split("_");
contract.setMaintenanceManagerId(MaintenanceManager[0]);
contract.setMaintenanceManagerName(MaintenanceManager[1]);
String[] MaintenanceManager = contractDto.getMaintenanceManagerId().split("_");
contractDto.setMaintenanceManagerId(MaintenanceManager[0]);
contractDto.setMaintenanceManagerName(MaintenanceManager[1]);
//接收机构信息
String[] splitReceiveOrgCode = dto.getReceiveOrgCode().split("_");
contract.setReceiveOrgCode(splitReceiveOrgCode[0]);
contract.setReceiveOrgName(splitReceiveOrgCode[1]);
String[] splitReceiveOrgCode = contractDto.getReceiveOrgCode().split("_");
contractDto.setReceiveOrgCode(splitReceiveOrgCode[0]);
contractDto.setReceiveOrgName(splitReceiveOrgCode[1]);
//维保单位信息
String[] splitMaintenanceUnitCode = dto.getMaintenanceUnitCode().split("_");
contract.setMaintenanceUnitCode(splitMaintenanceUnitCode[0]);
contract.setMaintenanceUnitName(splitMaintenanceUnitCode[1]);
contract.setApplyStatus(FlowStatusEnum.TO_BE_SUBMITTED.getName());
contract.setEquNum(equipmentLists.size());
// 新增编辑
if ("add".equals(String.valueOf(map.get("pageType")))) {
contract.setStatus(SUBMIT_DATA.equals(submit) ? WorkFlowStatusEnum.MAIN_SUBMIT.getPass() : WorkFlowStatusEnum.MAIN_RECEIVE.getPass());
this.save(contract);
} else {
String[] splitMaintenanceUnitCode = contractDto.getMaintenanceUnitCode().split("_");
contractDto.setMaintenanceUnitCode(splitMaintenanceUnitCode[0]);
contractDto.setMaintenanceUnitName(splitMaintenanceUnitCode[1]);
contractDto.setApplyStatus(FlowStatusEnum.TO_BE_SUBMITTED.getName());
contractDto.setEquNum(equipmentLists.size());
JgMaintenanceContract contract = getById(contractDto.getSequenceNbr());
BeanUtils.copyProperties(contractDto, contract);
if (!"add".equals(String.valueOf(map.get("pageType")))) {
//编辑
this.getBaseMapper().updateById(contract);
LambdaQueryWrapper<JgMaintenanceContractEq> lambda = new QueryWrapper<JgMaintenanceContractEq>().lambda();
lambda.eq(JgMaintenanceContractEq::getEquipTransferId, contract.getSequenceNbr());
jgMaintenanceContractEqService.getBaseMapper().delete(lambda);
}
//关联设备信息
List<JgMaintenanceContractEq> equipList = new ArrayList<>();
equipmentLists.forEach(x -> {
......@@ -413,162 +260,198 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
});
// 保存维保关联设备信息
jgMaintenanceContractEqService.saveBatch(equipList);
// 判断当前是否为提交
List<String> roleListNext = new ArrayList<>();
List<String> roleListAll = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submit)) {
String instanceId = null;
// 提交启动流程
if (map.containsKey("instanceId") && !ObjectUtils.isEmpty(map.get("instanceId"))) {
instanceId = String.valueOf(map.get("instanceId"));
if (!StringUtils.isEmpty(contract.getInstanceId())) {
// 发起流程
try {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(WB_PROCESS_DEFINITION_KEY);
dto.setBusinessKey(contract.getApplyNo());
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
processTasks = workflowService.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 = commonService.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
contract.setInstanceStatus(String.join(",", roleListAll));
contract.setInstanceId(instanceId);
contract.setNextExecuteIds(String.join(",", roleListNext));
contract.setNextTaskId(nextTaskId);
// 创建待办
JgMaintenanceContract bean = new JgMaintenanceContract();
BeanUtil.copyProperties(contract, bean);
createTaskModel(bean, taskName, "1", nextUserIds);
} catch (Exception e) {
log.error("提交失败:{}", e);
throw new BadRequest("提交失败" + e.getMessage());
}
} else {
instanceId = startByVariable();
}
if (!ObjectUtils.isEmpty(instanceId)) {
// 修改数据信息
updateExecuteIds(instanceId, contract.getSequenceNbr(), "0");
// 默认执行流程
flowExecute(contract.getSequenceNbr(), instanceId, "0", "", false);
// 执行一步
ProcessTaskDTO processTaskDTO = this.submit("0", contract.getNextTaskId());
String nextTaskId = processTaskDTO.getNextTask().get(0).getId();
String taskName = processTaskDTO.getNextTask().get(0).getName();
this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
// 查询下节点任务
if (!ObjectUtils.isEmpty(contract.getInstanceStatus())) {
contract.setInstanceStatus(contract.getInstanceStatus() + "," + String.join("", roleListNext));
} else {
contract.setInstanceStatus(String.join(",", roleListAll));
}
contract.setPromoter(RequestContext.getExeUserId());
contract.setNextExecuteIds(String.join(",", roleListNext));
contract.setApplyStatus(String.valueOf(WorkFlowStatusEnum.MAIN_RECEIVE.getPass()));
contract.setNextTaskId(nextTaskId);
executeOneStep(contract, taskName, nextUserIds);
}
updateById(contract);
} else {
// 新增
contract.setStatus(SUBMIT_DATA.equals(submit) ? WorkFlowStatusEnum.MAIN_SUBMIT.getPass() : WorkFlowStatusEnum.MAIN_RECEIVE.getPass());
this.save(contract);
}
return true;
}
public void updateExecuteIds(String instanceId, Long sequenceNbr, String operate){
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String role = "";
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
ArrayList<String> roleList = new ArrayList<>();
JgMaintenanceContract jgMaintenanceContract = this.getBaseMapper().selectById(sequenceNbr);
try {
// 查询下节点任务
public ProcessTaskDTO submit(String op, String taskId) {
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment("提交流程");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
dto.setVariable(map);
return workflowService.complete(taskId, dto);
}
JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
String nextTaskId = nextTask.getString("id");
FeignClientResult<JSONObject> nodeInfo = workFlowFeginService.getNodeInfo(nextTaskId);
JSONObject result = nodeInfo.getResult();
Map<String, Object> taskInfo = (Map<String, Object>) result.get("taskInfo");
taskCode = String.valueOf(taskInfo.get("taskDefinitionKey"));
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map) datum).containsKey("groupId")) {
roleList.add(((Map) datum).get("groupId").toString());
}
}
}
} catch (Exception e) {
e.printStackTrace();
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());
});
}
public void updateExecuteIds(ProcessTaskDTO processTaskDTO, Long sequenceNbr, String operate) {
List<String> roleListNext = new ArrayList<>();
List<String> roleListAll = new ArrayList<>();
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String taskName = "";
String nextTaskId = "";
JgMaintenanceContract contract = this.getBaseMapper().selectById(sequenceNbr);
if (processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() > 0) {
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)){
role= String.join(",", roleList);
jgMaintenanceContract.setNextExecuteIds(role);
jgMaintenanceContract.setPromoter(reginParams.getUserModel().getUserId());
jgMaintenanceContract.setInstanceId(instanceId);
if (!ObjectUtils.isEmpty(jgMaintenanceContract.getInstanceStatus())) {
jgMaintenanceContract.setInstanceStatus(jgMaintenanceContract.getInstanceStatus() + "," + role);
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
contract.setNextExecuteIds(String.join(",", roleListNext));
contract.setPromoter(RequestContext.getExeUserId());
contract.setInstanceId(processTaskDTO.getProcessInstance().getId());
contract.setNextTaskId(nextTaskId);
if (!ObjectUtils.isEmpty(contract.getInstanceStatus())) {
contract.setInstanceStatus(contract.getInstanceStatus() + "," + String.join(",", roleListNext));
} else {
jgMaintenanceContract.setInstanceStatus(role);
contract.setInstanceStatus(String.join(",", roleListNext));
}
if ("0".equals(operate)){
if ("0".equals(operate)) {
// 通过操作
jgMaintenanceContract.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
}else {
contract.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
} else {
// 驳回操作
jgMaintenanceContract.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject());
jgMaintenanceContract.setPromoter(null);
contract.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject());
contract.setPromoter(null);
}
}else {
jgMaintenanceContract.setApplyDate(new Date());
jgMaintenanceContract.setStatus(taskCode);
executeOneStep(contract, taskName, nextUserIds);
} else {
contract.setApplyDate(new Date());
contract.setStatus(taskCode);
updateTaskModel(contract);
}
this.getBaseMapper().updateById(jgMaintenanceContract);
this.getBaseMapper().updateById(contract);
}
private void executeOneStep(JgMaintenanceContract contract, String taskName, String nextUserIds) {
// 先更新之前的待办
TaskV2Model taskV2Model = updateTaskModel(contract);
// 再插入新代办、数据待定
taskV2Model.setTaskName(taskName);
taskV2Model.setExecuteUserIds(nextUserIds);
taskV2Model.setTaskStatus(this.getTaskStatusByName(contract.getApplyStatus()));
taskV2Model.setTaskStatusLabel(contract.getApplyStatus());
TaskModelDto modelDto = new TaskModelDto();
BeanUtil.copyProperties(taskV2Model, modelDto);
modelDto.setNextExecuteUser(contract.getNextExecuteIds());
modelDto.setModel(contract);
commonService.buildTaskModel(Collections.singletonList(modelDto));
}
private void extracted(String instanceId, ArrayList<String> roleList, JgMaintenanceContract contract) {
JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
String nextTaskId = nextTask.getString("id");
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map<?, ?>) datum).containsKey("groupId")) {
roleList.add(((Map<?, ?>) datum).get("groupId").toString());
}
}
}
contract.setInstanceStatus(String.join(",", roleList));
private TaskV2Model updateTaskModel(JgMaintenanceContract contract) {
Map<String, Object> params = new HashMap<>();
params.put("relationId", contract.getInstanceId());
params.put("taskStatus", this.getTaskStatusByName(contract.getApplyStatus()));
params.put("taskStatusLabel", contract.getApplyStatus());
return commonService.updateTaskModel(params);
}
/**
* 更新维保合同和设备对应关系
*/
@Transactional
public Boolean updateMaintenanceAndEquipment(String submit,JgMaintenanceContractDto dto, List<Map<String, Object>> list) {
String instanceId = null;
private Integer getTaskStatusByName(String auditStatus) {
return commonService.getDictionaryCodeByName(auditStatus);
}
//更新维保合同表
String[] MaintenanceManager = dto.getMaintenanceManagerId().split("_");
dto.setMaintenanceManagerId(dto.getMaintenanceManagerId());
dto.setMaintenanceManagerName(MaintenanceManager[1]);
private void createTaskModel(JgMaintenanceContract 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_MAINTENANCE_RECORD.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_MAINTENANCE_RECORD.getName());
taskModelDto.setRelationId(dto.getInstanceId());
taskModelDto.setExecuteUserIds(nextUserIds);
taskModelDto.setTaskStatus(this.getTaskCodeByName(dto.getApplyStatus()));
taskModelDto.setTaskStatusLabel(dto.getApplyStatus());
taskModelDto.setStartUserId(dto.getCreateUserId());
taskModelDto.setStartUser(reginParams.getUserModel().getRealName());
taskModelDto.setStartUserCompanyName(dto.getUseUnitName());
taskModelDto.setNextExecuteUser(dto.getNextExecuteIds());
taskModelDto.setStartDate(dto.getCreateDate());
taskModelDto.setModel(dto);
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
}
String[] splitReceiveOrgCode = dto.getReceiveOrgCode().split("_");
dto.setReceiveOrgCode(splitReceiveOrgCode[0]);
dto.setReceiveOrgName(splitReceiveOrgCode[1]);
private Integer getTaskCodeByName(String auditStatus) {
return commonService.getDictionaryCodeByName(auditStatus);
}
String[] splitMaintenanceUnitCode = dto.getMaintenanceUnitCode().split("_");
dto.setMaintenanceUnitCode(dto.getMaintenanceUnitCode());
dto.setMaintenanceUnitName(splitMaintenanceUnitCode[1]);
// 判断当前是否为提交
if (SUBMIT_TYPE_FLOW.equals(submit)) {
// 发起流程
try {
ActWorkflowStartDTO flowDto = new ActWorkflowStartDTO();
flowDto.setProcessDefinitionKey(WB_PROCESS_DEFINITION_KEY);
flowDto.setBusinessKey("1");
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(flowDto);
instanceId = ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
ajaxResult = Workflow.taskClient.getTask(instanceId);
// 执行一步
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
TaskResultDTO taskResultDTO = new TaskResultDTO();
taskResultDTO.setResultCode("approvalStatus");
taskResultDTO.setTaskId(taskId);
taskResultDTO.setComment("提交流程");
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("approvalStatus", "0");
taskResultDTO.setVariable(hashMap);
//执行流程
Workflow.taskClient.completeByTask(taskId, taskResultDTO);
// dto.setApplyFlow(MaintenanceEnum.SHIYONG.getMsg()+","+MaintenanceEnum.WEIBAO.getMsg());
dto.setInstanceId(instanceId);
} catch (Exception e) {
log.error("维保使用单位提交流程启动失败:{}", e);
}
}
this.updateBySequenceNbr(dto);
//更新对应设备表
if (!list.isEmpty()) {
//先删除原先设备对应关系
LambdaQueryWrapper<JgMaintenanceContractEq> queryWrapper = new LambdaQueryWrapper<JgMaintenanceContractEq>()
.eq(JgMaintenanceContractEq::getEquId,list.get(0).get("SEQUENCE_NBR"))
.eq(JgMaintenanceContractEq::getIsDelete, false);
List<Long> listSeq = jgMaintenanceContractEqService.list(queryWrapper).stream()
.map(JgMaintenanceContractEq::getSequenceNbr).collect(Collectors.toList());
jgMaintenanceContractEqService.deleteBatchSeq(listSeq);
//重新生成关系表
List<JgMaintenanceContractEq> equipList = new ArrayList<>();
list.forEach(x -> {
JgMaintenanceContractEq equip = new JgMaintenanceContractEq();
equip.setEquId(String.valueOf(x.get("SEQUENCE_NBR")));
equip.setEquipTransferId(dto.getApplyNo());
equipList.add(equip);
});
return jgMaintenanceContractEqService.saveBatch(equipList);
}
return true;
/**
* 摘要构建
*
* @param dto 业务
* @return 摘要
*/
private String buildTaskContent(JgMaintenanceContract dto) {
return "申请单号:" + dto.getApplyNo() + "的业务办理";
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -365,7 +366,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
@SuppressWarnings({"Duplicates", "rawtypes"})
@Transactional(rollbackFor = Exception.class)
public void saveNotice(String submitType, Map<String, Object> jgTransferNoticeDtoMap, ReginParams reginParams) {
JgTransferNoticeDto model = JSON.parseObject(jgTransferNoticeDtoMap.get(TABLE_PAGE_ID).toString(), JgTransferNoticeDto.class);
JgTransferNoticeDto model = JSON.parseObject(JSONObject.toJSONString(jgTransferNoticeDtoMap.get(TABLE_PAGE_ID)), JgTransferNoticeDto.class);
// 字段转换
convertField(model);
// 获取告知设备列表
......@@ -379,8 +380,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
return;
}
// 判断当前是否为提交
List<String> instanceIdList = new ArrayList<>();
// 启动工作流并返回信息
List<WorkflowResultDto> workflowResultList = workFlowInfo(submitType, deviceList);
......@@ -406,12 +406,14 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(applyNo);
if (!CollectionUtils.isEmpty(instanceIdList)) {
dto.setInstanceId(instanceIdList.get(i));
if (!CollectionUtils.isEmpty(workflowResultList)) {
dto.setInstanceId(workflowResultList.get(i).getInstanceId());
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
dto.setCreateUserName(reginParams.getUserModel().getRealName());
dto.setCreateUserId(reginParams.getUserModel().getUserId());
list.add(dto);
equipList.add(jgRelationEquip);
});
......@@ -443,12 +445,12 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
taskModelDto.setFlowCreateDate(item.getCreateDate());
taskModelDto.setTaskName(workflowResultDto.getNextTaskName()); // 工作流API返回
taskModelDto.setTaskCode(item.getApplyNo());
taskModelDto.setTaskType(BusinessTypeEnum.JG_INSTALLATION_NOTIFICATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_INSTALLATION_NOTIFICATION.getName());
taskModelDto.setTaskType(BusinessTypeEnum.JG_ADVICE_REMOVAL.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_ADVICE_REMOVAL.getName());
taskModelDto.setRelationId(item.getInstanceId());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds()); // 工作流API返回
taskModelDto.setTaskStatus(commonService.getDictionaryCodeByName(item.getNoticeStatus())); // 流程状态枚举
taskModelDto.setTaskStatusLabel(item.getNoticeStatus());
taskModelDto.setTaskStatus(commonService.getDictionaryCodeByName(FlowStatusEnum.TO_BE_PROCESSED.getName())); // 流程状态枚举
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setStartUserId(item.getCreateUserId());
taskModelDto.setStartUser(item.getCreateUserName());
taskModelDto.setStartUserCompanyName(item.getCreateUserCompanyName()); // 任务发起人所在单位
......@@ -472,7 +474,9 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
list.add(dto);
});
actWorkflowBatchDTO.setProcess(list);
System.out.println("============== " + DateUtil.now());
List<ProcessTaskDTO> processTaskDTOS = iCmWorkflowService.startBatch(actWorkflowBatchDTO);
System.out.println("============== " + DateUtil.now());
// 组装工作流返回的数据
return commonService.buildWorkFlowInfo(processTaskDTOS);
}
......@@ -565,7 +569,6 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
jgInstallationNotice.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
jgInstallationNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()));
jgTransferNoticeMapper.updateById(jgInstallationNotice);
commonService.deleteTaskModel(jgInstallationNotice.getInstanceId());
commonService.rollbackTask(jgInstallationNotice.getInstanceId());
}
......@@ -598,6 +601,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
commMap.put("approvalStatus", op);
}
workDto.setVariable(commMap);
workDto.setComment(opinion);
processTaskDTO = iCmWorkflowService.complete(jgTransferNotice.getNextTaskId(), workDto);
// 提取节点等信息
workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
......@@ -623,8 +627,8 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
this.generateTransferNoticeReport(jgTransferNotice.getSequenceNbr());
// 上个代办改为已办
HashMap<String, Object> taskMap = new HashMap<>();
taskMap.put("taskStatus", commonService.getDictionaryCodeByName(jgTransferNotice.getNoticeStatus()));
taskMap.put("taskStatusLabel", jgTransferNotice.getNoticeStatus());
taskMap.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
taskMap.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
taskMap.put("relationId", jgTransferNotice.getInstanceId());
taskV2Model = commonService.updateTaskModel(taskMap);
} else {
......@@ -637,8 +641,8 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
jgTransferNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
// 上个代办改为已办
HashMap<String, Object> taskMap = new HashMap<>();
taskMap.put("taskStatus", commonService.getDictionaryCodeByName(jgTransferNotice.getNoticeStatus()));
taskMap.put("taskStatusLabel", jgTransferNotice.getNoticeStatus());
taskMap.put("taskStatus", FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskMap.put("taskStatusLabel", FlowStatusEnum.TO_BE_PROCESSED.getName());
taskMap.put("relationId", jgTransferNotice.getInstanceId());
taskV2Model = commonService.updateTaskModel(taskMap);
TaskModelDto taskModelDto = new TaskModelDto();
......@@ -657,8 +661,8 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
jgTransferNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
// 上个代办改为已办
HashMap<String, Object> taskMap = new HashMap<>();
taskMap.put("taskStatus", commonService.getDictionaryCodeByName(jgTransferNotice.getNoticeStatus()));
taskMap.put("taskStatusLabel", jgTransferNotice.getNoticeStatus());
taskMap.put("taskStatus", jgTransferNotice.getNoticeStatus());
taskMap.put("taskStatusLabel", FlowStatusEnum.REJECTED.getName());
taskMap.put("relationId", jgTransferNotice.getInstanceId());
taskV2Model = commonService.updateTaskModel(taskMap);
TaskModelDto taskModelDto = new TaskModelDto();
......
......@@ -11,9 +11,12 @@ 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.dto.JgUseRegistrationDto;
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.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.EquipTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper;
......@@ -36,15 +39,15 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.InspectionDetectionInfoMapper
import com.yeejoin.amos.boot.module.ymt.api.mapper.OtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
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.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StopWatch;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -90,6 +93,10 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private IdxBizJgFactoryInfoServiceImpl idxBizJgFactoryInfoService;
@Autowired
ICommonService commonService;
@Autowired
CommonServiceImpl commonServiceImpl;
@Autowired
CmWorkflowServiceImpl cmWorkflowService;
public Page<Map<String, Object>> getList(JgUseRegistrationDto dto, Page<Map<String, Object>> page, List<String> roleIds) {
Page<Map<String, Object>> listPage = this.baseMapper.getListPage(page, dto, roleIds);
......@@ -100,7 +107,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return this.baseMapper.getEquipListPage(page, factoryNum, equList, equCategory);
}
public void updateEquipMessage(String currentDocumentId, String useOrgCode){
public void updateEquipMessage(String currentDocumentId, String useOrgCode) {
LambdaQueryWrapper<JgRegistrationHistory> lambdaSelect = new QueryWrapper<JgRegistrationHistory>().lambda();
lambdaSelect.eq(JgRegistrationHistory::getCurrentDocumentId, currentDocumentId);
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambdaSelect);
......@@ -122,17 +129,17 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
idxBizJgRegisterInfoMapper.updateUseOrgCodeByEquip(String.valueOf(map.get("equipId")), useOrgCode);
}
public void updateHistory(JSONObject map, String equipId, String currentDocumentId, String supervisoryCode){
public void updateHistory(JSONObject map, String equipId, String currentDocumentId, String supervisoryCode) {
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getEquId, equipId);
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, currentDocumentId);
lambda.eq(JgRegistrationHistory::getRegistrationClass, "使用登记");
Integer integer = jgRegistrationHistoryService.getBaseMapper().selectCount(lambda);
if (integer > 0){
if (integer > 0) {
jgRegistrationHistory.setChangeData(JSON.toJSONString(map));
jgRegistrationHistoryService.update(jgRegistrationHistory, lambda);
}else {
} else {
jgRegistrationHistory.setChangeData(JSON.toJSONString(map));
jgRegistrationHistory.setStatus("new");
jgRegistrationHistory.setRegistrationClass("使用登记");
......@@ -189,7 +196,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// List<String> applicationFormCode = iCreateCodeServicevice.createApplicationFormCode(ApplicationFormTypeEnum.SYDJ.getCode(), 1);
// jgUseRegistration.setApplyNo(applicationFormCode.get(0));
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.SYDJ.getCode(), 1);
if(!ObjectUtils.isEmpty(listResponseModel)){
if (!ObjectUtils.isEmpty(listResponseModel)) {
jgUseRegistration.setApplyNo(listResponseModel.getResult().get(0));
}
jgUseRegistration.setAuditStatus("待提交");
......@@ -206,19 +213,132 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
instanceId = map.get("instanceId").toString();
} else {
// 启动并执行流程
instanceId = startByVariable();
// jgUseRegistration.setInstanceStatus("1460532889249755137");
// jgUseRegistration.setReceiveCompanyCode("610000");
updateExecuteIds(instanceId, jgUseRegistration.getSequenceNbr(), "0");
// instanceId = startByVariable();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
ArrayList<ActWorkflowStartDTO> list = new ArrayList<>();
dto.setProcessDefinitionKey("useRegistration");
dto.setBusinessKey("test");
dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
JgUseRegistration useRegistration = updateData(jgUseRegistration.getSequenceNbr(), "0", workflowResultDto, Boolean.TRUE);
buildTask(useRegistration, workflowResultDto);
}
// updateExecuteIds(instanceId, jgUseRegistration.getSequenceNbr(), "0");
}
if (!ObjectUtils.isEmpty(instanceId)) {
// 执行流程
flowExecute(jgUseRegistration.getSequenceNbr(), instanceId, "0", "");
// 更新数据信息
updateExecuteIds(instanceId, jgUseRegistration.getSequenceNbr(), "0");
// updateExecuteIds(instanceId, jgUseRegistration.getSequenceNbr(), "0");
}
}
}
public JgUseRegistration updateData(Long sequenceNbr, String operate, WorkflowResultDto workflowResultDto, Boolean isFirst) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String role = workflowResultDto.getNextExecutorRoleIds();
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
if (!ObjectUtils.isEmpty(workflowResultDto.getNextTaskCode())) {
taskCode = workflowResultDto.getNextTaskCode();
}
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(sequenceNbr);
jgUseRegistration.setNextTaskId(workflowResultDto.getNextTaskId());
if (isFirst) {
jgUseRegistration.setInstanceStatus(workflowResultDto.getExecutorRoleIds());
jgUseRegistration.setInstanceId(workflowResultDto.getInstanceId());
}
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
jgUseRegistration.setNextExecuteIds(role);
jgUseRegistration.setPromoter(reginParams.getUserModel().getUserId());
if (!ObjectUtils.isEmpty(jgUseRegistration.getInstanceStatus())) {
jgUseRegistration.setInstanceStatus(jgUseRegistration.getInstanceStatus() + "," + role);
} else {
jgUseRegistration.setInstanceStatus(role);
}
if ("0".equals(operate)) {
// 通过操作
jgUseRegistration.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
} else {
// 驳回操作
jgUseRegistration.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject());
jgUseRegistration.setPromoter(null);
}
} else {
// 流程结束
jgUseRegistration.setStatus(taskCode);
if (!ObjectUtils.isEmpty(jgUseRegistration.getSupervisoryCode())) {
// 生成使用登记证编号
jgUseRegistration.setUseRegistrationCode(getCode(jgUseRegistration.getSupervisoryCode()));
jgUseRegistration.setAuditPassDate(new Date());
}
// 更新设备信息
updateEquipMessage(String.valueOf(sequenceNbr), jgUseRegistration.getUseRegistrationCode());
}
this.getBaseMapper().updateById(jgUseRegistration);
return jgUseRegistration;
}
public void test() {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
ArrayList<ActWorkflowStartDTO> list = new ArrayList<>();
dto.setProcessDefinitionKey("useRegistration");
dto.setBusinessKey("test");
dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
StopWatch stopWatch = new StopWatch();
stopWatch.start();
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
stopWatch.stop();
System.out.println("请求耗时:" + stopWatch.getTotalTimeSeconds());
if (!ObjectUtils.isEmpty(processTaskDTOS)) {
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(workflowResultDtos)) {
}
}
}
public void buildTask(JgUseRegistration jgUseRegistration, WorkflowResultDto workflowResultDto) {
// 代办消息
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
dto.setTaskType(String.valueOf(BusinessTypeEnum.JG_USAGE_REGISTRATION.getCode()));
dto.setTaskTypeLabel(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName());
dto.setFlowCreateDate(jgUseRegistration.getCreateDate());
dto.setTaskName(workflowResultDto.getNextTaskName());
dto.setTaskCode(workflowResultDto.getNextTaskCode());
dto.setTaskDesc("来自" + "电梯" + "【" + jgUseRegistration.getSupervisoryCode() + "】," + "【申请单号:" + jgUseRegistration.getApplyNo() + "】");
dto.setTaskContent("来自" + "电梯" + "【" + jgUseRegistration.getSupervisoryCode() + "】," + "【申请单号:" + jgUseRegistration.getApplyNo() + "】");
dto.setRelationId(workflowResultDto.getInstanceId());
dto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
dto.setTaskStatus(commonServiceImpl.getDictionaryCodeByName(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getPass()));
dto.setTaskStatusLabel(workflowResultDto.getNextTaskName());
dto.setStartUser(jgUseRegistration.getCreateUserId());
dto.setStartUser(jgUseRegistration.getRecUserName());
dto.setStartUserCompanyName(jgUseRegistration.getUseUnitName());
dto.setStartDate(new Date());
jgUseRegistration.setInstanceId(workflowResultDto.getInstanceId());
jgUseRegistration.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
dto.setModel(jgUseRegistration);
dto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
list.add(dto);
commonServiceImpl.buildTaskModel(list);
}
public void updateTask() {
HashMap<String, Object> map = new HashMap<>();
TaskV2Model taskV2Model = commonServiceImpl.updateTaskModel(map);
}
public String startByVariable() {
......@@ -236,49 +356,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return instanceId;
}
// public String flowExecute(Long id,String instanceId, String operate, String comment, Boolean update) {
// String role = "";
// String taskName = "流程结束";
// ArrayList<String> roleList = new ArrayList<>();
// try {
// JSONObject task = workFlowFeginService.getTaskNoAuth(instanceId);
// JSONObject taskMessage = JSON.parseObject(JSON.toJSONString(task.get("data")));
// String taskId = taskMessage.getString("id");
// //组装信息
// TaskResultDTO dto = new TaskResultDTO();
// dto.setResultCode("approvalStatus");
// dto.setTaskId(taskId);
// dto.setComment(comment);
// HashMap<String, Object> map = new HashMap<>();
// map.put("approvalStatus", operate);
// dto.setVariable(map);
// //执行流程
// Workflow.taskClient.completeByTask(taskId, dto);
// // 查询下节点任务
// JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
// if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
// JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
// String nextTaskId = nextTask.getString("id");
// taskName = nextTask.getString("name");
// AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
// JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
// for (Object datum : data) {
// if (((Map) datum).containsKey("groupId")) {
// roleList.add(((Map) datum).get("groupId").toString());
// }
// }
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// role= String.join(",", roleList);
// if (update) {
// Boolean rollBack = "1".equals(operate) ? true : false;
// updateStatus(id,instanceId, taskName, role, rollBack);
// }
// return role;
// }
public void updateExecuteIds(String instanceId, Long sequenceNbr, String operate) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String role = "";
......@@ -342,60 +419,29 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
public void flowExecute(Long id, String instanceId, String operate, String comment) {
try {
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(id);
JSONObject task = workFlowFeginService.getTaskNoAuth(instanceId);
JSONObject taskMessage = JSON.parseObject(JSON.toJSONString(task.get("data")));
String taskId = taskMessage.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment(comment);
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
if (jgUseRegistration.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getReject()) || jgUseRegistration.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getRollBack())) {
map.put("approvalStatus", "提交");
}
dto.setVariable(map);
//执行流程
Workflow.taskClient.completeByTask(taskId, dto);
} catch (Exception e) {
e.printStackTrace();
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(id);
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(jgUseRegistration.getNextTaskId());
dto.setComment(comment);
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", operate);
if (jgUseRegistration.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getReject()) || jgUseRegistration.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getRollBack())) {
map.put("approvalStatus", "提交");
}
dto.setVariable(map);
ProcessTaskDTO complete = cmWorkflowService.complete(jgUseRegistration.getNextTaskId(), dto);
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(complete);
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
updateData(jgUseRegistration.getSequenceNbr(), "0", workflowResultDto, Boolean.FALSE);
}
// 更新下一步执行人
updateExecuteIds(instanceId, id, operate);
}
// public void updateStatus(Long id , String instanceId, String taskName, String role, Boolean rollBack) {
// ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// LambdaQueryWrapper<JgUseRegistration> lambda = new QueryWrapper<JgUseRegistration>().lambda();
// lambda.eq(JgUseRegistration::getSequenceNbr, id);
// JgUseRegistration jgUseRegistration = this.getBaseMapper().selectOne(lambda);
// if ("流程结束".equals(taskName)) {
// jgUseRegistration.setStatus(taskName);
// jgUseRegistration.setAuditStatus("已完成");
// } else {
// jgUseRegistration.setNextExecuteIds(role);
// jgUseRegistration.setPromoter(reginParams.getUserModel().getUserId());
// if (!ObjectUtils.isEmpty(jgUseRegistration.getInstanceStatus())) {
// jgUseRegistration.setInstanceStatus(jgUseRegistration.getInstanceStatus() + "," + role);
// } else {
// jgUseRegistration.setInstanceStatus(role);
// }
// UseStatusEnum message = UseStatusEnum.getMessage(taskName);
// jgUseRegistration.setStatus(message.getPass());
// }
// if (rollBack){
// this.getBaseMapper().update(jgUseRegistration, lambda);
// this.getBaseMapper().updatePromoter(jgUseRegistration.getSequenceNbr());
// }else {
// this.getBaseMapper().update(jgUseRegistration, lambda);
// }
// }
public void withdraw(String instanceId) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String taskCode = "";
......@@ -444,23 +490,23 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
public Map<String, Object> getDetail(String id, Long sequenceNbr) {
if (!ObjectUtils.isEmpty(sequenceNbr)){
if (!ObjectUtils.isEmpty(sequenceNbr)) {
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(sequenceNbr);
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, sequenceNbr);
lambda.eq(JgRegistrationHistory::getEquId, id);
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambda);
JSONObject jsonObject = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
jsonObject.put("receiveOrgCode", jgUseRegistration.getReceiveCompanyCode()+"_"+jgUseRegistration.getReceiveOrgName());
jsonObject.put("receiveOrgCode", jgUseRegistration.getReceiveCompanyCode() + "_" + jgUseRegistration.getReceiveOrgName());
return jsonObject;
}
Map<String, Object> detail = this.baseMapper.getDetail(id);
Map<String, Object> inspectDetail = this.baseMapper.getInspectDetail(id);
Map<String, Object> useDetail = this.baseMapper.getUseDetail(id);
if (!ObjectUtils.isEmpty(inspectDetail)){
if (!ObjectUtils.isEmpty(inspectDetail)) {
detail.putAll(inspectDetail);
}
if (!ObjectUtils.isEmpty(useDetail)){
if (!ObjectUtils.isEmpty(useDetail)) {
detail.putAll(useDetail);
}
detail.put("proDuctPhoto", JSON.parse(String.valueOf(detail.get("proDuctPhoto"))));
......@@ -500,22 +546,22 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
throw new BadRequest("使用登记证导出失败,请稍后重试!");
}
//登记机关
if(ValidationUtil.isEmpty(useRegistration.getReceiveOrgName())){
if (ValidationUtil.isEmpty(useRegistration.getReceiveOrgName())) {
throw new BadRequest("使用登记证导出失败,登记机关为空!");
}
exportParamsMap.put("receiveOrgName", useRegistration.getReceiveOrgName());
//使用登记证编号
if(ValidationUtil.isEmpty(useRegistration.getUseRegistrationCode())){
if (ValidationUtil.isEmpty(useRegistration.getUseRegistrationCode())) {
throw new BadRequest("使用登记证导出失败,使用登记证编号为空!");
}
exportParamsMap.put("useRegistrationCode", useRegistration.getUseRegistrationCode());
//使用单位名称
if(ValidationUtil.isEmpty(useRegistration.getUseUnitName())){
if (ValidationUtil.isEmpty(useRegistration.getUseUnitName())) {
throw new BadRequest("使用登记证导出失败,使用单位名称为空!");
}
exportParamsMap.put("useUnitName", useRegistration.getUseUnitName());
//监管码
if(ValidationUtil.isEmpty(useRegistration.getSupervisoryCode())){
if (ValidationUtil.isEmpty(useRegistration.getSupervisoryCode())) {
throw new BadRequest("使用登记证导出失败,监管码为空!");
}
exportParamsMap.put("supervisoryCode", useRegistration.getSupervisoryCode());
......@@ -527,7 +573,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
//查询设备注册信息
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoService.getOne(new QueryWrapper<IdxBizJgRegisterInfo>().eq("RECORD", useRegistrationEq.getEquId()));
if(!ValidationUtil.isEmpty(registerInfo)){
if (!ValidationUtil.isEmpty(registerInfo)) {
//设备种类、类别、品种
String equList = registerInfo.getEquList();//设备种类
String equCategory = registerInfo.getEquCategory();//设备类别
......@@ -536,39 +582,39 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
List<EquipmentCategory> categoryList1 = commonService.getEquipmentCategoryList(equCategory, null);
List<EquipmentCategory> categoryList2 = commonService.getEquipmentCategoryList(equDefine, null);
if (CollectionUtils.isNotEmpty(categoryList0)) {
if(ValidationUtil.isEmpty(categoryList0.get(0).getName())){
if (ValidationUtil.isEmpty(categoryList0.get(0).getName())) {
throw new BadRequest("使用登记证导出失败,设备种类为空!");
}
exportParamsMap.put("equList", categoryList0.get(0).getName());
}
if (CollectionUtils.isNotEmpty(categoryList1)) {
if(ValidationUtil.isEmpty(categoryList1.get(0).getName())){
if (ValidationUtil.isEmpty(categoryList1.get(0).getName())) {
throw new BadRequest("使用登记证导出失败,设备类别为空!");
}
exportParamsMap.put("equCategory", categoryList1.get(0).getName());
}
if (CollectionUtils.isNotEmpty(categoryList2)) {
if(ValidationUtil.isEmpty(categoryList2.get(0).getName())){
if (ValidationUtil.isEmpty(categoryList2.get(0).getName())) {
throw new BadRequest("使用登记证导出失败,设备品种为空!");
}
exportParamsMap.put("equDefine", categoryList2.get(0).getName());
}
//设备代码
if(ValidationUtil.isEmpty(registerInfo.getEquCode())){
if (ValidationUtil.isEmpty(registerInfo.getEquCode())) {
throw new BadRequest("使用登记证导出失败,设备代码为空!");
}
exportParamsMap.put("equCode", registerInfo.getEquCode());
}
IdxBizJgUseInfo useInfo = idxBizJgUseInfoService.getOneData(useRegistrationEq.getEquId());
if(!ValidationUtil.isEmpty(useInfo)){
if(ValidationUtil.isEmpty(useInfo.getUseInnerCode())){
if (!ValidationUtil.isEmpty(useInfo)) {
if (ValidationUtil.isEmpty(useInfo.getUseInnerCode())) {
throw new BadRequest("使用登记证导出失败,设备单位内部编码为空!");
}
//单位内部编码
exportParamsMap.put("useInnerCode", useInfo.getUseInnerCode());
//设备使用地址
String fullAddress="";
String fullAddress = "";
if (!ObjectUtils.isEmpty(useInfo.getProvinceName())) {
fullAddress += useInfo.getProvinceName();
}
......@@ -584,7 +630,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if (!ObjectUtils.isEmpty(useInfo.getAddress())) {
fullAddress += useInfo.getAddress();
}
if(ValidationUtil.isEmpty(fullAddress)){
if (ValidationUtil.isEmpty(fullAddress)) {
throw new BadRequest("使用登记证导出失败,设备使用地址为空!");
}
exportParamsMap.put("fullAddress", fullAddress);
......@@ -592,8 +638,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
IdxBizJgFactoryInfo factoryInfo = idxBizJgFactoryInfoService.getOneData(useRegistrationEq.getEquId());
//产品编号(出厂编号)
if(!ValidationUtil.isEmpty(factoryInfo)){
if(ValidationUtil.isEmpty(factoryInfo.getFactoryNum())){
if (!ValidationUtil.isEmpty(factoryInfo)) {
if (ValidationUtil.isEmpty(factoryInfo.getFactoryNum())) {
throw new BadRequest("使用登记证导出失败,产品编号为空!");
}
exportParamsMap.put("factoryNum", factoryInfo.getFactoryNum());
......
......@@ -51,7 +51,7 @@
"type": "105",
"pageType": "look",
"name": "移装告知",
"url": ""
"url": "/mixuap?appId=1742358052905971713&id=1736722525146083329&formType=detail&userId={userId}&roleIds={roleIds}"
},
{
"type": "105",
......@@ -75,25 +75,25 @@
"type": "107",
"pageType": "look",
"name": "使用登记",
"url": "url:/mixuap?appId=1742358052905971713&id=1735202405437435906&roleIds={roleIds}&userId={userId}&pageType=look"
"url": "/mixuap?appId=1742358052905971713&id=1734864899516952578&roleIds={roleIds}&userId={userId}&pageType=look"
},
{
"type": "107",
"pageType": "edit",
"name": "使用登记",
"url": "url:/mixuap?appId=1742358052905971713&id=1735202405437435906&roleIds={roleIds}&userId={userId}&pageType=edit"
"url": "/mixuap?appId=1742358052905971713&id=1734864899516952578&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "108",
"pageType": "look",
"name": "更名变更登记",
"url": "/mixuap?appId=1742358052905971713&id=1739186702624256001&roleIds={roleIds}&userId={userId}&pageType=look"
"pageType": "look",
"name": "更名变更登记",
"url": "/mixuap?appId=1742358052905971713&id=1739186702624256001&roleIds={roleIds}&userId={userId}&formType=detail"
},
{
"type": "108",
"pageType": "edit",
"name": "更名变更登记",
"url": "/mixuap?appId=1742358052905971713&id=1739186702624256001&roleIds={roleIds}&userId={userId}&pageType=edit"
"url": "/mixuap?appId=1742358052905971713&id=1739186702624256001&roleIds={roleIds}&userId={userId}&formType=detail"
},
{
"type": "109",
......@@ -123,13 +123,13 @@
"type": "111",
"name": "改造变更登记",
"pageType": "look",
"url": "/mixuap?appId=1742358052905971713&id=1737415693835464705&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&pageType=look&noticeStatus=%s&instanceId=%s"
"url": "/mixuap?appId=1742358052905971713&id=1737415693835464705&roleIds={roleIds}&nextExecuteIds={userId}&pageType=look"
},
{
"type": "111",
"pageType": "edit",
"name": "改造变更登记",
"url": "/mixuap?appId=1742358052905971713&id=1737415710281330690&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&pageType=edit&noticeStatus=%s&userId=%s&instanceId=%s"
"url": "/mixuap?appId=1742358052905971713&id=1737415710281330690&roleIds={roleIds}&nextExecuteIds={userId}&pageType=edit"
},
{
"type": "112",
......
......@@ -186,12 +186,12 @@ public class UseInfo extends AbstractEquipBaseEntity {
@TableField(value ="\"IS_NOT_ES\"")
private Integer isNotEs;
@TableField(value = "NEXT_INSPECT_DATE")
@TableField(value = "\"NEXT_INSPECT_DATE\"")
private Date nextInspectDate;
@TableField(value = "LAST_INSPECT_REPORT_NO")
@TableField(value = "\"LAST_INSPECT_REPORT_NO\"")
private String lastInspectReportNo;
@TableField(value = "LAST_INSPECT_TYPE")
@TableField(value = "\"LAST_INSPECT_TYPE\"")
private String lastInspectType;
}
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