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.MatService; import com.zy.asrs.service.TagService; import com.zy.ints.entity.Prdt; 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 ErpPrdtScheduler { /** * ERP接口是否启用 */ @Value("${erp.enabled}") private Boolean erpEnabled; @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); List 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() + "'"); } } }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==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 { } }else if (prdt.getStatus()==1){ // HashMap 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 condition2 = new HashMap<>(); // condition2.put("prd_no","'" + prdt.getPrdNo() + "'"); // erpSqlServer.delete(Prdt.class,condition2); }else if (prdt.getStatus()==2){ }else { } } } } }