自动化立体仓库 - WMS系统
#
yxFwq
1 天以前 c643491fffa78a9210abfa7cbdd9e0851648a3d7
#
7个文件已修改
177 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/OrderDetl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/MesConstant.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/YXErpPakinParam.java 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -440,6 +440,15 @@
        }
    }
    public String getMatnr$() {
        if (null == this.matnr){ return null; }
        switch (this.matnr){
            case "JL0001":
                return "XJ0001";
        }
        return matnr;
    }
    public String getCreateBy$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.createBy);
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -38,11 +38,11 @@
        }
    }
//    @Scheduled(cron = "0/5 * * * * ? ")
    @Scheduled(cron = "0/10 * * * * ? ")
    @Async("orderThreadPool")
    public void completeAndReport(){
        String erpReport = Parameter.get().getErpReport();
        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
//        String erpReport = Parameter.get().getErpReport();
//        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
            List<Order> orders = orderService.selectComplete();
            for (Order order : orders) {
                ReturnT<String> result = orderSyncHandler.start(order);
@@ -50,7 +50,7 @@
                    log.error("单据[orderNo={}]上报erp失败", order.getOrderNo());
                }
            }
        }
//        }
    }
}
src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
@@ -41,7 +41,7 @@
            for (OrderDetl orderDetl : orderDetls) {
                orderDetl.setUpdateBy(0L);
                orderDetl.setUpdateTime(now);
                orderDetlService.addToLogTable(orderDetl);
//                orderDetlService.addToLogTable(orderDetl);
                orderDetlService.delete(new EntityWrapper<OrderDetl>()
                        .eq("id",orderDetl.getId()));
            }
@@ -49,7 +49,7 @@
        if (!Cools.isEmpty(order)){
            order.setUpdateBy(0L);
            order.setUpdateTime(now);
            orderService.addToLogTable(order);
//            orderService.addToLogTable(order);
            orderService.delete(new EntityWrapper<Order>()
                    .eq("id",order.getId()));
        }
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -55,34 +55,31 @@
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        // 入库完成上报
        if (docType.getPakin() == 1) {
            YXErpPakinParam pakinParam = new YXErpPakinParam();
            String convert = DateUtils.convert(new Date(), DateUtils.yyyyMMdd);
            pakinParam.setCTVCode(order.getOrderNo());
            pakinParam.setDTVDate(convert);
            pakinParam.setDVerifyDate(convert);
            YXErpPakinParam pakinParam = new YXErpPakinParam(order.getOrderNo(),order.getMemo());
            for (OrderDetl orderDetl : orderDetls) {
//                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
                pakinParam.getDetail().add(new YXErpPakinParam.Detl(order.getOrderNo(),orderDetl.getMatnr(), orderDetl.getAnfme()));
                pakinParam.getDetail().add(new YXErpPakinParam.Detl(orderDetl,true));
                pakinParam.getDetail().add(new YXErpPakinParam.Detl(orderDetl,false));
            }
            String response = "";
            boolean success = false;
            try {
                response = new HttpHandler.Builder()
                        .setUri(MesConstant.URL)
                        .setPath(MesConstant.PAKIN_URL)
                        .setUri(MesConstant.ERP_URL)
                        .setPath(MesConstant.ERP_BIG_URL)
                        .setJson(JSON.toJSONString(pakinParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("code").equals(200)) {
                if (jsonObject.getInteger("code").equals(0)) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
                        throw new CoolException("上报完成更新订单状态异常,请联系管理员");
                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.ERP_URL+MesConstant.ERP_BIG_URL, JSON.toJSONString(pakinParam), response);
                    order.setUpdateTime(new Date());
                    orderService.updateById(order);
                    throw new CoolException("上报mes系统失败");
@@ -98,7 +95,7 @@
                    // 保存接口日志
                    apiLogService.save(
                            "胶料入库上报至ERP",
                            MesConstant.URL + MesConstant.PAKIN_URL,
                            MesConstant.ERP_URL + MesConstant.ERP_BIG_URL,
                            null,
                            "127.0.0.1",
                            JSON.toJSONString(pakinParam),
@@ -108,6 +105,7 @@
                } catch (Exception e) { log.error("", e); }
            }
        }
        /*
        // 出库完成上报
        if (docType.getPakout() == 1) {
            MesPakoutParam pakoutParam = new MesPakoutParam();
@@ -162,6 +160,7 @@
                } catch (Exception e) { log.error("", e); }
            }
        }
        */
        return SUCCESS;
    }
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -83,14 +83,14 @@
                            log.error("删除入库通知档[workNo={"+wrkMast.getWrkNo()+"}]失败");
                        }
                    }
//                    if (wrkMast.getCrnNo()>2 && wrkMast.getCrnNo()<6){
//                        // 手动入库生成单据 【 上报三方平台 】
//                        if (!Cools.isEmpty(wrkDetls)) {
//                            if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
//                                exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo());
//                            }
//                        }
//                    }
                    if (wrkMast.getCrnNo()>2 && wrkMast.getCrnNo()<6){
                        // 手动入库生成单据 【 上报三方平台 】
                        if (!Cools.isEmpty(wrkDetls)) {
                            if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
                                exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo());
                            }
                        }
                    }
                // 拣料再入库
                } else if (wrkMast.getIoType() == 53) {
//                    if (!Cools.isEmpty(wrkDetls)) {
src/main/java/com/zy/common/constant/MesConstant.java
@@ -7,6 +7,11 @@
    public static final String URL = "http://192.168.99.130:80";
    public static final String ERP_URL = "http://192.168.20.3:99";
    public static final String ERP_BIG_URL = "api/v1/AssemVouch_add?db=001&zt=001";
    public static final String PACK_DOWN_URL = "mes/api/zy/v1/packDown/sendList";
    public static final String PAKIN_URL = "mes/api/zy/v1/warehouse/sendList";
src/main/java/com/zy/common/model/YXErpPakinParam.java
@@ -1,7 +1,10 @@
package com.zy.common.model;
import com.core.common.DateUtils;
import com.zy.asrs.entity.OrderDetl;
import lombok.Data;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -11,55 +14,106 @@
 */
@Data
public class YXErpPakinParam {
    // 库存调拨单号
    private String cTVCode; //必填
    // 单据日期
    private String dAVDate; //必填
    private String dTVDate; //必填
    // 转出仓库编码
    private String cOWhCode = "100";
    private String dVerifyDate;
    private String cODepCode = "01"; //必填
    private String cIRdCode = "107"; //必填
    private String cORdCode = "207"; //必填
    // 转入仓库编码
    private String cIWhCode = "201";
    // 转出部门编码
    private String cODepCode;
    // 转入部门编码
    private String cIDepCode;
    // 入库类别编码
    private String cIRdCode = "105";
    // 出库类别编码
    private String cORdCode = "205";
    // 制单人
    private String cMaker = "WMS管理员";
    // 审核人
    // 转出部门编码
    private String cVerifyPerson = "WMS管理员";
    // 审核日期
    private String dVerifyDate; //必填
    // 转出仓库编码
    private String cAVMemo = "备注";
    private String cAVCode;
    private List<Detl> detail = new ArrayList<>();
    public YXErpPakinParam() {
        this.dTVDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
        this.dAVDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
        this.dVerifyDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
    }
    public YXErpPakinParam(String cAVCod, String cAVMemo) {
        this.dTVDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
        this.dAVDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
        this.dVerifyDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
        this.cAVCode = cAVCod;
        this.cAVMemo = cAVMemo;
    }
    public YXErpPakinParam(String dTVDate, String cAVMemo, String cAVCod, List<Detl> detail) {
        this.dTVDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
        this.dAVDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
        this.dVerifyDate = DateUtils.convert(new Date(), DateUtils.yyyyMMdd_F);
        this.dTVDate = dTVDate;
        this.cAVMemo = cAVMemo;
        this.cAVCode = cAVCod;
        this.detail = detail;
    }
    public YXErpPakinParam(String cODepCode, String cIRdCode, String cORdCode, String cAVMemo, String cMaker, String cVerifyPerson, List<Detl> detail) {
        this.dTVDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        this.dAVDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        this.dVerifyDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
        this.cODepCode = cODepCode;
        this.cIRdCode = cIRdCode;
        this.cORdCode = cORdCode;
        this.cAVMemo = cAVMemo;
        this.cMaker = cMaker;
        this.cVerifyPerson = cVerifyPerson;
        this.detail = detail;
    }
    @Data
    public static class Detl {
        // 库存调拨单号
        private String cTVCode; //必填
        private String cbMemo; //必填
        // 物料编码  存货编码
        private String cAVCode; //必填
        private String cWhCode; //必填
        private String cInvCode; //必填
        // 物料条码
//        private String barcode;
        // 数量
//        private Double anfme;
        private Double iTVQuantity; //必填
        private double iAVQuantity; //必填
        private String cAVBatch; //必填
        private String bAVType; //必填
        private Integer iGroupNO; //必填
        public Detl() {
        }
        public Detl(String cTVCode, String cInvCode, Double iTVQuantity) {
            this.cTVCode = cTVCode;
            this.cInvCode = cInvCode;
            this.iTVQuantity = iTVQuantity;
        public Detl(OrderDetl orderDetl,boolean bool) {
            if (bool){
                Detl1(orderDetl);
            } else {
                Detl2(orderDetl);
            }
        }
        public void Detl1(OrderDetl orderDetl) {
            this.cbMemo = orderDetl.getMemo();
            this.cAVCode = orderDetl.getOrderNo();
            this.cWhCode = "100";
            this.cInvCode = orderDetl.getMatnr$();
            this.iAVQuantity = orderDetl.getWeight();
            this.cAVBatch = orderDetl.getBatch();
            this.bAVType = "转换前";
            this.iGroupNO = 1;
        }
        public void Detl2(OrderDetl orderDetl) {
            this.cbMemo = orderDetl.getMemo();
            this.cAVCode = orderDetl.getOrderNo();
            this.cWhCode = "201";
            this.cInvCode = orderDetl.getMatnr();
            this.iAVQuantity = orderDetl.getWeight();
            this.cAVBatch = orderDetl.getBatch();
            this.bAVType = "转换后";
            this.iGroupNO = 1;
        }
    }