Commit be666dca authored by suhuiguang's avatar suhuiguang

feat(检验检测):计划排期

1.报检受理后增加排期流程
parent 7b4594d3
......@@ -11,7 +11,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
import java.util.Map;
@FeignClient(contextId = "jyjc", name = "${workflow.feign.name:AMOS-API-WORKFLOW}", path = "workflow", configuration = {XidFeignConfiguration.class})
@FeignClient(contextId = "jyjc", name = "${workflow.feign.name:AMOS-API-WORKFLOW-TZS}", path = "workflow-tzs", configuration = {XidFeignConfiguration.class})
public interface WorkflowFeignClient {
/***
......
......@@ -50,6 +50,9 @@ public class InspectionPlanCommonServiceImpl {
@Autowired
private DataDictionaryServiceImpl dataDictionaryService;
@Autowired
private CommonServiceImpl commonService;
private final static String msgTpl = "%s申请单号:%s,进行%s";
......@@ -60,7 +63,7 @@ public class InspectionPlanCommonServiceImpl {
ta.setInstanceId(model.getInstanceId());
ta.setStatus(model.getStatus());
ta.setPromoter(model.getPromoter());
ta.setSequenceNbr(model.getSequenceNbr());
ta.setSequenceNbr(Long.parseLong(model.getSSeq()));
ta.setProcessInstanceId(model.getInstanceId());
ta.setProcessKey(model.getProcessKey());
ta.setNextTaskId(model.getNextTaskId());
......@@ -75,9 +78,10 @@ public class InspectionPlanCommonServiceImpl {
dto.setTaskTypeLabel(BusinessTypeEnum.INSPECTION_PLAN.getName());
dto.setRelationId(model.getInstanceId());
dto.setExecuteUserIds(model.getNextExecuteUserIds());
dto.setTaskStatusLabel("未处理");
dto.setFlowStatus(Integer.valueOf(model.getStatus()));
dto.setFlowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setTaskStatus(commonService.getDictionaryCodeByName(model.getStatus()));
dto.setTaskStatusLabel(model.getStatus());
dto.setFlowStatus(dto.getTaskStatus());
dto.setFlowStatusLabel(model.getStatus());
dto.setStartUserId(RequestContext.getExeUserId());
dto.setStartUser(reginParams.getUserModel().getRealName());
dto.setStartUserCompanyName(reginParams.getCompany().getCompanyName());
......@@ -102,4 +106,5 @@ public class InspectionPlanCommonServiceImpl {
DataDictionary dataDictionary = dataDictionaryService.getByCode(code, dictType);
return dataDictionary != null ? dataDictionary.getName() : "";
}
}
......@@ -90,7 +90,6 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
updateWrapper.set(JyjcInspectionApplication::getPlanData, JSONObject.toJSONString(model));
updateWrapper.eq(BaseEntity::getSequenceNbr, applicationSeq);
updateWrapper.set(JyjcInspectionApplication::getPlanCreateDate, new Date());
updateWrapper.set(JyjcInspectionApplication::getPlanInspectionDate, model.getPlanInspectionDate());
inspectionApplicationService.update(updateWrapper);
// 异步写入计划排期日期,统计办理时效使用
this.updatePlanCreateDate(applicationSeq);
......@@ -144,10 +143,13 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
JSONObject res = new JSONObject();
JyjcCmTask jyjcCmTask = cmTaskService.getOneBySSeq(String.valueOf(applicationSeq));
BeanUtil.copyProperties(jyjcCmTask, res);
res.putAll(JSONObject.parseObject(jyjcCmTask.getFormData()));;
res.putAll(Optional.ofNullable(JSONObject.parseObject(jyjcCmTask.getFormData())).orElse(new JSONObject()));
Map<String, Object> applyInfo = inspectionApplicationService.selectBySeq(Long.parseLong(applicationSeq), null);
applyInfo.remove("planData");
res.put("applyInfo", applyInfo);
res.put("inspectionUnitCode", applyInfo.get("inspectionUnitCode"));
res.remove("operate");
res.remove("comment");
return res;
}
......@@ -191,22 +193,21 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
// 驳回后不能撤回
jyjcCmTask.setPromoter(OPERATE_PASS.equals(operate) ? RequestContext.getExeUserId() : "");
jyjcCmTask.setFormData(params.toJSONString());
cmTaskService.save(jyjcCmTask);
cmTaskService.saveOrUpdate(jyjcCmTask);
updateTaskModel(jyjcCmTask);
// 创建新的待办
createdTaskModel(jyjcCmTask, reginParams, application);
// 更新新的缓存校验数据到redis
} else {
// 更新业务信息
jyjcCmTask.setStatus(FlowStatusEnum.TO_BE_FINISHED.getName());
jyjcCmTask.setNextTaskCode("");
jyjcCmTask.setNextTaskId("");
jyjcCmTask.setPromoter("");
jyjcCmTask.setNextExecuteUserIds("");
jyjcCmTask.setFormData(params.toJSONString());
cmTaskService.updateById(jyjcCmTask);
LambdaUpdateWrapper<JyjcInspectionApplication> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(BaseEntity::getSequenceNbr, applicationSeq);
updateWrapper.set(JyjcInspectionApplication::getPlanInspectionDate, planModel.getRemark2());
// 通过后将数据回写到业务的字段中,兼容之前的数据格式
updateWrapper.set(JyjcInspectionApplication::getInspectionChargePerson, planModel.getInspectionChargePerson());
updateWrapper.set(JyjcInspectionApplication::getRemark2, planModel.getRemark2());
......@@ -258,12 +259,7 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
}
// 流程执行时,状态及权限校验
commonService.checkForRevocationFlow(nextTaskId, instanceId);
JyjcInspectionApplicationModel inspectionApplicationModel = inspectionApplicationService.queryBySeq(Long.valueOf(applicationSeq));
if (inspectionApplicationModel == null) {
log.warn("JyjcInspectionApplicationModel Not Found!sequenceNbr => {}", applicationSeq);
return false;
};
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(inspectionApplicationModel.getProcessInstanceId());
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(instanceId);
List<WorkflowResultDto> workflowResultDtos = taskModelService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
WorkflowResultDto workflowResultDto = workflowResultDtos.get(0);
JyjcCmTask jyjcCmTask = cmTaskService.getOneBySSeq(applicationSeq);
......@@ -276,10 +272,14 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(jyjcCmTask));
jsonObject.put("nextTaskId", workflowResultDto.getNextTaskId());
jsonObject.put("taskType", BusinessTypeEnum.INSPECTION_PLAN.getCode());
jsonObject.put("flowStatus", this.getDictNameByCode(jyjcCmTask.getStatus()));
jsonObject.put("flowStatus", commonService.getDictionaryCodeByName(jyjcCmTask.getStatus()));
jsonObject.put("flowStatusLabel", jyjcCmTask.getStatus());
// 赋空 否则后续公共代码报错
jsonObject.put("nextExecuteUser", "");
// url参数主键为业务主键,详情查询使用
jsonObject.put("sequenceNbr", jyjcCmTask.getSSeq());
jsonObject.remove("formData");
taskModelService.rollbackTask(inspectionApplicationModel.getProcessInstanceId(), jsonObject);
taskModelService.rollbackTask(instanceId, jsonObject);
commonService.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jyjcCmTask));
return true;
} catch (InterruptedException e) {
......@@ -294,15 +294,23 @@ public class InspectionPlanServiceImpl extends InspectionPlanCommonServiceImpl
private void updateTaskModel(JyjcCmTask model) {
Map<String, Object> params = new HashMap<>();
params.put("relationId", model.getSequenceNbr());
params.put("taskStatus", model.getStatus());
params.put("relationId", model.getInstanceId());
params.put("taskStatus", commonService.getDictionaryCodeByName(model.getStatus()));
params.put("taskStatusLabel", model.getStatus());
params.put("flowStatus", model.getStatus());
params.put("flowStatus", commonService.getDictionaryCodeByName(model.getStatus()));
params.put("flowStatusLabel", model.getStatus());
JSONObject jsonModel = (JSONObject) JSONObject.toJSON(model);
taskModelService.removeNoUsedKey(jsonModel);
Map<String, Object> modelMap = new HashMap<>(jsonModel);
params.put("model", BeanUtil.toBeanIgnoreError(modelMap, JyjcInspectionApplicationModel.class));
TaskMessageDto ta = new TaskMessageDto();
ta.setInstanceId(model.getInstanceId());
ta.setStatus(model.getStatus());
ta.setPromoter(model.getPromoter());
ta.setSequenceNbr(Long.parseLong(model.getSSeq()));
ta.setProcessInstanceId(model.getInstanceId());
ta.setProcessKey(model.getProcessKey());
ta.setNextTaskId(model.getNextTaskId());
ta.setBizType(model.getSType());
params.put("model", ta);
taskModelService.updateTaskModel(params);
}
......
......@@ -587,7 +587,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
Page<JyjcInspectionApplicationModel> result = this.getBaseMapper().selectForPage(page, model, identity, currentApplicationUnitCode, currentInspectionUnitCode, currentUserId, sortMap, orgCode);
result.getRecords().forEach(r -> {
r.setLoginPersonCompanyCode(companyCode);
this.addPlanAndConfirmStatus(r, model);
// this.addPlanAndConfirmStatus(r, model);
});
return result;
}
......@@ -606,7 +606,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
Page<JyjcInspectionApplicationModel> result = this.getBaseMapper().selectForPage2(page, model, client, companyCode, sortMap, reginParams.getCompany().getOrgCode(), agencyClassify);
result.getRecords().forEach(r -> {
r.setLoginPersonCompanyCode(companyCode);
this.addPlanAndConfirmStatus(r, model);
// this.addPlanAndConfirmStatus(r, model);
});
return result;
}
......@@ -963,7 +963,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
try {
workBenchTaskCreateService.createOneTask(jyjcInspectionApplication, reginParams);
} catch (Exception e) {
log.error("报检受理后,创建计划排期失败,单据信息:{},错误信息:{}",jyjcInspectionApplication.getApplicationNo(), e.getMessage());
log.error("报检受理后,创建计划排期失败,单据信息:{},错误信息:{}",jyjcInspectionApplication.getApplicationNo(), e.getMessage(), e);
}
}
......
......@@ -15,6 +15,7 @@ import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
......@@ -24,6 +25,7 @@ import java.util.*;
@Service
@RequiredArgsConstructor
@Slf4j
public class WorkBenchTaskCreateServiceImpl extends InspectionPlanCommonServiceImpl {
private final CmWorkflowServiceImpl cmWorkflowService;
......@@ -34,10 +36,11 @@ public class WorkBenchTaskCreateServiceImpl extends InspectionPlanCommonServiceI
private final CommonServiceImpl commonService;
@Value("${inspect.plan.process.key:dddd}")
@Value("${inspect.plan.process.key:inspect_charge_person_confirm}")
private String processKey;
public void createOneTask(JyjcInspectionApplication application, ReginParams reginParams) {
log.info("开始创建工作台待办:{}, {}", application, reginParams);
// 启动流程
List<WorkflowResultDto> workflowResultDtos = startProcess(application);
// 保存数据
......
......@@ -79,5 +79,11 @@
"pageType": "edit",
"typeName": "计划排期",
"url": "/mixuap?appId=1742358052905971713&id=2039590365681446914&userId={userId}&pageType=edit"
},
{
"type": "125",
"pageType": "look",
"typeName": "计划排期",
"url": "/mixuap?appId=1742358052905971713&id=2039590365681446914&userId={userId}&pageType=look"
}
]
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment