From ba65a8ba87c236d97dec1da5fd59c0f16fdee320 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期四, 12 六月 2025 10:38:50 +0800
Subject: [PATCH] 工具管理-修复使用MapStruct做属性复制存在的问题

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/OutboundOrderConvert.java             |   10 +++++++++-
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/PreparationOrderConvert.java          |    9 ++++++++-
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutboundOrderServiceImpl.java    |    6 ++++--
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/PreparationOrderServiceImpl.java |    4 +++-
 4 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/OutboundOrderConvert.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/OutboundOrderConvert.java
index 96d0f66..f369fd9 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/OutboundOrderConvert.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/OutboundOrderConvert.java
@@ -2,17 +2,25 @@
 
 import org.jeecg.modules.tms.entity.OutboundOrder;
 import org.jeecg.modules.tms.entity.dto.OutboundOrderAndDetailDto;
+import org.mapstruct.BeanMapping;
 import org.mapstruct.Mapper;
+import org.mapstruct.NullValuePropertyMappingStrategy;
+import org.mapstruct.ReportingPolicy;
 import org.mapstruct.factory.Mappers;
 
 /**
  * 浣跨敤 MapStruct 鏂瑰紡杩涜灞炴�у鍒�
  * 娉ㄦ剰涓嶈兘鏀惧湪 mybatis鎵弿鐨刴apper鍖呬笅闈紝鍚﹀垯浼氭姤閿�
  */
-@Mapper
+@Mapper(
+        unmappedTargetPolicy = ReportingPolicy.IGNORE, // 蹇界暐鐩爣涓湭琚槧灏勭殑瀛楁
+        componentModel = "spring" // 濡傛灉浣跨敤 Spring锛屽彲鐢熸垚 Spring 绠$悊鐨� Bean
+)
 public interface OutboundOrderConvert {
+
 
     OutboundOrderConvert INSTANCE = Mappers.getMapper(OutboundOrderConvert.class);
 
+    @BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)// 蹇界暐 null 瀛楁
     OutboundOrder convert(OutboundOrderAndDetailDto dto);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/PreparationOrderConvert.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/PreparationOrderConvert.java
index 561a4f2..8e88a03 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/PreparationOrderConvert.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/convert/PreparationOrderConvert.java
@@ -2,17 +2,24 @@
 
 import org.jeecg.modules.tms.entity.PreparationOrder;
 import org.jeecg.modules.tms.entity.dto.PreparationOrderAndDetailDto;
+import org.mapstruct.BeanMapping;
 import org.mapstruct.Mapper;
+import org.mapstruct.NullValuePropertyMappingStrategy;
+import org.mapstruct.ReportingPolicy;
 import org.mapstruct.factory.Mappers;
 
 /**
  * 浣跨敤 MapStruct 鏂瑰紡杩涜灞炴�у鍒�
  * 娉ㄦ剰涓嶈兘鏀惧湪 mybatis鎵弿鐨刴apper鍖呬笅闈紝鍚﹀垯浼氭姤閿�
  */
-@Mapper
+@Mapper(
+        unmappedTargetPolicy = ReportingPolicy.IGNORE, // 蹇界暐鐩爣涓湭琚槧灏勭殑瀛楁
+        componentModel = "spring" // 濡傛灉浣跨敤 Spring锛屽彲鐢熸垚 Spring 绠$悊鐨� Bean
+)
 public interface PreparationOrderConvert {
 
     PreparationOrderConvert INSTANCE = Mappers.getMapper(PreparationOrderConvert.class);
 
+    @BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)// 蹇界暐 null 瀛楁
     PreparationOrder convert(PreparationOrderAndDetailDto dto);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutboundOrderServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutboundOrderServiceImpl.java
index cc05fae..3befbbf 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutboundOrderServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/OutboundOrderServiceImpl.java
@@ -83,6 +83,8 @@
 	private OutboundOrderMapper outboundOrderMapper;
 	@Autowired
 	private OutboundDetailMapper outboundDetailMapper;
+	@Autowired
+	private OutboundOrderConvert outboundOrderConvert;
 	
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -103,7 +105,7 @@
     @Override
 	@Transactional(rollbackFor = Exception.class)
     public void addTotal(OutboundOrderAndDetailDto outboundOrder) {
-		OutboundOrder order = OutboundOrderConvert.INSTANCE.convert(outboundOrder);
+		OutboundOrder order = outboundOrderConvert.convert(outboundOrder);
 		order.setHandler(Objects.requireNonNull(getCurrentUser()).getId());
 		order.setOutNum(businessCodeRuleService.generateBusinessCodeSeq("outBoundOrder"));
 		order.setOrderStatus(OutBillStatus.DRAFT.getValue());
@@ -155,7 +157,7 @@
 		//鍒犻櫎鎵�鏈夋槑缁�
 		outboundDetailService.remove(new LambdaQueryWrapper<OutboundDetail>()
 				.eq(OutboundDetail::getOutStorehouseId, outboundOrder.getId()));
-		OutboundOrder outboundOrderUpdate = OutboundOrderConvert.INSTANCE.convert(outboundOrder);
+		OutboundOrder outboundOrderUpdate = outboundOrderConvert.convert(outboundOrder);
 		outboundOrderMapper.updateById(outboundOrderUpdate);
 		List<OutboundDetail> detailList = CollectionUtil.newArrayList();
 		outboundOrder.getOutboundDetailList().forEach(item->{
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/PreparationOrderServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/PreparationOrderServiceImpl.java
index 0fb2bcc..6bb0dfc 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/PreparationOrderServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/PreparationOrderServiceImpl.java
@@ -54,6 +54,8 @@
 	private ISysBusinessCodeRuleService businessCodeRuleService;
 	@Autowired
 	private IBaseToolsService baseToolsService;
+	@Autowired
+	private PreparationOrderConvert preparationOrderConvert;
 	
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -77,7 +79,7 @@
 		//鍏堝垹闄ゆ墍鏈夋槑缁�
 		preparationOrderDetailMapper.delete(new LambdaQueryWrapper<PreparationOrderDetail>()
 				.eq(PreparationOrderDetail::getPreparationOrderId, preparationOrderAndDetailDto.getId()));
-		PreparationOrder preparationOrder = PreparationOrderConvert.INSTANCE.convert(preparationOrderAndDetailDto);
+		PreparationOrder preparationOrder = preparationOrderConvert.convert(preparationOrderAndDetailDto);
 		updateById(preparationOrder);
 		List<PreparationOrderDetail> detailUpdateList = CollectionUtil.newArrayList();
 		preparationOrderAndDetailDto.getPreparationOrderDetailList().forEach(item->{

--
Gitblit v1.9.3