自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-04-24 7d4305717a994f790f9de12ea0b292f525567950
#
2个文件已修改
1个文件已添加
93 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/MesConstant.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/MesPakoutParam.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -16,6 +16,7 @@
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.constant.MesConstant;
import com.zy.common.model.MesPakinParam;
import com.zy.common.model.MesPakoutParam;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -101,7 +102,52 @@
        }
        // 出库完成上报
        if (docType.getPakout() == 1) {
            // todo
            MesPakoutParam pakoutParam = new MesPakoutParam();
            pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime()));    // todo:luxiaotao
            pakoutParam.setLgortFrom("5008");   // todo:luxiaotao
            pakoutParam.setLgortTo("5006");   // todo:luxiaotao
            for (OrderDetl orderDetl : orderDetls) {
                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
                pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
            }
            String response = "";
            boolean success = false;
            try {
                response = new HttpHandler.Builder()
                        .setUri(MesConstant.URL)
                        .setPath(MesConstant.PAKOUT_URL)    // todo:luxiaotao
                        .setJson(JSON.toJSONString(pakoutParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("code").equals(200)) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response);
                    throw new CoolException("上报mes系统失败");
                }
            } catch (Exception e) {
                log.error("fail", e);
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg(e.getMessage());
            } finally {
                try {
                    // 保存接口日志
                    apiLogService.save(
                            "成品库出库上报",
                            MesConstant.URL + MesConstant.PAKOUT_URL,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(pakoutParam),
                            response,
                            success
                    );
                } catch (Exception e) { log.error("", e); }
            }
        }
        return SUCCESS;
    }
src/main/java/com/zy/common/constant/MesConstant.java
@@ -12,4 +12,6 @@
    public static final String PAKIN_URL = "mes/api/zy/v1/warehouse/sendList";
    public static final String PAKOUT_URL = "mes/api/zy/v1/warehous1e/sendList";
}
src/main/java/com/zy/common/model/MesPakoutParam.java
New file
@@ -0,0 +1,43 @@
package com.zy.common.model;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by vincent on 2022/4/21
 */
@Data
public class MesPakoutParam {
    // 入库时间
    private String pakoutTime;
    // 来源地 - 写死
    private String lgortFrom;
    // 目的地 - 写死
    private String lgortTo;
    private List<Detl> list = new ArrayList<>();
    @Data
    public static class Detl {
        // 物料条码
        private String barcode;
        // 数量
        private Double anfme;
        public Detl() {
        }
        public Detl(String barcode, Double anfme) {
            this.barcode = barcode;
            this.anfme = anfme;
        }
    }
}