| | |
| | | while (iterator.hasNext()) { |
| | | WrkDetl wrkDetl = iterator.next(); |
| | | if (!Cools.isEmpty(wrkDetl.getOrderNo())) { |
| | | wrkDetlsKeyOrder.add(wrkDetl); |
| | | orderService.checkComplete(wrkDetl.getOrderNo(),hostId); |
| | | iterator.remove(); |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getWrkSts() == 200) { |
| | | //上报念初ERP 【 上报三方平台 】 |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); |
| | | String nowFormat = dateFormat.format(new Date()); |
| | | |
| | | ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>(); |
| | | String orderNo = ""; |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | orderNo = wrkDetl.getOrderNo(); |
| | | LinkedHashMap<String, Object> mat = new LinkedHashMap<>(); |
| | | mat.put("GoodsCode", wrkDetl.getMatnr()); |
| | | mat.put("Num", wrkDetl.getAnfme()); |
| | | if (!Cools.isEmpty(wrkDetl.getBatch())) { |
| | | mat.put("BatchNo", wrkDetl.getBatch()); |
| | | } |
| | | if (!Cools.isEmpty(wrkDetl.getThreeCode())) { |
| | | mat.put("DepotName", wrkDetl.getThreeCode()); |
| | | } |
| | | if (!Cools.isEmpty(wrkDetl.getSupp())) { |
| | | mat.put("FromDanCode", wrkDetl.getSupp()); |
| | | } |
| | | if (!Cools.isEmpty(wrkDetl.getSuppCode())) { |
| | | mat.put("FromNo", wrkDetl.getSuppCode()); |
| | | } |
| | | mats.add(mat); |
| | | } |
| | | Order order = orderService.selectByNo(orderNo, hostId); |
| | | if (order != null) { |
| | | LinkedHashMap<String, Object> param = new LinkedHashMap<>(); |
| | | param.put("Login", ERP_LOGIN); |
| | | param.put("DanType", order.getDocType$()); |
| | | param.put("Date", nowFormat); |
| | | param.put("FromDanCode", orderNo); |
| | | param.put("Data", mats); |
| | | |
| | | String response = null; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setUri(ERP_URL) |
| | | .setPath(ERP_REPORT + Utils.ncErpDataEncode(param)) |
| | | .build() |
| | | .doGet(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | JSONArray result = jsonObject.getJSONArray("result"); |
| | | Object object = result.get(0); |
| | | JSONObject data = JSON.parseObject(object.toString()); |
| | | if (data.getBoolean("State")) { |
| | | //上报成功 |
| | | } else { |
| | | //上报失败 |
| | | exceptionHandle("上报ERP失败[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | //异常上报失败 |
| | | exceptionHandle("上报ERP异常失败[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } finally { |
| | | //记录上报数据 |
| | | OperateLog operateLog = new OperateLog(); |
| | | operateLog.setAction("上报ERP," + ERP_URL + ERP_REPORT); |
| | | operateLog.setRequest(Utils.ncErpDataEncode(param)); |
| | | operateLog.setResponse(response); |
| | | operateLog.setCreateTime(new Date()); |
| | | operateLog.setSystem("WMS"); |
| | | operateLogService.save(operateLog); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 保存工作主档历史档 |
| | | if (!wrkMastLogService.saveToHistory(wrkMast.getId())) { |
| | | exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo()); |
| | |
| | | } |
| | | // 保存工作明细档历史档 |
| | | if (!wrkDetlLogService.saveToHistory(wrkMast.getWrkNo(), hostId)) { |
| | | // exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | // 删除工作明细档 |
| | | if (!wrkDetlService.remove(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId))) { |
| | | // exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo()); |
| | | } |
| | | // 修改订单状态 作业中 ===>> 已完成 |
| | | for (WrkDetl wrkDetl : wrkDetlsKeyOrder) { |
| | | orderService.checkComplete(wrkDetl.getOrderNo(), hostId); |
| | | List<WrkDetl> wrkDetls2 = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId)); |
| | | // 区分订单任务 |
| | | if (!Cools.isEmpty(wrkDetls2)) { |
| | | Iterator<WrkDetl> iterator = wrkDetls2.iterator(); |
| | | while (iterator.hasNext()) { |
| | | WrkDetl wrkDetl = iterator.next(); |
| | | if (!Cools.isEmpty(wrkDetl.getOrderNo())) { |
| | | orderService.checkComplete(wrkDetl.getOrderNo(),hostId); |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | } |
| | | // // 修改订单状态 作业中 ===>> 已完成 |
| | | // for (WrkDetl wrkDetl : wrkDetlsKeyOrder) { |
| | | // orderService.checkComplete(wrkDetl.getOrderNo(), hostId); |
| | | // } |
| | | } catch (Exception e) { |
| | | log.error("fail", e); |
| | | e.printStackTrace(); |