From 5415a861612624ae64732c91ab7323e99ec9a43c Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Mon, 25 Aug 2025 15:22:06 +0800
Subject: [PATCH] =?UTF-8?q?demand:=20tms/app=E8=BF=90=E5=8D=95=E5=BD=95?=
=?UTF-8?q?=E5=85=A5=E3=80=81=E8=BF=90=E5=8D=95=E4=BF=AE=E6=94=B9=E3=80=81?=
=?UTF-8?q?=E8=BF=90=E5=8D=95=E6=89=B9=E9=87=8F=E5=BD=95=E5=85=A5=E3=80=81?=
=?UTF-8?q?=E7=BD=91=E7=82=B9=E8=B4=B9=E7=94=A8=E7=94=B3=E8=AF=B7=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E5=BD=95=E5=85=A5=E4=BC=81=E4=B8=9A=E5=90=8D=E7=A7=B0?=
=?UTF-8?q?=E3=80=81=E4=BC=81=E4=B8=9A=E7=A8=8E=E5=8F=B7=E7=9A=84=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD=20=20tms/app=E8=BF=90=E5=8D=95=E5=BD=95=E5=85=A5?=
=?UTF-8?q?=E3=80=81=E8=BF=90=E5=8D=95=E4=BF=AE=E6=94=B9=E3=80=81=E8=BF=90?=
=?UTF-8?q?=E5=8D=95=E6=89=B9=E9=87=8F=E5=BD=95=E5=85=A5=E3=80=81=E7=BD=91?=
=?UTF-8?q?=E7=82=B9=E8=B4=B9=E7=94=A8=E7=94=B3=E8=AF=B7=E5=BD=95=E5=85=A5?=
=?UTF-8?q?=E4=BC=81=E4=B8=9A=E5=90=8D=E7=A7=B0=E3=80=81=E4=BC=81=E4=B8=9A?=
=?UTF-8?q?=E7=A8=8E=E5=8F=B7=E5=90=8E=E8=87=AA=E5=8A=A8=E5=90=8C=E6=AD=A5?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0/=E6=96=B0=E5=A2=9E=E5=88=B0=E5=AF=84?=
=?UTF-8?q?=E4=BB=B6=E4=BA=BA=E4=BF=A1=E6=81=AF=20=20=20tms-=E5=AE=A2?=
=?UTF-8?q?=E6=88=B7=E7=AE=A1=E7=90=86-=E5=AF=84=E4=BB=B6=E4=BA=BA?=
=?UTF-8?q?=E5=9C=B0=E5=9D=80-=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE?=
=?UTF-8?q?=E4=BC=81=E4=B8=9A=E5=90=8D=E7=A7=B0=E3=80=81=E4=BC=81=E4=B8=9A?=
=?UTF-8?q?=E7=A8=8E=E5=8F=B7=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2=E7=9A=84?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=9F=A5=E8=AF=A2=E8=BF=94=E5=9B=9E?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BC=81=E4=B8=9A=E5=90=8D=E7=A7=B0=E3=80=81?=
=?UTF-8?q?=E4=BC=81=E4=B8=9A=E7=A8=8E=E5=8F=B7=EF=BC=8C=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E6=B7=BB=E5=8A=A0=E4=BC=81?=
=?UTF-8?q?=E4=B8=9A=E5=90=8D=E7=A7=B0=E3=80=81=E4=BC=81=E4=B8=9A=E7=A8=8E?=
=?UTF-8?q?=E5=8F=B7=E7=9A=84=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
committer: heyu
---
.../erp/emis/domain/EmisCustomerAddress.java | 5 +
.../xdadan/erp/emis/domain/EmisWaybill.java | 4 +
.../com/xdadan/erp/emis/domain/vo/Sender.java | 4 +
.../erp/emis/domain/vo/WaybillOrder.java | 2 +
.../mapper/EmisCustomerAddressMapper.java | 34 ++++---
.../erp/emis/service/EmisBaseService.java | 95 +++++++++++++++++++
.../service/impl/EmisWaybillServiceImpl.java | 4 +-
.../mapper/EmisCustomerAddressMapper.xml | 53 ++++++++++-
8 files changed, 183 insertions(+), 18 deletions(-)
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCustomerAddress.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCustomerAddress.java
index 08fca3ce8..b6c3eeb35 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCustomerAddress.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCustomerAddress.java
@@ -83,4 +83,9 @@ public class EmisCustomerAddress extends BaseEntity
/* 使用站点名称 */
private String useSiteName;
+ /* 企业名称 */
+ private String enterpriseName;
+ /* 企业税号 */
+ private String enterpriseTaxId;
+
}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybill.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybill.java
index 8742ac8c2..86ad03f09 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybill.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisWaybill.java
@@ -156,6 +156,10 @@ public class EmisWaybill extends BaseEntity
private String sendPostcode;
/* 发件人省市区名称,逗号分隔 */
private String sendPcd;
+ /* 企业名称 */
+ private String enterpriseName;
+ /* 企业税号 */
+ private String enterpriseTaxId;
/* 支付方式 : 现金或月结 */
@TableField
@DataAuditField(fieldComment = "支付方式",dictType="emis_payment_type")
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/Sender.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/Sender.java
index fd9999534..16e26be9a 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/Sender.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/vo/Sender.java
@@ -41,4 +41,8 @@ public class Sender implements Serializable {
private String email;
/* 公司 */
private String company;
+ /* 企业名称 */
+ private String enterpriseName;
+ /* 企业税号 */
+ private String enterpriseTaxId;
}
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 f36fe3f16..4f716dd96 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
@@ -785,6 +785,8 @@ public class WaybillOrder implements Serializable {
dbWaybill.setSendAddress(sender.getAddress());
dbWaybill.setSendPostcode(sender.getPostCode());
dbWaybill.setSendCompany(sender.getCompany());
+ dbWaybill.setEnterpriseName(sender.getEnterpriseName());
+ dbWaybill.setEnterpriseTaxId(sender.getEnterpriseTaxId());
}
dbWaybill.setPaymentType(this.getPaymentType());
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCustomerAddressMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCustomerAddressMapper.java
index 4fba65f87..a85a83bb7 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCustomerAddressMapper.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCustomerAddressMapper.java
@@ -1,10 +1,10 @@
-/**
+/**
* @Project: emis
* @Title: EmisCustomerAddressMapper.java
* @author linfso
* @date 2024-03-01 04:47:51
* @Copyright: ShangHai Doitinfo 2022 All rights reserved.
- * @version v1.0
+ * @version v1.0
* @Description:
客户收寄件地址 Mapper 接口
* Warning : This file is generate by ai tools,don't edit!!!
*/
@@ -30,31 +30,31 @@ public interface EmisCustomerAddressMapper extends BaseMapper selectEmisCustomerAddressList(EmisCustomerAddress emisCustomerAddress);
/**
- * 新增
- *
+ * 新增
+ *
* @param emisCustomerAddress
- * @return
+ * @return
*/
public int insertEmisCustomerAddress(EmisCustomerAddress emisCustomerAddress);
/**
* 修改
- *
- * @param emisCustomerAddress
- * @return
+ *
+ * @param emisCustomerAddress
+ * @return
*/
public int updateEmisCustomerAddress(EmisCustomerAddress emisCustomerAddress);
@@ -62,7 +62,7 @@ public interface EmisCustomerAddressMapper extends BaseMapper checkAndQuery(EmisCustomerAddress emisCustomerAddress);
+
/**
* 查询重复的地址,并且给客户打上标签
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 e82d5241a..6ede46819 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
@@ -3552,6 +3552,58 @@ public class EmisBaseService {
}
+ /**
+ * 根据添加的地址增加客户
+ *
+ * @param emisCustomerAddressNew
+ * @return
+ */
+ public int createCustomerAddressNew(EmisCustomerAddress emisCustomerAddressNew) throws EmisBizError {
+
+ if ("2".equals(emisCustomerAddressNew.getAddressType())) {
+ if ("0086".equals(emisCustomerAddressNew.getCounty())) {
+ if (StringUtil.isBlank(emisCustomerAddressNew.getEnterpriseTaxId()) || StringUtil.isBlank(emisCustomerAddressNew.getEnterpriseName())) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "企业名称/企业税号不能为空");
+ }
+ // 验证企业名称格式
+ if (!validateEnterpriseName(emisCustomerAddressNew.getEnterpriseName())) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "企业名称不能包含空格、回车、@、#、$、%、&、数字等特殊符号");
+ }
+
+ // 验证企业税号格式
+ if (!validateEnterpriseTaxId(emisCustomerAddressNew.getEnterpriseTaxId())) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "企业税号必须为8-18位数字和大写字母组成,不能包含汉字、空格等特殊符号");
+ }
+ } else {
+ emisCustomerAddressNew.setEnterpriseName(null);
+ emisCustomerAddressNew.setEnterpriseTaxId(null);
+ }
+ } else {
+ emisCustomerAddressNew.setEnterpriseName(null);
+ emisCustomerAddressNew.setEnterpriseTaxId(null);
+ }
+ List emisCustomerAddressList = emisCustomerAddressMapper.checkAndQuery(emisCustomerAddressNew);
+ if (CollectionUtil.isEmpty(emisCustomerAddressList)) {
+ // 不重复的情况则 创建地址
+ return emisCustomerAddressMapper.insertEmisCustomerAddress(emisCustomerAddressNew);
+ } else {
+ if ("2".equals(emisCustomerAddressNew.getAddressType()) && "0086".equals(emisCustomerAddressNew.getCounty())) {
+ List emisCustomerAddressIds = emisCustomerAddressList.stream().filter(i -> (StringUtil.isBlank(i.getEnterpriseTaxId()) || StringUtil.isBlank(i.getEnterpriseName()))).map(EmisCustomerAddress::getId).collect(Collectors.toList());
+ if (CollectionUtil.isEmpty(emisCustomerAddressIds)) {
+ return 1;
+ }
+ for (Long id : emisCustomerAddressIds) {
+ EmisCustomerAddress emisCustomerAddress = new EmisCustomerAddress();
+ emisCustomerAddress.setId(id);
+ emisCustomerAddress.setEnterpriseTaxId(emisCustomerAddressNew.getEnterpriseTaxId());
+ emisCustomerAddress.setEnterpriseName(emisCustomerAddressNew.getEnterpriseName());
+ emisCustomerAddressMapper.updateEmisCustomerAddress(emisCustomerAddress);
+ }
+ }
+ }
+
+ return 1;
+ }
/**
* 根据添加的地址增加客户
@@ -3572,6 +3624,49 @@ public class EmisBaseService {
return 1;
}
+ /**
+ * 验证企业名称格式
+ * 不允许包含空格、回车、@、#、$、%、&、数字等特殊符号
+ */
+ public boolean validateEnterpriseName(String enterpriseName) {
+ if (com.xdadan.erp.common.utils.StringUtils.isEmpty(enterpriseName)) {
+ return false;
+ }
+
+ // 检查是否包含不允许的字符
+ String invalidChars = " @#$%&0123456789";
+ for (char c : invalidChars.toCharArray()) {
+ if (enterpriseName.contains(String.valueOf(c))) {
+ return false;
+ }
+ }
+
+ // 检查是否包含回车符
+ if (enterpriseName.contains("\n") || enterpriseName.contains("\r")) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * 验证企业税号格式
+ * 8-18位数组成,由数字和大写字母组成,不允许有汉字、空格等特殊符号
+ */
+ public boolean validateEnterpriseTaxId(String enterpriseTaxId) {
+ if (com.xdadan.erp.common.utils.StringUtils.isEmpty(enterpriseTaxId)) {
+ return false;
+ }
+
+ // 检查长度
+ if (enterpriseTaxId.length() < 8 || enterpriseTaxId.length() > 18) {
+ return false;
+ }
+
+ // 检查是否只包含数字和大写字母
+ return enterpriseTaxId.matches("^[0-9A-Z]+$");
+ }
+
/**
* 获取线路
* @param code
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 7f9ddcd8e..3b6234eb1 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
@@ -2510,6 +2510,8 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
sendAddress.setUseSiteCode(emisWaybillSave.getSendSiteCode());
sendAddress.setAddressType("1");
+ sendAddress.setEnterpriseName(emisWaybillSave.getEnterpriseName());
+ sendAddress.setEnterpriseTaxId(emisWaybillSave.getEnterpriseTaxId());
// 收件地址
EmisCustomerAddress recieveAddress = new EmisCustomerAddress();
@@ -2626,7 +2628,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
}
// 保存客户收件、寄件地址,开单不要关联客户地址数据
- createCustomerAddress(sendAddress);
+ createCustomerAddressNew(sendAddress);
createCustomerAddress(recieveAddress);
emisWaybillSave.setCustomerCode(customerCode);
diff --git a/emis-biz/src/main/resources/mapper/EmisCustomerAddressMapper.xml b/emis-biz/src/main/resources/mapper/EmisCustomerAddressMapper.xml
index 749f7dbf2..4439efaa1 100644
--- a/emis-biz/src/main/resources/mapper/EmisCustomerAddressMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisCustomerAddressMapper.xml
@@ -27,6 +27,8 @@
+
+
@@ -38,7 +40,7 @@
- select id, user_id, customer_code, short_name, alias, address_type, country, name, phone, province, city, county, town, address, post_code, email, company, bl_default_flag, order_num, bl_site_default_flag, use_site, use_site_code, del_flag, create_by, create_time, update_by, update_time, remark, create_site, update_site from emis_customer_address
+ select id, user_id, customer_code, short_name, alias, address_type, country, name, phone, province, city, county, town, address, post_code, email, company, bl_default_flag, order_num, bl_site_default_flag, use_site, use_site_code, enterprise_name, enterprise_tax_id, del_flag, create_by, create_time, update_by, update_time, remark, create_site, update_site from emis_customer_address
@@ -63,6 +65,8 @@
and post_code like concat('%', #{postCode}, '%')
and email like concat('%', #{email}, '%')
and company like concat('%', #{company}, '%')
+ and enterprise_name like concat('%', #{enterpriseName}, '%')
+ and enterprise_tax_id like concat('%', #{enterpriseTaxId}, '%')
and bl_default_flag = #{blDefaultFlag}
and order_num like concat('%', #{orderNum}, '%')
and bl_site_default_flag like concat('%', #{blSiteDefaultFlag}, '%')
@@ -79,7 +83,7 @@
and FIND_IN_SET(use_site_code, #{useSiteCode})
- and ( name like concat('%',#{searchValue}, '%') or phone like concat('%',#{searchValue}, '%') or company like concat('%',#{searchValue}, '%') )
+ and ( name like concat('%',#{searchValue}, '%') or phone like concat('%',#{searchValue}, '%') or company like concat('%',#{searchValue}, '%') or enterprise_name like concat('%',#{searchValue}, '%') or enterprise_tax_id like concat('%',#{searchValue}, '%') )
@@ -87,7 +91,7 @@
@@ -116,6 +120,8 @@
bl_site_default_flag,
use_site,
use_site_code,
+ enterprise_name,
+ enterprise_tax_id,
del_flag,
create_by,
create_time,
@@ -147,6 +153,8 @@
#{blSiteDefaultFlag},
#{useSite},
#{useSiteCode},
+ #{enterpriseName},
+ #{enterpriseTaxId},
#{delFlag},
#{createBy},
#{createTime},
@@ -179,6 +187,8 @@
bl_default_flag = #{blDefaultFlag},
order_num = #{orderNum},
bl_site_default_flag = #{blSiteDefaultFlag},
+ enterprise_name = #{enterpriseName},
+ enterprise_tax_id = #{enterpriseTaxId},
use_site = #{useSite},
use_site_code = #{useSiteCode},
del_flag = #{delFlag},
@@ -237,6 +247,12 @@
and company = #{company}
and company is null
+ and enterprise_name = #{enterpriseName}
+ and enterprise_name is null
+
+ and enterprise_tax_id = #{enterpriseTaxId}
+ and enterprise_tax_id is null
+
and address_type = #{addressType}
and customer_code is null
@@ -266,5 +282,34 @@
limit 1
+
+
+
+