|
|
@ -33,10 +33,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basemiddleman.BaseMiddlemanFeign; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.BaseTrailerDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.BaseTrailerFeign; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.TrailerVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.TraliveredVo; |
|
|
|
import com.yxt.anrui.base.api.basetrailer.*; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicle; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo; |
|
|
@ -51,6 +48,7 @@ import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleState; |
|
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateDto; |
|
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateEnum; |
|
|
|
import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleStateFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehinstall.BaseVehinstall; |
|
|
|
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign; |
|
|
|
import com.yxt.anrui.base.common.enums.CertificState; |
|
|
|
import com.yxt.anrui.base.common.utils.Rule; |
|
|
@ -83,8 +81,10 @@ import com.yxt.anrui.buscenter.api.bushandoverpreparevehicle.AppBusHandoverPrepa |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscount; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordermakeup.BusSalesOrderMakeup; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordersubmit.SubmitVo; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordertrailer.BusSalesOrderTrailer; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; |
|
|
|
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleDetailsVo; |
|
|
|
import com.yxt.anrui.buscenter.api.busvalcustfiling.BusValcustFilingDto; |
|
|
@ -102,6 +102,8 @@ import com.yxt.anrui.buscenter.biz.bushandoverprepare.BusHandoverPrepareService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesorderdiscount.BusSalesOrderDiscountService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesorderloancontract.BusSalesOrderLoancontractService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesordermakeup.BusSalesOrderMakeupService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesordertrailer.BusSalesOrderTrailerService; |
|
|
|
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busvalcustfiling.BusValcustFilingService; |
|
|
|
import com.yxt.anrui.buscenter.biz.busvehicleinformationhandover.BusVehicleInformationHandoverService; |
|
|
@ -297,6 +299,11 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
@Autowired |
|
|
|
private ScmVehRebateFeign scmVehRebateFeign; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private BusSalesOrderTrailerService busSalesOrderTrailerService; |
|
|
|
@Autowired |
|
|
|
private BusSalesOrderMakeupService busSalesOrderMakeupService; |
|
|
|
|
|
|
|
/** |
|
|
|
* 构造出库申请的查询条件 |
|
|
|
* |
|
|
@ -3370,7 +3377,53 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
} else { |
|
|
|
return rb.setMsg("请选择要出库的车辆"); |
|
|
|
} |
|
|
|
//先查询该订单下是否有挂车,如果有的话,再根据该订单及车辆查询挂车是否都已入库,若没有全部入库,则提示
|
|
|
|
boolean isHave = false; |
|
|
|
List<BusSalesOrderTrailer> trailersLists = busSalesOrderTrailerService.selectTrailerByContractNo(dto.getContractId()); |
|
|
|
trailersLists = trailersLists.stream().filter(Objects::nonNull).collect(Collectors.toList()); // 去除null元素
|
|
|
|
// 如果列表不为空,使用流式操作计算总挂车数量
|
|
|
|
if(!trailersLists.isEmpty()){ |
|
|
|
int totalTrailerCount = trailersLists.stream() |
|
|
|
.mapToInt(BusSalesOrderTrailer::getTrailerCount) // 提取数量
|
|
|
|
.sum(); // 累加所有数量
|
|
|
|
|
|
|
|
if(!carList.isEmpty()){ |
|
|
|
for (AppCarListVo car : carList) { |
|
|
|
//根据车辆sid 查询挂车的数量
|
|
|
|
List<BaseTrailer> trList = baseMapper.selectTralier(car.getVinSid()); |
|
|
|
trList = trList.stream().filter(Objects::nonNull).collect(Collectors.toList()); // 去除null元素
|
|
|
|
if(totalTrailerCount != trList.size()){ |
|
|
|
isHave = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(isHave){ |
|
|
|
return rb.setMsg("挂车入库绑定车辆后才可以提交出库申请"); |
|
|
|
} |
|
|
|
boolean issHave = false; |
|
|
|
List<BusSalesOrderMakeup> makeUpsList = busSalesOrderMakeupService.selectMakeUpByContractNo(dto.getContractId()); |
|
|
|
makeUpsList = makeUpsList.stream().filter(Objects::nonNull).collect(Collectors.toList()); // 去除null元素
|
|
|
|
if(!makeUpsList.isEmpty()){ |
|
|
|
//查询上装入库中是否有该主车关联的上装
|
|
|
|
if(!carList.isEmpty()){ |
|
|
|
for (AppCarListVo car : carList) { |
|
|
|
//根据车辆sid和合同号查询主车车架号
|
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectVinNoByVehicleSid(car.getVinSid(),dto.getContractId()); |
|
|
|
List<BaseVehinstall> trList = baseMapper.selectInstall(busSalesOrderVehicle.getLinkNo()); |
|
|
|
trList = trList.stream().filter(Objects::nonNull).collect(Collectors.toList()); // 去除null元素
|
|
|
|
if(trList.isEmpty()){ |
|
|
|
issHave = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(issHave){ |
|
|
|
return rb.setMsg("上装入库绑定车辆后才可以提交出库申请"); |
|
|
|
} |
|
|
|
//=================
|
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(dto.getSid()); |
|
|
|
int r = submitAppBusinessData(dto, busDeliveredApply); |
|
|
|
if (r == 3) { |
|
|
@ -4281,7 +4334,54 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp |
|
|
|
} else { |
|
|
|
return rb.setMsg("请选择要出库的车辆"); |
|
|
|
} |
|
|
|
//=====================
|
|
|
|
//先查询该订单下是否有挂车,如果有的话,再根据该订单及车辆查询挂车是否都已入库,若没有全部入库,则提示
|
|
|
|
boolean isHave = false; |
|
|
|
List<BusSalesOrderTrailer> trailersLists = busSalesOrderTrailerService.selectTrailerByContractNo(dto.getContractId()); |
|
|
|
trailersLists = trailersLists.stream().filter(Objects::nonNull).collect(Collectors.toList()); // 去除null元素
|
|
|
|
// 如果列表不为空,使用流式操作计算总挂车数量
|
|
|
|
if(!trailersLists.isEmpty()){ |
|
|
|
int totalTrailerCount = trailersLists.stream() |
|
|
|
.mapToInt(BusSalesOrderTrailer::getTrailerCount) // 提取数量
|
|
|
|
.sum(); // 累加所有数量
|
|
|
|
|
|
|
|
if(!carList.isEmpty()){ |
|
|
|
for (AppCarListVo car : carList) { |
|
|
|
//根据车辆sid 查询挂车的数量
|
|
|
|
List<BaseTrailer> trList = baseMapper.selectTralier(car.getVinSid()); |
|
|
|
trList = trList.stream().filter(Objects::nonNull).collect(Collectors.toList()); // 去除null元素
|
|
|
|
if(totalTrailerCount != trList.size()){ |
|
|
|
isHave = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(isHave){ |
|
|
|
return rb.setMsg("挂车入库绑定车辆后才可以提交出库申请"); |
|
|
|
} |
|
|
|
boolean issHave = false; |
|
|
|
List<BusSalesOrderMakeup> makeUpsList = busSalesOrderMakeupService.selectMakeUpByContractNo(dto.getContractId()); |
|
|
|
makeUpsList = makeUpsList.stream().filter(Objects::nonNull).collect(Collectors.toList()); // 去除null元素
|
|
|
|
if(!makeUpsList.isEmpty()){ |
|
|
|
//查询上装入库中是否有该主车关联的上装
|
|
|
|
if(!carList.isEmpty()){ |
|
|
|
for (AppCarListVo car : carList) { |
|
|
|
//根据车辆sid和合同号查询主车车架号
|
|
|
|
BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectVinNoByVehicleSid(car.getVinSid(),dto.getContractId()); |
|
|
|
List<BaseVehinstall> trList = baseMapper.selectInstall(busSalesOrderVehicle.getLinkNo()); |
|
|
|
trList = trList.stream().filter(Objects::nonNull).collect(Collectors.toList()); // 去除null元素
|
|
|
|
if(trList.isEmpty()){ |
|
|
|
issHave = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if(issHave){ |
|
|
|
return rb.setMsg("上装入库绑定车辆后才可以提交出库申请"); |
|
|
|
} |
|
|
|
//=================
|
|
|
|
BusDeliveredApply busDeliveredApply = fetchBySid(dto.getSid()); |
|
|
|
int r = submitAppBusinessData2(dto, busDeliveredApply); |
|
|
|
if (r == 3) { |
|
|
|