| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.BaseRes; |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SnowflakeIdWorker; |
| | | import com.core.common.*; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.CombParam; |
| | |
| | | waitPakin.setFrozen(param.getFrozen()); // 是否冻结 |
| | | waitPakin.setManu(detlDto.getCstmr()); |
| | | waitPakin.setMatType(mat.getMatType());//物料类型 |
| | | waitPakin.setMatTypeIn(param.getMatTypeIn());//强制物料类型 |
| | | if (Cools.isEmpty(mat.getMatType())){ |
| | | throw new CoolException("物料类型异常"+mat.getMatnr()); |
| | | }else { |
| | |
| | | // 生成入库通知档 |
| | | List<DetlDto> detlDtos = new ArrayList<>(); |
| | | param.getCombMats().forEach(elem -> { |
| | | elem.setBatch(""); |
| | | //elem.setBatch(""); |
| | | // 订单明细数量校验 |
| | | OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); |
| | | if (elem.getAnfme() > orderDetl.getEnableQty()) { |
| | |
| | | WaitPakin waitPakin = new WaitPakin(); |
| | | waitPakin.sync(mat); |
| | | waitPakin.setOrderNo(order.getOrderNo()); // 单据编号 |
| | | waitPakin.setBatch(""); // 序列码 |
| | | //waitPakin.setBatch(""); // 序列码 |
| | | waitPakin.setZpallet(param.getBarcode()); // 托盘码 |
| | | waitPakin.setIoStatus("N"); // 入出状态 |
| | | waitPakin.setAnfme(detlDto.getAnfme()); // 数量 |
| | |
| | | waitPakin.setModiTime(now); |
| | | waitPakin.setOwner(detlDto.getOwner()); |
| | | waitPakin.setMatType(mat.getMatType());//物料类型 |
| | | waitPakin.setMatTypeIn(param.getMatTypeIn()); //强制物料类型 |
| | | // if (Cools.isEmpty(mat.getMatType())){ |
| | | // throw new CoolException("物料类型异常"+mat.getMatnr()); |
| | | // }else { |
| | |
| | | public void pikingToFull(String barcode) { |
| | | wrkMastService.selectByBarcode(barcode); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public List<WrkDetl> pikingToFull2(Integer wrkNo) { |
| | | List<WrkDetl> wrkDetlsNew= new ArrayList<WrkDetl>(); |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkNo); |
| | | for (WrkDetl wrkDetl:wrkDetls){ |
| | | String[] orderNos = GetOrderNo(wrkDetl.getOrderNo()); |
| | | if (!Cools.isEmpty(orderNos) && orderNos.length!=0) { |
| | | Double anfme = wrkDetl.getAnfme(); |
| | | for (String orderNo : orderNos) { |
| | | OrderDetl orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), null); |
| | | if (orderDetl == null) { |
| | | log.error("ww"); |
| | | return wrkDetlsNew; |
| | | } |
| | | } |
| | | if (orderDetl.getAnfme() <= anfme) { |
| | | WrkDetl wrkDetl1 = new WrkDetl(); |
| | | wrkDetl1.sync(wrkDetl); |
| | | wrkDetl1.setOrderNo(orderNo); |
| | | wrkDetl1.setAnfme(anfme); |
| | | wrkDetlsNew.add(wrkDetl1); |
| | | anfme = anfme - orderDetl.getAnfme(); |
| | | } else { |
| | | WrkDetl wrkDetl1 = new WrkDetl(); |
| | | wrkDetl1.sync(wrkDetl); |
| | | wrkDetl1.setOrderNo(orderNo); |
| | | wrkDetl1.setAnfme(anfme); |
| | | wrkDetlsNew.add(wrkDetl1); |
| | | } |
| | | } |
| | | }else { |
| | | wrkDetlsNew.add(wrkDetl); |
| | | } |
| | | } |
| | | return wrkDetlsNew; |
| | | } |
| | | |
| | | private static String[] GetOrderNo(String orderNo) { |
| | | String[] s3 = orderNo.split("\""); |
| | | String[] s = new String[(s3.length - 1) / 6]; |
| | | if (!Cools.isEmpty(s3)){ |
| | | int i = 0; |
| | | int j = 0; |
| | | for (String ss : s3) { |
| | | if (ss.equals("orderNo")) { |
| | | s[i] = s3[j + 2]; |
| | | i++; |
| | | } |
| | | j++; |
| | | } |
| | | }else { |
| | | s=null; |
| | | } |
| | | return s; |
| | | } |
| | | |
| | | private String[] GetAnfme(String orderNo) { |
| | | String[] s3 = orderNo.split("\""); |
| | | String[] s = new String[(s3.length - 1) / 6]; |
| | | int i = 0; |
| | | int j = 0; |
| | | for (String ss : s3) { |
| | | if (ss.equals("anfme")) { |
| | | String[] s4 = s3[j + 1].split(":"); |
| | | String[] s5 = s4[1].split("\\."); |
| | | s[i] = s5[0]; |
| | | i++; |
| | | } |
| | | j++; |
| | | } |
| | | return s; |
| | | } |
| | | } |