From 9fe1ec3afe8696c628d076d1f76686c4efc3012e Mon Sep 17 00:00:00 2001
From: zc <zyzc>
Date: 星期二, 21 十月 2025 10:49:55 +0800
Subject: [PATCH] 容器初始化功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java | 79 +++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java
index a607ac5..a6e2119 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java
@@ -1,12 +1,91 @@
package com.vincent.rsf.server.manager.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.entity.WkOrder;
+import com.vincent.rsf.server.manager.entity.WkOrderItem;
+import com.vincent.rsf.server.manager.entity.AsnOrderItemLog;
+import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.mapper.AsnOrderLogMapper;
import com.vincent.rsf.server.manager.entity.AsnOrderLog;
+import com.vincent.rsf.server.manager.service.AsnOrderItemLogService;
+import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.vincent.rsf.server.manager.service.AsnOrderLogService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vincent.rsf.server.manager.service.AsnOrderService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
@Service("asnOrderLogService")
public class AsnOrderLogServiceImpl extends ServiceImpl<AsnOrderLogMapper, AsnOrderLog> implements AsnOrderLogService {
+ @Autowired
+ private AsnOrderItemLogService asnOrderItemLogService;
+ @Autowired
+ private AsnOrderItemService asnOrderItemService;
+ @Autowired
+ private AsnOrderService asnOrderService;
+ /**
+ * @author Ryan
+ * @description 缁х画鏀惰揣
+ * @param
+ * @return
+ * @time 2025/4/17 15:08
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R continueRecipt(Long id) {
+ AsnOrderLog orderLog = this.getOne(new LambdaQueryWrapper<AsnOrderLog>().eq(AsnOrderLog::getId, id));
+ if (Objects.isNull(orderLog)) {
+ throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+ }
+ WkOrder order = new WkOrder();
+ BeanUtils.copyProperties(orderLog, order);
+ order.setId(orderLog.getAsnId())
+ .setDeleted(0)
+ .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
+
+ WkOrder wkOrder = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getCode, orderLog.getCode()));
+ if (!Objects.isNull(wkOrder)) {
+ throw new CoolException("鏀惰揣鍗曟嵁宸叉坊鍔狅紝鍒锋柊鍚庡啀鎿嶄綔锛侊紒");
+ }
+
+ if (!asnOrderService.saveOrUpdate(order)) {
+ throw new CoolException("鍗曟嵁淇濆瓨澶辫触锛侊紒");
+ }
+ List<AsnOrderItemLog> itemLogs = asnOrderItemLogService
+ .list(new LambdaQueryWrapper<AsnOrderItemLog>()
+ .eq(AsnOrderItemLog::getLogId, id));
+ List<WkOrderItem> orderItems = new ArrayList<>();
+ if (!Objects.isNull(itemLogs) || !itemLogs.isEmpty()) {
+ for (AsnOrderItemLog itemLog : itemLogs) {
+ WkOrderItem item = new WkOrderItem();
+ BeanUtils.copyProperties(itemLog, item);
+ item.setId(itemLog.getAsnItemId())
+ .setOrderId(order.getId())
+ .setMatnrId(itemLog.getMatnrId())
+ .setDeleted(0);
+ orderItems.add(item);
+ }
+ if (!asnOrderItemService.saveOrUpdateBatch(orderItems)) {
+ throw new CoolException("鏄庣粏淇濆瓨澶辫触");
+ }
+ }
+ if (!this.removeById(orderLog.getId())) {
+ throw new CoolException("鍘嗗彶鍗曟嵁鍒犻櫎澶辫触锛侊紒");
+ }
+ if (!asnOrderItemLogService.remove(new LambdaQueryWrapper<AsnOrderItemLog>()
+ .eq(AsnOrderItemLog::getLogId, orderLog.getId()))) {
+ throw new CoolException("鍘嗗彶鍗曟嵁鏄庣粏鍒犻櫎澶辫触锛侊紒");
+ }
+
+ return R.ok();
+ }
}
--
Gitblit v1.9.1