wzy преди 3 седмици
родител
ревизия
30a66e026b
променени са 1 файла, в които са добавени 17 реда и са изтрити 1 реда
  1. 17 1
      src/main/java/com/malk/pro/zyjn/service/impl/TongbuServiceImpl.java

+ 17 - 1
src/main/java/com/malk/pro/zyjn/service/impl/TongbuServiceImpl.java

@@ -22,9 +22,11 @@ import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
 import com.malk.server.common.McException;
 import com.malk.server.common.McR;
+import com.malk.server.dingtalk.DDConf;
 import com.malk.server.dingtalk.DDR_New;
 import com.malk.service.aliwork.YDClient;
 import com.malk.service.dingtalk.DDClient;
+import com.malk.service.dingtalk.DDClient_Contacts;
 import com.malk.service.dingtalk.DDClient_Schedule;
 import com.malk.utils.UtilHttp;
 import com.malk.utils.UtilMap;
@@ -54,6 +56,9 @@ public class TongbuServiceImpl implements TongbuService {
     @Autowired
     private YDClient ydClient;
 
+    @Autowired
+    private DDClient_Contacts ddClient_contacts;
+
     public static com.aliyun.dingtalkcalendar_1_0.Client createClient() throws Exception {
         com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
         config.protocol = "https";
@@ -669,7 +674,18 @@ public class TongbuServiceImpl implements TongbuService {
             String roomId = jsonObject.getString("textField_mccrafms");
             if (StringUtils.isNoneBlank(roomId)) {
                 try {
-                    ddClient_schedule.bookMeetingRoom(getAccessToken(), userId, richengID, Arrays.asList(roomId));
+                    //todo 2026/05/29 base包预定会议室接口 把 Stream 对象直接包装进了 new Object[]{},Stream 是惰性求值的中间对象,不会自动执行。会变成类似ReferencePipeline$3@7912的未执行完的 Stream 实例,导致报错The value of parameter meetingRoomsToAdd is not array.
+//                    ddClient_schedule.bookMeetingRoom(getAccessToken(), userId, richengID, Arrays.asList(roomId));
+
+                    String unionId = String.valueOf(ddClient_contacts.getUserInfoById(getAccessToken(), userId).get("unionid"));
+
+                    Map body = UtilMap.map("meetingRoomsToAdd",
+                            Arrays.asList(roomId).stream().map(item -> UtilMap.map("roomId", item))
+                                    .collect(Collectors.toList())
+                    );
+
+                    DDR_New.doPost("https://api.dingtalk.com/v1.0/calendar/users/" + unionId + "/calendars/primary/events/" + richengID + "/meetingRooms", DDConf.initTokenHeader(getAccessToken()), (Map)null, body);
+
                 } catch (McException e) {
                     mapData.put("textareaField_mccs33fz", e.getMessage());
                     e.printStackTrace();