From b9f8fe83f3e0f27edab8da11e8d2083bd1e0aac8 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Fri, 17 Apr 2026 17:21:59 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=20=20=20=20TMS=E7=B3=BB=E7=BB=9F=20-?= =?UTF-8?q?=20=E8=BF=90=E5=8D=95=E5=BD=95=E5=85=A5/=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9/=E7=BD=91=E7=82=B9=E8=B4=B9=E7=94=A8?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=20-=20=E7=BA=BF=E8=B7=AF=E4=B8=BA=E6=B5=B7?= =?UTF-8?q?=E8=BF=90=E7=9A=84=E4=BA=A7=E5=93=81=20=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/emis/domain/EmisWaybillOther.java | 4 ++ .../erp/emis/domain/vo/WaybillOrder.java | 1 + .../service/impl/EmisWaybillServiceImpl.java | 43 ++++++++++++++++++- .../resources/mapper/EmisWaybillMapper.xml | 3 ++ .../mapper/EmisWaybillOtherMapper.xml | 5 +++ 5 files changed, 55 insertions(+), 1 deletion(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybillOther.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybillOther.java index 343ee06ff..f29ae3c69 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybillOther.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybillOther.java @@ -55,6 +55,10 @@ public class EmisWaybillOther extends BaseEntity { /* 现金客户公司名称 */ private String moneyCompany; + /* 柜数 */ + @DataAuditField(fieldComment = "柜数") + private Long cabinetNumber; + // /* 回款回款人 */ // private String payee; // /* 销售联系人 */ diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java index 7937d70c6..1ddb91323 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/WaybillOrder.java @@ -966,6 +966,7 @@ public class WaybillOrder implements Serializable { EmisWaybillOther waybillOther = new EmisWaybillOther(); waybillOther.setMoneyUserId(this.getWaybillOther().getMoneyUserId()); waybillOther.setSalesSupport(this.getWaybillOther().getSalesSupport()); + waybillOther.setCabinetNumber(this.getWaybillOther().getCabinetNumber()); dbWaybill.setWaybillOther(waybillOther); } 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 9d90d09f2..a4243d722 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 @@ -164,10 +164,11 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb * 保存或更新运单其他信息副表 * @param emisWaybillSave */ - private void saveOrUpdateWaybillOther(EmisWaybill emisWaybillSave) { + private void saveOrUpdateWaybillOther(EmisWaybill emisWaybillSave) throws EmisBizError { if (emisWaybillSave == null || emisWaybillSave.getId() == null) { return; } + validateCabinetNumberRule(emisWaybillSave, null); String billCode = emisWaybillSave.getBillCode(); Long waybillId = emisWaybillSave.getId(); @@ -175,15 +176,20 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb // 从waybillOther中获取moneyUserId Long moneyUserId = null; String salesSupport = null; + Long cabinetNumber = 0L; if (emisWaybillSave.getWaybillOther() != null) { moneyUserId = emisWaybillSave.getWaybillOther().getMoneyUserId(); salesSupport = emisWaybillSave.getWaybillOther().getSalesSupport(); + cabinetNumber = emisWaybillSave.getWaybillOther().getCabinetNumber(); if (moneyUserId == null) { moneyUserId = 0L; } if (salesSupport == null) { salesSupport =""; } + if (cabinetNumber == null) { + cabinetNumber = 0L; + } } // 查询是否已存在 @@ -194,6 +200,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb existing.setSalesSupport(salesSupport); existing.setBillCode(billCode); existing.setMoneyUserId(moneyUserId); + existing.setCabinetNumber(cabinetNumber); existing.preUpdate(); emisWaybillOtherMapper.updateEmisWaybillOther(existing); } else { @@ -203,11 +210,44 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb waybillOtherEntity.setBillCode(billCode); waybillOtherEntity.setSalesSupport(salesSupport); waybillOtherEntity.setMoneyUserId(moneyUserId); + waybillOtherEntity.setCabinetNumber(cabinetNumber); waybillOtherEntity.preInsert(); emisWaybillOtherMapper.insertEmisWaybillOther(waybillOtherEntity); } } + private void validateCabinetNumberRule(EmisWaybill emisWaybillSave, String productName) throws EmisBizError { + if (emisWaybillSave == null) { + return; + } + if (emisWaybillSave.getWaybillOther() == null) { + emisWaybillSave.setWaybillOther(new EmisWaybillOther()); + } + Long cabinetNumber = emisWaybillSave.getWaybillOther().getCabinetNumber(); + if (cabinetNumber == null) { + cabinetNumber = 0L; + emisWaybillSave.getWaybillOther().setCabinetNumber(0L); + } + + String currentProductName = productName; + if (StringUtils.isBlank(currentProductName) && StringUtils.isNotBlank(emisWaybillSave.getProductType())) { + EmisTransProduct transProduct = getTransProductByCode(emisWaybillSave.getProductType()); + if (transProduct != null) { + currentProductName = transProduct.getProdName(); + } + } + + if (StringUtils.isBlank(currentProductName)) { + return; + } + if (currentProductName.contains("拼箱") && cabinetNumber.longValue() != 0L) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "海运拼箱,柜数必须为0"); + } + if (currentProductName.contains("整柜") && cabinetNumber.longValue() < 1L) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "海运整柜,柜数必须为大于等于1的整数"); + } + } + /** * 获取稽核数据 * @param id @@ -974,6 +1014,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb if(transProduct==null){ throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "产品不正确"); } +// validateCabinetNumberRule(emisWaybillSave, transProduct.getProdName()); emisWaybillSave.setProductType(transProduct.getProdCode()); // 收件国家省市区转换 diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index bda3ccd56..24ef7a4ae 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -265,6 +265,7 @@ + @@ -370,6 +371,7 @@ wss.sales_support as waybill_other_sales_support, COALESCE(wss.money_user_id, a3.money_user_id) as waybill_other_money_user_id, COALESCE(mu.company, mu2.company) as waybill_other_money_company, + IFNULL(wss.cabinet_number, 0) as waybill_other_cabinet_number, p.emp_name as dispatch_man_name,q.site_name as print_site_name, r.emp_name as print_man_name, @@ -484,6 +486,7 @@ wss.sales_support as waybill_other_sales_support, COALESCE(wss.money_user_id, a3.money_user_id) as waybill_other_money_user_id, COALESCE(mu.company, mu2.company) as waybill_other_money_company, + IFNULL(wss.cabinet_number, 0) as waybill_other_cabinet_number, a3.sales_executive , a3.customer_type as customer_type, a3.main_user_id , diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillOtherMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillOtherMapper.xml index fbcc3b8ab..13b6c88f6 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillOtherMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillOtherMapper.xml @@ -11,6 +11,7 @@ + @@ -21,6 +22,7 @@ a.sales_support, a.money_user_id, mu.company as money_company, + a.cabinet_number, a.del_flag, a.create_by, a.create_time, @@ -57,6 +59,7 @@ bill_code, sales_support, money_user_id, + cabinet_number, del_flag, create_by, create_time, @@ -71,6 +74,7 @@ #{billCode}, #{salesSupport}, #{moneyUserId}, + #{cabinetNumber}, #{delFlag}, #{createBy}, #{createTime}, @@ -89,6 +93,7 @@ bill_code = #{billCode}, sales_support = #{salesSupport}, money_user_id = #{moneyUserId}, + cabinet_number = #{cabinetNumber}, del_flag = #{delFlag}, update_by = #{updateBy}, update_time = #{updateTime},