From ea1db1a84e8d1412b77060a37bc976a93bbb58dd Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期日, 04 一月 2026 16:33:52 +0800
Subject: [PATCH] #getArmType$

---
 src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java                     |    2 
 src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentDetainMatParam.java |   45 +++++++++
 src/main/java/com/zy/asrs/entity/param/DigitalTwinWarehouseDetailParam.java |   46 +++++++++
 src/main/java/com/zy/asrs/controller/OpenController.java                    |   45 +++++++++
 src/main/resources/mapper/ViewWorkInMapper.xml                              |   18 +++
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java                 |   38 +++++++
 src/main/java/com/zy/asrs/entity/param/DigitalTwinEquipmentParam.java       |   32 ++++++
 src/main/java/com/zy/asrs/service/OpenService.java                          |    3 
 src/main/java/com/zy/asrs/entity/param/VwLocDetlSummaryParam.java           |   22 ++++
 9 files changed, 251 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 464ded3..d9371a3 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -273,4 +273,49 @@
         return R.ok().add(openService.digitalTwinRecentInAndOutBound(param));
     }
 
+
+    /**
+     * 6.5杩戞湡鍛嗘粸鍝�
+     */
+    @RequestMapping("/digitalTwin/recentDetainMat")
+    public R digitalTwinRecentDetainMat(@RequestHeader(required = false) String appkey,
+                                            @RequestBody DigitalTwinRecentDetainMatParam param,
+                                            HttpServletRequest request) {
+        auth(appkey, param, request);
+        if (Cools.isEmpty(param)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        return R.ok().add(openService.digitalTwinRecentDetainMat(param));
+    }
+
+
+    /**
+     * 6.6璁惧鐩戞帶
+     */
+    @RequestMapping("/digitalTwin/equipment")
+    public R digitalTwinEquipment(@RequestHeader(required = false) String appkey,
+                                        @RequestBody DigitalTwinEquipmentParam param,
+                                        HttpServletRequest request) {
+        auth(appkey, param, request);
+        if (Cools.isEmpty(param)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        return R.ok().add(openService.digitalTwinEquipment(param));
+    }
+
+
+    /**
+     * 6.7搴撲綅鍙婂簱瀛樹俊鎭�
+     */
+    @RequestMapping("/digitalTwin/warehouseDetail")
+    public R digitalTwinWarehouseDetail(@RequestHeader(required = false) String appkey,
+                                  @RequestBody DigitalTwinWarehouseDetailParam param,
+                                  HttpServletRequest request) {
+        auth(appkey, param, request);
+        if (Cools.isEmpty(param)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        return R.ok().add(openService.digitalTwinWarehouseDetail(param));
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/entity/param/DigitalTwinEquipmentParam.java b/src/main/java/com/zy/asrs/entity/param/DigitalTwinEquipmentParam.java
new file mode 100644
index 0000000..52be5b9
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/DigitalTwinEquipmentParam.java
@@ -0,0 +1,32 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/6/13
+ */
+@Data
+public class DigitalTwinEquipmentParam {
+    private int areaId = 0;         //搴撳尯ID锛屼笉浼犻粯璁ゅ叏閮�
+
+    private List<DataCode> dataCodeList = new ArrayList<>();
+
+    @Data
+    public static class DataCode {
+
+        private String equipmentId = "1";         //璁惧ID
+        private String equipmentName = "鍙峰爢鍨涙満";       //璁惧鍚嶇О
+        private int equipmentType = 1;         //璁惧绫诲瀷锛�1 鍫嗗灈鏈猴紱2 CTU锛�3 AGV锛�
+        private String belongAreaId = "1";        //褰掑睘搴撳尯ID
+        private String belongAreaName = "1";      //褰掑睘搴撳尯鍚嶇О
+        private int verticalSpeed = 10;         //鍨傜洿閫熷害锛屽崟浣嶏細M/min
+        private int horizontalSpeed = 10;       //姘村钩閫熷害锛屽崟浣嶏細M/min
+        private int voltage = 320;               //鐢靛帇锛屽崟浣嶏細v
+        private int status = 1;                //璁惧鐘舵�侊細1 姝e父锛�2 寰呮満锛�3 鏁呴殰锛�
+        private int operateMethod = 1;         //鎿嶄綔鏂瑰紡锛�1 鑷姩锛�2 鍗婅嚜鍔紱3 鎵嬪姩锛�
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentDetainMatParam.java b/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentDetainMatParam.java
new file mode 100644
index 0000000..e370062
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/DigitalTwinRecentDetainMatParam.java
@@ -0,0 +1,45 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/6/13
+ */
+@Data
+public class DigitalTwinRecentDetainMatParam {
+    private int areaId = 0;         //搴撳尯ID锛屼笉浼犻粯璁ゅ叏閮�
+    private int overDayNum = 30;    //鍛嗘粸鍝佽瀹氬ぉ鏁帮紝濡傝秴杩�10浼犲�硷細10銆傞粯璁�30銆�
+    private int pageIndex = 1;      //鍒嗛〉椤电爜锛屼粠1寮�濮嬨�傞渶瑕佸垎椤垫椂浣跨敤銆�
+    private int pageSize = 9999;    //鍒嗛〉椤电爜澶у皬銆�
+
+    private List<DataCode> dataCodeList;
+
+    @Data
+    public static class DataCode {
+
+        private int belongAreaId;        //褰掑睘搴撳尯ID
+        private String belongAreaName;      //褰掑睘搴撳尯鍚嶇О
+        private String matId;               //鐗╂枡ID
+        private String matName;             //鐗╂枡鍚嶇О
+        private String lokId;               //鎵�灞炲簱浣岻D
+        private String lokName;             //鎵�灞炲簱浣嶅悕绉�
+        private int detainTime;            //鍛嗘粸鏃堕棿锛岃绠楀崟浣嶏細鍒嗛挓
+        private String inBoundTime;         //鍏ュ簱鏃堕棿锛屾牸寮忥細2025-10-11T11:15:16锛岄鐣�
+
+        public DataCode() {
+        }
+
+        public DataCode(VwLocDetlSummaryParam vwLocDetlSummaryParam) {
+            this.belongAreaId = vwLocDetlSummaryParam.getAreaId();
+            this.matId = vwLocDetlSummaryParam.getMatId();
+            this.matName = vwLocDetlSummaryParam.getMaktx();
+            this.lokId = vwLocDetlSummaryParam.getLocNo();
+            this.lokName = vwLocDetlSummaryParam.getLocNo();
+            this.detainTime = vwLocDetlSummaryParam.getDetainTime();
+            this.inBoundTime = vwLocDetlSummaryParam.getInBoundTime();
+        }
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/DigitalTwinWarehouseDetailParam.java b/src/main/java/com/zy/asrs/entity/param/DigitalTwinWarehouseDetailParam.java
new file mode 100644
index 0000000..05f1159
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/DigitalTwinWarehouseDetailParam.java
@@ -0,0 +1,46 @@
+package com.zy.asrs.entity.param;
+
+import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/6/13
+ */
+@Data
+public class DigitalTwinWarehouseDetailParam {
+    private int areaId = 0;         //搴撳尯ID锛屼笉浼犻粯璁ゅ叏閮�
+
+    private List<DataCode> dataCodeList = new ArrayList<DataCode>();
+
+    @Data
+    public static class DataCode {
+
+        private String locNo;//璁惧ID
+        private String locSts;//璁惧鍚嶇О
+        private int areaId;//璁惧绫诲瀷
+        private String areaName;//璁惧绫诲瀷
+        private int row1;//璁惧绫诲瀷
+        private int bay1;//璁惧绫诲瀷
+        private int lev1;//璁惧绫诲瀷
+        private List<LocMast> locMast;//璁惧绫诲瀷
+        private List<LocDetl> locDetl;//璁惧绫诲瀷
+
+        public DataCode(LocMast locMast,List<LocDetl> locDetl) {
+            ArrayList<LocMast> locMasts = new ArrayList<>();
+            locMasts.add(locMast);
+            this.locNo = locMast.getLocNo();
+            this.locSts = locMast.getLocSts();
+            this.areaId = locMast.getCrnNo();
+            this.areaName = "";
+            this.row1 = locMast.getRow1();
+            this.bay1 = locMast.getBay1();
+            this.lev1 = locMast.getLev1();
+            this.locMast = locMasts;
+            this.locDetl = locDetl;
+        }
+    }
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/VwLocDetlSummaryParam.java b/src/main/java/com/zy/asrs/entity/param/VwLocDetlSummaryParam.java
new file mode 100644
index 0000000..8fed509
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/VwLocDetlSummaryParam.java
@@ -0,0 +1,22 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+/**
+ * Created by vincent on 2020/6/13
+ */
+@Data
+public class VwLocDetlSummaryParam {
+
+    private String locNo;
+    private int areaId;
+    private String matId;
+    private String inBoundTime;
+    private int detainTime;//搴撻緞锛堝ぉ鏁帮級
+    // 鐗╂枡缂栧彿
+    private String maktx;
+    private String batch;
+    private String zpallet;
+    // 鐗╂枡鏁伴噺
+    private Double anfme;
+}
diff --git a/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java b/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
index a1b797a..2d3e55b 100644
--- a/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -3,6 +3,7 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.ViewLocDailyLogParam;
 import com.zy.asrs.entity.param.ViewOrderParam;
+import com.zy.asrs.entity.param.VwLocDetlSummaryParam;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -86,5 +87,6 @@
 	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);
+	List<VwLocDetlSummaryParam> getVwLocDetlSummaryParam(@Param("areaId")int areaId,@Param("overDayNum")int overDayNum, @Param("curr") Integer curr, @Param("limit") Integer limit);
 	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 66a4002..41f84ba 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -52,4 +52,7 @@
     DigitalTwinRecentOrderParam digitalTwinRecentOrder(DigitalTwinRecentOrderParam digitalTwinRecentOrderParam);
     DigitalTwinRecentIdleLocParam digitalTwinRecentIdleLoc(DigitalTwinRecentIdleLocParam digitalTwinRecentIdleLocParam);
     DigitalTwinRecentInAndOutBoundParam digitalTwinRecentInAndOutBound(DigitalTwinRecentInAndOutBoundParam digitalTwinRecentIdleLocParam);
+    DigitalTwinRecentDetainMatParam digitalTwinRecentDetainMat(DigitalTwinRecentDetainMatParam digitalTwinRecentIdleLocParam);
+    DigitalTwinEquipmentParam digitalTwinEquipment(DigitalTwinEquipmentParam digitalTwinRecentIdleLocParam);
+    DigitalTwinWarehouseDetailParam digitalTwinWarehouseDetail(DigitalTwinWarehouseDetailParam 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 d628199..688cdd0 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -716,4 +716,42 @@
         return param;
     }
 
+    @Override
+    @Transactional
+    public DigitalTwinRecentDetainMatParam digitalTwinRecentDetainMat(DigitalTwinRecentDetainMatParam param) {
+        List<VwLocDetlSummaryParam> vwLocDetlSummaryParam = reportQueryMapper.getVwLocDetlSummaryParam(param.getAreaId(), param.getOverDayNum(), param.getPageIndex(), param.getPageSize());
+
+        List<DigitalTwinRecentDetainMatParam.DataCode> dataCodes = new ArrayList<>();
+        for (VwLocDetlSummaryParam view : vwLocDetlSummaryParam) {
+            DigitalTwinRecentDetainMatParam.DataCode dataCode = new DigitalTwinRecentDetainMatParam.DataCode(view);
+            dataCodes.add(dataCode);
+        }
+        param.setDataCodeList(dataCodes);
+        return param;
+    }
+
+    @Override
+    @Transactional
+    public DigitalTwinEquipmentParam digitalTwinEquipment(DigitalTwinEquipmentParam param) {
+        DigitalTwinEquipmentParam.DataCode dataCode = new DigitalTwinEquipmentParam.DataCode();
+        dataCode.setEquipmentId(""+param.getAreaId());
+        dataCode.setEquipmentName(param.getAreaId()+dataCode.getEquipmentName());
+        dataCode.setBelongAreaId(""+param.getAreaId());
+        dataCode.setBelongAreaName(""+param.getAreaId());
+        param.getDataCodeList().add(dataCode);
+        return param;
+    }
+
+    @Override
+    @Transactional
+    public DigitalTwinWarehouseDetailParam digitalTwinWarehouseDetail(DigitalTwinWarehouseDetailParam param) {
+        List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<>());
+        for (LocMast locMast : locMastList) {
+            List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
+            DigitalTwinWarehouseDetailParam.DataCode dataCode = new DigitalTwinWarehouseDetailParam.DataCode(locMast,locDetlList);
+            param.getDataCodeList().add(dataCode);
+        }
+        return param;
+    }
+
 }
diff --git a/src/main/resources/mapper/ViewWorkInMapper.xml b/src/main/resources/mapper/ViewWorkInMapper.xml
index c70ebdb..f5118e2 100644
--- a/src/main/resources/mapper/ViewWorkInMapper.xml
+++ b/src/main/resources/mapper/ViewWorkInMapper.xml
@@ -218,5 +218,23 @@
 	WHERE loc_sts = 'O'
 	GROUP BY crn_no;
 </insert>
+<select id="getVwLocDetlSummaryParam" resultType="com.zy.asrs.entity.param.VwLocDetlSummaryParam">
+	SELECT *
+	FROM (
+		select
+		ROW_NUMBER() OVER(Order by a.areaId desc) as row
+		, *
+		FROM(
+			SELECT * FROM vw_loc_detl_summary
+			WHERE 1=1
+			  and detainTime >= #{overDayNum}
+			<if test="areaId != null and areaId != 0">
+				and area = #{areaId}
+			</if>
+		) a
+	) b
+	WHERE 1=1 and b.row between ((#{curr}-1)*#{limit}+1) and (#{curr}*#{limit})
+
+</select>
 
 </mapper>

--
Gitblit v1.9.1