diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java index f2e9e2fad..5988b5ab6 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java @@ -146,6 +146,10 @@ public interface IEmisWaybillService extends IDataAuditService public int realSubmitOrder(EmisWaybill emisWaybill) throws EmisBizError; + + public void checkCountry(EmisWaybill emisWaybill) throws EmisBizError; + + /** * OMS下单 * @param emisWaybill diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java index 4e927c315..b3e7fda57 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillAjustApplyServiceImpl.java @@ -134,6 +134,8 @@ public class EmisWaybillAjustApplyServiceImpl extends EmisBaseService implements // 检查月结客户首次签约日期,首次签约之前开的不允许修改 checkFirstSigningDay(emisWaybillOld, getEmisWaybillNewFromJson(emisWaybillAjustApply)); + emisWaybillService.checkCountry(getEmisWaybillNewFromJson(emisWaybillAjustApply)); + // 检查月结/现金客户额度 // bug:1657 调整后逻辑:单证部同事 员工表标识“单证专属”岗位登记的网点费用申请,不用判断 现金额度和月结客户额度 boolean isDZZS=checkIsDZZS(emisWaybillAjustApply.getApplyManCode()); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 2f7445acc..4bbf4d391 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -3287,13 +3287,17 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } } - private void checkCountry(EmisWaybill emisWaybillSave) throws EmisBizError { + public void checkCountry(EmisWaybill emisWaybillSave) throws EmisBizError { EmisTransLine emisTransLine = new EmisTransLine(); emisTransLine.setLineCode(emisWaybillSave.getTransLineType()); List emisTransLines = emisTransLineMapper.selectEmisTransLineList(emisTransLine); - if(CollectionUtil.isEmpty(emisTransLines)){ + EmisSite siteByCode = getSiteByCode(emisWaybillSave.getStartSiteCode()); + if(CollectionUtil.isEmpty(emisTransLines)||Objects.isNull(siteByCode)){ return; } + if(!siteByCode.getCountryCode().equals(emisTransLines.get(0).getFromCountry())){ + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "始发网点与所选线路不匹配" ); + } if(emisWaybillSave.getSendCountry().equals(emisTransLines.get(0).getFromCountry())){ return; } @@ -3511,6 +3515,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb checkFeeWaybill.setTotalVolume(emisWaybillSave.getTotalVolume()); checkFeeWaybill.setSendSiteCode(emisWaybillSave.getSendSiteCode()); + checkFeeWaybill.setStartSiteCode(emisWaybillSave.getStartSiteCode()); checkFeeWaybill.setDispatchUnderlingSiteCode(emisWaybillSave.getDispatchUnderlingSiteCode()); checkFeeWaybill.setCustomsClear(emisWaybillSave.getCustomsClear()); checkFeeWaybill.setCustomsEclaration(emisWaybillSave.getCustomsEclaration()); @@ -3899,9 +3904,13 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb emisWaybill.setSendDate(new Date()); } + if (StringUtils.isBlank(emisWaybill.getStartSiteCode())) { + emisWaybill.setStartSiteCode(emisWaybill.getSendSiteCode()); + } + // bug: 1704 按照运单号开单日期去报价表抓取对应的报价进行计算 List emisQuotePriceList=getValidQuotePriceList(emisWaybill.getTransLineType(),emisWaybill.getProductType(), - emisWaybill.getSendSiteCode(),emisWaybill.getDispatchUnderlingSiteCode(), + emisWaybill.getStartSiteCode(),emisWaybill.getDispatchUnderlingSiteCode(), emisWaybill.getCalcFeeType(),emisWaybill.getCustomerCode(),emisWaybill.getCustNo(),emisWaybill.getSendDate() );