From 7d4d4849daf849f2676899a96ceabd8ade703a32 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期二, 15 四月 2025 14:38:01 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 139 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 137 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 18548ae..2cefd0f 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -671,14 +671,149 @@ @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) { + } @Override -- Gitblit v1.9.1