liyg 2 年之前
父節點
當前提交
7717daa8bd

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/DilBatchMapper.java

@@ -50,4 +50,7 @@ public interface DilBatchMapper extends IBaseMapper<DilBatch, Short> {
     Map<String, Object> getNoticeContactNumberByPerson(String personName);
 
     List<Map<String, Object>> findBatchForBind(Map<String, Object> map);
+
+    //定时更新批次查询
+    Map<String, Object> findBatchForTimer(Map<String, Object> map);
 }

+ 28 - 13
src/main/java/com/steerinfo/dil/service/impl/DilBatchServiceImpl.java

@@ -9,11 +9,13 @@ import com.steerinfo.dil.model.DilBatchInfacotry;
 import com.steerinfo.dil.service.IDilBatchService;
 import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
 import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -151,19 +153,32 @@ public class DilBatchServiceImpl  implements IDilBatchService {
         return i;
     }
 
-//    @Scheduled(cron = "0 0 0,6,12,18 * * ?")
-//    public void AutoBindBatch(Map<String, Object> map){
-//        System.out.println("定时绑定批次:"+new Date());
-//        List<Map<String, Object>> list=dilBatchMapper.findBatchForBind(map);
-//        int i=0;
-//        if(list!=null&&list.size()>0){
-//           for(Map<String, Object> temp:list){
-//
-//           }
-//        }else{
-//            System.out.println("没有数据需要绑定");
-//        }
-//    }
+    @Scheduled(cron = "0 0 0,6,12,18 * * ?")
+    public void AutoBindBatch(){
+        System.out.println("定时绑定批次:"+new Date());
+        List<Map<String, Object>> list=dilBatchMapper.findBatchForBind(new HashMap<>());
+        int i=0;
+        if(list!=null&&list.size()>0){
+           for(Map<String, Object> temp:list){
+               Map<String, Object> bindMap=dilBatchMapper.findBatchForTimer(temp);
+               if(bindMap!=null && bindMap.get("batchIdOld")!=null && bindMap.get("batchId") !=null ){
+                   System.out.println(bindMap);
+                   try{
+                       bindBatch(bindMap);
+                   }catch (Exception e){
+                       e.printStackTrace();
+                       System.out.println("======更新失败=======");
+                       System.out.println(bindMap);
+                       System.out.println("====================");
+                   }
+                   i++;
+               }
+           }
+        }else{
+            System.out.println("没有数据需要绑定");
+        }
+        System.out.println("一共"+i+"个已经更新");
+    }
 
     @Override
     public BigDecimal getPortId(String portName) {

+ 14 - 0
src/main/resources/com/steerinfo/dil/mapper/DilBatchMapper.xml

@@ -474,5 +474,19 @@
     where PORT_NAME=#{portName} AND DELETED=0
     FETCH NEXT 1 ROWS ONLY
   </select>
+  <select id="findBatchForTimer" resultType="java.util.Map">
+    SELECT
+      DB .BATCH_ID "batchId",
+      DBO .BATCH_ID "batchIdOld",
+      DB .RESULT_FOREIGN_SHIP_NAME "ship",
+      DBO .RESULT_FOREIGN_SHIP_NAME "shipOld",
+      'system' "userId"
+    FROM DIL_BATCH DB
+         LEFT JOIN DIL_BATCH DBO
+           ON DBO.RESULT_FOREIGN_SHIP_NAME=DB .RESULT_FOREIGN_SHIP_NAME AND DB .MATERIAL_ID=DBO .MATERIAL_ID AND DB .BATCH_ID != DBO .BATCH_ID
+         LEFT JOIN AMS_PURCHASE_ORDER  APO ON APO.BATCH_ID=DB .BATCH_ID
+    WHERE APO .DELETED=0 AND DBO.INSERT_UPDATE_REMARK='人工录入' AND DBO .BATCH_ID=#{batchId}
+    FETCH NEXT 1 ROWS ONLY
+  </select>
 
 </mapper>