From 9312af7cd78b3ff901c8986f00307cd1aa32af24 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期四, 28 十二月 2023 17:01:09 +0800 Subject: [PATCH] # --- zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 114 insertions(+), 1 deletions(-) diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java index dffe8f5..f62ee2d 100644 --- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java +++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java @@ -1,8 +1,23 @@ package com.zy.asrs.common.wms.service.impl; -import com.zy.asrs.common.wms.service.WorkService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zy.asrs.common.domain.dto.DetlDto; +import com.zy.asrs.common.domain.dto.LocTypeDto; +import com.zy.asrs.common.domain.dto.StartupDto; +import com.zy.asrs.common.domain.param.FullStoreParam; +import com.zy.asrs.common.wms.entity.*; +import com.zy.asrs.common.wms.service.*; +import com.zy.asrs.framework.common.BaseRes; +import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.framework.exception.CoolException; import lombok.extern.slf4j.Slf4j; +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.Date; +import java.util.List; /** * Created by vincent on 2020/6/11 @@ -11,4 +26,102 @@ @Service public class WorkServiceImpl implements WorkService { + @Autowired + private BasDevpService basDevpService; + @Autowired + private CommonService commonService; + @Autowired + private WrkMastService wrkMastService; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private LocMastService locMastService; + @Autowired + private MatService matService; + + @Override + @Transactional + public String startupFullPutStore(FullStoreParam param, Long userId, Long hostId) { + // 鍙傛暟闈炵┖鍒ゆ柇 + if (Cools.isEmpty(param.getDevpNo(), param.getList())) { + throw new CoolException(BaseRes.PARAM); + } + Date now = new Date(); + LocTypeDto locTypeDto = new LocTypeDto(); + StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), null, locTypeDto, 0); + // 鐢熸垚宸ヤ綔鍙� + int workNo = dto.getWorkNo(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱 + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾э細13 + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + wrkMast.setStaNo(dto.getStaNo()); + wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setAppeUser(String.valueOf(userId)); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(String.valueOf(userId)); + wrkMast.setModiTime(now); + wrkMast.setHostId(hostId); + if (!wrkMastService.save(wrkMast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + List<DetlDto> detlDtos = new ArrayList<>(); + param.getList().forEach(elem -> { + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); + if (DetlDto.has(detlDtos, detlDto)) { + DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); + assert detlDto1 != null; + detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme()); + } else { + detlDtos.add(detlDto); + } + }); + + for (DetlDto detlDto : detlDtos) { + Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detlDto.getMatnr()).eq(Mat::getHostId, hostId)); + if (Cools.isEmpty(mat)){ + throw new CoolException(detlDto.getMatnr() + "鍟嗗搧缁存姢澶辫触"); + } + // 淇濇寔宸ヤ綔妗f槑缁� + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(mat); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(now); + wrkDetl.setBatch(detlDto.getBatch()); + wrkDetl.setAnfme(detlDto.getAnfme()); // 鏁伴噺 + wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鏉$爜 + wrkDetl.setAppeUser(userId); + wrkDetl.setAppeTime(now); + wrkDetl.setModiUser(userId); + wrkDetl.setModiTime(now); + if (!wrkDetlService.save(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + } + + // 鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, dto.getLocNo()).eq(LocMast::getHostId, hostId)); + if (locMast.getLocSts().equals("O")){ + locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 + locMast.setModiUser(userId); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)){ + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); + } + return dto.getLocNo(); + } + } -- Gitblit v1.9.1