From 0bbf68624e444c3973512f0c8432d5756a661f25 Mon Sep 17 00:00:00 2001 From: linfso Date: Thu, 4 Jul 2024 04:15:49 +0800 Subject: [PATCH] md --- .../erp/web/emis/EmisCommonController.java | 24 +++++ .../emis/mapper/EmisWaybillFeeitemMapper.java | 4 + .../erp/emis/mapper/EmisWaybillMapper.java | 12 +++ .../erp/emis/service/EmisBaseService.java | 91 ++++++++++++++++++- .../mapper/EmisWaybillFeeitemMapper.xml | 6 ++ .../resources/mapper/EmisWaybillMapper.xml | 19 +++- 6 files changed, 152 insertions(+), 4 deletions(-) diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java index aea026387..2e178d081 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java @@ -470,6 +470,30 @@ public class EmisCommonController extends EmisBaseController } + /** + * 自动出账触发 + * @return + */ + @GetMapping("/autoDoBillTrigger") + public AjaxResult autoDoBillTrigger(){ + String lockKey="autoDoBillTrigger"; + log.error("autoDoBillTrigger start"); + + // 加锁查询 + redissonService.lock(lockKey,300); + try{ + emisBaseService.autoDoBill(); + }catch(Exception ex){ + ex.printStackTrace(); + log.error("autoDoBillTrigger exception:"+ex.getMessage()); + } + log.error("autoDoBillTrigger end"); + + redissonService.unlock(lockKey); + return AjaxResult.success("发送成功"); + + } + /** * 物流轨迹采集触发 * @return diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillFeeitemMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillFeeitemMapper.java index a12b307b2..12e60187c 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillFeeitemMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillFeeitemMapper.java @@ -36,6 +36,10 @@ public interface EmisWaybillFeeitemMapper extends BaseMapper */ public List selectEmisWaybillFeeitemList(EmisWaybillFeeitem emisWaybillFeeitem); + + public List selectFeeitemListByWaybillId(Long waybillId); + + /** * 新增 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java index 94db8d4b1..8faa79bfc 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java @@ -53,6 +53,9 @@ public interface EmisWaybillMapper extends BaseMapper */ public List selectEmisWaybillList(EmisWaybill emisWaybill); + + public List selectWaitDoBillList(EmisWaybill emisWaybill); + /** * 新增 * @@ -120,6 +123,12 @@ public interface EmisWaybillMapper extends BaseMapper // 删除签收状态 public int updateUnSignStatus(EmisWaybill emisWaybill); + // 打出账标识 + public int updateHasDoBill(EmisWaybill emisWaybill); + + // 取消出账标识 + public int cancelHasDoBill(EmisWaybill emisWaybill); + // 更新问题件状态 public int updateProblemStatus(EmisWaybill emisWaybill); @@ -140,4 +149,7 @@ public interface EmisWaybillMapper extends BaseMapper + + + } 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 c242d69c3..d80e7ca00 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 @@ -78,13 +78,13 @@ public class EmisBaseService { protected EmisWaybillMapper emisWaybillMapper; @Autowired - protected IEmisWaybillFeeitemService emisWaybillFeeitemMapper; + protected EmisWaybillFeeitemMapper emisWaybillFeeitemMapper; @Autowired - protected IEmisWaybillCargoService emisWaybillCargoMapper; + protected EmisWaybillCargoMapper emisWaybillCargoMapper; @Autowired - protected IEmisWaybillAttachmentService emisWaybillAttachmentMapper; + protected EmisWaybillAttachmentMapper emisWaybillAttachmentMapper; @Autowired protected EmisTransLineMapper emisTransLineMapper; @@ -161,6 +161,12 @@ public class EmisBaseService { private EmisSpecialCalcWeightMapper emisSpecialCalcWeightMapper; + @Autowired + private EmisSettleSubBillMapper emisSettleSubBillMapper; + + + @Autowired + private EmisSettleSubBillFeeitemMapper emisSettleSubBillFeeitemMapper; @Autowired @@ -875,6 +881,85 @@ public class EmisBaseService { } + /** + * 自动出账 + */ + public void autoDoBill() { + // 获取需要出账的运单列表 + EmisWaybill qEmisWaybill = new EmisWaybill(); + 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.endsWithAny(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.setBillCode(dt.getBillCode()); + emisSettleSubBillFeeitem.setBillFee(dt.getFreight()); + emisSettleSubBillFeeitem.setCurrency(dt.getCurrency()); + emisSettleSubBillFeeitem.setFeeCode("1001"); + emisSettleSubBillFeeitem.setFeeName("运输费"); + emisSettleSubBillFeeitem.setOrigFee(dt.getRealFee()); + emisSettleSubBillFeeitem.setRemark("一口价运输费"); + emisSettleSubBillFeeitemMapper.insertEmisSettleSubBillFeeitem(emisSettleSubBillFeeitem); + + }else{ + List feeitemList = emisWaybillFeeitemMapper.selectFeeitemListByWaybillId(dt.getId()); + for(EmisWaybillFeeitem feeitem:feeitemList){ + EmisSettleSubBillFeeitem emisSettleSubBillFeeitem =new EmisSettleSubBillFeeitem(); + 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 自动出账"); + + } + } + + } + + /** * 短信发送 diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillFeeitemMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillFeeitemMapper.xml index c3f3fc8ac..e8ed7d673 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillFeeitemMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillFeeitemMapper.xml @@ -59,6 +59,12 @@ where a.id = #{id} + + insert into emis_waybill_feeitem diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index 4be8c9343..64b16b044 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -897,6 +897,12 @@ + +