From f25bd904560faada2a00e93fbd8abab6be238f9c Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期二, 15 四月 2025 15:44:31 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 196 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 194 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index c2f81eb..70bdaef 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -13,9 +13,11 @@ import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; import com.zy.asrs.utils.OrderInAndOutUtil; +import com.zy.asrs.utils.Utils; import com.zy.common.constant.MesConstant; import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; +import com.zy.common.model.LocDto; import com.zy.common.model.MesCombParam; import com.zy.common.model.enums.WorkNoType; import com.zy.common.service.CommonService; @@ -671,16 +673,206 @@ @Override @Transactional public R kittingQuery(CombParam combParam, Long userId) { - List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>()); - return R.ok().add(locDetlList); + List<Map<String, Object>> result = new ArrayList<>(); + List<LocDetl> locDetlResultList = new ArrayList<>(); + List<LocDetl> locDetlResultListHalf = new ArrayList<>(); + List<CombParam.CombMat> combMats = combParam.getCombMats(); + for (CombParam.CombMat combMat : combMats){ + Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>() + .eq("matnr", combMat.getMatnr()) + .eq("specs", combMat.getSpecs()) + .eq("sku", combMat.getSku()) + .eq("origin", "涓嶅湪搴�"); + List<LocDetl> locDetlList = locDetlService.selectList(wrapper); + for (LocDetl locDetl : locDetlList){ + LocDetlFusion locDetlFusion = getLocDetlFusion(combParam, locDetl.getLocNo()); + if (locDetlFusion.sign != 0 && locDetlFusion.sign != 9999){ + if (locDetlFusion.sign == combMats.size()){ + locDetlResultList.add(locDetlFusion.locDetl); + } else { + locDetlResultListHalf.add(locDetlFusion.locDetl); + } + } + } + } + for (LocDetl locDetl : locDetlResultList){ + Map<String, Object> map = new HashMap<>(); + map.put("locNo", locDetl.getLocNo()); + map.put("matnr", locDetl.getMatnr()); + map.put("sku", locDetl.getSku()); + map.put("anfme", locDetl.getAnfme()); + map.put("memo", locDetl.getMemo()); + result.add(map); + } + for (LocDetl locDetl : locDetlResultListHalf){ + Map<String, Object> map = new HashMap<>(); + map.put("locNo", locDetl.getLocNo()); + map.put("matnr", locDetl.getMatnr()); + map.put("sku", locDetl.getSku()); + map.put("anfme", locDetl.getAnfme()); + map.put("memo", locDetl.getMemo()); + result.add(map); + } + + return R.ok().add(result); + } + + public class LocDetlFusion{ + public Integer sign; + public LocDetl locDetl; + + public LocDetlFusion(Integer sign, LocDetl locDetl) { + this.sign = sign; + this.locDetl = locDetl; + } + } + + public LocDetlFusion getLocDetlFusion(CombParam combParam,String locNo){ + LocDetl locDetl = new LocDetl(); + locDetl.setLocNo(locNo); + locDetl.setAnfme(0D); + Integer sign = 0; + Map<Integer, LocDetl> map = new HashMap<>(); + List<LocDetl> locDetls= new ArrayList<>(); + + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo)); + if (locMast.getLocSts().equals("F")){ + List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo)); + for (CombParam.CombMat combMatNow : combParam.getCombMats()){ + boolean flag = true; + while (flag){ + flag = false; + for (LocDetl locDetlNow : locDetlList){ + if (locDetlNow.getOrigin().equals("涓嶅湪搴�")){ + if (combMatNow.getMatnr().equals(locDetlNow.getMatnr())){ + if (combMatNow.getAnfme().equals(locDetlNow.getAnfme())){ + LocDetl locDetlAdd = new LocDetl(); + + locDetlAdd.sync(locDetlNow); + locDetls.add(locDetlAdd); + locDetlList.remove(locDetlNow); + + sign++; + combMatNow.setMemo("瀹屽叏鍖归厤"); + break; + } else if (combMatNow.getAnfme()>locDetlNow.getAnfme()){ + double anfme = combMatNow.getAnfme() - locDetlNow.getAnfme(); + combMatNow.setAnfme(anfme); + + LocDetl locDetlAdd = new LocDetl(); + locDetlAdd.sync(locDetlNow); + locDetls.add(locDetlAdd); + + locDetlList.remove(locDetlNow); + flag = true; + break; + } else if (combMatNow.getAnfme()<locDetlNow.getAnfme()){ + double anfme = locDetlNow.getAnfme() - combMatNow.getAnfme(); + locDetlNow.setAnfme(combMatNow.getAnfme()); + + LocDetl locDetlAdd = new LocDetl(); + locDetlAdd.sync(locDetlNow); + locDetls.add(locDetlAdd); + + locDetlNow.setAnfme(anfme); + sign++; + combMatNow.setMemo("瀹屽叏鍖归厤"); + break; + } + } + } + } + } + } + if (sign == combParam.getCombMats().size()){ + if (locDetlList.size() == 0 ){ + locDetl.setMemo("瀹屽叏鍖归厤"); + } else { + locDetl.setMemo("婧㈠嚭鍖归厤"); + } + } else if (locDetls.size() != 0 ){ + locDetl.setMemo("鏈畬鍏ㄥ尮閰�"); + sign = 99999999; + } + } + for (LocDetl locDetlNow : locDetls){ + if (Cools.isEmpty(locDetl.getMatnr())){ + locDetl.setMatnr(locDetlNow.getMatnr()); + } else { + locDetl.setMatnr(locDetl.getMatnr() + "," + locDetlNow.getMatnr()); + } + if (Cools.isEmpty(locDetl.getSku())){ + locDetl.setSku(locDetlNow.getSku()); + } else { + locDetl.setSku(locDetl.getSku() + "," + locDetlNow.getSku()); + } + locDetl.setAnfme(locDetlNow.getAnfme() + locDetl.getAnfme()); + } + return new LocDetlFusion(sign,locDetl); } @Override @Transactional public void kittingCall(String locNo, Long userId) { + try{ + List<StockOutParam.LocDetl> locDetls = new ArrayList<>(); + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo)); + if (locMast.getLocSts().equals("F")){ + List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo)); + for (LocDetl locDetl:locDetlList){ + StockOutParam.LocDetl locDto = new StockOutParam.LocDetl(); + locDto.setLocNo(locDetl.getLocNo()); + locDto.setMatnr(locDetl.getMatnr()); + locDto.setBatch(locDetl.getBatch()); + locDto.setBrand(locDetl.getBrand()); + locDto.setCount(locDetl.getAnfme()); + locDto.setStandby1(locDetl.getStandby1()); + locDto.setStandby2(locDetl.getStandby2()); + locDto.setStandby3(locDetl.getStandby3()); + locDto.setBoxType1(locDetl.getBoxType1()); + locDto.setBoxType2(locDetl.getBoxType2()); + locDto.setBoxType3(locDetl.getBoxType3()); + locDetls.add(locDto); + } + } + StockOutParam param = new StockOutParam(); + param.setOutSite(101); + param.setLocDetls(locDetls); + WorkService workService = SpringUtils.getBean(WorkService.class); + workService.locCheckOut(param,userId); + } catch (Exception e){ + throw new CoolException("鐩樼偣鍚姩澶辫触锛侊紒锛�"); + } } + @Override + @Transactional + public R locOriginInOut(LocDetl locDetl, Long userId) { + try{ + Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>() + .eq("loc_no", locDetl.getLocNo()) + .eq("zpallet", locDetl.getZpallet()) + .eq("matnr", locDetl.getMatnr()) + .eq("specs", locDetl.getSpecs()) + .eq("batch", locDetl.getBatch()) + .eq("origin", locDetl.getOrigin()); + LocDetl locDetl1 = locDetlService.selectOne(wrapper); + if (Cools.isEmpty(locDetl1)){ + return R.error(); + } else if (locDetl1.getOrigin().equals("涓嶅湪搴�")){ + locDetl1.setOrigin("鍦ㄥ簱"); + }else{ + locDetl1.setOrigin("涓嶅湪搴�"); + } + if (locDetlService.update(locDetl1,wrapper)){ + return R.ok(); + } + } catch (Exception e){ + + } + return R.error(); + } // 鍟嗗搧涓婃灦 @Override public void onSale(CombParam param) { -- Gitblit v1.9.1