| 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); | 
|     } | 
| } |