自动化立体仓库 - WMS系统
#
18516761980
2023-01-07 b1d639d80b8a1a2ead391e7fda681900d6ff3ca7
#
3个文件已修改
1个文件已添加
260 ■■■■■ 已修改文件
src/main/java/com/zy/ints/entity/Prdt.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/task/scheduler/ErpPrdtSchedulerNew.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/entity/Prdt.java
@@ -11,7 +11,7 @@
import java.io.Serializable;
@Data
@TableName("erp_prdt")
@TableName("PRDT")
public class Prdt implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -21,37 +21,42 @@
     */
    @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;
    public Prdt() {
src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java
@@ -44,14 +44,14 @@
    private MatService matService;
    /**
     * 获取商品信息表资料
     * 获取商品信息表资料  年前
     */
    @Scheduled(cron = "${erp.refreshtime}")
    public void obtainPedt() {
        if (!erpEnabled) return;
        String sqlSelectPrdt = "select prd_no as prdNo,name,ut,spc,type,status from erp_prdt where 1=1";
        String sqlUpDatePrdtOne = "update erp_prdt set status=1 where prd_no=";
        String sqlUpDatePrdtTwo = "update erp_prdt set status=2 where prd_no=";
        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=";
        try {
            Tag tag = tagService.selectByName("全部", 1);
@@ -59,6 +59,31 @@
            if (prdts.size() > 0) {
                for (Prdt prdt : prdts) {
                    Date date = new Date();
                    Integer type = prdt.getType();
                        Mat mat = matService.selectByMatnr(prdt.getPrdNo());
                        if (Cools.isEmpty(mat)) {
                            Mat matNew = new Mat();
                            matNew.setTagId(tag.getId());
                            matNew.setMatnr(prdt.getPrdNo());
                            matNew.setMaktx(prdt.getName());
                            matNew.setUnit(prdt.getUt());
                            matNew.setSpecs(prdt.getSpc());
                            matNew.setCreateBy(9999L);//9999表示erp下发
                            matNew.setCreateTime(date);
                            matNew.setUpdateBy(9999L);//9999表示erp下发
                            matNew.setUpdateTime(date);
                            if (matService.insert(matNew)) {
//                                erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                            } else {
//                                erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!添加商品信息失败!!!", false);
                            }
                        } else {
//                            erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                            callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
                        }
                    /*Date date = new Date();
                    if (prdt.getStatus() == 0) {
                        Integer type = prdt.getType();
                        if (type == 1) {
@@ -76,14 +101,14 @@
                                matNew.setUpdateTime(date);
                                if (matService.insert(matNew)) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "erp_prdt", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "erp_prdt", "接收ERP下发商品信息失败!!!添加商品信息失败!!!", false);
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!添加商品信息失败!!!", false);
                                }
                            } else {
                                erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                callApiLogSave(prdt, "erp_prdt", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
                                callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
                            }
                        } else if (type == 2) {
                            Mat mat = matService.selectByMatnr(prdt.getPrdNo());
@@ -93,10 +118,10 @@
                                mat.setSpecs(prdt.getSpc());
                                if (matService.updateById(mat)) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "erp_prdt", "接收ERP下发商品信息成功!修改商品信息成功!", true);
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!修改商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "erp_prdt", "接收ERP下发商品信息失败!!!修改商品信息失败!!!", false);
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!修改商品信息失败!!!", false);
                                }
                            }
                        } else if (type == 3) {
@@ -104,38 +129,38 @@
                            if (!Cools.isEmpty(mat)) {
                                if (matService.deleteById(mat.getId())) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "erp_prdt", "接收ERP下发商品信息成功!删除商品信息成功!", true);
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!删除商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "erp_prdt", "接收ERP下发商品信息成功!删除商品信息失败!", false);
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!删除商品信息失败!", false);
                                }
                            }
                        } else {
                            callApiLogSave(prdt, "erp_prdt", "商品信息出现异常资料未处理!", false);
                            callApiLogSave(prdt, "PRDT", "商品信息出现异常资料未处理!", false);
                        }
                    } else if (prdt.getStatus() == 1) {
                    }*/ /*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);
                        HashMap<String, String> condition2 = new HashMap<>();
                        condition2.put("prd_no", "'" + prdt.getPrdNo() + "'");
                        erpSqlServer.delete(Prdt.class, condition2);
//                        callApiLogSave(prdt, "erp_prdt_bak", "ERP下发商品信息备份后删除成功!", true);
//                        callApiLogSave(prdt, "erp_prdt", "ERP下发商品信息备份后删除成功!", true);
                    } else {
                        callApiLogSave(prdt, "erp_prdt", "商品信息出现异常资料未处理!", false);
                    }
                        callApiLogSave(prdt, "PRDT", "商品信息出现异常资料未处理!", false);
                    }*/
                }
            }
        } catch (Exception e) {
            Date date = new Date();
            log.error(date + ": 表名:erp_prdt :" + e);
            log.error(date + ": 表名:PRDT :" + e);
        }
    }
src/main/java/com/zy/ints/task/scheduler/ErpPrdtSchedulerNew.java
New file
@@ -0,0 +1,177 @@
package com.zy.ints.task.scheduler;
import com.core.common.Cools;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.Tag;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.TagService;
import com.zy.ints.entity.Prdt;
import com.zy.ints.entity.PrdtBak;
import com.zy.ints.erp.ErpSqlServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
 * erp任务控制器
 * Created by vincent on 2020/11/27
 */
@Slf4j
@Component
public class ErpPrdtSchedulerNew {
    /**
     * ERP接口是否启用
     */
    @Value("${erp.enabled}")
    private Boolean erpEnabled;
    @Value("${erp.enabledNew}")
    private Boolean erpEnabledNew;
    @Value("${erp.useName.ip}")
    private String ip;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private TagService tagService;
    @Autowired
    private ErpSqlServer erpSqlServer;
    @Autowired
    private MatService matService;
    /**
     * 获取商品信息表资料
     */
    @Scheduled(cron = "${erp.refreshtime}")
    public void obtainPedt() {
        if (!erpEnabledNew) 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=";
        try {
            Tag tag = tagService.selectByName("全部", 1);
            List<Prdt> prdts = erpSqlServer.select(sqlSelectPrdt, Prdt.class);
            Date date = new Date();
            if (prdts.size() > 0) {
                for (Prdt prdt : prdts) {
                    Mat mat = matService.selectByMatnr(prdt.getPrdNo());
                    if (Cools.isEmpty(mat)) {
                        Mat matNew = new Mat();
                        matNew.setTagId(tag.getId());
                        matNew.setMatnr(prdt.getPrdNo());
                        matNew.setMaktx(prdt.getName());
                        matNew.setUnit(prdt.getUt());
                        matNew.setSpecs(prdt.getSpc());
                        matNew.setCreateBy(9999L);//9999表示erp下发
                        matNew.setCreateTime(date);
                        matNew.setUpdateBy(9999L);//9999表示erp下发
                        matNew.setUpdateTime(date);
                        if (matService.insert(matNew)) {
//                            erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                            callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                        } else {
//                            erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                            callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!添加商品信息失败!!!", false);
                        }
                    } else {
//                        erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                        callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
                    }
                }
            }
            /*if (prdts.size() > 0) {
                for (Prdt prdt : prdts) {
                    Date date = new Date();
                    if (prdt.getStatus() == 0) {
                        Integer type = prdt.getType();
                        if (type == 1) {
                            Mat mat = matService.selectByMatnr(prdt.getPrdNo());
                            if (Cools.isEmpty(mat)) {
                                Mat matNew = new Mat();
                                matNew.setTagId(tag.getId());
                                matNew.setMatnr(prdt.getPrdNo());
                                matNew.setMaktx(prdt.getName());
                                matNew.setUnit(prdt.getUt());
                                matNew.setSpecs(prdt.getSpc());
                                matNew.setCreateBy(9999L);//9999表示erp下发
                                matNew.setCreateTime(date);
                                matNew.setUpdateBy(9999L);//9999表示erp下发
                                matNew.setUpdateTime(date);
                                if (matService.insert(matNew)) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!添加商品信息失败!!!", false);
                                }
                            } else {
                                erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
                            }
                        } else if (type == 2) {
                            Mat mat = matService.selectByMatnr(prdt.getPrdNo());
                            if (!Cools.isEmpty(mat)) {
                                mat.setMaktx(prdt.getName());
                                mat.setUnit(prdt.getUt());
                                mat.setSpecs(prdt.getSpc());
                                if (matService.updateById(mat)) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!修改商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息失败!!!修改商品信息失败!!!", false);
                                }
                            }
                        } else if (type == 3) {
                            Mat mat = matService.selectByMatnr(prdt.getPrdNo());
                            if (!Cools.isEmpty(mat)) {
                                if (matService.deleteById(mat.getId())) {
                                    erpSqlServer.update(sqlUpDatePrdtOne + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!删除商品信息成功!", true);
                                } else {
                                    erpSqlServer.update(sqlUpDatePrdtTwo + "'" + prdt.getPrdNo() + "'");
                                    callApiLogSave(prdt, "PRDT", "接收ERP下发商品信息成功!删除商品信息失败!", false);
                                }
                            }
                        } else {
                            callApiLogSave(prdt, "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() + "'");
                        erpSqlServer.insert(PrdtBak.class, condition);
//                        callApiLogSave(prdt, "erp_prdt_bak", "ERP下发商品信息备份成功!", true);
                        HashMap<String, String> condition2 = new HashMap<>();
                        condition2.put("prd_no", "'" + prdt.getPrdNo() + "'");
                        erpSqlServer.delete(Prdt.class, condition2);
//                        callApiLogSave(prdt, "erp_prdt", "ERP下发商品信息备份后删除成功!", true);
                    } else {
                        callApiLogSave(prdt, "PRDT", "商品信息出现异常资料未处理!", false);
                    }
                }*/
//            }
        } catch (Exception e) {
            Date date = new Date();
            log.error(date + ": 表名:PRDT :" + e);
        }
    }
    public void callApiLogSave(Prdt prdt, String tableName, String response, Boolean bool) {
        apiLogService.save("ERP下发商品信息", tableName, "null", ip,
                "品号:" + prdt.getPrdNo() + "、品名:" + prdt.getName() + "、类型:" + prdt.getType() + "、状态:" + prdt.getStatus$(),
                response, bool);
    }
}
src/main/resources/application.yml
@@ -51,7 +51,8 @@
  groupCount: 4
#ERP接口
erp:
  enabled: true
  enabled: false
  enabledNew: true
  #  enabled: false
  #查看ERP中间表间隔
  refreshtime: 0/5 * * * * ?