From 5df732ffe16b3f162422c2db61a78458e28c7f8d Mon Sep 17 00:00:00 2001 From: rk <94314517@qq.com> Date: 星期五, 10 十月 2025 14:45:29 +0800 Subject: [PATCH] 钥匙柜开发 天气预警通知 --- server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java | 467 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 447 insertions(+), 20 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java index e23b927..84273d6 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java @@ -4,7 +4,9 @@ import com.aliyun.dingtalkoauth2_1_0.Client; import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenRequest; import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponse; +import com.aliyun.dingtalktodo_1_0.models.*; import com.aliyun.tea.TeaException; +import com.aliyun.teautil.models.RuntimeOptions; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; @@ -14,16 +16,22 @@ import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.dao.CompanyMapper; +import com.doumee.dao.business.model.CarUseBook; import com.doumee.dao.business.model.Company; +import com.doumee.dao.business.model.HiddenDanger; +import com.doumee.dao.business.model.Visits; import com.doumee.dao.system.model.SystemDictData; import com.doumee.service.business.CompanyService; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.taobao.api.ApiException; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.DateFormat; import java.util.*; import java.util.stream.Collectors; @@ -44,7 +52,7 @@ private CompanyMapper companyMapper; /** - * 浣跨敤 Token 鍒濆鍖栬处鍙稢lient + * 浣跨敤 Token 鍒濆鍖栬处鍙稢lient 鏁版嵁鍚屾绫� * @return Client com.aliyun.dingtalkoauth2_1_0. * @throws Exception */ @@ -55,6 +63,17 @@ return new Client(config); } + /** + * 寰呭姙閫氱煡绫� 閾炬帴姹� + * @return + * @throws Exception + */ + public static com.aliyun.dingtalktodo_1_0.Client createV1Client() throws Exception { + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config(); + config.protocol = "https"; + config.regionId = "central"; + return new com.aliyun.dingtalktodo_1_0.Client(config); + } public void updTokenInfo() throws Exception { String appKey = systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.APP_KEY).getCode(); @@ -105,6 +124,19 @@ } + public OapiV2UserGetuserinfoResponse.UserGetByCodeResponse getDDUserByCode(String code) throws ApiException { + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo"); + OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest(); + req.setCode(code); + OapiV2UserGetuserinfoResponse rsp = client.execute(req, getToken()); + if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){ + return rsp.getResult(); + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage()); + } + } + + /** * 鍏ㄩ噺鍚屾 閮ㄩ棬淇℃伅 * 鎺ュ彛鏂囨。鍦板潃 https://open.dingtalk.com/document/orgapp/obtain-the-department-list-v2 @@ -132,7 +164,6 @@ getResponseList.add(deptGetResponse); } } - return getResponseList; } @@ -162,8 +193,6 @@ } return thisLevelList; } - - /** * 鍒涘缓缁勭粐閮ㄩ棬 鏆備笉浣跨敤 @@ -248,6 +277,12 @@ } + /** + * 鑾峰彇閽夐拤閮ㄩ棬璇︽儏 + * @param deptId + * @return + * @throws ApiException + */ public OapiV2DepartmentGetResponse.DeptGetResponse syncDepartmentInfo(Long deptId) throws ApiException { DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/get"); OapiV2DepartmentGetRequest req = new OapiV2DepartmentGetRequest(); @@ -292,11 +327,11 @@ return null; } Set<String> setUserIdList = new HashSet<>(allUserIdList); - return syncUserInfo(setUserIdList); + return syncUserInfoList(setUserIdList); } - public List<OapiV2UserGetResponse.UserGetResponse> syncUserInfo(Set<String> setUserIdList) throws ApiException { + public List<OapiV2UserGetResponse.UserGetResponse> syncUserInfoList(Set<String> setUserIdList) throws ApiException { List<OapiV2UserGetResponse.UserGetResponse> userList = new ArrayList<>(); DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get"); OapiV2UserGetRequest req = new OapiV2UserGetRequest(); @@ -315,37 +350,429 @@ } + public OapiV2UserGetResponse.UserGetResponse syncUserInfo(String userId)throws ApiException { + DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get"); + OapiV2UserGetRequest req = new OapiV2UserGetRequest(); + req.setUserid(userId); + req.setLanguage("zh_CN"); + OapiV2UserGetResponse rsp = client.execute(req, getToken()); + if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){ + OapiV2UserGetResponse.UserGetResponse userGetResponse = rsp.getResult(); + return userGetResponse; + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage()); + } + } + /** + * 鍙戦�� 宸ヤ綔閫氱煡 + * @param agentId + * @param userIds + * @param msg + * api 鍦板潃 https://open.dingtalk.com/document/orgapp/asynchronous-sending-of-enterprise-session-messages + * @throws ApiException + */ + public Boolean workInfoOANotice(Long agentId,String userIds,OapiMessageCorpconversationAsyncsendV2Request.Msg msg){ + try{ + DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"); + OapiMessageCorpconversationAsyncsendV2Request request = new OapiMessageCorpconversationAsyncsendV2Request(); + request.setAgentId(agentId); + request.setUseridList(userIds); + request.setToAllUser(false); - public static void main(String[] args) throws Exception { - String appKey = "dingkfglaktqmfd2dmo2";//systemDictDataBiz.queryByCode("","").getCode(); - String appSecret = "0e22TT2s794Yj49Exgvq8nU2ulpXmxlw9ThBh5s-vDv5Cfspv-f8HPmta4cg2evk";//systemDictDataBiz.queryByCode("","").getCode(); - Client client = DingTalk.createClient(); - GetAccessTokenRequest getAccessTokenRequest = new GetAccessTokenRequest() - .setAppKey(appKey) - .setAppSecret(appSecret); + request.setMsg(msg); + OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, "60c2df248ca93d4eafb4a04a2330d3d3");//getToken()); + if(rsp.getErrcode().equals(Constants.DD_ERR_CODE)){ + return true; + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),rsp.getMessage()); + } + }catch (ApiException apiException){ + + } + return false; + + } + + + /** + * 璁垮鐢宠/鎶ュ OA 宸ヤ綔閫氱煡 鍐呭 + * @param visits + * @param title + * @return + */ + public OapiMessageCorpconversationAsyncsendV2Request.Msg getVisitNoticeMsg(Visits visits,String title){ + OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); + msg.setMsgtype("oa"); + OapiMessageCorpconversationAsyncsendV2Request.OA oa = new OapiMessageCorpconversationAsyncsendV2Request.OA(); + oa.setMessageUrl(""); + OapiMessageCorpconversationAsyncsendV2Request.Head head = new OapiMessageCorpconversationAsyncsendV2Request.Head(); + head.setText(title); + head.setBgcolor("#279BAA"); + oa.setHead(head); + + OapiMessageCorpconversationAsyncsendV2Request.Body body = new OapiMessageCorpconversationAsyncsendV2Request.Body(); + body.setTitle(!Constants.equalsInteger(visits.getType(),Constants.TWO)?visits.getName()+"鐨勮瀹㈢敵璇�":"鐨勮瀹㈡姤澶�"); + List<OapiMessageCorpconversationAsyncsendV2Request.Form> formList = new ArrayList<>(); + + OapiMessageCorpconversationAsyncsendV2Request.Form visitUser = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + visitUser.setKey("鏉ヨ浜猴細"); + visitUser.setValue(visits.getName()); + formList.add(visitUser); + + OapiMessageCorpconversationAsyncsendV2Request.Form inDate = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + inDate.setKey("鍏ュ洯鏃堕棿锛�"); + inDate.setValue(DateUtil.formatDate(visits.getStarttime(),"MM-dd HH:mm")); + formList.add(inDate); + + OapiMessageCorpconversationAsyncsendV2Request.Form outDate = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + outDate.setKey("绂诲洯鏃堕棿锛�"); + outDate.setValue(DateUtil.formatDate(visits.getEndtime(),"MM-dd HH:mm")); + formList.add(outDate); + + OapiMessageCorpconversationAsyncsendV2Request.Form inReason = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + inReason.setKey("鏉ヨ浜嬬敱锛�"); + inReason.setValue(visits.getReason()); + formList.add(inReason); + + if(StringUtils.isNotBlank(visits.getCarNos())){ + OapiMessageCorpconversationAsyncsendV2Request.Form carNos = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + carNos.setKey("闅忚杞﹁締锛�"); + carNos.setValue(visits.getCarNos()); + formList.add(visitUser); + } + + body.setForm(formList); + oa.setBody(body); + msg.setOa(oa); + return msg; + } + + + /** + * 鐢ㄨ溅淇℃伅 閽夐拤閫氱煡鏁版嵁缁勫悎 + * @param carUseBook + * @param title + * @return + */ + public OapiMessageCorpconversationAsyncsendV2Request.Msg getCarUseNoticeMsg(CarUseBook carUseBook,String title){ + OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); + msg.setMsgtype("oa"); + OapiMessageCorpconversationAsyncsendV2Request.OA oa = new OapiMessageCorpconversationAsyncsendV2Request.OA(); + oa.setMessageUrl(""); + OapiMessageCorpconversationAsyncsendV2Request.Head head = new OapiMessageCorpconversationAsyncsendV2Request.Head(); + head.setText(title); + head.setBgcolor("#279BAA"); + oa.setHead(head); + + OapiMessageCorpconversationAsyncsendV2Request.Body body = new OapiMessageCorpconversationAsyncsendV2Request.Body(); + body.setTitle("鍏姟鐢ㄨ溅"); + List<OapiMessageCorpconversationAsyncsendV2Request.Form> formList = new ArrayList<>(); + + + OapiMessageCorpconversationAsyncsendV2Request.Form startDate = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + startDate.setKey("寮�濮嬫椂闂达細"); + startDate.setValue(DateUtil.formatDate(carUseBook.getStartTime(),"MM-dd HH:mm")); + formList.add(startDate); + + OapiMessageCorpconversationAsyncsendV2Request.Form endDate = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + endDate.setKey("缁撴潫鏃堕棿锛�"); + endDate.setValue(DateUtil.formatDate(carUseBook.getEndTime(),"MM-dd HH:mm")); + formList.add(endDate); + + OapiMessageCorpconversationAsyncsendV2Request.Form userNum = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + userNum.setKey("涔樿溅浜烘暟锛�"); + userNum.setValue(StringUtils.isBlank(carUseBook.getMemberNames())?"0浜�": (carUseBook.getMemberNames().split(",").length+"浜�")); + formList.add(userNum); + + OapiMessageCorpconversationAsyncsendV2Request.Form inReason = new OapiMessageCorpconversationAsyncsendV2Request.Form(); + inReason.setKey("鐢ㄨ溅鍦扮偣锛�"); + inReason.setValue(Constants.equalsInteger(carUseBook.getType(),Constants.ZERO)?"甯傚唴":"甯傚"); + formList.add(inReason); + + body.setForm(formList); + oa.setBody(body); + msg.setOa(oa); + return msg; + } + + /** + * 澶╂皵 markdown + * @param title + * @param text + * @return + */ + public OapiMessageCorpconversationAsyncsendV2Request.Msg getWeatherNoticeMsg(String title,String text){ + OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); + msg.setMsgtype("markdown"); + OapiMessageCorpconversationAsyncsendV2Request.Markdown markdown = new OapiMessageCorpconversationAsyncsendV2Request.Markdown(); + markdown.setTitle(title); + markdown.setText(text); + msg.setMarkdown(markdown); + return msg; + } + + + /** + * 瀹夐槻/娑堥槻 markdown + * @param hiddenDanger + * @return + */ + public OapiMessageCorpconversationAsyncsendV2Request.Msg getHiddenDangerNoticeMsg(HiddenDanger hiddenDanger){ + OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg(); + msg.setMsgtype("markdown"); + OapiMessageCorpconversationAsyncsendV2Request.Markdown markdown = new OapiMessageCorpconversationAsyncsendV2Request.Markdown(); + markdown.setTitle("鍥尯瀛樺湪瀹夐槻/娑堥槻闅愭偅"); + markdown.setText(hiddenDanger.getAreaName()+"鍦�"+DateUtil.formatDate(hiddenDanger.getSubmitTime(),"YYYY-MM-dd HH:mm")+"鍙戠敓"+hiddenDanger.getCategoryName()+",璇峰強鏃跺墠寰�瀹夐槻涓績/娑堥槻涓績杩涜澶勭悊"); + msg.setMarkdown(markdown); + return msg; + } + + + /** + * 閽夐拤寰呭姙浜嬩欢 + * api鍦板潃 https://open.dingtalk.com/document/orgapp/add-dingtalk-to-do-task + * unionId 閫氱煡鎵�灞炵敤鎴� + * title 鏍囬 + * unionIdList 寰呭姙閫氱煡浜哄憳闆嗗悎 + * @throws Exception + */ + public String toDoNotice(String title,List<String> unionIdList,List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> fieldList,String url) { + try{ + com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); + CreateTodoTaskHeaders createTodoTaskHeaders = new CreateTodoTaskHeaders(); + createTodoTaskHeaders.xAcsDingtalkAccessToken = getToken(); + //寰呭姙鎴鍓嶇殑鎻愰啋 + CreateTodoTaskRequest.CreateTodoTaskRequestRemindNotifyConfigs remindNotifyConfigs = new CreateTodoTaskRequest.CreateTodoTaskRequestRemindNotifyConfigs() + .setDingNotify("1") + .setSendTodoApn("true"); + //寰呭姙閫氱煡閰嶇疆 + CreateTodoTaskRequest.CreateTodoTaskRequestNotifyConfigs notifyConfigs = new CreateTodoTaskRequest.CreateTodoTaskRequestNotifyConfigs() + .setDingNotify("1") + .setSendTodoApn("true") + .setSendAssistantChat("true"); + //鎸夐挳浜嬩欢 + CreateTodoTaskRequest.CreateTodoTaskRequestActionListParam actionList0Param = new CreateTodoTaskRequest.CreateTodoTaskRequestActionListParam() + .setBody(""); + CreateTodoTaskRequest.CreateTodoTaskRequestActionList actionList0 = new CreateTodoTaskRequest.CreateTodoTaskRequestActionList() + .setTitle("鍘诲鐞�") + .setActionType(2) + .setParam(actionList0Param) + .setUrl("https://www.baidu.com") //TODO 璇︽儏鍦板潃 + .setActionKey("ak-1-1"); + //璇︽儏椤祏rl璺宠浆鍦板潃 + CreateTodoTaskRequest.CreateTodoTaskRequestDetailUrl detailUrl = new CreateTodoTaskRequest.CreateTodoTaskRequestDetailUrl() + .setAppUrl("https://www.baidu.com") + .setPcUrl("https://www.baidu.com"); + CreateTodoTaskRequest createTodoTaskRequest = new CreateTodoTaskRequest() + .setSubject(title) + .setCreatorId(unionIdList.get(Constants.ZERO)) + .setDescription(title) + .setExecutorIds(unionIdList) + .setDetailUrl(detailUrl) + .setContentFieldList(fieldList) + .setIsOnlyShowExecutor(true) + .setPriority(20) + .setNotifyConfigs(notifyConfigs) + .setActionList(java.util.Arrays.asList(actionList0)) + .setTodoType("TODO") + .setRemindNotifyConfigs(remindNotifyConfigs); + try { + CreateTodoTaskResponse response = client.createTodoTaskWithOptions(unionIdList.get(Constants.ZERO), createTodoTaskRequest, createTodoTaskHeaders, new com.aliyun.teautil.models.RuntimeOptions()); + log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response)); + return response.getBody().getId(); + } catch (TeaException err) { + if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { + log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); + } + } catch (Exception _err) { + TeaException err = new TeaException(_err.getMessage(), _err); + if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { + // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� + log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); + } + } + return null; + }catch (Exception e){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽夐拤寰呭姙浠诲姟閫氱煡鍙戦�佸け璐�"); + } + } + + + /** + * 澶勭悊鍏ㄩ儴浜虹殑寰呭姙淇℃伅 锛堟祦绋嬪鎵瑰畬鎴愩�佹湰绾у鎵瑰畬鎴� 浣跨敤锛� + * @param unionId + * @param taskId + * api鍦板潃 https://open.dingtalk.com/document/orgapp/updates-dingtalk-to-do-tasks + * @throws Exception + */ + public void updToDoNoticeInfoStatus(String unionId,String taskId){ try { - GetAccessTokenResponse getAccessTokenResponse = client.getAccessToken(getAccessTokenRequest); - - //鏇存柊Token淇℃伅 - System.out.println(JSONObject.toJSONString(getAccessTokenResponse)); - + com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); + UpdateTodoTaskHeaders updateTodoTaskHeaders = new UpdateTodoTaskHeaders(); + updateTodoTaskHeaders.xAcsDingtalkAccessToken = getToken(); + UpdateTodoTaskRequest updateTodoTaskRequest = new UpdateTodoTaskRequest() + .setOperatorId(unionId) + .setDone(true); + UpdateTodoTaskResponse response = client.updateTodoTaskWithOptions(unionId, taskId, updateTodoTaskRequest, updateTodoTaskHeaders, new RuntimeOptions()); + log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response)); } catch (TeaException err) { if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� - log.error("鏇存柊閽夐拤Token澶辫触锛歿}" + err.message); + log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); + } + } catch (Exception _err) { + TeaException err = new TeaException(_err.getMessage(), _err); + if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { + // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� + log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); + } + } + } + + /** + * 澶勭悊瀵瑰簲浜哄憳鐨勫緟鍔炰俊鎭� + * @param unionId 鍒涘缓浜簎nionId + * @param taskId 閽夐拤浠诲姟涓婚敭 + * @param dealUnionId + * api 鍦板潃 https://open.dingtalk.com/document/orgapp/update-dingtalk-to-do-status + * @throws Exception + */ + public void updUserToDoNoticeInfoStatus(String unionId,String taskId,String dealUnionId){ + try { + com.aliyun.dingtalktodo_1_0.Client client = DingTalk.createV1Client(); + UpdateTodoTaskExecutorStatusHeaders updateTodoTaskExecutorStatusHeaders = new UpdateTodoTaskExecutorStatusHeaders(); + updateTodoTaskExecutorStatusHeaders.xAcsDingtalkAccessToken = getToken(); + UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList executorStatusList0 = new UpdateTodoTaskExecutorStatusRequest.UpdateTodoTaskExecutorStatusRequestExecutorStatusList() + .setId(dealUnionId) + .setIsDone(true); + UpdateTodoTaskExecutorStatusRequest updateTodoTaskExecutorStatusRequest = new UpdateTodoTaskExecutorStatusRequest() + .setExecutorStatusList(java.util.Arrays.asList( + executorStatusList0 + )); + UpdateTodoTaskExecutorStatusResponse response = client.updateTodoTaskExecutorStatusWithOptions(unionId, taskId, updateTodoTaskExecutorStatusRequest, updateTodoTaskExecutorStatusHeaders, new RuntimeOptions()); + log.error("寰呭姙閫氱煡鍙戦�佹垚鍔燂紝鍙戦�佸唴瀹癸細{}"+JSONObject.toJSONString(response)); + } catch (TeaException err) { + if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { + // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� + log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); } } catch (Exception _err) { TeaException err = new TeaException(_err.getMessage(), _err); if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� - log.error("鏇存柊閽夐拤Token澶辫触锛歿}" + err.message); + log.error("寰呭姙閫氱煡鍙戦�佸け璐ワ紝澶辫触鍘熷洜锛歿}"+err.message); } } + } + public List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> getToDoVisitFiledInfo(Visits visits){ + List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> list = new ArrayList<>(); + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList0 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("鏉ヨ浜�") + .setFieldValue(visits.getName()); + list.add(contentFieldList0); + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList1 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("鍏ュ洯鏃堕棿") + .setFieldValue(DateUtil.getFomartDate(visits.getStarttime(),"MM-dd HH:mm")); + list.add(contentFieldList1); + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList2 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("绂诲洯鏃堕棿") + .setFieldValue(DateUtil.getFomartDate(visits.getEndtime(),"MM-dd HH:mm")); + list.add(contentFieldList2); + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList3 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("鏉ヨ浜嬬敱") + .setFieldValue(visits.getReason()); + list.add(contentFieldList3); + if(StringUtils.isNotBlank(visits.getCarNos())){ + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList4 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("闅忚杞﹁締") + .setFieldValue(visits.getCarNos()); + list.add(contentFieldList4); + } + return list; + } + + + + public List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> getToDoCarUseBookFiledInfo(CarUseBook carUseBook){ + List<CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList> list = new ArrayList<>(); + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList1 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("寮�濮嬫椂闂�") + .setFieldValue(DateUtil.getFomartDate(carUseBook.getStartTime(),"MM-dd HH:mm")); + list.add(contentFieldList1); + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList2 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("缁撴潫鏃堕棿") + .setFieldValue(DateUtil.getFomartDate(carUseBook.getEndTime(),"MM-dd HH:mm")); + list.add(contentFieldList2); + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList3 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("涔樿溅浜烘暟") + .setFieldValue(StringUtils.isBlank(carUseBook.getMemberNames())?"0浜�": (carUseBook.getMemberNames().split(",").length+"浜�")); + list.add(contentFieldList3); + CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList contentFieldList4 = new CreateTodoTaskRequest.CreateTodoTaskRequestContentFieldList() + .setFieldKey("鐢ㄨ溅鍦扮偣") + .setFieldValue(Constants.equalsInteger(carUseBook.getType(),Constants.ZERO)?"甯傚唴":"甯傚"); + list.add(contentFieldList4); + return list; + } + + + public static void main(String[] args) throws Exception { + DingTalk dingTalk = new DingTalk(); +// Visits visits = new Visits(); +// visits.setName("灏忚眴涓�"); +// visits.setStarttime(new Date()); +// visits.setEndtime(new Date()); +// visits.setReason("鍙傝"); +// visits.setCarNos("鐨朅00001"); +// dingTalk.toDoNotice("visit_01","灏忚眴涓佺殑璁垮鐢宠",java.util.Arrays.asList("iPsP86axviPHiSP4nm5YgQNCQiEiE") ,dingTalk.getToDoVisitFiledInfo(visits)); + + CarUseBook carUseBook = new CarUseBook(); + carUseBook.setStartTime(new Date()); + carUseBook.setEndTime(new Date()); + carUseBook.setMemberNames("寮犱笁,鏉庡洓,鐜嬩簲"); + carUseBook.setType(Constants.ZERO); + + +// dingTalk.workInfoOANotice(4015267031L,"1568490244651036",dingTalk.getCarUseNoticeMsg(carUseBook,"鐢ㄨ溅鐢宠")); + + + dingTalk.toDoNotice("灏忚眴涓佹彁浜ょ殑鍏姟杞︾敤杞�",java.util.Arrays.asList("iPsP86axviPHiSP4nm5YgQNCQiEiE","XiPYJKRAv9eCoO4UPM20HQQiEiE","eWbHiSp3uRtrMtiiOX5LXamgiEiE") ,dingTalk.getToDoCarUseBookFiledInfo(carUseBook),""); +// + +// dingTalk.updUserToDoNoticeInfoStatus("iPsP86axviPHiSP4nm5YgQNCQiEiE", +// "taska2d004da1f8e84847c895d14e8695102", +// "XiPYJKRAv9eCoO4UPM20HQQiEiE"); + ; +// String appKey = "dingkfglaktqmfd2dmo2";//systemDictDataBiz.queryByCode("","").getCode(); +// String appSecret = "0e22TT2s794Yj49Exgvq8nU2ulpXmxlw9ThBh5s-vDv5Cfspv-f8HPmta4cg2evk";//systemDictDataBiz.queryByCode("","").getCode(); +// Client client = DingTalk.createClient(); +// GetAccessTokenRequest getAccessTokenRequest = new GetAccessTokenRequest() +// .setAppKey(appKey) +// .setAppSecret(appSecret); +// try { +// GetAccessTokenResponse getAccessTokenResponse = client.getAccessToken(getAccessTokenRequest); +// +// //鏇存柊Token淇℃伅 +// System.out.println(JSONObject.toJSONString(getAccessTokenResponse)); +// +// } catch (TeaException err) { +// if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { +// // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� +// log.error("鏇存柊閽夐拤Token澶辫触锛歿}" + err.message); +// } +// +// } catch (Exception _err) { +// TeaException err = new TeaException(_err.getMessage(), _err); +// if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) { +// // err 涓惈鏈� code 鍜� message 灞炴�э紝鍙府鍔╁紑鍙戝畾浣嶉棶棰� +// log.error("鏇存柊閽夐拤Token澶辫触锛歿}" + err.message); +// } +// } + } } -- Gitblit v1.9.3