自动化立体仓库 - WMS系统
#
18516761980
2023-02-03 3b037b2a09741d967d9ba52ed7b63b53d84fe456
#
7个文件已修改
204 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/entity/ErpDetTb.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/entity/ErpDetTbBak.java 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/task/scheduler/ErpPrdtSchedulerNew.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -70,28 +70,28 @@
                            exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo());
                        }
                    }
                    // 手动入库生成单据 【 上报三方平台 】
                    if (!Cools.isEmpty(wrkDetls)) {
                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
                            exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo());
                        }
                    }
//                    // 手动入库生成单据 【 上报三方平台 】
//                    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)) {
                        if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
                            exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo());
                        }
                    }
//                    if (!Cools.isEmpty(wrkDetls)) {
//                        if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
//                            exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo());
//                        }
//                    }
                }
            // 出库 --------------------------------------------------------------------------------
            } else if (wrkMast.getWrkSts() == 15) {
                if (!Cools.isEmpty(wrkDetls)) {
                    if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
                        exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo());
                    }
                }
//                if (!Cools.isEmpty(wrkDetls)) {
//                    if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
//                        exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo());
//                    }
//                }
            }
            // 保存工作主档历史档
src/main/java/com/zy/ints/entity/ErpDetTb.java
@@ -14,17 +14,17 @@
import java.util.Date;
@Data
@TableName("erp_det_tb")
@TableName("ERP_DETTB")
public class ErpDetTb implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 单据号码
     * 单据号码  主键
     */
    @ApiModelProperty(value = "单据号码")
    @TableId(value = "bill_no", type = IdType.INPUT)
    @TableField("bill_no")
    @TableId(value = "BIL_NO", type = IdType.INPUT)
    @TableField("BIL_NO")
    private String billNo;
    /**
@@ -32,7 +32,7 @@
     */
    @ApiModelProperty(value = "品号")
    @TableId(value = "prd_no", type = IdType.INPUT)
    @TableField("prd_no")
    @TableField("PRD_NO")
    private String prdNo;
    /**
@@ -51,13 +51,17 @@
     * 增减符号:1(加,入库)、2(减,出库)
     */
    @ApiModelProperty(value = "增减符号:1(加,入库)、2(减,出库)")
    @TableField("add_id")
    private String addId;
    @ApiModelProperty(value = "增减符号:1(加,入库)、2(减,出库)")
    @TableField("ADD_ID")
    private int addId2;
    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    @TableField("QTY")
    private Double qty;
    /**
@@ -65,13 +69,14 @@
     */
    @ApiModelProperty(value = "货品特征")
    @TableId(value = "prd_mark", type = IdType.INPUT)
    @TableField("prd_mark")
    @TableField("PRD_MARK")
    private String prdMark;
    /**
     * 仓库
     */
    @ApiModelProperty(value = "仓库")
    @TableField("WH")
    private String wh;
    /**
@@ -79,39 +84,53 @@
     */
    @ApiModelProperty(value = "日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("BIL_DATE")
    private Date billdate;
    /**
     * 状态:0(初始状态)、1(已接收)、2(异常)
     */
    @ApiModelProperty(value = "状态:0(初始状态)、1(已接收)、2(异常)")
    @TableField("STATUS")
    private Integer status;
    /**
     * 行号 主键
     */
    @ApiModelProperty(value = "状态:0(初始状态)、1(已接收)、2(异常)")
    @TableField("ITM")
    private Integer itm;
    /**
     * 备用字段1
     */
    @ApiModelProperty(value = "备用字段1")
    @TableField("Temp1")
    private String temp1;
    /**
     * 备用字段2
     */
    @ApiModelProperty(value = "备用字段2")
    @TableField("Temp2")
    private String temp2;
    /**
     * 备用字段3
     */
    @ApiModelProperty(value = "备用字段3")
    @TableField("Temp3")
    private String temp3;
    public ErpDetTb() {
    }
    public ErpDetTb(String billNo, String prdNo, String iokindid, String addId, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) {
    public ErpDetTb(String billNo, String prdNo, String iokindid, int itm, int addId2, String addId, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) {
        this.billNo = billNo;
        this.prdNo = prdNo;
        this.iokindid = iokindid;
        this.itm = itm;
        this.addId2 = addId2;
        this.addId = addId;
        this.qty = qty;
        this.prdMark = prdMark;
@@ -123,6 +142,21 @@
        this.temp3 = temp3;
    }
    public ErpDetTb(String billNo, String prdNo, int itm, int addId2, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) {
        this.billNo = billNo;
        this.prdNo = prdNo;
        this.itm = itm;
        this.addId2 = addId2;
        this.qty = qty;
        this.prdMark = prdMark;
        this.wh = wh;
        this.billdate = billdate;
        this.status = status;
        this.temp1 = temp1;
        this.temp2 = temp2;
        this.temp3 = temp3;
    }
//    DetTb detTb = new DetTb(
//            null,    // id[非空]
//            null,    // 单据号码[非空]
src/main/java/com/zy/ints/entity/ErpDetTbBak.java
@@ -14,17 +14,17 @@
import java.util.Date;
@Data
@TableName("erp_det_tb_bak")
@TableName("ERP_DETTB_BAK")
public class ErpDetTbBak implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 单据号码
     * 单据号码  主键
     */
    @ApiModelProperty(value = "单据号码")
    @TableId(value = "bill_no", type = IdType.INPUT)
    @TableField("bill_no")
    @TableId(value = "BIL_NO", type = IdType.INPUT)
    @TableField("BIL_NO")
    private String billNo;
    /**
@@ -32,7 +32,7 @@
     */
    @ApiModelProperty(value = "品号")
    @TableId(value = "prd_no", type = IdType.INPUT)
    @TableField("prd_no")
    @TableField("PRD_NO")
    private String prdNo;
    /**
@@ -51,13 +51,17 @@
     * 增减符号:1(加,入库)、2(减,出库)
     */
    @ApiModelProperty(value = "增减符号:1(加,入库)、2(减,出库)")
    @TableField("add_id")
    private String addId;
    @ApiModelProperty(value = "增减符号:1(加,入库)、2(减,出库)")
    @TableField("ADD_ID")
    private int addId2;
    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    @TableField("QTY")
    private Double qty;
    /**
@@ -65,13 +69,14 @@
     */
    @ApiModelProperty(value = "货品特征")
    @TableId(value = "prd_mark", type = IdType.INPUT)
    @TableField("prd_mark")
    @TableField("PRD_MARK")
    private String prdMark;
    /**
     * 仓库
     */
    @ApiModelProperty(value = "仓库")
    @TableField("WH")
    private String wh;
    /**
@@ -79,39 +84,53 @@
     */
    @ApiModelProperty(value = "日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("BIL_DATE")
    private Date billdate;
    /**
     * 状态:0(初始状态)、1(已接收)、2(异常)
     */
    @ApiModelProperty(value = "状态:0(初始状态)、1(已接收)、2(异常)")
    @TableField("STATUS")
    private Integer status;
    /**
     * 行号 主键
     */
    @ApiModelProperty(value = "状态:0(初始状态)、1(已接收)、2(异常)")
    @TableField("ITM")
    private Integer itm;
    /**
     * 备用字段1
     */
    @ApiModelProperty(value = "备用字段1")
    @TableField("Temp1")
    private String temp1;
    /**
     * 备用字段2
     */
    @ApiModelProperty(value = "备用字段2")
    @TableField("Temp2")
    private String temp2;
    /**
     * 备用字段3
     */
    @ApiModelProperty(value = "备用字段3")
    @TableField("Temp3")
    private String temp3;
    public ErpDetTbBak() {
    }
    public ErpDetTbBak(String billNo, String prdNo, String iokindid, String addId, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) {
    public ErpDetTbBak(String billNo, String prdNo, String iokindid, int itm, int addId2, String addId, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) {
        this.billNo = billNo;
        this.prdNo = prdNo;
        this.iokindid = iokindid;
        this.itm = itm;
        this.addId2 = addId2;
        this.addId = addId;
        this.qty = qty;
        this.prdMark = prdMark;
@@ -123,6 +142,21 @@
        this.temp3 = temp3;
    }
    public ErpDetTbBak(String billNo, String prdNo, int itm, int addId2, Double qty, String prdMark, String wh, Date billdate, Integer status, String temp1, String temp2, String temp3) {
        this.billNo = billNo;
        this.prdNo = prdNo;
        this.itm = itm;
        this.addId2 = addId2;
        this.qty = qty;
        this.prdMark = prdMark;
        this.wh = wh;
        this.billdate = billdate;
        this.status = status;
        this.temp1 = temp1;
        this.temp2 = temp2;
        this.temp3 = temp3;
    }
//    DetTb detTb = new DetTb(
//            null,    // id[非空]
//            null,    // 单据号码[非空]
src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java
@@ -34,6 +34,8 @@
     */
    @Value("${erp.enabled}")
    private Boolean erpEnabled;
    @Value("${erp.enabledErpDetTb}")
    private Boolean erpEnabledErpDetTb;
    @Value("${erp.useName.ip}")
    private String ip;
    @Autowired
@@ -56,10 +58,10 @@
     */
    @Scheduled(cron = "${erp.refreshtime}")
    public void InOrOutOrder() {
        if (!erpEnabled) return;
        String sqlSelectErpDetTb = "select bill_no as billNo,prd_no as prdNo,iokindid,add_id as addId,qty,prd_mark as prdMark,wh,billdate,status,temp1,temp2,temp3 from erp_det_tb where 1=1";
        String sqlUpDateErpDetTbOne = "update erp_det_tb set status=1 where 1=1 and prd_no=";
        String sqlUpDateErpDetTbTwo = "update erp_det_tb set status=2 ";
        if (!erpEnabledErpDetTb) return;
        String sqlSelectErpDetTb = "select BIL_NO as billNo,prd_no as prdNo,ITM as itm,ADD_ID as addId2,QTY as qty,PRD_MARK as prdMark,WH as wh,BIL_DATE as billdate,STATUS as status,Temp1 as temp1,Temp2 as temp2,Temp3 as temp3 from ERP_DETTB where 1=1";
        String sqlUpDateErpDetTbOne = "update ERP_DETTB set STATUS=1 where 1=1 and PRD_NO=";
        String sqlUpDateErpDetTbTwo = "update ERP_DETTB set STATUS=2 ";
        try {
            List<ErpDetTb> erpDetTbs = erpSqlServer.select(sqlSelectErpDetTb, ErpDetTb.class);
@@ -70,8 +72,8 @@
                    if (status == 0) {
                        Mat mat = matService.selectByMatnr(erpDetTb.getPrdNo());
                        if (Cools.isEmpty(mat)) {
                            erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp1='品号信息在立库不存在,请先添加商品!!!'" + "where 1=1 and prd_no=" + "'" + erpDetTb.getPrdNo() + "'");
                            callApiLogSave(erpDetTb, "erp_det_tb", "品号信息在立库不存在,请先添加商品!!!", false);
                            erpSqlServer.update(sqlUpDateErpDetTbTwo + ",Temp1='品号信息在立库不存在,请先添加商品!!!'" + "where 1=1 and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'");
                            callApiLogSave(erpDetTb, "ERP_DETTB", "品号信息在立库不存在,请先添加商品!!!", false);
                        } else {
                            Order order = orderService.selectByNo(erpDetTb.getBillNo());
                            if (Cools.isEmpty(order)) {
@@ -111,15 +113,15 @@
                                        now,    // 修改时间
                                        null    // 备注
                                );
                                String InAndOut = erpDetTb.getAddId().equals("2") ? "(出库)" : "(入库)";
                                DocType docType = docTypeService.selectOrAdd(erpDetTb.getIokindid$() + InAndOut, erpDetTb.getAddId().equals("1"));
                                String InAndOut = erpDetTb.getAddId2()==2 ? "(出库)" : "(入库)";
                                DocType docType = docTypeService.selectOrAdd("ERP订单"+InAndOut, erpDetTb.getAddId().equals("1"));
                                if (!Cools.isEmpty(docType)) {
                                    order.setDocType(docType.getDocId());
                                    if (!orderService.insert(order)) {
                                        callApiLogSave(erpDetTb, "erp_det_tb", "订单主档添加失败!!", false);
                                        callApiLogSave(erpDetTb, "ERP_DETTB", "订单主档添加失败!!", false);
                                        continue;
                                    } else {
                                        callApiLogSave(erpDetTb, "erp_det_tb", "订单主档添加成功!!", true);
                                        callApiLogSave(erpDetTb, "ERP_DETTB", "订单主档添加成功!!", true);
                                    }
                                }
                            }
@@ -146,10 +148,10 @@
                                    orderDetl.setMemo(erpDetTb.getWh());
                                    if (orderDetlService.insert(orderDetl)) {
                                        erpSqlServer.update(sqlUpDateErpDetTbOne + "'" + erpDetTb.getPrdNo() + "'");
                                        callApiLogSave(erpDetTb, "erp_det_tb", "接收ERP下发订单接收成功!!", true);
                                        callApiLogSave(erpDetTb, "ERP_DETTB", "接收ERP下发订单接收成功!!", true);
                                    } else {
                                        erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp1='添加订单明细档失败!!!'" + "where 1=1 and prd_no=" + "'" + erpDetTb.getPrdNo() + "'");
                                        callApiLogSave(erpDetTb, "erp_det_tb", "ERP下发订单接收失败!!", false);
                                        erpSqlServer.update(sqlUpDateErpDetTbTwo + ",temp1='添加订单明细档失败!!!'" + "where 1=1 and PRD_NO=" + "'" + erpDetTb.getPrdNo() + "'");
                                        callApiLogSave(erpDetTb, "ERP_DETTB", "ERP下发订单接收失败!!", false);
                                    }
                                }
                            }
@@ -157,38 +159,39 @@
                    } else if (status == 1) {
                        String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now);
                        HashMap<String, Object> condition = new HashMap<>();
                        condition.put("bill_no", "'" + erpDetTb.getBillNo() + "'");
                        condition.put("prd_no", "'" + erpDetTb.getPrdNo() + "'");
                        condition.put("iokindid", "'" + erpDetTb.getIokindid() + "'");
                        condition.put("add_id", "'" + erpDetTb.getAddId() + "'");
                        condition.put("qty", "'" + erpDetTb.getQty() + "'");
                        condition.put("prd_mark", "'" + erpDetTb.getPrdMark() + "'");
                        condition.put("wh", "'" + erpDetTb.getWh() + "'");
                        condition.put("billdate", "'" + format + "'");
                        condition.put("status", "'" + erpDetTb.getStatus() + "'");
                        condition.put("temp1", "'" + erpDetTb.getTemp1() + "'");
                        condition.put("temp2", "'" + erpDetTb.getTemp2() + "'");
                        condition.put("temp3", "'" + erpDetTb.getTemp3() + "'");
                        condition.put("BIL_NO", "'" + erpDetTb.getBillNo() + "'");
                        condition.put("PRD_NO", "'" + erpDetTb.getPrdNo() + "'");
                        condition.put("ITM", "'" + erpDetTb.getItm() + "'");
                        condition.put("ADD_ID", "'" + erpDetTb.getAddId2() + "'");
                        condition.put("QTY", "'" + erpDetTb.getQty() + "'");
                        condition.put("PRD_MARK", "'" + erpDetTb.getPrdMark() + "'");
                        condition.put("WH", "'" + erpDetTb.getWh() + "'");
                        condition.put("BIL_DATE", "'" + format + "'");
                        condition.put("STATUS", "'" + erpDetTb.getStatus() + "'");
                        condition.put("Temp1", "'" + erpDetTb.getTemp1() + "'");
                        condition.put("Temp2", "'" + erpDetTb.getTemp2() + "'");
                        condition.put("Temp3", "'" + erpDetTb.getTemp3() + "'");
                        erpSqlServer.insert(ErpDetTbBak.class, condition);
//                        callApiLogSave(erpDetTb, "erp_det_tb_bak", "ERP下发订单备份成功!!", true);
//                        callApiLogSave(erpDetTb, "ERP_DETTB_BAK", "ERP下发订单备份成功!!", true);
                        HashMap<String, String> condition2 = new HashMap<>();
                        condition2.put("bill_no", "'" + erpDetTb.getBillNo() + "'");
                        condition2.put("prd_no", "'" + erpDetTb.getPrdNo() + "'");
                        condition2.put("prd_mark", "'" + erpDetTb.getPrdMark() + "'");
                        condition2.put("BIL_NO", "'" + erpDetTb.getBillNo() + "'");
                        condition2.put("PRD_NO", "'" + erpDetTb.getPrdNo() + "'");
                        condition2.put("ITM", "'" + erpDetTb.getItm() + "'");
                        condition2.put("PRD_MARK", "'" + erpDetTb.getPrdMark() + "'");
                        erpSqlServer.delete(ErpDetTb.class, condition2);
//                        callApiLogSave(erpDetTb, "erp_det_tb", "ERP下发订单备份后删除成功!!", true);
//                        callApiLogSave(erpDetTb, "ERP_DETTB", "ERP下发订单备份后删除成功!!", true);
                    } else {
                        callApiLogSave(erpDetTb, "erp_det_tb", "接收ERP下发订单失败!!!状态异常!!!", false);
                        callApiLogSave(erpDetTb, "ERP_DETTB", "接收ERP下发订单失败!!!状态异常!!!", false);
                    }
                }
            }
        } catch (Exception e) {
            Date date = new Date();
            log.error(date + ": 表名:erp_det_tb :" + e);
            log.error(date + ": 表名:ERP_DETTB :" + e);
        }
    }
src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java
@@ -44,7 +44,7 @@
    private MatService matService;
    /**
     * 获取商品信息表资料  年前
     * 获取商品信息表资料
     */
    @Scheduled(cron = "${erp.refreshtime}")
    public void obtainPedt() {
src/main/java/com/zy/ints/task/scheduler/ErpPrdtSchedulerNew.java
@@ -46,7 +46,7 @@
    private MatService matService;
    /**
     * 获取商品信息表资料
     * 获取商品信息表资料   年前
     */
    @Scheduled(cron = "${erp.refreshtime}")
    public void obtainPedt() {
src/main/resources/application.yml
@@ -53,6 +53,7 @@
erp:
  enabled: false
  enabledNew: false
  enabledErpDetTb: false
  #  enabled: false
  #查看ERP中间表间隔
  refreshtime: 0/5 * * * * ?