cuilei
7 天以前 58020f3d711d4baa16ef092c2ea826071c7d23b9
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java
@@ -19,6 +19,7 @@
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.service.impl.ThirdAppWechatEnterpriseServiceImpl;
import org.jeecg.modules.system.vo.UserSelector;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -28,6 +29,8 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@@ -67,45 +70,48 @@
            List<EamWeekMaintenanceOrder> waitOrderList = eamWeekMaintenanceOrderService.list(new LambdaQueryWrapper<EamWeekMaintenanceOrder>()
                    .eq(EamWeekMaintenanceOrder::getMaintenanceStatus, WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name())
                    .eq(EamWeekMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0));
            if (!waitOrderList.isEmpty()) {
            List<EamWeekMaintenanceOrder> unReceivedOrderList = eamWeekMaintenanceOrderService.selectUnReceivedMaintenanceOrder();
            if (!unReceivedOrderList.isEmpty()) {
                //有待保养的工单,推送企业微信消息
                //查询所有操作工
                List<SysUser> userList = sysUserService.list(new LambdaQueryWrapper<SysUser>()
                        .eq(SysUser::getPost, BusinessCodeConst.PCR0001)
                        .eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0)
                        .eq(SysUser::getStatus, CommonConstant.USER_UNFREEZE));
                if (userList.isEmpty()) {
                    log.error("系统未设置操作工用户,无法推送工单领取提醒消息");
                    quartzLog.setIsSuccess(0);
                    quartzLog.setParams("系统未设置操作工用户,无法推送工单领取提醒消息");
                } else {
                    TemplateCard templateCard = new TemplateCard();
                    String toUsers = userList.stream().map(SysUser::getUsername).collect(Collectors.joining(","));
                    String touser = wechatEnterpriseService.getTouser(toUsers, false);
                    templateCard.setTouser(touser);
                    TemplateCardEntity templateCardEntity = new TemplateCardEntity();
                    templateCard.setTemplate_card(templateCardEntity);
                    templateCardEntity.setTask_id(waitOrderList.get(0).getId());
                    TemplateCardEntity.MainTitle mainTitle = new TemplateCardEntity.MainTitle();
                    mainTitle.setTitle("设备周保");
                    templateCardEntity.setMain_title(mainTitle);
                    templateCardEntity.setSub_title_text("您有待领取周保工单,请进入系统领取");
                    TemplateCardEntity.CardAction cardAction = new TemplateCardEntity.CardAction();
                    cardAction.setType(1);
                    cardAction.setUrl(cardActionUrl);
                    templateCardEntity.setCard_action(cardAction);
                    JSONObject jsonObject = wechatEnterpriseService.sendTemplateCardMsg(templateCard, true);
                    Integer errcode = (Integer) jsonObject.get("errcode");
                    if (errcode == 0) {
                        log.info("推送待领取周保工单企业微信消息成功,{}", jsonObject.toJSONString());
                        quartzLog.setIsSuccess(0);
                        quartzLog.setParams(jsonObject.toJSONString());
                Map<String, List<EamWeekMaintenanceOrder>> unReceivedOrderMap = unReceivedOrderList.stream()
                        .collect(Collectors.groupingBy(EamWeekMaintenanceOrder::getOrgId));
                StringBuilder message = new StringBuilder();
                for (String orgId : unReceivedOrderMap.keySet()) {
                    //查询该产线下的所有操作工
                    List<UserSelector> userSelectorList = sysUserService.selectOperatorList(null, orgId, BusinessCodeConst.PCR0001);
                    if (userSelectorList.isEmpty()) {
                        log.error("系统未设置操作工用户,无法推送工单领取提醒消息");
                        message.append("系统未设置操作工用户,无法推送工单领取提醒消息").append("\n");
                    } else {
                        log.error("推送待领取周保工单企业微信消息失败,{}", jsonObject.toJSONString());
                        quartzLog.setIsSuccess(-1);
                        quartzLog.setExceptionDetail(jsonObject.toJSONString());
                        String toUsers = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.joining(","));
                        String touser = wechatEnterpriseService.getTouser(toUsers, false);
                        //构造消息体内容
                        TemplateCard templateCard = new TemplateCard();
                        templateCard.setTouser(touser);
                        TemplateCardEntity templateCardEntity = new TemplateCardEntity();
                        templateCard.setTemplate_card(templateCardEntity);
                        templateCardEntity.setTask_id(UUID.randomUUID().toString().replaceAll("-", ""));
                        TemplateCardEntity.MainTitle mainTitle = new TemplateCardEntity.MainTitle();
                        mainTitle.setTitle("设备周保");
                        templateCardEntity.setMain_title(mainTitle);
                        templateCardEntity.setSub_title_text("您有待领取周保工单,请进入系统领取");
                        TemplateCardEntity.CardAction cardAction = new TemplateCardEntity.CardAction();
                        cardAction.setType(1);
                        cardAction.setUrl(cardActionUrl);
                        templateCardEntity.setCard_action(cardAction);
                        JSONObject jsonObject = wechatEnterpriseService.sendTemplateCardMsg(templateCard, true);
                        Integer errcode = (Integer) jsonObject.get("errcode");
                        if (errcode == 0) {
                            log.info("推送待领取周保工单企业微信消息成功,{}", jsonObject.toJSONString());
                            message.append("推送待领取周保工单企业微信消息成功,").append(jsonObject.toJSONString()).append("\n");
                        } else {
                            log.error("推送待领取周保工单企业微信消息失败,{}", jsonObject.toJSONString());
                            message.append("推送待领取周保工单企业微信消息失败,").append(jsonObject.toJSONString()).append("\n");
                        }
                    }
                }
                quartzLog.setIsSuccess(0);
                quartzLog.setExceptionDetail(message.toString());
            } else {
                log.info("无待领取周保工单,无需推送工单领取提醒消息");
                quartzLog.setIsSuccess(0);