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/#