From 594a61bc09d59fed0b5f23045ab9de57c9a59a9a Mon Sep 17 00:00:00 2001 From: qiankanghui Date: Thu, 27 Aug 2026 17:43:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(srm):=20=E5=AE=8C=E5=96=84=E4=BE=9B?= =?UTF-8?q?=E5=BA=94=E5=95=86=E5=90=88=E5=90=8C=E7=BB=AD=E7=AD=BE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在字典维护服务中添加创建日期自动设置功能 - 实现合同续签时新有效期必须大于源有效期的校验逻辑 - 优化续签标记处理:根据新有效期是否为空决定续签标记状态 - 支持永久有效期合同的续签场景处理 --- .../Impl/BaseDictMaintenanceServiceImpl.java | 2 ++ .../service/impl/SrmSupplierServiceImpl.java | 26 ++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/xujie/modules/base/service/Impl/BaseDictMaintenanceServiceImpl.java b/src/main/java/com/xujie/modules/base/service/Impl/BaseDictMaintenanceServiceImpl.java index a91495d..fd5f351 100644 --- a/src/main/java/com/xujie/modules/base/service/Impl/BaseDictMaintenanceServiceImpl.java +++ b/src/main/java/com/xujie/modules/base/service/Impl/BaseDictMaintenanceServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Comparator; +import java.util.Date; import java.util.LinkedHashSet; import java.util.LinkedHashMap; import java.util.List; @@ -77,6 +78,7 @@ public class BaseDictMaintenanceServiceImpl implements BaseDictMaintenanceServic assertData(dictData, false); assertDefaultUnique(dictData, null); assertValueUnique(dictData, null); + dictData.setCreateDate(new Date()); if (!dictDataService.save(dictData)) { throw new RuntimeException("保存失败"); } diff --git a/src/main/java/com/xujie/modules/srm/service/impl/SrmSupplierServiceImpl.java b/src/main/java/com/xujie/modules/srm/service/impl/SrmSupplierServiceImpl.java index 9db092a..563dc84 100644 --- a/src/main/java/com/xujie/modules/srm/service/impl/SrmSupplierServiceImpl.java +++ b/src/main/java/com/xujie/modules/srm/service/impl/SrmSupplierServiceImpl.java @@ -168,14 +168,34 @@ public class SrmSupplierServiceImpl extends ServiceImpl oldList = srmSupplierMapper.getNewSupplierContract(queryData); + if (oldList != null && !oldList.isEmpty()) { + Date oldValidTo = oldList.get(0).getValidTo(); + if (oldValidTo != null && !data.getValidTo().after(oldValidTo)) { + throw new RuntimeException("续签的有效期必须大于源有效期!"); + } + } + } SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); data.setUpdateBy(currentUser.getUsername()); srmSupplierMapper.updateSupplierContract(data); - //如果renew标记是Y 那么就吧所有提醒关闭 + //如果renew标记是Y(续签保存):根据新的有效期是否有值来修改续签标记(新有效期为空表示改为永久有效,放行) if( "Y".equals(data.getRenewflag())){ - srmSupplierMapper.updateContractRequestStatus(data.getSite(),data.getContractId(),"已执行"); - srmSupplierMapper.updateContractRenewFlag(data.getSite(),data.getContractId(),"N"); + if (data.getValidTo() != null) { + // 有新有效期:本次续签完成,关闭提醒;标记保持Y,后续继续监控新有效期 + srmSupplierMapper.updateContractRequestStatus(data.getSite(),data.getContractId(),"已执行"); + srmSupplierMapper.updateContractRenewFlag(data.getSite(),data.getContractId(),"Y"); + } else { + // 无新有效期(改为永久有效):清除续签标记,同时关闭本次提醒 + srmSupplierMapper.updateContractRequestStatus(data.getSite(),data.getContractId(),"已执行"); + srmSupplierMapper.updateContractRenewFlag(data.getSite(),data.getContractId(),"N"); + } } }