Commit 7c8be4fc authored by lisong's avatar lisong

提交接口修改

parent 30d814d2
......@@ -22,7 +22,7 @@ public enum BizTypeEnum {
SUPERVISE("supervise", "监督检验","115"),
FIRST_INSPECTION("firstinspect", "定检","116"),
DETECTION("detection", "检测","117"),
BUSINESS_OPEN("businessOpen", "开通","114");
BUSINESS_OPEN("businessOpen", "检验业务开通","114");
private String code;
private String name;
......
package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
......@@ -56,9 +57,10 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JyjcOpeningApplicationModel model) {
model = jyjcOpeningApplicationServiceImpl.saveOrUpdateModel(model, false);
return ResponseHelper.buildResponse(model);
public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JSONObject model) {
JyjcOpeningApplicationModel jyjcOpeningApplicationModel = new JyjcOpeningApplicationModel();
BeanUtil.copyProperties(model.get("applyInfo"),jyjcOpeningApplicationModel);
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdateModel(jyjcOpeningApplicationModel, false));
}
/**
......@@ -78,7 +80,9 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/submit")
@ApiOperation(httpMethod = "PUT", value = "保存并提交", notes = "保存并提交")
public ResponseModel<JyjcOpeningApplicationModel> updateBySequenceNbrAndStartFlow(@RequestBody JyjcOpeningApplicationModel model, @RequestParam(value = "sequenceNbr", required = false) Long sequenceNbr) {
public ResponseModel<JyjcOpeningApplicationModel> updateBySequenceNbrAndStartFlow(@RequestBody JSONObject jsonObject, @RequestParam(value = "sequenceNbr", required = false) Long sequenceNbr) {
JyjcOpeningApplicationModel model = new JyjcOpeningApplicationModel();
BeanUtil.copyProperties(jsonObject.get("applyInfo"),model);
model.setSequenceNbr(sequenceNbr);
if (sequenceNbr != null) {
JyjcOpeningApplicationModel jyjcOpeningApplicationModel = jyjcOpeningApplicationServiceImpl.queryDetail(sequenceNbr);
......@@ -217,7 +221,7 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "撤回业务开通申请", notes = "撤回业务开通申请")
@GetMapping(value = "/rollBackFlow")
public ResponseModel<JSONObject> overflow(@RequestParam("sequenceNbr") String sequenceNbr) {
public ResponseModel<Object> overflow(@RequestParam("sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.stopFlow(sequenceNbr));
}
......
......@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.enums.WorkFlowEnum;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
......@@ -43,6 +44,7 @@ import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ObjectUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
......@@ -124,8 +126,20 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
isUpdate = true;
}
}
List<String> codes = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.JY.getCode(), 1).getResult();
model.setApplicationSeq(codes.get(0));
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
model.setPromoter(reginParams.getUserModel().getUserId());
if (!isUpdate) {
CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany();
model.setUnitCode(companyBo.getCompanyCode());
model.setUnitCodeName(companyBo.getCompanyName());
model.setCreateUserId(reginParams.getUserModel().getUserId());
this.createWithModel(model);
}
if (enableStartFlow) {
model.setStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
model.setApplyTime(new Date());
if (StringUtils.isBlank(instanceId)) {
// 未开启过工作流则进行开启 startProcess
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
......@@ -146,65 +160,63 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
model.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
model.setNextTaskId(workflowResultDto.getNextTaskId());
model.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
// 创建代办
buildTask(model, workflowResultDto);
}
} else {
// 存在流程,执行
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(model.getNextTaskId());
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", "提交");
dto.setVariable(map);
ProcessTaskDTO complete = cmWorkflowService.complete(model.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 workflowResult = resultDto.get(0);
model.setWorkflowProstanceId(workflowResult.getInstanceId());
model.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
model.setNextTaskId(workflowResult.getNextTaskId());
model.setNextExecuteUserIds(workflowResult.getNextExecutorUserIds());
}
map.put("sequenceNbr",model.getSequenceNbr());
map.put("op", "1");
execueFlow(map);
// TaskResultDTO dto = new TaskResultDTO();
// dto.setResultCode("approvalStatus");
// dto.setTaskId(model.getNextTaskId());
// HashMap<String, Object> map = new HashMap<>();
// map.put("approvalStatus", "提交");
// dto.setVariable(map);
// ProcessTaskDTO complete = cmWorkflowService.complete(model.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 workflowResult = resultDto.get(0);
// model.setWorkflowProstanceId(workflowResult.getInstanceId());
// model.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
// model.setNextTaskId(workflowResult.getNextTaskId());
// model.setNextExecuteUserIds(workflowResult.getNextExecutorUserIds());
// model.setPromoter(reginParams.getUserModel().getUserId());
// // 更新代办
// }
}
model.setStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode() + "");
model.setApplyTime(new Date());
} else {
// 只有第一次改为待提交
if (entity == null) {
model.setStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode() + "");
// 暂存生成代办逻辑
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(model, taskMessageDto);
// 数据参数
dto.setModel(taskMessageDto);
// 摘要
dto.setTaskContent(String.format("检验检测业务开通办理,【申请单号:%s】", model.getApplicationSeq()));
// 申请单号
dto.setTaskCode(model.getApplicationSeq());
// 业务类型
dto.setTaskType("114");
// 业务主键
dto.setRelationId(String.valueOf(model.getSequenceNbr()));
dto.setNextExecuteUser("");
dto.setTaskName("");
list.add(dto);
commonServiceImpl.buildTaskModel(list);
}
}
if (!isUpdate) {
CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany();
model.setUnitCode(companyBo.getCompanyCode());
model.setUnitCodeName(companyBo.getCompanyName());
List<String> codes = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.JY.getCode(), 1).getResult();
model.setApplicationSeq(codes.get(0));
model.setCreateUserId(reginParams.getUserModel().getUserId());
model = this.createWithModel(model);
// 暂存生成代办逻辑
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(model, taskMessageDto);
// 数据参数
dto.setModel(taskMessageDto);
// 摘要
dto.setTaskContent(String.format("检验检测业务开通办理,【申请单号:%s】", model.getApplicationSeq()));
// 申请单号
dto.setTaskCode(model.getApplicationSeq());
// 业务类型
dto.setTaskType(String.valueOf(BizTypeEnum.BUSINESS_OPEN.getCode()));
// 业务主键
dto.setRelationId(String.valueOf(model.getSequenceNbr()));
dto.setNextExecuteUser("");
list.add(dto);
commonServiceImpl.buildTaskModel(list);
return model;
} else {
return this.updateWithModel(model);
}
return this.updateWithModel(model);
}
......@@ -504,89 +516,44 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
* 接收/驳回通知检验单
*/
public void execueFlow(Map<String, Object> params) {
String role = "";
String taskName = "流程结束";
Long sequenceNbr = Long.parseLong(params.get("sequenceNbr") + "");
String op = params.get("op").toString();
String instanceId = params.get("instanceId").toString();
String comments = params.get("comments").toString();
try {
AjaxResult ajaxResult = Workflow.taskClient.getTaskNoAuth(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
if (!ValidationUtil.isEmpty(dataObject)) {
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
HashMap<String, Object> varibalble = new HashMap<>();
varibalble.put("approvalStatus", op);
dto.setVariable(varibalble);
dto.setComment(comments);
//执行流程
Workflow.taskClient.completeByTask(taskId, dto);
// 查询下节点任务
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
if ("0".equals(op) && ObjectUtils.isNotEmpty(params.get("originalDataId"))) {
String originalDataId = params.get("originalDataId").toString();
JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationMapper.selectById(originalDataId);
List<String> detectionRegion = (List<String>) params.get("detectionRegion");
// String detectionRegionName = params.get("detectionRegionName").toString();
if(!detectionRegion.isEmpty()){
jyjcOpeningApplication.setDetectionRegion(detectionRegion);
}
// jyjcOpeningApplication.setDetectionRegionName(detectionRegionName);
// if(ObjectUtils.isEmpty(jyjcOpeningApplication.getAcceptDate())){
// jyjcOpeningApplication.setAcceptDate(new Date());
// }
jyjcOpeningApplicationMapper.updateById(jyjcOpeningApplication);
}
role = (String) nextNodeInfo.get("role");
taskName = (String) nextNodeInfo.get("taskName");
}
String status;
JyjcOpeningApplication data = jyjcOpeningApplicationMapper.selectById(sequenceNbr);
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(data.getNextTaskId());
dto.setComment(params.get("comments").toString());
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
dto.setVariable(map);
ProcessTaskDTO complete = cmWorkflowService.complete(data.getNextTaskId(), dto);
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(complete);
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!org.springframework.util.ObjectUtils.isEmpty(resultDto) && !org.springframework.util.ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
if ("1".equals(op)) {
// 如果是回退, 则业务状态改为驳回
status = FlowStatusEnum.REJECTED.getCode() + "";
params.put("relationId",instanceId);
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals("opening" )&& "edit".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
taskV2Model.setRoutePath(url);
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
String roles = (String) nextNodeInfo.get("role");
taskV2Model.setExecuteUserIds(roles);
commonservice.buildTaskModel(BeanUtil.beanToMap(taskV2Model));
// 驳回
data.setStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
data.setPromoter("");
// 更新代办
updateTask(data, workflowResultDto);
} else {
if ("流程结束".equals(taskName)) {
status = FlowStatusEnum.TO_BE_FINISHED.getCode() + "";
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
} else {
status = FlowStatusEnum.TO_BE_PROCESSED.getCode() + "";
}
// 流程结束
data.setStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
// 更新代办
HashMap<String, Object> taskParams = new HashMap<>();
taskParams.put("relationId", data.getWorkflowProstanceId());
taskParams.put("flowStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
taskParams.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
taskParams.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
taskParams.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
taskParams.put("model", data);
commonServiceImpl.updateTaskModel(taskParams);
}
Boolean rollBack = "1".equals(op) ? true : false;
updateModelByInstanceId(sequenceNbr, instanceId, status, role, rollBack);
} catch (Exception e) {
e.printStackTrace();
log.error("execueFlow error:{}", e);
}
jyjcOpeningApplicationMapper.updateById(data);
}
......@@ -594,24 +561,14 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
/**
* 撤回流程办理单
*/
public JSONObject stopFlow(String sequenceNbr) {
JSONObject jsonObject= new JSONObject();
public JyjcOpeningApplication stopFlow(String sequenceNbr) {
JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationMapper.selectById(sequenceNbr);
try {
//撤回流程
jsonObject = workflowFeignClient.rollBack(jyjcOpeningApplication.getWorkflowProstanceId());
if (ObjectUtils.isEmpty(jsonObject)) {
}
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(jyjcOpeningApplication.getWorkflowProstanceId());
String role = (String) nextNodeInfo.get("role");
Long id = Long.parseLong(sequenceNbr);
commonservice.deleteTaskModel(jyjcOpeningApplication.getWorkflowProstanceId());
updateModelByInstanceId(id, jyjcOpeningApplication.getWorkflowProstanceId(), FlowStatusEnum.ROLLBACK.getCode() + "", role, true);
} catch (Exception e) {
throw new BadRequest("撤回流程失败,请联系管理员!");
}
return jsonObject;
//撤回流程
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(jyjcOpeningApplication.getWorkflowProstanceId());
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(processTaskDTO);
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
return jyjcOpeningApplication;
}
private String getWorkflowStatus(JSONObject dataObject) {
......@@ -672,4 +629,61 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return jyjcOpeningApplicationMapper.selectOverdueData();
}
public void buildTask(JyjcOpeningApplicationModel model, WorkflowResultDto workflowResultDto) {
ReginParams reginParams = commonserviceImpl.getReginParamsOfCurrentUser();
// 代办消息
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
dto.setTaskType("114");
dto.setTaskTypeLabel(BizTypeEnum.BUSINESS_OPEN.getName());
dto.setFlowCreateDate(model.getRecDate());
dto.setTaskName(workflowResultDto.getNextTaskName());
dto.setTaskCode(workflowResultDto.getNextTaskCode());
dto.setTaskContent(String.format("检验检测业务开通办理,【申请单号:%s】", model.getApplicationSeq()));
dto.setRelationId(workflowResultDto.getInstanceId());
dto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
dto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
dto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setFlowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
dto.setFlowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setStartUserId(reginParams.getUserModel().getUserId());
dto.setStartUser(reginParams.getUserModel().getRealName());
dto.setStartUserCompanyName(reginParams.getCompany().getCompanyCode());
dto.setStartDate(new Date());
model.setWorkflowProstanceId(workflowResultDto.getInstanceId());
model.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
dto.setModel(model);
dto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
list.add(dto);
commonServiceImpl.buildTaskModel(list);
}
public void updateTask(JyjcOpeningApplication model, WorkflowResultDto workflowResultDto) {
// 更新代办状态
HashMap<String, Object> params = new HashMap<>();
params.put("relationId", model.getWorkflowProstanceId());
params.put("flowStatus", model.getStatus());
params.put("flowStatusLabel", model.getStatus());
params.put("taskStatus", model.getStatus());
params.put("taskStatusLabel", model.getStatus());
TaskV2Model taskV2Model = commonServiceImpl.updateTaskModel(params);
// 创建新的代办
if (!ObjectUtils.isEmpty(taskV2Model)) {
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
taskModelDto.setModel(model);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
commonServiceImpl.buildTaskModel(Collections.singletonList(taskModelDto));
} else {
JyjcOpeningApplicationModel applicationModel = new JyjcOpeningApplicationModel();
BeanUtil.copyProperties(model, applicationModel);
buildTask(applicationModel, workflowResultDto);
}
}
}
\ No newline at end of file
......@@ -36,15 +36,15 @@
"pageType": "edit",
"url": "/mixuap?appId=1742358052905971713&id=1736733779709423618&roleIds={roleIds}&userId={userId}&pageType=edit"
}, {
"type":"businessOpen",
"type":"114",
"pageType": "draft",
"url": "/mixuap?appId=1742358052905971713&id=1734569644833927170&roleIds={roleIds}&userId={userId}&pageType=edit"
}, {
"type":"businessOpen",
"type":"114",
"pageType": "look",
"url": "/mixuap?appId=1742358052905971713&id=1735201757841092609&roleIds={roleIds}&userId={userId}&pageType=edit"
}, {
"type":"businessOpen",
"type":"114",
"pageType": "edit",
"url": "/mixuap?appId=1742358052905971713&id=1735201757841092609&roleIds={roleIds}&userId={userId}&pageType=edit"
}
......
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