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 daf0165c4..62b933ce8 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 @@ -3174,17 +3174,17 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb if (StringUtils.isEmpty(billCode)) { throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "运单号不能为空"); } - + // 检查是否只包含数字、字母、横杠 if (!billCode.matches("^[0-9a-zA-Z\\-]+$")) { throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "运单号只能包含数字、字母和横杠"); } - + // 检查横杠是否在两端 if (billCode.startsWith("-") || billCode.endsWith("-")) { throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "运单号横杠不能在两端"); } - + // 检查是否有连续的横杠 if (billCode.contains("--")) { throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "运单号不能有连续的横杠"); @@ -3203,6 +3203,19 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb // 校验运单号格式 validateBillCodeFormat(emisWaybillSave.getBillCode()); + String blVirtual = emisWaybillSave.getBlVirtual(); + String masterBillCode = emisWaybillSave.getMasterBillCode(); + boolean masterBillCodeEmpty = StringUtils.isBlank(masterBillCode); + if (masterBillCodeEmpty) { + if ("1".equals(blVirtual)) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "主单号与虚拟单标识要么同时存在,要么同时为空"); + } + } else { + if (!"1".equals(blVirtual)) { + throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "主单号与虚拟单标识要么同时存在,要么同时为空"); + } + } + // 获取运单号,判断是不是子单已存在 boolean isExists = checkWaybillIsExists(emisWaybillSave.getBillCode()); if(isExists){ diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index b8d0d566a..23e22b9b8 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -391,6 +391,7 @@ left join emis_site a2 on a.destination_center_code=a2.site_code and a2.del_flag='0' left join emis_site start on a.start_site_code=start.site_code and start.del_flag='0' left join emis_customer_user a3 on a.customer_code=a3.customer_code and a3.del_flag='0' + left join emis_customer_user a4 on a.cust_no=a4.monthly_pay_code and a4.del_flag='0' left join emis_site seaway1 on a.departure_port=seaway1.site_code and seaway1.del_flag='0' left join emis_site seaway2 on a.destination_port=seaway2.site_code and seaway2.del_flag='0' @@ -4250,15 +4251,15 @@ - AND a3.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%') + AND a4.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%') - AND a3.sales_support LIKE CONCAT('%', #{salesSupport}, '%') + AND a4.sales_support LIKE CONCAT('%', #{salesSupport}, '%') - AND a3.salesmen LIKE CONCAT('%', #{salesmen}, '%') + AND a4.salesmen LIKE CONCAT('%', #{salesmen}, '%')