From 6e62e3a4d955a3e298a6dc598617cddb63854964 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 01 六月 2026 14:01:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_新疆马铃薯pro' into dev_新疆马铃薯pro
---
src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java | 23 ++++++++---
src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java | 3 +
src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java | 7 ++-
src/main/java/com/ruoyi/approve/bean/dto/ApprovalInstanceDto.java | 5 ++
src/main/resources/mapper/sales/ShippingInfoMapper.xml | 1
src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java | 3 -
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 15 +++++++
src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java | 4 ++
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java | 1
9 files changed, 52 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/bean/dto/ApprovalInstanceDto.java b/src/main/java/com/ruoyi/approve/bean/dto/ApprovalInstanceDto.java
index a2df482..b535e69 100644
--- a/src/main/java/com/ruoyi/approve/bean/dto/ApprovalInstanceDto.java
+++ b/src/main/java/com/ruoyi/approve/bean/dto/ApprovalInstanceDto.java
@@ -2,6 +2,8 @@
import com.ruoyi.approve.pojo.ApprovalInstance;
import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@@ -18,4 +20,7 @@
private String createTimeStart;
private List<StorageBlobDTO> storageBlobDTOs;
+
+ @Schema(description = "鍑哄簱鎵瑰彿")
+ private String outboundBatches;
}
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
index 5da3984..e0c7eae 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
@@ -682,8 +682,7 @@
private void handleShippingApprovalFinished(ApprovalInstance instance, String status) {
ShippingInfo shippingInfo = shippingInfoMapper.selectOne(
new LambdaQueryWrapper<ShippingInfo>()
- .eq(ShippingInfo::getId, instance.getTitle())
- .orderByDesc(ShippingInfo::getCreateTime)
+ .eq(ShippingInfo::getId, instance.getBusinessId())
.last("limit 1")
);
if (shippingInfo == null) {
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index 9b8735f..591c34c 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -143,12 +143,27 @@
* @param recordId
*/
public void substractStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
+ substractStock(productModelId, quantity, recordType, recordId, batchNo, null);
+ }
+
+ /**
+ * 鍚堟牸鍑哄簱锛堝甫鍑哄簱鎵瑰彿锛�
+ *
+ * @param productModelId
+ * @param quantity
+ * @param recordType
+ * @param recordId
+ * @param batchNo
+ * @param outboundBatches 鍑哄簱鎵瑰彿锛屽鏋滀负绌哄垯鑷姩鐢熸垚
+ */
+ public void substractStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String outboundBatches) {
StockInventoryDto stockInventoryDto = new StockInventoryDto();
stockInventoryDto.setRecordId(recordId);
stockInventoryDto.setRecordType(String.valueOf(recordType));
stockInventoryDto.setQualitity(quantity);
stockInventoryDto.setProductModelId(productModelId);
stockInventoryDto.setBatchNo(batchNo);
+ stockInventoryDto.setOutboundBatches(outboundBatches);
stockInventoryService.addStockOutRecordOnly(stockInventoryDto);
}
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
index a5616d8..3e06782 100644
--- a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
+++ b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
@@ -71,6 +71,10 @@
@Excel(name = "鍙戣揣杞︾墝鍙�")
private String shippingCarNumber;
+ @Schema(description = "鍑哄簱鎵瑰彿")
+ @Excel(name = "鍑哄簱鎵瑰彿")
+ private String outboundBatches;
+
@Schema(description = "鍒涘缓鏃堕棿")
private LocalDateTime createTime;
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 4e6ff58..dfa4a3a 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -142,11 +142,19 @@
@Override
public boolean add(ShippingInfoDto req) {
+ // 鏍¢獙outboundBatches鍞竴鎬�
+ if (req.getOutboundBatches() != null && !req.getOutboundBatches().isEmpty()) {
+ long count = this.count(new LambdaQueryWrapper<ShippingInfo>()
+ .eq(ShippingInfo::getOutboundBatches, req.getOutboundBatches()));
+ if (count > 0) {
+ throw new RuntimeException("鍑哄簱鎵瑰彿宸插瓨鍦紝璇烽噸鏂拌緭鍏�");
+ }
+ }
this.save(req);
req.getBatchNoDetailList().forEach(item -> item.setShippingInfoId(req.getId()));
shippingProductDetailMapper.insert(req.getBatchNoDetailList());
for (ShippingProductDetail shippingProductDetail : req.getBatchNoDetailList()) {
- stockUtils.substractStock(shippingProductDetail.getProductModelId(), shippingProductDetail.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId(), shippingProductDetail.getBatchNo());
+ stockUtils.substractStock(shippingProductDetail.getProductModelId(), shippingProductDetail.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId(), shippingProductDetail.getBatchNo(), req.getOutboundBatches());
}
// 淇濆瓨鏂囦欢
fileUtil.saveStorageAttachment(ApplicationTypeEnum.IMAGE, RecordTypeEnum.SHIPPING_INFO, req.getId(), req.getStorageBlobDTOs());
@@ -172,20 +180,23 @@
@Override
public boolean addReq(ShippingInfoDto req) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH","shipping_no",req.getCreateTime());
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ // 璁剧疆鍒涘缓鏃堕棿涓哄綋鍓嶆椂闂达紝纭繚缂栧彿鏌ヨ姝g‘
+ LocalDateTime now = LocalDateTime.now();
+ req.setCreateTime(now);
+ String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH", "shipping_no", now);
// 鍏堜繚瀛樺彂璐у崟锛屽啀鍙戣捣瀹℃壒锛涙棤瀹℃牳浜鸿嚜鍔ㄩ�氳繃鏃堕渶瑕佹寜鍙戣揣缂栧彿鍥炲啓鍙戣揣鐘舵�併��
req.setShippingNo(sh);
req.setStatus("寰呭鏍�");
boolean save = this.add(req);
// 鍙戣揣瀹℃壒
ApprovalInstanceDto approvalInstance = new ApprovalInstanceDto();
- approvalInstance.setTemplateId(approvalTemplateMapper.selectOne(new LambdaQueryWrapper<ApprovalTemplate>().eq(ApprovalTemplate::getBusinessType,7L).orderByDesc(ApprovalTemplate::getId).last("LIMIT 1")).getId());
- approvalInstance.setTemplateName(approvalTemplateMapper.selectOne(new LambdaQueryWrapper<ApprovalTemplate>().eq(ApprovalTemplate::getBusinessType,7L).orderByDesc(ApprovalTemplate::getId).last("LIMIT 1")).getTemplateName());
+ approvalInstance.setTemplateId(approvalTemplateMapper.selectOne(new LambdaQueryWrapper<ApprovalTemplate>().eq(ApprovalTemplate::getBusinessType, 7L).orderByDesc(ApprovalTemplate::getId).last("LIMIT 1")).getId());
+ approvalInstance.setTemplateName(approvalTemplateMapper.selectOne(new LambdaQueryWrapper<ApprovalTemplate>().eq(ApprovalTemplate::getBusinessType, 7L).orderByDesc(ApprovalTemplate::getId).last("LIMIT 1")).getTemplateName());
approvalInstance.setBusinessId(req.getId());
approvalInstance.setBusinessType(7L);
approvalInstance.setCurrentLevel(1);
- approvalInstance.setTitle(sh+"瀹℃壒");
+ approvalInstance.setTitle(sh + "瀹℃壒");
approvalInstance.setApplicantId(loginUser.getUserId());
approvalInstance.setApplicantName(loginUser.getNickName());
approvalInstance.setApplyTime(LocalDateTime.now());
diff --git a/src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java b/src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java
index 33b7599..756d28e 100644
--- a/src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java
+++ b/src/main/java/com/ruoyi/stock/dto/StockInventoryDto.java
@@ -80,4 +80,7 @@
@Schema(description = "浜у搧id")
private Long productId;
+
+ @Schema(description = "鍑哄簱鎵瑰彿")
+ private String outboundBatches;
}
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index fa76bc7..5dc8d4a 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -292,6 +292,7 @@
stockOutRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
stockOutRecordDto.setType("0");
stockOutRecordDto.setRemark(stockInventoryDto.getRemark());
+ stockOutRecordDto.setOutboundBatches(stockInventoryDto.getOutboundBatches());
stockOutRecordService.add(stockOutRecordDto);
return true;
}
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
index 26f0c2d..c5d1109 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
@@ -60,8 +60,11 @@
@Override
public int add(StockOutRecordDto stockOutRecordDto) {
- String no = OrderUtils.countTodayByCreateTime(stockOutRecordMapper, "CK","outbound_batches", stockOutRecordDto.getCreateTime() != null ? stockOutRecordDto.getCreateTime() : LocalDateTime.now());
- stockOutRecordDto.setOutboundBatches(no);
+ // 濡傛灉浼犲叆浜唎utboundBatches鍒欎娇鐢紝鍚﹀垯鑷姩鐢熸垚
+ if (stockOutRecordDto.getOutboundBatches() == null || stockOutRecordDto.getOutboundBatches().isEmpty()) {
+ String no = OrderUtils.countTodayByCreateTime(stockOutRecordMapper, "CK","outbound_batches", stockOutRecordDto.getCreateTime() != null ? stockOutRecordDto.getCreateTime() : LocalDateTime.now());
+ stockOutRecordDto.setOutboundBatches(no);
+ }
if (StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode().equals(stockOutRecordDto.getRecordType())){
stockOutRecordDto.setApprovalStatus(3);
}
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 9021eb4..161b384 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -19,6 +19,7 @@
s.update_user,
s.tenant_id,
sl.sales_contract_no,
+ s.outbound_batches,
pm.model as specification_model,
pm.unit,
p.product_name,
--
Gitblit v1.9.3