Commit 7ddc4463 authored by yangyang's avatar yangyang

fix(检验业务开通):更新按钮权限 & 数据权限

parent 3454460c
......@@ -112,4 +112,10 @@ public class JyjcOpeningApplication extends BaseEntity {
*/
@TableField (value = "workflow_active_key")
private String workflowActiveKey;
/**
* 工作流下一个可执行节点
*/
@TableField("next_execute_ids")
private String nextExecuteIds;
}
......@@ -14,23 +14,9 @@ public enum FlowStatusEnum {
*/
SUBMITTED(6611, "已提交"),
/**
* 待受理
* 已完成
*/
TO_BE_PROCESSED(6612, "待受理"),
/**
* 已办理
*/
HAVE_PROCESSED(6613, "已办理"),
/**
* 已驳回
*/
REJECTED(6614, "已驳回"),
/**
* 已撤回
*/
ROLLBACK(6615, "已撤回");
TO_BE_FINISHED(6612, "已完成");
private final int code;
......
......@@ -73,6 +73,9 @@ public class JyjcOpeningApplicationModel extends BaseModel {
@ApiModelProperty (value = "工作流节点")
private String workflowActiveKey;
@ApiModelProperty (value = "工作流下一个可执行节点")
private String nextExecuteIds;
/* ---------------- -------------- */
@ApiModelProperty (value = "企业资质信息")
List<TzBaseUnitLicenceDto> baseUnitLicences;
......
......@@ -24,7 +24,8 @@
workflow_role,
unit_code_name,
status_name,
workflow_active_key
workflow_active_key,
next_execute_ids
from tz_jyjc_opening_application
<where>
<if test="jyjcOpeningApplicationRequstDto.applicationSeq != '' and jyjcOpeningApplicationRequstDto.applicationSeq != null">
......
......@@ -80,6 +80,7 @@ public class JyjcOpeningApplicationController extends BaseController {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdateModel(model,true));
}
@Deprecated
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/startFlow/{sequenceNbr}")
@ApiOperation(httpMethod = "POST", value = "重新提交开通申请", notes = "重新提交开通申请")
......@@ -99,7 +100,7 @@ public class JyjcOpeningApplicationController extends BaseController {
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationServiceImpl.getById(sequenceNbr);
List<String> status = Arrays.asList(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()),String.valueOf(FlowStatusEnum.REJECTED.getCode()),String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
List<String> status = Arrays.asList(String.valueOf(FlowStatusEnum.SUBMITTED.getCode()),String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
if(!status.contains(jyjcOpeningApplication.getStatus())){
throw new BadRequest("除撤回跟驳回的流程之外其余流程不可删除!");
}
......
......@@ -114,16 +114,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// 未开启过工作流则进行开启 startProcess
instanceId = startFlow("1");
}
JSONObject dataObject = getTask(instanceId);
JSONArray executorArray = dataObject.getJSONObject("nodeInfo").getJSONArray("executor");
if (!ValidationUtil.isEmpty(executorArray)) {
String roleGroups = executorArray.stream().map(json -> Optional.ofNullable(((LinkedHashMap) json).get("groupId")).orElse("").toString()).collect(Collectors.joining(","));
model.setWorkflowRole(roleGroups);
}
// JSONObject dataObject = getTask(instanceId);
// JSONArray executorArray = dataObject.getJSONObject("nodeInfo").getJSONArray("executor");
// if (!ValidationUtil.isEmpty(executorArray)) {
// String roleGroups = executorArray.stream().map(json -> Optional.ofNullable(((LinkedHashMap) json).get("groupId")).orElse("").toString()).collect(Collectors.joining(","));
// model.setWorkflowRole(roleGroups);
// }
model.setStatus(FlowStatusEnum.SUBMITTED.getCode() + "");
model.setStatusName(FlowStatusEnum.SUBMITTED.getName());
model.setApplyTime(new Date());
model.setWorkflowActiveKey(dataObject.getString("taskDefinitionKey"));
// model.setWorkflowActiveKey(dataObject.getString("taskDefinitionKey"));
model.setWorkflowProstanceId(instanceId);
// 默认自动执行第一步
execueFlow(MapBuilder.<String, Object>create().put("op", "0").put("instanceId", instanceId).put("comments", "").build());
......@@ -156,19 +156,25 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return model;
}
public void updateModelByInstanceId(String instanceId, String status) {
public void updateModelByInstanceId(String instanceId, String status, String role) {
JyjcOpeningApplication entity = this.lambdaQuery().eq(JyjcOpeningApplication::getWorkflowProstanceId, instanceId).one();
if (entity == null) {
return;
}
JSONObject taskJson = getTask(instanceId);
if (taskJson == null) {
log.warn("流程=>{}查询不到或已结束", instanceId);
return;
// JSONObject taskJson = getTask(instanceId);
// if (taskJson == null) {
// log.warn("流程=>{}查询不到或已结束", instanceId);
// return;
// }
// entity.setWorkflowRole(getWorkflowRoleGroups(taskJson));
// entity.setWorkflowActiveKey(taskJson.getString("taskDefinitionKey"));
entity.setNextExecuteIds(role);
if (!org.springframework.util.ObjectUtils.isEmpty(entity.getWorkflowRole())) {
entity.setWorkflowRole(entity.getWorkflowRole() + "," + role);
} else {
entity.setWorkflowRole(role);
}
entity.setWorkflowRole(getWorkflowRoleGroups(taskJson));
// entity.setStatus(getWorkflowStatus(taskJson));
entity.setWorkflowActiveKey(taskJson.getString("taskDefinitionKey"));
entity.setStatus(status);
entity.setStatusName(FlowStatusEnum.getNameByType(Long.parseLong(status)));
this.updateById(entity);
......@@ -323,12 +329,13 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return ((Map) ajaxResult.get("data")).get("id").toString();
}
@Autowired
private WorkflowHelper workflowHelper;
/**
* 接收/驳回通知检验单
*/
public void execueFlow(Map<String, Object> params) {
String role = "";
String taskName = "流程结束";
String op = params.get("op").toString();
String instanceId = params.get("instanceId").toString();
String comments = params.get("comments").toString();
......@@ -348,20 +355,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
//执行流程
AjaxResult ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
// 查询下节点任务
JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
if (!org.springframework.util.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")) {
role = ((Map) datum).get("groupId").toString();
continue;
}
}
}
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
if (op.equals("0")) {
String originalDataId = params.get("originalDataId").toString();
JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationMapper.selectById(originalDataId);
......@@ -376,14 +370,22 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
jyjcOpeningApplicationMapper.updateById(jyjcOpeningApplication);
}
updateModelByInstanceId(instanceId, "0".equals(op) ? FlowStatusEnum.HAVE_PROCESSED.getCode() + "" : FlowStatusEnum.REJECTED.getCode() + "");
String taskName = "";
String status;
if ("流程结束".equals(taskName)) {
status = FlowStatusEnum.TO_BE_FINISHED.getCode() + "";
} else {
status = "1".equals(op) ? FlowStatusEnum.TO_BE_SUBMITTED.getCode() + "" : FlowStatusEnum.SUBMITTED.getCode() + "";
}
String role = (String) nextNodeInfo.get("role");
updateModelByInstanceId(instanceId, status, role);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 撤回流程办理单
*/
......@@ -396,7 +398,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
if (ObjectUtils.isEmpty(jsonObject)) {
}
updateModelByInstanceId(jyjcOpeningApplication.getWorkflowProstanceId(), FlowStatusEnum.ROLLBACK.getCode() + "");
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(jyjcOpeningApplication.getWorkflowProstanceId());
String role = (String) nextNodeInfo.get("role");
updateModelByInstanceId(jyjcOpeningApplication.getWorkflowProstanceId(), FlowStatusEnum.TO_BE_SUBMITTED.getCode() + "", role);
} catch (Exception e) {
throw new BadRequest("撤回流程失败,请联系管理员!");
}
......@@ -438,7 +442,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
public Boolean deleteBatchByIds(List<Long> ids){
List<JyjcOpeningApplication> jyjcOpeningApplicationList=jyjcOpeningApplicationMapper.selectList(new QueryWrapper<JyjcOpeningApplication>()
.in("sequence_nbr"));
List<String> status = Arrays.asList(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()),String.valueOf(FlowStatusEnum.REJECTED.getCode()),String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
List<String> status = Arrays.asList(String.valueOf(FlowStatusEnum.SUBMITTED.getCode()),String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jyjcOpeningApplicationList = jyjcOpeningApplicationList.stream().filter(jyjcOpeningApplication ->status.contains(jyjcOpeningApplication.getStatus())).collect(Collectors.toList());
if(jyjcOpeningApplicationList.isEmpty()){
throw new BadRequest("除撤回跟驳回的流程之外其余流程不可删除,请核对数据后重新提交!");
......
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -13,7 +14,9 @@ import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
......@@ -67,4 +70,25 @@ public class WorkflowHelper {
public JSONObject rollBack(String workflowProstanceId) {
return workflowFeignClient.rollBack(workflowProstanceId);
}
public Map<String, Object> getNextWorkflowNode(String instanceId) {
String role = "";
String taskName = "流程结束";
ArrayList<String> roleList = new ArrayList<>();
AjaxResult taskNoAuth = Workflow.taskClient.getTaskNoAuth(instanceId);
if (!org.springframework.util.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());
}
}
}
role = String.join(",", roleList);
return MapBuilder.<String, Object>create().put("taskName", taskName).put("role", role).build();
}
}
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