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