From cb68c3e4547653ee7d308aa4da51f31363647a0f Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期四, 23 十一月 2023 18:09:43 +0800 Subject: [PATCH] 自动补货 --- src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java | 76 ++++++++++++++++++++++++++++++++++--- 1 files changed, 69 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java index c9af0a1..6a6a33f 100644 --- a/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java @@ -1,8 +1,10 @@ package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.ManLocDetl; import com.zy.asrs.entity.Mat; @@ -15,15 +17,14 @@ import com.zy.asrs.service.NodeService; import com.zy.asrs.service.WaitPakinService; import com.zy.asrs.utils.SaasUtils; +import com.zy.common.model.LocDto; import com.zy.system.entity.User; +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.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; @Service("manLocDetlService") public class ManLocDetlServiceImpl extends ServiceImpl<ManLocDetlMapper, ManLocDetl> implements ManLocDetlService { @@ -131,8 +132,8 @@ @Override - public ManLocDetl selectItem(String locNo, String matnr, String batch) { - return this.baseMapper.selectItem(locNo, matnr, batch); + public ManLocDetl selectItem(String locNo, String matnr, String batch, String csocode, String isoseq, String containerCode) { + return this.baseMapper.selectItem(locNo, matnr, batch,csocode,isoseq,containerCode); } @Override @@ -154,7 +155,13 @@ public void adjustLocDetl(LocDetlAdjustParam param, Long userId, User user) { Date now = new Date(); for (LocDetlAdjustParam.LocDetlAdjust locDetlAdjust : param.getList()) { - ManLocDetl manLocDetl = this.baseMapper.selectItem(param.getLocNo(), locDetlAdjust.getMatnr(), locDetlAdjust.getBatch()); + ManLocDetl manLocDetl = this.baseMapper.selectItem(param.getLocNo(), locDetlAdjust.getMatnr(), locDetlAdjust.getBatch(),locDetlAdjust.getThreeCode(),locDetlAdjust.getDeadTime(),locDetlAdjust.getSuppCode()); + + if(Cools.isEmpty(manLocDetl)){ + addManlocDetl(locDetlAdjust,param.getLocNo()); + continue; + } + this.baseMapper.delete(new EntityWrapper<ManLocDetl>() .eq("loc_no", param.getLocNo()).eq("matnr",locDetlAdjust.getMatnr())); Mat mat = matService.selectOne(new EntityWrapper<Mat>() @@ -200,4 +207,59 @@ return baseMapper.increase(anfme,locNo,matnr,batch,weight); } + public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq) { + Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>().eq("matnr", matnr).orderBy("modi_time"); + wrapper.eq("status",1); + wapperSetCondition(wrapper,"batch",batch); + wapperSetCondition(wrapper,"csocode",csocode); + wapperSetCondition(wrapper,"isoseq",isoseq); + + List<ManLocDetl> manLocDetls = this.selectList(wrapper); + for (ManLocDetl manLocDetl : manLocDetls){ + if(issued > 0) { + double anfme = manLocDetl.getAnfme(); + anfme = anfme > issued ? issued : anfme; + LocDto locDto = new LocDto(manLocDetl.getLocNo(), manLocDetl.getMatnr(), manLocDetl.getMaktx(), manLocDetl.getBatch(), orderNo, anfme); + locDto.setCsocode(csocode); + locDto.setIsoseq(isoseq); + locDto.setContainerCode(manLocDetl.getContainerCode()); + List<String> stationList = new ArrayList<>(); + stationList.add("鏃犻渶绔欑偣"); + locDto.setAgvStaNos(stationList); + + locDtoList.add(locDto); + issued -= anfme; + } + } + + return issued; + } + + private void wapperSetCondition(Wrapper wrapper,String column, String condition){ + if(Cools.isEmpty(condition)){ + wrapper.andNew().eq(column,"").or().isNull(column); + }else { + wrapper.eq(column,condition); + } + } + + private void addManlocDetl(LocDetlAdjustParam.LocDetlAdjust param, String locNo){ + Date now = new Date(); + ManLocDetl manLocDetl = new ManLocDetl(); + Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", locNo)); + Mat mat = matService.selectByMatnr(param.getMatnr()); + BeanUtils.copyProperties(mat,manLocDetl); + manLocDetl.setNodeId(node.getId()); + manLocDetl.setBatch(param.getBatch()); + manLocDetl.setAnfme(param.getCount()); + manLocDetl.setContainerCode(param.getSuppCode()); + manLocDetl.setCsocode(param.getThreeCode()); + manLocDetl.setIsoseq(param.getDeadTime()); + manLocDetl.setCreateTime(now); + manLocDetl.setModiTime(now); + manLocDetl.setLocNo(locNo); + manLocDetl.setStatus(1); + this.insert(manLocDetl); + } + } -- Gitblit v1.9.1