From 9860c10c27906c2ed543e4e8ce1878576303598c Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Mon, 14 Jul 2025 15:00:58 +0800
Subject: [PATCH 1/2] =?UTF-8?q?demand:=20=20TMS=E7=B3=BB=E7=BB=9F=20-=20?=
=?UTF-8?q?=E6=8F=90=E6=88=90=E7=AE=A1=E7=90=86=20-=20=E5=91=98=E5=B7=A5?=
=?UTF-8?q?=E6=8F=90=E6=88=90=E6=96=B9=E6=A1=88=E9=85=8D=E7=BD=AE=20?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE=E6=97=A5=E6=9C=9F=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E5=8A=9F=E8=83=BD=20committer:=20heyu?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/resources/mapper/EmisCommissionQuoteMapper.xml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml b/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml
index 5c2c3d3df..44daa2b50 100644
--- a/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml
@@ -65,6 +65,13 @@
and trans_line_code=#{transLineCode}
and FIND_IN_SET(#{prodCode},prod_code)
+
+ and DATE(start_date) >= DATE(#{startDate})
+
+
+ and DATE(end_date) <= DATE(#{endDate})
+
+
order by create_time desc
From f5eb5d3e9ee0a0001142901515d9f098e193a868 Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Mon, 14 Jul 2025 16:05:28 +0800
Subject: [PATCH 2/2] =?UTF-8?q?demand:=20=20TMS=E7=B3=BB=E7=BB=9F=20-=20?=
=?UTF-8?q?=E6=8F=90=E6=88=90=E7=AE=A1=E7=90=86=20-=20=E5=91=98=E5=B7=A5?=
=?UTF-8?q?=E6=8F=90=E6=88=90=E6=96=B9=E6=A1=88=E9=85=8D=E7=BD=AE=20?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE=E6=97=A5=E6=9C=9F=E6=9F=A5?=
=?UTF-8?q?=E8=AF=A2=E5=8A=9F=E8=83=BD=20=20=20=20=E5=91=98=E5=B7=A5?=
=?UTF-8?q?=E6=8F=90=E6=88=90=E6=96=B9=E6=A1=88=E9=85=8D=E7=BD=AE=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E/=E4=BF=AE=E6=94=B9/=E6=89=B9=E9=87=8F=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=E5=A2=9E=E5=8A=A0=E9=AA=8C=E9=87=8D=E9=80=BB=E8=BE=91?=
=?UTF-8?q?=20committer:=20heyu?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../emis/EmisCommissionQuoteController.java | 18 ++++--
.../service/IEmisCommissionQuoteService.java | 4 +-
.../impl/EmisCommissionQuoteServiceImpl.java | 56 ++++++++++---------
.../mapper/EmisCommissionQuoteMapper.xml | 18 ++++++
4 files changed, 61 insertions(+), 35 deletions(-)
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionQuoteController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionQuoteController.java
index 81838a837..fdceb4a1a 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionQuoteController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionQuoteController.java
@@ -106,9 +106,12 @@ public class EmisCommissionQuoteController extends BaseController
@PreAuthorize("@ss.hasPermi('emis:emisCommissionQuote:add')")
@Log(title = "员工提成方案报价", businessType = BusinessType.INSERT)
@PostMapping
- public AjaxResult add(@RequestBody EmisCommissionQuote emisCommissionQuote)
- {
- return toAjax(emisCommissionQuoteService.insertEmisCommissionQuote(emisCommissionQuote));
+ public AjaxResult add(@RequestBody EmisCommissionQuote emisCommissionQuote) {
+ try {
+ return toAjax(emisCommissionQuoteService.insertEmisCommissionQuote(emisCommissionQuote));
+ } catch (EmisBizError e) {
+ return AjaxResult.error(e.getMessage(), e.getErrorCode());
+ }
}
/**
@@ -117,9 +120,12 @@ public class EmisCommissionQuoteController extends BaseController
@PreAuthorize("@ss.hasPermi('emis:emisCommissionQuote:edit')")
@Log(title = "员工提成方案报价", businessType = BusinessType.UPDATE)
@PutMapping
- public AjaxResult edit(@RequestBody EmisCommissionQuote emisCommissionQuote)
- {
- return toAjax(emisCommissionQuoteService.updateEmisCommissionQuote(emisCommissionQuote));
+ public AjaxResult edit(@RequestBody EmisCommissionQuote emisCommissionQuote) {
+ try {
+ return toAjax(emisCommissionQuoteService.updateEmisCommissionQuote(emisCommissionQuote));
+ } catch (EmisBizError e) {
+ return AjaxResult.error(e.getMessage(), e.getErrorCode());
+ }
}
/**
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCommissionQuoteService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCommissionQuoteService.java
index 252950967..be0faf66f 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCommissionQuoteService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCommissionQuoteService.java
@@ -51,7 +51,7 @@ public interface IEmisCommissionQuoteService
* @param emisCommissionQuote 员工提成方案报价
* @return 结果
*/
- public int insertEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote);
+ public int insertEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote) throws EmisBizError;
/**
* 修改员工提成方案报价
@@ -59,7 +59,7 @@ public interface IEmisCommissionQuoteService
* @param emisCommissionQuote 员工提成方案报价
* @return 结果
*/
- public int updateEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote);
+ public int updateEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote) throws EmisBizError;
/**
* 批量删除员工提成方案报价
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionQuoteServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionQuoteServiceImpl.java
index 079628e65..2b11a126a 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionQuoteServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionQuoteServiceImpl.java
@@ -76,6 +76,25 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
return emisCommissionQuoteMapper.checkUnique(emisCommissionQuote);
}
+ /**
+ * 公共验重方法,检查日期交叉和完全重复
+ *
+ * @param emisCommissionQuote 当前报价
+ * @throws EmisBizError 存在冲突时抛出
+ */
+ private void checkQuoteConflict(EmisCommissionQuote emisCommissionQuote) throws EmisBizError {
+ List overlapList = checkDateOverlap(emisCommissionQuote);
+ if (!overlapList.isEmpty()) {
+ StringBuilder errorMsg = new StringBuilder();
+ errorMsg.append("报价[").append(emisCommissionQuote.getQuoteName());
+ for (EmisCommissionQuote overlap : overlapList) {
+ errorMsg.append("\n- 与报价[").append(overlap.getQuoteName()).append("(ID:")
+ .append(overlap.getQuoteId()).append(")]重复");
+ }
+ throw new EmisBizError(EmisBizErrorType.EXISTS, errorMsg.toString());
+ }
+ }
+
/**
* 新增员工提成方案报价
*
@@ -83,8 +102,8 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
* @return 结果
*/
@Override
- public int insertEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote)
- {
+ public int insertEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote) throws EmisBizError {
+ checkQuoteConflict(emisCommissionQuote);
// 插入提成方案
emisCommissionQuoteMapper.insertEmisCommissionQuote(emisCommissionQuote);
@@ -107,8 +126,8 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
* @return 结果
*/
@Override
- public int updateEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote)
- {
+ public int updateEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote) throws EmisBizError {
+ checkQuoteConflict(emisCommissionQuote);
return emisCommissionQuoteMapper.updateEmisCommissionQuote(emisCommissionQuote);
}
@@ -208,26 +227,7 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
if (emisCommissionQuote.getPriorityLevel() == null) {
emisCommissionQuote.setPriorityLevel(dbQuote.getPriorityLevel());
}
-
- // 检查日期交叉重复
- List overlapList = checkDateOverlap(emisCommissionQuote);
- if (!overlapList.isEmpty()) {
- StringBuilder errorMsg = new StringBuilder();
- errorMsg.append("报价[").append(emisCommissionQuote.getQuoteName()).append("]存在冲突:");
-
- for (EmisCommissionQuote overlap : overlapList) {
- // 判断是否为完全重复
- boolean isDuplicate = isDuplicateQuote(emisCommissionQuote, overlap);
- if (isDuplicate) {
- errorMsg.append("\n- 与报价[").append(overlap.getQuoteName()).append("(ID:")
- .append(overlap.getQuoteId()).append(")]重复");
- } else {
- errorMsg.append("\n- 与报价[").append(overlap.getQuoteName()).append("(ID:")
- .append(overlap.getQuoteId()).append(")]日期交叉");
- }
- }
- throw new EmisBizError(EmisBizErrorType.EXISTS, errorMsg.toString());
- }
+ checkQuoteConflict(emisCommissionQuote);
// 更新数据
result += emisCommissionQuoteMapper.updateEmisCommissionQuote(emisCommissionQuote);
@@ -262,8 +262,10 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
StringUtils.equals(quote1.getPostType(), quote2.getPostType()) &&
StringUtils.equals(quote1.getTransType(), quote2.getTransType()) &&
StringUtils.equals(quote1.getFromCountry(), quote2.getFromCountry()) &&
- StringUtils.equals(quote1.getCountry(), quote2.getCountry())&&
- quote1.getStartDate()==quote2.getStartDate()&&
- quote1.getEndDate()==quote2.getEndDate();
+ StringUtils.equals(quote1.getCountry(), quote2.getCountry()) &&
+ StringUtils.equals(quote1.getTransLineCode(), quote2.getTransLineCode()) &&
+ StringUtils.equals(quote1.getProdCode(), quote2.getProdCode()) &&
+ quote1.getStartDate() == quote2.getStartDate() &&
+ quote1.getEndDate() == quote2.getEndDate();
}
}
diff --git a/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml b/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml
index 44daa2b50..437bd442c 100644
--- a/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisCommissionQuoteMapper.xml
@@ -260,7 +260,9 @@
del_flag='0'
+
and quote_id != #{quoteId}
+
and (
(start_date #{startDate} and #{startDate} end_date)
or
@@ -310,6 +312,22 @@
or country='-1'
)
+
+ and (
+ trans_line_code = #{transLineCode}
+ or FIND_IN_SET(#{transLineCode}, trans_line_code)
+ or FIND_IN_SET(trans_line_code, #{transLineCode})
+ or trans_line_code='-1'
+ )
+
+
+ and (
+ prod_code = #{prodCode}
+ or FIND_IN_SET(#{prodCode}, prod_code)
+ or FIND_IN_SET(prod_code, #{prodCode})
+ or prod_code='-1'
+ )
+
order by create_time desc