| | |
| | | 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; |
| | |
| | | @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) { |