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 a1b271a3e..9438a079c 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 @@ -950,75 +950,79 @@ public class EmisBaseService { List list = emisWaybillMapper.selectWaitDoBillList(qEmisWaybill); if(!CollectionUtil.isEmpty(list)){ for(EmisWaybill dt:list){ - log.error("===>Start 自动出账:"+dt.getBillCode()); - try { - - // 生成分账单明细 - EmisSettleSubBill emisSettleSubBill=new EmisSettleSubBill(); - emisSettleSubBill.setBillCode(dt.getBillCode()); - emisSettleSubBill.setBillNo(dt.getBillCode()); - emisSettleSubBill.setBillDate(new Date()); - - // 账单类型 1-现金 2-月结 - if( StringUtils.equalsAny(dt.getPaymentType(),"2","4","5")) { - emisSettleSubBill.setSettleType("2"); - }else{ - emisSettleSubBill.setSettleType("1"); - } - - emisSettleSubBill.setCurrency(dt.getCurrency()); - emisSettleSubBill.setBillMonth(DateUtils.parseDateToStr("yyyyMM",dt.getSendDate())); - - emisSettleSubBill.setBillFee(dt.getFreight()); - - emisSettleSubBill.setCustNo(dt.getCustNo()); - emisSettleSubBill.setCustomerCode(dt.getCustomerCode()); - emisSettleSubBill.setCustomerName(dt.getCustomerName()); - - emisSettleSubBillMapper.insertEmisSettleSubBill(emisSettleSubBill); - - // 如果是一口价,自动生成一条运费明细,其他则根据实际来计算 - // 生成费用明细 - if(dt.getCalcFeeType().equals("3")) { - - EmisSettleSubBillFeeitem emisSettleSubBillFeeitem =new EmisSettleSubBillFeeitem(); - emisSettleSubBillFeeitem.setSubBillNo(dt.getBillCode()); - emisSettleSubBillFeeitem.setBillCode(dt.getBillCode()); - emisSettleSubBillFeeitem.setBillFee(dt.getFreight()); - emisSettleSubBillFeeitem.setCurrency(dt.getCurrency()); - emisSettleSubBillFeeitem.setFeeCode("1001"); - emisSettleSubBillFeeitem.setFeeName("运输费"); - emisSettleSubBillFeeitem.setOrigFee(dt.getFreight()); - emisSettleSubBillFeeitem.setRemark("一口价运输费"); - emisSettleSubBillFeeitemMapper.insertEmisSettleSubBillFeeitem(emisSettleSubBillFeeitem); - - }else{ - List feeitemList = emisWaybillFeeitemMapper.selectFeeitemListByWaybillId(dt.getId()); - for(EmisWaybillFeeitem feeitem:feeitemList){ - EmisSettleSubBillFeeitem emisSettleSubBillFeeitem =new EmisSettleSubBillFeeitem(); - emisSettleSubBillFeeitem.setSubBillNo(dt.getBillCode()); - emisSettleSubBillFeeitem.setBillCode(dt.getBillCode()); - emisSettleSubBillFeeitem.setBillFee(feeitem.getRealFee()); - emisSettleSubBillFeeitem.setCurrency(feeitem.getCurrency()); - emisSettleSubBillFeeitem.setFeeCode(feeitem.getFeeCode()); - emisSettleSubBillFeeitem.setFeeName(feeitem.getFeeName()); - emisSettleSubBillFeeitem.setOrigFee(feeitem.getRealFee()); - emisSettleSubBillFeeitem.setRemark("运单费用明细"); - emisSettleSubBillFeeitemMapper.insertEmisSettleSubBillFeeitem(emisSettleSubBillFeeitem); - } - } - // 出账标识 - emisWaybillMapper.updateHasDoBill(dt); - - }catch (Exception ex){ - ex.printStackTrace(); - } - - log.error("===>End 自动出账"); - + redoGenerateBill(dt.getBillCode()); } } + } + public void redoGenerateBill(String billCode){ + log.error("===>Start 运单出账:"+billCode); + try { + EmisWaybill dt=emisWaybillMapper.selectEmisWaybillByBillCode(billCode); + // 需要先删除账单 + + // 生成分账单明细 + EmisSettleSubBill emisSettleSubBill=new EmisSettleSubBill(); + emisSettleSubBill.setBillCode(dt.getBillCode()); + emisSettleSubBill.setBillNo(dt.getBillCode()); + emisSettleSubBill.setBillDate(new Date()); + + // 账单类型 1-现金 2-月结 + if( StringUtils.equalsAny(dt.getPaymentType(),"2","4","5")) { + emisSettleSubBill.setSettleType("2"); + }else{ + emisSettleSubBill.setSettleType("1"); + } + + emisSettleSubBill.setCurrency(dt.getCurrency()); + emisSettleSubBill.setBillMonth(DateUtils.parseDateToStr("yyyyMM",dt.getSendDate())); + + emisSettleSubBill.setBillFee(dt.getFreight()); + + emisSettleSubBill.setCustNo(dt.getCustNo()); + emisSettleSubBill.setCustomerCode(dt.getCustomerCode()); + emisSettleSubBill.setCustomerName(dt.getCustomerName()); + + emisSettleSubBillMapper.insertEmisSettleSubBill(emisSettleSubBill); + + // 如果是一口价,自动生成一条运费明细,其他则根据实际来计算 + // 生成费用明细 + if(dt.getCalcFeeType().equals("3")) { + + EmisSettleSubBillFeeitem emisSettleSubBillFeeitem =new EmisSettleSubBillFeeitem(); + emisSettleSubBillFeeitem.setSubBillNo(dt.getBillCode()); + emisSettleSubBillFeeitem.setBillCode(dt.getBillCode()); + emisSettleSubBillFeeitem.setBillFee(dt.getFreight()); + emisSettleSubBillFeeitem.setCurrency(dt.getCurrency()); + emisSettleSubBillFeeitem.setFeeCode("1001"); + emisSettleSubBillFeeitem.setFeeName("运输费"); + emisSettleSubBillFeeitem.setOrigFee(dt.getFreight()); + emisSettleSubBillFeeitem.setRemark("一口价运输费"); + emisSettleSubBillFeeitemMapper.insertEmisSettleSubBillFeeitem(emisSettleSubBillFeeitem); + + }else{ + List feeitemList = emisWaybillFeeitemMapper.selectFeeitemListByWaybillId(dt.getId()); + for(EmisWaybillFeeitem feeitem:feeitemList){ + EmisSettleSubBillFeeitem emisSettleSubBillFeeitem =new EmisSettleSubBillFeeitem(); + emisSettleSubBillFeeitem.setSubBillNo(dt.getBillCode()); + emisSettleSubBillFeeitem.setBillCode(dt.getBillCode()); + emisSettleSubBillFeeitem.setBillFee(feeitem.getRealFee()); + emisSettleSubBillFeeitem.setCurrency(feeitem.getCurrency()); + emisSettleSubBillFeeitem.setFeeCode(feeitem.getFeeCode()); + emisSettleSubBillFeeitem.setFeeName(feeitem.getFeeName()); + emisSettleSubBillFeeitem.setOrigFee(feeitem.getRealFee()); + emisSettleSubBillFeeitem.setRemark("运费明细:"+feeitem.getFeeName()); + emisSettleSubBillFeeitemMapper.insertEmisSettleSubBillFeeitem(emisSettleSubBillFeeitem); + } + } + // 出账标识 + emisWaybillMapper.updateHasDoBill(dt); + + }catch (Exception ex){ + ex.printStackTrace(); + } + + log.error("===>End 运单出账"); } /**