From d39e4f7d839167c16425086dfa2f8747bccfdff9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 十一月 2026 17:39:01 +0800
Subject: [PATCH] feat: 打通销售采购财务闭环并完成累计业务优化
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java | 28 ++++++++++++++++++----------
1 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java
index 63cd140..f08d468 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorServiceImpl.java
@@ -8,6 +8,7 @@
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.returnvendor.vo.MesWmReturnVendorPageReqVO;
@@ -32,8 +33,7 @@
import cn.iocoder.yudao.module.mes.service.wm.transaction.dto.MesWmTransactionSaveReqDTO;
import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi;
import jakarta.annotation.Resource;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@@ -55,6 +55,7 @@
*/
@Service
@Validated
+@Slf4j
public class MesWmReturnVendorServiceImpl implements MesWmReturnVendorService {
/**
@@ -201,9 +202,13 @@
@Transactional(rollbackFor = Exception.class)
public void submitReturnVendorApproval(Long id, String processDefinitionKey) {
// 1. 鏍¢獙瀛樺湪 + 鑽夌鐘舵�� + 鑷冲皯涓�鏉¤
- validateReturnVendorExistsAndPrepare(id);
+ MesWmReturnVendorDO returnVendor = validateReturnVendorExistsAndPrepare(id);
if (CollUtil.isEmpty(returnVendorLineService.getReturnVendorLineListByReturnId(id))) {
throw exception(WM_RETURN_VENDOR_NO_LINE);
+ }
+ // 1.1. 璐ㄩ噺閮ㄥ彂璧烽��璐у繀椤讳笂浼犻檮浠讹紙璐ㄦ鎶ュ憡銆佷笉鍚堟牸鐓х墖绛夛級锛屽惁鍒欏鎵逛汉鏃犳硶鍒ゆ柇閫�璐т緷鎹�
+ if (CollUtil.isEmpty(storageAttachmentApi.listAttachments(RETURN_VENDOR_RECORD_TYPE, id))) {
+ throw exception(WM_RETURN_VENDOR_ATTACHMENT_REQUIRED, returnVendor.getCode());
}
// 2. 鍏ㄥ眬鍏嶅鎵癸細鐩存帴缃负銆屽緟鎷h揣銆嶏紝鏃犻渶娴佺▼妯″瀷
@@ -471,16 +476,16 @@
* 鑾峰彇褰撳墠鐢ㄦ埛缂栧彿锛圔PM 娴佺▼鍙戣捣浜恒�佽储鍔′汉鍛橈級
*/
private Long getCurrentUserId() {
- Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
- if (authentication != null && authentication.getPrincipal() instanceof Long) {
- return (Long) authentication.getPrincipal();
- }
- return null;
+ // 缁熶竴浠庡畨鍏ㄦ鏋跺彇鐧诲綍鐢ㄦ埛锛汼pring Security 鐨� principal 鏄� LoginUser 鑰岄潪 Long锛�
+ // 鐩存帴寮鸿浆浼氬彇鍒� null锛屽鑷� BPM 娴佺▼瀹炰緥鐨勫彂璧蜂汉涓哄瓧绗︿覆 "null"
+ return SecurityFrameworkUtils.getLoginUserId();
}
private void createTransactionList(MesWmReturnVendorDO returnVendor, List<MesWmReturnVendorDetailDO> details) {
wmTransactionService.createTransactionList(convertList(details, detail -> new MesWmTransactionSaveReqDTO()
.setType(MesWmTransactionTypeEnum.OUT.getType()).setItemId(detail.getItemId())
+ // 鎸夋嫞璐ф椂閫変腑鐨勫簱瀛樿褰曟墸鍑忥細鐢熶骇鎵规鍙兘娌℃湁 vendor_id锛屼粎闈� 鐗╂枡+搴撲綅+鎵规+渚涘簲鍟� 缁勫悎閿細鎵句笉鍒板簱瀛�
+ .setMaterialStockId(detail.getMaterialStockId())
.setQuantity(detail.getQuantity().negate()) // 鍑哄簱鏁伴噺涓鸿礋鏁�
.setBatchId(detail.getBatchId()).setBatchCode(detail.getBatchCode())
.setWarehouseId(detail.getWarehouseId()).setLocationId(detail.getLocationId()).setAreaId(detail.getAreaId())
@@ -581,8 +586,11 @@
}
try {
importPurchaseOrderItems(id);
- } catch (ServiceException ignore) {
- // 閲囪喘璁㈠崟鏃犳槑缁� / 鏃犲彲閫�鐗╂枡绛変笟鍔″紓甯革細鍗曟嵁涓讳綋浠嶆甯镐繚瀛橈紝鍙湪鐗╂枡鍖哄彟琛屽鐞�
+ } catch (ServiceException ex) {
+ // 閲囪喘璁㈠崟鏃犳槑缁� / 鏃犲彲閫�鐗╂枡绛変笟鍔″紓甯革細鍗曟嵁涓讳綋浠嶆甯镐繚瀛橈紝鍙湪鐗╂枡鍖虹偣銆岄噸鏂板甫鍏ヨ鍗曠墿鏂欍�嶈ˉ甯�
+ // 鎵撴棩蹇椾究浜庢帓鏌ワ紙渚嬪锛氫繚瀛樺悗鎵嶅叆搴擄紝姝ゆ椂璁㈠崟杩樻病鏈夊彲閫�鏁伴噺锛�
+ log.warn("[autoImportLinesFromLinkedOrder][閫�璐у崟({}) 鍏宠仈閲囪喘璁㈠崟({}) 鑷姩甯﹀叆鐗╂枡澶辫触锛歿}]",
+ id, returnVendor.getPurchaseOrderId(), ex.getMessage());
}
}
--
Gitblit v1.9.3