package com.doumee.core.wx.wxPlat; import cn.emay.sdk.util.json.gson.JsonObject; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Http; import com.doumee.core.utils.HttpsUtil; import com.doumee.dao.business.VisitsMapper; import com.doumee.dao.business.WxNoticeConfigMapper; import com.doumee.dao.business.model.*; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.*; /** * 微信公众号通知 * * @Author : Rk * @create 2023/12/27 9:19 */ @Slf4j @Component public class WxPlatNotice { public void testSendNotice(List openIds,String token){ if(CollectionUtils.isNotEmpty(openIds)){ String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); Map const9 = new HashMap(); const9.put("value","申请待您审批"); Map thing1 = new HashMap(); thing1.put("value", "测试名称"); Map car_number7 = new HashMap(); car_number7.put("value","皖AP12345"); Map character_string6 = new HashMap(); character_string6.put("value","1"); Map thing4 = new HashMap(); thing4.put("value","理由"); dataMap.put("const9",const9); dataMap.put("thing1",thing1); dataMap.put("car_number7",car_number7); dataMap.put("character_string6",character_string6); dataMap.put("thing4",thing4); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("template_id", "SPwvgtASkm1aMDBsYhX2wHKdL2JBEGPknDkgniSza2Y"); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } // log.warn("·==++--·推送微信模板信息:{}·--++==·", msgId != null ? "成功" : "失败"); } } /** * 访客申请/报备业务通知 * @param wxNoticeConfigMapper * @param visits * @param objCode visitUpload,visitAuditSuccess,visitWaitAudit,visitWaitAudit,visitReportUpload,visitReportAuditSuccess,visitReportAuditFail, visitReportAuditSuccess * @param openIds */ public void sendVisitTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, Visits visits, String objCode, String token, List openIds){ try{ if(CollectionUtils.isNotEmpty(openIds)){ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper().lambda() .in(WxNoticeConfig::getObjType,WxPlatConstants.visit,WxPlatConstants.visitReport) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") ); if(Objects.isNull(wxNoticeConfig)){ return; } String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); Map const9 = new HashMap(); const9.put("value",wxNoticeConfig.getTitile()); Map thing1 = new HashMap(); thing1.put("value", visits.getName()); Map car_number7 = new HashMap(); car_number7.put("value",StringUtils.isNotBlank(visits.getCarNos())?visits.getCarNos():"无"); dataMap.put("car_number7",car_number7); Map character_string6 = new HashMap(); character_string6.put("value","1"); Map thing4 = new HashMap(); thing4.put("value",visits.getReason()); dataMap.put("const9",const9); dataMap.put("thing1",thing1); dataMap.put("character_string6",character_string6); dataMap.put("thing4",thing4); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("template_id", wxNoticeConfig.getTempId()); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } // log.warn("·==++--·推送微信模板信息:{}·--++==·", msgId != null ? "成功" : "失败"); } }catch (Exception e){ } } /** * 隐患上报 * @param wxNoticeConfigMapper * @param hiddenDanger * @param objCode hiddenDangerUpload * @param openIds */ public void sendHiddenDangerUploadTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, HiddenDanger hiddenDanger, String objCode,String token, List openIds){ try{ if(CollectionUtils.isNotEmpty(openIds)){ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") ); if(Objects.isNull(wxNoticeConfig)){ return; } String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); //隐患区域 Map thing9 = new HashMap(); thing9.put("value",hiddenDanger.getAreaName()); //隐患名称 Map thing1 = new HashMap(); thing1.put("value", hiddenDanger.getCategoryName()); //提报人 Map thing12 = new HashMap(); thing12.put("value",hiddenDanger.getMemberName()); //提报时间 Map time11 = new HashMap(); time11.put("value", DateUtil.getDate(hiddenDanger.getCreateDate(),"yyyy年MM月dd日 HH:mm:ss") ); dataMap.put("thing9",thing9); dataMap.put("thing1",thing1); dataMap.put("thing12",thing12); dataMap.put("time11",time11); paramMap.put("template_id", wxNoticeConfig.getTempId()); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } } }catch (Exception e){ } } /** * 隐患整改 * @param wxNoticeConfigMapper * @param hiddenDanger * @param objCode hiddenDangerDeal * @param openIds */ public void sendHiddenDangerDealTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, HiddenDanger hiddenDanger, String objCode,String token, List openIds){ try{ if(CollectionUtils.isNotEmpty(openIds)){ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") ); if(Objects.isNull(wxNoticeConfig)){ return; } String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); //隐患区域 Map thing17 = new HashMap(); thing17.put("value",hiddenDanger.getAreaName()); //隐患名称 Map thing3 = new HashMap(); thing3.put("value", hiddenDanger.getCategoryName()); //整改方式 Map thing13 = new HashMap(); thing13.put("value",Constants.equalsInteger(hiddenDanger.getStatus(),Constants.ONE)?"隐患已整改":"隐患已退回"); //提交人 Map thing10 = new HashMap(); thing10.put("value",hiddenDanger.getCheckorName()); //通知时间 Map time16 = new HashMap(); time16.put("value", DateUtil.getDate(hiddenDanger.getDealTime(),"yyyy年MM月dd日 HH:mm:ss") ); dataMap.put("thing17",thing17); dataMap.put("thing3",thing3); dataMap.put("thing13",thing13); dataMap.put("thing10",thing10); dataMap.put("time16",time16); paramMap.put("template_id", wxNoticeConfig.getTempId()); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } } }catch (Exception e){ } } /** * 用车申请 审批情况 * @param wxNoticeConfigMapper * @param carUseBook * @param objCode reservationSuccess,meetingCancel,meetingBeginA,meetingEndA * @param openIds * @param sendType 0=申请人;1=审批人 */ public void sendCarUseBookTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, CarUseBook carUseBook, String objCode,String token, List openIds,Integer sendType){ try { if(CollectionUtils.isNotEmpty(openIds)){ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") ); if(Objects.isNull(wxNoticeConfig)){ return; } String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); //审批进度 Map thing3 = new HashMap(); if(Constants.equalsInteger(sendType,Constants.ONE)){ thing3.put("value","申请待您审批"); }else{ if(Constants.equalsInteger(carUseBook.getStatus(),Constants.ZERO)){ thing3.put("value","申请提交成功待审核"); }else if(Constants.equalsInteger(carUseBook.getStatus(),Constants.TWO)){ thing3.put("value","申请已审核通过"); }else{ thing3.put("value","申请已被驳回"); } } //申请人 Map thing1 = new HashMap(); thing1.put("value", carUseBook.getMemberName()); //车牌号 Map car_number2 = new HashMap(); car_number2.put("value",carUseBook.getCarCode()); //目的地 Map thing11 = new HashMap(); thing11.put("value",carUseBook.getAddr()); //用车时间 Map time14 = new HashMap(); time14.put("value", carUseBook.getPlanUseDate()); dataMap.put("thing3",thing3); dataMap.put("car_number2",car_number2); dataMap.put("thing1",thing1); dataMap.put("thing11",thing11); dataMap.put("time14",time14); paramMap.put("template_id", wxNoticeConfig.getTempId()); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } } }catch (Exception e){ } } /** * 车辆入园申请 物流车 * @param wxNoticeConfigMapper * @param platformBooks * @param objCode platformBookUpload,platformBookAuditSuccess,platformBookAuditFail,platformBookWaitAudit * @param token * @param openIds * @param sendType 0=申请人;1=审批人 */ public void sendPlatformBookTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformBooks platformBooks, String objCode,String token, List openIds,Integer sendType){ try{ if(CollectionUtils.isNotEmpty(openIds)){ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") ); if(Objects.isNull(wxNoticeConfig)){ return; } String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); //审核状态 Map const9 = new HashMap(); if(Constants.equalsInteger(sendType,Constants.ONE)){ const9.put("value","申请待您审批"); }else{ if(Constants.equalsInteger(platformBooks.getStatus(),Constants.ZERO)){ const9.put("value","申请提交成功待审核"); }else if(Constants.equalsInteger(platformBooks.getStatus(),Constants.TWO)){ const9.put("value","申请已审核通过"); }else{ const9.put("value","申请已被驳回"); } } //车牌号 Map car_number3 = new HashMap(); car_number3.put("value", platformBooks.getCarCodeFront()); //业务类型 Map phrase4 = new HashMap(); phrase4.put("value", platformBooks.getInReason()); //申请人 Map thing8 = new HashMap(); thing8.put("value", platformBooks.getDriverName()); //时间 Map time4 = new HashMap(); time4.put("value", DateUtil.getDate(platformBooks.getArriveDate(),"yyyy年MM月dd日 HH:mm:ss") ); dataMap.put("const9",const9); dataMap.put("car_number3",car_number3); dataMap.put("phrase4",phrase4); dataMap.put("thing8",thing8); dataMap.put("time4",time4); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("template_id", wxNoticeConfig.getTempId()); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } } }catch (Exception e){ } } /** * Wms 任务下达通知 * @param wxNoticeConfigMapper * @param platformJob * @param objCode platformJobNewJob * @param openIds */ public void sendWmsTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token, List openIds){ try{ if(CollectionUtils.isNotEmpty(openIds)){ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") ); if(Objects.isNull(wxNoticeConfig)){ return; } String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); //运单编号 Map character_string1 = new HashMap(); character_string1.put("value",platformJob.getBillCode()); //司机 Map thing3 = new HashMap(); thing3.put("value", platformJob.getDriverName()); //下达时间 Map time4 = new HashMap(); time4.put("value", DateUtil.getDate(platformJob.getCreateDate(),"yyyy年MM月dd日 HH:mm:ss") ); dataMap.put("character_string1",character_string1); dataMap.put("thing3",thing3); dataMap.put("time4",time4); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("template_id", wxNoticeConfig.getTempId()); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } } }catch (Exception e){ } } /** * Wms 任务取消通知 * @param wxNoticeConfigMapper * @param platformJob * @param objCode platformJobNewJob * @param openIds */ public void sendWmsCancelTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token, List openIds){ try{ if(CollectionUtils.isNotEmpty(openIds)){ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") ); if(Objects.isNull(wxNoticeConfig)){ return; } String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); //任务单号 Map character_string1 = new HashMap(); character_string1.put("value",platformJob.getBillCode()); //取消时间 Map time6 = new HashMap(); time6.put("value", DateUtil.getDate(new Date(),"yyyy年MM月dd日 HH:mm:ss") ); dataMap.put("character_string1",character_string1); dataMap.put("time6",time6); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("template_id", wxNoticeConfig.getTempId()); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } } }catch (Exception e){ } } /** * 月台作业 * @param wxNoticeConfigMapper * @param platformJob * @param objCode platformJobCallIn,platformJobSingIn,platformJobOverNum,platformJobWorking,platformJobFinish,platformJobLevelPower,platformJobMove,platformJobError,platformJobTimeOut,platformJobStopErr * @param token * @param openIds */ public void sendPlatformJobTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token, List openIds){ try{ if(CollectionUtils.isNotEmpty(openIds)){ WxNoticeConfig wxNoticeConfig = wxNoticeConfigMapper.selectOne(new QueryWrapper().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit) .eq(WxNoticeConfig::getObjCode,objCode) .eq(WxNoticeConfig::getStatus, Constants.ZERO) .last(" limit 1") ); if(Objects.isNull(wxNoticeConfig)){ return; } String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token; //整体参数map Map paramMap = new HashMap(); //消息主题显示相关map Map dataMap = new HashMap(); //月台通知 Map const6 = new HashMap(); const6.put("value",wxNoticeConfig.getTitile()); //车牌号 Map character_string1 = new HashMap(); character_string1.put("value",platformJob.getCarCodeFront()); //月台号 Map thing3 = new HashMap(); thing3.put("value", platformJob.getPlatformName()); //时间 Map time4 = new HashMap(); time4.put("value", DateUtil.getDate(new Date(),"yyyy年MM月dd日 HH:mm:ss") ); dataMap.put("const6",const6); dataMap.put("character_string1",character_string1); dataMap.put("thing3",thing3); dataMap.put("time4",time4); paramMap.put("data", dataMap); for (String openId:openIds) { paramMap.clear(); paramMap.put("template_id", wxNoticeConfig.getTempId()); paramMap.put("touser", openId); paramMap.put("data", dataMap); String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap)); if(StringUtils.isBlank(response)){ log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败"); }else{ JSONObject json = JSONObject.parseObject(response); log.warn("·==++--·推送微信模板信息:{}·--++==·", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"成功":"失败"+json.getString("errmsg")); } } } }catch (Exception e){ } } }