From 749ed745715f2b98f32dc29dcd3971f8a935172c Mon Sep 17 00:00:00 2001 From: dimengzhe <251008545@qq.com> Date: Tue, 1 Nov 2022 16:22:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E8=AE=A2=E5=8D=95=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=94=81=E5=AE=9A=E7=8A=B6=E6=80=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/basevehicle/BaseVehicleFeign.java | 2 +- .../BusMainDepositUpdateQuery.java | 4 +- .../base/common/enums/DictCommonEnum.java | 16 ++ .../biz/basevehicle/BaseVehicleMapper.xml | 6 +- .../biz/basevehicle/BaseVehicleService.java | 2 +- .../AppBusDepositVehicleListVo.java | 3 + .../busdepositvehicle/BusDepositVehicle.java | 65 +++--- .../BusDepositVehicleFeign.java | 2 +- .../api/bussalesorder/BusSalesOrderFeign.java | 1 - .../BusDepositVehicleMapper.xml | 42 ++-- .../BusDepositVehicleService.java | 26 +-- .../busmaindeposit/BusMainDepositService.java | 211 ++++++++++++------ .../bussalesorder/BusSalesOrderService.java | 91 ++++++-- .../biz/busdeposit/AppBusDepositRest.java | 2 +- .../AppBusDepositCustomerRest.java | 2 +- .../AppBusDepositVehicleRest.java | 2 +- 16 files changed, 305 insertions(+), 172 deletions(-) diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java index 637f4db1a5..4ef43d15de 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java @@ -279,7 +279,7 @@ public interface BaseVehicleFeign { @PostMapping("/updateByVinNo") ResultBean updateByVinNo(@RequestBody BaseVehicleUpdateQuery baseVehicleUpdateQuery); - @ApiOperation("简易订单更新状态") + @ApiOperation("简易订单、销售订单根据车辆sid更新状态") @PostMapping("/updateMainDepositByVinNo") ResultBean updateMainDepositByVinNo(@RequestBody BusMainDepositUpdateQuery busMainDepositUpdateQuery); diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BusMainDepositUpdateQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BusMainDepositUpdateQuery.java index 53af41e247..2b7a933b76 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BusMainDepositUpdateQuery.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BusMainDepositUpdateQuery.java @@ -12,8 +12,8 @@ public class BusMainDepositUpdateQuery implements Query { private static final long serialVersionUID = -8412945306550896470L; - @ApiModelProperty("车架号") - private List vinNoLis; + @ApiModelProperty("车辆sid") + private List vinSidList; @ApiModelProperty("锁定状态") private String lockedState; diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/DictCommonEnum.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/DictCommonEnum.java index 69ad3c3e2a..f4bfcd9c20 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/DictCommonEnum.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/DictCommonEnum.java @@ -95,4 +95,20 @@ public class DictCommonEnum { } + @Getter + public static enum DepositBillType { + JYDD_DC("02", "车辆预定"), + JYDD_DJ("01", "订金收取"), + ; + + private final String code; + private final String remarks; + + DepositBillType(String code, String remarks) { + this.code = code; + this.remarks = remarks; + } + + } + } 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 59193cb481..bb607e5b4c 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 @@ -797,9 +797,9 @@ update base_vehicle set lockedState = #{lockedState},lockedStateValue = #{lockedStateValue} - where vinNo in - - #{vinNo} + where sid in + + #{vinSid} 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 2e94788ad9..42a1fba97a 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 @@ -1584,7 +1584,7 @@ public class BaseVehicleService extends MybatisBaseService stringList = busMainDepositUpdateQuery.getVinNoLis(); + List stringList = busMainDepositUpdateQuery.getVinSidList(); String lockedState = busMainDepositUpdateQuery.getLockedState(); String lockedStateValue = busMainDepositUpdateQuery.getLockedStateValue(); baseMapper.updateMainDepositByVinNo(stringList, lockedState, lockedStateValue); diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleListVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleListVo.java index eb7327539f..d04040fb83 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleListVo.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleListVo.java @@ -32,4 +32,7 @@ public class AppBusDepositVehicleListVo implements Vo { @ApiModelProperty(value = "颜色") private String colour; + @ApiModelProperty("车辆sid") + private String carSid; + } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicle.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicle.java index 180b7df185..5b9da03526 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicle.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicle.java @@ -21,41 +21,41 @@ import java.math.BigDecimal; * @version 1.0 * @since 1.0 */ -@ApiModel(value = "销售订金单_订车信息-虚拟订车单-订车信息", description = "销售订金单_订车信息-虚拟订车单-订车信息") +@ApiModel(value = "简易订单-订车", description = "简易订单-订车") @TableName("bus_deposit_vehicle") @Data public class BusDepositVehicle extends BaseEntity { private static final long serialVersionUID = 1L; - - @ApiModelProperty("订车单sid") + + @ApiModelProperty("订车单sid") private String billSid; - - @ApiModelProperty("生产厂商sid") + + @ApiModelProperty("生产厂商sid") private String manufacturerSid; - - @ApiModelProperty("生产厂商名称") + + @ApiModelProperty("生产厂商名称") private String manufacturerName; - - @ApiModelProperty("品牌sid") + + @ApiModelProperty("品牌sid") private String brandSid; - - @ApiModelProperty("品牌名称") + + @ApiModelProperty("品牌名称") private String brandName; - - @ApiModelProperty("车型Sid") + + @ApiModelProperty("车型Sid") private String modelSid; - - @ApiModelProperty("车型名称") + + @ApiModelProperty("车型名称") private String modelName; - - @ApiModelProperty("车型型号") + + @ApiModelProperty("车型型号") private String carModel; - - @ApiModelProperty("车型配置sid(可为空,根据车型筛选)") + + @ApiModelProperty("车型配置sid(可为空,根据车型筛选)") private String modelConfigSid; - - @ApiModelProperty("车型配置信息(可为空)") + + @ApiModelProperty("车型配置信息(可为空)") private String modelotherConfig; @ApiModelProperty("车辆sid") @@ -66,20 +66,20 @@ public class BusDepositVehicle extends BaseEntity { @ApiModelProperty("预计订金日期") private String reserve_deposit_date; - - @ApiModelProperty("其它选装配置,填写") + + @ApiModelProperty("其它选装配置,填写") private String otherChooseConfig; - - @ApiModelProperty("预定单价(可为空)") + + @ApiModelProperty("预定单价(可为空)") private BigDecimal reserve_price; - - @ApiModelProperty("预定数量(可为空)") + + @ApiModelProperty("预定数量(可为空)") private String reserve_quantity; - - @ApiModelProperty("预提车地点(可为空)") + + @ApiModelProperty("预提车地点(可为空)") private String reserve_position; - - @ApiModelProperty("预提车日期(可为空)") + + @ApiModelProperty("预提车日期(可为空)") private String reserve_date; @ApiModelProperty("颜色") @@ -95,4 +95,7 @@ public class BusDepositVehicle extends BaseEntity { private String procInstId; @ApiModelProperty(value = "任务id") private String taskId; + + @ApiModelProperty("车架号") + private String vinNo; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicleFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicleFeign.java index d9dad56272..b4efb83071 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicleFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicleFeign.java @@ -25,7 +25,7 @@ import java.util.List; * @version 1.0 * @since 1.0 */ -@Api(tags = "销售订金单_订车信息-虚拟订车单-订车信息") +@Api(tags = "简易订单-订车信息") @FeignClient( contextId = "anrui-buscenter-BusDepositVehicle", name = "anrui-buscenter", diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java index 7744c5731f..16a13946e8 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java @@ -229,5 +229,4 @@ public interface BusSalesOrderFeign { public ResultBean> getApprovalContractList(@RequestBody PagerQuery pagerQuery); - } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleMapper.xml index fbe1d8da6f..c3b720d4ba 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleMapper.xml @@ -20,8 +20,11 @@ @@ -72,7 +75,7 @@ UPDATE bus_deposit SET nodeState=#{nodeState} - , nodeId=#{taskDefKey} + , nodeId=#{taskDefKey} , procDefId=#{procDefId} @@ -84,5 +87,4 @@ WHERE sid = #{sid} - \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleService.java index d734c8f1cf..97546456fa 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleService.java @@ -1,28 +1,20 @@ package com.yxt.anrui.buscenter.biz.busdepositvehicle; -import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.buscenter.api.busdepositvehicle.*; import com.yxt.anrui.buscenter.api.busdepositvehiclecustomer.BusDepositVehicleCustomerVo; import com.yxt.anrui.buscenter.api.busmaindeposit.BusMainDeposit; -import com.yxt.anrui.buscenter.api.busmaindeposit.flowable.SubmitVirtualOrderVehicleDto; import com.yxt.anrui.buscenter.biz.busdepositvehiclecustomer.BusDepositVehicleCustomerService; import com.yxt.anrui.buscenter.biz.busmaindeposit.BusMainDepositService; import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign; -import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; -import com.yxt.anrui.flowable.api.utils.ProcDefEnum; -import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; 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.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; -import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo; import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; @@ -33,8 +25,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; -import java.util.*; -import java.util.stream.Stream; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; /** * Project: anrui-buscenter(车辆订单)
@@ -230,7 +223,6 @@ public class BusDepositVehicleService extends MybatisBaseService carList = baseMapper.selByBillSidList(virtualOrderSid); if (carList.size() > 0) { vo.setCarList(carList); @@ -304,7 +296,7 @@ public class BusDepositVehicleService extends MybatisBaseService().success().setData(vo); } - public ResultBean submitVirtualOrderVehicle(SubmitVirtualOrderVehicleDto dto) { + /* public ResultBean submitVirtualOrderVehicle(SubmitVirtualOrderVehicleDto dto) { ResultBean rb = ResultBean.fireFail(); //根据用户sid获取staffSid ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); @@ -376,7 +368,7 @@ public class BusDepositVehicleService extends MybatisBaseService map) { + /* private int updateFlowFiled(Map map) { return baseMapper.updateFlowFiled(map); } @@ -429,5 +421,5 @@ public class BusDepositVehicleService extends MybatisBaseService stringResultBean = messageFeign.pushMessage(messageFlowableQuery); return voResultBean; @@ -1858,8 +1864,8 @@ public class BusMainDepositService extends MybatisBaseService busMainDeposit = new AtomicReference<>(fetchBySid(dto.getVirtualOrderSid())); + int r = submitBusinessVehicleData(dto, busMainDeposit.get()); if (r == 3) { return rb.setMsg("该申请不存在"); } @@ -1898,25 +1904,40 @@ public class BusMainDepositService extends MybatisBaseService voResultBean = flowableFeign.startProcess(bv); UpdateFlowFieldVo ufVo = voResultBean.getData(); updateFlowFiled(BeanUtil.beanToMap(ufVo)); - List list = dto.getCarList().stream().map(AppBusDepositVehicleCarListDto::getVin).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); - BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); - busMainDepositUpdateQuery.setVinNoLis(list); - busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode()); - busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks()); - baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); - //极光推送 - busMainDeposit = fetchBySid(businessSid); - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo,messageFlowVo); - ufVo.setProcInsId(busMainDeposit.getProcInsId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("简易订单-订车申请"); - messageFlowableQuery.setMsgContent(busMainDeposit.getStaffName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); - messageFlowableQuery.setMsgTitle("简易订单"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + //更新已选择的车架号的状态为审批中 + List list = dto.getCarList().stream().map(AppBusDepositVehicleCarListDto::getCarSid).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); + BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); + busMainDepositUpdateQuery.setVinSidList(list); + busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode()); + busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks()); + baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); + }); + Future future2 = pool.submit(() -> { + //极光推送 + busMainDeposit.set(fetchBySid(businessSid)); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcInsId(busMainDeposit.get().getProcInsId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("简易订单-订车申请"); + messageFlowableQuery.setMsgContent(busMainDeposit.get().getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("简易订单"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + + } catch (Exception e) { + e.printStackTrace(); + } return voResultBean; } if (r == 2) { @@ -1924,8 +1945,8 @@ public class BusMainDepositService extends MybatisBaseService list = appBusDepositVehicleDetailVo.getVehicleList().stream().map(AppBusDepositVehicleListVo::getVin).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); - BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); - busMainDepositUpdateQuery.setVinNoLis(list); - busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.LOCK.getCode()); - busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.LOCK.getRemarks()); - baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); //极光推送 busMainDeposit = fetchBySid(bv.getBusinessSid()); MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo,messageFlowVo); + BeanUtil.copyProperties(ufVo, messageFlowVo); ufVo.setProcInsId(busMainDeposit.getProcInsId()); ufVo.setProcDefId(busMainDeposit.getProcDefId()); messageFlowableQuery.setUfVo(messageFlowVo); @@ -1971,13 +1985,29 @@ public class BusMainDepositService extends MybatisBaseService stringResultBean = messageFeign.pushMessage(messageFlowableQuery); -// String msgSid = getMessage(ufVo, appMap, busMainDeposit); + } else { + //更新已选择的车架号的状态为简易订单锁定 + //如果类型为订车 + if (DictCommonEnum.DepositBillType.JYDD_DJ.getCode().equals(busMainDeposit.getDepositBillTypeKey())) { + //推送款项确认 + + } + if (DictCommonEnum.DepositBillType.JYDD_DC.getCode().equals(busMainDeposit.getDepositBillTypeKey())) { + AppBusDepositVehicleDetailVo appBusDepositVehicleDetailVo = busDepositVehicleService.getReserveCarDetails(bv.getBusinessSid()).getData(); + List list = appBusDepositVehicleDetailVo.getVehicleList().stream().map(AppBusDepositVehicleListVo::getCarSid).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); + BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); + busMainDepositUpdateQuery.setVinSidList(list); + busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.LOCK.getCode()); + busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.LOCK.getRemarks()); + baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); + } + } return rb.success().setData(resultBean.getData()); } else { @@ -2042,11 +2072,11 @@ public class BusMainDepositService extends MybatisBaseService busMainDeposit = new AtomicReference<>(fetchBySid(query.getBusinessSid())); + if (busMainDeposit.get() == null) { return rb.setMsg("该申请不存在"); } - String businessTaskId = busMainDeposit.getTaskId(); + String businessTaskId = busMainDeposit.get().getTaskId(); if (StringUtils.isNotBlank(businessTaskId)) { if (businessTaskId.equals(query.getTaskId())) { FlowTaskVo flowTaskVo = new FlowTaskVo(); @@ -2064,32 +2094,60 @@ public class BusMainDepositService extends MybatisBaseService map = BeanUtil.beanToMap(resultBean.getData()); //更新业务中的流程相关的参数 updateFlowFiled(map); - //极光推送 - busMainDeposit = fetchBySid(query.getBusinessSid()); - MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); - MessageFlowVo messageFlowVo = new MessageFlowVo(); - BeanUtil.copyProperties(ufVo,messageFlowVo); - String procId = busMainDeposit.getProcInsId(); - ufVo.setProcInsId(busMainDeposit.getProcInsId()); - ufVo.setProcDefId(busMainDeposit.getProcDefId()); - messageFlowableQuery.setUfVo(messageFlowVo); - messageFlowableQuery.setAppMap(appMap); - messageFlowableQuery.setBusinessSid(query.getBusinessSid()); - if ("01".equals(busMainDeposit.getDepositBillTypeKey())) {//订金收取 - messageFlowableQuery.setModuleName("简易订单-订金申请"); - }else{ - messageFlowableQuery.setModuleName("简易订单-订车申请"); - } - ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); - String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); - List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); - if(receiveSidList.size() == 1 && receiveSidList.get(0).equals(busMainDeposit.getStaffSid())){ - messageFlowableQuery.setMsgContent("您提交的"+messageFlowableQuery.getModuleName()+"已被驳回,请重新提交"); - }else{ - messageFlowableQuery.setMsgContent(busMainDeposit.getStaffName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + busMainDeposit.set(fetchBySid(query.getBusinessSid())); + String procId = busMainDeposit.get().getProcInsId(); + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcInsId(busMainDeposit.get().getProcInsId()); + ufVo.setProcDefId(busMainDeposit.get().getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(query.getBusinessSid()); + if ("01".equals(busMainDeposit.get().getDepositBillTypeKey())) {//订金收取 + messageFlowableQuery.setModuleName("简易订单-订金申请"); + } else { + messageFlowableQuery.setModuleName("简易订单-订车申请"); + } + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busMainDeposit.get().getStaffSid())) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(busMainDeposit.get().getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + messageFlowableQuery.setMsgTitle("简易订单"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + Future future2 = pool.submit(() -> { + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busMainDeposit.get().getStaffSid())) { + //更新已选择的车架号的状态为未锁定 + AppBusDepositVehicleDetailVo appBusDepositVehicleDetailVo = busDepositVehicleService.getReserveCarDetails(query.getBusinessSid()).getData(); + List list = appBusDepositVehicleDetailVo.getVehicleList().stream().map(AppBusDepositVehicleListVo::getCarSid).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); + BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); + busMainDepositUpdateQuery.setVinSidList(list); + busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode()); + busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks()); + baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); + } + }); + + } catch (Exception e) { + e.printStackTrace(); } - messageFlowableQuery.setMsgTitle("简易订单"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); } } @@ -2112,6 +2170,21 @@ public class BusMainDepositService extends MybatisBaseService> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busMainDeposit.getStaffSid())) { + //更新已选择的车架号的状态为未锁定 + AppBusDepositVehicleDetailVo appBusDepositVehicleDetailVo = busDepositVehicleService.getReserveCarDetails(query.getBusinessSid()).getData(); + List list = appBusDepositVehicleDetailVo.getVehicleList().stream().map(AppBusDepositVehicleListVo::getCarSid).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); + BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); + busMainDepositUpdateQuery.setVinSidList(list); + busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode()); + busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks()); + baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); + } return rb.success().setData(resultBean.getData()); } } @@ -2139,13 +2212,13 @@ public class BusMainDepositService extends MybatisBaseService list = appBusDepositVehicleDetailVo.getVehicleList().stream().map(AppBusDepositVehicleListVo::getVin).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); + List list = appBusDepositVehicleDetailVo.getVehicleList().stream().map(AppBusDepositVehicleListVo::getCarSid).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); - busMainDepositUpdateQuery.setVinNoLis(list); - busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode()); - busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks()); + busMainDepositUpdateQuery.setVinSidList(list); + busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode()); + busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks()); updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); return rb.success().setData(resultBean.getData()); } 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 eb566c3f13..79c0e434a1 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 @@ -30,12 +30,14 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo; import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceQuery; import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceVo; import com.yxt.anrui.base.api.basepostprice.BasePostPriceFeign; import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo; +import com.yxt.anrui.base.api.basevehicle.BusMainDepositUpdateQuery; import com.yxt.anrui.base.api.basevehicle.app.AppBaseVehicleOrderVo; import com.yxt.anrui.base.api.basevehiclemodelappendix.BaseVehicleModelAppendixFeign; import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyFeign; @@ -45,7 +47,10 @@ import com.yxt.anrui.base.api.busvehicleapplydetail.AppBusVehicleApplyListVo; import com.yxt.anrui.base.api.busvehicleapplydetail.BusVehicleApplyDetailFeign; import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderFeign; import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderVo; -import com.yxt.anrui.base.api.commoncontract.*; +import com.yxt.anrui.base.api.commoncontract.CommonContract; +import com.yxt.anrui.base.api.commoncontract.CommonContractBuscenterVo; +import com.yxt.anrui.base.api.commoncontract.CommonContractFeign; +import com.yxt.anrui.base.api.commoncontract.CommonContractVo; import com.yxt.anrui.base.common.enums.BillTypeEnum; import com.yxt.anrui.base.common.enums.VehicleState; import com.yxt.anrui.base.common.utils.Rule; @@ -133,12 +138,15 @@ import com.yxt.messagecenter.api.message.MessageFeign; import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowableQuery; import org.apache.commons.lang3.StringUtils; +import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -2400,18 +2408,18 @@ public class BusSalesOrderService extends MybatisBaseService busSalesOrder = new AtomicReference<>(fetchBySid(businessSid)); + if (busSalesOrder.get() == null) { return rb.setMsg("该销售订单不存在"); } //根据staffSid获取用户的组织全路径 - ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(busSalesOrder.getStaffSid()); + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(busSalesOrder.get().getStaffSid()); if (!staffOrgResultBean.getSuccess()) { return rb.setMsg(staffOrgResultBean.getMsg()); } //用户的组织全路径 String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); - int r = submitBusinessData(dto, busSalesOrder); + int r = submitBusinessData(dto, busSalesOrder.get()); if (r == 0) { return rb.setMsg("操作失败!提交的数据不一致"); } @@ -2433,13 +2441,13 @@ public class BusSalesOrderService extends MybatisBaseService variables = getOrderMap(busSalesOrder); + Map variables = getOrderMap(busSalesOrder.get()); //用户的部门全路径sid bv.setOrgSidPath(orgSidPath); //业务sid bv.setBusinessSid(businessSid); //用户sid - bv.setUserSid(busSalesOrder.getCreateBySid()); + bv.setUserSid(busSalesOrder.get().getCreateBySid()); bv.setFormVariables(variables); //流程定义id bv.setModelId(ProcDefEnum.SALESORDER.getProDefId()); @@ -2450,19 +2458,45 @@ public class BusSalesOrderService extends MybatisBaseService) variables.get("app")); - messageFlowableQuery.setBusinessSid(businessSid); - messageFlowableQuery.setModuleName("销售订单申请"); - messageFlowableQuery.setMsgContent(busSalesOrder.getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); - messageFlowableQuery.setMsgTitle("销售订单"); - ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); -// String msgSid = getMessage(ufVo, (Map) variables.get("app"), busSalesOrder); + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + Future future1 = pool.submit(() -> { + //极光推送 + busSalesOrder.set(fetchBySid(businessSid)); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap((Map) variables.get("app")); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("销售订单申请"); + messageFlowableQuery.setMsgContent(busSalesOrder.get().getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("销售订单"); + ResultBean stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + }); + Future future2 = pool.submit(() -> { + ResultBean resultBean = getSaleOrderDetails(businessSid); + AppOrderDetailsVo vo = resultBean.getData(); + if ("现车".equals(vo.getOrderType())) { + //更新已选择的车架号的状态为审批中 + List list = busSalesOrderVehicleService.selectVehicleSid(businessSid); + BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); + busMainDepositUpdateQuery.setVinSidList(list); + busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode()); + busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks()); + baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); + } + + }); + + } catch (Exception e) { + e.printStackTrace(); + } + return voResultBean; } if (r == 2) { @@ -2470,8 +2504,8 @@ public class BusSalesOrderService extends MybatisBaseService stringResultBean = messageFeign.pushMessage(messageFlowableQuery); + } else { + ResultBean details = getSaleOrderDetails(bv.getBusinessSid()); + AppOrderDetailsVo vo = details.getData(); + if ("现车".equals(vo.getOrderType())) { + //更新已选择的车架号的状态为审批中 + List list = busSalesOrderVehicleService.selectVehicleSid(bv.getBusinessSid()); + BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); + busMainDepositUpdateQuery.setVinSidList(list); + busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode()); + busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks()); + baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); + } } -// String msgSid = getMessage(ufVo, (Map) variables.get("app"), busSalesOrder); return rb.success().setData(resultBean.getData()); } else { return rb.setMsg("操作失败!提交的数据不一致"); diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdeposit/AppBusDepositRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdeposit/AppBusDepositRest.java index 992d0b3c2a..1080088ebf 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdeposit/AppBusDepositRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdeposit/AppBusDepositRest.java @@ -25,7 +25,7 @@ import java.util.List; * @since 1.0 */ @Api(tags = "销售订金单表-销售虚拟订车单") -@RestController +//@RestController @RequestMapping("v1/busdeposit") public class AppBusDepositRest implements AppBusDepositFeign { diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositcustomer/AppBusDepositCustomerRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositcustomer/AppBusDepositCustomerRest.java index 85d6c005c5..8ba00f9e52 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositcustomer/AppBusDepositCustomerRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositcustomer/AppBusDepositCustomerRest.java @@ -47,7 +47,7 @@ import java.util.List; * @since 1.0 */ @Api(tags = "销售订金单_客户信息") -@RestController("com.yxt.anrui.buscenter.biz.busdepositcustomer.BusDepositCustomerRest") +//@RestController("com.yxt.anrui.buscenter.biz.busdepositcustomer.BusDepositCustomerRest") @RequestMapping("v1/busdepositcustomer") public class AppBusDepositCustomerRest implements AppBusDepositCustomerFeign { diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositvehicle/AppBusDepositVehicleRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositvehicle/AppBusDepositVehicleRest.java index f4fd1292fa..d32b2399ca 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositvehicle/AppBusDepositVehicleRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositvehicle/AppBusDepositVehicleRest.java @@ -26,7 +26,7 @@ import java.util.List; * @since 1.0 */ @Api(tags = "销售订金单_订车信息-虚拟订车单-订车信息") -@RestController +//@RestController @RequestMapping("v1/busdepositvehicle") public class AppBusDepositVehicleRest implements AppBusDepositVehicleFeign {