| package com.zy.third.erp.task; | 
|   | 
| import com.zy.common.service.erp.ErpSqlServer; | 
| import com.zy.third.erp.entity.ItemTB; | 
| 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 org.springframework.transaction.annotation.Transactional; | 
|   | 
| import java.util.List; | 
|   | 
| /** | 
|  * 物料档案 | 
|  */ | 
| @Slf4j | 
| @Component | 
| public class ERPItemScheduler { | 
|     @Value("${erp.enabled}") | 
|     private Boolean erpEnabled; | 
|   | 
|     @Autowired | 
|     private ERPItemService erpItemService; | 
|   | 
|     @Autowired | 
|     private ErpSqlServer erpSqlServer; | 
|   | 
|   | 
|   | 
|     @Transactional(rollbackFor = Throwable.class) | 
|     @Scheduled(cron = "${erp.refreshtime}") | 
|     public void ItemScheduler() { | 
| //        log.info("ItemScheduler开始了"); | 
|         if (!erpEnabled) return; | 
|         String sqlItemTB = "select TOP 1000 * from erp_ItemTB where LKName='高霖立库'"; | 
|         List<ItemTB> itemTBS = erpSqlServer.select(sqlItemTB, ItemTB.class); | 
|         if (itemTBS != null && itemTBS.size() > 0) { | 
|             for (ItemTB itemTB : itemTBS) { | 
|                 log.info("新增物料成功,{}", itemTB); | 
|                 //00代表新增 | 
|                 if (itemTB.getFlag().equals("00")) { | 
|                     erpItemService.addToMainDatabase(itemTB); | 
|                 } | 
|                 //22代表删除 | 
|                 if (itemTB.getFlag().equals("22")) { | 
|                     log.info("删除物料成功,{}", itemTB); | 
|                     erpItemService.deleteFromMainDatabase(itemTB); | 
|                 } | 
|                 moveToBak(itemTB); | 
|             } | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 数据库里有触发器,当item表的数据被删除时,会自动向item_bak添加,不用卸载代码里 | 
|      * | 
|      * @param itemTB | 
|      */ | 
|     //将数据从主表移动到bak表里 | 
|     private void moveToBak(ItemTB itemTB) { | 
|         erpSqlServer.update("delete from erp_ItemTB where LKName='高霖立库' and Item_id = '" + itemTB.getItemId() + "'"); | 
|     } | 
| } |