sync2zhengWuDingDing.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*
  2. * resources.getEntityManagerContainer() // 实体管理容器.
  3. * resources.getContext() //上下文根.
  4. * resources.getOrganization() //组织访问接口.
  5. * requestText //请求内容.
  6. * request //请求对象.
  7. */
  8. var type = 'zhengwuDingdingMessage';
  9. var resp = resources.getContext().applications().getQuery(com.x.base.core.project.x_message_assemble_communicate.class,
  10. 'consume/list/' + type + '/count/100');
  11. var messages = resp.getDataAsList(com.x.message.core.entity.Message.class);
  12. for (var i in messages) {
  13. var message = messages[i];
  14. switch (message.getType()) {
  15. case 'task_create':
  16. if (com.x.base.core.project.config.Config.zhengwuDingding().getTaskToMessage()) {
  17. var person = resources.getOrganization().person().getObject(message.getPerson());
  18. var body = JSON.parse(message.getBody());
  19. if (body) {
  20. if (person) {
  21. if (person.getZhengwuDingdingId()) {
  22. var txt = '您有新的待办需要处理:' + body['title'] + '.';
  23. send('184707353', person.getZhengwuDingdingId(), txt);
  24. print('发送政务钉钉待办消息,通知对象: ' + message.getPerson() + '(' + person.getZhengwuDingdingId() + '), 消息:' + txt + '.');
  25. } else {
  26. print('发送政务钉钉待办消息失败,通知对象' + message.getPerson() + ' 无法获取政务钉钉id.');
  27. }
  28. } else {
  29. print('发送政务钉钉待办消息失败,通知对象' + message.getPerson() + ' 不存在.');
  30. }
  31. } else {
  32. print('发送政务钉钉待办消息失败,通知对象' + message.getPerson() + ' 无法获取消息对象.');
  33. }
  34. }
  35. break;
  36. case 'taskCompleted_create':
  37. if (com.x.base.core.project.config.Config.zhengwuDingding().getTaskCompletedToMessage()) {
  38. var person = resources.getOrganization().person().getObject(message.getPerson());
  39. var body = JSON.parse(message.getBody());
  40. if (body) {
  41. if (person) {
  42. if (person.getZhengwuDingdingId()) {
  43. var txt = '您的待办已经处理完成:' + body['title'] + '.';
  44. send('184707353', person.getZhengwuDingdingId(), txt);
  45. print('发送政务钉钉已办消息,通知对象: ' + message.getPerson() + '(' + person.getZhengwuDingdingId() + '), 消息:' + txt + '.');
  46. } else {
  47. print('发送政务钉钉已办消息失败,通知对象' + message.getPerson() + ' 无法获取政务钉钉id.');
  48. }
  49. } else {
  50. print('发送政务钉钉已办消息失败,通知对象' + message.getPerson() + ' 不存在.');
  51. }
  52. } else {
  53. print('发送政务钉钉待办消息失败,通知对象' + message.getPerson() + ' 无法获取消息对象.');
  54. }
  55. }
  56. break;
  57. case 'read_create':
  58. if (com.x.base.core.project.config.Config.zhengwuDingding().getReadToMessage()) {
  59. var person = resources.getOrganization().person().getObject(message.getPerson());
  60. var body = JSON.parse(message.getBody());
  61. if (body) {
  62. if (person) {
  63. if (person.getZhengwuDingdingId()) {
  64. var txt = '您有新的待阅需要处理:' + body['title'] + '.';
  65. send('184707353', person.getZhengwuDingdingId(), txt);
  66. print('发送政务钉钉待阅消息,通知对象: ' + message.getPerson() + '(' + person.getZhengwuDingdingId() + '), 消息:' + txt + '.');
  67. } else {
  68. print('发送政务钉钉待阅消息失败,通知对象' + message.getPerson() + ' 无法获取政务钉钉id.');
  69. }
  70. } else {
  71. print('发送政务钉钉待阅消息失败,通知对象' + message.getPerson() + ' 不存在.');
  72. }
  73. } else {
  74. print('发送政务钉钉待办消息失败,通知对象' + message.getPerson() + ' 无法获取消息对象.');
  75. }
  76. }
  77. break;
  78. case 'readCompleted_create':
  79. if (com.x.base.core.project.config.Config.zhengwuDingding().getReadCompletedToMessage()) {
  80. var person = resources.getOrganization().person().getObject(message.getPerson());
  81. var body = JSON.parse(message.getBody());
  82. if (body) {
  83. if (person) {
  84. if (person.getZhengwuDingdingId()) {
  85. var txt = '您的待阅已经处理完成:' + body['title'] + '.';
  86. send('184707353', person.getZhengwuDingdingId(), txt);
  87. print('发送政务钉钉已阅消息,通知对象: ' + message.getPerson() + '(' + person.getZhengwuDingdingId() + '), 消息:' + txt + '.');
  88. } else {
  89. print('发送政务钉钉已阅消息失败,通知对象' + message.getPerson() + ' 无法获取政务钉钉id.');
  90. }
  91. } else {
  92. print('发送政务钉钉已阅消息失败,通知对象' + message.getPerson() + ' 不存在.');
  93. }
  94. } else {
  95. print('发送政务钉钉待办消息失败,通知对象' + message.getPerson() + ' 无法获取消息对象.');
  96. }
  97. }
  98. break;
  99. default:
  100. system.print('未知的消息类型: ' + message.getType() + ' , title: ' + message.getTitle() + '.');
  101. break;
  102. }
  103. consume(message.getId(), type);
  104. }
  105. function send(agentId, user, message) {
  106. var body = '{"agentId":"agentId","touser":"' + 'touser' + '","toparty": "","msgtype":"text","context":"' + message + '"}';
  107. var address = com.x.base.core.project.config.Config.zhengwuDingding().getOapiAddress() + "/ent_message/send?access_token=" + com.x.base.core.project.config.Config.zhengwuDingding().appAccessToken();
  108. com.x.base.core.project.connection.HttpConnection.postAsString(address, null, body);
  109. }
  110. function consume(id, type) {
  111. resources.getContext().applications().getQuery(com.x.base.core.project.x_message_assemble_communicate.class,
  112. 'consume/' + id + '/type/' + type);
  113. }