This commit is contained in:
linfso 2024-07-08 16:29:29 +08:00
parent 98e576d0bc
commit 1a8d43d241

View File

@ -950,75 +950,79 @@ public class EmisBaseService {
List<EmisWaybill> 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<EmisWaybillFeeitem> 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<EmisWaybillFeeitem> 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 运单出账");
}
/**