import com.alibaba.fastjson.JSONObject; import com.malk.jiuyousimu.Boot; import com.malk.jiuyousimu.service.Impl.DeptServiceImpl; import com.malk.server.aliwork.YDConf; import com.malk.server.aliwork.YDParam; import com.malk.server.dingtalk.DDConf; import com.malk.service.aliwork.YDClient; import com.malk.service.dingtalk.*; import com.malk.utils.UtilMap; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.*; @Slf4j @RunWith(SpringRunner.class) @SpringBootTest(classes = Boot.class) public class test { @Autowired private DDConf ddConf; @Autowired private DDClient_Event ddClient_event; @Autowired private DDClient ddClient; @Autowired private DeptServiceImpl payService; @Autowired private DDClient_Workflow ddClient_workflow; @Value("${dingtalk.appKey}") private String APP_EKY; @Value("${dingtalk.appSecret}") private String APP_SECRET; @Autowired private YDClient ydClient; @Autowired private DDClient_Contacts ddClient_contacts; @Test public void sonUpdateTest(){ // Map processData = ddClient_workflow.getProcessInstanceId(ddClient.getAccessToken(APP_EKY, APP_SECRET), "Zd7HDIdGTkiGFFtsoHkg3A03891763390051"); // // System.out.println(processData); // DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // Map formData = ydClient.queryData(YDParam.builder() // .appType("APP_PG9VWQVT23CRFBOOOG6Y") // .systemToken("73D66971EQO1KI40NT9M96FHV3BK3CZNBQGJMWX1") // .formInstanceId("5f507775-7387-436e-ade7-78243d75c311") // .useLatestVersion(true) // .build(), // YDConf.FORM_QUERY.retrieve_id).getFormData(); //// syncDept(98604036,false); // LocalDate today = LocalDate.now().plusDays(1); // String dateStr = today.format(formatter); // long timestamp = today.atStartOfDay(ZoneId.systemDefault()) // .toInstant() // .toEpochMilli(); // System.out.println(timestamp); } public void syncDept(long deptId,boolean isNeedKS){ List list = ddClient_contacts.listSubDepartmentDetail(ddClient.getAccessToken(), deptId); for (Map map : list) { System.out.println(map.toString()); long subDeptId = UtilMap.getLong(map,"dept_id"); String subDeptName = UtilMap.getString(map,"name"); String selectField_mjgj9non = "班组"; Map formData=new HashMap(); if(isNeedKS){ syncDept(subDeptId,false); selectField_mjgj9non = "室"; }else { formData.put("radioField_mke10pcc",subDeptName.contains("外包")?"外包":"班组"); } List strings = ddClient_contacts.listDepartmentUserId(ddClient.getAccessToken(), subDeptId); List admins =new ArrayList<>(); for(String string : strings){ Map userInfo = ddClient_contacts.getUserInfoById(ddClient.getAccessToken(), string); List leader_in_dept = UtilMap.getList(userInfo,"leader_in_dept"); for(Map leader : leader_in_dept){ if(UtilMap.getString(leader,"dept_id").equals(String.valueOf(subDeptId))&&UtilMap.getBoolean(leader,"leader")){ admins.add(string); } } } formData.put("selectField_mjgj9non",selectField_mjgj9non); formData.put("employeeField_mjgj9noh",admins); formData.put("departmentSelectField_mjgj9noi", Arrays.asList(String.valueOf(subDeptId))); formData.put("departmentSelectField_mjgqcjsw",Arrays.asList(String.valueOf(deptId))); formData.put("radioField_mjgsdrat","开启"); System.out.println(formData.toString()); ydClient.operateData(YDParam.builder().appType("APP_PG9VWQVT23CRFBOOOG6Y") .systemToken("73D66971EQO1KI40NT9M96FHV3BK3CZNBQGJMWX1").formUuid("FORM-651D1713A25E423FB4EC1A5A06A7A741QWEY").formDataJson(JSONObject.toJSONString(formData)).build(), YDConf.FORM_OPERATION.create); } } }