From a27159c9906fa19f1e0126c87d5550434826e718 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 06 八月 2025 14:09:15 +0800 Subject: [PATCH] 库存调整功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java | 72 ++++++++++++++++++++++++++++++++++++ 1 files changed, 72 insertions(+), 0 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java index 14cb3b8..df9136e 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java @@ -1,12 +1,84 @@ package com.vincent.rsf.server.manager.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.vincent.rsf.server.manager.controller.params.ReviseLogItemParams; +import com.vincent.rsf.server.manager.entity.Loc; +import com.vincent.rsf.server.manager.entity.LocItem; +import com.vincent.rsf.server.manager.entity.ReviseLog; import com.vincent.rsf.server.manager.mapper.ReviseLogItemMapper; import com.vincent.rsf.server.manager.entity.ReviseLogItem; +import com.vincent.rsf.server.manager.service.LocItemService; +import com.vincent.rsf.server.manager.service.LocService; import com.vincent.rsf.server.manager.service.ReviseLogItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.vincent.rsf.server.manager.service.ReviseLogService; +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.List; +import java.util.Objects; @Service("reviseLogItemService") public class ReviseLogItemServiceImpl extends ServiceImpl<ReviseLogItemMapper, ReviseLogItem> implements ReviseLogItemService { + @Autowired + private ReviseLogService reviseLogService; + @Autowired + private LocItemService locItemService; + @Autowired + private LocService locService; + + + /** + * 淇濆瓨搴撳瓨璋冩暣鍘嗗彶鍗曟槑缁� + * @param reviseLogItem + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public List<ReviseLogItem> itemSave(ReviseLogItemParams reviseLogItem, Long userId) { + ReviseLog reviseLog = reviseLogService.getById(reviseLogItem.getReviseLogId()); + if (Objects.isNull(reviseLog)) { + throw new RuntimeException("搴撳瓨鍘嗗彶鍗曟嵁涓嶅瓨鍦紒锛�"); + } + Loc locItem = locService.getOne(new LambdaQueryWrapper<Loc>() + .eq(Loc::getCode, reviseLog.getLocCode())); + if (Objects.isNull(locItem)) { + throw new RuntimeException("搴撲綅搴撳瓨涓嶅瓨鍦紒锛�"); + } + List<ReviseLogItem> items = reviseLogItem.getItems(); + items.forEach(item -> { + ReviseLogItem logItem = new ReviseLogItem(); + BeanUtils.copyProperties(item, logItem); + logItem.setReviseLogId(reviseLogItem.getReviseLogId()) + .setUpdateBy(userId) + .setCreateBy(userId) + .setLocId(locItem.getId()) + .setLocCode(locItem.getCode()); + if (Objects.isNull(item.getAnfme())) { + item.setAnfme(0.0); + } + if (!this.save(logItem)) { + throw new RuntimeException("搴撳瓨鏄庣粏璋冩暣澶辫触"); + } + + LocItem one = locItemService.getOne(new LambdaQueryWrapper<LocItem>() + .eq(LocItem::getMatnrId, logItem.getMatnrId()) + .eq(LocItem::getBatch, logItem.getBatch()) + .eq(LocItem::getFieldsIndex, logItem.getFieldsIndex()) + .eq(LocItem::getLocCode, logItem.getLocCode())); + if (Objects.isNull(one)) { + throw new RuntimeException("搴撳瓨鏄庣粏涓嶅瓨鍦紒锛�"); + } + + one.setAnfme(logItem.getReviseQty()); + + if (!locItemService.updateById(one)) { + throw new RuntimeException("搴撳瓨鏄庣粏淇敼澶辫触锛侊紒"); + } + }); + return items; + } } -- Gitblit v1.9.1