| | |
| | | private MatService matService; |
| | | |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private ReportQueryMapper reportQueryMapper; |
| | | // @PostMapping("/order/matSync/default/v1") |
| | | //// @AppAuth(memo = "商品信息同步接口") |
| | |
| | | validComb.add(mesToCombParam); |
| | | } |
| | | for (MesToCombParam mesToCombParam : validComb) { |
| | | mesToCombParam.setBoxType1("ERP"); |
| | | openService.mesToComb(mesToCombParam); |
| | | } |
| | | // TODO:待测试 |
| | |
| | | */ |
| | | |
| | | @PostMapping("/outOrder") |
| | | public synchronized R outOrder (@RequestBody ArrayList<OutTaskParam> params){ |
| | | public synchronized R outOrder(@RequestBody ArrayList<OutTaskParam> params, HttpServletRequest request) { |
| | | if (Cools.isEmpty(params)) { |
| | | return R.error("请求参数不能为空"); |
| | | } |
| | | request.setAttribute("cache", params); |
| | | Set<String> orderIds = new LinkedHashSet<>(); |
| | | for (OutTaskParam outTaskParam : params) { |
| | | if (Cools.isEmpty(outTaskParam) || Cools.isEmpty(outTaskParam.getOrderId())) { |
| | |
| | | } |
| | | orderIds.add(outTaskParam.getOrderId()); |
| | | } |
| | | |
| | | Map<String, List<OutTaskParam>> linesByOrder = new LinkedHashMap<>(); |
| | | for (OutTaskParam outTaskParam : params) { |
| | | linesByOrder.computeIfAbsent(outTaskParam.getOrderId(), k -> new ArrayList<>()).add(outTaskParam); |
| | | } |
| | | for (Map.Entry<String, List<OutTaskParam>> entry : linesByOrder.entrySet()) { |
| | | String oid = entry.getKey(); |
| | | List<OutTaskParam> lines = entry.getValue(); |
| | | List<Integer> seqs = new ArrayList<>(lines.size()); |
| | | for (OutTaskParam line : lines) { |
| | | if (line.getSeq() == null) { |
| | | return R.error("出库单「" + oid + "」序号不能为空"); |
| | | } |
| | | seqs.add(line.getSeq()); |
| | | } |
| | | Collections.sort(seqs); |
| | | for (int i = 0; i < seqs.size(); i++) { |
| | | if (!String.valueOf(seqs.get(i)).equals(String.valueOf(i + 1))) { |
| | | return R.error("出库单「" + oid + "」序号不连贯"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | Set<String> seenPallet = new LinkedHashSet<>(); |
| | | for (OutTaskParam outTaskParam : params) { |
| | | String pid = outTaskParam.getPalletId(); |
| | | String palletKey = pid == null ? "" : pid; |
| | | if (!seenPallet.add(palletKey)) { |
| | | return R.error("托盘号重复:" + (Cools.isEmpty(pid) ? "(空)" : pid)); |
| | | } |
| | | } |
| | | |
| | | // if (!orderIds.isEmpty()) { |
| | | // Set<String> existedOrderIds = new LinkedHashSet<>(); |
| | | // List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("user_no", orderIds)); |
| | |
| | | } |
| | | validOutOrders.add(outTaskParam); |
| | | } |
| | | for (OutTaskParam outTaskParam : validOutOrders) { |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("barcode", outTaskParam.getPalletId())); |
| | | if (locMast == null) { |
| | | throw new CoolException("没有找到托盘码=" + outTaskParam.getPalletId() + "对应的库位"); |
| | | } |
| | | } |
| | | |
| | | for (OutTaskParam outTaskParam : validOutOrders) { |
| | | R r = openService.outOrder(outTaskParam,validOutOrders.size()); |
| | |
| | | return r; |
| | | } |
| | | } |
| | | |
| | | if(errorOutOrders.size() > 0) { |
| | | return R.error("库存中不存在该托盘").add(errorOutOrders); |
| | | } |