From d5540413a0163383b53d33aea1be93390ea9149c Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期日, 27 四月 2025 10:52:31 +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..3836921 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.AsnOrder;
+import com.vincent.rsf.server.manager.entity.AsnOrderItem;
+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("鍗曟嵁涓嶅瓨鍦紒锛�");
+        }
+        AsnOrder order = new AsnOrder();
+        BeanUtils.copyProperties(orderLog, order);
+        order.setId(orderLog.getAsnId())
+                .setDeleted(0)
+                .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
+
+        AsnOrder asnOrder = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, orderLog.getCode()));
+        if (Objects.isNull(asnOrder)) {
+            throw new CoolException("鏀惰揣鍗曟嵁宸叉坊鍔狅紝鍒锋柊鍚庡啀鎿嶄綔锛侊紒");
+        }
+
+        if (!asnOrderService.saveOrUpdate(order)) {
+            throw new CoolException("鍗曟嵁淇濆瓨澶辫触锛侊紒");
+        }
+        List<AsnOrderItemLog> itemLogs = asnOrderItemLogService
+                .list(new LambdaQueryWrapper<AsnOrderItemLog>()
+                .eq(AsnOrderItemLog::getLogId, id));
+        List<AsnOrderItem> orderItems = new ArrayList<>();
+        if (!Objects.isNull(itemLogs) || !itemLogs.isEmpty()) {
+            for (AsnOrderItemLog itemLog : itemLogs) {
+                AsnOrderItem item = new AsnOrderItem();
+                BeanUtils.copyProperties(itemLog, item);
+                item.setId(itemLog.getAsnItemId())
+                        .setAsnId(order.getId())
+                        .setMatnrId(Long.parseLong(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