自动化立体仓库 - WMS系统
#
18516761980
2023-02-03 2fe8875acf7d4fb9f8e088a7747798040a2b8aa0
src/main/java/com/zy/ints/task/scheduler/ErpPrdtScheduler.java
@@ -3,9 +3,11 @@
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;
@@ -30,93 +32,116 @@
     */
    @Value("${erp.enabled}")
    private Boolean erpEnabled;
    @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 (!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=";
        Tag tag = tagService.selectByName("全部", 1);
        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);
        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);
                            matNew.setCreateTime(date);
                            matNew.setUpdateBy(9999L);
                            matNew.setUpdateTime(date);
                            if (matService.insert(matNew)){
                                erpSqlServer.update(sqlUpDatePrdtOne+"'" + prdt.getPrdNo() + "'");
                            }else {
                                erpSqlServer.update(sqlUpDatePrdtTwo+"'" + prdt.getPrdNo() + "'");
            List<Prdt> prdts = erpSqlServer.select(sqlSelectPrdt, Prdt.class);
            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() + "'");
                            }else {
                                erpSqlServer.update(sqlUpDatePrdtTwo+"'" + prdt.getPrdNo() + "'");
                        } 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() + "'");
                            }else {
                                erpSqlServer.update(sqlUpDatePrdtTwo+"'" + prdt.getPrdNo() + "'");
                        } 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 {
                    } 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);
                    }
                }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(Prdt.class, condition);
//
//                    HashMap<String, String> condition2 = new HashMap<>();
//                    condition2.put("prd_no","'" + prdt.getPrdNo() + "'");
//                    erpSqlServer.delete(Prdt.class,condition2);
                }else if (prdt.getStatus()==2){
                }else {
                }
            }
        } 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);
    }
}