diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java index 2eadbeb2ba..7063bdc32f 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java @@ -100,21 +100,21 @@ public class BusSalesOrderRest implements BusSalesOrderFeign { @Override public ResultBean complete(BusSalesOrderFlowQuery busSalesOrderFlowQuery) { - return null; + return busSalesOrderService.complete(busSalesOrderFlowQuery); } @Override public ResultBean reject(BusSalesOrderFlowDto dto) { - return null; + return busSalesOrderService.reject(dto); } @Override public ResultBean breakProcess(BusSalesOrderFlowDto dto) { - return null; + return busSalesOrderService.breakProcess(dto); } @Override public ResultBean revokeProcess(BusSalesOrderFlowDto dto) { - return null; + return busSalesOrderService.revokeProcess(dto); } } 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 89e9bdf670..2d92294200 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 @@ -26,6 +26,7 @@ package com.yxt.anrui.buscenter.biz.bussalesorder; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousDto; @@ -48,7 +49,15 @@ import com.yxt.anrui.buscenter.biz.bussalesorderprice.BusSalesOrderPriceService; import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService; import com.yxt.anrui.buscenter.biz.bussalesvehicleorder.BusSalesVehicleOrderService; import com.yxt.anrui.flowable.api.flow.FlowableFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTask; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; +import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo; +import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; +import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign; +import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum; import com.yxt.anrui.flowable.api.utils.ProcDefEnum; +import com.yxt.anrui.flowable.api.utils.ProcessStateEnum; +import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; @@ -100,6 +109,8 @@ public class BusSalesOrderService extends MybatisBaseService variables = Convert.toMap(String.class, Object.class, busSalesOrderFlowQuery); + BusinessVariables bv = BusinessVariables.builder().build(); + bv.setFormVariables(variables); + ResultBean resultBean = flowTaskFeign.businessComplete(bv); + if (!resultBean.getSuccess()) { + return resultBean; + } + String nodeState = ""; + String taskDefKey = ""; + Map map = new HashMap<>(); + map.put("businessSid", variables.get("businessSid").toString()); + if (resultBean.getData() != null) { + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(resultBean.getData().getProcInsId()); + if (listResultBean.getSuccess() && listResultBean.getData().size() != 0) { + nodeState = listResultBean.getData().get(0).getName_(); + taskDefKey = listResultBean.getData().get(0).getTask_def_key_(); + } else { + nodeState = ProcessStateEnum.FINISHED.getStateName(); + taskDefKey = "Event_end"; + map.put("flowState", SysFormLinkFlowStateEnum.FINISH.getCode()); + } + } + map.put("nodeState", nodeState); + map.put("taskDefKey", taskDefKey); + sysFormLinkFeign.updateFiled(map); + return rb.success(); + } + + public ResultBean reject(BusSalesOrderFlowDto dto) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(dto, flowTaskVo); + ResultBean> resultBean = flowTaskFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return resultBean; + } + String nodeState = resultBean.getData().get(0).getName_(); + String taskDefKey = resultBean.getData().get(0).getTask_def_key_(); + String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef(); + Map map = new HashMap<>(); + map.put("businessSid", dto.getBusinessSid()); + map.put("nodeState", nodeState); + map.put("taskDefKey", taskDefKey); + if (incomingSourceRef.contains("start")) { + map.put("flowState", SysFormLinkFlowStateEnum.REJECT.getCode()); + } + sysFormLinkFeign.updateFiled(map); + return new ResultBean().success(); + } + + public ResultBean breakProcess(BusSalesOrderFlowDto dto) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(dto, flowTaskVo); + ResultBean resultBean = flowTaskFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return resultBean; + } + Map map = new HashMap<>(); + map.put("businessSid", dto.getBusinessSid()); + map.put("nodeState", String.valueOf(resultBean.getData())); + map.put("taskDefKey", "Event_end"); + map.put("flowState", SysFormLinkFlowStateEnum.BREAK.getCode()); + sysFormLinkFeign.updateFiled(map); + return resultBean.success(); + } + + public ResultBean revokeProcess(BusSalesOrderFlowDto dto) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(dto, flowTaskVo); + ResultBean> resultBean = flowTaskFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return resultBean; + } + String nodeState = resultBean.getData().get(0).getName_(); + String taskDefKey = resultBean.getData().get(0).getTask_def_key_(); + String inComingSourceRef = resultBean.getData().get(0).getIncomingSourceRef(); + Map map = new HashMap<>(); + map.put("businessSid", dto.getBusinessSid()); + if (inComingSourceRef.contains("start")) { + map.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState()); + map.put("taskDefKey", taskDefKey); + map.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode()); + } else { + map.put("nodeState", nodeState); + map.put("taskDefKey", taskDefKey); + } + sysFormLinkFeign.updateFiled(map); + return new ResultBean().success(); + } } \ No newline at end of file