From 309ca2b3ed655850bcc6a37ccbe82b5197d0e89c Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 20 Jun 2023 14:45:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bussalesorder/BusSalesOrderService.java | 132 ++++++++++-------- .../anrui/flowable/biz/flow/FlowableRest.java | 53 ++++--- .../biz/flowtask/FlowTaskService.java | 7 - .../AppFlowableRecordAndCommentVo.java | 2 + .../api/app/flowable/AppFlowableRecordVo.java | 1 - .../terminal/api/app/flowable/AppUserVo.java | 1 - 6 files changed, 110 insertions(+), 86 deletions(-) diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java index af454f3cbf..43a619589b 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java @@ -1458,66 +1458,18 @@ public class BusSalesOrderService extends MybatisBaseService resultBean = flowableFeign.breakProcess(flowTaskVo); - if (!resultBean.getSuccess()) { - return rb.setMsg(resultBean.getMsg()); - } - Map map = BeanUtil.beanToMap(resultBean.getData()); - updateFlowFiled(map); - //再加回来 - BusSalesOrderDeposit busSalesOrderDeposit = busSalesOrderDepositService.selectByOrderSid(query.getBusinessSid()); - if (BusSalesOrderConstantUtils.DepositType.DEPOSIT_CARRY_FORWARD.getCode().equals(busSalesOrderDeposit.getDepositTypeKey())) { - //根据订金sid查询虚拟订单和订金的关联 - List listVos = busDepositFictitiousService.getList(busSalesOrderDeposit.getSid()); - listVos.removeAll(Collections.singleton(null)); - if (!listVos.isEmpty()) { - for (AppBusSalesOrderDepositListVo listVo : listVos) { - //添加负的记录 - BusDepositFictitious busDepositFictitious = new BusDepositFictitious(); - BeanUtil.copyProperties(listVo, busDepositFictitious, "sid"); - busDepositFictitious.setPrice(new BigDecimal(listVo.getPayMoney()).negate()); - busDepositFictitious.setDepositSid(busSalesOrderDeposit.getSid()); - busDepositFictitious.setDepositBillNo(listVo.getVirtualOrderId()); - busDepositFictitious.setDepositBillSid(listVo.getVirtualOrderSid()); - busDepositFictitiousService.save(busDepositFictitious); - //查询该虚拟订金单已使用的订金值 - String depositAll = busDepositFictitiousService.selectDeposit(listVo.getVirtualOrderId()); - //更新该虚拟订单的订金值 - busDepositService.updateDeposit(depositAll, listVo.getVirtualOrderId()); - } - } - } - ResultBean details = getSaleOrderDetails(query.getBusinessSid()); - AppOrderDetailsVo vo = details.getData(); - if (BusSalesOrderConstantUtils.TypeEnum.EXISTING_CAR.getRemarks().equals(vo.getOrderType())) { - //更新已选择的车架号的状态为未锁定 - List list = busSalesOrderVehicleService.selectVehicleSid(query.getBusinessSid()); - BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); - busMainDepositUpdateQuery.setVinSidList(list); - busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode()); - busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks()); - baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); - } - if (BusSalesOrderConstantUtils.TypeEnum.PURCHASE_ORDER.getRemarks().equals(vo.getOrderType())) { - List list = busSalesVehicleOrderService.selectLinkSid(query.getBusinessSid()); - for (BusSalesVehicleOrder b : list) { - String linkSid = b.getLinkSid(); - int count = b.getUsingNum(); - //查询该采购订单的已使用台数 - int num = busSalesVehicleOrderService.selectByLinkSid1(linkSid); - //更新 - ResultBean resultBeanOrder = busVehicleOrderFeign.updateLockNum(linkSid, String.valueOf(num)); - } - } - - return rb.success().setData(resultBean.getData()); - }else{ - if (businessTaskId.equals(query.getTaskId())) { + if(busSalesOrder == null){ + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setMsg("该销售订单不存在,流程已终止"); + }else{ + String businessTaskId = busSalesOrder.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if(query.getUserSid().equals(busSalesOrder.getCreateBySid())){ FlowTaskVo flowTaskVo = new FlowTaskVo(); BeanUtil.copyProperties(query, flowTaskVo); ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); @@ -1573,9 +1525,67 @@ public class BusSalesOrderService extends MybatisBaseService resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + //再加回来 + BusSalesOrderDeposit busSalesOrderDeposit = busSalesOrderDepositService.selectByOrderSid(query.getBusinessSid()); + if (BusSalesOrderConstantUtils.DepositType.DEPOSIT_CARRY_FORWARD.getCode().equals(busSalesOrderDeposit.getDepositTypeKey())) { + //根据订金sid查询虚拟订单和订金的关联 + List listVos = busDepositFictitiousService.getList(busSalesOrderDeposit.getSid()); + listVos.removeAll(Collections.singleton(null)); + if (!listVos.isEmpty()) { + for (AppBusSalesOrderDepositListVo listVo : listVos) { + //添加负的记录 + BusDepositFictitious busDepositFictitious = new BusDepositFictitious(); + BeanUtil.copyProperties(listVo, busDepositFictitious, "sid"); + busDepositFictitious.setPrice(new BigDecimal(listVo.getPayMoney()).negate()); + busDepositFictitious.setDepositSid(busSalesOrderDeposit.getSid()); + busDepositFictitious.setDepositBillNo(listVo.getVirtualOrderId()); + busDepositFictitious.setDepositBillSid(listVo.getVirtualOrderSid()); + busDepositFictitiousService.save(busDepositFictitious); + //查询该虚拟订金单已使用的订金值 + String depositAll = busDepositFictitiousService.selectDeposit(listVo.getVirtualOrderId()); + //更新该虚拟订单的订金值 + busDepositService.updateDeposit(depositAll, listVo.getVirtualOrderId()); + } + } + } + ResultBean details = getSaleOrderDetails(query.getBusinessSid()); + AppOrderDetailsVo vo = details.getData(); + if (BusSalesOrderConstantUtils.TypeEnum.EXISTING_CAR.getRemarks().equals(vo.getOrderType())) { + //更新已选择的车架号的状态为未锁定 + List list = busSalesOrderVehicleService.selectVehicleSid(query.getBusinessSid()); + BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); + busMainDepositUpdateQuery.setVinSidList(list); + busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode()); + busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks()); + baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); + } + if (BusSalesOrderConstantUtils.TypeEnum.PURCHASE_ORDER.getRemarks().equals(vo.getOrderType())) { + List list = busSalesVehicleOrderService.selectLinkSid(query.getBusinessSid()); + for (BusSalesVehicleOrder b : list) { + String linkSid = b.getLinkSid(); + int count = b.getUsingNum(); + //查询该采购订单的已使用台数 + int num = busSalesVehicleOrderService.selectByLinkSid1(linkSid); + //更新 + ResultBean resultBeanOrder = busVehicleOrderFeign.updateLockNum(linkSid, String.valueOf(num)); + } + } + + return rb.success().setData(resultBean.getData()); + } } - } + } } return rb.setMsg("操作失败!提交的数据不一致!"); } 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..cb476d8633 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,24 +394,27 @@ 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; + } } } } + } } String comment = dto.getComment(); @@ -499,6 +502,24 @@ public class FlowableRest implements FlowableFeign { String id = flowElement.getId(); if (taskDefKey.equals(id) && i + 1 < flowElements.size()) { FlowElement flowElement1 = flowElements.get(i + 1); + FlowElement flowElement2 = flowElements.get(i + 2); + List sysUserVoLists2 = new ArrayList<>(); + if (flowElement2 instanceof UserTask) { + UserTask userTask = (UserTask) flowElement2; + List candidateGroups = userTask.getCandidateGroups(); + //根据角色查询用户 + 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; + } + sysUserVoLists2.addAll(userByRole.getData()); + } + } if (flowElement1 instanceof UserTask) { UserTask userTask = (UserTask) flowElement1; List candidateGroups = userTask.getCandidateGroups(); @@ -522,7 +543,7 @@ public class FlowableRest implements FlowableFeign { break; } //如果下一环节无用户,则默认系统管理员自动审批 - if(sysUserVoLists.size() == 0 && StringUtils.isNotBlank(nextUserSid)){ + if(sysUserVoLists.size() == 0 && sysUserVoLists2.size() == 1 && sysUserVoLists2.get(0).getSid().equals(nextUserSid)){ contains = true; break; } 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 15093cc847..a3d80f122c 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,7 +311,6 @@ 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()); @@ -335,9 +334,6 @@ 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()); @@ -348,9 +344,6 @@ public class FlowTaskService extends MybatisBaseService linksForTask = historyService.getHistoricIdentityLinksForTask(histIns.getTaskId()); diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppFlowableRecordAndCommentVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppFlowableRecordAndCommentVo.java index 3976d579df..9a0669c6e6 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppFlowableRecordAndCommentVo.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppFlowableRecordAndCommentVo.java @@ -30,4 +30,6 @@ public class AppFlowableRecordAndCommentVo implements Vo { @JsonProperty("processCommentVo") private ProcessCommentVo processCommentVo; + + } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppFlowableRecordVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppFlowableRecordVo.java index 506a35f8a0..e975897d0a 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppFlowableRecordVo.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppFlowableRecordVo.java @@ -63,5 +63,4 @@ public class AppFlowableRecordVo implements Vo { private String procDefId; private Map procVars; - } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppUserVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppUserVo.java index a26f40ff07..b3c0610ccb 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppUserVo.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/app/flowable/AppUserVo.java @@ -19,5 +19,4 @@ public class AppUserVo implements Vo { @ApiModelProperty(value = "头像") @JsonProperty("image") private String assigneeHeadImage; - } From e3bd739c1eff63037adca79d7d811a3f3a221211 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Tue, 20 Jun 2023 14:45:39 +0800 Subject: [PATCH 2/2] =?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/terminal/biz/app/AppService.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/app/AppService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/app/AppService.java index 4f41416286..889da5060e 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/app/AppService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/app/AppService.java @@ -86,6 +86,13 @@ public class AppService { a.setTime(f.getFinishTime() == null ? new Date() : f.getFinishTime()); a.setFlowableRecordVo(f); a.setState(0 + ""); + List taskUserInfos = f.getTaskUserInfos(); + if(taskUserInfos.size() == 1){ + AppUserVo appUserVo = taskUserInfos.get(0); + if("admin".equals(appUserVo.getAssigneeName())){ + return; + } + } list.add(a); });