From b248de310fd65c11f959f4cd0f02d3a6d3edb2c2 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期六, 12 十月 2024 16:41:21 +0800
Subject: [PATCH] 优化订单上报功能

---
 src/main/resources/mapper/OrderMapper.xml                      |    9 ++++
 src/main/resources/mapper/WrkDetlMapper.xml                    |    6 +++
 src/main/java/com/zy/asrs/service/OrderService.java            |    2 
 src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java            |    2 +
 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java   |    5 ++
 src/main/java/com/zy/asrs/mapper/OrderMapper.java              |    2 
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |    5 ++
 src/main/java/com/zy/asrs/task/WorkLogScheduler.java           |   40 +++++++++++++++++++
 src/main/java/com/zy/asrs/service/WrkDetlService.java          |    2 +
 9 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/OrderMapper.java b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
index 5500ade..eb249f6 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -13,7 +13,7 @@
 public interface OrderMapper extends BaseMapper<Order> {
 
     int updateSettle(@Param("orderId")Long orderId, @Param("settle")Long settle, @Param("userId")Long userId);
-
+    List<Order> selectWork();
     List<Order> selectComplete();
     List<Order> selectComplete8();
 
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index 15503d5..e4445bc 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -19,6 +19,8 @@
 
     int updateAnfme(@Param("anfme")Double anfme, @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
 
+    List<WrkDetl>selectByOrderNo(String orderNo);
+
     List<WrkDetl> selectAndLogByOrderNo(String orderNo);
 
     int updateInspect( @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
diff --git a/src/main/java/com/zy/asrs/service/OrderService.java b/src/main/java/com/zy/asrs/service/OrderService.java
index c9df78f..af6ff2c 100644
--- a/src/main/java/com/zy/asrs/service/OrderService.java
+++ b/src/main/java/com/zy/asrs/service/OrderService.java
@@ -21,7 +21,7 @@
     //boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls);
 
     void remove(Long orderId);
-
+    List<Order> selectWork();
     List<Order> selectComplete();
     List<Order> selectComplete8();
 
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index acba09e..5274a67 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -15,6 +15,8 @@
 
     boolean updateAnfme(Double anfme, Integer wrkNo, String matnr, String batch);
 
+    List<WrkDetl> selectByOrderNo(String orderNo);
+
     List<WrkDetl> selectAndLogByOrderNo(String orderNo);
 
     boolean updateInspect(Integer wrkNo, String matnr, String batch);
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 84cbac4..ca68042 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -131,7 +131,10 @@
         }
         orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", orderId));
     }
-
+    @Override
+    public List<Order> selectWork() {
+        return this.baseMapper.selectWork();
+    }
     @Override
     public List<Order> selectComplete() {
         return this.baseMapper.selectComplete();
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index 9c67431..b18d0fc 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -64,7 +64,10 @@
             return baseMapper.updateAnfme(anfme, wrkNo, matnr, batch) > 0;
         }
     }
-
+    @Override
+    public List<WrkDetl> selectByOrderNo(String orderNo) {
+        return this.baseMapper.selectByOrderNo(orderNo);
+    }
     @Override
     public List<WrkDetl> selectAndLogByOrderNo(String orderNo) {
         return this.baseMapper.selectAndLogByOrderNo(orderNo);
diff --git a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
index 06a0624..bd1e371 100644
--- a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -1,6 +1,14 @@
 package com.zy.asrs.task;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.mapper.OrderDetlMapper;
+import com.zy.asrs.service.OrderService;
+import com.zy.asrs.service.WrkDetlService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.WorkLogHandler;
@@ -22,9 +30,15 @@
     private WorkLogHandler workLogHandler;
     @Autowired
     private WrkMastService wrkMastService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private OrderDetlMapper orderDetlMapper;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    private void execute() {
         List<WrkMast> wrkMasts = wrkMastService.selectToBeHistoryData();
         if (wrkMasts.isEmpty()) {
             return;
@@ -37,4 +51,28 @@
         }
     }
 
+
+    @Scheduled(cron = "0/3 * * * * ? ")
+    private void execute2() {
+        List<Order> orders = orderService.selectWork();
+        for (Order order : orders) {
+            List<WrkDetl> wrkDetls = wrkDetlService.selectByOrderNo(order.getOrderNo());
+            if (wrkDetls != null) {
+                return;
+            }
+            List<OrderDetl> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()));
+            boolean complete = true;
+            for (OrderDetl orderDetl : orderDetls) {
+                if (orderDetl.getAnfme() > orderDetl.getQty()) {
+                    complete = false;
+                    break;
+                }
+            }
+            if (complete) {
+                if (!orderService.updateSettle(order.getId(), 4L, null)) {
+                    throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�");
+                }
+            }
+        }
+    }
 }
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index cac5835..06a13d9 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -59,6 +59,15 @@
         and id = #{orderId}
     </update>
 
+    <select id="selectWork" resultMap="BaseResultMap">
+        select top 5 *
+        from man_order
+        where 1=1
+          and settle = 2
+          and status = 1
+        order by create_time asc
+    </select>
+
     <select id="selectComplete" resultMap="BaseResultMap">
         select top 5 *
         from man_order
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index d12a84f..6abf636 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -95,6 +95,12 @@
         <include refid="batchSeq"></include>
     </update>
 
+    <select id="selectByOrderNo" resultMap="BaseResultMap">
+        SELECT d.*
+        FROM asr_wrk_detl d
+        WHERE order_no = #{orderNo}
+    </select>
+
     <select id="selectAndLogByOrderNo" resultMap="BaseResultMap">
         SELECT
             d.*

--
Gitblit v1.9.1