自动化立体仓库 - WMS系统
#
lty
18 小时以前 33686e35470b3548053d03532fbefa40f2470a2b
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -155,7 +155,7 @@
                    path = orgAddress;
                    break;
                case "PUR_RECEIVEBIll": //已审核收料单查询
                    jsonObject.put("start_biztime",  latestUpdateTime);//业务起始日期
                    jsonObject.put("start_biztime",  "2026-03-28");//业务起始日期
                    jsonObject.put("end_biztime", sdf1.format(now));//业务结束日期
                    jsonObject.put("billno", null);
                    jsonObject.put("billstatus", Arrays.asList("C"));//数据状态 [A:暂存, B:已提交, C:已审核]
@@ -262,20 +262,36 @@
                        .setJson(add)
                        .build()
                        .doPost();
                if (response == null || response.trim().isEmpty()) {
                    log.error("检索失败:返回空响应,path={}", path);
                    continue;
                }
                JSONObject jsonResponse = JSON.parseObject(response);
                if(jsonResponse.getString("errorCode").equals("401")){
                if (jsonResponse == null) {
                    log.error("检索失败:响应无法解析为JSON,path={},response={}", path, response);
                    continue;
                }
                if ("401".equals(jsonResponse.getString("errorCode"))) {
                    log.error("检索失败错误信息:{}", jsonResponse.getString("message"));
                    loginAuthenticationHandler.start();
                    continue;
                }
                JSONArray data = jsonResponse.getJSONObject("data").getJSONArray("rows");
                JSONObject dataObj = jsonResponse.getJSONObject("data");
                if (dataObj == null) {
                    log.error("检索失败:响应data为空,path={},response={}", path, response);
                    continue;
                }
                JSONArray data = dataObj.getJSONArray("rows");
                if (data == null) {
                    continue;
                }
                if(data.size()<=0)  continue;
                //商品档案同步
                if(kingDeeUtilType.formId.equals("BD_MATERIAL")) {
                    Tag tag = tagService.selectByName("全部", 1);
                    // 处理分页:根据返回的totalCount和pageSize计算页数
                    int pageSize = jsonResponse.getJSONObject("data").getIntValue("pageSize");
                    int totalCount = jsonResponse.getJSONObject("data").getIntValue("totalCount");
                    int pageSize = dataObj.getIntValue("pageSize");
                    int totalCount = dataObj.getIntValue("totalCount");
                    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
                    for (int page = 1; page <= totalPages; page++) {
@@ -290,8 +306,24 @@
                                .build()
                                .doPost();
                        if (response == null || response.trim().isEmpty()) {
                            log.error("检索失败:分页返回空响应,path={},pageNo={}", path, page);
                            continue;
                        }
                        jsonResponse = JSON.parseObject(response);
                        data = jsonResponse.getJSONObject("data").getJSONArray("rows");
                        if (jsonResponse == null) {
                            log.error("检索失败:分页响应无法解析为JSON,path={},pageNo={},response={}", path, page, response);
                            continue;
                        }
                        dataObj = jsonResponse.getJSONObject("data");
                        if (dataObj == null) {
                            log.error("检索失败:分页响应data为空,path={},pageNo={},response={}", path, page, response);
                            continue;
                        }
                        data = dataObj.getJSONArray("rows");
                        if (data == null) {
                            continue;
                        }
                        for (int j = 0; j < data.size(); j++) {
                            JSONObject jsonObjectNew = data.getJSONObject(j);
                            Date modifyTime = sdf1.parse(jsonObjectNew.get("modifytime").toString());
@@ -463,11 +495,11 @@
                            String ownerUuid = jsonObjectNew.get("org_number").toString();//erp货主编号
                            String orderId = jsonObjectNew.get("id").toString();
                            JSONObject detailParam = new JSONObject();
                            JSONObject dataObj = new JSONObject();
                            dataObj.put("billno", billNo);
                            JSONObject billnoParam = new JSONObject();
                            billnoParam.put("billno", billNo);
                            detailParam.put("pageNo", 1);
                            detailParam.put("pageSize", 100);
                            detailParam.put("data", dataObj);
                            detailParam.put("data", billnoParam);
                            boolean hasNext = true;
                            while (hasNext) {
                                String reqJson = detailParam.toJSONString();
@@ -577,17 +609,14 @@
                                        }
                                        Double erpAnfme = anfme*mat.getSafeQty();
                                        Order order1 = orderService.selectByNo( billNo);
                                        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order1.getId());
                                        boolean sign = false;
                                        for (OrderDetl orderDetl : orderDetls){
                                            if (orderDetl.getMatnr().equals(matnr)){
                                                sign = true;
                                                break;
                                            }
                                        }
                                        if (sign){
                                            continue;
                                        }
                                        List<OrderDetl> orderDetls =
                                                orderDetlService.selectByOrderId(order.getId());
                                        boolean exists = orderDetls.stream()
                                                .anyMatch(o ->
                                                        o.getMatnr().equals(matnr) &&
                                                                o.getBoxType3().equals(pOrderNo)
                                                );
                                        if (exists) continue;
                                        LocSupp locSupp = null;
                                        String supp =null;
                                        locSupp = locSuppService.selectByUuid(suppCode);
@@ -1671,9 +1700,9 @@
                                orderDetl.setSupp(supp);
                                orderDetl.setSuppCode(suppCode);
                                orderDetl.setSku(matnr);
                                orderDetl.setStandby1(s1 != null? s1:"1");
                                orderDetl.setStandby2(s2 != null? s2:"1");
                                orderDetl.setStandby3(s3 != null? s3:"1");
                                orderDetl.setStandby1(Cools.isEmpty(s1) ? "1" : s1);
                                orderDetl.setStandby2(Cools.isEmpty(s2) ? "1" : s2);
                                orderDetl.setStandby3(Cools.isEmpty(s3) ? "1" : s3);
                                orderDetl.setBoxType1(owner);
                                orderDetl.setBoxType2(ownerUuid);
                                orderDetl.setBoxType3(pOrderNo);
@@ -1924,4 +1953,4 @@
    }
}
}