| | |
| | | import com.google.gson.Gson; |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | | import com.ruoyi.common.core.domain.entity.SysDept; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.common.core.service.IDingTalkService; |
| | | import com.ruoyi.common.dx.MessageSend; |
| | |
| | | import com.ruoyi.system.mapper.SysConfigMapper; |
| | | import com.ruoyi.system.service.ISysConfigService; |
| | | import com.ruoyi.system.service.ISysDeptService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.smartor.common.LSHospTokenUtil; |
| | | import com.smartor.common.MtSubmitSmUtil; |
| | | import com.smartor.common.QwenLLMUtil; |
| | |
| | | |
| | | @Autowired |
| | | private IDingTalkService dingTalkService; |
| | | |
| | | @Autowired |
| | | private ISysUserService userService; |
| | | |
| | | |
| | | @Value("${localIP}") |
| | |
| | | subtaskDetailTraceVO.setHandleFlag("0"); |
| | | List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces = |
| | | serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(subtaskDetailTraceVO); |
| | | // 把 dutyDeptPersonCode 整理到 list 中(如果多个人用逗号分割,则展开并去重) |
| | | List<String> dutyDeptPersonCodeList = serviceSubtaskDetailTraces.stream() |
| | | .map(ServiceSubtaskDetailTrace::getDutyDeptPersonCode) |
| | | .filter(StringUtils::isNotBlank) |
| | | .flatMap(code -> Arrays.stream(code.split(","))) |
| | | .map(String::trim) |
| | | .filter(StringUtils::isNotBlank).distinct() // 去重 |
| | | .collect(Collectors.toList()); |
| | | // 获取“异常内容提醒" |
| | | SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("send.except.content"); |
| | | String exceptContent = sysConfig.getConfigValue(); |
| | | |
| | | // 获取“内容提醒测试人工号” |
| | | String testPerson = sysConfigMapper.checkConfigKeyUnique("send.test.person").getConfigValue(); |
| | | if (StringUtils.isNotBlank(testPerson)) { |
| | | String[] split = testPerson.split(","); |
| | | if (CollectionUtils.isEmpty(dutyDeptPersonCodeList)) dutyDeptPersonCodeList = Arrays.asList(split); |
| | | else dutyDeptPersonCodeList.addAll(Arrays.asList(split)); |
| | | } |
| | | SysConfig testPersonConfig = sysConfigMapper.checkConfigKeyUnique("send.test.person"); |
| | | String testPerson = ObjectUtils.isNotEmpty(testPersonConfig) ? testPersonConfig.getConfigValue() : ""; |
| | | if(CollectionUtils.isNotEmpty(serviceSubtaskDetailTraces)){ |
| | | for (ServiceSubtaskDetailTrace serviceSubtaskDetailTrace : serviceSubtaskDetailTraces) { |
| | | List<String> dutyDeptPersonCodeList = new ArrayList<>(); |
| | | // 把 dutyDeptPersonCode 整理到 list 中(如果多个人用逗号分割,则展开并去重) |
| | | String dutyDeptPersonCodeStr = serviceSubtaskDetailTrace.getDutyDeptPersonCode(); |
| | | if(StringUtils.isNotEmpty(dutyDeptPersonCodeStr)){ |
| | | String[] dutyDeptPersonCodeSplit = dutyDeptPersonCodeStr.split(","); |
| | | if (CollectionUtils.isEmpty(dutyDeptPersonCodeList)) { |
| | | dutyDeptPersonCodeList = new ArrayList<>(Arrays.asList(dutyDeptPersonCodeSplit)); |
| | | } else { |
| | | dutyDeptPersonCodeList.addAll(Arrays.asList(dutyDeptPersonCodeSplit)); |
| | | } |
| | | |
| | | if (CollectionUtils.isNotEmpty(dutyDeptPersonCodeList)) { |
| | | for (String dutyDeptPersonCode : dutyDeptPersonCodeList) { |
| | | log.info("【sendExceptInfo】发送人工号:{}", dutyDeptPersonCode); |
| | | String dutyDeptPerson = dingTalkService.getDingTalkUserByMobile(dutyDeptPersonCode); |
| | | dingTalkService.sendDingTalkText(exceptContent, dutyDeptPerson); |
| | | } |
| | | |
| | | if (StringUtils.isNotBlank(testPerson)) { |
| | | String[] split = testPerson.split(","); |
| | | if (CollectionUtils.isEmpty(dutyDeptPersonCodeList)) { |
| | | dutyDeptPersonCodeList = new ArrayList<>(Arrays.asList(split)); |
| | | } else { |
| | | dutyDeptPersonCodeList.addAll(Arrays.asList(split)); |
| | | } |
| | | } |
| | | |
| | | if (CollectionUtils.isNotEmpty(dutyDeptPersonCodeList)) { |
| | | for (String dutyDeptPersonCode : dutyDeptPersonCodeList) { |
| | | log.info("【sendExceptInfo】发送人工号:{}", dutyDeptPersonCode); |
| | | SysUser sysUser = new SysUser(); |
| | | SysUser sysUserVo = new SysUser(); |
| | | sysUserVo.setUserCode(dutyDeptPersonCode); |
| | | // sysUserVo.setOrgid(serviceSubtaskDetailTrace.getOrgid()); |
| | | List<SysUser> users = userService.getUserList(sysUserVo); |
| | | String phoneNumber = ""; |
| | | if(ObjectUtils.isNotEmpty(users)){ |
| | | sysUser = users.get(0); |
| | | phoneNumber = sysUser.getPhonenumber(); |
| | | }else { |
| | | continue; |
| | | } |
| | | |
| | | if(StringUtils.isEmpty(phoneNumber)){ |
| | | continue; |
| | | } |
| | | String dutyDeptPerson = dingTalkService.getDingTalkUserByMobile(phoneNumber); |
| | | if(StringUtils.isNotBlank(dutyDeptPerson)){ |
| | | String context = TemplateUtils.render(exceptContent, serviceSubtaskDetailTrace); |
| | | dingTalkService.sendDingTalkText(context, dutyDeptPerson); |
| | | //更新状态 |
| | | serviceSubtaskDetailTrace.setHandleFlag("1"); |
| | | serviceSubtaskDetailTrace.setUpdateTime(new Date()); |
| | | serviceSubtaskDetailTraceService.updateServiceSubtaskDetailTtrace(serviceSubtaskDetailTrace); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |