demand: tms-统计报表-月结客户出货统计-查询销售出货详情bug修复 tms-运单管理-运单录入/运单批量导入-添加校验逻辑,主单号与虚拟单标识要么同时存在,要么同时为空

committer: heyu
This commit is contained in:
aike 2025-11-13 16:29:57 +08:00
parent 267eaceb49
commit 9429fbf687
2 changed files with 20 additions and 6 deletions

View File

@ -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){

View File

@ -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 @@
</if>
<!-- 销售主管 -->
<if test="salesExecutive != null and salesExecutive != ''">
AND a3.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
AND a4.sales_executive LIKE CONCAT('%', #{salesExecutive}, '%')
</if>
<!-- 销售支持 -->
<if test="salesSupport != null and salesSupport != ''">
AND a3.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
AND a4.sales_support LIKE CONCAT('%', #{salesSupport}, '%')
</if>
<!-- 销售联系人 -->
<if test="salesmen != null and salesmen != ''">
AND a3.salesmen LIKE CONCAT('%', #{salesmen}, '%')
AND a4.salesmen LIKE CONCAT('%', #{salesmen}, '%')
</if>
<!-- 运输方式筛选 -->
<if test="transType != null and transType != ''">