From 165050015b3bc1a8a41eed7851d29e2e8d3db187 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期一, 07 四月 2025 17:33:48 +0800
Subject: [PATCH] 成品下单人员权限修改

---
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml                          |   23 ++++++++++-
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java            |    2 
 ruoyi-system/src/main/resources/mapper/system/UserMapper.xml                         |    3 +
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java |   26 ++++++++++++-
 inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java               |   12 ++++++
 5 files changed, 59 insertions(+), 7 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
index 6e3acde..6bca881 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
@@ -88,7 +88,19 @@
 
     private String sampleStr;
 
+    /**
+     * 鏄惁鏄叏閮�
+     */
+    private String isOrderAll;
 
+    /**
+     * 鏄惁鏄楠屼汉鍛樻爣璁�
+     */
+    private Boolean checkUserFlag;
 
+    /**
+     * 妫�楠屼汉鍛�
+     */
+    private Long checkUserId;
 
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
index 449c56d..8482bd7 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
@@ -27,7 +27,7 @@
 public interface InsOrderMapper extends BaseMapper<InsOrder> {
 
     //鑾峰彇妫�楠屼笅鍗曟暟鎹�
-    IPage<SampleOrderDto> selectInsOrderPage(@Param("page") IPage<InsOrder> page, @Param("ew") QueryWrapper<SampleOrderDto> ew, @Param("laboratory") String laboratory, @Param("isOrderAll") String isOrderAll);
+    IPage<SampleOrderDto> selectInsOrderPage(@Param("page") IPage<InsOrder> page, @Param("ew") QueryWrapper<SampleOrderDto> ew, @Param("otherParam") SampleOrderDto otherParam);
 
 
     String getLaboratoryCode(@Param("name") String name);
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index 7b2c20d..868ba44 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -91,7 +91,8 @@
     //鑾峰彇妫�楠屼笅鍗曟暟鎹�
     @Override
     public IPage<SampleOrderDto> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto) {
-        //todo: 鍙湅鎴戝垽鏂叏閮�,涓汉,缁勭粐鐨勬潈闄�
+        // TODO 閽堝浜哄憳鍋氭潈闄愬鐞� 鐩墠鍏堝妫�楠屼汉鍛樺仛鏁版嵁澶勭悊  濡傛灉鏄楠屼汉鍛樺彧鑳芥煡璇㈠埌妫�楠岄」鐩槸鑷繁鎴栬�呰鍗曞垎娲句汉鏄嚜宸辩殑璁㈠崟锛屼笉鏄楠屼汉鍛樼殑鏆傛椂鍏ㄦ煡
+        boolean checkUserFlag = isCheckUser(SecurityUtils.getUserId().intValue());
         String laboratory = null;
         // 鍒ゆ柇鏄惁鏄叏閮�
         String isOrderAll = null;
@@ -99,7 +100,12 @@
             isOrderAll = "1";
             sampleOrderDto.setState(null);
         }
-        return insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), laboratory, isOrderAll);
+        SampleOrderDto otherParam = new SampleOrderDto();
+        otherParam.setLaboratory(laboratory);
+        otherParam.setIsOrderAll(isOrderAll);
+        otherParam.setCheckUserFlag(checkUserFlag);
+        otherParam.setCheckUserId(SecurityUtils.getUserId());
+        return insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), otherParam);
     }
 
 
@@ -1032,6 +1038,22 @@
         }
     }
 
+
+    /**
+     * 鍒ゆ柇鏄惁涓烘楠屼汉鍛�
+     * @param userId
+     * @return
+     */
+    public boolean isCheckUser(Integer userId) {
+        List<User> userList = userMapper.selectQualityUserList();
+        for (User user : userList) {
+            if(userId.equals(user.getId())){
+                return true;
+            }
+        }
+        return false;
+    }
+
 }
 
 
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index bc998cb..2fe9e71 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -96,11 +96,28 @@
         GROUP BY ins_sample_id
         ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
         where (io.ifs_inventory_id IS NULL OR TRIM(io.ifs_inventory_id)  = '')
-        <if test="isOrderAll != null and isOrderAll != ''">
+        <if test="otherParam.isOrderAll != null and otherParam.isOrderAll != ''">
             AND io.state in (1, 4)
         </if>
-        <if test="laboratory!=null and laboratory!=''">
-            AND io.laboratory=#{laboratory}
+        <if test="otherParam.laboratory!=null and otherParam.laboratory!=''">
+            AND io.laboratory=#{otherParam.laboratory}
+        </if>
+        <if test="otherParam.checkUserFlag != null and otherParam.checkUserFlag and otherParam.checkUserId != null ">
+            AND io.id IN (
+                SELECT DISTINCT
+                ins_sample_id AS orderId
+                FROM
+                ins_sample_user
+                WHERE
+                user_id = #{otherParam.checkUserId} UNION
+                SELECT
+                T2.ins_order_id AS orderId
+                FROM
+                ins_product T1
+                JOIN ins_sample T2 ON T1.ins_sample_id = T2.id
+                WHERE
+                T1.check_user_id = #{otherParam.checkUserId}
+            )
         </if>
         GROUP BY io.id,type
         order by type desc,io.id desc
diff --git a/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
index a75855c..8c743c8 100644
--- a/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/UserMapper.xml
@@ -77,7 +77,8 @@
                u1.name_en,
                u1.depart_lims_id
         from user u1
-        WHERE u1.id IN (SELECT user_id FROM sys_user_role sur where sur.role_id not in (1, 15, 16, 17))
+        WHERE u1.id IN (SELECT user_id FROM sys_user_role sur where sur.role_id in (4))
+--         WHERE u1.id IN (SELECT user_id FROM sys_user_role sur where sur.role_id not in (1, 15, 16, 17))
         and u1.status = '0'
     </select>
 

--
Gitblit v1.9.3