Browse Source

出库(含欠款出库)时是否需要判断上装、挂车是否入库,分为全款和贷款两种情况,全款的从销售订单中判断,只判断销售订单上装表中为公司采购的限制;贷款的从家访合同信息中判断,上装、挂车均判断,是否公司采购为是(0)的限制。

满足限制条件的,需要先上装、挂车入库绑定车辆后方可提交出库申请。
master
dimengzhe 3 months ago
parent
commit
96084b10aa
  1. 3
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.java
  2. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml
  3. 218
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java
  4. 1
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.java
  5. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.xml
  6. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupService.java

3
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.java

@ -38,6 +38,7 @@ 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 com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatecustomer.LoanHomevisitInvestigateCustomer;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -135,4 +136,6 @@ public interface BusDeliveredApplyMapper extends BaseMapper<BusDeliveredApply> {
BusSalesOrderVehicle selectVinNoByVehicleSid(@Param("vinSid") String vinSid, @Param("contractNo") String contractId);
List<BaseVehinstall> selectInstall(String linkNo);
LoanHomevisitInvestigateCustomer getHomeVisitCustomerInfo(@Param("sid") String sid,@Param("loanSid") String loanSid);
}

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml

@ -233,4 +233,11 @@
<select id="selectInstall" resultType="com.yxt.anrui.base.api.basevehinstall.BaseVehinstall">
select * from anrui_base.base_vehinstall where vinNo = #{linkNo}
</select>
<select id="getHomeVisitCustomerInfo"
resultType="com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatecustomer.LoanHomevisitInvestigateCustomer">
SELECT lc.* FROM anrui_riskcenter.loan_homevisit_investigate li
left join anrui_riskcenter.loan_homevisit_investigate_customer lc on lc.mainSid = li.sid
where li.saleOrderSid = #{sid} and saleOrderBorrowerSid = #{loanSid}
</select>
</mapper>

218
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java

@ -149,6 +149,7 @@ import com.yxt.anrui.riskcenter.api.loanfileexamine.LoanFileexamine;
import com.yxt.anrui.riskcenter.api.loanfileexamine.LoanFileexamineFeign;
import com.yxt.anrui.riskcenter.api.loanhomevisitfileexamine.LoanHomevisitFileexamineFeign;
import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigate.LoanHomevisitInvestigateFeign;
import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatecustomer.LoanHomevisitInvestigateCustomer;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDetailsVo;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
@ -3431,52 +3432,84 @@ 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 ("2".equals(busSalesOrder.getPayTypeKey())) {//贷款
//先查询该订单下是否有挂车,如果有的话,再根据该订单及车辆查询挂车是否都已入库,若没有全部入库,则提示
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(!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(isHave){
LoanHomevisitInvestigateCustomer loanHomevisitInvestigateCustomer = baseMapper.getHomeVisitCustomerInfo(busSalesOrder.getSid(),dto.getLoanSid());
if("0".equals(loanHomevisitInvestigateCustomer.getIsCompBuy())){//是公司采购
return rb.setMsg("挂车入库绑定车辆后才可以提交出库申请");
}
}
boolean issHave = false;
List<BusSalesOrderMakeup> makeUpsList = busSalesOrderMakeupService.selectMakeUpByContractNo2(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){
LoanHomevisitInvestigateCustomer loanHomevisitInvestigateCustomer = baseMapper.getHomeVisitCustomerInfo(busSalesOrder.getSid(),dto.getLoanSid());
if("0".equals(loanHomevisitInvestigateCustomer.getIsCompBuy())){//是公司采购
return rb.setMsg("上装入库绑定车辆后才可以提交出库申请");
}
}
}else{
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("上装入库绑定车辆后才可以提交出库申请");
}
}
if(issHave){
return rb.setMsg("上装入库绑定车辆后才可以提交出库申请");
}
//=================
BusDeliveredApply busDeliveredApply = fetchBySid(dto.getSid());
int r = submitAppBusinessData(dto, busDeliveredApply);
@ -4304,6 +4337,7 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
public ResultBean submitUnDeliveredApply(SubmitUnDeliveredApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
BusSalesOrder busSalesOrder = busSalesOrderService.selectByContractNos(dto.getContractId());
//判断选择的优惠是否超出
List<AppCarListVo> carList = dto.getCarList();
if (!carList.isEmpty()) {
@ -4389,52 +4423,84 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
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 ("2".equals(busSalesOrder.getPayTypeKey())) {//贷款
//先查询该订单下是否有挂车,如果有的话,再根据该订单及车辆查询挂车是否都已入库,若没有全部入库,则提示
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(!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(isHave){
LoanHomevisitInvestigateCustomer loanHomevisitInvestigateCustomer = baseMapper.getHomeVisitCustomerInfo(busSalesOrder.getSid(),dto.getLoanSid());
if("0".equals(loanHomevisitInvestigateCustomer.getIsCompBuy())){//是公司采购
return rb.setMsg("挂车入库绑定车辆后才可以提交出库申请");
}
}
boolean issHave = false;
List<BusSalesOrderMakeup> makeUpsList = busSalesOrderMakeupService.selectMakeUpByContractNo2(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){
LoanHomevisitInvestigateCustomer loanHomevisitInvestigateCustomer = baseMapper.getHomeVisitCustomerInfo(busSalesOrder.getSid(),dto.getLoanSid());
if("0".equals(loanHomevisitInvestigateCustomer.getIsCompBuy())){//是公司采购
return rb.setMsg("上装入库绑定车辆后才可以提交出库申请");
}
}
}else{
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("上装入库绑定车辆后才可以提交出库申请");
}
}
if(issHave){
return rb.setMsg("上装入库绑定车辆后才可以提交出库申请");
}
//=================
BusDeliveredApply busDeliveredApply = fetchBySid(dto.getSid());
int r = submitAppBusinessData2(dto, busDeliveredApply);

1
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.java

@ -99,4 +99,5 @@ public interface BusSalesOrderMakeupMapper extends BaseMapper<BusSalesOrderMakeu
List<BusSalesOrderMakeupDetailsVo> selectTopByOrderSid(@Param("orderSid") String orderSid);
List<BusSalesOrderMakeup> selectMakeUpByContractNo(String contractId);
List<BusSalesOrderMakeup> selectMakeUpByContractNo2(String contractId);
}

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.xml

@ -116,4 +116,11 @@
left join bus_sales_order bo on bo.sid = bm.salesOrderSid
where bo.contractNo = #{contractId} and bm.buyTypeKey = '01'
</select>
<select id="selectMakeUpByContractNo2"
resultType="com.yxt.anrui.buscenter.api.bussalesordermakeup.BusSalesOrderMakeup">
select bm.* from bus_sales_order_makeup bm
left join bus_sales_order bo on bo.sid = bm.salesOrderSid
where bo.contractNo = #{contractId}
</select>
</mapper>

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupService.java

@ -285,4 +285,8 @@ public class BusSalesOrderMakeupService extends MybatisBaseService<BusSalesOrder
public List<BusSalesOrderMakeup> selectMakeUpByContractNo(String contractId) {
return baseMapper.selectMakeUpByContractNo(contractId);
}
public List<BusSalesOrderMakeup> selectMakeUpByContractNo2(String contractId) {
return baseMapper.selectMakeUpByContractNo2(contractId);
}
}
Loading…
Cancel
Save