自动化立体仓库 - WMS系统
skyouc
2 天以前 dd37f771537d173f891888c1da7735feb3dabdd5
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -5,8 +5,12 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.api.entity.OrderItemsParam;
import com.zy.api.entity.OutOrderParams;
import com.zy.api.entity.PubOrderParams;
import com.zy.api.entity.ReportOrderParam;
import com.zy.api.entity.ReportOrderParams;
import com.zy.api.entity.StockUpOrderParams;
import com.zy.api.entity.dto.XSR;
import com.zy.api.service.KopenApiService;
import com.zy.asrs.entity.*;
@@ -310,7 +314,7 @@
                    // 保存接口日志
                    apiLogService.save(
                            "上架派工单完成上报",
                            MesConstant.URL + MesConstant.PAKIN_URL,
                            MesConstant.URL + MesConstant.IN_DISPATCH_RESULT,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(orderParam),
@@ -385,9 +389,9 @@
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL + MesConstant.PAKOUT_URL,
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL + MesConstant.OUT_DISPATCH_RESULT,
                            JSON.toJSONString(orderParam), JSON.toJSONString(response));
                    throw new CoolException("上报mes系统失败");
                    throw new CoolException("上报KOPEN系统失败");
                }
            } catch (Exception e) {
                log.error("fail", e);
@@ -397,7 +401,7 @@
                    // 保存接口日志
                    apiLogService.save(
                            "备货派工单完成上报",
                            MesConstant.URL + MesConstant.PAKOUT_URL,
                            MesConstant.URL + MesConstant.OUT_DISPATCH_RESULT,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(orderParam),
@@ -407,6 +411,88 @@
                    log.error("", e);
                }
            }
        } else if (Integer.valueOf(docType.getDocId() + "").equals(OrderTypeEnum.STOCK.type)) {
            // 备货单反馈
            StockUpOrderParams stockUpOrderParams = new StockUpOrderParams();
            stockUpOrderParams.setCompany_id(order.getCstmrName())
                    .setWms_id(order.getId() + "")
                    .setDispatch_no(order.getNumber());
            OutOrderParams pubOrderParams = new OutOrderParams();
            pubOrderParams.setPick_no(order.getOrderNo())
                    .setOrder_no(order.getShipCode())
                    .setCus_id(order.getCstmrName())
                    .setCus_address(order.getTel());
            List<OrderItemsParam> reportOrderParams = new ArrayList<>();
            orderDetls.forEach(detl -> {
                Mat material = matService.selectByMatnr(detl.getMatnr());
                if (Objects.isNull(material)) {
                    throw new CoolException("物料不存在");
                }
                OrderItemsParam itemParam = new OrderItemsParam();
                // 上报时,默认产品类型是null
                itemParam.setPro_type(material.getProType());
                // 上报时,默认产品编码
                itemParam.setPro_komcode(material.getMatnr());
                // 上报时,默认产品id是供应商编码
                itemParam.setPro_id(detl.getSuppCode());
                // 上报时,默认上报时间是更新时间
                itemParam.setPick_qty(detl.getQty().intValue());
                reportOrderParams.add(itemParam);
            });
            pubOrderParams.setPartList(reportOrderParams);
            List<OutOrderParams> pubOrderParamsList = new ArrayList<>();
            pubOrderParamsList.add(pubOrderParams);
            //设置派工单明细
            stockUpOrderParams.setDetails(pubOrderParamsList);
            stockUpOrderParams.setUpdate_time(order.getUpdateBy$());
            XSR response = null;
            boolean success = false;
            try {
                // response = new HttpHandler.Builder()
                // .setUri(MesConstant.URL)
                // .setPath(MesConstant.PAKOUT_URL)
                // .setJson(JSON.toJSONString(pakoutParam))
                // .build()
                // .doPost();
                // JSONObject jsonObject = JSON.parseObject(response);
                // if (jsonObject.getInteger("code").equals(200)) {
                if (true) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), settle, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL + MesConstant.OUT_DETAILS_RESULT,
                            JSON.toJSONString(stockUpOrderParams), JSON.toJSONString(response));
                    throw new CoolException("上报KOPEN系统失败");
                }
            } catch (Exception e) {
                log.error("fail", e);
                return FAIL.setMsg(e.getMessage());
            } finally {
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "备货单完成上报",
                            MesConstant.URL + MesConstant.OUT_DETAILS_RESULT,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(stockUpOrderParams),
                            JSON.toJSONString(response),
                            success);
                } catch (Exception e) {
                    log.error("", e);
                }
            }
        }
        return SUCCESS;
    }