From 27170070043f4cf78b0cd7281fffca2de14b2e3a Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 11:13:55 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusSalesOrderSubmitService.java | 45 +++- .../anrui/flowable/biz/flow/FlowableRest.java | 197 ++++++++++++++++-- .../biz/flowtask/FlowTaskService.java | 59 +++++- .../sysflowableconfig/SysFlowableConfig.java | 26 +++ .../SysFlowableConfigFeign.java | 26 +++ .../SysFlowableConfigFeignFallback.java | 12 ++ .../SysFlowableConfigQuery.java | 22 ++ .../SysFlowableConfigVvo.java | 17 ++ .../SysFlowableConfigMapper.java | 18 ++ .../SysFlowableConfigMapper.xml | 7 + .../SysFlowableConfigRest.java | 29 +++ .../SysFlowableConfigService.java | 30 +++ doc/databases/portal_tables.sql | 25 +++ 13 files changed, 488 insertions(+), 25 deletions(-) create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java index 2b000a08ca..4680526eec 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java @@ -24,12 +24,34 @@ public class BusSalesOrderSubmitService extends MybatisBaseService formVariables = dto.getFormVariables(); - String taskId = dto.getTaskId(); if (StringUtils.isBlank(taskId)) { return rb.setMsg("taskId 不能为空!"); @@ -368,27 +366,195 @@ public class FlowableRest implements FlowableFeign { if (StringUtils.isBlank(dto.getBusinessSid())) { return rb.setMsg("businessSid 不能为空!"); } - /*if(formVariables==null){ - return rb.setMsg("业务参数集合 不能为空!"); - }*/ if (dto.getFormVariables() == null) dto.setFormVariables(new HashMap()); Map formVariables = dto.getFormVariables(); formVariables.put("businessSid", dto.getBusinessSid()); + String nextUserSid = dto.getNextNodeUserSids(); + boolean adminContains = false; + if (StringUtils.isBlank(nextUserSid)) { + ResultBean nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto); + if (!nextNodeUserSidsOfSubmit.getSuccess()) { +// return rb.setMsg("nextUserSid 不能为空!"); + //=================================添加系统个管理员自动审批 + nextUserSid = "427a2fb0-60c5-409f-bea4-4eb441041ae6"; + adminContains = true; + }else{ + nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); + formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); + } + } + String comment = dto.getComment(); + if (StringUtils.isBlank(comment)) { + comment = ""; + } + String instanceId = dto.getInstanceId(); + if (StringUtils.isBlank(instanceId)) { + return rb.setMsg("instanceId 不能为空!"); + } + String userSid = dto.getUserSid(); + if (StringUtils.isBlank(userSid)) { + return rb.setMsg("userSid 不能为空!"); + } + String businessSid = dto.getBusinessSid(); + if (StringUtils.isBlank(businessSid)) { + return rb.setMsg("业务sid 不能为空!"); + } + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (Objects.isNull(task)) { + return rb.setMsg("任务不存在"); + } + String assignee = task.getAssignee(); + if (b && (StringUtils.isNotBlank(assignee) && assignee.indexOf(userSid) < 0)) { + return rb.setMsg("当前用户不是环节的待办人,不能进行办理操作!"); + } + String nodeState = ""; + String taskDefKey = ""; + vo.setSid(businessSid); + + if (DelegationState.PENDING.equals(task.getDelegationState())) { + taskService.addComment(taskId, instanceId, + FlowComment.DELEGATE.getType(), comment); + taskService.resolveTask(taskId, formVariables); + } else { + taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment); + log.error("taskid:{},userSid:{}", taskId, userSid); + log.error("formVariables:{}", JSON.toJSONString(formVariables)); + taskService.setAssignee(taskId, userSid); + taskService.complete(taskId, formVariables); + //根据流程实例的id取最新的待办环节,给环节设置上用户sid + ResultBean> ll = flowtaskService.getLatestTasksNew(instanceId); + if (ll.getData().size() > 0) { + LatestTaskVo latestTaskVo = ll.getData().get(0); + String id_ = latestTaskVo.getId_(); + taskService.setAssignee(id_, nextUserSid); + vo.setTaskId(id_); + //在act_ru_variable表中增加环节上的业务参数的变量 + taskService.setVariablesLocal(id_, formVariables); + nodeState = latestTaskVo.getName_(); + taskDefKey = latestTaskVo.getTask_def_key_(); + } else { + nodeState = FlowComment.SETTLE.getRemark(); + taskDefKey = "Event_end"; + vo.setNodeState(FlowComment.SETTLE.getRemark()); + } + } + if (adminContains) { + dto.setUserSid(nextUserSid); + dto.setTaskId(vo.getTaskId()); + dto.setTaskDefKey(taskDefKey); + dto.setComment("系统管理员已自动审批"); + return handleProsess(dto, false); + } + List flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(), + dto.getFormVariables()); + boolean contains = false; + boolean adminSecondsContains = false; + for (int i = 0; i < flowElements.size(); i++) { + FlowElement flowElement = flowElements.get(i); + String id = flowElement.getId(); + if (taskDefKey.equals(id) && i + 1 < flowElements.size()) { + FlowElement flowElement1 = flowElements.get(i + 1); + if (flowElement1 instanceof UserTask) { + UserTask userTask = (UserTask) flowElement1; + List candidateGroups = userTask.getCandidateGroups(); + List sysUserVoLists = new ArrayList<>(); + //根据角色查询用户 + for (String roleSid : candidateGroups) { + UserQuery userQuery = new UserQuery(); + userQuery.setRoleSid(roleSid); + userQuery.setOrgSidPath(dto.getOrgSidPath()); + ResultBean> userByRole = sysUserFeign.getUserByRole(userQuery); + boolean success = userByRole.getSuccess(); + if (!success) { + continue; + } + sysUserVoLists.addAll(userByRole.getData()); + } + //当前环节运营部总经理 刘丽艳 点击同意 下一环节 事业部副总经理 (nextUserSid) 和事业部总经理(sysUserVoLists.get(0).getSid()) + //判断查询回来的用户的集合size是1 并且用户的sid和下一环节的用户的sid相同。 + if (sysUserVoLists.size() == 1 && sysUserVoLists.get(0).getSid().equals(nextUserSid)) { + contains = true; + break; + } + //如果下一环节无用户,则默认系统管理员自动审批 + if(sysUserVoLists.size() == 0 && StringUtils.isNotBlank(nextUserSid)){ + contains = true; + break; + } + if(sysUserVoLists.size() == 0){ + adminSecondsContains = true; + break; + } + } + } + if (contains) { + break; + } + if (adminSecondsContains) { + break; + } + } + if (contains) { + dto.setUserSid(nextUserSid); + dto.setTaskId(vo.getTaskId()); + dto.setTaskDefKey(taskDefKey); + dto.setComment("因与下一级审批人相同,系统自动处理,需以下一级审批人审批意见为准!"); + return handleProsess(dto, false); + } + if (adminSecondsContains) { + dto.setUserSid(nextUserSid); + dto.setTaskId(vo.getTaskId()); + dto.setTaskDefKey(taskDefKey); + dto.setComment("系统管理员已自动审批"); + return handleProsess(dto, false); + } + + vo.setProcInsId(instanceId); + vo.setProcDefId(task.getProcessDefinitionId()); + vo.setNodeState(nodeState); + vo.setTaskDefKey(taskDefKey); + vo.setNextNodeUserSids(nextUserSid); + return rb.success().setData(vo); + } + + /** + * 未添加系统管理员自动审批功能 + * @param dto + * @param b 是否连续跳转环节 + * @return + */ + public ResultBean handleProsess111(BusinessVariables dto, boolean b) { + log.info("BusinessVariables:{}", JSONObject.toJSONString(dto)); + log.info("b:{}", b); + UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); + ResultBean rb = ResultBean.fireFail(); + String taskId = dto.getTaskId(); + if (StringUtils.isBlank(taskId)) { + return rb.setMsg("taskId 不能为空!"); + } + if (StringUtils.isBlank(dto.getBusinessSid())) { + return rb.setMsg("businessSid 不能为空!"); + } + if (dto.getFormVariables() == null) + dto.setFormVariables(new HashMap()); + Map formVariables = dto.getFormVariables(); + formVariables.put("businessSid", dto.getBusinessSid()); String nextUserSid = dto.getNextNodeUserSids(); if (StringUtils.isBlank(nextUserSid)) { ResultBean nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto); if (!nextNodeUserSidsOfSubmit.getSuccess()) { return rb.setMsg("nextUserSid 不能为空!"); + }else{ + nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); + formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); + } - nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); - formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); } String comment = dto.getComment(); if (StringUtils.isBlank(comment)) { comment = ""; - //return rb.setMsg("comment 不能为空!"); } String instanceId = dto.getInstanceId(); if (StringUtils.isBlank(instanceId)) { @@ -397,7 +563,6 @@ public class FlowableRest implements FlowableFeign { String userSid = dto.getUserSid(); if (StringUtils.isBlank(userSid)) { return rb.setMsg("userSid 不能为空!"); - } String businessSid = dto.getBusinessSid(); if (StringUtils.isBlank(businessSid)) { @@ -418,18 +583,12 @@ public class FlowableRest implements FlowableFeign { if (DelegationState.PENDING.equals(task.getDelegationState())) { taskService.addComment(taskId, instanceId, FlowComment.DELEGATE.getType(), comment); - // Map values =(Map) formVariables.get("values"); taskService.resolveTask(taskId, formVariables); } else { taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment); log.error("taskid:{},userSid:{}", taskId, userSid); log.error("formVariables:{}", JSON.toJSONString(formVariables)); taskService.setAssignee(taskId, userSid); - //formVariables.remove("userSid"); - /*for(Map.Entry entry:formVariables.entrySet()){ - taskService.setVariable(taskId,entry.getKey(),entry.getValue()); - System.out.println(entry.getKey()+"--->"+entry.getValue()); - }*/ taskService.complete(taskId, formVariables); //根据流程实例的id取最新的待办环节,给环节设置上用户sid ResultBean> ll = flowtaskService.getLatestTasksNew(instanceId); @@ -438,13 +597,6 @@ public class FlowableRest implements FlowableFeign { String id_ = latestTaskVo.getId_(); taskService.setAssignee(id_, nextUserSid); vo.setTaskId(id_); - /* for(Map.Entry entry:formVariables.entrySet()){ - taskService.setVariable(id_,entry.getKey(),entry.getValue()); - taskService.setVariableLocal(id_,entry.getKey(),entry.getValue()); - - System.out.println(entry.getKey()+"--->"+entry.getValue()); - }*/ - // taskService.setVariables(id_,formVariables); //在act_ru_variable表中增加环节上的业务参数的变量 taskService.setVariablesLocal(id_, formVariables); nodeState = latestTaskVo.getName_(); @@ -455,7 +607,6 @@ public class FlowableRest implements FlowableFeign { vo.setNodeState(FlowComment.SETTLE.getRemark()); } } - //ResultBean flowRecordVoResultBean = flowableService.flowRecord(dto.getInstanceId(), dto.getModelId()); List flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(), dto.getFormVariables()); boolean contains = false; diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java index d5265ac27b..15093cc847 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java @@ -311,6 +311,7 @@ public class FlowTaskService extends MybatisBaseService hisFlowList = new ArrayList<>(); for (HistoricActivityInstance histIns : list) { if (StringUtils.isNotBlank(histIns.getTaskId())) { + boolean isStop = false; FlowTask flowTask = new FlowTask(); flowTask.setTaskId(histIns.getTaskId()); flowTask.setTaskName(histIns.getActivityName()); @@ -334,6 +335,9 @@ public class FlowTaskService extends MybatisBaseService data1 = sysUserVoResultBean.getData(); List taskUserInfos=new ArrayList<>(); for( SysUserVo data:data1){ + if("admin".equals(data.getName())){ + isStop = true; + } TaskUserInfo taskUserInfo=new TaskUserInfo(); taskUserInfo.setAssigneeName(data.getName()); taskUserInfo.setAssigneeSid(data.getSid()); @@ -344,6 +348,10 @@ public class FlowTaskService extends MybatisBaseService linksForTask = historyService.getHistoricIdentityLinksForTask(histIns.getTaskId()); StringBuilder stringBuilder = new StringBuilder(); @@ -1341,7 +1349,24 @@ public class FlowTaskService extends MybatisBaseService>().fail().setMsg("流程找不到上一环节,撤回操作失败!").setData(new ArrayList<>()); } HistoricTaskInstance historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult(); + //==================================================添加 +// historicTaskInstance1 = returnInstance(historicTaskInstance1); + //==================================================添加 String assignee = historicTaskInstance1.getAssignee(); String userSid = flowTaskVo.getUserSid(); ResultBean flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId()); @@ -1482,6 +1510,25 @@ public class FlowTaskService extends MybatisBaseService taskUserInfos = flowTask.getTaskUserInfos(); + TaskUserInfo taskUserInfo = taskUserInfos.get(0); + if(assigneeSid0.equals(taskUserInfo.getAssigneeSid())){ + if(!FlowComment.RECALL.getType().equals( flowTask1.getComment().getType())){ + ii++; + } + continue; + }else{ + ybrsid=flowList.get(i).getTaskUserInfos().get(0).getAssigneeSid(); + break; + } + } + }else{ + ybrsid=assignee; + }*/ ybrsid=assignee; }else{ FlowTask flowTask1 = flowList.get(1); @@ -1515,6 +1562,16 @@ public class FlowTaskService extends MybatisBaseService> revokeProcess_( String processInstanceId, String assignee ) { diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java new file mode 100644 index 0000000000..04681efdac --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @description: 转办设置 + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Data +public class SysFlowableConfig extends BaseEntity { + private static final long serialVersionUID = 6324080869870694172L; + + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("转办人的sid") + private String chengeUserSid; + @ApiModelProperty("开始时间") + private Date startDate; + @ApiModelProperty("结束时间") + private Date endDate; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java new file mode 100644 index 0000000000..09a7e4fbb7 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @description: 转办设置 + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Api(tags = "流程转办设置") +@FeignClient( + contextId = "anrui-portal-SysFlowableConfig", + name = "anrui-portal", + path = "v1/SysFlowableConfig", + fallback = SysFlowableConfigFeignFallback.class) +public interface SysFlowableConfigFeign { + + @ApiOperation("查询是否有转办人 ") + @GetMapping("/selectByUserSid") + ResultBean selectByUserSid(@SpringQueryMap SysFlowableConfigQuery query); +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java new file mode 100644 index 0000000000..e8c75264b6 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import org.springframework.stereotype.Component; + +/** + * @description: 转办设置 + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Component +public class SysFlowableConfigFeignFallback { +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java new file mode 100644 index 0000000000..4f023c6ea8 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @description: 转办 + * @author: dimengzhe + * @date: 2023/6/19 + **/ +@Data +public class SysFlowableConfigQuery implements Query { + private static final long serialVersionUID = -7197208684456288643L; + + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("当前时间") + private Date nowDate; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java new file mode 100644 index 0000000000..abfcc91709 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java @@ -0,0 +1,17 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: 转办 + * @author: dimengzhe + * @date: 2023/6/19 + **/ +@Data +public class SysFlowableConfigVvo implements Vo { + private static final long serialVersionUID = -3291554285219440731L; + @ApiModelProperty("转办人sid") + private String changeUserSid; +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java new file mode 100644 index 0000000000..3b300e3c94 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.portal.biz.sysflowableconfig; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Mapper +public interface SysFlowableConfigMapper extends BaseMapper { + SysFlowableConfig selectByUserSid(@Param("userSid") String userSid, @Param("nowDate") Date nowDate); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml new file mode 100644 index 0000000000..091c4bdefe --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java new file mode 100644 index 0000000000..faaac787f2 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.portal.biz.sysflowableconfig; + +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: 转办设置rest + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Api(tags = "转办设置") +@RestController +@RequestMapping("v1/SysFlowableConfig") +public class SysFlowableConfigRest implements SysFlowableConfigFeign { + + @Autowired + private SysFlowableConfigService sysFlowableConfigService; + + @Override + public ResultBean selectByUserSid(SysFlowableConfigQuery query) { + return sysFlowableConfigService.selectByUserSid(query); + } +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java new file mode 100644 index 0000000000..1543fc2446 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java @@ -0,0 +1,30 @@ +package com.yxt.anrui.portal.biz.sysflowableconfig; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfig; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Service; + +import java.util.Date; + +/** + * @description: 转办 + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Service +public class SysFlowableConfigService extends MybatisBaseService { + public ResultBean selectByUserSid(SysFlowableConfigQuery query) { + ResultBean rb = ResultBean.fireFail(); + SysFlowableConfigVvo sysFlowableConfigVvo = new SysFlowableConfigVvo(); + //查询该用户当前时间是否有转办人 + String userSid = query.getUserSid(); + Date nowDate = query.getNowDate(); + SysFlowableConfig sysFlowableConfig = baseMapper.selectByUserSid(userSid,nowDate); + BeanUtil.copyProperties(sysFlowableConfig,sysFlowableConfigVvo); + return rb.success().setData(sysFlowableConfigVvo); + } +} diff --git a/doc/databases/portal_tables.sql b/doc/databases/portal_tables.sql index 5a713fc0bb..b34b1bee3c 100644 --- a/doc/databases/portal_tables.sql +++ b/doc/databases/portal_tables.sql @@ -715,3 +715,28 @@ CREATE TABLE `sys_url_config` ) ENGINE = InnoDB AUTO_INCREMENT = 18 DEFAULT CHARSET = utf8 COMMENT ='模块配置地址'; + + +DROP TABLE IF EXISTS `sys_flowable_config`; +CREATE TABLE `sys_flowable_config` +( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int(11) NOT NULL DEFAULT '0' COMMENT '记录版本,锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', + `modifyTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录最后修改时间', + `isEnable` int(11) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用', + `state` int(11) DEFAULT '1' COMMENT '状态', + `isDelete` int(11) DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建者', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '更新者', + `userSid` varchar(64) DEFAULT NULL COMMENT '办理人sid', + `changeUserSid` varchar(500) DEFAULT NULL COMMENT '转办人', + `startDate` timestamp null DEFAULT NULL COMMENT '开始时间', + `endDate` timestamp null DEFAULT NULL COMMENT '结束时间', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE = InnoDB + AUTO_INCREMENT = 18 + DEFAULT CHARSET = utf8 COMMENT ='转办人设置'; From 86497c3461dd048737e84490309b93420672a644 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 14:57:51 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/portal/biz/flow/FlowableRest.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java index ebd49f4771..92bd44b4cc 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java @@ -200,19 +200,21 @@ public class FlowableRest implements FlowableFeign { flowableQuery.setTaskDefKey(appFlowableRecordVo.getTaskDefKey()); flowableQuery.setMap(map); ResultBean>> resultBean = flowTaskFeign.yuyanTest(flowableQuery); - if(!resultBean.getData().isEmpty()){ - List> mapList = resultBean.getData(); - mapList.forEach(f->{ - PCHistTaskListAndCommentList a = new PCHistTaskListAndCommentList(); - Map stringObjectMap = BeanUtil.beanToMap(f); - stringObjectMap.put("taskName",f.get("nodeName").toString()); - stringObjectMap.put("finishTime",null); - stringObjectMap.put("createTime",""); - stringObjectMap.put("taskUserInfos",new ArrayList<>()); - a.setFlowableRecordVo(stringObjectMap); - a.setState(3 + ""); - flowList.add(a); - }); + if(resultBean.getData() != null){ + if(!resultBean.getData().isEmpty()){ + List> mapList = resultBean.getData(); + mapList.forEach(f->{ + PCHistTaskListAndCommentList a = new PCHistTaskListAndCommentList(); + Map stringObjectMap = BeanUtil.beanToMap(f); + stringObjectMap.put("taskName",f.get("nodeName").toString()); + stringObjectMap.put("finishTime",null); + stringObjectMap.put("createTime",""); + stringObjectMap.put("taskUserInfos",new ArrayList<>()); + a.setFlowableRecordVo(stringObjectMap); + a.setState(3 + ""); + flowList.add(a); + }); + } } } } From b6ed3d05ee05a28108e812f9a81731285e87fd66 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 14:59:44 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/flowable/biz/flow/FlowableRest.java | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java index 1af9cc5699..dc3cbfe043 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java @@ -33,12 +33,17 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.flowable.api.flow.*; import com.yxt.anrui.flowable.api.flowcomment.FlowComment; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.processcomment.ProcessCommentDto; import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService; import com.yxt.anrui.flowable.biz.process.ProcessService; +import com.yxt.anrui.flowable.biz.processcomment.ProcessCommentService; import com.yxt.anrui.flowable.feign.MessageFeign; import com.yxt.anrui.flowable.feign.form.MessageFlowVo; import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo; import com.yxt.anrui.portal.api.sysflowcc.SysFlowccFeign; import com.yxt.anrui.portal.api.sysflowcc.SysFlowccVo; import com.yxt.anrui.portal.api.sysuser.*; @@ -98,6 +103,10 @@ public class FlowableRest implements FlowableFeign { private MessageFeign messageFeign; @Resource protected HistoryService historyService; + @Autowired + private SysFlowableConfigFeign sysFlowableConfigFeign; + @Autowired + private ProcessCommentService processCommentService; /** * 流程抄送的功能 @@ -372,6 +381,9 @@ public class FlowableRest implements FlowableFeign { formVariables.put("businessSid", dto.getBusinessSid()); String nextUserSid = dto.getNextNodeUserSids(); boolean adminContains = false; + boolean isChange = false; + String firstName = ""; + String firstSid = ""; if (StringUtils.isBlank(nextUserSid)) { ResultBean nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto); if (!nextNodeUserSidsOfSubmit.getSuccess()) { @@ -382,7 +394,22 @@ public class FlowableRest implements FlowableFeign { }else{ nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); - + List nextUserList = Arrays.asList(nextUserSid.split(",")); + if(nextUserList.size() == 1){ + firstSid = nextUserList.get(0); + ResultBean sysUserVoResultBean = sysUserFeign.fetchBySid(firstSid); + if(sysUserVoResultBean.getData() != null){ + firstName = sysUserVoResultBean.getData().getName(); + } + SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery(); + sysFlowableConfigQuery.setUserSid(firstSid); + sysFlowableConfigQuery.setNowDate(new Date()); + ResultBean sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery); + if(sysFlowableConfigVvoResultBean.getData() != null){ + nextUserSid = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); + isChange = true; + } + } } } String comment = dto.getComment(); @@ -428,6 +455,20 @@ public class FlowableRest implements FlowableFeign { if (ll.getData().size() > 0) { LatestTaskVo latestTaskVo = ll.getData().get(0); String id_ = latestTaskVo.getId_(); + if(isChange){//添加评论 + ResultBean sysUserVoResultBean = sysUserFeign.fetchBySid(nextUserSid); + ProcessCommentDto processCommentDto = new ProcessCommentDto(); + processCommentDto.setReviewerSid(firstSid); + if(sysUserVoResultBean.getData() != null){ + String changeName = sysUserVoResultBean.getData().getName(); + processCommentDto.setReviewer(firstName); + processCommentDto.setContent("交"+changeName+"转办"); + } + processCommentDto.setTime(new Date()); + processCommentDto.setProcessId(dto.getModelId()); + processCommentDto.setProcessInstSid(dto.getInstanceId()); + processCommentService.saveOrUpdateDto(processCommentDto); + } taskService.setAssignee(id_, nextUserSid); vo.setTaskId(id_); //在act_ru_variable表中增加环节上的业务参数的变量 From 831b271b7d3fe692b62454d41520a410e70a2f1e Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 11:13:55 +0800 Subject: [PATCH 04/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusSalesOrderSubmitService.java | 45 +++- .../anrui/flowable/biz/flow/FlowableRest.java | 197 ++++++++++++++++-- .../biz/flowtask/FlowTaskService.java | 59 +++++- .../sysflowableconfig/SysFlowableConfig.java | 26 +++ .../SysFlowableConfigFeign.java | 26 +++ .../SysFlowableConfigFeignFallback.java | 12 ++ .../SysFlowableConfigQuery.java | 22 ++ .../SysFlowableConfigVvo.java | 17 ++ .../SysFlowableConfigMapper.java | 18 ++ .../SysFlowableConfigMapper.xml | 7 + .../SysFlowableConfigRest.java | 29 +++ .../SysFlowableConfigService.java | 30 +++ doc/databases/portal_tables.sql | 25 +++ 13 files changed, 488 insertions(+), 25 deletions(-) create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java create mode 100644 anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java create mode 100644 anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java index 2b000a08ca..4680526eec 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java @@ -24,12 +24,34 @@ public class BusSalesOrderSubmitService extends MybatisBaseService formVariables = dto.getFormVariables(); - String taskId = dto.getTaskId(); if (StringUtils.isBlank(taskId)) { return rb.setMsg("taskId 不能为空!"); @@ -368,27 +366,195 @@ public class FlowableRest implements FlowableFeign { if (StringUtils.isBlank(dto.getBusinessSid())) { return rb.setMsg("businessSid 不能为空!"); } - /*if(formVariables==null){ - return rb.setMsg("业务参数集合 不能为空!"); - }*/ if (dto.getFormVariables() == null) dto.setFormVariables(new HashMap()); Map formVariables = dto.getFormVariables(); formVariables.put("businessSid", dto.getBusinessSid()); + String nextUserSid = dto.getNextNodeUserSids(); + boolean adminContains = false; + if (StringUtils.isBlank(nextUserSid)) { + ResultBean nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto); + if (!nextNodeUserSidsOfSubmit.getSuccess()) { +// return rb.setMsg("nextUserSid 不能为空!"); + //=================================添加系统个管理员自动审批 + nextUserSid = "427a2fb0-60c5-409f-bea4-4eb441041ae6"; + adminContains = true; + }else{ + nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); + formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); + } + } + String comment = dto.getComment(); + if (StringUtils.isBlank(comment)) { + comment = ""; + } + String instanceId = dto.getInstanceId(); + if (StringUtils.isBlank(instanceId)) { + return rb.setMsg("instanceId 不能为空!"); + } + String userSid = dto.getUserSid(); + if (StringUtils.isBlank(userSid)) { + return rb.setMsg("userSid 不能为空!"); + } + String businessSid = dto.getBusinessSid(); + if (StringUtils.isBlank(businessSid)) { + return rb.setMsg("业务sid 不能为空!"); + } + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (Objects.isNull(task)) { + return rb.setMsg("任务不存在"); + } + String assignee = task.getAssignee(); + if (b && (StringUtils.isNotBlank(assignee) && assignee.indexOf(userSid) < 0)) { + return rb.setMsg("当前用户不是环节的待办人,不能进行办理操作!"); + } + String nodeState = ""; + String taskDefKey = ""; + vo.setSid(businessSid); + + if (DelegationState.PENDING.equals(task.getDelegationState())) { + taskService.addComment(taskId, instanceId, + FlowComment.DELEGATE.getType(), comment); + taskService.resolveTask(taskId, formVariables); + } else { + taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment); + log.error("taskid:{},userSid:{}", taskId, userSid); + log.error("formVariables:{}", JSON.toJSONString(formVariables)); + taskService.setAssignee(taskId, userSid); + taskService.complete(taskId, formVariables); + //根据流程实例的id取最新的待办环节,给环节设置上用户sid + ResultBean> ll = flowtaskService.getLatestTasksNew(instanceId); + if (ll.getData().size() > 0) { + LatestTaskVo latestTaskVo = ll.getData().get(0); + String id_ = latestTaskVo.getId_(); + taskService.setAssignee(id_, nextUserSid); + vo.setTaskId(id_); + //在act_ru_variable表中增加环节上的业务参数的变量 + taskService.setVariablesLocal(id_, formVariables); + nodeState = latestTaskVo.getName_(); + taskDefKey = latestTaskVo.getTask_def_key_(); + } else { + nodeState = FlowComment.SETTLE.getRemark(); + taskDefKey = "Event_end"; + vo.setNodeState(FlowComment.SETTLE.getRemark()); + } + } + if (adminContains) { + dto.setUserSid(nextUserSid); + dto.setTaskId(vo.getTaskId()); + dto.setTaskDefKey(taskDefKey); + dto.setComment("系统管理员已自动审批"); + return handleProsess(dto, false); + } + List flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(), + dto.getFormVariables()); + boolean contains = false; + boolean adminSecondsContains = false; + for (int i = 0; i < flowElements.size(); i++) { + FlowElement flowElement = flowElements.get(i); + String id = flowElement.getId(); + if (taskDefKey.equals(id) && i + 1 < flowElements.size()) { + FlowElement flowElement1 = flowElements.get(i + 1); + if (flowElement1 instanceof UserTask) { + UserTask userTask = (UserTask) flowElement1; + List candidateGroups = userTask.getCandidateGroups(); + List sysUserVoLists = new ArrayList<>(); + //根据角色查询用户 + for (String roleSid : candidateGroups) { + UserQuery userQuery = new UserQuery(); + userQuery.setRoleSid(roleSid); + userQuery.setOrgSidPath(dto.getOrgSidPath()); + ResultBean> userByRole = sysUserFeign.getUserByRole(userQuery); + boolean success = userByRole.getSuccess(); + if (!success) { + continue; + } + sysUserVoLists.addAll(userByRole.getData()); + } + //当前环节运营部总经理 刘丽艳 点击同意 下一环节 事业部副总经理 (nextUserSid) 和事业部总经理(sysUserVoLists.get(0).getSid()) + //判断查询回来的用户的集合size是1 并且用户的sid和下一环节的用户的sid相同。 + if (sysUserVoLists.size() == 1 && sysUserVoLists.get(0).getSid().equals(nextUserSid)) { + contains = true; + break; + } + //如果下一环节无用户,则默认系统管理员自动审批 + if(sysUserVoLists.size() == 0 && StringUtils.isNotBlank(nextUserSid)){ + contains = true; + break; + } + if(sysUserVoLists.size() == 0){ + adminSecondsContains = true; + break; + } + } + } + if (contains) { + break; + } + if (adminSecondsContains) { + break; + } + } + if (contains) { + dto.setUserSid(nextUserSid); + dto.setTaskId(vo.getTaskId()); + dto.setTaskDefKey(taskDefKey); + dto.setComment("因与下一级审批人相同,系统自动处理,需以下一级审批人审批意见为准!"); + return handleProsess(dto, false); + } + if (adminSecondsContains) { + dto.setUserSid(nextUserSid); + dto.setTaskId(vo.getTaskId()); + dto.setTaskDefKey(taskDefKey); + dto.setComment("系统管理员已自动审批"); + return handleProsess(dto, false); + } + + vo.setProcInsId(instanceId); + vo.setProcDefId(task.getProcessDefinitionId()); + vo.setNodeState(nodeState); + vo.setTaskDefKey(taskDefKey); + vo.setNextNodeUserSids(nextUserSid); + return rb.success().setData(vo); + } + + /** + * 未添加系统管理员自动审批功能 + * @param dto + * @param b 是否连续跳转环节 + * @return + */ + public ResultBean handleProsess111(BusinessVariables dto, boolean b) { + log.info("BusinessVariables:{}", JSONObject.toJSONString(dto)); + log.info("b:{}", b); + UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); + ResultBean rb = ResultBean.fireFail(); + String taskId = dto.getTaskId(); + if (StringUtils.isBlank(taskId)) { + return rb.setMsg("taskId 不能为空!"); + } + if (StringUtils.isBlank(dto.getBusinessSid())) { + return rb.setMsg("businessSid 不能为空!"); + } + if (dto.getFormVariables() == null) + dto.setFormVariables(new HashMap()); + Map formVariables = dto.getFormVariables(); + formVariables.put("businessSid", dto.getBusinessSid()); String nextUserSid = dto.getNextNodeUserSids(); if (StringUtils.isBlank(nextUserSid)) { ResultBean nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto); if (!nextNodeUserSidsOfSubmit.getSuccess()) { return rb.setMsg("nextUserSid 不能为空!"); + }else{ + nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); + formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); + } - nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); - formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); } String comment = dto.getComment(); if (StringUtils.isBlank(comment)) { comment = ""; - //return rb.setMsg("comment 不能为空!"); } String instanceId = dto.getInstanceId(); if (StringUtils.isBlank(instanceId)) { @@ -397,7 +563,6 @@ public class FlowableRest implements FlowableFeign { String userSid = dto.getUserSid(); if (StringUtils.isBlank(userSid)) { return rb.setMsg("userSid 不能为空!"); - } String businessSid = dto.getBusinessSid(); if (StringUtils.isBlank(businessSid)) { @@ -418,18 +583,12 @@ public class FlowableRest implements FlowableFeign { if (DelegationState.PENDING.equals(task.getDelegationState())) { taskService.addComment(taskId, instanceId, FlowComment.DELEGATE.getType(), comment); - // Map values =(Map) formVariables.get("values"); taskService.resolveTask(taskId, formVariables); } else { taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment); log.error("taskid:{},userSid:{}", taskId, userSid); log.error("formVariables:{}", JSON.toJSONString(formVariables)); taskService.setAssignee(taskId, userSid); - //formVariables.remove("userSid"); - /*for(Map.Entry entry:formVariables.entrySet()){ - taskService.setVariable(taskId,entry.getKey(),entry.getValue()); - System.out.println(entry.getKey()+"--->"+entry.getValue()); - }*/ taskService.complete(taskId, formVariables); //根据流程实例的id取最新的待办环节,给环节设置上用户sid ResultBean> ll = flowtaskService.getLatestTasksNew(instanceId); @@ -438,13 +597,6 @@ public class FlowableRest implements FlowableFeign { String id_ = latestTaskVo.getId_(); taskService.setAssignee(id_, nextUserSid); vo.setTaskId(id_); - /* for(Map.Entry entry:formVariables.entrySet()){ - taskService.setVariable(id_,entry.getKey(),entry.getValue()); - taskService.setVariableLocal(id_,entry.getKey(),entry.getValue()); - - System.out.println(entry.getKey()+"--->"+entry.getValue()); - }*/ - // taskService.setVariables(id_,formVariables); //在act_ru_variable表中增加环节上的业务参数的变量 taskService.setVariablesLocal(id_, formVariables); nodeState = latestTaskVo.getName_(); @@ -455,7 +607,6 @@ public class FlowableRest implements FlowableFeign { vo.setNodeState(FlowComment.SETTLE.getRemark()); } } - //ResultBean flowRecordVoResultBean = flowableService.flowRecord(dto.getInstanceId(), dto.getModelId()); List flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(), dto.getFormVariables()); boolean contains = false; diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java index d5265ac27b..15093cc847 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java @@ -311,6 +311,7 @@ public class FlowTaskService extends MybatisBaseService hisFlowList = new ArrayList<>(); for (HistoricActivityInstance histIns : list) { if (StringUtils.isNotBlank(histIns.getTaskId())) { + boolean isStop = false; FlowTask flowTask = new FlowTask(); flowTask.setTaskId(histIns.getTaskId()); flowTask.setTaskName(histIns.getActivityName()); @@ -334,6 +335,9 @@ public class FlowTaskService extends MybatisBaseService data1 = sysUserVoResultBean.getData(); List taskUserInfos=new ArrayList<>(); for( SysUserVo data:data1){ + if("admin".equals(data.getName())){ + isStop = true; + } TaskUserInfo taskUserInfo=new TaskUserInfo(); taskUserInfo.setAssigneeName(data.getName()); taskUserInfo.setAssigneeSid(data.getSid()); @@ -344,6 +348,10 @@ public class FlowTaskService extends MybatisBaseService linksForTask = historyService.getHistoricIdentityLinksForTask(histIns.getTaskId()); StringBuilder stringBuilder = new StringBuilder(); @@ -1341,7 +1349,24 @@ public class FlowTaskService extends MybatisBaseService>().fail().setMsg("流程找不到上一环节,撤回操作失败!").setData(new ArrayList<>()); } HistoricTaskInstance historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult(); + //==================================================添加 +// historicTaskInstance1 = returnInstance(historicTaskInstance1); + //==================================================添加 String assignee = historicTaskInstance1.getAssignee(); String userSid = flowTaskVo.getUserSid(); ResultBean flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId()); @@ -1482,6 +1510,25 @@ public class FlowTaskService extends MybatisBaseService taskUserInfos = flowTask.getTaskUserInfos(); + TaskUserInfo taskUserInfo = taskUserInfos.get(0); + if(assigneeSid0.equals(taskUserInfo.getAssigneeSid())){ + if(!FlowComment.RECALL.getType().equals( flowTask1.getComment().getType())){ + ii++; + } + continue; + }else{ + ybrsid=flowList.get(i).getTaskUserInfos().get(0).getAssigneeSid(); + break; + } + } + }else{ + ybrsid=assignee; + }*/ ybrsid=assignee; }else{ FlowTask flowTask1 = flowList.get(1); @@ -1515,6 +1562,16 @@ public class FlowTaskService extends MybatisBaseService> revokeProcess_( String processInstanceId, String assignee ) { diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java new file mode 100644 index 0000000000..04681efdac --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @description: 转办设置 + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Data +public class SysFlowableConfig extends BaseEntity { + private static final long serialVersionUID = 6324080869870694172L; + + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("转办人的sid") + private String chengeUserSid; + @ApiModelProperty("开始时间") + private Date startDate; + @ApiModelProperty("结束时间") + private Date endDate; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java new file mode 100644 index 0000000000..09a7e4fbb7 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * @description: 转办设置 + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Api(tags = "流程转办设置") +@FeignClient( + contextId = "anrui-portal-SysFlowableConfig", + name = "anrui-portal", + path = "v1/SysFlowableConfig", + fallback = SysFlowableConfigFeignFallback.class) +public interface SysFlowableConfigFeign { + + @ApiOperation("查询是否有转办人 ") + @GetMapping("/selectByUserSid") + ResultBean selectByUserSid(@SpringQueryMap SysFlowableConfigQuery query); +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java new file mode 100644 index 0000000000..e8c75264b6 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import org.springframework.stereotype.Component; + +/** + * @description: 转办设置 + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Component +public class SysFlowableConfigFeignFallback { +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java new file mode 100644 index 0000000000..4f023c6ea8 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @description: 转办 + * @author: dimengzhe + * @date: 2023/6/19 + **/ +@Data +public class SysFlowableConfigQuery implements Query { + private static final long serialVersionUID = -7197208684456288643L; + + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("当前时间") + private Date nowDate; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java new file mode 100644 index 0000000000..abfcc91709 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java @@ -0,0 +1,17 @@ +package com.yxt.anrui.portal.api.sysflowableconfig; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: 转办 + * @author: dimengzhe + * @date: 2023/6/19 + **/ +@Data +public class SysFlowableConfigVvo implements Vo { + private static final long serialVersionUID = -3291554285219440731L; + @ApiModelProperty("转办人sid") + private String changeUserSid; +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java new file mode 100644 index 0000000000..3b300e3c94 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.portal.biz.sysflowableconfig; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfig; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Mapper +public interface SysFlowableConfigMapper extends BaseMapper { + SysFlowableConfig selectByUserSid(@Param("userSid") String userSid, @Param("nowDate") Date nowDate); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml new file mode 100644 index 0000000000..091c4bdefe --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java new file mode 100644 index 0000000000..faaac787f2 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java @@ -0,0 +1,29 @@ +package com.yxt.anrui.portal.biz.sysflowableconfig; + +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: 转办设置rest + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Api(tags = "转办设置") +@RestController +@RequestMapping("v1/SysFlowableConfig") +public class SysFlowableConfigRest implements SysFlowableConfigFeign { + + @Autowired + private SysFlowableConfigService sysFlowableConfigService; + + @Override + public ResultBean selectByUserSid(SysFlowableConfigQuery query) { + return sysFlowableConfigService.selectByUserSid(query); + } +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java new file mode 100644 index 0000000000..1543fc2446 --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java @@ -0,0 +1,30 @@ +package com.yxt.anrui.portal.biz.sysflowableconfig; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfig; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Service; + +import java.util.Date; + +/** + * @description: 转办 + * @author: dimengzhe + * @date: 2023/6/17 + **/ +@Service +public class SysFlowableConfigService extends MybatisBaseService { + public ResultBean selectByUserSid(SysFlowableConfigQuery query) { + ResultBean rb = ResultBean.fireFail(); + SysFlowableConfigVvo sysFlowableConfigVvo = new SysFlowableConfigVvo(); + //查询该用户当前时间是否有转办人 + String userSid = query.getUserSid(); + Date nowDate = query.getNowDate(); + SysFlowableConfig sysFlowableConfig = baseMapper.selectByUserSid(userSid,nowDate); + BeanUtil.copyProperties(sysFlowableConfig,sysFlowableConfigVvo); + return rb.success().setData(sysFlowableConfigVvo); + } +} diff --git a/doc/databases/portal_tables.sql b/doc/databases/portal_tables.sql index 5a713fc0bb..b34b1bee3c 100644 --- a/doc/databases/portal_tables.sql +++ b/doc/databases/portal_tables.sql @@ -715,3 +715,28 @@ CREATE TABLE `sys_url_config` ) ENGINE = InnoDB AUTO_INCREMENT = 18 DEFAULT CHARSET = utf8 COMMENT ='模块配置地址'; + + +DROP TABLE IF EXISTS `sys_flowable_config`; +CREATE TABLE `sys_flowable_config` +( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sid` varchar(64) NOT NULL COMMENT 'sid', + `lockVersion` int(11) NOT NULL DEFAULT '0' COMMENT '记录版本,锁', + `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', + `modifyTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录最后修改时间', + `isEnable` int(11) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用', + `state` int(11) DEFAULT '1' COMMENT '状态', + `isDelete` int(11) DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除', + `remarks` varchar(255) DEFAULT NULL COMMENT '备注信息', + `createBySid` varchar(64) DEFAULT NULL COMMENT '创建者', + `updateBySid` varchar(64) DEFAULT NULL COMMENT '更新者', + `userSid` varchar(64) DEFAULT NULL COMMENT '办理人sid', + `changeUserSid` varchar(500) DEFAULT NULL COMMENT '转办人', + `startDate` timestamp null DEFAULT NULL COMMENT '开始时间', + `endDate` timestamp null DEFAULT NULL COMMENT '结束时间', + PRIMARY KEY (`id`), + KEY `id` (`id`) +) ENGINE = InnoDB + AUTO_INCREMENT = 18 + DEFAULT CHARSET = utf8 COMMENT ='转办人设置'; From 619c2c0fcb79e392e2bdc4d4b7966233caadc40e Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 14:57:51 +0800 Subject: [PATCH 05/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/portal/biz/flow/FlowableRest.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java index ebd49f4771..92bd44b4cc 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java @@ -200,19 +200,21 @@ public class FlowableRest implements FlowableFeign { flowableQuery.setTaskDefKey(appFlowableRecordVo.getTaskDefKey()); flowableQuery.setMap(map); ResultBean>> resultBean = flowTaskFeign.yuyanTest(flowableQuery); - if(!resultBean.getData().isEmpty()){ - List> mapList = resultBean.getData(); - mapList.forEach(f->{ - PCHistTaskListAndCommentList a = new PCHistTaskListAndCommentList(); - Map stringObjectMap = BeanUtil.beanToMap(f); - stringObjectMap.put("taskName",f.get("nodeName").toString()); - stringObjectMap.put("finishTime",null); - stringObjectMap.put("createTime",""); - stringObjectMap.put("taskUserInfos",new ArrayList<>()); - a.setFlowableRecordVo(stringObjectMap); - a.setState(3 + ""); - flowList.add(a); - }); + if(resultBean.getData() != null){ + if(!resultBean.getData().isEmpty()){ + List> mapList = resultBean.getData(); + mapList.forEach(f->{ + PCHistTaskListAndCommentList a = new PCHistTaskListAndCommentList(); + Map stringObjectMap = BeanUtil.beanToMap(f); + stringObjectMap.put("taskName",f.get("nodeName").toString()); + stringObjectMap.put("finishTime",null); + stringObjectMap.put("createTime",""); + stringObjectMap.put("taskUserInfos",new ArrayList<>()); + a.setFlowableRecordVo(stringObjectMap); + a.setState(3 + ""); + flowList.add(a); + }); + } } } } From ced86a938c8dc75257559310c7ba2156877398af Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 14:59:44 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/flowable/biz/flow/FlowableRest.java | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java index 1af9cc5699..dc3cbfe043 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java @@ -33,12 +33,17 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.flowable.api.flow.*; import com.yxt.anrui.flowable.api.flowcomment.FlowComment; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.processcomment.ProcessCommentDto; import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService; import com.yxt.anrui.flowable.biz.process.ProcessService; +import com.yxt.anrui.flowable.biz.processcomment.ProcessCommentService; import com.yxt.anrui.flowable.feign.MessageFeign; import com.yxt.anrui.flowable.feign.form.MessageFlowVo; import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo; import com.yxt.anrui.portal.api.sysflowcc.SysFlowccFeign; import com.yxt.anrui.portal.api.sysflowcc.SysFlowccVo; import com.yxt.anrui.portal.api.sysuser.*; @@ -98,6 +103,10 @@ public class FlowableRest implements FlowableFeign { private MessageFeign messageFeign; @Resource protected HistoryService historyService; + @Autowired + private SysFlowableConfigFeign sysFlowableConfigFeign; + @Autowired + private ProcessCommentService processCommentService; /** * 流程抄送的功能 @@ -372,6 +381,9 @@ public class FlowableRest implements FlowableFeign { formVariables.put("businessSid", dto.getBusinessSid()); String nextUserSid = dto.getNextNodeUserSids(); boolean adminContains = false; + boolean isChange = false; + String firstName = ""; + String firstSid = ""; if (StringUtils.isBlank(nextUserSid)) { ResultBean nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto); if (!nextNodeUserSidsOfSubmit.getSuccess()) { @@ -382,7 +394,22 @@ public class FlowableRest implements FlowableFeign { }else{ nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); - + List nextUserList = Arrays.asList(nextUserSid.split(",")); + if(nextUserList.size() == 1){ + firstSid = nextUserList.get(0); + ResultBean sysUserVoResultBean = sysUserFeign.fetchBySid(firstSid); + if(sysUserVoResultBean.getData() != null){ + firstName = sysUserVoResultBean.getData().getName(); + } + SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery(); + sysFlowableConfigQuery.setUserSid(firstSid); + sysFlowableConfigQuery.setNowDate(new Date()); + ResultBean sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery); + if(sysFlowableConfigVvoResultBean.getData() != null){ + nextUserSid = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); + isChange = true; + } + } } } String comment = dto.getComment(); @@ -428,6 +455,20 @@ public class FlowableRest implements FlowableFeign { if (ll.getData().size() > 0) { LatestTaskVo latestTaskVo = ll.getData().get(0); String id_ = latestTaskVo.getId_(); + if(isChange){//添加评论 + ResultBean sysUserVoResultBean = sysUserFeign.fetchBySid(nextUserSid); + ProcessCommentDto processCommentDto = new ProcessCommentDto(); + processCommentDto.setReviewerSid(firstSid); + if(sysUserVoResultBean.getData() != null){ + String changeName = sysUserVoResultBean.getData().getName(); + processCommentDto.setReviewer(firstName); + processCommentDto.setContent("交"+changeName+"转办"); + } + processCommentDto.setTime(new Date()); + processCommentDto.setProcessId(dto.getModelId()); + processCommentDto.setProcessInstSid(dto.getInstanceId()); + processCommentService.saveOrUpdateDto(processCommentDto); + } taskService.setAssignee(id_, nextUserSid); vo.setTaskId(id_); //在act_ru_variable表中增加环节上的业务参数的变量 From 2d992a1d1c9f778c935e429dbfbbb5d827a6478d Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Mon, 19 Jun 2023 15:03:31 +0800 Subject: [PATCH 07/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basevehicleout/BaseVehicleOutService.java | 37 ++++----- ...UncollectedReceivablesDetailedService.java | 70 +++++++++-------- .../scmapplyinbound/ScmApplyInboundFeign.java | 4 + .../ScmApplyInboundFeignFallback.java | 5 ++ .../scmapplyinbound/ScmApplyInboundRest.java | 5 ++ .../ScmApplyInboundService.java | 76 +++++++++++++++++++ 6 files changed, 146 insertions(+), 51 deletions(-) diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java index 13571ac674..9b5ace9127 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleout/BaseVehicleOutService.java @@ -2014,24 +2014,25 @@ public class BaseVehicleOutService extends MybatisBaseService flowRecordVo = flowableFeignPro.flowRecordAndComment(appDeliveredDetailsVo.getProcInstId(), "1").getData(); - for (PCHistTaskListAndCommentList flowTask : flowRecordVo) { - if (flowTask.getFlowableRecordVo() != null) { - Map flowableRecordVo = flowTask.getFlowableRecordVo(); - String taskDefKey = (String) flowableRecordVo.get("taskDefKey"); - List> taskUserInfos = ConstantUtils.getListData(flowableRecordVo, "taskUserInfos"); - String assigneeName = (String) taskUserInfos.get(0).get("assigneeName"); - String finishTime = (String) flowableRecordVo.get("finishTime"); - finishTime = finishTime.substring(0, 10); - if ("Activity_1x1eivz".equals(taskDefKey)) { - dataMap.put("makeName", assigneeName + finishTime); - } else if ("Activity_13w5v5m".equals(taskDefKey)) { - dataMap.put("jrsp", assigneeName + finishTime); - } else if ("Activity_1xzxtct".equals(taskDefKey) || "Activity_1ohp3br".equals(taskDefKey)) { - dataMap.put("confirmName", assigneeName + finishTime); + if (appDeliveredDetailsVo != null) { + List flowRecordVo = flowableFeignPro.flowRecordAndComment(appDeliveredDetailsVo.getProcInstId(), "1").getData(); + if (flowRecordVo != null){ + for (PCHistTaskListAndCommentList flowTask : flowRecordVo) { + if (flowTask.getFlowableRecordVo() != null) { + Map flowableRecordVo = flowTask.getFlowableRecordVo(); + String taskDefKey = (String) flowableRecordVo.get("taskDefKey"); + List> taskUserInfos = ConstantUtils.getListData(flowableRecordVo, "taskUserInfos"); + String assigneeName = (String) taskUserInfos.get(0).get("assigneeName"); + String finishTime = (String) flowableRecordVo.get("finishTime"); + finishTime = finishTime.substring(0, 10); + if ("Activity_1x1eivz".equals(taskDefKey)) { + dataMap.put("makeName", assigneeName + finishTime); + } else if ("Activity_13w5v5m".equals(taskDefKey)) { + dataMap.put("jrsp", assigneeName + finishTime); + } else if ("Activity_1xzxtct".equals(taskDefKey) || "Activity_1ohp3br".equals(taskDefKey)) { + dataMap.put("confirmName", assigneeName + finishTime); + } + } } } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java index da784e9d03..f0b5189362 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailed/FinUncollectedReceivablesDetailedService.java @@ -376,41 +376,45 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); params.setUseOrgSid(useOrgSid); QueryWrapper qw = new QueryWrapper<>(); - //授权 - PrivilegeQuery privilegeQuery = new PrivilegeQuery(); - privilegeQuery.setOrgPath(params.getOrgPath()); - privilegeQuery.setMenuUrl(params.getMenuUrl()); - privilegeQuery.setUserSid(params.getCreateBySid()); - ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); - if(StringUtils.isNotBlank(defaultIdReltBean.getData())){ - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - orgPath = orgPath + "/"; - int i1 = orgPath.indexOf("/"); - int i2 = orgPath.indexOf("/", i1 + 1); - int i3 = orgPath.indexOf("/", i2 + 1); - int i4 = orgPath.indexOf("/", i3 + 1); - String orgLevelKey = defaultIdReltBean.getData(); - if ("1".equals(orgLevelKey)) { - orgPath = orgPath.substring(0, i1); - qw.like("orgSidPath", orgPath); - } else if ("2".equals(orgLevelKey)) { - orgPath = orgPath.substring(0, i2); - qw.like("orgSidPath", orgPath); - } else if ("3".equals(orgLevelKey)) { - orgPath = orgPath.substring(0, i3); - qw.like("orgSidPath", orgPath); - } else if ("4".equals(orgLevelKey)) { - orgPath = orgPath.substring(0, i4); - qw.like("orgSidPath", orgPath); - } else if("5".equals(orgLevelKey)){ - qw.eq("createBySid",params.getCreateBySid()); - }else{ + if (StringUtils.isNotBlank(params.getMenuUrl())) { + //授权 + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(params.getOrgPath()); + privilegeQuery.setMenuUrl(params.getMenuUrl()); + privilegeQuery.setUserSid(params.getCreateBySid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + orgPath = orgPath + "/"; + int i1 = orgPath.indexOf("/"); + int i2 = orgPath.indexOf("/", i1 + 1); + int i3 = orgPath.indexOf("/", i2 + 1); + int i4 = orgPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgPath = orgPath.substring(0, i1); + qw.like("orgSidPath", orgPath); + } else if ("2".equals(orgLevelKey)) { + orgPath = orgPath.substring(0, i2); + qw.like("orgSidPath", orgPath); + } else if ("3".equals(orgLevelKey)) { + orgPath = orgPath.substring(0, i3); + qw.like("orgSidPath", orgPath); + } else if ("4".equals(orgLevelKey)) { + orgPath = orgPath.substring(0, i4); + qw.like("orgSidPath", orgPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("createBySid", params.getCreateBySid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { PagerVo p = new PagerVo<>(); return p; } - }else{ - PagerVo p = new PagerVo<>(); - return p; + } else { + qw.eq("useOrgSid", params.getUseOrgSid()); } if (StringUtils.isNotBlank(params.getVinNo())) { if (!params.getBusVinSids().isEmpty()) { @@ -870,7 +874,7 @@ public class FinUncollectedReceivablesDetailedService extends MybatisBaseService for (int i = 0; i < receiveSeleteVoList.size(); i++) { ReceiveSeleteVo receiveSeleteVo = receiveSeleteVoList.get(i); BigDecimal subscriptionMoneyAll = BigDecimal.ZERO; - if(StringUtils.isNotBlank(receiveSeleteVo.getSubscriptionMoneyAll())){ + if (StringUtils.isNotBlank(receiveSeleteVo.getSubscriptionMoneyAll())) { subscriptionMoneyAll = new BigDecimal(receiveSeleteVo.getSubscriptionMoneyAll()); } BigDecimal notSubscriptionMoney = new BigDecimal(receiveSeleteVo.getReveivableMoney()).subtract(subscriptionMoneyAll); diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java index cf4c187c0c..86e3549809 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeign.java @@ -53,6 +53,10 @@ public interface ScmApplyInboundFeign { @GetMapping("/fetchSid/{sid}") public ResultBean fetchSid(@PathVariable("sid") String sid); + @ApiOperation("入账申请确认") + @PostMapping("/confirmRZ") + public ResultBean confirmRZ(@RequestBody @Valid SubmitScmApplyInboundDto dto); + /*************************************************审批流程***************************************************/ @ApiOperation("提交入账申请") @PostMapping("/submitRecordApplication") diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java index 3120d32594..27aa05b1be 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmapplyinbound/ScmApplyInboundFeignFallback.java @@ -49,6 +49,11 @@ public class ScmApplyInboundFeignFallback implements ScmApplyInboundFeign { return rb.setMsg("接口anrui-scm/scmapplyinbound/fetchSid无法访问"); } + @Override + public ResultBean confirmRZ(SubmitScmApplyInboundDto dto) { + return null; + } + @Override public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) { ResultBean rb = ResultBean.fireFail(); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java index 6cd19c5e44..194756ca9c 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundRest.java @@ -63,6 +63,11 @@ public class ScmApplyInboundRest implements ScmApplyInboundFeign { return new ResultBean().success().setData(scmApplyInboundService.selectBySid(sid)); } + @Override + public ResultBean confirmRZ(SubmitScmApplyInboundDto dto) { + return scmApplyInboundService.confirmRZ(dto); + } + @Override public ResultBean submitRecordApplication(SubmitScmApplyInboundDto dto) { return scmApplyInboundService.submitRecordApplication(dto); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java index ceb5b78084..672e0c657f 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java @@ -998,4 +998,80 @@ public class ScmApplyInboundService extends MybatisBaseService stringList = Arrays.asList(split); + if (stringList.size() < 2){ + return new ResultBean().fail().setMsg("车型与配置贷款或全款销售指导价未维护,不可确认"); + } + List vehicleList = dto.getVehicleList(); + ScmApplyInbound scmApplyInbound1 = fetchBySid(busSid); + if (StringUtils.isBlank(busSid)) { + Map variables = BeanUtil.beanToMap(dto); + ResultBean resultBean = saveOrUpdateApplyInBound(dto); + if (!resultBean.getSuccess()) { + return ResultBean.fireFail().setMsg(resultBean.getMsg()); + } + String businessSid = resultBean.getData(); + ScmApplyInbound scmApplyInbound = fetchBySid(businessSid); + List scmApplyInboundVehicleDtos1 = new ArrayList<>(); + ScmApplyInboundDto scmApplyInboundDto = new ScmApplyInboundDto(); + List vehicleList1 = dto.getVehicleList(); + if (vehicleList1.size() == 0) { + return new ResultBean().fail().setMsg("车辆列表不能为空"); + } + for (ScmApplyInboundVehicleDto scmApplyInboundVehicleDto : vehicleList) { + String vinNo = scmApplyInboundVehicleDto.getVinNo(); + if (StringUtils.isBlank(vinNo)) { + scmApplyInboundVehicleService.deleteBySid(scmApplyInboundVehicleDto.getSid()); + BeanUtil.copyProperties(scmApplyInbound, scmApplyInboundDto); + scmApplyInboundDto.setSid(null); + scmApplyInboundVehicleDtos1.add(scmApplyInboundVehicleDto); + } + } + if (scmApplyInboundVehicleDtos1.size() > 0) { + scmApplyInboundDto.setVehicleList(scmApplyInboundVehicleDtos1); + scmApplyInboundDto.setNum(String.valueOf(scmApplyInboundVehicleDtos1.size())); + scmApplyInboundDto.setScmFiles(dto.getScmFiles()); + saveOrUpdateApplyInBound(scmApplyInboundDto); + } + int i = Integer.parseInt(num) - scmApplyInboundVehicleDtos1.size(); + baseMapper.updateNumBySid(String.valueOf(i), businessSid); + //数据推送 + String name = ""; + String confirmSid = ""; + String confirmName = ""; + String confirmDate = ""; + ScmApplyInbound booad = fetchBySid(businessSid); + List scmApplyInboundVehicleDtos = scmApplyInboundVehicleService.fetchByMainSid(businessSid); + ResultBean> sids = scmVehicleExamineService.saveEntryCarInspectedInfoBatch(booad, scmApplyInboundVehicleDtos); + saveItem(sids); + FlowRecordVo flowRecordVo = flowTaskFeign.businessFlowRecord(booad.getProcInsId()).getData(); + List flowList = flowRecordVo.getFlowList(); + for (FlowTask flowTask : flowList) { + if (flowTask.getTaskName().equals("账务部审批")) { + confirmSid = flowTask.getTaskUserInfos().get(0).getAssigneeSid(); + confirmName = flowTask.getTaskUserInfos().get(0).getAssigneeName(); + confirmDate = DateUtil.formatDate(flowTask.getFinishTime()); + break; + }else if (flowTask.getTaskName().equals("销售支持部经理审批")) { + confirmSid = flowTask.getTaskUserInfos().get(0).getAssigneeSid(); + confirmName = flowTask.getTaskUserInfos().get(0).getAssigneeName(); + confirmDate = DateUtil.formatDate(flowTask.getFinishTime()); + } + } + name = confirmSid + "," + confirmName + "," + confirmDate; + newBaseVehicleDto(booad, scmApplyInboundVehicleDtos, name); + //入账审批通关修改采购订单状态 state = 1 + if (booad.getManPurOrderTypeKey().equals(ManPurOrderType.ManOrderType.PC_ORDER.getCode())) { + busVehicleOrderFeign.updateState(booad.getVehicleOrderSid()); + } + return null; + } + return submitBusinessData(dto, busSid, scmApplyInbound1); + } } \ No newline at end of file From 6f864b7f65738dd1d0a2e0d2805a3153202c986f Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Mon, 19 Jun 2023 15:10:29 +0800 Subject: [PATCH 08/15] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=A4=E8=BD=A6?= =?UTF-8?q?=E5=8A=9E=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/dictcommons/dictcommons.js | 9 + .../src/api/jiaochebanli/cardelivery.js | 169 +++++++ .../anrui-buscenter-ui/src/router/index.js | 40 ++ .../deliveryconfirmationDaiBanInfo.vue | 381 +++++++++++++++ .../deliveryconfirmationEdit.vue | 435 ++++++++++++++++++ .../deliveryconfirmationYiBanInfo.vue | 254 ++++++++++ .../jiaochebanli/cardelivery.vue | 371 +++++++++++++++ .../jiaochebanli/cartobedelivered.vue | 285 ++++++++++++ .../jiaochebanli/confirmdelivery.vue | 167 +++++++ .../jiaochebanli/deliveryconfirmation.vue | 433 +++++++++++++++++ .../jiaochebanli/deliveryconfirmationInfo.vue | 201 ++++++++ .../jiaochebanli/trailerconfirmeddelivery.vue | 156 +++++++ .../trailerdeliveryconfirmation.vue | 301 ++++++++++++ 13 files changed, 3202 insertions(+) create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/api/jiaochebanli/cardelivery.js create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationDaiBanInfo.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationEdit.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationYiBanInfo.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/cardelivery.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/cartobedelivered.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/confirmdelivery.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmation.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmationInfo.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerconfirmeddelivery.vue create mode 100644 anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerdeliveryconfirmation.vue diff --git a/anrui-buscenter/anrui-buscenter-ui/src/api/dictcommons/dictcommons.js b/anrui-buscenter/anrui-buscenter-ui/src/api/dictcommons/dictcommons.js index 1b00fcfc9f..4af410aeba 100644 --- a/anrui-buscenter/anrui-buscenter-ui/src/api/dictcommons/dictcommons.js +++ b/anrui-buscenter/anrui-buscenter-ui/src/api/dictcommons/dictcommons.js @@ -135,3 +135,12 @@ export function getButtonPermissions(data) { headers: { 'Content-Type': 'application/json' } }) } + +// 根据分公司全路径获取该分公司下的仓库(存放低调点) +export function selectWarehouseByUserSid(data) { + return request({ + url: '/scm/v1/scmwarehouse/selectWarehouseByUserSid', + method: 'get', + params: data + }) +} diff --git a/anrui-buscenter/anrui-buscenter-ui/src/api/jiaochebanli/cardelivery.js b/anrui-buscenter/anrui-buscenter-ui/src/api/jiaochebanli/cardelivery.js new file mode 100644 index 0000000000..e942f82502 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/api/jiaochebanli/cardelivery.js @@ -0,0 +1,169 @@ +import request from '@/utils/request' + +// 待交车车辆列表 +export function listPage(data) { + return request({ + url: '/buscenter/v1/bushandoverwait/listPage', + method: 'post', + data: data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 交车办理列表 +export function pageList(data) { + return request({ + url: '/buscenter/v1/bushandover/listPage', + method: 'post', + data: data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 获取确认交付信息 +export function deliveryByHandoverWaitSids(data) { + return request({ + url: '/buscenter/v1/bushandover/deliveryByHandoverWaitSids', + method: 'post', + data: data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 保存确认交付信息 +export function saveOrUpdateBusHandover(data) { + return request({ + url: '/buscenter/v1/bushandover/saveOrUpdateBusHandover', + method: 'post', + data: data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 获取交车确认信息 +export function fetchDetailsBySid(data) { + return request({ + url: '/buscenter/v1/bushandover/fetchDetailsBySid/' + data, + method: 'get' + }) +} + +// 保存交车确认信息 +export function saveDeliveryConfirmInfo(data) { + return request({ + url: '/buscenter/v1/bushandover/saveDeliveryConfirmInfo', + method: 'post', + data: data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 保存挂车确认交付信息 +export function saveGcVinBill(data) { + return request({ + url: '/buscenter/v1/bushandover/saveGcVinBill', + method: 'post', + data: data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 获取挂车确认信息 +export function getDeliveryConfirmGcInfo(data) { + return request({ + url: '/buscenter/v1/bushandover/getDeliveryConfirmGcInfo', + method: 'get', + params: data + }) +} + +// 保存挂车确认信息 +export function saveDeliveryConfirmGcInfo(data) { + return request({ + url: '/buscenter/v1/bushandover/saveDeliveryConfirmGcInfo', + method: 'post', + data: data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 提交交车确认信息 +export function submit(data) { + return request({ + url: '/buscenter/v1/bushandover/submit', + method: 'post', + data: data, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 流程审批(同意) +export function complete(params) { + return request({ + url: '/buscenter/v1/bushandover/complete', + method: 'post', + data: params + }) +} + +// 流程审批(驳回) +export function reject(params) { + return request({ + url: '/buscenter/v1/bushandover/reject', + method: 'post', + data: params + }) +} + +// 流程审批(终止) +export function breakProcess(params) { + return request({ + url: '/buscenter/v1/bushandover/breakProcess', + method: 'post', + data: params + }) +} + +// 流程审批(撤回) +export function revokeProcess(params) { + return request({ + url: '/buscenter/v1/bushandover/revokeProcess', + method: 'post', + data: params + }) +} + +// 审批流程(同意)获取下一环节 +export function getNextNodesForSubmit(data) { + return request({ + url: '/buscenter/v1/bushandover/getNextNodesForSubmit', + method: 'get', + params: data + }) +} + +// 审批流程(驳回)获取上一环节 +export function getPreviousNodesForReject(data) { + return request({ + url: '/buscenter/v1/bushandover/getPreviousNodesForReject', + method: 'get', + params: data + }) +} + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/router/index.js b/anrui-buscenter/anrui-buscenter-ui/src/router/index.js index 55d1bf5d35..64aebcab96 100644 --- a/anrui-buscenter/anrui-buscenter-ui/src/router/index.js +++ b/anrui-buscenter/anrui-buscenter-ui/src/router/index.js @@ -382,6 +382,24 @@ export const constantRoutes = [ } ] }, + // 交车准备 + { + path: '/xiaoshouguanli/jiaochebanli', + component: Layout, + redirect: '/xiaoshouguanli/jiaochebanli', + meta: { + title: '交车办理' + }, + children: [ + { + path: '/xiaoshouguanli/jiaochebanli', + component: () => + import('@/views/xiaoshouguanli/jiaochebanli/cartobedelivered.vue'), + name: 'DaiJiaoChe', + meta: { title: '交车办理', noCache: true } + } + ] + }, { path: '/fapiaoneibujieshou', component: Layout, @@ -665,6 +683,28 @@ export const constantRoutes = [ component: () => import('@/views/workflow/youhuibaoFlow/youhuibaoEdit.vue'), name: 'YouHuiBaoEdit' + }, + + // 交车办理待办详情 + { + path: '/jiaochebanliFlow/deliveryconfirmationDaiBanInfo', + component: () => + import('@/views/workflow/jiaochebanliFlow/deliveryconfirmationDaiBanInfo.vue'), + name: 'DeliveryconfirmationDaiBanInfo' + }, + // 交车办理已办详情 + { + path: '/jiaochebanliFlow/deliveryconfirmationYiBanInfo', + component: () => + import('@/views/workflow/jiaochebanliFlow/deliveryconfirmationYiBanInfo.vue'), + name: 'DeliveryconfirmationYiBanInfo' + }, + // 交车办理驳回到发起人办理 + { + path: '/jiaochebanliFlow/deliveryconfirmationEdit', + component: () => + import('@/views/workflow/jiaochebanliFlow/deliveryconfirmationEdit.vue'), + name: 'DeliveryconfirmationEdit' } // 404 page must be placed at the end !!! diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationDaiBanInfo.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationDaiBanInfo.vue new file mode 100644 index 0000000000..58c143b16a --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationDaiBanInfo.vue @@ -0,0 +1,381 @@ + + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationEdit.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationEdit.vue new file mode 100644 index 0000000000..79d6a3a6a4 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationEdit.vue @@ -0,0 +1,435 @@ + + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationYiBanInfo.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationYiBanInfo.vue new file mode 100644 index 0000000000..edbc1e1211 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationYiBanInfo.vue @@ -0,0 +1,254 @@ + + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/cardelivery.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/cardelivery.vue new file mode 100644 index 0000000000..7093c3eeb8 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/cardelivery.vue @@ -0,0 +1,371 @@ + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/cartobedelivered.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/cartobedelivered.vue new file mode 100644 index 0000000000..2dfc4b5718 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/cartobedelivered.vue @@ -0,0 +1,285 @@ + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/confirmdelivery.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/confirmdelivery.vue new file mode 100644 index 0000000000..e502c35dca --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/confirmdelivery.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmation.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmation.vue new file mode 100644 index 0000000000..9f66bab5f4 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmation.vue @@ -0,0 +1,433 @@ + + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmationInfo.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmationInfo.vue new file mode 100644 index 0000000000..22dc045b45 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmationInfo.vue @@ -0,0 +1,201 @@ + + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerconfirmeddelivery.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerconfirmeddelivery.vue new file mode 100644 index 0000000000..713ac18324 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerconfirmeddelivery.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerdeliveryconfirmation.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerdeliveryconfirmation.vue new file mode 100644 index 0000000000..601eed0b31 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerdeliveryconfirmation.vue @@ -0,0 +1,301 @@ + + + + + From 8c409626ada7a415ca6a9a456759224dcdda1650 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Mon, 19 Jun 2023 15:11:17 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chukuguanli/chukubanli/chukushenqing.vue | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/chukuguanli/chukubanli/chukushenqing.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/chukuguanli/chukubanli/chukushenqing.vue index 110c88184d..ee49f09de8 100644 --- a/anrui-buscenter/anrui-buscenter-ui/src/views/chukuguanli/chukubanli/chukushenqing.vue +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/chukuguanli/chukubanli/chukushenqing.vue @@ -287,18 +287,22 @@ export default { } }, handleRevoke(row) { - this.$confirm('是否确定撤回该业务', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - revokeProcess({ taskId: row.taskId, businessSid: row.sid, instanceId: row.procInstId, userSid: window.sessionStorage.getItem('userSid') }).then((response) => { - if (response.success) { - this.$message({ showClose: true,type: 'success', message: response.msg }) - this.getList() - } + if (row.allowModify) { + this.$confirm('是否确定撤回该业务', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + revokeProcess({ taskId: row.taskId, businessSid: row.sid, instanceId: row.procInstId, userSid: window.sessionStorage.getItem('userSid') }).then((response) => { + if (response.success) { + this.$message({ showClose: true,type: 'success', message: response.msg }) + this.getList() + } + }) }) - }) + } else { + this.$message({ showClose: true, type: 'error', message: '非本人发起的申请,无权限操作' }) + } }, // 信息条数 获取点击时当前的sid handleSelectionChange(row) { From 45f5cf3b602b53b38d53086bc13ae749f30f1880 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 17:15:23 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/flowable/biz/flow/FlowableRest.java | 6 ++- .../flowdefinition/FlowDefinitionService.java | 50 ++++++++++++++++++- .../sysflowableconfig/SysFlowableConfig.java | 2 +- 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java index dc3cbfe043..b433561d18 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java @@ -406,8 +406,10 @@ public class FlowableRest implements FlowableFeign { sysFlowableConfigQuery.setNowDate(new Date()); ResultBean sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery); if(sysFlowableConfigVvoResultBean.getData() != null){ - nextUserSid = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); - isChange = true; + if(StringUtils.isNotBlank(sysFlowableConfigVvoResultBean.getData().getChangeUserSid())){ + nextUserSid = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); + isChange = true; + } } } } diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java index ca0bf39b8f..4887ce091d 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java @@ -7,17 +7,23 @@ package com.yxt.anrui.flowable.biz.flowdefinition; */ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.yxt.anrui.flowable.api.flowcomment.FlowComment; import com.yxt.anrui.flowable.api.flowdefinition.FlowDefinitionVo; import com.yxt.anrui.flowable.api.flowtask.FlowTask; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.processcomment.ProcessCommentDto; import com.yxt.anrui.flowable.api.sysform.SysForm; +import com.yxt.anrui.flowable.biz.flow.FlowableRest; import com.yxt.anrui.flowable.biz.flow.FlowableService; import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService; +import com.yxt.anrui.flowable.biz.processcomment.ProcessCommentService; import com.yxt.anrui.flowable.biz.sysdeployform.SysDeployFormService; -import com.yxt.anrui.flowable.api.flowcomment.FlowComment; import com.yxt.anrui.flowable.common.ProcessConstants; import com.yxt.anrui.flowable.factory.FlowServiceFactory; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery; +import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo; import com.yxt.anrui.portal.api.sysuser.SysUser; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; @@ -49,6 +55,12 @@ public class FlowDefinitionService extends FlowServiceFactory { private SysUserFeign sysUserFeign; @Autowired private FlowableService flowableService; + @Autowired + private SysFlowableConfigFeign sysFlowableConfigFeign; + @Autowired + private ProcessCommentService processCommentService; + @Autowired + private FlowableRest flowableRest; /** * 导入流程文件 * @@ -200,10 +212,46 @@ public class FlowDefinitionService extends FlowServiceFactory { taskService.complete(task.getId(), variables); } + String firstSid = ""; + String firstName = ""; + boolean isChange = false; + List nextUserList = Arrays.asList(nextNodeUserSids.split(",")); + if(nextUserList.size() == 1){ + firstSid = nextUserList.get(0); + ResultBean userVoResultBean = sysUserFeign.fetchBySid(firstSid); + if(userVoResultBean.getData() != null){ + firstName = userVoResultBean.getData().getName(); + } + SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery(); + sysFlowableConfigQuery.setUserSid(firstSid); + sysFlowableConfigQuery.setNowDate(new Date()); + ResultBean sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery); + if(sysFlowableConfigVvoResultBean.getData() != null){ + if(StringUtils.isNotBlank(sysFlowableConfigVvoResultBean.getData().getChangeUserSid())){ + nextNodeUserSids = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); + isChange = true; + } + + } + } ResultBean> latestTasksNew = flowTaskService.getLatestTasksNew(processInstance.getId()); List data = latestTasksNew.getData(); LatestTaskVo latestTaskVo = data.get(0); String id_ = latestTaskVo.getId_(); + if(isChange){//添加评论 + ResultBean userVoResultBean = sysUserFeign.fetchBySid(nextNodeUserSids); + ProcessCommentDto processCommentDto = new ProcessCommentDto(); + processCommentDto.setReviewerSid(firstSid); + if(userVoResultBean.getData() != null){ + String changeName = userVoResultBean.getData().getName(); + processCommentDto.setReviewer(firstName); + processCommentDto.setContent("交"+changeName+"转办"); + } + processCommentDto.setTime(new Date()); + processCommentDto.setProcessId(procDefId); + processCommentDto.setProcessInstSid(processInstance.getProcessInstanceId()); + processCommentService.saveOrUpdateDto(processCommentDto); + } taskService.setAssignee(id_,nextNodeUserSids); ResultBean rb = new ResultBean<>(); FlowTask flowTask = new FlowTask(); diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java index 04681efdac..27331e445b 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java @@ -18,7 +18,7 @@ public class SysFlowableConfig extends BaseEntity { @ApiModelProperty("用户sid") private String userSid; @ApiModelProperty("转办人的sid") - private String chengeUserSid; + private String changeUserSid; @ApiModelProperty("开始时间") private Date startDate; @ApiModelProperty("结束时间") From 1f6bae128ee6d15df51d0921b93f56179a860ef9 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Mon, 19 Jun 2023 17:29:37 +0800 Subject: [PATCH 11/15] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=85=A5=E5=BA=93--?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=8E=A5=E5=8F=A3=E6=9B=B4=E6=8D=A2=E4=B8=BA?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js | 9 +++++++++ .../src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue | 6 +++--- .../src/views/ruzhang/ruzhangguanli/ruzhangguanli.vue | 5 +++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/anrui-scm/anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js b/anrui-scm/anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js index 918307f58e..8794d601e8 100644 --- a/anrui-scm/anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js +++ b/anrui-scm/anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js @@ -28,6 +28,15 @@ export default { headers: { 'Content-Type': 'application/json' } }) }, + // 确认(暂时取消流程审批,直接推送数据) + confirmRZ: function(params) { + return request({ + url: '/scm/v1/scmapplyinbound/confirmRZ', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, // 通过sid查询一条记录 fetchBySid: function(sid) { return request({ diff --git a/anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue b/anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue index 019c358da0..8323174780 100644 --- a/anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue +++ b/anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue @@ -5,7 +5,7 @@
{{ viewTitle }}
保存 - 提交 + 确认 关闭
@@ -887,7 +887,7 @@ export default { this.$refs['form_obj'].validate(valid => { if (valid) { this.submitdisabled = true - req.submitVehicleApply(this.formobj).then((res) => { + req.confirmRZ(this.formobj).then((res) => { if (res.success) { this.$message({ showClose: true, @@ -911,7 +911,7 @@ export default { this.$refs['form_obj'].validate(valid => { if (valid) { this.submitdisabled = true - req.submitVehicleApply(this.formobj).then((res) => { + req.confirmRZ(this.formobj).then((res) => { if (res.success) { this.$message({ showClose: true, diff --git a/anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangguanli.vue b/anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangguanli.vue index 1785d7350c..4549253c07 100644 --- a/anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangguanli.vue +++ b/anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangguanli.vue @@ -50,8 +50,9 @@ From 2f5c40aa4b52ccbf297c81853651e44a65df6883 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 17:31:56 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E7=9A=84=E7=94=B3=E8=AF=B7=E4=BA=BA=E7=BB=88?= =?UTF-8?q?=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinBillApplicationService.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index 7d518d0fe2..9dd6354a14 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -32,7 +32,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.base.api.basedistributor.BaseDistributorFeign; import com.yxt.anrui.base.api.baseinternalpurchase.flow.GetNodeVo; -import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanDetailsVo; import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo; import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign; import com.yxt.anrui.base.api.basetrailer.TrailerVo; @@ -41,7 +40,6 @@ import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; import com.yxt.anrui.base.api.basevehicleappendix.BaseVehicleAppendixFeign; import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificateFeign; import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificateVo; -import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo; import com.yxt.anrui.base.api.commonappendix.CommonAppendixFeign; import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo; import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum; @@ -53,14 +51,8 @@ import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyFeign; import com.yxt.anrui.buscenter.api.busarrearscarryvehicleapply.BusArrearsCarryVehicleApplyVo; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; -import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFL; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; -import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderSourceLCVo; -import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDiscountListVo; -import com.yxt.anrui.buscenter.api.bussalesorderinsurance.BusSalesOrderInsuranceDetailsVo; -import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel; import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; -import com.yxt.anrui.buscenter.api.bussalesordersubmit.BusSalesOrderSubmit; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; @@ -95,17 +87,14 @@ import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList; -import com.yxt.anrui.portal.api.sysorganization.SysOrganization; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; -import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.portal.api.sysuser.UserRoleQuery; -import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.Base64; @@ -136,7 +125,6 @@ import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; -import static com.yxt.anrui.fin.biz.finpaymentrecord.FinPaymentrecordService.image2Base64; import static java.util.Comparator.comparing; /** @@ -1014,7 +1002,7 @@ public class FinBillApplicationService extends MybatisBaseService resultBean = flowableFeign.breakProcess(flowTaskVo); @@ -1025,7 +1013,21 @@ public class FinBillApplicationService extends MybatisBaseService resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + finBillVehicleService.updateByMainSid(finBillApplication.getSid()); + return rb.success().setData(resultBean.getData()); + } } + } return rb.setMsg("操作失败!提交的数据不一致!"); } From 57b743cfeb583484508574abd23fbfae539e530a Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Mon, 19 Jun 2023 17:41:07 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/biz/basevehicle/BaseVehicleRest.java | 4 +- .../BusDeliveredApplyService.java | 13 +++ .../FinVehicleInvoiceFeign.java | 6 + .../FinVehicleInvoiceFeignFallback.java | 5 + .../FinVehicleInvoiceMapper.java | 4 + .../FinVehicleInvoiceRest.java | 5 + .../FinVehicleInvoiceService.java | 6 + .../ScmApplyInboundMapper.java | 35 +++--- .../ScmApplyInboundService.java | 103 ++++++++++++------ 9 files changed, 129 insertions(+), 52 deletions(-) diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java index 5e5660f6ed..5fe471c0ab 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java @@ -474,11 +474,11 @@ public class BaseVehicleRest implements BaseVehicleFeign { scmApplyInboundQueryDto.setMakeListSid(scmApplyInboundVo.getApplicationSid()); scmApplyInboundQueryDto.setMakeListName(scmApplyInboundVo.getApplicationName()); scmApplyInboundQueryDto.setMakeListDate(DateUtil.formatDate(new Date())); - String name = baseVehicleDto.getName(); + /* String name = baseVehicleDto.getName(); String[] names = name.split(","); scmApplyInboundQueryDto.setConfirmSid(names[0]); scmApplyInboundQueryDto.setConfirmName(names[1]); - scmApplyInboundQueryDto.setConfirmDate(names[2]); + scmApplyInboundQueryDto.setConfirmDate(names[2]);*/ scmApplyInboundQueryDto.setCreateOrgSid(scmApplyInboundVo.getUseOrgSid()); scmApplyInboundQueryDto.setCreateOrgName(scmApplyInboundVo.getUseOrgName()); scmApplyInboundQueryDto.setDownNum("0"); diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java index 7f8544202d..96f0f282df 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java @@ -87,6 +87,8 @@ import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.ReceiveInvoiceVo; import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.ReceiveSeleteVo; +import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoice; +import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceFeign; import com.yxt.anrui.fin.api.finvehicleinvoice.InvoiceVo; import com.yxt.anrui.flowable.api.flow.FlowProcessMapQuery; import com.yxt.anrui.flowable.api.flow.FlowableFeign; @@ -200,6 +202,8 @@ public class BusDeliveredApplyService extends MybatisBaseService busDeliveredApplyDetails = busDeliveredApplyDetailsService.selectByApplySid(busDeliveredApply.getSid()); + for (BusDeliveredApplyDetails busDeliveredApplyDetail : busDeliveredApplyDetails) { + String vinSid = busDeliveredApplyDetail.getVinSid(); + FinVehicleInvoice finVehicleInvoice = finVehicleInvoiceFeign.selectByVinAndContractNo(vinSid, busDeliveredApply.getContractNo()).getData(); + if (StringUtils.isNotBlank(finVehicleInvoice.getSid())){ + finVehicleInvoiceFeign.updateBySid(finVehicleInvoice.getSid()); + } + } } else { if ("重新提交".equals(bv.getComment())) { //将待出库中的车辆更改状态为出库申请0 diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java index bd638d8149..1a4b353014 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeign.java @@ -81,6 +81,10 @@ public interface FinVehicleInvoiceFeign { @PostMapping("/updateBybillingSid") public ResultBean updateBybillingSid(@RequestParam("billingSid") String billingSid); + @ApiOperation("根据开票管理sid修改是否领票") + @PostMapping("/updateBySid") + public ResultBean updateBySid(@RequestParam("sid") String sid); + @ApiOperation("根据车辆sid获取发票信息") @GetMapping("/selectByVinSid") ResultBean selectByVinSid(@RequestParam("vinSid") String vinSid); @@ -113,4 +117,6 @@ public interface FinVehicleInvoiceFeign { @GetMapping("/selectByVinAndContractNo") @ResponseBody ResultBean selectByVinAndContractNo(@RequestParam("vinSid") String vinSid, @RequestParam("contractNo") String contractNo); + + } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java index a41deec5a7..373fd86c9e 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finvehicleinvoice/FinVehicleInvoiceFeignFallback.java @@ -89,6 +89,11 @@ public class FinVehicleInvoiceFeignFallback implements FinVehicleInvoiceFeign { return null; } + @Override + public ResultBean updateBySid(String sid) { + return null; + } + @Override public ResultBean selectByVinSid(String vinSid) { return null; diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java index dab1820df5..a7b3d6309c 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceMapper.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.anrui.fin.api.finvehicleinvoice.*; +import com.yxt.common.core.result.ResultBean; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -64,4 +65,7 @@ public interface FinVehicleInvoiceMapper extends BaseMapper { void updateTransferState(@Param("sid") String sid,@Param("code") String code,@Param("remarks") String remarks); FinVehicleInvoice selectByVinAndContractNo(@Param("vinSid") String vinSid, @Param("contractNo") String contractNo); + + @Update("update fin_vehicle_invoice set isTakeTicket = '是' where sid = #{sid}") + void updateIsLPBySid(String sid); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java index b409011201..965d4fe835 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceRest.java @@ -205,6 +205,11 @@ public class FinVehicleInvoiceRest implements FinVehicleInvoiceFeign { return finVehicleInvoiceService.updateBybillingSid(billingSid); } + @Override + public ResultBean updateBySid(String sid) { + return finVehicleInvoiceService.updateIsLPBySid(sid); + } + @Override public ResultBean selectByVinSid(String vinSid) { return finVehicleInvoiceService.selectByVinSids(vinSid); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java index 0ac89eda55..ef99330ff1 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finvehicleinvoice/FinVehicleInvoiceService.java @@ -544,4 +544,10 @@ public class FinVehicleInvoiceService extends MybatisBaseService { - //@Update("update scm_apply_inbound set name=#{msg} where id=#{id}") - //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - - IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); - - List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); - - @Select("select * from scm_apply_inbound") - List selectListVo(); - - int updateFlowFiled(Map map); - - int selectNum(@Param("bill")String bill); - - @Update("update scm_apply_inbound set num = #{num} where sid = #{busSid}") - void updateNumBySid(@Param("num") String num,@Param("busSid") String busSid); + //@Update("update scm_apply_inbound set name=#{msg} where id=#{id}") + //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + + List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); + + @Select("select * from scm_apply_inbound") + List selectListVo(); + + int updateFlowFiled(Map map); + + int selectNum(@Param("bill") String bill); + + @Update("update scm_apply_inbound set num = #{num} where sid = #{busSid}") + void updateNumBySid(@Param("num") String num, @Param("busSid") String busSid); + + @Update("update scm_apply_inbound set nodeState = '已办结' where sid = #{businessSid}") + void updateNodeState(String businessSid); } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java index 672e0c657f..1fc94336d4 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java @@ -275,13 +275,13 @@ public class ScmApplyInboundService extends MybatisBaseService 0) { return new ResultBean().setMsg(vinNoList.get(i) + "车架号已经存在"); } if (data != null) { - if (StringUtils.isNotBlank(data.getVinNo())){ + if (StringUtils.isNotBlank(data.getVinNo())) { return new ResultBean().setMsg(vinNoList.get(i) + "车架号已经存在"); } } @@ -329,16 +329,16 @@ public class ScmApplyInboundService extends MybatisBaseService list = scmApplyInboundVehicleService.selectListByAppSid(sid); @@ -423,7 +423,7 @@ public class ScmApplyInboundService extends MybatisBaseService stringList = Arrays.asList(split); - if (stringList.size() < 2){ + if (stringList.size() < 2) { return new ResultBean().fail().setMsg("车型与配置贷款或全款销售指导价未维护,不可提交"); } List vehicleList = dto.getVehicleList(); @@ -487,7 +487,7 @@ public class ScmApplyInboundService extends MybatisBaseService map = BeanUtil.beanToMap(resultBean.getData()); updateFlowFiled(map); return rb.success().setData(resultBean.getData()); - }else{ - scmApplyInbound.setNodeState("终止"); - scmApplyInbound.setTaskDefKey("Event_end"); - baseMapper.updateById(scmApplyInbound); + } else { + scmApplyInbound.setNodeState("终止"); + scmApplyInbound.setTaskDefKey("Event_end"); + baseMapper.updateById(scmApplyInbound); } return rb.success(); } @@ -1005,13 +1005,12 @@ public class ScmApplyInboundService extends MybatisBaseService stringList = Arrays.asList(split); - if (stringList.size() < 2){ + if (stringList.size() < 2) { return new ResultBean().fail().setMsg("车型与配置贷款或全款销售指导价未维护,不可确认"); } List vehicleList = dto.getVehicleList(); ScmApplyInbound scmApplyInbound1 = fetchBySid(busSid); if (StringUtils.isBlank(busSid)) { - Map variables = BeanUtil.beanToMap(dto); ResultBean resultBean = saveOrUpdateApplyInBound(dto); if (!resultBean.getSuccess()) { return ResultBean.fireFail().setMsg(resultBean.getMsg()); @@ -1041,6 +1040,7 @@ public class ScmApplyInboundService extends MybatisBaseService scmApplyInboundVehicleDtos = scmApplyInboundVehicleService.fetchByMainSid(businessSid); ResultBean> sids = scmVehicleExamineService.saveEntryCarInspectedInfoBatch(booad, scmApplyInboundVehicleDtos); saveItem(sids); - FlowRecordVo flowRecordVo = flowTaskFeign.businessFlowRecord(booad.getProcInsId()).getData(); - List flowList = flowRecordVo.getFlowList(); - for (FlowTask flowTask : flowList) { - if (flowTask.getTaskName().equals("账务部审批")) { - confirmSid = flowTask.getTaskUserInfos().get(0).getAssigneeSid(); - confirmName = flowTask.getTaskUserInfos().get(0).getAssigneeName(); - confirmDate = DateUtil.formatDate(flowTask.getFinishTime()); - break; - }else if (flowTask.getTaskName().equals("销售支持部经理审批")) { - confirmSid = flowTask.getTaskUserInfos().get(0).getAssigneeSid(); - confirmName = flowTask.getTaskUserInfos().get(0).getAssigneeName(); - confirmDate = DateUtil.formatDate(flowTask.getFinishTime()); - } - } name = confirmSid + "," + confirmName + "," + confirmDate; newBaseVehicleDto(booad, scmApplyInboundVehicleDtos, name); //入账审批通关修改采购订单状态 state = 1 if (booad.getManPurOrderTypeKey().equals(ManPurOrderType.ManOrderType.PC_ORDER.getCode())) { busVehicleOrderFeign.updateState(booad.getVehicleOrderSid()); } - return null; + return resultBean; } - return submitBusinessData(dto, busSid, scmApplyInbound1); + return confirmRZUpdate(dto, busSid, scmApplyInbound1); + } + + private synchronized ResultBean confirmRZUpdate(SubmitScmApplyInboundDto dto, String businessSid, ScmApplyInbound scmApplyInbound) { + List scmApplyInboundVehicleDtos1 = new ArrayList<>(); + List scmApplyInboundVehicleDtos2 = new ArrayList<>(); + ScmApplyInboundDto scmApplyInboundDto = new ScmApplyInboundDto(); + List vehicleList = dto.getVehicleList(); + for (ScmApplyInboundVehicleDto scmApplyInboundVehicleDto : vehicleList) { + String vinNo = scmApplyInboundVehicleDto.getVinNo(); + if (StringUtils.isBlank(vinNo)) { + scmApplyInboundVehicleService.deleteBySid(scmApplyInboundVehicleDto.getSid()); + BeanUtil.copyProperties(dto, scmApplyInboundDto); + scmApplyInboundDto.setSid(null); + scmApplyInboundVehicleDtos1.add(scmApplyInboundVehicleDto); + } else { + scmApplyInboundVehicleDtos2.add(scmApplyInboundVehicleDto); + } + } + if (scmApplyInboundVehicleDtos1.size() > 0) { + scmApplyInboundDto.setVehicleList(scmApplyInboundVehicleDtos1); + scmApplyInboundDto.setNum(String.valueOf(scmApplyInboundVehicleDtos1.size())); + scmApplyInboundDto.setPcApplicationCode(scmApplyInbound.getPcApplicationCode()); + saveOrUpdateApplyInBound(scmApplyInboundDto); + } + baseMapper.updateNumBySid(String.valueOf(scmApplyInboundVehicleDtos2.size()), businessSid); + baseMapper.updateNodeState(businessSid); + dto.setVehicleList(scmApplyInboundVehicleDtos2); + dto.setNum(String.valueOf(scmApplyInboundVehicleDtos2.size())); + dto.setNodeState("已办结"); + ResultBean stringResultBean = saveOrUpdateApplyInBound(dto); + if (!stringResultBean.getSuccess()) { + return ResultBean.fireFail().setMsg(stringResultBean.getMsg()); + } + //数据推送 + String name = ""; + String confirmSid = ""; + String confirmName = ""; + String confirmDate = ""; + ScmApplyInbound booad = fetchBySid(businessSid); + List scmApplyInboundVehicleDtos = scmApplyInboundVehicleService.fetchByMainSid(businessSid); + ResultBean> sids = scmVehicleExamineService.saveEntryCarInspectedInfoBatch(booad, scmApplyInboundVehicleDtos); + saveItem(sids); + name = confirmSid + "," + confirmName + "," + confirmDate; + newBaseVehicleDto(booad, scmApplyInboundVehicleDtos, name); + //入账审批通关修改采购订单状态 state = 1 + if (booad.getManPurOrderTypeKey().equals(ManPurOrderType.ManOrderType.PC_ORDER.getCode())) { + busVehicleOrderFeign.updateState(booad.getVehicleOrderSid()); + } + return ResultBean.fireSuccess(); } } \ No newline at end of file From 3afa09700e2526953f4d3ee90a7bbe453b25597b Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 17:58:34 +0800 Subject: [PATCH 14/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/flowable/biz/flow/FlowableRest.java | 32 ++++++++++--------- .../flowdefinition/FlowDefinitionService.java | 32 ++++++++++--------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java index b433561d18..f123c537bd 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java @@ -394,21 +394,23 @@ public class FlowableRest implements FlowableFeign { }else{ nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid(); formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath()); - List nextUserList = Arrays.asList(nextUserSid.split(",")); - if(nextUserList.size() == 1){ - firstSid = nextUserList.get(0); - ResultBean sysUserVoResultBean = sysUserFeign.fetchBySid(firstSid); - if(sysUserVoResultBean.getData() != null){ - firstName = sysUserVoResultBean.getData().getName(); - } - SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery(); - sysFlowableConfigQuery.setUserSid(firstSid); - sysFlowableConfigQuery.setNowDate(new Date()); - ResultBean sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery); - if(sysFlowableConfigVvoResultBean.getData() != null){ - if(StringUtils.isNotBlank(sysFlowableConfigVvoResultBean.getData().getChangeUserSid())){ - nextUserSid = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); - isChange = true; + if(nextUserSid != null){ + List nextUserList = Arrays.asList(nextUserSid.split(",")); + if(nextUserList.size() == 1){ + firstSid = nextUserList.get(0); + ResultBean sysUserVoResultBean = sysUserFeign.fetchBySid(firstSid); + if(sysUserVoResultBean.getData() != null){ + firstName = sysUserVoResultBean.getData().getName(); + } + SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery(); + sysFlowableConfigQuery.setUserSid(firstSid); + sysFlowableConfigQuery.setNowDate(new Date()); + ResultBean sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery); + if(sysFlowableConfigVvoResultBean.getData() != null){ + if(StringUtils.isNotBlank(sysFlowableConfigVvoResultBean.getData().getChangeUserSid())){ + nextUserSid = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); + isChange = true; + } } } } diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java index 4887ce091d..ac6a9217ff 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java @@ -215,23 +215,25 @@ public class FlowDefinitionService extends FlowServiceFactory { String firstSid = ""; String firstName = ""; boolean isChange = false; - List nextUserList = Arrays.asList(nextNodeUserSids.split(",")); - if(nextUserList.size() == 1){ - firstSid = nextUserList.get(0); - ResultBean userVoResultBean = sysUserFeign.fetchBySid(firstSid); - if(userVoResultBean.getData() != null){ - firstName = userVoResultBean.getData().getName(); - } - SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery(); - sysFlowableConfigQuery.setUserSid(firstSid); - sysFlowableConfigQuery.setNowDate(new Date()); - ResultBean sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery); - if(sysFlowableConfigVvoResultBean.getData() != null){ - if(StringUtils.isNotBlank(sysFlowableConfigVvoResultBean.getData().getChangeUserSid())){ - nextNodeUserSids = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); - isChange = true; + if(StringUtils.isNotBlank(nextNodeUserSids)){ + List nextUserList = Arrays.asList(nextNodeUserSids.split(",")); + if(nextUserList.size() == 1){ + firstSid = nextUserList.get(0); + ResultBean userVoResultBean = sysUserFeign.fetchBySid(firstSid); + if(userVoResultBean.getData() != null){ + firstName = userVoResultBean.getData().getName(); } + SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery(); + sysFlowableConfigQuery.setUserSid(firstSid); + sysFlowableConfigQuery.setNowDate(new Date()); + ResultBean sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery); + if(sysFlowableConfigVvoResultBean.getData() != null){ + if(StringUtils.isNotBlank(sysFlowableConfigVvoResultBean.getData().getChangeUserSid())){ + nextNodeUserSids = sysFlowableConfigVvoResultBean.getData().getChangeUserSid(); + isChange = true; + } + } } } ResultBean> latestTasksNew = flowTaskService.getLatestTasksNew(processInstance.getId()); From fb4c802d98fcafbb682fba6d3ad605abf245cdf3 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 19 Jun 2023 18:17:38 +0800 Subject: [PATCH 15/15] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java | 3 +-- .../flowable/biz/flowdefinition/FlowDefinitionService.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java index f123c537bd..bb32b92003 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java @@ -469,8 +469,7 @@ public class FlowableRest implements FlowableFeign { processCommentDto.setContent("交"+changeName+"转办"); } processCommentDto.setTime(new Date()); - processCommentDto.setProcessId(dto.getModelId()); - processCommentDto.setProcessInstSid(dto.getInstanceId()); + processCommentDto.setProcessId(dto.getInstanceId()); processCommentService.saveOrUpdateDto(processCommentDto); } taskService.setAssignee(id_, nextUserSid); diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java index ac6a9217ff..d56cd4c6f3 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionService.java @@ -250,8 +250,7 @@ public class FlowDefinitionService extends FlowServiceFactory { processCommentDto.setContent("交"+changeName+"转办"); } processCommentDto.setTime(new Date()); - processCommentDto.setProcessId(procDefId); - processCommentDto.setProcessInstSid(processInstance.getProcessInstanceId()); + processCommentDto.setProcessId(processInstance.getProcessInstanceId()); processCommentService.saveOrUpdateDto(processCommentDto); } taskService.setAssignee(id_,nextNodeUserSids);