From 8bae4fb391865ec196421adfd50273652f980e1c Mon Sep 17 00:00:00 2001 From: dimengzhe <251008545@qq.com> Date: Thu, 21 Apr 2022 17:45:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E6=9C=AA=E5=94=AE=E4=B9=B0?= =?UTF-8?q?=E6=96=AD=E7=94=B3=E8=AF=B7=E5=AE=A1=E6=89=B9=E5=90=8C=E6=84=8F?= =?UTF-8?q?=E3=80=81=E9=A9=B3=E5=9B=9E=E3=80=81=E7=BB=88=E6=AD=A2=E3=80=81?= =?UTF-8?q?=E6=92=A4=E5=9B=9E=E3=80=81=E4=BC=98=E5=8C=96=E6=9C=AA=E5=94=AE?= =?UTF-8?q?=E4=B9=B0=E6=96=AD=E7=94=B3=E8=AF=B7=E7=9A=84=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=8F=8A=E5=AE=A1=E6=89=B9=E9=80=9A=E8=BF=87=E5=90=8E=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E8=BD=A6=E8=BE=86=E7=9A=84=E7=BB=93=E7=AE=97=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E3=80=81=E6=8F=90=E4=BA=A4=E5=92=8C=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=97=B6=E5=AF=B9=E8=BD=A6=E8=BE=86=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=B7=B2=E9=A2=84=E4=B9=B0=E6=96=AD=E4=BD=9C=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basevehicle/BaseVehicleUpdateQuery.java | 1 + .../BaseVehicleActualSalesFeign.java | 18 ++ .../BaseVehicleActualSalesFlowDto.java | 52 ++++ .../BaseVehicleActualSalesFlowQuery.java | 26 ++ .../biz/basevehicle/BaseVehicleMapper.java | 16 + .../biz/basevehicle/BaseVehicleMapper.xml | 19 +- .../biz/basevehicle/BaseVehicleService.java | 29 ++ .../BaseVehicleActualDetailsMapper.java | 8 + .../BaseVehicleActualDetailsMapper.xml | 6 + .../BaseVehicleActualDetailsService.java | 7 + .../BaseVehicleActualSalesMapper.java | 12 + .../BaseVehicleActualSalesMapper.xml | 9 + .../BaseVehicleActualSalesRest.java | 20 ++ .../BaseVehicleActualSalesService.java | 281 +++++++++++++++++- .../anrui/flowable/api/utils/ProcDefEnum.java | 13 +- .../listener/ManagerTaskListener.java | 4 +- 16 files changed, 509 insertions(+), 12 deletions(-) create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowDto.java create mode 100644 anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowQuery.java diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleUpdateQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleUpdateQuery.java index 8a9b2ee712..05d5cadc55 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleUpdateQuery.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleUpdateQuery.java @@ -18,4 +18,5 @@ public class BaseVehicleUpdateQuery implements Query { private List vinNoLis; private String vehicleState; private String vihicleStateValue; + private String settlementStatus; } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java index 222b0b00d7..65e2c75b1e 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java @@ -39,5 +39,23 @@ public interface BaseVehicleActualSalesFeign { @ResponseBody ResultBean details(@RequestParam(value = "sid", required = false) String sid); + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + @ResponseBody + public ResultBean complete(@RequestBody BaseVehicleActualSalesFlowQuery baseVehicleActualSalesFlowQuery); + + @ApiOperation(value = "驳回任务") + @PostMapping("/reject") + @ResponseBody + ResultBean reject(@RequestBody BaseVehicleActualSalesFlowDto dto); + @ApiOperation(value = "终止任务") + @PostMapping("/breakProcess") + @ResponseBody + ResultBean breakProcess(@RequestBody BaseVehicleActualSalesFlowDto dto); + + @ApiOperation(value = "撤回任务") + @PostMapping("/revokeProcess") + @ResponseBody + ResultBean revokeProcess(@RequestBody BaseVehicleActualSalesFlowDto dto); } diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowDto.java new file mode 100644 index 0000000000..7c9bdbede2 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowDto.java @@ -0,0 +1,52 @@ +package com.yxt.anrui.base.api.basevehicleactualsales; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/4/21 11:35 + * @Description + */ +@Data +public class BaseVehicleActualSalesFlowDto implements Dto { + private static final long serialVersionUID = 3748090563013456721L; + + @ApiModelProperty(value = "业务sid") + private String businessSid; + + @ApiModelProperty("任务Id") + private String taskId; + + @ApiModelProperty("用户Id") + private String userId; + @ApiModelProperty("用户Sid") + private String userSid; + + @ApiModelProperty("任务意见") + private String comment; + + @ApiModelProperty("流程实例Id") + private String instanceId; + + @ApiModelProperty("节点") + private String targetKey; + + @ApiModelProperty("流程变量信息") + private Map values = new HashMap<>(); + + @ApiModelProperty("审批人") + private String assignee; + + @ApiModelProperty("候选人") + private List candidateUsers = new ArrayList<>(); + + @ApiModelProperty("审批组") + private List candidateGroups = new ArrayList<>(); +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowQuery.java new file mode 100644 index 0000000000..b8fb8d7864 --- /dev/null +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFlowQuery.java @@ -0,0 +1,26 @@ +package com.yxt.anrui.base.api.basevehicleactualsales; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/4/21 11:32 + * @Description 审核相关参数 + */ +@Data +public class BaseVehicleActualSalesFlowQuery implements Query { + private static final long serialVersionUID = -3729579148766080074L; + + @ApiModelProperty(value = "处理意见") + private String comment; + @ApiModelProperty(value = "流程id") + private String instanceId; + @ApiModelProperty(value = "环节id") + private String taskId; + @ApiModelProperty(value = "用户sid") + private String userSid; + @ApiModelProperty(value = "业务sid") + private String businessSid; +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java index 31eb129d95..0e1c09e2de 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java @@ -262,5 +262,21 @@ public interface BaseVehicleMapper extends BaseMapper { ResultBean updateByVinNo(@Param("vinNoList") List stringList, @Param("vehicleState") String vehicleState, @Param("vehicleStateValue") String vehicleStateValue); + /** + * 询该车辆数组中是否包含车辆状态为采购退库状态的车辆,若有返回true,没有则返回false + * + * @param vinNoList 车架号数组 + * @return + */ List selectStateByVinNo(@Param("vinNoList") List vinNoList); + + /** + * 查询该车辆数组中是否包含车辆结算状态为预买断的状态 + * + * @param vinNoList 车架号数组 + * @return + */ + List selectStatusByVinNo(@Param("vinNoList") List vinNoList); + + int updateStatusByVinNo(@Param("vinNoList") List stringList, @Param("settlementStatus") String settlementStatus); } \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml index eb4260617e..ebc25ab51c 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml @@ -590,10 +590,27 @@ + + + + + update base_vehicle + set settlementStatus = #{settlementStatus} + where vinNo in + + #{vinNo} + + \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java index 4f9bb876d6..d6f36be43c 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java @@ -976,6 +976,12 @@ public class BaseVehicleService extends MybatisBaseService selectStateByVinNo(List vinNoList) { ResultBean resultBean = ResultBean.fireFail(); boolean isTrue = false; @@ -986,4 +992,27 @@ public class BaseVehicleService extends MybatisBaseService selectStatusByVinNo(List vinNoList) { + ResultBean resultBean = ResultBean.fireFail(); + boolean isTrue = false; + //查询车架号数组中是否有采购退库状态的车辆,若有则返回true,没有返回false + List booleanList = baseMapper.selectStatusByVinNo(vinNoList); + if (booleanList.contains(true)) { + isTrue = true; + } + return resultBean.success().setData(isTrue); + } + + public int updateStatusByVinNo(BaseVehicleUpdateQuery baseVehicleUpdateQuery) { + List stringList = baseVehicleUpdateQuery.getVinNoLis(); + String settlementStatus = baseVehicleUpdateQuery.getSettlementStatus(); + return baseMapper.updateStatusByVinNo(stringList, settlementStatus); + } } \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java index 791f1831a3..59aaab7ac3 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java @@ -26,4 +26,12 @@ public interface BaseVehicleActualDetailsMapper extends BaseMapper detailsList(String sid); + + /** + * 根据业务sid查询车辆vinNo的集合 + * + * @param sid 未售买断申请sid + * @return + */ + List selectVinNoList(String sid); } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml index 6aa69814e6..9898bb4f1a 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml @@ -18,4 +18,10 @@ from base_vehicle_actual_details where vehicleActualSid = #{sid} + + \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java index f2d3fecc4a..c5be147a3b 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java @@ -4,6 +4,7 @@ import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails; import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsDto; import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -66,4 +67,10 @@ public class BaseVehicleActualDetailsService extends MybatisBaseService detailsList(String sid) { return baseMapper.detailsList(sid); } + + public ResultBean> selectVinNoList(String sid) { + ResultBean> rb = ResultBean.fireFail(); + List vinNoList = baseMapper.selectVinNoList(sid); + return rb.success().setData(vinNoList); + } } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java index a098502d1b..39b8f1da2c 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java @@ -33,4 +33,16 @@ public interface BaseVehicleActualSalesMapper extends BaseMapper + + + update base_vehicle_actual_sales + set procDefId=#{procDefId}, + nodeState=#{nodeState}, + procInstSid=#{procInstSid}, + nodeSid=#{nodeSid} + where sid = #{businessSid} + \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java index cd296e5b35..6c226f91de 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java @@ -43,4 +43,24 @@ public class BaseVehicleActualSalesRest implements BaseVehicleActualSalesFeign { public ResultBean details(String sid) { return baseVehicleActualSalesService.details(sid); } + + @Override + public ResultBean complete(BaseVehicleActualSalesFlowQuery baseVehicleActualSalesFlowQuery) { + return baseVehicleActualSalesService.complete(baseVehicleActualSalesFlowQuery); + } + + @Override + public ResultBean reject(BaseVehicleActualSalesFlowDto dto) { + return baseVehicleActualSalesService.reject(dto); + } + + @Override + public ResultBean breakProcess(BaseVehicleActualSalesFlowDto dto) { + return baseVehicleActualSalesService.breakProcess(dto); + } + + @Override + public ResultBean revokeProcess(BaseVehicleActualSalesFlowDto dto) { + return baseVehicleActualSalesService.revokeProcess(dto); + } } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java index d9a1df04a7..55baad329c 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java @@ -1,14 +1,27 @@ package com.yxt.anrui.base.biz.basevehicleactualsales; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.base.api.basevehicle.BaseVehicleUpdateQuery; import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails; import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo; import com.yxt.anrui.base.api.basevehicleactualsales.*; +import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService; import com.yxt.anrui.base.biz.basevehicleactualdetails.BaseVehicleActualDetailsService; +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.sysformlink.SysFormStateVo; +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.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.common.base.service.MybatisBaseService; @@ -22,7 +35,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Author dimengzhe @@ -41,6 +56,12 @@ public class BaseVehicleActualSalesService extends MybatisBaseService pagerList(PagerQuery pagerQuery) { IPage page = PagerUtil.queryToPage(pagerQuery); QueryWrapper qw = buildQueryWrapper(pagerQuery.getParams()); return baseMapper.pagerList(page, qw); } + /** + * 构造查询条件 + * + * @param params 查询条件 + * @return + */ private QueryWrapper buildQueryWrapper(BaseVehicleActualSalesQuery params) { QueryWrapper qw = new QueryWrapper<>(); if (params != null) { @@ -84,6 +117,12 @@ public class BaseVehicleActualSalesService extends MybatisBaseService variables = new HashMap<>(); + variables.put("businessSid", businessSid); + variables.put("orgSid", orgSid); + ResultBean businessResultBean = flowableFeign.businessStart(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId(), userSid, variables); + if (businessResultBean.getSuccess() && businessResultBean.getData() != null) { + Map map = (Map) businessResultBean.getData(); + //更新未售买断业务表中的流程状态 + modifyFlowState(businessSid, + ProcDefEnum.SCMVEHICLERETURN.getProDefId(), + map.get("nodeState"), + map.get("procInsId"), + map.get("taskDefKey") + ); + return rb.success(); + } else { + return rb.setMsg(businessResultBean.getMsg()); + } + } + + /** + * 更新未售买断业务表中的流程状态 + * + * @param businessSid 业务sid + * @param proDefId 流程定义ID + * @param nodeState 节点状态 + * @param procInsId 流程实例ID + * @param taskDefKey 任务定义的ID值 + */ + private void modifyFlowState(String businessSid, String proDefId, String nodeState, + String procInsId, + String taskDefKey) { + baseMapper.modifyFlowState(businessSid, + proDefId, + nodeState, + procInsId, + taskDefKey); } /** @@ -174,4 +288,165 @@ public class BaseVehicleActualSalesService extends MybatisBaseService variables = Convert.toMap(String.class, Object.class, baseVehicleActualSalesFlowQuery); + BusinessVariables bv = BusinessVariables.builder().build(); + bv.setFormVariables(variables); + //判断车辆的结算状态是否包含预买断的状态,如果是的话,返回审核失败 + boolean isTrue = isTrue(baseVehicleActualSalesFlowQuery.getBusinessSid()); + if (isTrue) { + return rb.setMsg("审核失败!该申请中包含结算状态已是预买断状态的车辆"); + } + //审批 + ResultBean resultBean = flowTaskFeign.businessComplete(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = getMap(variables.get("businessSid").toString(), resultBean.getData()); + //更新关联表节点状态属性 + sysFormLinkFeign.updateFiled(map); + if ("Event_end".equals(map.get("taskDefKey"))) { + //更新车辆的结算状态 + updateByVinNo(variables.get("businessSid").toString()); + } + return rb.success(); + } + + /** + * 获取关联表节点状态属性 + * + * @param businessSid 业务sid + * @param flowTask 工作流任务相关参数 + * @return + */ + public Map getMap(String businessSid, FlowTask flowTask) { + String nodeState = ""; + String taskDefKey = ""; + Map map = new HashMap<>(); + map.put("businessSid", businessSid); + if (flowTask != null) { + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(flowTask.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); + return map; + } + + /** + * 批量更新车辆的结算状态为1预买断状态 + * + * @param businessSid 业务sid + */ + public void updateByVinNo(String businessSid) { + //更新车辆状态为采购退库中 + ResultBean> vinNoList = baseVehicleActualDetailsService.selectVinNoList(businessSid); + if (vinNoList.getSuccess()) { + if (vinNoList.getData().size() != 0) { + //结算状态设置为预买断 + String settlementStatus = "1"; + BaseVehicleUpdateQuery baseVehicleUpdateQuery = new BaseVehicleUpdateQuery(); + baseVehicleUpdateQuery.setSettlementStatus(settlementStatus); + baseVehicleUpdateQuery.setVinNoLis(vinNoList.getData()); + baseVehicleService.updateStatusByVinNo(baseVehicleUpdateQuery); + } + } + } + + /** + * 查询车架号数组中是否有结算状态为预买断的车辆,若有则返回true,没有返回false + * + * @param businessSid 业务sid + * @return + */ + public Boolean isTrue(String businessSid) { + boolean isTrue = false; + ResultBean> vinNoList1 = baseVehicleActualDetailsService.selectVinNoList(businessSid); + if (vinNoList1.getSuccess() && vinNoList1.getData().size() != 0) { + ResultBean stringResultBean = baseVehicleService.selectStatusByVinNo(vinNoList1.getData()); + if (stringResultBean.getSuccess()) { + if (stringResultBean.getData()) { + isTrue = true; + } + } + } + return isTrue; + } + + public ResultBean reject(BaseVehicleActualSalesFlowDto 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(BaseVehicleActualSalesFlowDto 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(BaseVehicleActualSalesFlowDto 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(); + } } diff --git a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java index 1c998756cc..2efc7d3893 100644 --- a/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java +++ b/anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java @@ -9,13 +9,14 @@ public enum ProcDefEnum { ORDERDEPOSITVEHICLEAPPROVE("虚拟订单(预订车辆)审批", "order_deposit_vehicle_approve_bsf3sgwd:1:230016"), ORDERAPPROVE("订单审批", "order_approve_96asleqi:1:227504"), CARSALECONTRACTAPPROVE("新车买卖合同审批", "car_sale_contract_asbspcvd:1:230020"), - SALESPOLICY("销售政策审批流程","sales_policy_oxeeyzhr:1:247508"), - INVOICEAPPLY("开票申请流程","invoice_apply_ul4vx0oi:1:247512"), - ADVANCEGINVOICEAPPLY("提前开票申请流程","advance_ginvoiceapply:1:242664"), - ARREARSCARRYVEHICLE("欠款提车审批流程","arrears_carryvehicle:1:232589"), - VEHICLEAPPLY("排产申请流程","process_9egcg169:1:242660"), - RECORDAPPLICATION("入账申请","record_application_7y80d4r8:1:265008"), + SALESPOLICY("销售政策审批流程", "sales_policy_oxeeyzhr:1:247508"), + INVOICEAPPLY("开票申请流程", "invoice_apply_ul4vx0oi:1:247512"), + ADVANCEGINVOICEAPPLY("提前开票申请流程", "advance_ginvoiceapply:1:242664"), + ARREARSCARRYVEHICLE("欠款提车审批流程", "arrears_carryvehicle:1:232589"), + VEHICLEAPPLY("排产申请流程", "process_9egcg169:1:242660"), + RECORDAPPLICATION("入账申请", "record_application_7y80d4r8:1:265008"), SCMVEHICLERETURN("采购退库", "process_md8aeoap:4:245028"), + BASEVEHICLEACTUALSALES("未售买断", ""),//ToDo ; ProcDefEnum(String proDefName, String proDefId) { diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/listener/ManagerTaskListener.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/listener/ManagerTaskListener.java index df8dbb260c..bcc1fb2401 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/listener/ManagerTaskListener.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/listener/ManagerTaskListener.java @@ -85,7 +85,7 @@ public class ManagerTaskListener implements TaskListener { // String obj2String = JSONObject.toJSONString(obj); log.info("准备发送消息为:{}", obj2String); //发送消息 - ListenableFuture> future = kafkaTemplate.send("aaa", obj2String); + /* ListenableFuture> future = kafkaTemplate.send("aaa", obj2String); future.addCallback(new ListenableFutureCallback>() { @Override public void onFailure(Throwable throwable) { @@ -98,7 +98,7 @@ public class ManagerTaskListener implements TaskListener { //成功的处理 log.info("aaa" + " - 生产者 发送消息成功:" + stringObjectSendResult.toString()); } - }); + });*/ }