已修改15个文件
302 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderWxMessageSendJob.java 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderWxMessageSendJob.java 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamWeekMaintenanceOrderMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamWeekMaintenanceOrderMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamInspectionOrder.java
@@ -143,4 +143,7 @@
    @ApiModelProperty(value = "安装位置")
    @TableField(exist = false)
    private String installationPosition;
    @ApiModelProperty(value = "使用部门")
    @TableField(exist = false)
    private java.lang.String orgId;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java
@@ -155,4 +155,7 @@
    @ApiModelProperty(value = "安装位置")
    @TableField(exist = false)
    private String installationPosition;
    @ApiModelProperty(value = "使用部门")
    @TableField(exist = false)
    private java.lang.String orgId;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamDashboardController.java
@@ -4,10 +4,13 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
@@ -15,10 +18,10 @@
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.TranslateDictTextUtils;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamInspectionOrder;
import org.jeecg.modules.eam.entity.EamRepairOrder;
import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.request.EamInspectionOrderQuery;
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.eam.vo.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -257,30 +260,36 @@
    @GetMapping(value = "/pendingExecOrderCountBySelf")
    public Result<?> pendingExecOrderCountBySelf() {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String post = user.getPost();
        Map<String, Integer> countMap = CollectionUtil.newHashMap();
        if (user == null) {
            return Result.ok(countMap);
        }
        String post = user.getPost();
        if (BusinessCodeConst.PCR0001.equals(post)) {
            //是操作工,查询待点检工单、待周保工单
            List<EamInspectionOrder> unExecInspectionOrderList = inspectionOrderService.list(new LambdaQueryWrapper<EamInspectionOrder>()
                    .eq(EamInspectionOrder::getOperator, user.getUsername())
                    .eq(EamInspectionOrder::getInspectionStatus, InspectionStatus.UNDER_INSPECTION.name())
                    .eq(EamInspectionOrder::getDelFlag, CommonConstant.DEL_FLAG_0));
            List<EamWeekMaintenanceOrder> unExecMaintenanceOrderList = weekMaintenanceOrderService.list(new LambdaQueryWrapper<EamWeekMaintenanceOrder>()
                    .eq(EamWeekMaintenanceOrder::getOperator, user.getUsername())
                    .eq(EamWeekMaintenanceOrder::getMaintenanceStatus, WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name())
                    .eq(EamWeekMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0));
            countMap.put("unExecInspectionOrderCount", unExecInspectionOrderList.size());
            countMap.put("unExecMaintenanceOrderCount", unExecMaintenanceOrderList.size());
            //是操作工,查询可领取的点检、周保工单
            Page<EamInspectionOrder> inspectionOrderPage = new Page<>(1, 99999999);
            EamInspectionOrderQuery inspectionOrderQuery = new EamInspectionOrderQuery();
            inspectionOrderQuery.setInspectionStatus(InspectionStatus.WAIT_INSPECTION.name());
            List<EamInspectionOrder> unReceivedInspectionOrderList = inspectionOrderService.queryPageList(inspectionOrderPage, inspectionOrderQuery).getRecords();
            Page<EamWeekMaintenanceOrder> maintenanceOrderPage = new Page<>(1, 99999999);
            EamWeekMaintenanceQuery weekMaintenanceQuery = new EamWeekMaintenanceQuery();
            weekMaintenanceQuery.setMaintenanceStatus(WeekMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
            List<EamWeekMaintenanceOrder> unReceivedMaintenanceOrderList = weekMaintenanceOrderService.queryPageList(maintenanceOrderPage, weekMaintenanceQuery).getRecords();
            countMap.put("unExecInspectionOrderCount", unReceivedInspectionOrderList.size());
            countMap.put("unExecMaintenanceOrderCount", unReceivedMaintenanceOrderList.size());
            countMap.put("unExecRepairOrderCount", 0);
        } else if (BusinessCodeConst.PCR0002.equals(post)) {
            //是维修工,查询待维修工单
            List<EamRepairOrder> unExecRepairOrderList = repairOrderService.list(new LambdaQueryWrapper<EamRepairOrder>()
                    .eq(EamRepairOrder::getRepairer, user.getUsername())
                    .eq(EamRepairOrder::getRepairStatus, EquipmentRepairStatus.UNDER_REPAIR.name())
                    .eq(EamRepairOrder::getDelFlag, CommonConstant.DEL_FLAG_0));
            //是维修工,查询可领取的报修单
            Page<EamReportRepair> maintenanceOrderPage = new Page<>(1, 99999999);
            EamReportRepairQuery reportRepairQuery = new EamReportRepairQuery();
            reportRepairQuery.setReportStatus(EquipmentRepairStatus.WAIT_REPAIR.name());
            List<EamReportRepair> unReceivedOrderList = reportRepairService.pageList(maintenanceOrderPage, reportRepairQuery).getRecords();
            countMap.put("unExecInspectionOrderCount", 0);
            countMap.put("unExecMaintenanceOrderCount", 0);
            countMap.put("unExecRepairOrderCount", unExecRepairOrderList.size());
            countMap.put("unExecRepairOrderCount", unReceivedOrderList.size());
        } else {
            countMap.put("unExecInspectionOrderCount", 0);
            countMap.put("unExecMaintenanceOrderCount", 0);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderWxMessageSendJob.java
@@ -9,6 +9,7 @@
import org.jeecg.modules.eam.constant.InspectionStatus;
import org.jeecg.modules.eam.entity.EamInspectionOrder;
import org.jeecg.modules.eam.service.IEamInspectionOrderService;
import org.jeecg.modules.mdc.service.IMdcProductionEquipmentService;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
@@ -16,9 +17,11 @@
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.jeecg.modules.qywx.message.vo.TemplateCard;
import org.jeecg.modules.qywx.message.vo.TemplateCardEntity;
import org.jeecg.modules.system.entity.MdcProductionEquipment;
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 +31,8 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@@ -63,49 +68,49 @@
        }
        long startTime = System.currentTimeMillis();
        try {
            //查询所有待点检的工单
            List<EamInspectionOrder> waitOrderList = eamInspectionOrderService.list(new LambdaQueryWrapper<EamInspectionOrder>()
                    .eq(EamInspectionOrder::getInspectionStatus, InspectionStatus.WAIT_INSPECTION.name())
                    .eq(EamInspectionOrder::getDelFlag, CommonConstant.DEL_FLAG_0));
            if (!waitOrderList.isEmpty()) {
            //查询所有未领取待点检的工单
            List<EamInspectionOrder> unReceivedOrderList = eamInspectionOrderService.selectUnReceivedInspectionOrder();
            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<EamInspectionOrder>> unReceivedOrderMap = unReceivedOrderList.stream()
                        .collect(Collectors.groupingBy(EamInspectionOrder::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);
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);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamInspectionOrderMapper.java
@@ -36,4 +36,6 @@
     * @return
     */
    List<EquipmentInspectionStatistics> equipmentInspectionStatistics(@Param("productionIds") List<String> productionIds, @Param("start") String start, @Param("end") String end);
    List<EamInspectionOrder> selectUnReceivedInspectionOrder();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamWeekMaintenanceOrderMapper.java
@@ -34,4 +34,6 @@
     * @return
     */
    List<EquipmentMaintenanceStatistics> equipmentMaintenanceStatistics(@Param("productionIds") List<String> productionIds, @Param("start") String start, @Param("end") String end);
    List<EamWeekMaintenanceOrder> selectUnReceivedMaintenanceOrder();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamInspectionOrderMapper.xml
@@ -29,4 +29,10 @@
        and err.inspection_date &lt; #{end}
        group by FORMAT(err.inspection_date, 'yyyy-MM')
    </select>
    <select id="selectUnReceivedInspectionOrder" resultType="org.jeecg.modules.eam.entity.EamInspectionOrder">
        select eio.*,ee.org_id
        from eam_inspection_order eio
        left join eam_equipment ee on eio.equipment_id = ee.id
        where eio.inspection_status = 'WAIT_INSPECTION' and eio.del_flag = 0
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamWeekMaintenanceOrderMapper.xml
@@ -29,4 +29,11 @@
        and err.maintenance_date &lt; #{end}
        group by FORMAT(err.maintenance_date, 'yyyy-MM')
    </select>
    <select id="selectUnReceivedMaintenanceOrder"
            resultType="org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder">
        select ewm.*,ee.org_id
        from eam_week_maintenance_order ewm
        left join eam_equipment ee on ewm.equipment_id = ee.id
        where ewm.maintenance_status = 'WAIT_MAINTENANCE' and ewm.del_flag = 0
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java
@@ -93,4 +93,7 @@
     * @return
     */
    List<EquipmentInspectionStatistics> equipmentInspectionStatistics(String productionId, LocalDate firstOfMonth, LocalDate today);
    /** 查询所有未领取(待点检状态)的工单(关联查询设备所属产线) */
    List<EamInspectionOrder> selectUnReceivedInspectionOrder();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java
@@ -70,4 +70,6 @@
     * @return
     */
    List<EquipmentMaintenanceStatistics> equipmentMaintenanceStatistics(String productionId, LocalDate firstOfMonth, LocalDate today);
    List<EamWeekMaintenanceOrder> selectUnReceivedMaintenanceOrder();
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -195,6 +195,11 @@
    }
    @Override
    public List<EamInspectionOrder> selectUnReceivedInspectionOrder() {
        return this.baseMapper.selectUnReceivedInspectionOrder();
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) {
        EamInspectionOrder eamInspectionOrder = new EamInspectionOrder();
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -20,13 +20,20 @@
import org.jeecg.modules.eam.request.EamReportRepairQuery;
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamEquipmentFaultReasonService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.eam.vo.EquipmentRepairListVO;
import org.jeecg.modules.eam.vo.EquipmentRepairStatistics;
import org.jeecg.modules.eam.vo.EquipmentRepairStatusStatistics;
import org.jeecg.modules.eam.vo.FaultTypeStatisticsVO;
import org.jeecg.modules.qywx.message.vo.TemplateCard;
import org.jeecg.modules.qywx.message.vo.TemplateCardEntity;
import org.jeecg.modules.system.service.IMdcProductionService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.service.impl.ThirdAppWechatEnterpriseServiceImpl;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
@@ -34,6 +41,7 @@
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Description: 故障报修
@@ -49,6 +57,15 @@
    private IMdcProductionService mdcProductionService;
    @Autowired
    private IEamEquipmentFaultReasonService eamEquipmentFaultReasonService;
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    @Autowired
    private ThirdAppWechatEnterpriseServiceImpl wechatEnterpriseService;
    @Value("${wechatEnterprise.cardActionUrl}")
    private String cardActionUrl;
    /**
     * 分页列表
@@ -198,9 +215,40 @@
        this.baseMapper.insert(eamReportRepair);
        //更新设备维修状态
        eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_REPAIR.name());
        //推送企业微信消息
        sendQywxTemplateCardMessage(eamReportRepair);
        return eamReportRepair;
    }
    private void sendQywxTemplateCardMessage(EamReportRepair eamReportRepair) {
        TemplateCard templateCard = new TemplateCard();
        String equipmentId = eamReportRepair.getEquipmentId();
        EamEquipment equipment = eamEquipmentService.getById(equipmentId);
        if (equipment != null) {
            //查询有该设备权限的所有维修工
            String productionId = equipment.getOrgId();
            List<UserSelector> userSelectorList = sysUserService.selectOperatorList(equipment.getEquipmentCode(), productionId, BusinessCodeConst.PCR0002);
            String toUsers = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.joining(","));
            String touser = wechatEnterpriseService.getTouser(toUsers, false);
            templateCard.setTouser(touser);
            TemplateCardEntity templateCardEntity = new TemplateCardEntity();
            templateCard.setTemplate_card(templateCardEntity);
            templateCardEntity.setTask_id(eamReportRepair.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);
            wechatEnterpriseService.sendTemplateCardMsg(templateCard, true);
        } else {
            log.error("报修工单: " + eamReportRepair.getId() + " 设备不存在,无法推送工单待领取提醒消息!");
        }
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean edit(EamReportRepair eamReportRepair) {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
@@ -711,6 +711,11 @@
        return list;
    }
    @Override
    public List<EamWeekMaintenanceOrder> selectUnReceivedMaintenanceOrder() {
        return this.baseMapper.selectUnReceivedMaintenanceOrder();
    }
    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
        return todoUsers != null && todoUsers.contains(user.getUsername());
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
@@ -148,8 +148,6 @@
    host: 127.0.0.1
    port: 6379
    password: ''
    # 沃克现场
#    password: 123456
flowable:
  enable: true
  #关闭定时任务JOB
@@ -371,4 +369,4 @@
  # 灵秀企业微信测试内建应用
#  cardActionUrl: https://houjie.xalxzn.com:8866/h5
  # 沃克现场应用
  cardActionUrl: https://fastwoke.cn:8087/h5
  cardActionUrl: https://fastwoke.cn:8087/h5/#