diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/esign/esb/Esb2EsignSyncTemplateCron.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/esign/esb/Esb2EsignSyncTemplateCron.java index fd11e10..34d9f05 100644 --- a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/esign/esb/Esb2EsignSyncTemplateCron.java +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/esign/esb/Esb2EsignSyncTemplateCron.java @@ -123,7 +123,7 @@ public class Esb2EsignSyncTemplateCron implements EsbServerlessRpcRemoteInterfac } log.error("addDatas:{}",addDatas.size()); - Map recordMap = formFieldDao.queryTableFormId(Constants.sealTable); + Map recordMap = formFieldDao.queryTableFormId(Constants.templateTable); String formId = recordMap.get("id").toString(); String appId = recordMap.get("app_id").toString(); log.error("formId:{}",formId); diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/constant/Constants.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/constant/Constants.java index 0693a0b..1e2e51e 100644 --- a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/constant/Constants.java +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/constant/Constants.java @@ -68,4 +68,6 @@ public class Constants { public static String botTemplateId = "1008"; + public static String updateBotUrl = "/open-apis/approval/v1/message/update"; + } diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/dao/WorkflowBotMessageDao.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/dao/WorkflowBotMessageDao.java new file mode 100644 index 0000000..ced6e80 --- /dev/null +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/dao/WorkflowBotMessageDao.java @@ -0,0 +1,54 @@ +package com.weaver.seconddev.chapanda.feishu.dao; + +import com.weaver.ebuilder.datasource.api.entity.SqlParamEntity; +import com.weaver.seconddev.chapanda.cost.constant.Constants; +import com.weaver.seconddev.chapanda.cost.util.DatabaseUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class WorkflowBotMessageDao { + + private final static Logger log = LoggerFactory.getLogger(WorkflowBotMessageDao.class); + + @Autowired + private DatabaseUtils databaseUtils; + + /*** + * + * @return + */ + public List> queryUserBotMessageId(String requestid,String nodeid,String operatorid){ + String groupId = "weaver-ebuilder-form-service"; + String sourceType = "LOGIC"; + List> recordList = new ArrayList>(); + try{ + String dataSql =" select czzid,message_id \n" + + " from uf_bot_message \n" + + " where lcid= ? and jdid = ? and czzid in ("+operatorid+")" + + " and delete_type = 0 and tenant_key = ? " ; + + log.error("dataSql:" + dataSql); + List paramList = new ArrayList<>(100); + paramList.add(requestid); + paramList.add(nodeid); + paramList.add(Constants.TENANT_KEY); + List sqlParamList = databaseUtils.querySqlParamEntity(paramList); + Map result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList); + recordList = databaseUtils.getDataSourceList(result); + log.error("recordList:"+recordList.size()); + }catch (Exception e){ + e.printStackTrace(); + log.error("e:" + e); + } + return recordList; + } + +} diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/dao/WorkflowTableDao.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/dao/WorkflowTableDao.java new file mode 100644 index 0000000..cb03900 --- /dev/null +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/dao/WorkflowTableDao.java @@ -0,0 +1,58 @@ +package com.weaver.seconddev.chapanda.feishu.dao; + +import com.weaver.ebuilder.datasource.api.entity.SqlParamEntity; +import com.weaver.seconddev.chapanda.cost.constant.Constants; +import com.weaver.seconddev.chapanda.cost.util.DatabaseUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class WorkflowTableDao { + + private final static Logger log = LoggerFactory.getLogger(WorkflowTableDao.class); + + @Autowired + private DatabaseUtils databaseUtils; + + /*** + * + * @return + */ + public String queryWorkflowTable(String workflowId){ + String groupId = "weaver-workflow-report-serviceworkflowreport"; + String sourceType = "LOGIC"; + String formTable = ""; + try{ + String dataSql =" select table_name \n" + + " from form_table \n" + + " where form_id in(select relatekey from wfp_relateform where workflowid=? and delete_type = 0 and tenant_key = ? ) " + + " and delete_type = 0 and tenant_key = ? " ; + + log.error("dataSql:" + dataSql); + List paramList = new ArrayList<>(100); + paramList.add(workflowId); + paramList.add(Constants.TENANT_KEY); + paramList.add(Constants.TENANT_KEY); + List sqlParamList = databaseUtils.querySqlParamEntity(paramList); + Map result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList); + List> recordList = databaseUtils.getDataSourceList(result); + log.error("recordList:"+recordList.size()); + if(recordList.size() > 0){ + formTable = String.valueOf(recordList.get(0).get("table_name")); + } + }catch (Exception e){ + e.printStackTrace(); + log.error("e:" + e); + } + return formTable; + } + +} diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotCreateTodoAction.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotCreateTodoAction.java new file mode 100644 index 0000000..2562d5a --- /dev/null +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotCreateTodoAction.java @@ -0,0 +1,149 @@ +package com.weaver.seconddev.chapanda.feishu.esb; + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.common.hrm.util.HrmCommonUtil; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.chapanda.feishu.util.Esb2FeishuBotCreateTodoUtil; +import com.weaver.seconddev.chapanda.feishu.util.Esb2FeishuOpenIdUtil; +import com.weaver.teams.domain.user.SimpleEmployee; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service("Esb2FeishuBotCreateTodoAction") +public class Esb2FeishuBotCreateTodoAction implements EsbServerlessRpcRemoteInterface { + private final static Logger log = LoggerFactory.getLogger(Esb2FeishuBotCreateTodoAction.class); + + @Autowired + private HrmCommonUtil hrmCommonUtil; + + @Autowired + Esb2FeishuOpenIdUtil esb2FeishuOpenIdUtil; + + @Autowired + Esb2FeishuBotCreateTodoUtil esb2FeishuBotCreateTodoUtil; + @Override + public WeaResult> execute(Map params) { + + String requestid = String.valueOf(params.get("requestid")); + String requestName = String.valueOf(params.get("requestName")); + log.error("requestid:{}",requestid); + log.error("requestName:{}",requestName); + + String mobileurl = String.valueOf(params.get("mobileurl")); + String pcurl = String.valueOf(params.get("pcurl")); + String creatorid = String.valueOf(params.get("creatorid")); + String creatorname = ""; + + String senderid = String.valueOf(params.get("senderid")); + + String operatorid = String.valueOf(params.get("operatorid")); + String requestmark = String.valueOf(params.get("requestmark")); + if("null".equals(requestmark) || requestmark == null){ + requestmark = ""; + } + String msgType = String.valueOf(params.get("msgType")); + + String nodeid = String.valueOf(params.get("nodeid")); + + log.error("msgType:{}",msgType); + log.error("mobileurl:{}",mobileurl); + log.error("pcurl:{}",pcurl); + log.error("operatorid:{}",operatorid); + log.error("requestmark:{}",requestmark); + log.error("creatorid:{}",creatorid); + + String message_ids = ""; + + if("0".equals(msgType)){ + String senderMobile =""; + if(StringUtils.isNotBlank(senderid)){ + Long sender_id = Long.parseLong(senderid); + SimpleEmployee senderEmployee = hrmCommonUtil.getSimpleEmployee(sender_id); + senderMobile = senderEmployee.getMobile(); + } + + String creatorMobile = ""; + if(StringUtils.isNotBlank(creatorid)){ + Long creator_id = Long.parseLong(creatorid); + SimpleEmployee creatorEmployee = hrmCommonUtil.getSimpleEmployee(creator_id); + creatorMobile = creatorEmployee.getMobile(); + creatorname = creatorEmployee.getUsername(); + } + + log.error("creatorMobile:{}",creatorMobile); + log.error("creatorname:{}",creatorname); + String create_open_id = ""; + if(StringUtils.isNotBlank(creatorMobile)) { + Map creatorMap = esb2FeishuOpenIdUtil.queryFeishuOpenIdByMobiles(creatorMobile); + create_open_id = String.valueOf(creatorMap.get(creatorMobile)); + } + + String send_open_id = ""; + if(StringUtils.isNotBlank(senderMobile)){ + Map senderMap = esb2FeishuOpenIdUtil.queryFeishuOpenIdByMobiles(senderMobile); + send_open_id = String.valueOf(senderMap.get(creatorMobile)); + } + + List todoOpenIdList = new ArrayList(); + if(StringUtils.isNotBlank(operatorid)){ + String[] todoUserids = operatorid.split(","); + for(int i=0;i userMap = esb2FeishuOpenIdUtil.queryFeishuOpenIdByMobiles(userMobile); + String user_open_id = String.valueOf(userMap.get(userMobile)); + log.error("user_open_id:{}",user_open_id); + todoOpenIdList.add(user_open_id); + } + } + } + } + + + log.error("create_open_id:{}",create_open_id); + if(StringUtils.isNotBlank(create_open_id)){ + if(StringUtils.isNotBlank(send_open_id)){ + if(todoOpenIdList.size() > 0){ + if("0".equals(msgType)){ + message_ids = esb2FeishuBotCreateTodoUtil.senBotTodoMessage( + requestid,requestName,requestmark, + create_open_id,send_open_id,todoOpenIdList, + mobileurl,pcurl + ); + } + }else{ + log.error("todoOpenIdList:{}","获取待办人员为空"); + } + }else{ + log.error("send_open_id:{}","获取待办人员为空"); + } + }else{ + log.error("creatorMobile:{}","创建人飞书openid为空"); + } + } + + Map actionMap = new HashMap(); + actionMap.put("code",200); + actionMap.put("msg","成功"); + actionMap.put("messageid",message_ids); + actionMap.put("requestid",requestid); + actionMap.put("requestname",requestName); + actionMap.put("nodeid",nodeid); + actionMap.put("operatorid",operatorid); + return WeaResult.success(actionMap); + } +} diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotTodoAction.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotDteleteTodoAction.java similarity index 88% rename from secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotTodoAction.java rename to secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotDteleteTodoAction.java index b64c2a2..7020f40 100644 --- a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotTodoAction.java +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotDteleteTodoAction.java @@ -3,7 +3,8 @@ package com.weaver.seconddev.chapanda.feishu.esb; import com.weaver.common.base.entity.result.WeaResult; import com.weaver.common.hrm.util.HrmCommonUtil; import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; -import com.weaver.seconddev.chapanda.feishu.util.Esb2FeishuBotTodoUtil; +import com.weaver.seconddev.chapanda.feishu.dao.WorkflowTableDao; +import com.weaver.seconddev.chapanda.feishu.util.Esb2FeishuBotCreateTodoUtil; import com.weaver.seconddev.chapanda.feishu.util.Esb2FeishuOpenIdUtil; import com.weaver.teams.domain.user.SimpleEmployee; import org.apache.commons.lang3.StringUtils; @@ -11,14 +12,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -@Service("Esb2FeishuBotTodoAction") -public class Esb2FeishuBotTodoAction implements EsbServerlessRpcRemoteInterface { - private final static Logger log = LoggerFactory.getLogger(Esb2FeishuBotTodoAction.class); +@Service("Esb2FeishuDteleteBotTodoAction") +public class Esb2FeishuBotDteleteTodoAction implements EsbServerlessRpcRemoteInterface { + private final static Logger log = LoggerFactory.getLogger(Esb2FeishuBotDteleteTodoAction.class); @Autowired private HrmCommonUtil hrmCommonUtil; @@ -27,11 +29,15 @@ public class Esb2FeishuBotTodoAction implements EsbServerlessRpcRemoteInterface Esb2FeishuOpenIdUtil esb2FeishuOpenIdUtil; @Autowired - Esb2FeishuBotTodoUtil esb2FeishuBotTodoUtil; + Esb2FeishuBotCreateTodoUtil esb2FeishuBotTodoUtil; + + @Autowired + WorkflowTableDao workflowTableDao; @Override public WeaResult> execute(Map params) { log.error("Esb2FeishuSendTodoAction start"); + String workflowid = String.valueOf(params.get("workflowid")); String requestid = String.valueOf(params.get("requestid")); String requestName = String.valueOf(params.get("requestName")); log.error("requestid:{}",requestid); @@ -86,6 +92,11 @@ public class Esb2FeishuBotTodoAction implements EsbServerlessRpcRemoteInterface send_open_id = String.valueOf(senderMap.get(creatorMobile)); } + String formTable = ""; + if(StringUtils.isNotBlank(workflowid)){ + formTable = workflowTableDao.queryWorkflowTable(workflowid); + } + List todoOpenIdList = new ArrayList(); if(StringUtils.isNotBlank(operatorid)){ String[] todoUserids = operatorid.split(","); @@ -113,7 +124,7 @@ public class Esb2FeishuBotTodoAction implements EsbServerlessRpcRemoteInterface if(StringUtils.isNotBlank(create_open_id)){ if(StringUtils.isNotBlank(send_open_id)){ if(todoOpenIdList.size() > 0){ - if("0".equals(msgType)){ + if("1".equals(msgType)){ message_ids = esb2FeishuBotTodoUtil.senBotTodoMessage( requestid,requestName,requestmark, create_open_id,send_open_id,todoOpenIdList, diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotUpdateTodoAction.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotUpdateTodoAction.java new file mode 100644 index 0000000..e23817b --- /dev/null +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuBotUpdateTodoAction.java @@ -0,0 +1,63 @@ +package com.weaver.seconddev.chapanda.feishu.esb; + +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.seconddev.chapanda.feishu.dao.WorkflowBotMessageDao; +import com.weaver.seconddev.chapanda.feishu.util.Esb2FeishuBotUpdateTodoUtil; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service("Esb2FeishuBotUpdateTodoAction") +public class Esb2FeishuBotUpdateTodoAction implements EsbServerlessRpcRemoteInterface { + private final static Logger log = LoggerFactory.getLogger(Esb2FeishuBotUpdateTodoAction.class); + + @Autowired + Esb2FeishuBotUpdateTodoUtil esb2FeishuBotUpdateTodoUtil; + + @Autowired + WorkflowBotMessageDao workflowBotMessageDao; + @Override + public WeaResult> execute(Map params) { + + String requestid = String.valueOf(params.get("requestid")); + String requestName = String.valueOf(params.get("requestName")); + log.error("requestid:{}",requestid); + log.error("requestName:{}",requestName); + String nodeid = String.valueOf(params.get("nodeid")); + String operatorid = String.valueOf(params.get("operatorid")); + String msgType = String.valueOf(params.get("msgType")); + + log.error("msgType:{}",msgType); + + String update_message_id = ""; + if("1".equals(msgType)){ + String status = "PROCESSED"; + List> todoMessageIdList = new ArrayList>(); + if(StringUtils.isNotBlank(operatorid)){ + todoMessageIdList = workflowBotMessageDao.queryUserBotMessageId(requestid,nodeid,operatorid); + } + log.error("todoMessageIdList:{}",todoMessageIdList.size()); + if(todoMessageIdList.size() > 0){ + update_message_id = esb2FeishuBotUpdateTodoUtil.senBotTodoMessage(status,todoMessageIdList); + }else{ + log.error("todoOpenIdList:{}","获取待办人员为空"); + } + } + + Map actionMap = new HashMap(); + actionMap.put("code",200); + actionMap.put("msg","成功"); + actionMap.put("messageid",update_message_id); + actionMap.put("updatemessageid",update_message_id); + + return WeaResult.success(actionMap); + } +} diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuSendDoneAction.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuSendDoneAction.java index 10ebfac..e0f7de6 100644 --- a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuSendDoneAction.java +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/esb/Esb2FeishuSendDoneAction.java @@ -91,48 +91,48 @@ public class Esb2FeishuSendDoneAction implements EsbServerlessRpcRemoteInterface log.error("recepttime:{}",recepttime); String code = ""; - String creatorMobile = ""; - if(StringUtils.isNotBlank(creatorid)){ - Long creator_id = Long.parseLong(creatorid); - SimpleEmployee creatorEmployee = hrmCommonUtil.getSimpleEmployee(creator_id); - creatorMobile = creatorEmployee.getMobile(); - creatorname = creatorEmployee.getUsername(); - } - log.error("creatorMobile:{}",creatorMobile); - log.error("creatorname:{}",creatorname); + if("1".equals(msgType)){ + String status = "APPROVED"; + String creatorMobile = ""; + if(StringUtils.isNotBlank(creatorid)){ + Long creator_id = Long.parseLong(creatorid); + SimpleEmployee creatorEmployee = hrmCommonUtil.getSimpleEmployee(creator_id); + creatorMobile = creatorEmployee.getMobile(); + creatorname = creatorEmployee.getUsername(); + } + log.error("creatorMobile:{}",creatorMobile); + log.error("creatorname:{}",creatorname); - String create_open_id = ""; - if(StringUtils.isNotBlank(creatorMobile)) { - Map userMap = esb2FeishuOpenIdUtil.queryFeishuOpenIdByMobiles(creatorMobile); - create_open_id = String.valueOf(userMap.get(creatorMobile)); - } + String create_open_id = ""; + if(StringUtils.isNotBlank(creatorMobile)) { + Map userMap = esb2FeishuOpenIdUtil.queryFeishuOpenIdByMobiles(creatorMobile); + create_open_id = String.valueOf(userMap.get(creatorMobile)); + } - List todoOpenIdList = new ArrayList(); - if(StringUtils.isNotBlank(operatorid)){ - String[] todoUserids = operatorid.split(","); - for(int i=0;i userMap = esb2FeishuOpenIdUtil.queryFeishuOpenIdByMobiles(userMobile); - String user_open_id = String.valueOf(userMap.get(userMobile)); - log.error("user_open_id:{}",user_open_id); - todoOpenIdList.add(user_open_id); + List todoOpenIdList = new ArrayList(); + if(StringUtils.isNotBlank(operatorid)){ + String[] todoUserids = operatorid.split(","); + for(int i=0;i userMap = esb2FeishuOpenIdUtil.queryFeishuOpenIdByMobiles(userMobile); + String user_open_id = String.valueOf(userMap.get(userMobile)); + log.error("user_open_id:{}",user_open_id); + todoOpenIdList.add(user_open_id); + } } } } - } - if(StringUtils.isNotBlank(create_open_id)){ - if(todoOpenIdList.size()>0){ - if("1".equals(msgType)){ - String status = "APPROVED"; + if(StringUtils.isNotBlank(create_open_id)){ + if(todoOpenIdList.size()>0){ code = esb2FeishuSendDoneUtil.senTodoMessage( requestid,requestName,requestmark, creatorname,createTime, @@ -144,12 +144,12 @@ public class Esb2FeishuSendDoneAction implements EsbServerlessRpcRemoteInterface if(!"0".equals(code)){ log.error("todoOpenIdList:{}","创建飞书待办异常"); } + }else{ + log.error("todoOpenIdList:{}","获取待办人员为空"); } }else{ - log.error("todoOpenIdList:{}","获取待办人员为空"); + log.error("creatorMobile:{}","创建人飞书openid为空"); } - }else{ - log.error("creatorMobile:{}","创建人飞书openid为空"); } Map actionMap = new HashMap(); diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotTodoUtil.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotCreateTodoUtil.java similarity index 79% rename from secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotTodoUtil.java rename to secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotCreateTodoUtil.java index 52b5e8a..e0d3b28 100644 --- a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotTodoUtil.java +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotCreateTodoUtil.java @@ -9,19 +9,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; - import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; @Component -public class Esb2FeishuBotTodoUtil { - private final static Logger log = LoggerFactory.getLogger(Esb2FeishuBotTodoUtil.class); +public class Esb2FeishuBotCreateTodoUtil { + private final static Logger log = LoggerFactory.getLogger(Esb2FeishuBotCreateTodoUtil.class); @Autowired private Esb2FeishuTokenUtil esb2FeishuTokenUtil; @@ -128,89 +124,29 @@ public class Esb2FeishuBotTodoUtil { JSONArray actionsArray = new JSONArray(); JSONObject actionsObject = new JSONObject(); actionsObject.put("action_name","DETAIL"); - actionsObject.put("url",mobileurl); - actionsObject.put("android_url",mobileurl); - actionsObject.put("ios_url",mobileurl); - actionsObject.put("pc_url",pcurl); + actionsObject.put("url",Constants.HrmHost+mobileurl); + actionsObject.put("android_url",Constants.HrmHost+mobileurl); + actionsObject.put("ios_url",Constants.HrmHost+mobileurl); + actionsObject.put("pc_url",Constants.HrmHost+pcurl); actionsArray.add(actionsObject); bodyJson.put("actions",actionsArray); - - JSONArray i18nResourcesTextsArray = new JSONArray(); - JSONObject i18nResourcesTextsJson = new JSONObject(); - i18nResourcesTextsJson.put("key","@i18n@title"); - i18nResourcesTextsJson.put("value",requestName); - i18nResourcesTextsArray.add(i18nResourcesTextsJson); - - i18nResourcesTextsJson = new JSONObject(); - i18nResourcesTextsJson.put("key","@i18n@summary"); - i18nResourcesTextsJson.put("value",requestName); - i18nResourcesTextsArray.add(i18nResourcesTextsJson); - - i18nResourcesTextsJson = new JSONObject(); - i18nResourcesTextsJson.put("key","@i18n@requestid"); - i18nResourcesTextsJson.put("value",requestid); - i18nResourcesTextsArray.add(i18nResourcesTextsJson); - + i18nResourcesTextsJson.put("@i18n@title",requestName); + i18nResourcesTextsJson.put("@i18n@summary",requestName); + i18nResourcesTextsJson.put("@i18n@requestid",requestid); JSONObject i18nResourcesJson = new JSONObject(); i18nResourcesJson.put("locale","zh-CN"); - i18nResourcesJson.put("texts",i18nResourcesTextsArray); - i18nResourcesJson.put("is_default","true"); + i18nResourcesJson.put("texts",i18nResourcesTextsJson); + i18nResourcesJson.put("is_default",true); JSONArray i18nResourcesArray = new JSONArray(); i18nResourcesArray.add(i18nResourcesJson); - bodyJson.put("i18n_resources",i18nResourcesArray); return bodyJson.toJSONString(); } - public static void main(String[] args) { - - Esb2FeishuBotTodoUtil esb2FeishuSendTodoUtil = new Esb2FeishuBotTodoUtil(); - - String requestid = "1154744413522714631"; - String requestName = "督导奖励申请流程-石磊-2025-07-09"; - - String create_open_id = "ou_8ff7816cfa8cda57643cac2a06fbdc7e"; - String department_id = ""; - String department_name = ""; - String start_time = String.valueOf(System.currentTimeMillis()); - String end_time = String.valueOf(System.currentTimeMillis()); - - Map textsMap = new HashMap(); - - List> taskList = new ArrayList>(); - Map taskMap = new HashMap(); - taskMap.put("open_id",create_open_id); - taskList.add(taskMap); - - - - List> formList = new ArrayList>(); - Map formMap = new HashMap(); - formMap.put("name","创建人"); - formMap.put("value","石磊"); - formList.add(formMap); - formMap = new HashMap(); - formMap.put("name","紧急程度"); - formMap.put("value","紧急"); - formList.add(formMap); - String node_id = "1151724772346716177"; - String nodeName = "1级审批"; - -// String data = esb2FeishuSendTodoUtil.appendBodyParam(requestid, -// requestName,create_open_id,department_id,department_name,start_time,end_time, -// formList,node_id,nodeName,new ArrayList(),"","",""); -// System.out.println(data); - - String date = "2025-07-17 21:07:48"; - - esb2FeishuSendTodoUtil.convertTimeStamp(date); - } - - public long convertTimeStamp(String date) { if(StringUtils.isNotBlank(date)){ diff --git a/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotUpdateTodoUtil.java b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotUpdateTodoUtil.java new file mode 100644 index 0000000..741645e --- /dev/null +++ b/secondev-chapanda-integration/src/main/java/com/weaver/seconddev/chapanda/feishu/util/Esb2FeishuBotUpdateTodoUtil.java @@ -0,0 +1,93 @@ +package com.weaver.seconddev.chapanda.feishu.util; + +import cn.hutool.json.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.weaver.seconddev.chapanda.feishu.constant.Constants; +import okhttp3.*; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +@Component +public class Esb2FeishuBotUpdateTodoUtil { + private final static Logger log = LoggerFactory.getLogger(Esb2FeishuBotUpdateTodoUtil.class); + + @Autowired + private Esb2FeishuTokenUtil esb2FeishuTokenUtil; + + public String senBotTodoMessage(String status,List> todoOpenIdList) { + String update_message_ids = ""; + String token = esb2FeishuTokenUtil.getToken(); + log.error("token:"+token); + if(StringUtils.isNotBlank(token)){ + for(int i=0;i