Commit 7ddc4463 authored by yangyang's avatar yangyang

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

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