| | |
| | | import com.gs.dingtalk.dto.DingTalkMessage; |
| | | import com.gs.dingtalk.dto.QaMsgDto; |
| | | import com.gs.dingtalk.entity.MesQaDingtalk; |
| | | import com.gs.dingtalk.entity.QaRkj; |
| | | import com.gs.dingtalk.entity.QaSj; |
| | | import com.gs.dingtalk.service.MesQaDingtalkService; |
| | | import com.gs.dingtalk.entity.QaXj; |
| | | import com.gs.dingtalk.service.*; |
| | | import com.gs.dingtalk.mapper.MesQaDingtalkMapper; |
| | | import com.gs.dingtalk.service.QaSjService; |
| | | import com.gs.dingtalk.service.SimpleExample; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | public class MesQaDingtalkServiceImpl extends ServiceImpl<MesQaDingtalkMapper, MesQaDingtalk> |
| | | implements MesQaDingtalkService { |
| | | |
| | | |
| | | private final SimpleExample simpleExample; |
| | | |
| | | private final QaSjService qaSjService; |
| | | |
| | | private final QaXjService qaXjService; |
| | | |
| | | private final QaRkjService qaRkjService; |
| | | |
| | | @Override |
| | | public void sendQaMsgSJ(QaMsgDto dto) { |
| | | // 对dto.getId()进行判空处理 |
| | | if (dto.getId() == null) { |
| | | log.warn("检验ID为空,无法发送消息"); |
| | | return; |
| | | } |
| | | |
| | | LambdaQueryWrapper<MesQaDingtalk> wrapper = new LambdaQueryWrapper<>(); |
| | | |
| | | wrapper.eq(MesQaDingtalk::getLineName, dto.getLineName()) |
| | |
| | | } |
| | | |
| | | LambdaQueryWrapper<QaSj> qaSjQueryWrapper = new LambdaQueryWrapper<>(); |
| | | qaSjQueryWrapper.eq(QaSj::getBillNo, dto.getBillNo()); |
| | | qaSjQueryWrapper.eq(QaSj::getId, dto.getId()); |
| | | QaSj qaSj = qaSjService.getOne(qaSjQueryWrapper, false); |
| | | |
| | | if (qaSj == null) { |
| | |
| | | return; |
| | | } |
| | | |
| | | String message = String.format("首件[检验单号:%s, 物料编码:%s, 物料名称:%s, 车间:%s, 线体:%s, 工单号:%s, 检验结果:%s],请进行后续操作", |
| | | String message = String.format("首件检验单号:%s, 物料:%s-%s, 车间:%s线体:%s, 工单:%s, 结果:%s, 请进行后续处理", |
| | | qaSj.getBillNo(), qaSj.getItemNo(), qaSj.getItemName(), qaSj.getWorkshopName(), |
| | | qaSj.getLineName(), qaSj.getDaa001(), qaSj.getJyjg()); |
| | | |
| | | List<String> sidList = list.stream() |
| | | .map(MesQaDingtalk::getTelephone) |
| | | .collect(Collectors.toList()); |
| | | |
| | | List<String> userIdList = getDingtalkUserIdListByPhones(sidList); |
| | | |
| | | if (userIdList == null || userIdList.isEmpty()) { |
| | | log.warn("没有有效的钉钉用户ID"); |
| | | return; |
| | | } |
| | | |
| | | String userIdListStr = String.join(",", userIdList); |
| | | |
| | | |
| | | DingTalkMessage dingTalkMessage = null; |
| | | try { |
| | | dingTalkMessage = simpleExample.sendMessage(userIdListStr, message); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException("发送钉钉消息失败", e); |
| | | } |
| | | |
| | | if (dingTalkMessage != null && dingTalkMessage.getErrcode() == 0) { |
| | | System.out.println("发送成功"); |
| | | } else { |
| | | System.out.println("发送失败"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void sendQaMsgXJ(QaMsgDto dto) { |
| | | // 对dto.getId()进行判空处理 |
| | | if (dto.getId() == null) { |
| | | log.warn("巡检ID为空,无法发送消息"); |
| | | return; |
| | | } |
| | | |
| | | LambdaQueryWrapper<MesQaDingtalk> wrapper = new LambdaQueryWrapper<>(); |
| | | |
| | | wrapper.eq(MesQaDingtalk::getLineName, dto.getLineName()) |
| | | .eq(MesQaDingtalk::getDepartmentname, dto.getWorkshopName()) |
| | | .eq(MesQaDingtalk::getQaType, dto.getQaType()); |
| | | |
| | | //获取到用户id,当用户没有id时重新获取并更新MesQaDingtalk表 |
| | | List<MesQaDingtalk> list = list(wrapper); |
| | | |
| | | if (list.isEmpty()) { |
| | | // 如果没有找到对应的用户,直接返回 |
| | | return; |
| | | } |
| | | |
| | | LambdaQueryWrapper<QaXj> qaXjQueryWrapper = new LambdaQueryWrapper<>(); |
| | | qaXjQueryWrapper.eq(QaXj::getId, dto.getId()); |
| | | QaXj qaXj = qaXjService.getOne(qaXjQueryWrapper, false); |
| | | |
| | | if (qaXj == null) { |
| | | // 如果没有找到对应的巡检信息,直接返回 |
| | | return; |
| | | } |
| | | |
| | | String message = String.format("巡检单号:%s, 物料:%s-%s, 车间:%s线体:%s, 工单:%s, 结果:%s, 请进行后续处理", |
| | | qaXj.getReleaseNo(), qaXj.getItemNo(), qaXj.getItemName(), qaXj.getDepartmentname(), |
| | | qaXj.getLineName(), qaXj.getDaa001(), qaXj.getFcheckResu()); |
| | | |
| | | // 把List<MesQaDingtalk>中的userId使用,拼接起来变成userIdList这个变量 |
| | | |
| | | List<String> sidList = list.stream() |
| | | .map(MesQaDingtalk::getTelephone) |
| | | .collect(Collectors.toList()); |
| | | |
| | | List<String> userIdList = getDingtalkUserIdListByPhones(sidList); |
| | | |
| | | if (userIdList == null || userIdList.isEmpty()) { |
| | | log.warn("没有有效的钉钉用户ID"); |
| | | return; |
| | | } |
| | | |
| | | String userIdListStr = String.join(",", userIdList); |
| | | |
| | | |
| | | DingTalkMessage dingTalkMessage = null; |
| | | try { |
| | | dingTalkMessage = simpleExample.sendMessage(userIdListStr, message); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException("发送钉钉消息失败", e); |
| | | } |
| | | |
| | | if (dingTalkMessage != null && dingTalkMessage.getErrcode() == 0) { |
| | | System.out.println("发送成功"); |
| | | } else { |
| | | System.out.println("发送失败"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void sendQaMsgRKJ(QaMsgDto dto) { |
| | | // 对dto.getId()进行判空处理 |
| | | if (dto.getId() == null) { |
| | | log.warn("入库检ID为空,无法发送消息"); |
| | | return; |
| | | } |
| | | |
| | | LambdaQueryWrapper<MesQaDingtalk> wrapper = new LambdaQueryWrapper<>(); |
| | | |
| | | wrapper.eq(MesQaDingtalk::getLineName, dto.getLineName()) |
| | | .eq(MesQaDingtalk::getDepartmentname, dto.getWorkshopName()) |
| | | .eq(MesQaDingtalk::getQaType, dto.getQaType()); |
| | | |
| | | //获取到用户id,当用户没有id时重新获取并更新MesQaDingtalk表 |
| | | List<MesQaDingtalk> list = list(wrapper); |
| | | |
| | | if (list.isEmpty()) { |
| | | // 如果没有找到对应的用户,直接返回 |
| | | return; |
| | | } |
| | | |
| | | LambdaQueryWrapper<QaRkj> qaRkjQueryWrapper = new LambdaQueryWrapper<>(); |
| | | qaRkjQueryWrapper.eq(QaRkj::getId, dto.getId()); |
| | | QaRkj qaRkj = qaRkjService.getOne(qaRkjQueryWrapper, false); |
| | | |
| | | if (qaRkj == null) { |
| | | // 如果没有找到对应的入库检信息,直接返回 |
| | | return; |
| | | } |
| | | |
| | | String message = String.format("入库检单号:%s, 物料:%s-%s, 车间:%s线体:%s, 工单:%s, 结果:%s, 请进行后续处理", |
| | | qaRkj.getReleaseNo(), qaRkj.getItemNo(), qaRkj.getItemName(), qaRkj.getDepartmentname(), |
| | | qaRkj.getDaa020(), qaRkj.getDaa001(), qaRkj.getFcheckResu()); |
| | | |
| | | // 把List<MesQaDingtalk>中的userId使用,拼接起来变成userIdList这个变量 |
| | | |
| | | List<String> sidList = list.stream() |