From 8359572be2164aec32219fafd5e72f4035067dff Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期二, 01 八月 2023 08:52:26 +0800 Subject: [PATCH] agv 订单出库功能 --- src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java | 62 +++++++++++++++++++++++++++++++ 1 files changed, 62 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java index 61b924b..736601e 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java @@ -1,16 +1,23 @@ package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; import com.zy.asrs.entity.AgvLocDetl; +import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.entity.AgvWrkDetl; import com.zy.asrs.mapper.AgvLocDetlMapper; +import com.zy.asrs.service.AgvBasDevpService; import com.zy.asrs.service.AgvLocDetlService; +import com.zy.asrs.service.AgvLocMastService; import com.zy.asrs.service.AgvWrkDetlService; +import com.zy.common.model.LocDto; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -19,6 +26,10 @@ @Autowired AgvWrkDetlService agvWrkDetlService; + @Autowired + AgvBasDevpService agvBasDevpService; + @Autowired + AgvLocMastService agvLocMastService; public void addLocDetlInfo(String locNo, int taskCode) { List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", taskCode)); @@ -31,4 +42,55 @@ }).collect(Collectors.toList()); } + + public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued) { + //鏍规嵁鐗╂枡鍙峰拰鎵规鎵惧埌瀵瑰簲鐨勫簱瀛橈紝骞朵笖鎸夌収淇敼鏃堕棿鎺掑簭 + Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time"); + if(Cools.isEmpty(batch)){ + wrapper.isNull("batch"); + }else { + wrapper.eq("batch",batch); + } + List<AgvLocDetl> agvLocDetls = this.selectList(wrapper); + + for (AgvLocDetl agvLocDetl: agvLocDetls) { + //鍒ゆ柇褰撳墠搴撲綅璐х墿鏄惁F鍦ㄥ簱 + AgvLocMast agvLocMast = agvLocMastService.selectById(agvLocDetl.getLocNo()); + if(!"F".equals(agvLocMast.getLocSts())){ + continue; + } + //濡傛灉璁㈠崟鍓╀綑鍑哄簱閲忓ぇ浜�0 + if(issued > 0) { + //褰撳墠搴撲綅鐨勫簱瀛橀噺 + double anfme = agvLocDetl.getAnfme(); + //int ioType = anfme > issued ? 101 : 103; + anfme = anfme > issued ? issued : anfme; + LocDto locDto = new LocDto(agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getBatch(), orderNo, anfme); + + //褰撳墠搴撲綅鎵�澶勬ゼ灞� + int floor = Integer.parseInt(agvLocDetl.getLocNo().split("@")[1]); + locDto.setAgvStaNos(queryAgvStaNosByFloor(floor)); + locDtoList.add(locDto); + + issued -= anfme; + } + } + + return issued; + + } + + private List<String> queryAgvStaNosByFloor(int floor){ + List<String> agvStaNos = new ArrayList<>(); + if(floor == 1){ + agvStaNos.add("CS-101"); + agvStaNos.add("CS-102"); + }else if(floor ==3){ + agvStaNos.add("CS-305"); + agvStaNos.add("CS-306"); + agvStaNos.add("CS-307"); + } + + return agvStaNos; + } } -- Gitblit v1.9.1