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