自动化立体仓库 - WMS系统
18516761980
2023-02-15 695b1ff891c617db7a03488d11e0ff0bc917b2c5
Merge remote-tracking branch 'aliyun/lfdasrs' into lfdasrs
5个文件已修改
134 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/entity/Prdt.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/entity/PrdtBak.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -168,8 +168,13 @@
            }
        }
        if (!locDetlDtos.isEmpty()) {
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
            // 启动出库开始 101.出库
            stockOut(staNo, locDetlDtos, null, userId);
            }else {
                throw new CoolException("所选库位存在状态不为F、D的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$());
            }
        } else {
            throw new CoolException("库存不存在");
        }
@@ -431,6 +436,9 @@
            if (Cools.isEmpty(locMast)) {
                throw new CoolException(locNo+"库位不存在");
            }
            if (!locMast.getLocSts().equals("D")){
                throw new CoolException("所选库位存在状态不为D的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$());
            }
            // 获取源站
            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                    .eq("type_no", 110)
@@ -556,8 +564,13 @@
            }
        }
        if (!locDetlDtos.isEmpty()) {
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
            if (locMast.getLocSts().equals("F")){
            // 启动出库开始 107.盘点出库
            stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
            }else {
                throw new CoolException("所选库位存在状态不为F的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$());
            }
        } else {
            throw new CoolException("库位物料不存在");
        }
@@ -575,6 +588,9 @@
        if (Cools.isEmpty(loc)){
            throw new CoolException("未找到库位");
        }
        if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
            throw new CoolException("库位状态已改变");
        }
        if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) {
            throw new CoolException("移转库位属于不同堆垛机");
        }
src/main/java/com/zy/ints/entity/Prdt.java
@@ -11,7 +11,7 @@
import java.io.Serializable;
@Data
@TableName("PRDT")
@TableName("ERP_PRDT")
public class Prdt implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -21,44 +21,57 @@
     */
    @ApiModelProperty(value = "品号")
    @TableId(value = "prd_no", type = IdType.INPUT)
    @TableField("PRD_NO")
    @TableField("prd_no")
    private String prdNo;
    /**
     * 品名
     */
    @ApiModelProperty(value = "品名")
    @TableField("NAME")
    private String name;
    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    @TableField("UT")
    private String ut;
    /**
     * 规格
     */
    @ApiModelProperty(value = "规格")
    @TableField("SPC")
    private String spc;
    /**
     * 类型
     */
    @ApiModelProperty(value = "类型")
    @TableField("TYPE")
    private Integer type;
    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    @TableField("STATUS")
    private Integer status;
    /**
     * 备用字段1
     */
    @ApiModelProperty(value = "备用字段1")
    private String temp1;
    /**
     * 备用字段2
     */
    @ApiModelProperty(value = "备用字段2")
    private String temp2;
    /**
     * 备用字段3
     */
    @ApiModelProperty(value = "备用字段3")
    private String temp3;
    public Prdt() {
    }
src/main/java/com/zy/ints/entity/PrdtBak.java
@@ -10,7 +10,7 @@
import java.io.Serializable;
@Data
@TableName("erp_prdt_bak")
@TableName("ERP_PRDT_BAK")
public class PrdtBak implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -53,6 +53,24 @@
    @ApiModelProperty(value = "状态")
    private Integer status;
    /**
     * 备用字段1
     */
    @ApiModelProperty(value = "备用字段1")
    private String temp1;
    /**
     * 备用字段2
     */
    @ApiModelProperty(value = "备用字段2")
    private String temp2;
    /**
     * 备用字段3
     */
    @ApiModelProperty(value = "备用字段3")
    private String temp3;
    public PrdtBak() {
    }
src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java
@@ -34,6 +34,8 @@
    private Boolean erpEnabled;
    @Value("${erp.useName.ip}")
    private String ip;
    @Value("${erp.enabledErpPrdt}")
    private Boolean enabledErpPrdt;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
@@ -48,10 +50,10 @@
     */
    @Scheduled(cron = "${erp.refreshtime}")
    public void obtainPedt() {
        if (!erpEnabled) return;
        String sqlSelectPrdt = "select PRD_NO as prdNo,NAME as name,UT as ut,SPC as spc from PRDT where 1=1";
        String sqlUpDatePrdtOne = "update PRDT set STATUS=1 where PRD_NO=";
        String sqlUpDatePrdtTwo = "update PRDT set STATUS=2 where PRD_NO=";
        if (!enabledErpPrdt) return;
        String sqlSelectPrdt = "select prd_no as prdNo,name,ut,spc,status,type,temp1 from ERP_PRDT where 1=1 and temp1 is null";
        String sqlUpDatePrdtOne = "update ERP_PRDT set status=1 where prd_no=";
        String sqlUpDatePrdtTwo = "update ERP_PRDT set status=2 ";
        try {
            Tag tag = tagService.selectByName("全部", 1);
@@ -76,14 +78,20 @@
                                matNew.setUpdateTime(date);
                                if (matService.insert(matNew)) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                                    callApiLogSave(prdt, "ERP_PRDT", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!添加商品信息失败!!!", false);
                                    if (Cools.isEmpty(prdt.getTemp1())){
                                        erpSqlServer.update(sqlUpDatePrdtTwo +",Temp1='添加ERP下发商品信息失败!!!状态异常!!!'"
                                                + "where 1=1 " +" and PRD_NO=" + "'" + prdt.getPrdNo() + "'");
                                        callApiLogSave(prdt, "ERP_PRDT", "添加ERP下发商品信息失败!!!状态异常!!!", false);
                                    }
                                }
                            } else {
                                erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
                                if (Cools.isEmpty(prdt.getTemp1())){
                                    erpSqlServer.update(sqlUpDatePrdtTwo +",Temp1='接收ERP下发商品信息失败!!!商品已存在!!!'"
                                            + "where 1=1 " +" and PRD_NO=" + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "ERP_PRDT", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
                                }
                            }
                        } else if (type == 2) {
                            Mat mat = matService.selectByMatnr(prdt.getPrdNo());
@@ -93,10 +101,13 @@
                                mat.setSpecs(prdt.getSpc());
                                if (matService.updateById(mat)) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!修改商品信息成功!", true);
                                    callApiLogSave(prdt, "ERP_PRDT", "接收ERP下发商品信息成功!修改商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!修改商品信息失败!!!", false);
                                    if (Cools.isEmpty(prdt.getTemp1())){
                                        erpSqlServer.update(sqlUpDatePrdtTwo +",Temp1='接收ERP下发商品信息失败!!!修改商品信息失败!!!'"
                                                + "where 1=1 " +" and PRD_NO=" + "'" + prdt.getPrdNo() + "'");
                                        callApiLogSave(prdt, "ERP_PRDT", "接收ERP下发商品信息失败!!!修改商品信息失败!!!", false);
                                    }
                                }
                            }
                        } else if (type == 3) {
@@ -104,23 +115,30 @@
                            if (!Cools.isEmpty(mat)) {
                                if (matService.deleteById(mat.getId())) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!删除商品信息成功!", true);
                                    callApiLogSave(prdt, "ERP_PRDT", "接收ERP下发商品信息成功!删除商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!删除商品信息失败!", false);
                                    if (Cools.isEmpty(prdt.getTemp1())){
                                        erpSqlServer.update(sqlUpDatePrdtTwo +",Temp1='接收ERP下发商品信息成功!删除商品信息失败!'"
                                                + "where 1=1 " +" and PRD_NO=" + "'" + prdt.getPrdNo() + "'");
                                        callApiLogSave(prdt, "ERP_PRDT", "接收ERP下发商品信息成功!删除商品信息失败!", false);
                                    }
                                }
                            }
                        } else {
                            callApiLogSave(prdt, "PRDT", "商品信息出现异常资料未处理!", false);
                            if (Cools.isEmpty(prdt.getTemp1()) && Cools.isEmpty(prdt.getTemp2()) && Cools.isEmpty(prdt.getTemp3())){
                                erpSqlServer.update(sqlUpDatePrdtTwo +",Temp1='接收ERP下发商品信息失败!!!type状态异常!!!'"
                                        + "where 1=1 " +" and PRD_NO=" + "'" + prdt.getPrdNo() + "'");
                                callApiLogSave(prdt, "ERP_PRDT", "商品信息出现异常资料未处理!", false);
                            }
                        }
                    } else if (prdt.getStatus() == 1) {
                        HashMap<String, Object> condition = new HashMap<>();
                        condition.put("PRD_NO", "'" + prdt.getPrdNo() + "'");
                        condition.put("NAME", "'" + prdt.getName() + "'");
                        condition.put("UT", "'" + prdt.getUt() + "'");
                        condition.put("SPC", "'" + prdt.getSpc() + "'");
                        condition.put("TYPE", "'" + prdt.getType() + "'");
                        condition.put("STATUS", "'" + prdt.getStatus() + "'");
                        condition.put("prd_no", "'" + prdt.getPrdNo() + "'");
                        condition.put("name", "'" + prdt.getName() + "'");
                        condition.put("ut", "'" + prdt.getUt() + "'");
                        condition.put("spc", "'" + prdt.getSpc() + "'");
                        condition.put("type", "'" + prdt.getType() + "'");
                        condition.put("status", "'" + prdt.getStatus() + "'");
                        erpSqlServer.insert(PrdtBak.class, condition);
//                        callApiLogSave(prdt, "erp_prdt_bak", "ERP下发商品信息备份成功!", true);
@@ -129,13 +147,17 @@
                        erpSqlServer.delete(Prdt.class, condition2);
//                        callApiLogSave(prdt, "erp_prdt", "ERP下发商品信息备份后删除成功!", true);
                    } else {
                        callApiLogSave(prdt, "PRDT", "商品信息出现异常资料未处理!", false);
                        if (Cools.isEmpty(prdt.getTemp1()) && Cools.isEmpty(prdt.getTemp2()) && Cools.isEmpty(prdt.getTemp3())){
                            erpSqlServer.update(sqlUpDatePrdtTwo +",Temp1='接收ERP下发商品信息失败!!!status状态异常!!!'"
                                    + "where 1=1 " +" and PRD_NO=" + "'" + prdt.getPrdNo() + "'");
                            callApiLogSave(prdt, "ERP_PRDT", "商品信息出现异常资料未处理!", false);
                        }
                    }
                }
            }
        } catch (Exception e) {
            Date date = new Date();
            log.error(date + ": 表名:PRDT :" + e);
            log.error(date + ": 表名:ERP_PRDT :" + e);
        }
    }
src/main/resources/application.yml
@@ -54,6 +54,7 @@
  enabled: false
  enabledNew: false
  enabledErpDetTb: true
  enabledErpPrdt: true
  #  enabled: false
  #查看ERP中间表间隔
  refreshtime: 0/5 * * * * ?