From f1a3407130d88ad15320ab9fcfabd109e5127c78 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 27 四月 2025 14:01:27 +0800
Subject: [PATCH] 获取堆垛机状态及所属巷道库位统计信息

---
 src/main/java/com/zy/asrs/entity/CrnLaneWayInfoDto.java     |   53 ++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java         |    7 +++
 src/main/java/com/zy/asrs/controller/OpenController.java    |    8 ++++
 src/main/resources/mapper/BasCrnpMapper.xml                 |   21 ++++++++++
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   14 +++++--
 src/main/java/com/zy/asrs/service/OpenService.java          |    5 ++
 6 files changed, 104 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index c07c41c..93e089d 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -193,6 +193,14 @@
         return openService.getUnfulfilledOrders();
     }
 
+    @PostMapping("/getCrnLaneWayInfo")
+    @AppAuth(memo = "鑾峰彇鍫嗗灈鏈虹姸鎬佸強鎵�灞炲贩閬撳簱浣嶇粺璁′俊鎭�")
+    public synchronized R getCrnLaneWayInfo(@RequestHeader(required = false) String appkey,
+                                               HttpServletRequest request) {
+        auth(appkey, null, request);
+        return openService.getCrnLaneWayInfo();
+    }
+
 
     /*@PostMapping("/order/matSync/default/v1")
     @AppAuth(memo = "鍟嗗搧淇℃伅鍚屾鎺ュ彛")
diff --git a/src/main/java/com/zy/asrs/entity/CrnLaneWayInfoDto.java b/src/main/java/com/zy/asrs/entity/CrnLaneWayInfoDto.java
new file mode 100644
index 0000000..dba42b2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/CrnLaneWayInfoDto.java
@@ -0,0 +1,53 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+
+/**
+ * @author pang.jiabao
+ * @description 鍫嗗灈鏈虹姸鎬佸強鎵�灞炲贩閬撶粺璁′俊鎭�
+ * @createDate 2025/4/27 13:37
+ */
+@Data
+public class CrnLaneWayInfoDto {
+
+    /**
+     * 鍫嗗灈鏈哄彿
+     */
+    private Integer crnNo;
+
+    /**
+     * 鍫嗗灈鏈虹姸鎬� -1.绂荤嚎, 0.缁翠慨, 1.鎵嬪姩,2.鍗婅嚜鍔�,3.鑷姩,100.鍏朵粬
+     */
+    private Integer crnSts;
+
+    /**
+     * 鍫嗗灈鏈烘槸鍚﹀紓甯� 0.鏈紓甯革紝1.寮傚父
+     */
+    private Integer crnErr;
+
+    /**
+     * 宸烽亾搴撲綅鎬绘暟
+     */
+    private Integer count;
+
+    /**
+     * 鍦ㄥ簱鏁�
+     */
+    private Integer stockQty;
+
+    /**
+     * 绌烘墭鐩樻暟
+     */
+    private Integer emptyPalletQty;
+
+    /**
+     * 绌哄簱浣嶆暟
+     */
+    private Integer emptySlotQty;
+
+    /**
+     * 鍏朵粬鐘舵�佸簱浣嶆暟
+     */
+    private Integer otherQty;
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java b/src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java
index baffc35..389fa94 100644
--- a/src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasCrnpMapper.java
@@ -2,11 +2,18 @@
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.asrs.entity.BasCrnp;
+import com.zy.asrs.entity.CrnLaneWayInfoDto;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 @Mapper
 @Repository
 public interface BasCrnpMapper extends BaseMapper<BasCrnp> {
 
+    /**
+     * 鑾峰彇鍫嗗灈鏈虹姸鎬佸強鎵�灞炲贩閬撳簱浣嶇粺璁′俊鎭�
+     */
+    List<CrnLaneWayInfoDto> getCrnLaneWayInfo();
 }
diff --git a/src/main/java/com/zy/asrs/service/OpenService.java b/src/main/java/com/zy/asrs/service/OpenService.java
index aab0d10..4f8c1e0 100644
--- a/src/main/java/com/zy/asrs/service/OpenService.java
+++ b/src/main/java/com/zy/asrs/service/OpenService.java
@@ -90,6 +90,11 @@
      */
     R getUnfulfilledOrders();
 
+    /**
+     * 鑾峰彇鍫嗗灈鏈虹姸鎬佸強鎵�灞炲贩閬撳簱浣嶇粺璁′俊鎭�
+     */
+    R getCrnLaneWayInfo();
+
 
     /**
      * 娣诲姞鍏ュ簱鍗�
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 eb6bf8a..13537f8 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -15,10 +15,7 @@
 import com.zy.asrs.entity.result.StockVo;
 import com.zy.asrs.entity.result.ZphjcdgzVo;
 import com.zy.asrs.entity.result.ZphjcdwcVo;
-import com.zy.asrs.mapper.LocDetlMapper;
-import com.zy.asrs.mapper.MatMapper;
-import com.zy.asrs.mapper.OrderMapper;
-import com.zy.asrs.mapper.TagMapper;
+import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.MatUtils;
 import com.zy.common.constant.MesConstant;
@@ -111,6 +108,9 @@
 
     @Resource
     private OrderMapper orderMapper;
+
+    @Resource
+    private BasCrnpMapper basCrnpMapper;
 
     @Override
     @Transactional
@@ -1973,6 +1973,12 @@
         return R.ok(unfulfilledOrders);
     }
 
+    @Override
+    public R getCrnLaneWayInfo() {
+        List<CrnLaneWayInfoDto> crnLaneWayInfo = basCrnpMapper.getCrnLaneWayInfo();
+        return R.ok(crnLaneWayInfo);
+    }
+
     /**
      * 鍒涘缓妗佹灦鐞嗚揣鍑哄簱鐨勫伐浣滄。
      */
diff --git a/src/main/resources/mapper/BasCrnpMapper.xml b/src/main/resources/mapper/BasCrnpMapper.xml
index 50d9755..9ee2944 100644
--- a/src/main/resources/mapper/BasCrnpMapper.xml
+++ b/src/main/resources/mapper/BasCrnpMapper.xml
@@ -27,5 +27,26 @@
         <result column="tank_qty1" property="tankQty1" />
         <result column="origin" property="origin" />
     </resultMap>
+    <select id="getCrnLaneWayInfo" resultType="com.zy.asrs.entity.CrnLaneWayInfoDto">
+        select
+            crn.crn_no crnNo ,
+            crn.crn_sts crnSts,
+            case when crn.crn_err != 0 then 1 else 0 end as crnErr,
+            count(loc.loc_no) count,
+	        count(case when loc.loc_sts = 'F' then 1 end) stockQty,
+	        count(case when loc.loc_sts = 'D' then 1 end) emptyPalletQty,
+	        count(case when loc.loc_sts = 'O' then 1 end) emptySlotQty,
+	        count(case when loc.loc_sts != 'O' and loc.loc_sts != 'D' and loc.loc_sts != 'F' then 1 end) otherQty
+        from
+            asr_bas_crnp crn
+        left join asr_loc_mast loc on
+            crn.crn_no = loc.crn_no
+        group by
+            crn.crn_no,
+            crn.crn_sts,
+            crn.crn_err
+        order by
+            crn.crn_no
+    </select>
 
 </mapper>

--
Gitblit v1.9.1