From e8d0a2f9375da4d04da4a06a0f9fa8ef448512c4 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 19 十一月 2024 15:58:49 +0800
Subject: [PATCH] 检验下单审核进行企业微信推送

---
 inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java                        |    3 +
 inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java                          |    5 +
 inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java                |    3 +
 inspect-server/src/main/resources/mapper/InsSampleMapper.xml                                 |    5 +
 user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java                             |    4 +
 framework/src/main/java/com/yuanchu/mom/service/impl/InformationNotificationServiceImpl.java |    6 +
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java       |    8 +-
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java           |   84 +++++++++++++++++++++++++++
 user-server/src/main/resources/mapper/UserMapper.xml                                         |    5 +
 9 files changed, 113 insertions(+), 10 deletions(-)

diff --git a/framework/src/main/java/com/yuanchu/mom/service/impl/InformationNotificationServiceImpl.java b/framework/src/main/java/com/yuanchu/mom/service/impl/InformationNotificationServiceImpl.java
index 39c53a4..5350386 100644
--- a/framework/src/main/java/com/yuanchu/mom/service/impl/InformationNotificationServiceImpl.java
+++ b/framework/src/main/java/com/yuanchu/mom/service/impl/InformationNotificationServiceImpl.java
@@ -85,7 +85,8 @@
         Map<String, Object> map = new HashMap<>();
         map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
         Long totalNumberOfMessages = baseMapper.selectCount(Wrappers.<InformationNotification>lambdaQuery()
-                .eq(InformationNotification::getConsigneeId, map1.get("userId")));
+                .eq(InformationNotification::getConsigneeId, map1.get("userId"))
+                .eq(InformationNotification::getViewStatus, false));
         Long totalNumberOfReadMessages = baseMapper.selectCount(Wrappers.<InformationNotification>lambdaQuery()
                 .eq(InformationNotification::getConsigneeId, map1.get("userId"))
                 .eq(InformationNotification::getViewStatus, true));
@@ -93,8 +94,9 @@
         LocalDate sevenDaysAgo = today.minusDays(7);
         Long totalNumberOfMessagesInThePastSevenDays = baseMapper.selectCount(Wrappers.<InformationNotification>lambdaQuery()
                 .eq(InformationNotification::getConsigneeId, map1.get("userId"))
-                .between(InformationNotification::getCreateTime, today, sevenDaysAgo));
+                .between(InformationNotification::getCreateTime, today.atStartOfDay(), sevenDaysAgo.atStartOfDay()));
         long remainingToDo = totalNumberOfMessages - totalNumberOfReadMessages;
+        remainingToDo=remainingToDo<0?0:remainingToDo;
         map.put("totalNumberOfMessages", totalNumberOfMessages);
         map.put("remainingToDo", remainingToDo);
         map.put("totalNumberOfReadMessages", totalNumberOfReadMessages);
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java
index 60c7548..d6aaae8 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java
@@ -29,4 +29,7 @@
     @ApiModelProperty("濮旀墭缂栧彿")
     private String entrustCode;
 
+    @ApiModelProperty("鏍峰搧缂栧彿")
+    private String sampleCode;
+
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index 32fbe1b..eef9505 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -414,9 +414,7 @@
                 orderState.setInsState(0);
                 orderState.setNum(orderState.getNum() + 1);//閫掑
                 insOrderStateMapper.updateById(orderState);
-            } /*else {
-                throw new ErrorException("璇ヨ鍗曠珯鐐圭殑浠诲姟宸插垱寤�,鏃犳硶鍐嶆鍒涘缓!");
-            }*/
+            }
         } else {
             InsOrderState insOrderState = new InsOrderState();
             insOrderState.setInsOrderId(insSample.getInsOrderId());
@@ -1117,9 +1115,9 @@
         info.setViewStatus(false);
         info.setJumpPath("b1-inspect-order-plan");
         informationNotificationService.addInformationNotification(info);
-        // todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
+        //  todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
             HashMap<String, Object> map = new HashMap<>();
-            String account = userMapper.selectById(userId).getAccount();
+            String account = userMapper.selectById(submitPlanDto.getVerifyUser()).getAccount();
             map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
             map.put("toparty", "");//鎺ユ敹閮ㄩ棬id
             map.put("totag", "");//娑堟伅鏍囩id
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
index c8f9b42..8701757 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -21,6 +21,7 @@
 import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.*;
+import com.yuanchu.mom.service.InformationNotificationService;
 import com.yuanchu.mom.service.InsOrderPlanService;
 import com.yuanchu.mom.service.InsOrderService;
 import com.yuanchu.mom.service.InsProductService;
@@ -95,6 +96,9 @@
     private InsOrderStateMapper insOrderStateMapper;
     @Resource
     UserMapper userMapper;
+
+    @Resource
+    InformationNotificationService informationNotificationService;
     @Resource
     PowerMapper powerMapper;
     @Resource
@@ -246,10 +250,76 @@
             }
 
         });
+        List<User> users1 = userMapper.getUserByRole("妫�娴嬩腑蹇冧富浠�");
+        List<User> users2 = userMapper.getUserByRole("鐮斿彂閮ㄧ粡鐞�");
+        List<User> users3 = userMapper.getUserByRole("鎶�鏈礋璐d汉");
         //閫氫俊:濡傛灉鏄疌绫昏鍗曟棤闇�瀹℃牳鐩存帴閫氳繃
         if (insOrder.getOrderType().equals("C")) {
             insOrder.setState(1);
             upInsOrderOfState(insOrder);
+        }else if (insOrder.getOrderType().equals("A")){
+            //甯歌澶栭儴鍗曢渶娑堟伅鎻愰啋妫�楠屼腑蹇冧富浠诲拰鐮斿彂閮ㄧ粡鐞�
+            //todo 浼佷笟寰俊鎺ㄩ��
+            users1.addAll(users2);
+            String account = users1.stream().map(User::getAccount).collect(Collectors.joining("|"));
+            HashMap<String, Object> map = new HashMap<>();
+            map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
+            map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
+            map.put("agentid", 1000517);//搴旂敤id
+            HashMap<String, Object> hashMap = new HashMap<>();
+            hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠岃鍗曢渶瑕佸鏍�,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傚閮ㄨ鍗曞彿鏄細"+insOrder.getOutEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
+            map.put("text", hashMap);//娑堟伅鍐呭
+            map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
+            map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
+            map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
+            qywxApi.send(map);
+            //lims娑堟伅鎻愰啋
+            ArrayList<InformationNotification> notificationArrayList = new ArrayList<>();
+            for (User user : users1) {
+                InformationNotification info = new InformationNotification();
+                info.setCreateUser(userMapper.selectById(userId).getName());
+                info.setMessageType("2");
+                info.setTheme("瀹℃牳閫氱煡");
+                info.setContent("鎮ㄦ湁涓�鏉℃楠岃鍗曞緟瀹℃牳娑堟伅,璁㈠崟鐨勫閮ㄧ紪鍙锋槸:"+insOrder.getOutEntrustCode());
+                info.setSenderId(userId);
+                info.setViewStatus(false);
+                info.setJumpPath("b1-inspect-order");
+                info.setConsigneeId(user.getId());
+                notificationArrayList.add(info);
+            }
+            informationNotificationService.saveBatch(notificationArrayList);
+        }else if (insOrder.getOrderType().equals("B")){
+            //闈炲父瑙勫閮ㄥ崟闇�娑堟伅鎻愰啋妫�楠屼腑蹇冧富浠�,鐮斿彂閮ㄧ粡鐞嗗拰鎶�鏈礋璐d汉
+            //todo 浼佷笟寰俊鎺ㄩ��
+            users1.addAll(users2);
+            users1.addAll(users3);
+            String account = users1.stream().map(User::getAccount).collect(Collectors.joining("|"));
+            HashMap<String, Object> map = new HashMap<>();
+            map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
+            map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
+            map.put("agentid", 1000517);//搴旂敤id
+            HashMap<String, Object> hashMap = new HashMap<>();
+            hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠岃鍗曢渶瑕佸鏍�,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傚閮ㄨ鍗曞彿鏄細"+insOrder.getOutEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
+            map.put("text", hashMap);//娑堟伅鍐呭
+            map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
+            map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
+            map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
+            qywxApi.send(map);
+            //lims娑堟伅鎻愰啋
+            ArrayList<InformationNotification> notificationArrayList = new ArrayList<>();
+            for (User user : users1) {
+                InformationNotification info = new InformationNotification();
+                info.setCreateUser(userMapper.selectById(userId).getName());
+                info.setMessageType("2");
+                info.setTheme("瀹℃牳閫氱煡");
+                info.setContent("鎮ㄦ湁涓�鏉℃楠岃鍗曞緟瀹℃牳娑堟伅,璁㈠崟鐨勫閮ㄧ紪鍙锋槸:"+insOrder.getOutEntrustCode());
+                info.setSenderId(userId);
+                info.setViewStatus(false);
+                info.setJumpPath("b1-inspect-order");
+                info.setConsigneeId(user.getId());
+                notificationArrayList.add(info);
+            }
+            informationNotificationService.saveBatch(notificationArrayList);
         }
         //濡傛灉鏈変笂浼犵殑闄勪欢
         if (CollectionUtils.isNotEmpty(files)) {
@@ -295,12 +365,24 @@
             map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
             map.put("agentid", 1000517);//搴旂敤id
             HashMap<String, Object> hashMap = new HashMap<>();
-            hashMap.put("content", "鎮ㄦ湁涓�鏉¤鍗曢渶瑕佸畬鎴�,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傝鍗曞彿鏄細"+insOrder.getEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
+            hashMap.put("content", "鎮ㄦ湁涓�鏉¤鍗曢渶瑕佸畬鎴�,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傚閮ㄨ鍗曞彿鏄細"+insOrder.getOutEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
             map.put("text", hashMap);//娑堟伅鍐呭
             map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
             map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
             map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
             qywxApi.send(map);
+
+            //LIMS绯荤粺娑堟伅鎺ㄩ��
+            InformationNotification info = new InformationNotification();
+            info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
+            info.setMessageType("1");
+            info.setTheme("鏍锋満鍛橀�氱煡");
+            info.setContent("鎮ㄦ湁涓�鏉℃楠岃鍗曠殑鏍锋満寰呭畬鎴愭秷鎭�,澶栭儴璁㈠崟鍙锋槸锛�"+insOrder.getOutEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�");
+            info.setSenderId(userId);
+            info.setConsigneeId(insOrder.getIssueUser());
+            info.setViewStatus(false);
+            info.setJumpPath("b1-inspect-order");
+            informationNotificationService.addInformationNotification(info);
         }
         return insOrder.getId();
     }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java
index 1812e17..e7f5a61 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java
@@ -14,6 +14,9 @@
     @ValueTableShow(value = 2,name = "妫�楠屽璞�")
     private String sampleType;
 
+    @ValueTableShow(value = 3,name = "鏍峰搧缂栧彿")
+    private String sampleCode;
+
     @ValueTableShow(value = 4,name = "绱ф�ョ▼搴�")
     private String type;
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
index 5e796ca..fbb62e6 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
@@ -13,7 +13,10 @@
     @ValueTableShow(value = 1,name = "濮旀墭缂栧彿",width = 180)
     private String entrustCode;
 
-    @ValueTableShow(value = 2,name = "鏍峰搧鍚嶇О")
+    @ValueTableShow(value = 2,name = "鏍峰搧缂栧彿")
+    private String sampleCode;
+
+    @ValueTableShow(value = 3,name = "鏍峰搧鍚嶇О")
     private String sample;
 
     @ValueTableShow(value = 4,name = "绱ф�ョ▼搴�")
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index 3aceb0e..046862e 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -25,7 +25,8 @@
     </resultMap>
 
     <select id="findInsSampleAndOrder" resultType="com.yuanchu.mom.vo.InsOrderPlanVO">
-        select * from(select * from(
+        select * from(
+        select * from(
         SELECT
         a.*,
         ios.ins_state,
@@ -48,6 +49,7 @@
         io.appointed,
         io.send_time,
         group_concat(distinct isa.sample,' ') sample,
+        group_concat(distinct isa.sample_code,' ') sampleCode,
         userName,
         checkName,
         ip.son_laboratory,
@@ -114,6 +116,7 @@
         io.appointed,
         io.send_time,
         group_concat(distinct isa.sample,' ') sampleType,
+        group_concat(distinct isa.sample_code,' ') sampleCode,
         isu.user_id,
         user.name userName,
         ip.son_laboratory,
diff --git a/user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java b/user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java
index 1daf064..f033f56 100644
--- a/user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java
+++ b/user-server/src/main/java/com/yuanchu/mom/mapper/UserMapper.java
@@ -26,4 +26,8 @@
     List<User> getUser();
 
     String selectDepartLims(String prepareUser);
+
+    //鑾峰彇绯荤粺鐨勬煇涓鑹茬殑璐﹀彿
+    List<User> getUserByRole(String name);
+
 }
diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml
index d2da4a7..1ce5c16 100644
--- a/user-server/src/main/resources/mapper/UserMapper.xml
+++ b/user-server/src/main/resources/mapper/UserMapper.xml
@@ -51,4 +51,9 @@
         select name from department_lims
         where  id= (select  SUBSTRING_INDEX(SUBSTRING_INDEX(depart_lims_id, ',', -2), ',', 1) AS depart_lims_id  from user where name=#{prepareUser})
     </select>
+    <select id="getUserByRole" resultType="com.yuanchu.mom.pojo.User">
+        select u.* from user u
+        left join  role r on u.role_id = r.id
+        where r.name=#{name}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3