diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.java index 9b4f3e2cfb..95a529ed29 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.java @@ -30,11 +30,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.base.api.basetrailer.BaseTrailer; import com.yxt.anrui.base.api.basevehiclestate.BaseVehicleState; +import com.yxt.anrui.base.api.basevehinstall.BaseVehinstall; import com.yxt.anrui.buscenter.api.busdeliveredapply.AppDeliveredApplyPageQuery; import com.yxt.anrui.buscenter.api.busdeliveredapply.AppDeliveredApplyPageVo; import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApply; import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApplyVo; +import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -126,4 +129,10 @@ public interface BusDeliveredApplyMapper extends BaseMapper { int selByVinSidAndYBJ(String vinSid); String selCustomerByBusVinSid(@Param("busVinSid") String busVinSid); + + List selectTralier(String vinSid); + + BusSalesOrderVehicle selectVinNoByVehicleSid(@Param("vinSid") String vinSid, @Param("contractNo") String contractId); + + List selectInstall(String linkNo); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml index e27964d574..e416be9274 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml @@ -218,4 +218,19 @@ ORDER BY a.createTime DESC LIMIT 1 + + + + + + \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java index 1d7e9cef66..e6cabb832d 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java @@ -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 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 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 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 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 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 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 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 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) { diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.java index 2e6b2010a0..0cdd179136 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.java @@ -97,4 +97,6 @@ public interface BusSalesOrderMakeupMapper extends BaseMapper selectTopByOrderSid(@Param("orderSid") String orderSid); + + List selectMakeUpByContractNo(String contractId); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.xml index 8056c14603..18ba581c05 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.xml @@ -109,4 +109,11 @@ + + \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupService.java index b61c28c1bb..eff8c1e308 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupService.java @@ -281,4 +281,8 @@ public class BusSalesOrderMakeupService extends MybatisBaseService busSalesOrderMakeupDetailsVoList = baseMapper.selectTopByOrderSid(orderSid); return rb.success().setData(busSalesOrderMakeupDetailsVoList); } + + public List selectMakeUpByContractNo(String contractId) { + return baseMapper.selectMakeUpByContractNo(contractId); + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerMapper.java index dc169b504b..dbd1bc40c5 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerMapper.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerMapper.java @@ -68,4 +68,6 @@ public interface BusSalesOrderTrailerMapper extends BaseMapper selectTrailerByContractNo(String contractId); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerMapper.xml index 0705daf056..68f936f2f2 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerMapper.xml @@ -1,6 +1,14 @@ - - + + + + \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerService.java index c845a0b2ae..9738b81ff8 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordertrailer/BusSalesOrderTrailerService.java @@ -183,4 +183,8 @@ public class BusSalesOrderTrailerService extends MybatisBaseService selectTrailerByContractNo(String contractId) { + return baseMapper.selectTrailerByContractNo(contractId); + } } \ No newline at end of file