From d2b2d62eade0ea483e478bf198a3c83bd560a4d8 Mon Sep 17 00:00:00 2001 From: linfso Date: Mon, 17 Jun 2024 22:34:05 +0800 Subject: [PATCH] md --- .../erp/emis/service/EmisBaseService.java | 1 - .../service/impl/EmisWaybillServiceImpl.java | 41 ++++++++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index ea76e4caa..53298ce14 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -591,7 +591,6 @@ public class EmisBaseService { } else{ throw new EmisBizError(EmisBizErrorType.FAIL, "费用增减类型错误!"); - } // 变动后余额 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 a19c05208..e353aa616 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 @@ -788,18 +788,55 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } } + // 判断网点余额-运单金额 是否足够,如果不够则不允许下单 + EmisSiteAccount emisSiteAccount=getSiteAccountBySiteCode(emisWaybillSave.getSendSiteCode()); + if(emisSiteAccount==null){ + throw new EmisBizError(EmisBizErrorType.FAIL,"网点结算账户不存在,请先开结算账户"); + } + + BigDecimal curMoney=emisSiteAccount.getCurMoney(); + BigDecimal closeMoney=emisSiteAccount.getCloseMoney(); + + BigDecimal newCurMoney=curMoney.subtract(emisWaybillSave.getFreight()); + if(newCurMoney.compareTo(closeMoney)==-1){ + throw new EmisBizError(EmisBizErrorType.FAIL,"网点余额不足,请充值"); + } + // 公共计算部分 calcWayBillCommonInfo(emisWaybillSave,true); //补齐数据 - emisWaybillSave.preInsert(); emisWaybillMapper.insertEmisWaybill(emisWaybillSave); + // 新增运单结算信息 + // 增加结算账户额度,插入明细数据 + EmisSiteSettleRecord emisSiteSettleRecord=new EmisSiteSettleRecord(); + emisSiteSettleRecord.setAccCode(emisSiteAccount.getAccCode()); + emisSiteSettleRecord.setBillCode(emisWaybillSave.getBillCode()); + emisSiteSettleRecord.setRecPayType("2"); // 应付 + emisSiteSettleRecord.setSettleType("003");// 运输费用 + emisSiteSettleRecord.setSettleName("预付款-充值"); + emisSiteSettleRecord.setCurMoney(emisWaybillSave.getFreight()); + emisSiteSettleRecord.setCurConfirmMoney(emisWaybillSave.getFreight()); + emisSiteSettleRecord.setChangeType("2"); // 减少 + emisSiteSettleRecord.setCurrency("CNY"); + emisSiteSettleRecord.setChangeDate(new Date()); + + emisSiteSettleRecord.setSiteCode(emisWaybillSave.getSendSiteCode()); + emisSiteSettleRecord.setSourceType("pc"); + emisSiteSettleRecord.setOperataDate(new Date()); + emisSiteSettleRecord.setFinanceDate(new Date()); + emisSiteSettleRecord.setBlCenter("1"); + emisSiteSettleRecord.setCenterCode(getCurrentUser().getOwnerSiteCode()); + emisSiteSettleRecord.setCenterManCode(getCurrentUser().getEmpCode()); + emisSiteSettleRecord.setBlChargeFee("1"); + + addSiteSettleRecord(emisSiteSettleRecord); + // 扣减子单 emisElectronicSitePagService.realMatchSubBill(emisWaybillSave.getSendSiteCode(),"T7080",emisWaybillSave.getParcelQty()); - // 产生主键插入其他数据 // 插入费用 List feeitemList=emisWaybillSave.getFeeitemList();