From 96119ca3973d5ea643db6a87b6a23fe404ddb8cc Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期一, 29 六月 2026 15:35:40 +0800
Subject: [PATCH] feat:合同编号规则调整 出库编号规则调整
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java | 143 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 141 insertions(+), 2 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
index 954cc14..05fb704 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/OutBoundServiceImpl.java
@@ -17,6 +17,8 @@
import com.by4cloud.platformx.common.security.util.SecurityUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@@ -41,6 +43,22 @@
private final ContractPaymentScheduleProcessMapper scheduleProcessMapper;
private final ContractOutBoundMapper contractOutBoundMapper;
private final DeliveryOverdueMapper deliveryOverdueMapper;
+ private final StringRedisTemplate redisTemplate;
+
+ @Value("${dept.smj}")
+ private String smj;
+
+ @Value("${dept.sgb}")
+ private String sgb;
+
+ @Value("${dept.jxc}")
+ private String jxc;
+
+ @Value("${dept.tfgs}")
+ private String tfgs;
+
+ @Value("${dept.ymj}")
+ private String ymj;
@Override
public R add(OutBoundAddDTO addDTO) {
@@ -82,7 +100,21 @@
//鍑哄簱
addDTO.getSubjectMatterList().stream().forEach(outSubjectMatterAddDTO -> {
OutBound outBound = BeanUtil.copyProperties(outSubjectMatterAddDTO, OutBound.class);
- outBound.setBatchNumber(batchNumber);
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)){
+ outBound.setBatchNumber(generateSMJContractNo());
+ }
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",sgb)){
+ outBound.setBatchNumber(generateGYBContractNo());
+ }
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",ymj)){
+ outBound.setBatchNumber(generateYMJContractNo());
+ }
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",tfgs)){
+ outBound.setBatchNumber(generateTFContractNo());
+ }
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",jxc)){
+ outBound.setBatchNumber(generateJXCContractNo());
+ }
outBound.setBusGuestName(addDTO.getBusGuestName());
outBound.setBusGuestId(addDTO.getBusGuestId());
outBound.setOutBoundTime(addDTO.getOutBoundTime());
@@ -451,7 +483,21 @@
contractSubjectMatterMapper.updateById(subjectMatter);
//
OutBound outBound = new OutBound();
- outBound.setBatchNumber(batchNumber);
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",smj)){
+ outBound.setBatchNumber(generateSMJContractNo());
+ }
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",sgb)){
+ outBound.setBatchNumber(generateGYBContractNo());
+ }
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",ymj)){
+ outBound.setBatchNumber(generateYMJContractNo());
+ }
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",tfgs)){
+ outBound.setBatchNumber(generateTFContractNo());
+ }
+ if (StrUtil.equals(SecurityUtils.getUser().getCompId()+"",jxc)){
+ outBound.setBatchNumber(generateJXCContractNo());
+ }
outBound.setOutBoundNum(outSubjectMatterAddDTO.getOutBoundNum());
outBound.setOutBoundAttNames(addDTO.getOutBoundAttNames());
outBound.setOutBoundAttPaths(addDTO.getOutBoundAttPaths());
@@ -676,4 +722,97 @@
}
return R.ok();
}
+
+ /**
+ * 鐢熸垚鏍煎紡涓�: yyyyMMdd + 4浣嶅簭鍒楀彿 (渚嬪: 20260629000001)
+ */
+ public String generateSMJContractNo() {
+ // 1. 鑾峰彇褰撳墠鏃ユ湡瀛楃涓�
+ String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
+
+ // 2. 鏋勫缓 Redis Key锛屾寜澶╅殧绂伙紝渚嬪: order:no:20260629
+ String key = "ZB-SMJ-CK:" + dateStr;
+
+ // 3. Redis 鍘熷瓙閫掑锛岃缃繃鏈熸椂闂翠负2澶╋紙闃叉Key鍫嗙Н锛屽悓鏃惰鐩栬法澶╄竟鐣屾儏鍐碉級
+ Long sequence = redisTemplate.opsForValue().increment(key, 1);
+ redisTemplate.expire(key, 1, java.util.concurrent.TimeUnit.DAYS);
+
+ // 4. 鏍煎紡鍖栧簭鍒楀彿锛屼笉瓒�6浣嶅墠琛�0
+ String seqStr = String.format("%04d", sequence);
+
+ // 5. 鎷兼帴杩斿洖
+ return "ZB-SMJ-CK-"+dateStr + seqStr;
+ }
+
+ public String generateYMJContractNo() {
+ // 1. 鑾峰彇褰撳墠鏃ユ湡瀛楃涓�
+ String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
+
+ // 2. 鏋勫缓 Redis Key锛屾寜澶╅殧绂伙紝渚嬪: order:no:20260629
+ String key = "ZB-YMJ-CK:" + dateStr;
+
+ // 3. Redis 鍘熷瓙閫掑锛岃缃繃鏈熸椂闂翠负2澶╋紙闃叉Key鍫嗙Н锛屽悓鏃惰鐩栬法澶╄竟鐣屾儏鍐碉級
+ Long sequence = redisTemplate.opsForValue().increment(key, 1);
+ redisTemplate.expire(key, 1, java.util.concurrent.TimeUnit.DAYS);
+
+ // 4. 鏍煎紡鍖栧簭鍒楀彿锛屼笉瓒�6浣嶅墠琛�0
+ String seqStr = String.format("%04d", sequence);
+
+ // 5. 鎷兼帴杩斿洖
+ return "ZB-YMJ-CK-"+dateStr + seqStr;
+ }
+
+ public String generateJXCContractNo() {
+ // 1. 鑾峰彇褰撳墠鏃ユ湡瀛楃涓�
+ String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
+
+ // 2. 鏋勫缓 Redis Key锛屾寜澶╅殧绂伙紝渚嬪: order:no:20260629
+ String key = "ZB-JXC-CK:" + dateStr;
+
+ // 3. Redis 鍘熷瓙閫掑锛岃缃繃鏈熸椂闂翠负2澶╋紙闃叉Key鍫嗙Н锛屽悓鏃惰鐩栬法澶╄竟鐣屾儏鍐碉級
+ Long sequence = redisTemplate.opsForValue().increment(key, 1);
+ redisTemplate.expire(key, 1, java.util.concurrent.TimeUnit.DAYS);
+
+ // 4. 鏍煎紡鍖栧簭鍒楀彿锛屼笉瓒�6浣嶅墠琛�0
+ String seqStr = String.format("%04d", sequence);
+
+ // 5. 鎷兼帴杩斿洖
+ return "ZB-JXC-CK-"+dateStr + seqStr;
+ }
+
+ public String generateTFContractNo() {
+ // 1. 鑾峰彇褰撳墠鏃ユ湡瀛楃涓�
+ String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
+
+ // 2. 鏋勫缓 Redis Key锛屾寜澶╅殧绂伙紝渚嬪: order:no:20260629
+ String key = "ZB-TF-CK:" + dateStr;
+
+ // 3. Redis 鍘熷瓙閫掑锛岃缃繃鏈熸椂闂翠负2澶╋紙闃叉Key鍫嗙Н锛屽悓鏃惰鐩栬法澶╄竟鐣屾儏鍐碉級
+ Long sequence = redisTemplate.opsForValue().increment(key, 1);
+ redisTemplate.expire(key, 1, java.util.concurrent.TimeUnit.DAYS);
+
+ // 4. 鏍煎紡鍖栧簭鍒楀彿锛屼笉瓒�6浣嶅墠琛�0
+ String seqStr = String.format("%04d", sequence);
+
+ // 5. 鎷兼帴杩斿洖
+ return "ZB-TF-CK-"+dateStr + seqStr;
+ }
+
+ public String generateGYBContractNo() {
+ // 1. 鑾峰彇褰撳墠鏃ユ湡瀛楃涓�
+ String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
+
+ // 2. 鏋勫缓 Redis Key锛屾寜澶╅殧绂伙紝渚嬪: order:no:20260629
+ String key = "ZB-GYB-CK:" + dateStr;
+
+ // 3. Redis 鍘熷瓙閫掑锛岃缃繃鏈熸椂闂翠负2澶╋紙闃叉Key鍫嗙Н锛屽悓鏃惰鐩栬法澶╄竟鐣屾儏鍐碉級
+ Long sequence = redisTemplate.opsForValue().increment(key, 1);
+ redisTemplate.expire(key, 1, java.util.concurrent.TimeUnit.DAYS);
+
+ // 4. 鏍煎紡鍖栧簭鍒楀彿锛屼笉瓒�6浣嶅墠琛�0
+ String seqStr = String.format("%04d", sequence);
+
+ // 5. 鎷兼帴杩斿洖
+ return "ZB-GYB-CK-"+dateStr + seqStr;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1