Browse Source

虚拟订单添加锁定状态修改

master
dimengzhe 3 years ago
parent
commit
749ed74571
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java
  2. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BusMainDepositUpdateQuery.java
  3. 16
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/DictCommonEnum.java
  4. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  5. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  6. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/AppBusDepositVehicleListVo.java
  7. 65
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicle.java
  8. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdepositvehicle/BusDepositVehicleFeign.java
  9. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderFeign.java
  10. 42
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleMapper.xml
  11. 26
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleService.java
  12. 211
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositService.java
  13. 91
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  14. 2
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdeposit/AppBusDepositRest.java
  15. 2
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositcustomer/AppBusDepositCustomerRest.java
  16. 2
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/busdepositvehicle/AppBusDepositVehicleRest.java

2
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") @PostMapping("/updateByVinNo")
ResultBean updateByVinNo(@RequestBody BaseVehicleUpdateQuery baseVehicleUpdateQuery); ResultBean updateByVinNo(@RequestBody BaseVehicleUpdateQuery baseVehicleUpdateQuery);
@ApiOperation("简易订单更新状态") @ApiOperation("简易订单、销售订单根据车辆sid更新状态")
@PostMapping("/updateMainDepositByVinNo") @PostMapping("/updateMainDepositByVinNo")
ResultBean updateMainDepositByVinNo(@RequestBody BusMainDepositUpdateQuery busMainDepositUpdateQuery); ResultBean updateMainDepositByVinNo(@RequestBody BusMainDepositUpdateQuery busMainDepositUpdateQuery);

4
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; private static final long serialVersionUID = -8412945306550896470L;
@ApiModelProperty("车架号") @ApiModelProperty("车辆sid")
private List<String> vinNoLis; private List<String> vinSidList;
@ApiModelProperty("锁定状态") @ApiModelProperty("锁定状态")
private String lockedState; private String lockedState;

16
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;
}
}
} }

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -797,9 +797,9 @@
<update id="updateMainDepositByVinNo"> <update id="updateMainDepositByVinNo">
update base_vehicle update base_vehicle
set lockedState = #{lockedState},lockedStateValue = #{lockedStateValue} set lockedState = #{lockedState},lockedStateValue = #{lockedStateValue}
where vinNo in where sid in
<foreach item="vinNo" collection="vinNoList" open="(" separator="," close=")"> <foreach item="vinSid" collection="vinNoList" open="(" separator="," close=")">
#{vinNo} #{vinSid}
</foreach> </foreach>
</update> </update>

2
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<BaseVehicleMapper, Ba
*/ */
public ResultBean updateMainDepositByVinNo(BusMainDepositUpdateQuery busMainDepositUpdateQuery) { public ResultBean updateMainDepositByVinNo(BusMainDepositUpdateQuery busMainDepositUpdateQuery) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
List<String> stringList = busMainDepositUpdateQuery.getVinNoLis(); List<String> stringList = busMainDepositUpdateQuery.getVinSidList();
String lockedState = busMainDepositUpdateQuery.getLockedState(); String lockedState = busMainDepositUpdateQuery.getLockedState();
String lockedStateValue = busMainDepositUpdateQuery.getLockedStateValue(); String lockedStateValue = busMainDepositUpdateQuery.getLockedStateValue();
baseMapper.updateMainDepositByVinNo(stringList, lockedState, lockedStateValue); baseMapper.updateMainDepositByVinNo(stringList, lockedState, lockedStateValue);

3
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 = "颜色") @ApiModelProperty(value = "颜色")
private String colour; private String colour;
@ApiModelProperty("车辆sid")
private String carSid;
} }

65
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 * @version 1.0
* @since 1.0 * @since 1.0
*/ */
@ApiModel(value = "销售订金单_订车信息-虚拟订车单-订车信息", description = "销售订金单_订车信息-虚拟订车单-订车信息") @ApiModel(value = "简易订单-订车", description = "简易订单-订车")
@TableName("bus_deposit_vehicle") @TableName("bus_deposit_vehicle")
@Data @Data
public class BusDepositVehicle extends BaseEntity { public class BusDepositVehicle extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("订车单sid") @ApiModelProperty("订车单sid")
private String billSid; private String billSid;
@ApiModelProperty("生产厂商sid") @ApiModelProperty("生产厂商sid")
private String manufacturerSid; private String manufacturerSid;
@ApiModelProperty("生产厂商名称") @ApiModelProperty("生产厂商名称")
private String manufacturerName; private String manufacturerName;
@ApiModelProperty("品牌sid") @ApiModelProperty("品牌sid")
private String brandSid; private String brandSid;
@ApiModelProperty("品牌名称") @ApiModelProperty("品牌名称")
private String brandName; private String brandName;
@ApiModelProperty("车型Sid") @ApiModelProperty("车型Sid")
private String modelSid; private String modelSid;
@ApiModelProperty("车型名称") @ApiModelProperty("车型名称")
private String modelName; private String modelName;
@ApiModelProperty("车型型号") @ApiModelProperty("车型型号")
private String carModel; private String carModel;
@ApiModelProperty("车型配置sid(可为空,根据车型筛选)") @ApiModelProperty("车型配置sid(可为空,根据车型筛选)")
private String modelConfigSid; private String modelConfigSid;
@ApiModelProperty("车型配置信息(可为空)") @ApiModelProperty("车型配置信息(可为空)")
private String modelotherConfig; private String modelotherConfig;
@ApiModelProperty("车辆sid") @ApiModelProperty("车辆sid")
@ -66,20 +66,20 @@ public class BusDepositVehicle extends BaseEntity {
@ApiModelProperty("预计订金日期") @ApiModelProperty("预计订金日期")
private String reserve_deposit_date; private String reserve_deposit_date;
@ApiModelProperty("其它选装配置,填写") @ApiModelProperty("其它选装配置,填写")
private String otherChooseConfig; private String otherChooseConfig;
@ApiModelProperty("预定单价(可为空)") @ApiModelProperty("预定单价(可为空)")
private BigDecimal reserve_price; private BigDecimal reserve_price;
@ApiModelProperty("预定数量(可为空)") @ApiModelProperty("预定数量(可为空)")
private String reserve_quantity; private String reserve_quantity;
@ApiModelProperty("预提车地点(可为空)") @ApiModelProperty("预提车地点(可为空)")
private String reserve_position; private String reserve_position;
@ApiModelProperty("预提车日期(可为空)") @ApiModelProperty("预提车日期(可为空)")
private String reserve_date; private String reserve_date;
@ApiModelProperty("颜色") @ApiModelProperty("颜色")
@ -95,4 +95,7 @@ public class BusDepositVehicle extends BaseEntity {
private String procInstId; private String procInstId;
@ApiModelProperty(value = "任务id") @ApiModelProperty(value = "任务id")
private String taskId; private String taskId;
@ApiModelProperty("车架号")
private String vinNo;
} }

2
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 * @version 1.0
* @since 1.0 * @since 1.0
*/ */
@Api(tags = "销售订金单_订车信息-虚拟订车单-订车信息") @Api(tags = "简易订单-订车信息")
@FeignClient( @FeignClient(
contextId = "anrui-buscenter-BusDepositVehicle", contextId = "anrui-buscenter-BusDepositVehicle",
name = "anrui-buscenter", name = "anrui-buscenter",

1
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<PagerVo<AppRovalContractPageVo>> getApprovalContractList(@RequestBody PagerQuery<AppRovalContractPageQuery> pagerQuery); public ResultBean<PagerVo<AppRovalContractPageVo>> getApprovalContractList(@RequestBody PagerQuery<AppRovalContractPageQuery> pagerQuery);
} }

42
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdepositvehicle/BusDepositVehicleMapper.xml

@ -20,8 +20,11 @@
</select> </select>
<select id="selectListAllVo" resultType="com.yxt.anrui.buscenter.api.busdepositvehicle.BusDepositVehicleVo"> <select id="selectListAllVo" resultType="com.yxt.anrui.buscenter.api.busdepositvehicle.BusDepositVehicleVo">
SELECT * FROM bus_deposit_vehicle SELECT *
<where>${ew.sqlSegment}</where> FROM bus_deposit_vehicle
<where>
${ew.sqlSegment}
</where>
</select> </select>
<select id="selectByDepositSidPc" parameterType="java.util.List" <select id="selectByDepositSidPc" parameterType="java.util.List"
@ -33,33 +36,33 @@
<select id="selByBillSidList" <select id="selByBillSidList"
resultType="com.yxt.anrui.buscenter.api.busdepositvehicle.AppBusDepositVehicleCarListVo"> resultType="com.yxt.anrui.buscenter.api.busdepositvehicle.AppBusDepositVehicleCarListVo">
SELECT bdv.brandName AS brand, SELECT bdv.brandName AS brand,
bdv.modelName AS model, bdv.modelName AS model,
bdv.remarks, bdv.remarks,
bdv.reserve_deposit_date AS depositDate, bdv.reserve_deposit_date AS depositDate,
bdv.reserve_position AS location, bdv.reserve_position AS location,
bdv.reserve_price AS price, bdv.reserve_price AS price,
bdv.modelSid, bdv.modelSid,
bdv.modelConfigSid AS configSid, bdv.modelConfigSid AS configSid,
bdv.vehicleSid AS carSid, bdv.vehicleSid AS carSid,
bdv.colour, bdv.colour,
(SELECT bv.vinNo FROM anrui_base.base_vehicle bv where bv.sid = bdv.vehicleSid) as vin bdv.vinNo as vin
FROM bus_deposit_vehicle bdv FROM bus_deposit_vehicle bdv
WHERE bdv.billSid = #{virtualOrderSid} WHERE bdv.billSid = #{virtualOrderSid}
</select> </select>
<select id="selVehicleListByBillSid" <select id="selVehicleListByBillSid"
resultType="com.yxt.anrui.buscenter.api.busdepositvehicle.AppBusDepositVehicleListVo"> resultType="com.yxt.anrui.buscenter.api.busdepositvehicle.AppBusDepositVehicleListVo">
SELECT bdv.brandName AS brand, SELECT bdv.brandName AS brand,
bdv.modelName AS carName, bdv.modelName AS carName,
bdv.remarks, bdv.remarks,
bdv.reserve_deposit_date AS reserveDate, bdv.reserve_deposit_date AS reserveDate,
bdv.reserve_position AS location, bdv.reserve_position AS location,
bdv.reserve_price AS price, bdv.reserve_price AS price,
bdv.modelSid, bdv.modelSid,
bdv.modelConfigSid AS configSid, bdv.modelConfigSid AS configSid,
bdv.vehicleSid AS carSid, bdv.vehicleSid AS carSid,
bdv.colour, bdv.colour,
(SELECT bv.vinNo FROM anrui_base.base_vehicle bv WHERE bv.sid = bdv.vehicleSid) AS vin bdv.vinNo as vin
FROM bus_deposit_vehicle bdv FROM bus_deposit_vehicle bdv
WHERE bdv.billSid = #{virtualOrderSid} WHERE bdv.billSid = #{virtualOrderSid}
</select> </select>
@ -72,7 +75,7 @@
<update id="updateFlowFiled"> <update id="updateFlowFiled">
UPDATE bus_deposit UPDATE bus_deposit
SET nodeState=#{nodeState} SET nodeState=#{nodeState}
, nodeId=#{taskDefKey} , nodeId=#{taskDefKey}
<if test="procDefId != null and procDefId != ''"> <if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId} , procDefId=#{procDefId}
</if> </if>
@ -84,5 +87,4 @@
</if> </if>
WHERE sid = #{sid} WHERE sid = #{sid}
</update> </update>
</mapper> </mapper>

26
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; 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.buscenter.api.busdepositvehicle.*; import com.yxt.anrui.buscenter.api.busdepositvehicle.*;
import com.yxt.anrui.buscenter.api.busdepositvehiclecustomer.BusDepositVehicleCustomerVo; import com.yxt.anrui.buscenter.api.busdepositvehiclecustomer.BusDepositVehicleCustomerVo;
import com.yxt.anrui.buscenter.api.busmaindeposit.BusMainDeposit; 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.busdepositvehiclecustomer.BusDepositVehicleCustomerService;
import com.yxt.anrui.buscenter.biz.busmaindeposit.BusMainDepositService; import com.yxt.anrui.buscenter.biz.busmaindeposit.BusMainDepositService;
import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo; import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign; 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.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; 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.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo; 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.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
@ -33,8 +25,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.ArrayList;
import java.util.stream.Stream; import java.util.Date;
import java.util.List;
/** /**
* Project: anrui-buscenter(车辆订单) <br/> * Project: anrui-buscenter(车辆订单) <br/>
@ -230,7 +223,6 @@ public class BusDepositVehicleService extends MybatisBaseService<BusDepositVehic
vo.setDepartmentName(busMainDeposit.getOrgName()); vo.setDepartmentName(busMainDeposit.getOrgName());
vo.setVirtualOrderSid(query.getVirtualOrderSid()); vo.setVirtualOrderSid(query.getVirtualOrderSid());
vo.setUserSid(query.getUserSid()); vo.setUserSid(query.getUserSid());
List<AppBusDepositVehicleCarListVo> carList = baseMapper.selByBillSidList(virtualOrderSid); List<AppBusDepositVehicleCarListVo> carList = baseMapper.selByBillSidList(virtualOrderSid);
if (carList.size() > 0) { if (carList.size() > 0) {
vo.setCarList(carList); vo.setCarList(carList);
@ -304,7 +296,7 @@ public class BusDepositVehicleService extends MybatisBaseService<BusDepositVehic
return new ResultBean<AppBusDepositVehicleDetailVo>().success().setData(vo); return new ResultBean<AppBusDepositVehicleDetailVo>().success().setData(vo);
} }
public ResultBean submitVirtualOrderVehicle(SubmitVirtualOrderVehicleDto dto) { /* public ResultBean submitVirtualOrderVehicle(SubmitVirtualOrderVehicleDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid //根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
@ -376,7 +368,7 @@ public class BusDepositVehicleService extends MybatisBaseService<BusDepositVehic
return complete(bv); return complete(bv);
} }
return rb; return rb;
} }*/
/** /**
* 判断提交的流程是否被允许 * 判断提交的流程是否被允许
@ -384,7 +376,7 @@ public class BusDepositVehicleService extends MybatisBaseService<BusDepositVehic
* @param dto * @param dto
* @return * @return
*/ */
private synchronized int submitBusinessData(SubmitVirtualOrderVehicleDto dto, BusDepositVehicle busDepositVehicle) { /* private synchronized int submitBusinessData(SubmitVirtualOrderVehicleDto dto, BusDepositVehicle busDepositVehicle) {
int r = 0; int r = 0;
if (StringUtils.isBlank(dto.getSid())) { if (StringUtils.isBlank(dto.getSid())) {
r = 1; r = 1;
@ -404,7 +396,7 @@ public class BusDepositVehicleService extends MybatisBaseService<BusDepositVehic
} }
return r; return r;
} }*/
/** /**
* 更新流程相关的状态 * 更新流程相关的状态
@ -412,7 +404,7 @@ public class BusDepositVehicleService extends MybatisBaseService<BusDepositVehic
* @param map * @param map
* @return * @return
*/ */
private int updateFlowFiled(Map<String, Object> map) { /* private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map); return baseMapper.updateFlowFiled(map);
} }
@ -429,5 +421,5 @@ public class BusDepositVehicleService extends MybatisBaseService<BusDepositVehic
} else { } else {
return rb.setMsg("操作失败!提交的数据不一致"); return rb.setMsg("操作失败!提交的数据不一致");
} }
} }*/
} }

211
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busmaindeposit/BusMainDepositService.java

@ -29,11 +29,13 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicle.BusMainDepositUpdateQuery; import com.yxt.anrui.base.api.basevehicle.BusMainDepositUpdateQuery;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign; import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo; import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo;
import com.yxt.anrui.base.common.enums.BillTypeEnum; import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.enums.DictCommonEnum;
import com.yxt.anrui.base.common.enums.VehicleState; import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.base.common.utils.domain.BillNo;
@ -97,6 +99,7 @@ import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo; import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery; import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -105,6 +108,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -1235,6 +1240,7 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
busDepositVehicle.setVehicleSid(carListDto.getCarSid()); busDepositVehicle.setVehicleSid(carListDto.getCarSid());
busDepositVehicle.setCreateBySid(dto.getUserSid()); busDepositVehicle.setCreateBySid(dto.getUserSid());
busDepositVehicle.setColour(carListDto.getColour()); busDepositVehicle.setColour(carListDto.getColour());
busDepositVehicle.setVinNo(carListDto.getVin());
busDepositVehicleService.insert(busDepositVehicle); busDepositVehicleService.insert(busDepositVehicle);
} }
} }
@ -1784,13 +1790,13 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
busMainDeposit = fetchBySid(businessSid); busMainDeposit = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo(); MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo,messageFlowVo); BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcInsId(busMainDeposit.getProcInsId()); ufVo.setProcInsId(busMainDeposit.getProcInsId());
messageFlowableQuery.setUfVo(messageFlowVo); messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap); messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid); messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("简易订单-订金申请"); messageFlowableQuery.setModuleName("简易订单-订金申请");
messageFlowableQuery.setMsgContent(busMainDeposit.getStaffName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); messageFlowableQuery.setMsgContent(busMainDeposit.getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("简易订单"); messageFlowableQuery.setMsgTitle("简易订单");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return voResultBean; return voResultBean;
@ -1858,8 +1864,8 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
} }
//用户的组织全路径 //用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
BusMainDeposit busMainDeposit = fetchBySid(dto.getVirtualOrderSid()); AtomicReference<BusMainDeposit> busMainDeposit = new AtomicReference<>(fetchBySid(dto.getVirtualOrderSid()));
int r = submitBusinessVehicleData(dto, busMainDeposit); int r = submitBusinessVehicleData(dto, busMainDeposit.get());
if (r == 3) { if (r == 3) {
return rb.setMsg("该申请不存在"); return rb.setMsg("该申请不存在");
} }
@ -1898,25 +1904,40 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv); ResultBean<UpdateFlowFieldVo> voResultBean = flowableFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData(); UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo)); updateFlowFiled(BeanUtil.beanToMap(ufVo));
List<String> list = dto.getCarList().stream().map(AppBusDepositVehicleCarListDto::getVin).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); try {
BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
busMainDepositUpdateQuery.setVinNoLis(list); .setNameFormat("demo-pool-%d").build();
busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode()); ExecutorService pool = new ThreadPoolExecutor(2, 100,
busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks()); 0L, TimeUnit.MILLISECONDS,
baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery); new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
//极光推送 Future future1 = pool.submit(() -> {
busMainDeposit = fetchBySid(businessSid); //更新已选择的车架号的状态为审批中
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); List<String> list = dto.getCarList().stream().map(AppBusDepositVehicleCarListDto::getCarSid).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
MessageFlowVo messageFlowVo = new MessageFlowVo(); BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery();
BeanUtil.copyProperties(ufVo,messageFlowVo); busMainDepositUpdateQuery.setVinSidList(list);
ufVo.setProcInsId(busMainDeposit.getProcInsId()); busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode());
messageFlowableQuery.setUfVo(messageFlowVo); busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks());
messageFlowableQuery.setAppMap(appMap); baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery);
messageFlowableQuery.setBusinessSid(businessSid); });
messageFlowableQuery.setModuleName("简易订单-订车申请"); Future future2 = pool.submit(() -> {
messageFlowableQuery.setMsgContent(busMainDeposit.getStaffName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); //极光推送
messageFlowableQuery.setMsgTitle("简易订单"); busMainDeposit.set(fetchBySid(businessSid));
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); 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<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
return voResultBean; return voResultBean;
} }
if (r == 2) { if (r == 2) {
@ -1924,8 +1945,8 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
if (StringUtils.isBlank(dto.getInstanceId())) { if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId"); return rb.setMsg("参数错误:instanceId");
} }
bv.setTaskId(busMainDeposit.getTaskId()); bv.setTaskId(busMainDeposit.get().getTaskId());
bv.setTaskDefKey(busMainDeposit.getTaskDefKey()); bv.setTaskDefKey(busMainDeposit.get().getTaskDefKey());
bv.setComment(com.yxt.common.base.utils.StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); bv.setComment(com.yxt.common.base.utils.StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId()); bv.setInstanceId(dto.getInstanceId());
return complete(bv); return complete(bv);
@ -1952,18 +1973,11 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
UpdateFlowFieldVo ufVo = resultBean.getData(); UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if (!"Event_end".equals(ufVo.getTaskDefKey())) { if (!"Event_end".equals(ufVo.getTaskDefKey())) {
AppBusDepositVehicleDetailVo appBusDepositVehicleDetailVo = busDepositVehicleService.getReserveCarDetails(bv.getBusinessSid()).getData();
List<String> 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()); busMainDeposit = fetchBySid(bv.getBusinessSid());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo(); MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo,messageFlowVo); BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcInsId(busMainDeposit.getProcInsId()); ufVo.setProcInsId(busMainDeposit.getProcInsId());
ufVo.setProcDefId(busMainDeposit.getProcDefId()); ufVo.setProcDefId(busMainDeposit.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo); messageFlowableQuery.setUfVo(messageFlowVo);
@ -1971,13 +1985,29 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
messageFlowableQuery.setBusinessSid(bv.getBusinessSid()); messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
if ("01".equals(busMainDeposit.getDepositBillTypeKey())) {//订金收取 if ("01".equals(busMainDeposit.getDepositBillTypeKey())) {//订金收取
messageFlowableQuery.setModuleName("简易订单-订金申请"); messageFlowableQuery.setModuleName("简易订单-订金申请");
}else{ } else {
messageFlowableQuery.setModuleName("简易订单-订车申请"); messageFlowableQuery.setModuleName("简易订单-订车申请");
} }
messageFlowableQuery.setMsgContent(busMainDeposit.getStaffName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); messageFlowableQuery.setMsgContent(busMainDeposit.getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("简易订单"); messageFlowableQuery.setMsgTitle("简易订单");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); ResultBean<String> 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<String> 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()); return rb.success().setData(resultBean.getData());
} else { } else {
@ -2042,11 +2072,11 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
if (StringUtils.isBlank(query.getComment())) { if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("意见不能为空"); return rb.setMsg("意见不能为空");
} }
BusMainDeposit busMainDeposit = fetchBySid(query.getBusinessSid()); AtomicReference<BusMainDeposit> busMainDeposit = new AtomicReference<>(fetchBySid(query.getBusinessSid()));
if (busMainDeposit == null) { if (busMainDeposit.get() == null) {
return rb.setMsg("该申请不存在"); return rb.setMsg("该申请不存在");
} }
String businessTaskId = busMainDeposit.getTaskId(); String businessTaskId = busMainDeposit.get().getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) { if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) { if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo(); FlowTaskVo flowTaskVo = new FlowTaskVo();
@ -2064,32 +2094,60 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData()); Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
//更新业务中的流程相关的参数 //更新业务中的流程相关的参数
updateFlowFiled(map); updateFlowFiled(map);
//极光推送 try {
busMainDeposit = fetchBySid(query.getBusinessSid()); ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); .setNameFormat("demo-pool-%d").build();
MessageFlowVo messageFlowVo = new MessageFlowVo(); ExecutorService pool = new ThreadPoolExecutor(2, 100,
BeanUtil.copyProperties(ufVo,messageFlowVo); 0L, TimeUnit.MILLISECONDS,
String procId = busMainDeposit.getProcInsId(); new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
ufVo.setProcInsId(busMainDeposit.getProcInsId()); busMainDeposit.set(fetchBySid(query.getBusinessSid()));
ufVo.setProcDefId(busMainDeposit.getProcDefId()); String procId = busMainDeposit.get().getProcInsId();
messageFlowableQuery.setUfVo(messageFlowVo); Future future1 = pool.submit(() -> {
messageFlowableQuery.setAppMap(appMap); //极光推送
messageFlowableQuery.setBusinessSid(query.getBusinessSid()); MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
if ("01".equals(busMainDeposit.getDepositBillTypeKey())) {//订金收取 MessageFlowVo messageFlowVo = new MessageFlowVo();
messageFlowableQuery.setModuleName("简易订单-订金申请"); BeanUtil.copyProperties(ufVo, messageFlowVo);
}else{ ufVo.setProcInsId(busMainDeposit.get().getProcInsId());
messageFlowableQuery.setModuleName("简易订单-订车申请"); ufVo.setProcDefId(busMainDeposit.get().getProcDefId());
} messageFlowableQuery.setUfVo(messageFlowVo);
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId); messageFlowableQuery.setAppMap(appMap);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); messageFlowableQuery.setBusinessSid(query.getBusinessSid());
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); if ("01".equals(busMainDeposit.get().getDepositBillTypeKey())) {//订金收取
if(receiveSidList.size() == 1 && receiveSidList.get(0).equals(busMainDeposit.getStaffSid())){ messageFlowableQuery.setModuleName("简易订单-订金申请");
messageFlowableQuery.setMsgContent("您提交的"+messageFlowableQuery.getModuleName()+"已被驳回,请重新提交"); } else {
}else{ messageFlowableQuery.setModuleName("简易订单-订车申请");
messageFlowableQuery.setMsgContent(busMainDeposit.getStaffName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批"); }
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> 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<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
Future future2 = pool.submit(() -> {
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busMainDeposit.get().getStaffSid())) {
//更新已选择的车架号的状态为未锁定
AppBusDepositVehicleDetailVo appBusDepositVehicleDetailVo = busDepositVehicleService.getReserveCarDetails(query.getBusinessSid()).getData();
List<String> 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<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success(); return rb.success();
} }
} }
@ -2112,6 +2170,21 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
return rb.setMsg(resultBean.getMsg()); return rb.setMsg(resultBean.getMsg());
} }
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
busMainDeposit = fetchBySid(query.getBusinessSid());
String procId = busMainDeposit.getProcInsId();
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busMainDeposit.getStaffSid())) {
//更新已选择的车架号的状态为未锁定
AppBusDepositVehicleDetailVo appBusDepositVehicleDetailVo = busDepositVehicleService.getReserveCarDetails(query.getBusinessSid()).getData();
List<String> 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()); return rb.success().setData(resultBean.getData());
} }
} }
@ -2139,13 +2212,13 @@ public class BusMainDepositService extends MybatisBaseService<BusMainDepositMapp
if (!resultBean.getSuccess()) { if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg()); return rb.setMsg(resultBean.getMsg());
} }
//修改车辆台账锁定状态 //修改车辆台账锁定状态为未锁定
AppBusDepositVehicleDetailVo appBusDepositVehicleDetailVo = busDepositVehicleService.getReserveCarDetails(query.getBusinessSid()).getData(); AppBusDepositVehicleDetailVo appBusDepositVehicleDetailVo = busDepositVehicleService.getReserveCarDetails(query.getBusinessSid()).getData();
List<String> list = appBusDepositVehicleDetailVo.getVehicleList().stream().map(AppBusDepositVehicleListVo::getVin).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList()); List<String> list = appBusDepositVehicleDetailVo.getVehicleList().stream().map(AppBusDepositVehicleListVo::getCarSid).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery(); BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery();
busMainDepositUpdateQuery.setVinNoLis(list); busMainDepositUpdateQuery.setVinSidList(list);
busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode()); busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.UN_LOCK.getCode());
busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks()); busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.UN_LOCK.getRemarks());
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData()); return rb.success().setData(resultBean.getData());
} }

91
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.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.basemodelconfig.AppCarConfigSummaryVo;
import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceQuery; import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceQuery;
import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceVo; import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceVo;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceFeign; import com.yxt.anrui.base.api.basepostprice.BasePostPriceFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo; 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.basevehicle.app.AppBaseVehicleOrderVo;
import com.yxt.anrui.base.api.basevehiclemodelappendix.BaseVehicleModelAppendixFeign; import com.yxt.anrui.base.api.basevehiclemodelappendix.BaseVehicleModelAppendixFeign;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyFeign; 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.busvehicleapplydetail.BusVehicleApplyDetailFeign;
import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderFeign; import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderFeign;
import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderVo; 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.BillTypeEnum;
import com.yxt.anrui.base.common.enums.VehicleState; import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.base.common.utils.Rule; 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.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery; import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -2400,18 +2408,18 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
public ResultBean submitOrder(SubmitSalesOrderDto dto) { public ResultBean submitOrder(SubmitSalesOrderDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
String businessSid = dto.getSaleOrderSid(); String businessSid = dto.getSaleOrderSid();
BusSalesOrder busSalesOrder = fetchBySid(businessSid); AtomicReference<BusSalesOrder> busSalesOrder = new AtomicReference<>(fetchBySid(businessSid));
if (busSalesOrder == null) { if (busSalesOrder.get() == null) {
return rb.setMsg("该销售订单不存在"); return rb.setMsg("该销售订单不存在");
} }
//根据staffSid获取用户的组织全路径 //根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(busSalesOrder.getStaffSid()); ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(busSalesOrder.get().getStaffSid());
if (!staffOrgResultBean.getSuccess()) { if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg()); return rb.setMsg(staffOrgResultBean.getMsg());
} }
//用户的组织全路径 //用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
int r = submitBusinessData(dto, busSalesOrder); int r = submitBusinessData(dto, busSalesOrder.get());
if (r == 0) { if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致"); return rb.setMsg("操作失败!提交的数据不一致");
} }
@ -2433,13 +2441,13 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
//创建BusinessVariables实体对象 //创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables(); BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。 //流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = getOrderMap(busSalesOrder); Map<String, Object> variables = getOrderMap(busSalesOrder.get());
//用户的部门全路径sid //用户的部门全路径sid
bv.setOrgSidPath(orgSidPath); bv.setOrgSidPath(orgSidPath);
//业务sid //业务sid
bv.setBusinessSid(businessSid); bv.setBusinessSid(businessSid);
//用户sid //用户sid
bv.setUserSid(busSalesOrder.getCreateBySid()); bv.setUserSid(busSalesOrder.get().getCreateBySid());
bv.setFormVariables(variables); bv.setFormVariables(variables);
//流程定义id //流程定义id
bv.setModelId(ProcDefEnum.SALESORDER.getProDefId()); bv.setModelId(ProcDefEnum.SALESORDER.getProDefId());
@ -2450,19 +2458,45 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
} }
UpdateFlowFieldVo ufVo = voResultBean.getData(); UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo)); updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送 try {
busSalesOrder = fetchBySid(businessSid); ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); .setNameFormat("demo-pool-%d").build();
MessageFlowVo messageFlowVo = new MessageFlowVo(); ExecutorService pool = new ThreadPoolExecutor(2, 100,
BeanUtil.copyProperties(ufVo, messageFlowVo); 0L, TimeUnit.MILLISECONDS,
messageFlowableQuery.setUfVo(messageFlowVo); new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
messageFlowableQuery.setAppMap((Map<String, Object>) variables.get("app")); Future future1 = pool.submit(() -> {
messageFlowableQuery.setBusinessSid(businessSid); //极光推送
messageFlowableQuery.setModuleName("销售订单申请"); busSalesOrder.set(fetchBySid(businessSid));
messageFlowableQuery.setMsgContent(busSalesOrder.getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
messageFlowableQuery.setMsgTitle("销售订单"); MessageFlowVo messageFlowVo = new MessageFlowVo();
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); BeanUtil.copyProperties(ufVo, messageFlowVo);
// String msgSid = getMessage(ufVo, (Map<String, Object>) variables.get("app"), busSalesOrder); messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap((Map<String, Object>) variables.get("app"));
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("销售订单申请");
messageFlowableQuery.setMsgContent(busSalesOrder.get().getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("销售订单");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
Future future2 = pool.submit(() -> {
ResultBean<AppOrderDetailsVo> resultBean = getSaleOrderDetails(businessSid);
AppOrderDetailsVo vo = resultBean.getData();
if ("现车".equals(vo.getOrderType())) {
//更新已选择的车架号的状态为审批中
List<String> 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; return voResultBean;
} }
if (r == 2) { if (r == 2) {
@ -2470,8 +2504,8 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (StringUtils.isBlank(dto.getProcInsId())) { if (StringUtils.isBlank(dto.getProcInsId())) {
return rb.setMsg("参数错误:instanceId"); return rb.setMsg("参数错误:instanceId");
} }
bv.setTaskId(busSalesOrder.getTaskId()); bv.setTaskId(busSalesOrder.get().getTaskId());
bv.setTaskDefKey(busSalesOrder.getNodeId()); bv.setTaskDefKey(busSalesOrder.get().getNodeId());
bv.setComment("重新提交"); bv.setComment("重新提交");
bv.setInstanceId(dto.getProcInsId()); bv.setInstanceId(dto.getProcInsId());
return complete(bv); return complete(bv);
@ -2551,8 +2585,19 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
messageFlowableQuery.setMsgContent(busSalesOrder.getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); messageFlowableQuery.setMsgContent(busSalesOrder.getStaffName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("销售订单"); messageFlowableQuery.setMsgTitle("销售订单");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery); ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
} else {
ResultBean<AppOrderDetailsVo> details = getSaleOrderDetails(bv.getBusinessSid());
AppOrderDetailsVo vo = details.getData();
if ("现车".equals(vo.getOrderType())) {
//更新已选择的车架号的状态为审批中
List<String> 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<String, Object>) variables.get("app"), busSalesOrder);
return rb.success().setData(resultBean.getData()); return rb.success().setData(resultBean.getData());
} else { } else {
return rb.setMsg("操作失败!提交的数据不一致"); return rb.setMsg("操作失败!提交的数据不一致");

2
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 * @since 1.0
*/ */
@Api(tags = "销售订金单表-销售虚拟订车单") @Api(tags = "销售订金单表-销售虚拟订车单")
@RestController //@RestController
@RequestMapping("v1/busdeposit") @RequestMapping("v1/busdeposit")
public class AppBusDepositRest implements AppBusDepositFeign { public class AppBusDepositRest implements AppBusDepositFeign {

2
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 * @since 1.0
*/ */
@Api(tags = "销售订金单_客户信息") @Api(tags = "销售订金单_客户信息")
@RestController("com.yxt.anrui.buscenter.biz.busdepositcustomer.BusDepositCustomerRest") //@RestController("com.yxt.anrui.buscenter.biz.busdepositcustomer.BusDepositCustomerRest")
@RequestMapping("v1/busdepositcustomer") @RequestMapping("v1/busdepositcustomer")
public class AppBusDepositCustomerRest implements AppBusDepositCustomerFeign { public class AppBusDepositCustomerRest implements AppBusDepositCustomerFeign {

2
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 * @since 1.0
*/ */
@Api(tags = "销售订金单_订车信息-虚拟订车单-订车信息") @Api(tags = "销售订金单_订车信息-虚拟订车单-订车信息")
@RestController //@RestController
@RequestMapping("v1/busdepositvehicle") @RequestMapping("v1/busdepositvehicle")
public class AppBusDepositVehicleRest implements AppBusDepositVehicleFeign { public class AppBusDepositVehicleRest implements AppBusDepositVehicleFeign {

Loading…
Cancel
Save