| | |
| | | package com.zy.asrs.task.handler; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.model.enums.WorkNoType; |
| | | import com.zy.common.service.CommonService; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | public class AutoReplenishmentHandler extends AbstractHandler<String> { |
| | |
| | | //List<String> locNosSearch = locDetlService.selectLocNo(matnr); |
| | | Set<String> locNosSearch = locDetlService.selectLocNo(matnr, batch, csocode, isocode); |
| | | |
| | | for(String locNo : locNosSearch){ |
| | | //重新排序 并且检测该库位是否含没有料箱码的物料,如有有则不允许出库 |
| | | Set<String> resort = resort(locNosSearch); |
| | | |
| | | for(String locNo : resort){ |
| | | List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo); |
| | | locNos.add(locNo); |
| | | for (LocDetl locDetl :locDetls){ |
| | |
| | | } |
| | | } |
| | | |
| | | // orderDetlList.forEach(orderDetl -> { |
| | | // |
| | | // if(orderDetl.getAnfme() - orderDetl.getQty() <= 0){ |
| | | // cont |
| | | // } |
| | | // |
| | | // String matnr = orderDetl.getMatnr(); |
| | | // Double orderAnfme = orderDetl.getAnfme(); |
| | | // |
| | | // List<String> locNosSearch = locDetlService.selectLocNo(matnr); |
| | | // |
| | | // for(String locNo : locNosSearch){ |
| | | // List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo); |
| | | // locNos.add(locNo); |
| | | // for (LocDetl locDetl :locDetls){ |
| | | // if(matnr.equals(locDetl.getMatnr())){ |
| | | // orderAnfme -= locDetl.getAnfme(); |
| | | // } |
| | | // } |
| | | // if(orderAnfme <= 0){ |
| | | // orderDetl.setQty(orderDetl.getAnfme() - orderAnfme); |
| | | // orderDetlService.updateById(orderDetl); |
| | | // break; |
| | | // } |
| | | // } |
| | | // |
| | | // }); |
| | | |
| | | return locNos; |
| | | } |
| | | |
| | | //根据深浅库位进行重新排序 |
| | | private Set<String> resort(Set<String> locNos){ |
| | | Set<String> locNosResort = new LinkedHashSet<>(); |
| | | |
| | | for(String locNoSearch : locNos){ |
| | | LocMast locMast = locMastService.selectById(locNoSearch); |
| | | if(!"F".equals(locMast.getLocSts())){ |
| | | continue; |
| | | } |
| | | |
| | | List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNoSearch); |
| | | |
| | | if(Cools.isEmpty(groupOuterLoc)){ |
| | | locNosResort.add(locNoSearch); |
| | | }else { |
| | | groupOuterLoc.add(locNoSearch); |
| | | //如果是深库位,则先找外侧的库位 |
| | | for (String locNoOut : groupOuterLoc){ |
| | | LocMast locMastOuter = locMastService.selectById(locNoOut); |
| | | //外侧如果是拣料,则内测不允许出 |
| | | if("P".equals(locMastOuter.getLocSts()) || "Q".equals(locMastOuter.getLocSts()) || "S".equals(locMastOuter.getLocSts())){ |
| | | break; |
| | | } |
| | | |
| | | if(!"F".equals(locMastOuter.getLocSts())){ |
| | | continue; |
| | | } |
| | | locNosResort.add(locNoOut); |
| | | |
| | | } |
| | | } |
| | | } |
| | | return locNosResort; |
| | | } |
| | | |
| | | private WrkMast createWrkMast(String locNo,String barCode,Date now){ |
| | | int ioType = 101; |
| | | int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); |