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();