From 01e45371334efcf7f4ccf2fbf8343ec063aa1ff2 Mon Sep 17 00:00:00 2001
From: dy <dingyang@lnfxkj.tech>
Date: 星期六, 19 四月 2025 11:14:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java            |   14 +
 aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java             |    9 +
 aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml                    |   39 +++++
 aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java         |   12 +
 aps-modules/aps-job/src/main/java/com/aps/job/controller/ApsWorkOrderJobController.java        |   47 +-----
 aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java                |   14 +
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java |   42 ++++-
 aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java                                 |   53 +++++++
 aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml                |   41 +++++
 aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java                 |   16 +-
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java     |   97 +++++++++----
 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java                        |   14 +
 12 files changed, 301 insertions(+), 97 deletions(-)

diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java
index c12bbd2..b82b0d4 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java
@@ -1,5 +1,6 @@
 package com.aps.core.domain;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 import com.aps.common.core.utils.uuid.IdUtils;
@@ -9,6 +10,7 @@
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.aps.common.core.annotation.Excel;
 import com.aps.common.core.web.domain.BaseEntity;
+import org.apache.poi.hpsf.Decimal;
 import org.springframework.data.annotation.Id;
 
 import javax.annotation.processing.Generated;
@@ -80,11 +82,11 @@
 
     /** 鐢熶骇鏁伴噺 */
     @Excel(name = "鐢熶骇鏁伴噺")
-    private Long productionQuantity;
+    private Decimal productionQuantity;
 
     /** 鑹搧鏁伴噺 */
     @Excel(name = "鑹搧鏁伴噺")
-    private Long goodProductsQuantity;
+    private Decimal goodProductsQuantity;
 
     /** 宸ュ簭鍙� */
     @Excel(name = "宸ュ簭鍙�")
@@ -309,22 +311,22 @@
         return versionNumber;
     }
 
-    public void setProductionQuantity(Long productionQuantity) 
+    public void setProductionQuantity(Decimal productionQuantity)
     {
         this.productionQuantity = productionQuantity;
     }
 
-    public Long getProductionQuantity() 
+    public Decimal getProductionQuantity()
     {
         return productionQuantity;
     }
 
-    public void setGoodProductsQuantity(Long goodProductsQuantity) 
+    public void setGoodProductsQuantity(Decimal goodProductsQuantity)
     {
         this.goodProductsQuantity = goodProductsQuantity;
     }
 
-    public Long getGoodProductsQuantity() 
+    public Decimal getGoodProductsQuantity()
     {
         return goodProductsQuantity;
     }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/controller/ApsWorkOrderJobController.java b/aps-modules/aps-job/src/main/java/com/aps/job/controller/ApsWorkOrderJobController.java
index 791a662..62e6c9e 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/controller/ApsWorkOrderJobController.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/controller/ApsWorkOrderJobController.java
@@ -1,7 +1,6 @@
 package com.aps.job.controller;
 
 import java.util.List;
-import java.io.IOException;
 
 import com.aps.job.param.ApsWorkOrderJobParam;
 import jakarta.servlet.http.HttpServletResponse;
@@ -73,43 +72,21 @@
     }
 
     /**
-     * 鏂板宸ュ崟鍚屾
-     */
-    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:add")
-    @Log(title = "宸ュ崟鍚屾", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody ApsWorkOrderJob apsWorkOrderJob)
-    {
-        return toAjax(apsWorkOrderJobService.insertApsWorkOrderJob(apsWorkOrderJob));
-    }
-
-    /**
-     * 淇敼宸ュ崟鍚屾
-     */
-    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:edit")
-    @Log(title = "宸ュ崟鍚屾", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody ApsWorkOrderJob apsWorkOrderJob)
-    {
-        return toAjax(apsWorkOrderJobService.updateApsWorkOrderJob(apsWorkOrderJob));
-    }
-
-    /**
-     * 鍒犻櫎宸ュ崟鍚屾
-     */
-    @RequiresPermissions("ApsWorkOrderJob:ApsWorkOrderJob:remove")
-    @Log(title = "宸ュ崟鍚屾", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(apsWorkOrderJobService.deleteApsWorkOrderJobByIds(ids));
-    }
-
-
+     * 鍚屾宸ュ崟鏁版嵁
+     * */
     @PostMapping("/batchInsertApsWorkOrderJob")
     public AjaxResult batchInsertApsWorkOrderJob(@RequestBody ApsWorkOrderJobParam param)
     {
-    	apsWorkOrderJobService.batchInsertApsWorkOrderJob(param);
+    	apsWorkOrderJobService.SyncWorkOrderByTime();
     	return success();
     }
+    /**
+     * 鍚屾闆朵欢宸ュ崟
+     * */
+    @PostMapping("/batchInsertPartOrderJob")
+    public AjaxResult batchInsertPartOrderJob()
+    {
+        apsWorkOrderJobService.syncPartOrderData();
+        return success();
+    }
 }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java b/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java
index 5df334a..5616aa4 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java
@@ -43,7 +43,7 @@
     /**
      * 鏌ヨ瀹氭椂浠诲姟鍒楄〃
      */
-    @RequiresPermissions("monitor:job:list")
+   /* @RequiresPermissions("monitor:job:list")*/
     @GetMapping("/list")
     public TableDataInfo list(SysJob sysJob)
     {
@@ -55,7 +55,7 @@
     /**
      * 瀵煎嚭瀹氭椂浠诲姟鍒楄〃
      */
-    @RequiresPermissions("monitor:job:export")
+    /*@RequiresPermissions("monitor:job:export")*/
     @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, SysJob sysJob)
@@ -68,7 +68,7 @@
     /**
      * 鑾峰彇瀹氭椂浠诲姟璇︾粏淇℃伅
      */
-    @RequiresPermissions("monitor:job:query")
+    /*@RequiresPermissions("monitor:job:query")*/
     @GetMapping(value = "/{jobId}")
     public AjaxResult getInfo(@PathVariable("jobId") Long jobId)
     {
@@ -78,7 +78,7 @@
     /**
      * 鏂板瀹氭椂浠诲姟
      */
-    @RequiresPermissions("monitor:job:add")
+   /* @RequiresPermissions("monitor:job:add")*/
     @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody SysJob job) throws SchedulerException, TaskException
@@ -114,7 +114,7 @@
     /**
      * 淇敼瀹氭椂浠诲姟
      */
-    @RequiresPermissions("monitor:job:edit")
+   /* @RequiresPermissions("monitor:job:edit")*/
     @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody SysJob job) throws SchedulerException, TaskException
@@ -150,7 +150,7 @@
     /**
      * 瀹氭椂浠诲姟鐘舵�佷慨鏀�
      */
-    @RequiresPermissions("monitor:job:changeStatus")
+  /*  @RequiresPermissions("monitor:job:changeStatus")*/
     @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
     public AjaxResult changeStatus(@RequestBody SysJob job) throws SchedulerException
@@ -163,7 +163,7 @@
     /**
      * 瀹氭椂浠诲姟绔嬪嵆鎵ц涓�娆�
      */
-    @RequiresPermissions("monitor:job:changeStatus")
+   /* @RequiresPermissions("monitor:job:changeStatus")*/
     @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.UPDATE)
     @PutMapping("/run")
     public AjaxResult run(@RequestBody SysJob job) throws SchedulerException
@@ -175,7 +175,7 @@
     /**
      * 鍒犻櫎瀹氭椂浠诲姟
      */
-    @RequiresPermissions("monitor:job:remove")
+ /*   @RequiresPermissions("monitor:job:remove")*/
     @Log(title = "瀹氭椂浠诲姟", businessType = BusinessType.DELETE)
     @DeleteMapping("/{jobIds}")
     public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java
index af9b270..7028ad8 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java
@@ -4,6 +4,7 @@
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 宸ュ崟鍚屾Mapper鎺ュ彛
@@ -67,9 +68,16 @@
     int deleteWorkOrderJobByOrderIds(List<String> orderIds);
     /**
      * 鏇存柊宸ュ崟宸ュ簭鍚屾鐘舵��
-     * @param docNo
+     * @param params
      * @return
      */
-    public int updateApsWorkOrderJobPrccessStatus(String docNo);
-
+    public int updateApsWorkOrderJobPrccessStatus(Map<String, Object> params);
+    /**
+     * 鎵归噺鍒犻櫎闆朵欢宸ュ崟鏁版嵁
+     * */
+    int deleteAllPartPlan();
+    /**
+     * 鎵归噺鎻掑叆闆朵欢璁″垝宸ュ崟
+     * */
+    int batchInsertPartPlan();
 }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
index 96b6407..23b874f 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
@@ -76,12 +76,22 @@
      * @param list
      * @return 鏇存柊鏁伴噺
      */
-    int updateApsWorkOrderProcessBatch(@Param("list") List<ApsWorkOrderProcess> list);
+    public int updateApsWorkOrderProcessBatch(@Param("list") List<ApsWorkOrderProcess> list);
 
     /**
      * 鎵归噺鎻掑叆宸ュ崟宸ュ簭
      * @param list
      * @return 鎻掑叆鏁伴噺
      */
-    int insertApsWorkOrderProcessBatch(@Param("list") List<ApsWorkOrderProcess> list);
+    public int insertApsWorkOrderProcessBatch(@Param("list") List<ApsWorkOrderProcess> list);
+
+    /**
+     * 鎻掑叆宸ュ崟宸ュ簭鏁版嵁鍒颁笟鍔¤〃
+     */
+    public void insertIntoApsProcessRoute();
+
+    /**
+     * 鍒犻櫎涓存椂宸ュ簭鏁版嵁
+     */
+    public void deleteApsProcessRoute();
 }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java
index ad5c62a..8194fe8 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java
@@ -3,6 +3,7 @@
 import java.util.List;
 import com.aps.job.domain.ApsWorkOrderJob;
 import com.aps.job.param.ApsWorkOrderJobParam;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 宸ュ崟鍚屾Service鎺ュ彛
@@ -62,4 +63,12 @@
 
 
     void batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param);
+
+    void SyncWorkOrderByTime();
+
+    @Transactional
+    boolean batchSaveByPager(ApsWorkOrderJobParam param);
+
+    @Transactional
+    void syncPartOrderData();
 }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java
index 80d43f6..7f5646a 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java
@@ -62,7 +62,7 @@
 
     /**
      * 浠嶶9鑾峰彇宸ュ崟宸ュ簭淇℃伅
-     * @param docNo
+     * @param docNos
      * @return
      */
     public void getWorkOrderProcessFromU9(List<String> docNos) throws Exception;
@@ -71,4 +71,14 @@
      * 鍚屾宸ュ崟宸ュ簭鏁版嵁
      */
     public void syncWorkOrderProcessData();
+
+    /**
+     * 鎻掑叆宸ュ崟宸ュ簭鏁版嵁鍒颁笟鍔¤〃
+     */
+    public void insertIntoApsProcessRoute();
+
+    /**
+     * 鍒犻櫎涓存椂宸ュ簭鏁版嵁
+     */
+    public void deleteApsProcessRoute();
 }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
index 3f8a10b..8f1ad5b 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
@@ -1,6 +1,10 @@
 package com.aps.job.service.impl;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import com.alibaba.fastjson.JSONArray;
@@ -9,6 +13,7 @@
 import com.aps.job.domain.ApsWorkOrderJobLog;
 import com.aps.job.mapper.ApsWorkOrderJobLogMapper;
 import com.aps.job.param.ApsWorkOrderJobParam;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
@@ -28,6 +33,7 @@
  * @author zhl
  * @date 2025-04-17
  */
+@Slf4j
 @Service
 public class ApsWorkOrderJobServiceImpl implements IApsWorkOrderJobService 
 {
@@ -121,7 +127,9 @@
     }
 
 
-
+    /**
+     * 鏍规嵁椤电爜鍏ㄩ噺鍚屾鏁版嵁
+     * */
     @Override
     public void batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param) {
 
@@ -134,53 +142,75 @@
 
         }
     }
+    /**
+     * 鏍规嵁鏃堕棿娈垫瘡鏃ユ洿鏂帮紝椤甸潰鑷姩閫掑寰幆鍚屾鏁版嵁
+     * */
+    @Override
+    public void SyncWorkOrderByTime(){
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime today = LocalDateTime.now();
+        LocalDate yesterday = LocalDate.now().minusDays(1);
+        LocalDateTime yesterdayMidnight = yesterday.atStartOfDay();
+        boolean continueFlag = true;
+        Integer currentPage = 1;
+        ApsWorkOrderJobParam param=new ApsWorkOrderJobParam();
+        param.setPageIndex(currentPage);
+        param.setDocState(Arrays.asList(0,1,2,4));
+        param.setBeginDate(yesterdayMidnight.format(formatter));
+        param.setEndDate(today.format(formatter));
+        param.setPageSize(1000);
+        while (continueFlag){
+            param.setPageIndex(currentPage);
+            continueFlag= batchSaveByPager(param);
+            currentPage++;
+        }
+    }
+
     @Transactional
+    @Override
     public boolean batchSaveByPager(ApsWorkOrderJobParam param) {
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.APPLICATION_JSON);
         /*璁剧疆褰撳墠椤甸潰*/
-        ApsWorkOrderJobLog log = new ApsWorkOrderJobLog();
+        ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
         String requestString = JSONObject.toJSONString(param);
         HttpEntity<String> request = new HttpEntity<>(requestString, headers);
         ResponseEntity<String> response = restTemplate.postForEntity(getWorkOrderUrl, request, String.class);
-        log.setRequestData(requestString);
-        log.setPageNum(Long.valueOf(param.getPageIndex()));
-        log.setPageCount(Long.valueOf(param.getPageSize()));
-        log.setCreateTime(DateUtils.getNowDate());
-        log.setBizType("work_order");
-        jobLogMapper.insertApsWorkOrderJobLog(log);
+        jobLog.setRequestData(requestString);
+        jobLog.setPageNum(Long.valueOf(param.getPageIndex()));
+        jobLog.setPageCount(Long.valueOf(param.getPageSize()));
+        jobLog.setCreateTime(DateUtils.getNowDate());
+        jobLog.setBizType("work_order");
+        jobLogMapper.insertApsWorkOrderJobLog(jobLog);
         if (response.getStatusCode().is2xxSuccessful()) {
             JSONObject responseBodyJson = JSONObject.parseObject(response.getBody());
             if ("200".equals(responseBodyJson.getString("status"))) {
                 JSONArray result = responseBodyJson.getJSONArray("data");
                 if (result != null&& !result.isEmpty()) {
-                   int ct= batchInsertApsWorkOrderJob(param, result);
-                   if(ct>0){
-                       log.setResult("ok save "+ct);
-                       jobLogMapper.updateApsWorkOrderJobLog(log);
-                   }else{
-                       log.setResult("ok save 0");
-                       jobLogMapper.updateApsWorkOrderJobLog(log);
-                       return true;
-                   }
-                }else {
-                    log.setResult("ok receive 0");
-                    jobLogMapper.updateApsWorkOrderJobLog(log);
+                    int ct= batchInsertApsWorkOrderJob(param, result);
+                    jobLog.setResult("ok save "+ct);
+                    jobLogMapper.updateApsWorkOrderJobLog(jobLog);
                     return true;
+                }else {
+                    jobLog.setResult("ok receive 0");
+                    jobLogMapper.updateApsWorkOrderJobLog(jobLog);
+                    return false;
                 }
             } else {
-                log.setResponseData(response.getBody());
-                log.setResult("fail");
-                jobLogMapper.updateApsWorkOrderJobLog(log);
-                return true;
+                jobLog.setResponseData(response.getBody());
+                jobLog.setResult("fail");
+                jobLogMapper.updateApsWorkOrderJobLog(jobLog);
+                return false;
             }
-            return true;
+
         } else {
-            log.setResponseData(response.getBody());
-            log.setResult("fail");
-            jobLogMapper.updateApsWorkOrderJobLog(log);
-            return true;
+            jobLog.setResponseData(response.getBody());
+            jobLog.setResult("fail");
+            jobLogMapper.updateApsWorkOrderJobLog(jobLog);
+            log.info(JSONObject.toJSONString(jobLog));
+            return false;
         }
+
     }
     @Transactional
     public int batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param, JSONArray result) {
@@ -202,4 +232,13 @@
         return   apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs);
     }
 
+    /**
+     * 鍚屾闆朵欢宸ュ崟淇℃伅
+     * */
+    @Transactional
+    @Override
+    public void syncPartOrderData() {
+        apsWorkOrderJobMapper.deleteAllPartPlan();
+        apsWorkOrderJobMapper.batchInsertPartPlan();
+    }
 }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java
index e815c21..39ea457 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java
@@ -148,6 +148,7 @@
         apsWorkOrderJobLog.setBizType("work_order_process");
         apsWorkOrderJobLog.setResult("SUCCESS");
         apsWorkOrderJobLogService.insertApsWorkOrderJobLog(apsWorkOrderJobLog);
+        List<String> haveProcessDocNos = new ArrayList<>();
         if (response.getStatusCode().is2xxSuccessful()) {
             if(!StringUtils.isEmpty(responseBody)){
                 if("200".equals(responseBodyJson.getString("status"))){
@@ -160,6 +161,8 @@
                             JSONObject process = (JSONObject) o;
                             if (nowDocNo == null) {
                                 nowDocNo = process.getString("DocNo");
+                                docNos.remove(nowDocNo);
+                                haveProcessDocNos.add(nowDocNo);
                             }
                             Map<String, Object> params = new HashMap<>();
                             params.put("docNo", process.getString("DocNo"));
@@ -188,7 +191,8 @@
                             }
                             if(!nowDocNo.equals(process.getString("DocNo"))){
                                 //鏇存柊宸ュ崟鍚屾宸ュ簭鐘舵��
-                                apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(nowDocNo);
+                                docNos.remove(nowDocNo);
+                                haveProcessDocNos.add(nowDocNo);
                                 nowDocNo = process.getString("DocNo");
                             }
                         }
@@ -204,7 +208,15 @@
                             apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog);
                             logger.info("銆怚NSERT銆戣幏鍙栧苟鎻掑叆U9宸ュ簭鎴愬姛锛併�愬伐鍗曞彿锛歿}銆�", docNos);
                         }
+                        Map<String, Object> param = new HashMap<>();
+                        param.put("status", "1");
+                        param.put("docNos", haveProcessDocNos);
+                        apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param);
                     }
+                    Map<String, Object> param = new HashMap<>();
+                    param.put("status", "2");
+                    param.put("docNos", docNos);
+                    apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param);
                 }else{
                     apsWorkOrderJobLog.setResponseData(response.getBody());
                     apsWorkOrderJobLog.setResult("fail");
@@ -228,28 +240,36 @@
             //鍒嗛〉鏌ヨ宸ュ崟
             ApsWorkOrderJob apsWorkOrderJob = new ApsWorkOrderJob();
             apsWorkOrderJob.setProcessStatus("0");
-            List<ApsWorkOrderJob> list = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob);
-            int pageSize = 100;
-            int allPage = list.size()/pageSize;
-//            int allPage = 1;
-            for (int i = 1; i <= allPage; i++) {
-                long startTime = System.currentTimeMillis();
-                PageHelper.startPage(i, pageSize);
+            while (true){
+                PageHelper.startPage(1, 100);
                 List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob);
                 if(!pageList.isEmpty()){
+                    long startTime = System.currentTimeMillis();
                     List<String> docNos = new ArrayList<>();
                     for (ApsWorkOrderJob apsWorkOrderJob1 : pageList){
                         docNos.add(apsWorkOrderJob1.getDocNo());
                     }
                     getWorkOrderProcessFromU9(docNos);
+                    long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿
+                    long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿
+                    System.out.println("杩愯鏃堕棿锛�"+ duration +"姣");
+                }else{
+                    break;
                 }
-                long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿
-                long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿
-                System.out.println("杩愯鏃堕棿锛�"+ duration +"姣");
             }
         }catch (Exception e){
             e.printStackTrace();
             logger.error(e.getMessage());
         }
     }
+
+    @Override
+    public void insertIntoApsProcessRoute() {
+        apsWorkOrderProcessMapper.insertIntoApsProcessRoute();
+    }
+
+    @Override
+    public void deleteApsProcessRoute() {
+        apsWorkOrderProcessMapper.deleteApsProcessRoute();
+    }
 }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java b/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
index 857c706..ca35630 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
@@ -1,9 +1,16 @@
 package com.aps.job.task;
 
 import com.aps.common.core.utils.StringUtils;
+import com.aps.job.param.ApsWorkOrderJobParam;
+import com.aps.job.service.IApsWorkOrderJobService;
 import com.aps.job.service.IApsWorkOrderProcessService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Arrays;
 
 /**
  * 瀹氭椂浠诲姟璋冨害娴嬭瘯
@@ -16,6 +23,10 @@
 
     @Autowired
     private IApsWorkOrderProcessService iApsWorkOrderProcessService;
+
+    @Autowired
+    private IApsWorkOrderJobService iApsWorkOrderJobService;
+
     public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
     {
         System.out.println(StringUtils.format("鎵ц澶氬弬鏂规硶锛� 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i));
@@ -38,4 +49,46 @@
     {
         iApsWorkOrderProcessService.syncWorkOrderProcessData();
     }
+
+    /**
+     * 姣忔棩鍚屾闆朵欢宸ュ崟鏁版嵁
+     * */
+    public void  syncPartOrderData ()
+    {
+
+        iApsWorkOrderJobService.syncPartOrderData();
+    }
+
+    /**
+     * 姣忔棩鍚屾鎵�鏈夊伐鍗曟暟鎹�
+     * */
+    public void syncWorkOrderData()
+    {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime today = LocalDateTime.now();
+        LocalDate yesterday = LocalDate.now().minusDays(1);
+        LocalDateTime yesterdayMidnight = yesterday.atStartOfDay();
+        boolean continueFlag = true;
+        Integer currentPage = 1;
+        ApsWorkOrderJobParam param=new ApsWorkOrderJobParam();
+        param.setPageIndex(currentPage);
+        param.setDocState(Arrays.asList(0,1,2,4));
+        param.setBeginDate(yesterdayMidnight.format(formatter));
+        param.setEndDate(today.format(formatter));
+        param.setPageSize(1000);
+        while (continueFlag){
+            param.setPageIndex(currentPage);
+            continueFlag= iApsWorkOrderJobService.batchSaveByPager(param);
+            currentPage++;
+        }
+    }
+
+    /**
+     * 灏嗗伐鍗曞伐搴忔暟鎹悓姝ュ埌涓氬姟琛ㄤ腑
+     */
+    public void insertIntoApsProcessRoute()
+    {
+        iApsWorkOrderProcessService.deleteApsProcessRoute();
+        iApsWorkOrderProcessService.insertIntoApsProcessRoute();
+    }
 }
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
index b8a6848..3ce7c26 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
@@ -283,8 +283,43 @@
         </foreach>
     </delete>
 
-    <update id="updateApsWorkOrderJobPrccessStatus" parameterType="String">
-        update aps_work_order_job set process_status='1' where doc_no = #{docNo}
+    <update id="updateApsWorkOrderJobPrccessStatus" parameterType="map">
+        update aps_work_order_job
+        set process_status = #{status}
+        where doc_no in
+        <foreach item="docNo" collection="docNos" open="(" separator="," close=")">
+            #{docNo}
+        </foreach>
     </update>
 
+    <delete id="deleteAllPartPlan" >
+        delete from aps_part_plan where del_flag in ('0','1')
+    </delete>
+    <insert id="batchInsertPartPlan">
+        insert into aps_part_plan
+        (
+            document_number,main_part_number,main_part_drawing_number,
+            customer,business_type,requirement_type,
+            document_status,item_number,drawing_no,
+            version_number,production_quantity,good_products_quantity,
+            process_number,work_center,department,
+            plan_start_day,plan_end_day,next_process_deparment,
+            is_suspended,is_outsourcing,account,
+            id,create_time,del_flag,plant,order_status
+        )
+        select
+            doc_no,mainitem_code,mainitem_figure,
+            customer_name,business_type,demand_type,
+            doc_status,item_code,item_figure,
+            item_figure_version,pruduct_qty,work_qty,
+            op_num,work_center,dept,
+            start_date,complete_date,next_dept,
+            is_hold_release,is_out_source,org_code,
+            order_id,now(),'0',org_code,doc_status
+        from aps_work_order_job
+        where ( doc_status in (0,1,2,4) and
+            (mainitem_code like 'M01%' or mainitem_code like 'M02%'or mainitem_code like 'M05%' or mainitem_code like 'M10%'
+             or mainitem_code like 'M14%'or mainitem_code like 'M15%' or mainitem_code like 'F%' or mainitem_code like 'Z%')
+        );
+    </insert>
 </mapper>
\ No newline at end of file
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
index 981eb19..6aec5bd 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
@@ -178,4 +178,45 @@
         </foreach>
     </insert>
 
+    <!-- 鎻掑叆鏁版嵁鍒� aps_process_route -->
+    <insert id="insertIntoApsProcessRoute">
+        INSERT INTO aps_process_route (
+            id,
+            item_no,
+            work_order_no,
+            process_number,
+            op_id,
+            process_name,
+            standard_time,
+            process_plan_start_day,
+            process_plan_end_day,
+            process_qty,
+            discard_count,
+            op_status,
+            plant,
+            org_code
+        )
+        SELECT
+            id,
+            item_code,
+            doc_no,
+            op_num,
+            op_id,
+            process_name,
+            standard_time,
+            plan_start_date,
+            plan_complete_date,
+            process_qty,
+            scrap_qty,
+            op_status,
+            org,
+            org_code
+        FROM aps_work_order_process
+    </insert>
+
+    <!-- 鍒犻櫎 aps_process_route 琛ㄤ腑鐨勬暟鎹� -->
+    <delete id="deleteApsProcessRoute">
+        DELETE FROM aps_process_route
+    </delete>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3