Переглянути джерело

人员工时填报及时率修改 钉钉OA消息推送

yurk 2 роки тому
батько
коміт
9471fa6e5d

+ 9 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/CompanyDingdingController.java

@@ -1,17 +1,19 @@
 package com.management.platform.controller;
 
 
+import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
 import com.management.platform.entity.CompanyDingding;
 import com.management.platform.mapper.CompanyDingdingMapper;
 import com.management.platform.service.CompanyDingdingService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -49,7 +51,12 @@ public class CompanyDingdingController {
     @RequestMapping("/sendOAMsg")
     public HttpRespMsg sendOAMsg(String corpid, String userDingId) {
         CompanyDingding companyDingding = companyDingdingMapper.selectById(corpid);
-        companyDingdingService.sendOAMsg(companyDingding, "040534176023851922", null);
+        List<OapiMessageCorpconversationAsyncsendV2Request.Form> form=new ArrayList<>();
+        OapiMessageCorpconversationAsyncsendV2Request.Form item=new OapiMessageCorpconversationAsyncsendV2Request.Form();
+        item.setKey("测试");
+        item.setValue("试试成功没");
+        form.add(item);
+        companyDingdingService.sendOAMsg(companyDingding, "040534176023851922", "OA提醒测试","这是一次测试",form);
         return new HttpRespMsg();
     }
 }

+ 12 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/CompanyDingding.java

@@ -1,21 +1,22 @@
 package com.management.platform.entity;
 
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
 /**
  * <p>
  * 
  * </p>
  *
  * @author Seyason
- * @since 2022-06-16
+ * @since 2022-06-22
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -84,6 +85,12 @@ public class CompanyDingding extends Model<CompanyDingding> {
     @TableField("inner_expire_time")
     private LocalDateTime innerExpireTime;
 
+    /**
+     * 企业链接地址
+     */
+    @TableField("web_url")
+    private String webUrl;
+
 
     @Override
     protected Serializable pkVal() {

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/CompanyDingdingService.java

@@ -31,7 +31,7 @@ public interface CompanyDingdingService extends IService<CompanyDingding> {
 
     public void sendFinishMileStoneMsg(CompanyDingding dingding, String useridList, String taskName, Integer projectId, String project, String finishDate);
 
-    public void sendOAMsg(CompanyDingding dingding, String useridList,String titleText,String content, List<OapiMessageCorpconversationAsyncsendV2Request.Form> from);
+    public void sendOAMsg(CompanyDingding dingding, String useridList,String titleText,String content, List<OapiMessageCorpconversationAsyncsendV2Request.Form> form);
 
     public void sendInnerLinkMsg(CompanyDingding dingding, String useridList, String title, String alertMsg);
 }

+ 4 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyDingdingServiceImpl.java

@@ -25,6 +25,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.net.URLEncoder;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
@@ -365,7 +366,8 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
         msg.getOa().getBody().setContent(content);
         msg.getOa().getBody().setForm(from);
         msg.setMsgtype("oa");
-        msg.getOa().setMessageUrl("dingtalk://dingtalkclient/action/openapp?corpid=="+dingding.getCorpid()+"&container_type=work_platform&app_id="+appId+"&redirect_type=jump&redirect_url=https%3A%2F%2Fworktime.ttkuaiban.com%2F%3Fcorpid%3D%24CORPID%24");
+        msg.getOa().setMessageUrl("dingtalk://dingtalkclient/action/openapp?corpid="+dingding.getCorpid()
+                +"&container_type=work_platform&app_id=0_"+dingding.getAgentId()+"&redirect_type=jump&redirect_url="+ URLEncoder.encode(dingding.getWebUrl()+"?corpid="+dingding.getCorpid()));
         request.setMsg(msg);
 
 //        msg.setActionCard(new OapiMessageCorpconversationAsyncsendV2Request.ActionCard());
@@ -399,7 +401,7 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
         msg.getLink().setTitle(title);
         msg.getLink().setText(alertMsg);
         msg.getLink().setMessageUrl("dingtalk://dingtalkclient/action/openapp?corpid="+dingding.getCorpid()
-                +"&container_type=work_platform&app_id=0_"+dingding.getAgentId()+"&redirect_type=jump&redirect_url=");
+                +"&container_type=work_platform&app_id=0_"+dingding.getAgentId()+"&redirect_type=jump&redirect_url="+ URLEncoder.encode(dingding.getWebUrl()+"?corpid="+dingding.getCorpid()));
         request.setMsg(msg);
 
         OapiMessageCorpconversationAsyncsendV2Response rsp = null;

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/CompanyDingdingMapper.xml

@@ -16,11 +16,12 @@
         <result column="inner_appsecret" property="innerAppsecret" />
         <result column="inner_token" property="innerToken" />
         <result column="inner_expire_time" property="innerExpireTime" />
+        <result column="web_url" property="webUrl" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        corpid, corp_name, auth_user_id, indate, company_id, access_token, expire_time, agent_id, inner_appkey, inner_appsecret, inner_token, inner_expire_time
+        corpid, corp_name, auth_user_id, indate, company_id, access_token, expire_time, agent_id, inner_appkey, inner_appsecret, inner_token, inner_expire_time, web_url
     </sql>
 
 </mapper>