Explorar o código

订单导入删除老数据,导入新数据

baihua hai 3 semanas
pai
achega
acec8e7ea8

+ 1 - 6
blade-service/blade-factory/src/main/java/org/springblade/factory/api/controller/SalesOrderController.java

@@ -487,12 +487,7 @@ public class SalesOrderController {
 		List<PcBladeOrderItem> saveList = new ArrayList<>();
 		try {
 			// 5. 删除同年同月原有订单数据(核心:以导入为准,先删后导)
-			LambdaQueryWrapper<PcBladeOrderItem> deleteWrapper = new LambdaQueryWrapper<>();
-			deleteWrapper.eq(PcBladeOrderItem::getCreateUser, Customer_ID) // 当前用户的订单
-				.eq(PcBladeOrderItem::getItemStatus, 0) // 仅删除未确认的订单(可根据业务调整)
-				.eq(PcBladeOrderItem::getOrderId, id) // 关联当前订单ID
-				.apply("YEAR(create_time) = {0} AND MONTH(create_time) = {1}", orderYear, orderMonth); // 同年同月数据
-			orderItemService.deletePcBladeOrderItemById(deleteWrapper);
+			orderItemService.deletePcBladeOrderItemById(id);
 
 			// 同步读取Excel数据
 			List<OrderImportDTO> dtoList = EasyExcel.read(file.getInputStream())

+ 4 - 11
blade-service/blade-factory/src/main/java/org/springblade/factory/mapper/PcBladeOrderItemMapper.java

@@ -13,17 +13,10 @@ public interface PcBladeOrderItemMapper extends BaseMapper<PcBladeOrderItem> {
 
 	/**
 	 * 批量硬删除订单子项(根据ID列表)
-	 * @param ids 要删除的ID列表
+	 * @para
 	 * @return 受影响的行数(>=1 表示删除成功)
 	 */
-	@Delete({
-		"<script>",
-		"DELETE FROM pc_blade_order_item",
-		"WHERE id IN",
-		"<foreach collection='ids' item='id' open='(' separator=',' close=')'>",
-		"#{id}",
-		"</foreach>",
-		"</script>"
-	})
-	int deleteByIds(@Param("ids") List<Long> ids);
+	@Delete("DELETE FROM pc_blade_order_item WHERE order_id = #{id}")
+	int deleteByIds(@Param("id") Long id);
 }
+

+ 2 - 2
blade-service/blade-factory/src/main/java/org/springblade/factory/service/PcBladeOrderItemService.java

@@ -42,10 +42,10 @@ public interface PcBladeOrderItemService extends BaseService<PcBladeOrderItem> {
 
 	/**
 	 * 批量硬删除
-	 * @param ids
+	 * @param id
 	 * @return
 	 */
-	public int deletePcBladeOrderItemById(LambdaQueryWrapper<PcBladeOrderItem> ids);
+	public int deletePcBladeOrderItemById(Long id);
 
 
 

+ 3 - 18
blade-service/blade-factory/src/main/java/org/springblade/factory/service/impl/PcBladeOrderItemServiceImpl.java

@@ -49,27 +49,12 @@ public class PcBladeOrderItemServiceImpl
 
 	/**
 	 * 根据条件(LambdaQueryWrapper)批量硬删除同年同月的订单子项
-	 * @param wrapper 删除条件(用户、状态、订单ID、年月)
+	 * @param  (用户、状态、订单ID、年月)
 	 * @return 受影响的行数
 	 */
 	@Override
-	public int deletePcBladeOrderItemById(LambdaQueryWrapper<PcBladeOrderItem> wrapper) {
-		// 第一步:根据条件查询出所有要删除的订单子项ID(适配Java 8+)
-		List<Long> deleteIds = pcBladeOrderItemMapper.selectObjs(wrapper)
-			.stream()
-			// 转换为Long类型(处理空值,避免NumberFormatException)
-			.filter(obj -> obj != null) // 过滤空值,防止空指针
-			.map(obj -> Long.parseLong(obj.toString()))
-			// 替换为Java 8支持的Collectors.toList()
-			.collect(Collectors.toList());
-
-		// 第二步:如果没有要删除的ID,直接返回0(避免空列表执行DELETE导致SQL错误)
-		if (deleteIds.isEmpty()) {
-			return 0;
-		}
-
-		// 第三步:调用Mapper的批量删除方法,传入ID列表
-		return pcBladeOrderItemMapper.deleteByIds(deleteIds);
+	public int deletePcBladeOrderItemById(Long id) {
+		return pcBladeOrderItemMapper.deleteByIds(id);
 	}
 
 }