#
lsh
2024-09-19 e50a83fc5878d44ea0f5c43037002cc1b3d1c6f2
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
@@ -73,7 +73,7 @@
                while (iterator.hasNext()) {
                    WrkDetl wrkDetl = iterator.next();
                    if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                        wrkDetlsKeyOrder.add(wrkDetl);
                        orderService.checkComplete(wrkDetl.getOrderNo(),hostId);
                        iterator.remove();
                    }
                }
@@ -118,77 +118,6 @@
                }
            }
            if (!wrkDetlsKeyOrder.isEmpty()) {
                //上报念初ERP   【 上报三方平台 】
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
                String nowFormat = dateFormat.format(new Date());
                ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>();
                String orderNo = "";
                for (WrkDetl wrkDetl : wrkDetlsKeyOrder) {
                    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$()+"SH");
                    param.put("Date", nowFormat);
                    param.put("DanCode", orderNo);
                    param.put("Data", mats);
                    String response = "";
                    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");
                        operateLog.setUserId(9527L);
                        operateLog.setIp("127.0.0.1");
                        operateLogService.save(operateLog);
                    }
                }
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.saveToHistory(wrkMast.getId())) {
                exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo());
@@ -199,16 +128,28 @@
            }
            // 保存工作明细档历史档
            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();