From 32a0c497d0c939b57ba4ac12f6e0bd8cedad5a4e Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期日, 04 一月 2026 13:42:21 +0800
Subject: [PATCH] #getArmType$

---
 src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java                   |    4 +
 src/main/java/com/zy/asrs/entity/param/ViewOrderParam.java                |    4 -
 src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentIdleLocParam.java |   35 ++++++++
 src/main/java/com/zy/asrs/controller/OpenController.java                  |   15 +++
 src/main/java/com/zy/asrs/entity/param/ViewLocDailyLogParam.java          |   44 +++++++++++
 src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java       |    9 ++
 src/main/resources/mapper/ViewWorkInMapper.xml                            |   40 ++++++++++
 src/main/java/com/zy/asrs/task/OrderMoveHistoryScheduler.java             |    5 +
 src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentOrderParam.java   |    1 
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java               |   40 +++++++++
 src/main/java/com/zy/asrs/service/OpenService.java                        |    1 
 11 files changed, 192 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index ca38880..cda9d2d 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -243,4 +243,19 @@
         return R.ok().add(openService.digitalTwinRecentOrder(param));
     }
 
+
+    /**
+     * 6.3杩戞湡鍓╀綑搴撲綅  杩戞湡鍓╀綑搴撲綅鏁伴噺,榛樿7澶�
+     */
+    @RequestMapping("/digitalTwin/recentIdleLoc")
+    public R digitalTwinRecentIdleLoc(@RequestHeader(required = false) String appkey,
+                                    @RequestBody DigitalTwinRecentIdleLocParam param,
+                                    HttpServletRequest request) {
+        auth(appkey, param, request);
+        if (Cools.isEmpty(param)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        return R.ok().add(openService.digitalTwinRecentIdleLoc(param));
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentIdleLocParam.java b/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentIdleLocParam.java
new file mode 100644
index 0000000..70a92d9
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentIdleLocParam.java
@@ -0,0 +1,35 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/6/13
+ */
+@Data
+public class DigitalTwinRecentIdleLocParam {
+    private int areaId;
+
+    // 寮�濮嬫棩鏈燂紝鏍煎紡锛�20251022銆備笉浼犻粯璁�7澶┿��
+    private String startDate;
+
+    // 缁撴潫鏃ユ湡锛屾牸寮忥細20251022銆傞厤鍚坰tartDate浣跨敤銆�
+    private String endDate;
+
+    private String memo;
+
+    private List<DataCode> dataCodeList;
+
+    @Data
+    public static class DataCode {
+        private int areaId;
+
+        // 搴撳瓨鏃ユ湡锛屾牸寮忥細2025-10-22
+        private String locDate;
+        // 鏁板瓧	鍓╀綑搴撲綅鏁伴噺
+        private Long idleNum;
+
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentOrderParam.java b/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentOrderParam.java
index 7a3a2c4..d841695 100644
--- a/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentOrderParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentOrderParam.java
@@ -18,7 +18,6 @@
 
     private String memo;
 
-    private List<ViewOrderParam> viewOrderParamList;
     private List<DataCode> dataCodeList;
 
     @Data
diff --git a/src/main/java/com/zy/asrs/entity/param/ViewLocDailyLogParam.java b/src/main/java/com/zy/asrs/entity/param/ViewLocDailyLogParam.java
new file mode 100644
index 0000000..d316a5f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/ViewLocDailyLogParam.java
@@ -0,0 +1,44 @@
+package com.zy.asrs.entity.param;
+
+/**
+ * Created by vincent on 2020/6/13
+ */
+public class ViewLocDailyLogParam {
+
+    private String ymd;
+    private int area;
+    private Long qty;
+    private String sts;
+
+    public String getYmd() {
+        return ymd;
+    }
+
+    public void setYmd(String ymd) {
+        this.ymd = ymd;
+    }
+
+    public int getArea() {
+        return area;
+    }
+
+    public void setArea(int area) {
+        this.area = area;
+    }
+
+    public Long getQty() {
+        return qty;
+    }
+
+    public void setQty(Long qty) {
+        this.qty = qty;
+    }
+
+    public String getSts() {
+        return sts;
+    }
+
+    public void setSts(String sts) {
+        this.sts = sts;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/ViewOrderParam.java b/src/main/java/com/zy/asrs/entity/param/ViewOrderParam.java
index 1344f8d..3129773 100644
--- a/src/main/java/com/zy/asrs/entity/param/ViewOrderParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/ViewOrderParam.java
@@ -1,9 +1,5 @@
 package com.zy.asrs.entity.param;
 
-import lombok.Data;
-
-import java.util.List;
-
 /**
  * Created by vincent on 2020/6/13
  */
diff --git a/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java b/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
index c2028bb..a1b797a 100644
--- a/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.mapper;
 
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.ViewLocDailyLogParam;
 import com.zy.asrs.entity.param.ViewOrderParam;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -83,4 +84,7 @@
 	Integer selectWorkCountOutSum(String matnr, @Param("start") String startTime, @Param("end") String endTime);
 
 	List<ViewOrderParam> getAsrOrderView(@Param("ymdS") String startTime, @Param("ymdD") String endTime);
+	List<ViewLocDailyLogParam> getAsrLocDailyLogO(@Param("areaId")int areaId, @Param("ymdS") String startTime, @Param("ymdD") String endTime);
+	List<ViewLocDailyLogParam> getAsrLocDailyLog2(@Param("areaId")int areaId, @Param("ymdS") String startTime, @Param("ymdD") String endTime);
+	void insertAsrLocDailyLog();
 }
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index 1640b12..1ace063 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -50,4 +50,5 @@
      */
     ViewStockUseBeanDigitalTwin digitalTwinOverview();
     DigitalTwinRecentOrderParam digitalTwinRecentOrder(DigitalTwinRecentOrderParam digitalTwinRecentOrderParam);
+    DigitalTwinRecentIdleLocParam digitalTwinRecentIdleLoc(DigitalTwinRecentIdleLocParam digitalTwinRecentIdleLocParam);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index bb47980..e2ba776 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -641,7 +641,45 @@
             param.setMemo(param.getMemo()+";鍒濆鍖栨棩鏈熶负 锛�"+param.getStartDate()+"===>" + param.getEndDate());
         }
         List<ViewOrderParam> asrOrderView = reportQueryMapper.getAsrOrderView(param.getStartDate(), param.getEndDate());
-        param.setViewOrderParamList(asrOrderView);
+        List<DigitalTwinRecentOrderParam.DataCode> dataCodes = new ArrayList<>();
+        for (ViewOrderParam view : asrOrderView) {
+            DigitalTwinRecentOrderParam.DataCode dataCode = new DigitalTwinRecentOrderParam.DataCode();
+            dataCode.setOrderDate(view.getYmd());
+            dataCode.setOrderNum(view.getQty());
+            dataCodes.add(dataCode);
+        }
+        param.setDataCodeList(dataCodes);
+        return param;
+    }
+
+    @Override
+    @Transactional
+    public DigitalTwinRecentIdleLocParam digitalTwinRecentIdleLoc(DigitalTwinRecentIdleLocParam param) {
+        Date date = new Date();
+        if (Cools.isEmpty(param.getStartDate()) || !TimeCalculatorUtils.isValidDateFormat(param.getStartDate(), DateUtils.yyyyMMdd) || TimeCalculatorUtils.isFutureDate(param.getStartDate(), DateUtils.yyyyMMdd)) {
+            param.setMemo("寮�濮嬫棩鏈熷紓甯� 锛�"+param.getStartDate());
+            String timeFrontSevenYesterday = new SimpleDateFormat(DateUtils.yyyyMMdd).format(TimeCalculatorUtils.timeFrontSevenYesterday6(date));//涓冨ぉ鍓�
+            param.setStartDate(timeFrontSevenYesterday);
+            String format = new SimpleDateFormat(DateUtils.yyyyMMdd).format(date);//褰撳ぉ
+            param.setEndDate(format);
+            param.setMemo(param.getMemo()+";鍒濆鍖栨棩鏈熶负 锛�"+param.getStartDate()+"===>" + param.getEndDate());
+        } else if (Cools.isEmpty(param.getEndDate()) || !TimeCalculatorUtils.isValidDateFormat(param.getEndDate(), DateUtils.yyyyMMdd)) {
+            param.setMemo("缁撴潫鏃ユ湡寮傚父 锛�"+param.getEndDate());
+            String format = new SimpleDateFormat(DateUtils.yyyyMMdd).format(date);//褰撳ぉ
+            param.setEndDate(format);
+            param.setMemo(param.getMemo()+";鍒濆鍖栨棩鏈熶负 锛�"+param.getStartDate()+"===>" + param.getEndDate());
+        }
+//        List<ViewLocDailyLogParam> asrLocDailyLogO = reportQueryMapper.getAsrLocDailyLogO(param.getAreaId(), param.getStartDate(), param.getEndDate());
+        List<ViewLocDailyLogParam> asrLocDailyLogO = reportQueryMapper.getAsrLocDailyLog2(param.getAreaId(), param.getStartDate(), param.getEndDate());
+        List<DigitalTwinRecentIdleLocParam.DataCode> dataCodes = new ArrayList<>();
+        for (ViewLocDailyLogParam view : asrLocDailyLogO) {
+            DigitalTwinRecentIdleLocParam.DataCode dataCode = new DigitalTwinRecentIdleLocParam.DataCode();
+            dataCode.setLocDate(view.getYmd());
+            dataCode.setIdleNum(view.getQty());
+            dataCode.setAreaId(view.getArea());
+            dataCodes.add(dataCode);
+        }
+        param.setDataCodeList(dataCodes);
         return param;
     }
 
diff --git a/src/main/java/com/zy/asrs/task/OrderMoveHistoryScheduler.java b/src/main/java/com/zy/asrs/task/OrderMoveHistoryScheduler.java
index c2a7f49..552c8b4 100644
--- a/src/main/java/com/zy/asrs/task/OrderMoveHistoryScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderMoveHistoryScheduler.java
@@ -26,4 +26,9 @@
     public void executeOrder(){
         orderMoveHistoryHandler.startOrder();
     }
+
+    @Scheduled(cron = "59 59 23 * * ?")
+    public void executeAsrLocDailyLog(){
+        orderMoveHistoryHandler.startAsrLocDailyLog();
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
index 11c0b25..a50054d 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
@@ -3,7 +3,9 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.mapper.ReportQueryMapper;
 import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.LocMastServiceImpl;
 import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl;
 import com.zy.asrs.service.impl.OrderPakinServiceImpl;
 import com.zy.asrs.task.AbstractHandler;
@@ -31,6 +33,8 @@
     private OrderDetlPakinServiceImpl orderDetlPakinService;
     @Autowired
     private OrderDetlPakoutService orderDetlPakoutService;
+    @Autowired
+    private ReportQueryMapper reportQueryMapper;
 
     public ReturnT<String> start(){
 //        List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>()
@@ -114,4 +118,9 @@
         }
     }
 
+    public ReturnT<String> startAsrLocDailyLog(){
+        reportQueryMapper.insertAsrLocDailyLog();
+        return SUCCESS;
+    }
+
 }
diff --git a/src/main/resources/mapper/ViewWorkInMapper.xml b/src/main/resources/mapper/ViewWorkInMapper.xml
index c4fb933..c70ebdb 100644
--- a/src/main/resources/mapper/ViewWorkInMapper.xml
+++ b/src/main/resources/mapper/ViewWorkInMapper.xml
@@ -179,4 +179,44 @@
 	Order by ymd desc
 </select>
 
+<!-- 涓嶅垎椤垫煡璇㈡墍鏈変俊鎭� -->
+<select id="getAsrLocDailyLogO" parameterType="com.zy.asrs.entity.param.ViewLocDailyLogParam" resultType="com.zy.asrs.entity.param.ViewLocDailyLogParam">
+	select *
+	from asr_loc_daily_log_view
+	where 1=1
+	<choose>
+		<when test="areaId != null and areaId != 0">
+			and sts = 'O'
+			and area = #{areaId}
+		</when>
+		<otherwise>
+			and sts = 'BFQ'
+			and (area IS NULL OR area = 0)
+		</otherwise>
+	</choose>
+	<include refid="viewAsrOrderView"></include>
+	Order by ymd desc
+</select>
+
+<!-- 涓嶅垎椤垫煡璇㈡墍鏈変俊鎭� -->
+<select id="getAsrLocDailyLog2" parameterType="com.zy.asrs.entity.param.ViewLocDailyLogParam" resultType="com.zy.asrs.entity.param.ViewLocDailyLogParam">
+	select *
+	from asr_loc_daily_log_view
+	where 1=1
+	and sts = 'O'
+	<if test="areaId != null and areaId != 0">
+		and area = #{areaId}
+	</if>
+	<include refid="viewAsrOrderView"></include>
+	Order by ymd desc
+</select>
+
+<insert id="insertAsrLocDailyLog">
+	INSERT INTO asr_loc_daily_log (loc_count, area_id)
+	SELECT COUNT(*), crn_no
+	FROM asr_loc_mast
+	WHERE loc_sts = 'O'
+	GROUP BY crn_no;
+</insert>
+
 </mapper>

--
Gitblit v1.9.1