From c7b2dd66f2d9b6a1caf59f8fb5b3f8d5848602ff Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期三, 11 一月 2023 14:24:04 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/MatScheduler.java        |    2 +-
 src/main/java/com/zy/asrs/entity/dto/MatnrCountDto.java |   12 ++++++++++++
 src/main/java/com/zy/asrs/task/handler/MatHandler.java  |   40 +++++++++++++++++++++++++++++++++++++++-
 src/main/resources/mapper/MatMapper.xml                 |    2 +-
 4 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/dto/MatnrCountDto.java b/src/main/java/com/zy/asrs/entity/dto/MatnrCountDto.java
new file mode 100644
index 0000000..5fc86d1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/dto/MatnrCountDto.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.entity.dto;
+
+import lombok.Data;
+
+@Data
+public class MatnrCountDto {
+
+    private String matnr;
+
+    private Integer count;
+
+}
diff --git a/src/main/java/com/zy/asrs/task/MatScheduler.java b/src/main/java/com/zy/asrs/task/MatScheduler.java
index 01a2a50..88c936f 100644
--- a/src/main/java/com/zy/asrs/task/MatScheduler.java
+++ b/src/main/java/com/zy/asrs/task/MatScheduler.java
@@ -20,7 +20,7 @@
     @Autowired
     private MatHandler matHandler;
 
-    @Scheduled(cron = "0 0 1 * * ? ")
+    @Scheduled(cron = "0 0 23 * * ? ")
     private void execute(){
         ReturnT<String> returnT = matHandler.start();
         if (!returnT.isSuccess()) {
diff --git a/src/main/java/com/zy/asrs/task/handler/MatHandler.java b/src/main/java/com/zy/asrs/task/handler/MatHandler.java
index 0524e43..ff1933e 100644
--- a/src/main/java/com/zy/asrs/task/handler/MatHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/MatHandler.java
@@ -1,17 +1,27 @@
 package com.zy.asrs.task.handler;
 
+import com.zy.asrs.entity.Mat;
+import com.zy.asrs.entity.dto.MatnrCountDto;
 import com.zy.asrs.service.MatService;
+import com.zy.asrs.service.WrkDetlService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 /**
  * Created by vincent on 2020/7/7
  */
+@Slf4j
 @Service
 public class MatHandler extends AbstractHandler<String> {
 
@@ -19,11 +29,39 @@
     private JdbcTemplate jdbcTemplate;
     @Autowired
     private MatService matService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private WrkMastService wrkMastService;
 
     @Transactional
     public ReturnT<String> start() {
         try {
-
+            Date now = new Date();
+            List<MatnrCountDto> matnrCountDtos = jdbcTemplate.queryForList("select\n" +
+                    "matnr,\n" +
+                    "count(1) as count\n" +
+                    "from (\n" +
+                    "\tselect\n" +
+                    "\tdistinct awd.*\n" +
+                    "\tfrom asr_wrk_mast_log awm\n" +
+                    "\tleft join asr_wrk_detl_log awd on awm.wrk_no = awd.wrk_no\n" +
+                    "\twhere 1=1\n" +
+                    "\tand datediff(day, getdate(), awm.io_time) = 0 \n" +
+                    "\tand io_type not in (103,104,107)\n" +
+                    "\tand (manu_type is null or manu_type != '鎵嬪姩鍙栨秷')\n" +
+                    ") a\n" +
+                    "group by matnr", MatnrCountDto.class);
+            for (MatnrCountDto dto : matnrCountDtos) {
+                if (dto.getCount() >= 3) {
+                    Mat mat = matService.selectByMatnr(dto.getMatnr());
+                    mat.setInoutEveryday(Boolean.TRUE);
+                    mat.setUpdateTime(now);
+                    if (!matService.updateById(mat)) {
+                        log.error("{}鍟嗗搧淇敼涓洪珮棰戝睘鎬уけ璐ワ紒", dto.getMatnr());
+                    }
+                }
+            }
         } catch (Exception e) {
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
diff --git a/src/main/resources/mapper/MatMapper.xml b/src/main/resources/mapper/MatMapper.xml
index 6ec9eef..5cffd06 100644
--- a/src/main/resources/mapper/MatMapper.xml
+++ b/src/main/resources/mapper/MatMapper.xml
@@ -74,7 +74,7 @@
         <if test="specs != null and specs != ''">
             and mm.specs like concat('%',#{specs},'%')
         </if>
-        ORDER BY mm.create_time DESC
+        ORDER BY mm.inout_everyday desc, mm.create_time DESC
     </select>
 
     <select id="selectByMatnr" resultMap="BaseResultMap">

--
Gitblit v1.9.1