#chabaodao-2# 飞书日程接口优化入参和出参

This commit is contained in:
shilei 2025-07-22 21:08:10 +08:00
parent aa485a5a53
commit 02ee4d5840
9 changed files with 339 additions and 33 deletions

View File

@ -0,0 +1,228 @@
package com.weaver.seconddev.chapanda.beisen.dao;
import com.weaver.ebuilder.datasource.api.entity.SqlParamEntity;
import com.weaver.seconddev.chapanda.beisen.constant.Constants;
import com.weaver.seconddev.chapanda.beisen.util.DatabaseUtils;
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;
import java.util.stream.Collectors;
@Component
public class HrmAssessmentDao {
private final static Logger log = LoggerFactory.getLogger(HrmAssessmentDao.class);
@Autowired
private DatabaseUtils databaseUtils;
/**
*
* @return
*/
public String getAssessmentData(String khnf,String khzq,String jxhdid,String bkhr){
String groupId = "weaver-ebuilder-form-service";
String sourceType = "LOGIC";
String id = "";
try{
String dataSql =" select id from uf_jxsjtz " +
" where khnf = ? " +
" and khzq = ? " +
" and jxhdid = ? " +
" and bkhr = ? " +
" and tenant_key=? \n" +
" and delete_type=0" ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(khnf);
paramList.add(khzq);
paramList.add(jxhdid);
paramList.add(bkhr);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
log.error("recordList:{}",recordList.size());
if(recordList.size()>0){
id = String.valueOf(recordList.get(0).get("id"));
}
}catch (Exception e){
log.error("e:{}" , e);
}
return id;
}
/***
*
* @param tableName
* @return
*/
public String queryTableFormId(String tableName){
String sourceType = "LOGIC";
String groupId = "weaver-ebuilder-form-service";
String form_id = "";
try{
String dataSql =" select form_id from form_table where table_name=? and delete_type=0 and tenant_key=?" ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(tableName);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
log.error("queryTableFormId:"+recordList.size());
if(recordList.size()>0){
Map<String, Object> recordMap = recordList.get(0);
form_id = String.valueOf(recordMap.get("form_id"));
}
}catch (Exception e){
e.printStackTrace();
log.error("queryTableFormId:e:" + e);
}
return form_id;
}
/**
*
* @param dataKeyList
* @return
*/
public Map<String, Object> queryFromTableField(String formTable,List<String> dataKeyList){
String groupId = "weaver-ebuilder-form-service";
String sourceType = "LOGIC";
Map<String, Object> fieldMap = new HashMap<String, Object>();
try{
String dataKey = dataKeyList.stream().collect(Collectors.joining(","));
String dataSql =" select id,form_id,title,data_key " +
" from eteams.form_field " +
" where form_id in( select form_id from eteams.form_table where table_name=? and delete_type=0 and tenant_key=? ) \n" +
" and data_key in("+dataKey+")\n" +
" and sub_form_id is null " +
" and tenant_key=? \n" +
" and delete_type=0" ;
log.error("queryFromTableField--dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(formTable);
paramList.add(Constants.TENANT_KEY);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
log.error("queryFromTableField:"+recordList.size());
for(Map<String,Object> recordMap : recordList ) {
String data_key = String.valueOf(recordMap.get("data_key"));
String id = String.valueOf(recordMap.get("id"));
fieldMap.put(data_key,id);
}
}catch (Exception e){
log.error("queryFromTableField:e:" + e);
}
return fieldMap;
}
public String queryEmailByEmployeeId(String employeeId){
String groupId = "weaver-ebuilder-form-service";
String sourceType = "LOGIC";
String gryx = "";
try{
String dataSql =" select k.gryx from eteams.employee t\n" +
" inner join eteams.ft_1152026012537184302 k on k.id = t.formdata\n" +
" where t.id=? " +
" and t.tenant_key=? \n" +
" and t.delete_type=0" +
" and k.tenant_key=? \n" +
" and k.delete_type=0";
log.error("queryEmailByEmployeeId--dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(employeeId);
paramList.add(Constants.TENANT_KEY);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
log.error("queryEmailByEmployeeId:"+recordList.size());
if(recordList.size() > 0){
gryx = String.valueOf(recordList.get(0).get("gryx"));
}
}catch (Exception e){
log.error("queryEmailByEmployeeId:e:" + e);
}
return gryx;
}
public Map<String,Object> queryDepartmentData(){
String groupId = "weaver-ebuilder-form-service";
String sourceType = "LOGIC";
Map<String,Object> dataMap = new HashMap<String,Object>();
try{
String dataSql =" select code,id from eteams.department where status = 1 " +
" and tenant_key=? \n" +
" and delete_type=0 " ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
log.error("recordList:"+recordList.size());
for(int i=0;i<recordList.size();i++){
Map<String, Object> recordMap = recordList.get(i);
String code = String.valueOf(recordMap.get("code"));
String id = String.valueOf(recordMap.get("id"));
dataMap.put(code,id);
}
}catch (Exception e){
log.error("e:" + e);
}
return dataMap;
}
public Map<String,Object> queryEmployeeData(){
String groupId = "weaver-ebuilder-form-service";
String sourceType = "LOGIC";
Map<String,Object> dataMap = new HashMap<String,Object>();
try{
String dataSql =" select job_num,id from eteams.employee where tenant_key=? and delete_type = 0" ;
log.error("dataSql:" + dataSql);
List<String> paramList = new ArrayList<>(100);
paramList.add(Constants.TENANT_KEY);
List<SqlParamEntity> sqlParamList = databaseUtils.querySqlParamEntity(paramList);
Map<String, Object> result = databaseUtils.executeForQuery(sourceType, groupId, dataSql, sqlParamList);
List<Map<String, Object>> recordList = databaseUtils.getDataSourceList(result);
log.error("recordList:"+recordList.size());
for(int i=0;i<recordList.size();i++){
Map<String, Object> recordMap = recordList.get(i);
String job_num = String.valueOf(recordMap.get("job_num"));
String id = String.valueOf(recordMap.get("id"));
dataMap.put(job_num,id);
}
}catch (Exception e){
log.error("e:" + e);
}
return dataMap;
}
}

View File

@ -10,6 +10,7 @@ import com.weaver.ebuilder.form.client.entity.data.EBDataReqDto;
import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface;
import com.weaver.seconddev.chapanda.beisen.constant.Constants;
import com.weaver.seconddev.chapanda.beisen.dao.FormFieldDao;
import com.weaver.seconddev.chapanda.beisen.dao.HrmAssessmentDao;
import com.weaver.seconddev.chapanda.beisen.dao.HrmDepartmentDao;
import com.weaver.seconddev.chapanda.beisen.util.EbuilderOperateUtils;
import com.weaver.seconddev.chapanda.beisen.util.Esb2BeiSenAssessmentUtil;
@ -44,6 +45,9 @@ public class Esb2BeisenPerformanceCronJobNew implements EsbServerlessRpcRemoteIn
@Autowired
HrmDepartmentDao hrmDepartmentDao;
@Autowired
HrmAssessmentDao hrmAssessmentDao;
@Override
public WeaResult<Map<String, Object>> execute(Map<String, Object> params) {
log.error("Esb2BeisenPerformanceCronJobNew start");
@ -74,9 +78,8 @@ public class Esb2BeisenPerformanceCronJobNew implements EsbServerlessRpcRemoteIn
fieldList.add("jxxs");
fieldList.add("bkhr");
fieldList.add("khzqlx");
fieldList.add("jxxs");
fieldList.add("ppdj");
fieldList.add("jxhdid");
String token = token2BeiSenUtil.getToken();
@ -117,20 +120,50 @@ public class Esb2BeisenPerformanceCronJobNew implements EsbServerlessRpcRemoteIn
// }
// }
int effectiveTotal = 0;
int failTotal = 0;
if(assessmentArray.size() > 0){
JSONArray dataArray = convertAssessmentList(assessmentArray);
log.error("dataArray:"+dataArray.size());
List<EBDataReqDto> datas = new ArrayList<EBDataReqDto>();
Map<String, Object> fieldMap = formFieldDao.queryFromTableField(Constants.assessmentFormTable,fieldList);
List<EBDataReqDto> addDatas = new ArrayList<EBDataReqDto>();
List<EBDataReqDto> updateDatas = new ArrayList<EBDataReqDto>();
for(int i=0;i<dataArray.size();i++){
JSONObject dataJson = dataArray.getJSONObject(i);
log.error("dataJson2:{}",dataJson.toJSONString());
if(dataJson.containsKey("bkhr") && StringUtils.isNotBlank(dataJson.getString("bkhr"))){
String khnf = dataJson.getString("khnf");
String khzq = dataJson.getString("khzq");
String bkhr = dataJson.getString("bkhr");
String jxhdid = dataJson.getString("jxhdid");
String ufId = hrmAssessmentDao.getAssessmentData(khnf,khzq,jxhdid,bkhr);
log.error("ufId:{}",ufId);
String zzdf = dataJson.getString("zzdf");
log.error("zzdf:{}",zzdf);
if(StringUtils.isNotBlank(ufId)){
log.error("修改");
EBDataReqDto ebDataReqDto = new EBDataReqDto();
List<EBDataReqDetailDto> mainData = new ArrayList<EBDataReqDetailDto>();
mainData.add(new EBDataReqDetailDto("id", ufId));
for(int n=0;n<fieldList.size();n++){
if(dataJson.containsKey(fieldList.get(n)) && fieldMap.containsKey(fieldList.get(n))){
String value = dataJson.getString(fieldList.get(n));
String fieldId = fieldMap.get(fieldList.get(n)).toString();
log.error("fieldId:{}",fieldId);
log.error("value:{}",value);
mainData.add(new EBDataReqDetailDto(fieldId, value));
effectiveTotal++;
}
}
ebDataReqDto.setMainDatas(mainData);
updateDatas.add(ebDataReqDto);
}else{
log.error("新增");
EBDataReqDto ebDataReqDto = new EBDataReqDto();
List<EBDataReqDetailDto> mainData = new ArrayList<EBDataReqDetailDto>();
for(int n=0;n<fieldList.size();n++){
@ -145,13 +178,14 @@ public class Esb2BeisenPerformanceCronJobNew implements EsbServerlessRpcRemoteIn
}
}
ebDataReqDto.setMainDatas(mainData);
datas.add(ebDataReqDto);
addDatas.add(ebDataReqDto);
}
}else{
failTotal++;
}
}
log.error("datas:{}",datas.size());
log.error("addDatas:{}",addDatas.size());
log.error("updateDatas:{}",updateDatas.size());
Map<String,Object> recordMap = formFieldDao.queryTableFormId(Constants.assessmentFormTable);
String formId = recordMap.get("id").toString();
@ -159,17 +193,32 @@ public class Esb2BeisenPerformanceCronJobNew implements EsbServerlessRpcRemoteIn
log.error("formId:{}",formId);
log.error("appId:{}",appId);
if(StringUtils.isNotBlank(formId) && StringUtils.isNotBlank(appId)){
EBDataChangeResult ebDataChangeResult = ebuilderOperateUtils.bacthInsertDbForm(datas,formId,appId);
boolean isTrue = ebDataChangeResult.getStatus();
log.error("isTrue:{}",isTrue);
if(addDatas.size() > 0){
EBDataChangeResult addEbDataChangeResult = ebuilderOperateUtils.bacthInsertDbForm(addDatas,formId,appId);
boolean isTrue = addEbDataChangeResult.getStatus();
log.error("message:{}",addEbDataChangeResult.getMessage());
log.error("isTrue1:{}",isTrue);
if(isTrue){
ebList = ebDataChangeResult.getDataIds();
ebList.addAll(addEbDataChangeResult.getDataIds());
}
}
if(updateDatas.size() > 0){
EBDataChangeResult updateEbDataChangeResult = ebuilderOperateUtils.bacthEditEbForm(updateDatas,formId,appId);
boolean isTrue = updateEbDataChangeResult.getStatus();
log.error("isTrue2:{}",isTrue);
log.error("message2:{}",updateEbDataChangeResult.getMessage());
if(isTrue){
ebList.addAll(updateEbDataChangeResult.getDataIds());
}
}
}
}
log.error("ebList:{}", JSON.toJSONString(ebList));
Map<String, Object> actionMap = new HashMap<String, Object>();
actionMap.put("code",200);
actionMap.put("msg","同步成功");
@ -261,6 +310,7 @@ public class Esb2BeisenPerformanceCronJobNew implements EsbServerlessRpcRemoteIn
if("ActivityManagerId".equals(name)){
dataJson.put("jxhdmc",text);
dataJson.put("jxhdid",value);
}
// if("Employee".equals(name)){
@ -335,7 +385,7 @@ public class Esb2BeisenPerformanceCronJobNew implements EsbServerlessRpcRemoteIn
}
if("TotalScoreRuleIdLookup".equals(name)){
dataJson.put("jxxs",text);
dataJson.put("ppdj",text);
}
}
dataArray.add(dataJson);

View File

@ -60,7 +60,7 @@ public class Constants {
public static String cancelCalendarUrl = "/open-apis/calendar/v4/calendars/%s/events/%s";
public static boolean cancelNeedNotification = true;
public static boolean cancelNeedNotification = false;
public static String updateCalendarUrl ="/open-apis/calendar/v4/calendars/%s/events/%s?user_id_type=open_id";

View File

@ -23,10 +23,16 @@ public class Esb2FeishuCalendarsCancelAction implements EsbServerlessRpcRemoteIn
public WeaResult<Map<String, Object>> execute(Map<String, Object> params) {
String calendar_id = (String) params.get("calendar_id");
String event_id = (String) params.get("event_id");
String dataid = (String) params.get("dataid");
String datacode = (String) params.get("datacode");
log.error("calendar_id:{}",calendar_id);
log.error("event_id:{}",event_id);
if("0".equals(datacode)){
return WeaResult.fail(500,"飞书日程已删除");
}
if(StringUtils.isBlank(calendar_id)){
return WeaResult.fail(500,"获取飞书的日历信息失败");
}
@ -50,6 +56,7 @@ public class Esb2FeishuCalendarsCancelAction implements EsbServerlessRpcRemoteIn
actionMap.put("calendarId",calendar_id);
actionMap.put("eventId",event_id);
actionMap.put("datacode",code);
actionMap.put("dataid",dataid);
return WeaResult.success(actionMap);
}
}

View File

@ -49,6 +49,11 @@ public class Esb2FeishuCalendarsEventsAction implements EsbServerlessRpcRemoteIn
String type = (String) params.get("type");
String dataid = (String) params.get("dataid");
String attendee_id_ = (String) params.get("attendee_id");
if(StringUtils.isNotBlank(attendee_id_)){
return WeaResult.fail(500,"日程已创建,无法新建日程");
}
if("BusinessTrip".equals(type)){
String start_time = "";
if(params.containsKey("start_time")){

View File

@ -29,7 +29,7 @@ public class Esb2FeishuCalendarsUpdateAction implements EsbServerlessRpcRemoteIn
String location_address = (String) params.get("location_address");
String type = (String) params.get("type");
String dataId = (String) params.get("dataId");
String dataid = (String) params.get("dataid");
String openId = (String) params.get("openId");
String calendarId = (String) params.get("calendarId");
@ -37,7 +37,7 @@ public class Esb2FeishuCalendarsUpdateAction implements EsbServerlessRpcRemoteIn
log.error("openId:{}",openId);
log.error("calendarId:{}",calendarId);
log.error("eventId:{}",eventId);
log.error("dataId:{}",dataId);
log.error("dataid:{}",dataid);
if("BusinessTrip".equals(type)){
String start_time = "";
@ -80,9 +80,10 @@ public class Esb2FeishuCalendarsUpdateAction implements EsbServerlessRpcRemoteIn
actionMap.put("code",200);
actionMap.put("msg","成功");
actionMap.put("calendarId",calendarId);
actionMap.put("eventId",update_event_id);
actionMap.put("eventId",eventId);
actionMap.put("openId",openId);
actionMap.put("dataId",dataId);
actionMap.put("dataid",dataid);
actionMap.put("update_event_id",update_event_id);
return WeaResult.success(actionMap);
}

View File

@ -35,6 +35,12 @@ public class Esb2FeishuCreateCalendarsTimeoffAction implements EsbServerlessRpcR
String end_date = (String) params.get("end_date");
String employee_id = (String) params.get("employee_id");
String type = (String) params.get("type");
String timeoffEventId = (String) params.get("timeoffEventId");
String dataid = (String) params.get("dataid");
if(StringUtils.isNotBlank(timeoffEventId)){
return WeaResult.fail(500,"请假日程已创建,无法新建请假日程");
}
log.error("start_date:{}",start_date);
log.error("end_date:{}",end_date);
@ -77,6 +83,7 @@ public class Esb2FeishuCreateCalendarsTimeoffAction implements EsbServerlessRpcR
actionMap.put("msg","成功");
actionMap.put("timeoffEventId",timeoff_event_id);
actionMap.put("openId",openId);
actionMap.put("dataid",dataid);
return WeaResult.success(actionMap);
}
}

View File

@ -22,6 +22,12 @@ public class Esb2FeishuDeleteCalendarsTimeoffAction implements EsbServerlessRpcR
@Override
public WeaResult<Map<String, Object>> execute(Map<String, Object> params) {
String timeoff_event_id = (String) params.get("timeoff_event_id");
String datacode = (String) params.get("datacode");
String dataid = (String) params.get("dataid");
if(StringUtils.isBlank(datacode)){
return WeaResult.fail(500,"请假日程已删除");
}
log.error("timeoff_event_id:{}",timeoff_event_id);
@ -44,6 +50,7 @@ public class Esb2FeishuDeleteCalendarsTimeoffAction implements EsbServerlessRpcR
actionMap.put("msg","成功");
actionMap.put("timeoffEventId",timeoff_event_id);
actionMap.put("datacode",code);
actionMap.put("dataid",dataid);
return WeaResult.success(actionMap);
}
}

View File

@ -9,6 +9,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.PrivateKey;
import java.util.UUID;
public class test8 {
@ -48,8 +49,8 @@ public class test8 {
// String date ="2025-06-10";
// System.out.println(date.length());
// String uuid = UUID.randomUUID().toString();
// System.out.println(uuid);
String uuid = UUID.randomUUID().toString();
System.out.println(uuid);
//
// String message = "{\"code\":0,\"data\":{\"calendars\":[{\"calendar\":{\"calendar_id\":\"feishu.cn_CyZB7DD34hJrcBwosRTtDf@group.calendar.feishu.cn\",\"color\":-11034625,\"description\":\"\",\"permissions\":\"private\",\"role\":\"owner\",\"summary\":\"聚才林HR\",\"summary_alias\":\"\",\"type\":\"primary\"},\"user_id\":\"ou_f102af8c3620c64b37077cc949bcc8fe\"}]},\"msg\":\"success\"}";
// if(StringUtils.isNotBlank(message)){