From 5264cf0915ee9901cb9520fdcc6b8cdd5ecd4837 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 20 八月 2025 10:50:03 +0800 Subject: [PATCH] 库存调整功能界面优化 库存调整接口功能开发 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/ReviseLogItemServiceImpl.java | 94 ++++++++++++++++++++++++++++++++-------------- 1 files changed, 65 insertions(+), 29 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 df9136e..402deb4 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,17 +1,15 @@ package com.vincent.rsf.server.manager.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.vincent.rsf.framework.exception.CoolException; 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.entity.*; +import com.vincent.rsf.server.manager.enums.CommonExceStatus; 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.vincent.rsf.server.manager.service.*; 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; @@ -19,20 +17,26 @@ import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; @Service("reviseLogItemService") public class ReviseLogItemServiceImpl extends ServiceImpl<ReviseLogItemMapper, ReviseLogItem> implements ReviseLogItemService { @Autowired - private ReviseLogService reviseLogService; + private ReviseLogService reviseLogService; @Autowired private LocItemService locItemService; @Autowired private LocService locService; + @Autowired + private ReviseLogItemService reviseLogItemService; + @Autowired + private LocReviseService locReviseService; /** * 淇濆瓨搴撳瓨璋冩暣鍘嗗彶鍗曟槑缁� + * * @param reviseLogItem * @return */ @@ -43,42 +47,74 @@ if (Objects.isNull(reviseLog)) { throw new RuntimeException("搴撳瓨鍘嗗彶鍗曟嵁涓嶅瓨鍦紒锛�"); } - Loc locItem = locService.getOne(new LambdaQueryWrapper<Loc>() + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>() .eq(Loc::getCode, reviseLog.getLocCode())); - if (Objects.isNull(locItem)) { + if (Objects.isNull(loc)) { throw new RuntimeException("搴撲綅搴撳瓨涓嶅瓨鍦紒锛�"); } List<ReviseLogItem> items = reviseLogItem.getItems(); + + this.remove(new LambdaQueryWrapper<ReviseLogItem>() + .eq(ReviseLogItem::getLocId, loc.getId())); + 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()); + .setLocId(loc.getId()) + .setLocCode(loc.getCode()); if (Objects.isNull(item.getAnfme())) { - item.setAnfme(0.0); + logItem.setAnfme(0.0); } - if (!this.save(logItem)) { + if (!this.saveOrUpdate(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("搴撳瓨鏄庣粏淇敼澶辫触锛侊紒"); - } +// LocItem one = locItemService.getOne(new LambdaQueryWrapper<LocItem>() +// .eq(LocItem::getMatnrId, logItem.getMatnrId()) +// .eq(StringUtils.isNotBlank(logItem.getBatch()), LocItem::getBatch, logItem.getBatch()) +// .eq(StringUtils.isNotBlank(logItem.getFieldsIndex()), LocItem::getFieldsIndex, logItem.getFieldsIndex()) +// .eq(LocItem::getLocCode, logItem.getLocCode())); +// if (Objects.isNull(one)) { +// LocItem locDetl = new LocItem(); +// BeanUtils.copyProperties(logItem, locDetl); +// locDetl.setLocId(loc.getId()) +// .setLocCode(loc.getCode()) +// .setAnfme(logItem.getReviseQty()) +// .setUpdateBy(userId) +// .setId(null) +// .setCreateBy(userId); +// if (!locItemService.save(locDetl)) { +// throw new CoolException("搴撳瓨鏄庣粏淇濆瓨澶辫触锛侊紒"); +// } +// } else { +// one.setAnfme(logItem.getReviseQty()); +// if (!locItemService.updateById(one)) { +// throw new RuntimeException("搴撳瓨鏄庣粏淇敼澶辫触锛侊紒"); +// } +// } }); + + List<ReviseLog> list = reviseLogService.list(new LambdaQueryWrapper<ReviseLog>().eq(ReviseLog::getReviseId, reviseLog.getReviseId())); + if (Objects.isNull(list)) { + throw new RuntimeException("鏁版嵁閿欒锛氬簱瀛樿皟鏁村崟涓嶅瓨鍦紒锛�"); + } + List<Long> reviseIds = list.stream().map(ReviseLog::getId).collect(Collectors.toList()); + List<ReviseLogItem> logItems = reviseLogItemService.list(new LambdaQueryWrapper<ReviseLogItem>() + .in(ReviseLogItem::getReviseLogId, reviseIds)); + + Double anfems = logItems.stream().mapToDouble(ReviseLogItem::getAnfme).sum(); + Double reviseQty = logItems.stream().mapToDouble(ReviseLogItem::getReviseQty).sum(); + + if (!locReviseService.update(new LambdaUpdateWrapper<LocRevise>() + .eq(LocRevise::getId, reviseLog.getReviseId()) + .set(LocRevise::getAnfme, anfems) + .set(LocRevise::getExceStatus, CommonExceStatus.COMMON_EXCE_STATUS_EXCE_ING.val) + .set(LocRevise::getReviseQty, reviseQty))) { + throw new RuntimeException("搴撳瓨璋冩暣鍗曚慨鏀瑰け璐ワ紒锛�"); + } return items; } } -- Gitblit v1.9.1