Procházet zdrojové kódy

修改生产计划消息点击跳转

yusm před 1 týdnem
rodič
revize
93324954e5

+ 3 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/WxCorpInfoService.java

@@ -3,6 +3,7 @@ package com.management.platform.service;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.Plan;
 import com.management.platform.entity.User;
 import com.management.platform.entity.WxCorpInfo;
 import com.management.platform.util.HttpRespMsg;
@@ -30,6 +31,8 @@ public interface WxCorpInfoService extends IService<WxCorpInfo> {
 
     public void sendWXCorpTemplateMsg(WxCorpInfo corpInfo, String corpUserid, JSONObject msg);
 
+    public void sendWXCorpTemplateMsgWithPLan(WxCorpInfo corpInfo, String corpUserid, String msg, String pageRouter, Integer msgType, Plan plan);
+
     public File downloadFile(WxCorpInfo corpInfo, String mediaId);
 
     public String testDownloadFile();

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java

@@ -1338,7 +1338,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                     stringBuilder.append("工序名称:"+prodProcedure.getName()+"\n"
                             +"         产品名称:"+product.getName()+"\n"
                             +"         排产工单号:"+plan.getProductSchedulingNum());
-                    wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,userIds,stringBuilder.toString(),planType==0?"plan/today":"plan/tomorrow",null);
+                    wxCorpInfoService.sendWXCorpTemplateMsgWithPLan(wxCorpInfo,userIds,stringBuilder.toString(),planType==0?"plan/today":"plan/tomorrow",null,plan);
                 }else {
                     stringBuilder.append("插单计划  ");
                     stringBuilder.append("任务名称:"+plan.getTaskName()+"\n"

+ 127 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -119,6 +119,9 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
     @Value(value = "${privateDeployURL.authUrl}")
     private String authUrl;
 
+    @Value(value = "${privateDeployURL.mobUrl}")
+    private String mobUrl;
+
     @Autowired
     RestTemplate restTemplate;
 
@@ -414,6 +417,130 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
 
     }
 
+    @Override
+    public void sendWXCorpTemplateMsgWithPLan(WxCorpInfo corpInfo, String corpUserid, String msg, String pageRouter, Integer msgType, Plan plan) {
+        try {
+            log.info("发送企业微信消息===" + corpUserid);
+            System.out.println("发送企业微信消息===" + corpUserid);
+            String accessToken = getCorpAgentAccessToken(corpInfo);
+            String url = URL_SEND_WXCORP_MSG.replaceAll("ACCESS_TOKEN", accessToken);
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            JSONObject reqParam = new JSONObject();
+            reqParam.put("touser", corpUserid);
+            reqParam.put("msgtype", "textcard");
+            reqParam.put("enable_id_trans", 1);
+            reqParam.put("agentid", corpInfo.getAgentid());
+            JSONObject cardJson = new JSONObject();
+            String title = "";
+            String jumpUrl ;
+            if(isPrivateDeploy){
+                jumpUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpInfo.getCorpid()+"&redirect_uri="+ authUrl +"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
+            }else {
+                jumpUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpInfo.getCorpid()+"&redirect_uri=http://worktime.ttkuaiban.com/api/corpWXAuth&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
+            }
+            System.out.println("jumpUrl=="+jumpUrl);
+            if ("plan/today".equals(pageRouter)) {
+                title = "收到新的今日计划";
+                if (plan!=null){
+                    String dates="";
+                    if (plan.getStartDate()!=null){
+                        dates+=plan.getStartDate().format(DateTimeFormatter.BASIC_ISO_DATE);
+                        dates+="-";
+                    }
+                    if (plan.getEndDate()!=null){
+                        dates+=plan.getEndDate().format(DateTimeFormatter.BASIC_ISO_DATE);
+                    }
+                    StringBuilder builder = new StringBuilder(mobUrl)
+                            .append("/#/distribution");
+                    builder.append("?id=").append(plan.getId())
+                            .append("&departmentId=").append(plan.getStationId())
+                            .append("&titleText=")
+                            .append(URLEncoder.encode("今日计划", "UTF-8"))
+                            .append("&type=").append(0)
+                            .append("&dates=").append(dates);
+                    if (StringUtils.isNotEmpty(plan.getProductSchedulingNum())){
+                        builder.append("&productSchedulingNum=").append(URLEncoder.encode(plan.getProductSchedulingNum(), "UTF-8"));
+                    }
+                    if (StringUtils.isNotEmpty(plan.getProductName())){
+                        builder.append("&productName=").append(URLEncoder.encode(plan.getProductName(), "UTF-8"));
+                    }
+                    String urlStr =builder.toString();
+
+                    jumpUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpInfo.getCorpid()+"&redirect_uri="+ urlStr +"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
+                }
+            } else if ("plan/tomorrow".equals(pageRouter)) {
+                //费用报销
+                title = "收到新的明日计划";
+                if (plan!=null){
+                    String dates="";
+                    if (plan.getStartDate()!=null){
+                        dates+=plan.getStartDate().format(DateTimeFormatter.BASIC_ISO_DATE);
+                        dates+="-";
+                    }
+                    if (plan.getEndDate()!=null){
+                        dates+=plan.getEndDate().format(DateTimeFormatter.BASIC_ISO_DATE);
+                    }
+                    StringBuilder builder = new StringBuilder(mobUrl)
+                            .append("/#/distribution");
+                    builder.append("?id=").append(plan.getId())
+                            .append("&departmentId=").append(plan.getStationId())
+                            .append("&titleText=")
+                            .append(URLEncoder.encode("明日计划", "UTF-8"))
+                            .append("&type=").append(1)
+                            .append("&dates=").append(dates);
+                    if (StringUtils.isNotEmpty(plan.getProductSchedulingNum())){
+                        builder.append("&productSchedulingNum=").append(URLEncoder.encode(plan.getProductSchedulingNum(), "UTF-8"));
+                    }
+                    if (StringUtils.isNotEmpty(plan.getProductName())){
+                        builder.append("&productName=").append(URLEncoder.encode(plan.getProductName(), "UTF-8"));
+                    }
+                    String urlStr =builder.toString();
+                    jumpUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpInfo.getCorpid()+"&redirect_uri="+ urlStr +"&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
+                }
+            }
+            else if ("plan/orderInsert".equals(pageRouter)) {
+                //费用报销
+                title = "收到新的插单计划";
+            }
+            else if(("plan/today".equals(pageRouter)||"plan/tomorrow".equals(pageRouter))&&corpUserid.split("|").length>1){
+                title="收到新的工作安排";
+            }
+            else if("plan/orderInsert".equals(pageRouter)){
+                title="收到新的插单计划";
+            }
+            else if("notReport".equals(pageRouter)){
+                title="报工未填报提醒";
+            }
+            jumpUrl = jumpUrl.replace("STATE", pageRouter);
+            cardJson.put("title", title);
+            cardJson.put("description", msg);
+            cardJson.put("url", jumpUrl);
+            reqParam.put("textcard", cardJson);
+
+            HttpEntity<String> requestEntity = new HttpEntity<String>(reqParam.toJSONString(), headers);
+            ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
+                    HttpMethod.POST, requestEntity, String.class);
+            if (responseEntity.getStatusCode() == HttpStatus.OK) {
+                String resp = responseEntity.getBody();
+                log.info("发送企业微信消息返回结果==" + resp);
+                JSONObject json = JSONObject.parseObject(resp);
+                if (json.getIntValue("errcode") == 0) {
+                    //发送成功
+
+                } else {
+                    throw new Exception(json.toJSONString());
+                }
+            } else {
+                log.error("发送失败:" + responseEntity.getStatusCode() + ", " + responseEntity.getBody());
+                System.err.println("发送失败:" + responseEntity.getStatusCode() + ", " + responseEntity.getBody());
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
     @Override
     public File downloadFile(WxCorpInfo corpInfo, String mediaId) {
         try {