Houjie
7 天以前 ed32b4831acf1612d23015d85ff4a14db7f9f77d
Merge remote-tracking branch 'origin/master'

# Conflicts:
# lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java
已修改4个文件
109 ■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysThirdAccountServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java
@@ -9,6 +9,7 @@
import me.zhyd.oauth.model.AuthResponse;
import me.zhyd.oauth.request.AuthRequest;
import me.zhyd.oauth.utils.AuthStateUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.util.JwtUtil;
@@ -16,6 +17,7 @@
import org.jeecg.common.util.RedisUtil;
import org.jeecg.common.util.RestUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.config.shiro.JwtToken;
import org.jeecg.config.thirdapp.ThirdAppConfig;
import org.jeecg.config.thirdapp.ThirdAppTypeItemVo;
import org.jeecg.modules.base.service.BaseCommonService;
@@ -306,7 +308,7 @@
            // 企业的CorpID
            builder.append("?appid=").append(config.getClientId());
            // 授权后重定向的回调链接地址,请使用urlencode对链接进行处理
            String redirectUri = RestUtil.getBaseUrl() + "/sys/thirdLogin/oauth2/wechat_enterprise/callback";
            String redirectUri ="https://fastwoke.cn:8087/jeecg-boot/sys/thirdLogin/oauth2/wechat_enterprise/callback";
            builder.append("&redirect_uri=").append(URLEncoder.encode(redirectUri, "UTF-8"));
            // 返回类型,此时固定为:code
            builder.append("&response_type=code");
@@ -402,7 +404,7 @@
            state += "&thirdType=" + source;
            //state += "&thirdType=" + "wechat_enterprise";
            if (redirect != null && redirect.length() > 0) {
                state += "&redirect=" + redirect;
                state += "&" + redirect;
            }
            //update-end-author:taoyan date:2022-6-30 for: 工作流发送消息 点击消息链接跳转办理页面
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysThirdAccountServiceImpl.java
@@ -92,6 +92,7 @@
        user.setPassword(passwordEncode);
        user.setRealname(account.getRealname());
        user.setAvatar(account.getAvatar());
        user.setWorkNo(thirdUserUuid);//沃克现场sys_user表对工号字段设置了唯一索引(企业微信拿到的用户数据thirdUserUuid就是工号),该字段必须给值
        String s = this.saveThirdUser(user);
        //更新用户第三方账户表的userId
        SysThirdAccount sysThirdAccount = new SysThirdAccount();
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
@@ -36,6 +36,8 @@
            required: true
  ## quartz定时任务,采用数据库方式
  quartz:
    jdbc:
      initialize-schema: never
    job-store-type: jdbc
    initialize-schema: embedded
    #定时任务启动开关,true-开  false-关
@@ -125,10 +127,21 @@
        connectProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      datasource:
        master:
          url: jdbc:sqlserver://192.168.1.118:1433;databasename=LXZN_TEST_WK
         # url: jdbc:sqlserver://192.168.1.118:1433;databasename=LXZN_TEST_WK
         # url: jdbc:sqlserver://192.168.1.118:1433;databasename=LXZN_TEST_WK_WX
         # url: jdbc:sqlserver://i300r36420.vicp.fun:22327;databasename=LXZN_TEST_WK_WX
          # 沃克现场
          url: jdbc:sqlserver://192.168.4.21:1433;databasename=LXZN_MDC_WK_WX
          username: sa
          password: 123
#          password: 123
          password: Lxzn1688
          driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
          # 沃克现场
#        mesSoAdb:
#          url: jdbc:mysql://127.0.0.1:3306/basic_data?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
#          username: root
#          password: 123456
#          driver-class-name: com.mysql.cj.jdbc.Driver
  #redis 配置
  redis:
    database: 0
@@ -253,10 +266,16 @@
      client-secret: ??
      redirect-uri: http://sso.test.com:8080/jeecg-boot/sys/thirdLogin/github/callback
    WECHAT_ENTERPRISE:
      client-id: ww5999b2643c95fa75
      client-secret: 86jN7TtWMxjiFoWPgMQYBCu46bOoEkpfscvuyvsS31Y
      redirect-uri: http://houjie.xalxzn.com:8866/jeecg-boot/sys/thirdLogin/wechat_enterprise/callback
      agent-id: 1000002
      # 灵秀企业微信测试内建应用
#      client-id: ww5999b2643c95fa75
#      client-secret: 86jN7TtWMxjiFoWPgMQYBCu46bOoEkpfscvuyvsS31Y
#      redirect-uri: http://houjie.xalxzn.com:8866/jeecg-boot/sys/thirdLogin/wechat_enterprise/callback
#      agent-id: 1000002
    # 沃克现场应用
      client-id: ww86725cd81a15d1de
      client-secret: y5jKrgtcuWR0t2EfHgdOmiSXvAQU28PztgBuPdPmFCU
      redirect-uri: https://fastwoke.cn:8087/jeecg-boot/sys/thirdLogin/wechat_enterprise/callback
      agent-id: 1000014
    DINGTALK:
      client-id: ??
      client-secret: ??
@@ -276,14 +295,24 @@
    #企业微信
    WECHAT_ENTERPRISE:
      enabled: true
      # 灵秀企业微信测试内建应用
#      #CORP_ID
#      client-id: ww5999b2643c95fa75
#      #SECRET
#      client-secret: 86jN7TtWMxjiFoWPgMQYBCu46bOoEkpfscvuyvsS31Y
#      #自建应用id
#      agent-id: 1000002
#      #自建应用秘钥(新版企微需要配置)
#      agent-app-secret: 86jN7TtWMxjiFoWPgMQYBCu46bOoEkpfscvuyvsS31Y
    # 沃克现场应用
      #CORP_ID
      client-id: ww5999b2643c95fa75
      client-id: ww86725cd81a15d1de
      #SECRET
      client-secret: 86jN7TtWMxjiFoWPgMQYBCu46bOoEkpfscvuyvsS31Y
      client-secret: y5jKrgtcuWR0t2EfHgdOmiSXvAQU28PztgBuPdPmFCU
      #自建应用id
      agent-id: 1000002
      agent-id: 1000014
      #自建应用秘钥(新版企微需要配置)
      agent-app-secret: 86jN7TtWMxjiFoWPgMQYBCu46bOoEkpfscvuyvsS31Y
      agent-app-secret: y5jKrgtcuWR0t2EfHgdOmiSXvAQU28PztgBuPdPmFCU
    #钉钉
    DINGTALK:
      enabled: false
@@ -337,4 +366,7 @@
#staticAccessPath: /api/ffile/** # 当前项目的静态资源访问配置在nginx中
# 企业微信模板卡片消息点击后跳转的 url
wechatEnterprise:
  cardActionUrl: https://houjie.xalxzn.com:8866/h5
  # 灵秀企业微信测试内建应用
#  cardActionUrl: https://houjie.xalxzn.com:8866/h5
  # 沃克现场应用
  cardActionUrl: https://fastwoke.cn:8087/h5/#