Browse Source

优化并修复销售订单选择采购订单时的问题及逻辑

master
dimengzhe 2 years ago
parent
commit
f7d0405303
  1. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapplydetail/BusVehicleApplyDetailMapper.xml
  2. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java
  3. 151
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  4. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicleorder/BusSalesVehicleOrderMapper.java
  5. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicleorder/BusSalesVehicleOrderMapper.xml
  6. 3
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicleorder/BusSalesVehicleOrderService.java

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapplydetail/BusVehicleApplyDetailMapper.xml

@ -65,7 +65,7 @@
and length(bo.orderNo) > 0
and length(bo.platformNo)
> 0
and (cast(bo.platformNo as signed) - IFNULL(cast(bo.lockingNum as signed), '0')) > 0
<!-- and (cast(bo.platformNo as signed) - IFNULL(cast(bo.lockingNum as signed), '0')) > 0-->
</select>
<select id="getVehicleApply" resultType="com.yxt.anrui.base.api.busvehicleapply.app.AppVehicleApplyListVo">

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderRest.java

@ -160,7 +160,7 @@ public class BusSalesOrderRest implements BusSalesOrderFeign {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SALESORDER.getProDefId());
return busSalesOrderService.complete(bv);
return busSalesOrderService.complete(bv,true);
}
@Override

151
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -2385,15 +2385,23 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (StringUtils.isNotBlank(applyListVo.getTotalNum())) {
//总数量
int totalNum = Integer.parseInt(applyListVo.getTotalNum());
if (StringUtils.isNotBlank(applyListVo.getLockingNum())) {
int lockNum = busSalesVehicleOrderService.selectByLinkSid1(applyListVo.getSid());
//可使用数量
int canUseNum = totalNum - lockNum;
if(canUseNum<=0){
continue;
}
appReadyCarVo.setCanUseNum(String.valueOf(canUseNum));
/* if (StringUtils.isNotBlank(applyListVo.getLockingNum())) {
//采购订单锁定数量
int lockNum = Integer.parseInt(applyListVo.getLockingNum());
// int lockNum = Integer.parseInt(applyListVo.getLockingNum());
int lockNum = busSalesVehicleOrderService.selectByLinkSid1(applyListVo.getSid());
//可使用数量
int canUseNum = totalNum - lockNum;
appReadyCarVo.setCanUseNum(String.valueOf(canUseNum));
} else {
appReadyCarVo.setCanUseNum(String.valueOf(totalNum));
}
}*/
} else {
appReadyCarVo.setCanUseNum("0");
}
@ -2455,6 +2463,18 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (v.getSid().equals(v2.getSid())) {
v.setTotalNum(v2.getTotalNum());
v.setCanUseNum(v2.getCanUseNum());
}else{
//查询该订单的总数量
int countAll = busSalesVehicleOrderService.selectByTotal(v.getSid());
int lockNum = busSalesVehicleOrderService.selectByLinkSid1(v.getSid());
//可使用数量
int canUseNum = countAll - lockNum;
if(canUseNum<=0){
canUseNum = 0;
orderInfo.setNotice("当前车型已经更新,请进行确认");
}
v.setTotalNum(String.valueOf(countAll));
v.setCanUseNum(String.valueOf(canUseNum));
}
}
}
@ -2717,15 +2737,23 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (StringUtils.isNotBlank(applyListVo.getTotalNum())) {
//总数量
int totalNum = Integer.parseInt(applyListVo.getTotalNum());
if (StringUtils.isNotBlank(applyListVo.getLockingNum())) {
int lockNum = busSalesVehicleOrderService.selectByLinkSid1(applyListVo.getSid());
//可使用数量
int canUseNum = totalNum - lockNum;
if(canUseNum<=0){
continue;
}
appReadyCarVo.setCanUseNum(String.valueOf(canUseNum));
/*if (StringUtils.isNotBlank(applyListVo.getLockingNum())) {
//锁定数量
int lockNum = Integer.parseInt(applyListVo.getLockingNum());
// int lockNum = Integer.parseInt(applyListVo.getLockingNum());
int lockNum = busSalesVehicleOrderService.selectByLinkSid1(applyListVo.getSid());
//可使用数量
int canUseNum = totalNum - lockNum;
appReadyCarVo.setCanUseNum(String.valueOf(canUseNum));
} else {
appReadyCarVo.setCanUseNum(String.valueOf(totalNum));
}
}*/
} else {
appReadyCarVo.setCanUseNum("0");
}
@ -3090,7 +3118,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (new BigDecimal(solutionsDetailsVo.getRealTotal()).compareTo(busSalesOrderDeposit.getDeposit()) < 0) {
return rb.setMsg("金融方案中实收金额小于单台订金");
}
}else{
} else {
if (StringUtils.isNotBlank(solutionsDetailsVo.getTypeKey())) {
if (!"02".equals(solutionsDetailsVo.getTypeKey())) {
//判断实收和单台订金
@ -3100,7 +3128,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
}
}
}else{
} else {
return rb.setMsg("此销售类型下金融方案不能为空");
}
}
@ -3315,15 +3343,23 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
if (StringUtils.isNotBlank(applyListVo.getTotalNum())) {
//总数量
int totalNum = Integer.parseInt(applyListVo.getTotalNum());
if (StringUtils.isNotBlank(applyListVo.getLockingNum())) {
int lockNum = busSalesVehicleOrderService.selectByLinkSid1(applyListVo.getSid());
//可使用数量
int canUseNum = totalNum - lockNum;
if(canUseNum<=0){
canUseNum = 0;
}
appReadyCarVo.setCanUseNum(String.valueOf(canUseNum));
/*if (StringUtils.isNotBlank(applyListVo.getLockingNum())) {
//锁定数量
int lockNum = Integer.parseInt(applyListVo.getLockingNum());
// int lockNum = Integer.parseInt(applyListVo.getLockingNum());
int lockNum = busSalesVehicleOrderService.selectByLinkSid1(applyListVo.getSid());
//可使用数量
int canUseNum = totalNum - lockNum;
appReadyCarVo.setCanUseNum(String.valueOf(canUseNum));
} else {
appReadyCarVo.setCanUseNum(String.valueOf(totalNum));
}
}*/
} else {
appReadyCarVo.setCanUseNum("0");
}
@ -3337,6 +3373,17 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
List<AppReadyCarListVo> appReadyCarList = busSalesVehicleOrderService.selectAppDetailsVoBySaleOrderSid(sid);
appReadyCarList.removeAll(Collections.singleton(null));
if (!appReadyCarList.isEmpty()) {
for (int i = 0; i < appReadyCarList.size(); i++) {
AppReadyCarListVo v = appReadyCarList.get(i);
//查询该订单的总数量
int countAll = busSalesVehicleOrderService.selectByTotal(v.getSid());
int lockNum = busSalesVehicleOrderService.selectByLinkSid1(v.getSid());
//可使用数量
int canUseNum = countAll - lockNum;
if(canUseNum<=0){
isVehicleOrder = false;
}
}
//验证所选采购订单的车辆是否发生了变化
boolean isCheck = isCheck2(map, appReadyCarList);
boolean isCheck3 = isCheck3(appReadyCarList);
@ -4840,8 +4887,6 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
/* ResultBean<AppOrderDetailsVo> resultBean = getSaleOrderDetails(businessSid);
AppOrderDetailsVo vo = resultBean.getData();*/
if (BusSalesOrderConstantUtils.TypeEnum.EXISTING_CAR.getCode().equals(busSalesOrderOne.getType())) {
//更新已选择的车架号的状态为审批中
List<String> list = busSalesOrderVehicleService.selectVehicleSid(businessSid);
@ -4857,7 +4902,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
String linkSid = busSalesVehicleOrderDetailsVo.getLinkSid();
//查询该采购订单的已使用台数
int count = busSalesVehicleOrderService.selectByLinkSid1(linkSid);
count = count + busSalesVehicleOrderDetailsVo.getUsingNum();
// count = count + busSalesVehicleOrderDetailsVo.getUsingNum();
//更新该采购订单的锁定台数
ResultBean resultBeanOrder = busVehicleOrderFeign.updateLockNum(linkSid, String.valueOf(count));
}
@ -4885,30 +4930,29 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
baseVehicleStateDto.setSaleOrderSid(finalBusSalesOrderOne.getSid());
baseVehicleStateDto.setSaleTypeKey(finalBusSalesOrderOne.getPayTypeKey());
// baseVehicleStateDto.setFinSourceKey(finalBusSalesOrderOne.getFinancePlan());
if("2".equals(finalBusSalesOrderOne.getPayTypeKey())){//贷款
if ("2".equals(finalBusSalesOrderOne.getPayTypeKey())) {//贷款
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(finalBusSalesOrderOne.getSid()).getData();
if(loanSolutions != null){
if(StringUtils.isBlank(loanSolutions.getTypeKey())){
if (loanSolutions != null) {
if (StringUtils.isBlank(loanSolutions.getTypeKey())) {
baseVehicleStateDto.setFinSourceKey("4");//担保
}else{
} else {
baseVehicleStateDto.setFinSourceKey("3");//自营非担保
}
}
}else{
if("2".equals(finalBusSalesOrderOne.getFinancePlan())){
} else {
if ("2".equals(finalBusSalesOrderOne.getFinancePlan())) {
baseVehicleStateDto.setFinSourceKey(finalBusSalesOrderOne.getFinancePlan());
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(finalBusSalesOrderOne.getSid()).getData();
if(loanSolutions != null){
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())) {
if("02".equals(loanSolutions.getTypeKey())){
if (loanSolutions != null) {
if (StringUtils.isNotBlank(loanSolutions.getTypeKey())) {
if ("02".equals(loanSolutions.getTypeKey())) {
baseVehicleStateDto.setFinSourceKey("2");//三方金融
}else{
} else {
baseVehicleStateDto.setFinSourceKey("3");//自营非担保
}
}
}
}else{
} else {
baseVehicleStateDto.setFinSourceKey(finalBusSalesOrderOne.getFinancePlan());
}
@ -4958,29 +5002,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
bv.setInstanceId(dto.getProcInsId());
//流程定义id
bv.setModelId(busSalesOrder.get().getProcDefId());
/* ResultBean<AppOrderDetailsVo> resultBean = getSaleOrderDetails(businessSid);
AppOrderDetailsVo vo = resultBean.getData();*/
if (BusSalesOrderConstantUtils.TypeEnum.EXISTING_CAR.getCode().equals(busSalesOrderOne.getType())) {
//更新已选择的车架号的状态为审批中
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);
}
if (BusSalesOrderConstantUtils.TypeEnum.PURCHASE_ORDER.getCode().equals(busSalesOrderOne.getType())) {
List<BusSalesVehicleOrderDetailsVo> list = busSalesVehicleOrderService.detailsList(busSalesOrderOne.getSid());
for (BusSalesVehicleOrderDetailsVo busSalesVehicleOrderDetailsVo : list) {
String linkSid = busSalesVehicleOrderDetailsVo.getLinkSid();
//查询该采购订单的已使用台数
int count = busSalesVehicleOrderService.selectByLinkSid1(linkSid);
count = count + busSalesVehicleOrderDetailsVo.getUsingNum();
//更新该采购订单的锁定台数
ResultBean resultBeanOrder = busVehicleOrderFeign.updateLockNum(linkSid, String.valueOf(count));
}
}
return complete(bv);
return complete(bv, false);
}
return rb;
}
@ -5210,7 +5232,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
* @param bv
* @return
*/
public ResultBean complete(BusinessVariables bv) {
public ResultBean complete(BusinessVariables bv, boolean isTrue) {
ResultBean rb = ResultBean.fireFail();
BusSalesOrder busSalesOrder = fetchBySid(bv.getBusinessSid());
Map<String, Object> variables = getOrderMap(busSalesOrder);
@ -5228,6 +5250,27 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
busSalesOrder = fetchBySid(bv.getBusinessSid());
//极光推送
if (!"Event_end".equals(resultBean.getData().getTaskDefKey())) {
if (!isTrue) {//重新提交
if (BusSalesOrderConstantUtils.TypeEnum.EXISTING_CAR.getCode().equals(busSalesOrder.getType())) {
//更新已选择的车架号的状态为审批中
List<String> list = busSalesOrderVehicleService.selectVehicleSid(busSalesOrder.getSid());
BusMainDepositUpdateQuery busMainDepositUpdateQuery = new BusMainDepositUpdateQuery();
busMainDepositUpdateQuery.setVinSidList(list);
busMainDepositUpdateQuery.setLockedState(VehicleState.LockEnum.CONDUCT_LOCK.getCode());
busMainDepositUpdateQuery.setLockedStateValue(VehicleState.LockEnum.CONDUCT_LOCK.getRemarks());
baseVehicleFeign.updateMainDepositByVinNo(busMainDepositUpdateQuery);
}
if (BusSalesOrderConstantUtils.TypeEnum.PURCHASE_ORDER.getCode().equals(busSalesOrder.getType())) {
List<BusSalesVehicleOrderDetailsVo> list = busSalesVehicleOrderService.detailsList(busSalesOrder.getSid());
for (BusSalesVehicleOrderDetailsVo busSalesVehicleOrderDetailsVo : list) {
String linkSid = busSalesVehicleOrderDetailsVo.getLinkSid();
//查询该采购订单的已使用台数
int count = busSalesVehicleOrderService.selectByLinkSid1(linkSid);
//更新该采购订单的锁定台数
ResultBean resultBeanOrder = busVehicleOrderFeign.updateLockNum(linkSid, String.valueOf(count));
}
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -5419,7 +5462,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
String contractSid = baseMapper.selectBySid(busSalesOrder.getSid());
//单台成交价与单台订金相等
if (new BigDecimal(singleFinalPrice).compareTo(new BigDecimal(deposit)) != 0) {//推送车款
String money = new BigDecimal(singleFinalPrice).subtract(new BigDecimal(deposit)).subtract(StringUtils.isNotBlank(solutionsDetailsVo.getDiscountCar())?new BigDecimal(solutionsDetailsVo.getDiscountCar()):new BigDecimal(solutionsDetailsVo.getFactoryDiscount())).add(new BigDecimal(solutionsDetailsVo.getServiceAmount())).toString();
String money = new BigDecimal(singleFinalPrice).subtract(new BigDecimal(deposit)).subtract(StringUtils.isNotBlank(solutionsDetailsVo.getDiscountCar()) ? new BigDecimal(solutionsDetailsVo.getDiscountCar()) : new BigDecimal(solutionsDetailsVo.getFactoryDiscount())).add(new BigDecimal(solutionsDetailsVo.getServiceAmount())).toString();
List<VinListsVo> vinList = appOrderModelInfoVo.getVinListsVos();
for (int i = 0; i < vinList.size(); i++) {
UnCollectionDto unCollectionDto = new UnCollectionDto();
@ -5454,7 +5497,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
unCollectionDto.setStaffDeptSid(busSalesOrder.getOrgSid());
unCollectionDto.setUseOrgName(busSalesOrder.getUseOrgName());
unCollectionDto.setKxState("01");
if(StringUtils.isNotBlank(solutionsDetailsVo.getDiscountCar())){
if (StringUtils.isNotBlank(solutionsDetailsVo.getDiscountCar())) {
unCollectionDto.setOtherReceivableMoney(new BigDecimal(solutionsDetailsVo.getDiscountCar()));
}
finUncollectedDetailedFeign.saveUnCollection(unCollectionDto);
@ -6285,7 +6328,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
ResultBean rb = ResultBean.fireFail();
BusSalesOrder busSalesOrder = fetchBySid(orderFlowableQuery.getBusinessSid());
if (BusSalesOrderConstantUtils.TypeEnum.PRODUCTION_SCHEDULING.getCode().equals(busSalesOrder.getType()) || (com.yxt.common.base.utils.StringUtils.isNotBlank(busSalesOrder.getNowCarUnknownVinNum()) && !"0".equals(busSalesOrder.getNowCarUnknownVinNum()))) {
if(com.yxt.common.base.utils.StringUtils.isBlank(orderFlowableQuery.getPurchaseSystemSid())){
if (com.yxt.common.base.utils.StringUtils.isBlank(orderFlowableQuery.getPurchaseSystemSid())) {
return rb.setMsg("采购系统不能为空");
}
}
@ -6293,7 +6336,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
BeanUtil.copyProperties(orderFlowableQuery, bv);
// bv.setModelId(ProcDefEnum.SALESORDER.getProDefId());
bv.setModelId(busSalesOrder.getProcDefId());
ResultBean resultBean = complete(bv);
ResultBean resultBean = complete(bv, true);
if (resultBean.getSuccess()) {
if (BusSalesOrderConstantUtils.TypeEnum.PRODUCTION_SCHEDULING.getCode().equals(busSalesOrder.getType()) || (com.yxt.common.base.utils.StringUtils.isNotBlank(busSalesOrder.getNowCarUnknownVinNum()) && !"0".equals(busSalesOrder.getNowCarUnknownVinNum()))) {
//更新销售订单的采购系统

1
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicleorder/BusSalesVehicleOrderMapper.java

@ -89,4 +89,5 @@ public interface BusSalesVehicleOrderMapper extends BaseMapper<BusSalesVehicleOr
List<BusSalesVehicleOrder> selectByOrderSid(String salesOrderSid);
int selectByTotal(String sid);
}

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicleorder/BusSalesVehicleOrderMapper.xml

@ -82,4 +82,8 @@
<select id="selectByOrderSid" resultType="com.yxt.anrui.buscenter.api.bussalesvehicleorder.BusSalesVehicleOrder">
select * from bus_sales_vehicle_order where salesOrderSid = #{salesOrderSid}
</select>
<select id="selectByTotal" resultType="int">
select platformNo from anrui_base.bus_vehicle_order where sid = #{sid}
</select>
</mapper>

3
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicleorder/BusSalesVehicleOrderService.java

@ -202,4 +202,7 @@ public class BusSalesVehicleOrderService extends MybatisBaseService<BusSalesVehi
return baseMapper.selectByOrderSid(salesOrderSid);
}
public int selectByTotal(String sid) {
return baseMapper.selectByTotal(sid);
}
}
Loading…
Cancel
Save