浏览代码

11.5契约锁最后更新

“lqy 9 月之前
父节点
当前提交
b628513cb6

+ 19 - 1
mjava-ruisi/src/main/java/com/malk/ruisi/controller/CosController.java

@@ -99,15 +99,33 @@ public class CosController {
         log.info("工作台数据, {}", data);
         return rsService.getPortalList("规章制度");
     }
+
+    @GetMapping("hzmh/byType")
+    public void hzmhByType() {
+        try {
+            rsService.getDataList();
+
+        } catch (Exception e) {
+            // 记录错误信息
+            e.printStackTrace();
+        }
+    }
     /// 流程分享权限 1. 发起人可操作权限 2. 配置弹出框在可编辑权限
     @PostMapping("share/record")
     McR shareRecord(@RequestParam String processInstanceId, @RequestBody Map data) {
 
         log.info("流程分享权限, {}, {}", processInstanceId, data);
         rsService.shareRecord(processInstanceId, data);
+        return McR.success();
+    }
 
+    /// 获取审批节点 1. 未到达审批前权限问题, 2. 抄送人\审批人不能评论权限问题, 3. 或签非审批操作人无打印权限问题
+    @PostMapping("approval/record")
+    McR approvalRecord(@RequestParam String processInstanceId, @RequestBody Map data) {
 
+        log.info("获取审批节点, {}, {}", processInstanceId, data);
 
-        return McR.success();
+        Map map = rsService.approvalRecord(processInstanceId, data);
+        return McR.success(map);
     }
 }

+ 205 - 46
mjava-ruisi/src/main/java/com/malk/ruisi/controller/QysHuiDaoController.java

@@ -4,6 +4,8 @@ package com.malk.ruisi.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+
+
 import com.malk.ruisi.service.QysService;
 import com.malk.ruisi.service.RsQysService;
 import com.malk.ruisi.service.impl.dingshiqiImpl;
@@ -12,13 +14,16 @@ 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.aliwork.YDService;
 import com.malk.service.dingtalk.DDClient;
+import com.malk.service.dingtalk.DDClient_Contacts;
 import com.malk.utils.UtilHttp;
 import com.malk.utils.UtilMap;
+import com.malk.utils.UtilServlet;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.xmlbeans.impl.jam.mutable.MClass;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.Resource;
 import org.springframework.core.io.UrlResource;
@@ -27,6 +32,7 @@ import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.nio.file.Path;
@@ -86,61 +92,138 @@ public class QysHuiDaoController {
     }
     @Autowired
     private YDService ydService;
+
+    @PostMapping("/success")
+    McR rsuccess(HttpServletRequest request){
+        Map<String,?> data = UtilServlet.getParamMap(request);
+        log.info("请假成功:{}",JSON.toJSONString(data));
+        return McR.success();
+    }
+    @Autowired
+    private DDClient_Contacts ddClient_contacts;
+    //获取用户邮箱信息
+    @GetMapping("/test22")
+    public McR test22() throws Exception {
+        String userId = "722";
+
+        String org_email = "";
+        if (StringUtils.isNotBlank(userId)) {
+//            String[] userIds = userId.split(",");
+//            String yzsyzid2 = userIds[0];
+            Map userInfoByMobile1 = ddClient_contacts.getUserInfoById(ddClient.getAccessToken(), userId);
+            org_email = String.valueOf(userInfoByMobile1.get("org_email"));
+            log.info("userInfo:{},org_email:{}", userInfoByMobile1,org_email);
+            ydClient.operateData(YDParam.builder()
+                    .formInstId("aa6db5e6-e81b-4fcd-937b-ad78d8ce75cd")
+                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_m2sgwol5",org_email)))
+                    .build(), YDConf.FORM_OPERATION.update);
+        }
+        return McR.success(userId);
+    }
 //更新表单字段
     @GetMapping("/test20")
     McR test12() {
         ydClient.operateData(YDParam.builder()
-                .formInstanceId("9f32c151-956d-4f4a-a175-c31cbcc8c905")
-                .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("departmentSelectField_lys0k6qb",Arrays.asList("154981944"))))
+                .formInstanceId("a8b1bfa9-ab69-47f0-aa09-083483e177bc")
+                .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("associationFormField_lvz3j6lr",Arrays.asList(getAss("物理用印公司用印场景","FINST-5V766V61BVZKFD1C68KB14U69RMR3TXGWM4WL1XN1")))))
+//                .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("textField_ltwe0wyb, textField_lvz3j6ls","物理用印公司用印场景, 2731787510660432675")))
                         .useLatestVersion(true)
                         .build(), YDConf.FORM_OPERATION.update);
         return McR.success();
     }
-    @GetMapping("/test21")
-    McR test21() {
-        String formInstanceId = "644298b7-6503-4576-a9f5-bb520bbe752d";//请假表单实例ID
-        String userId = "1006793";
+    //更新表单字段
+    @PostMapping("/test30")
+    McR test13(@RequestBody Map data) {
+        String  ins = String.valueOf(data.get("ins"));
+
+        ydClient.operateData(YDParam.builder()
+
+                .formInstanceId(ins)
+       //         .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("associationFormField_lu0u6npd",Arrays.asList(getAss("上海领语堂培训学校有限公司 公章","FINST-9Z766DC18KCP57M49WZHHDDAD8ST236FYJ42M0C")))))
+//               .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("textField_lvz1kozg, textField_lvm5xmqe, textField_lvz1kozf","多方电子用印(企业)(对方先签), 2741605538270839198, 上海领语堂培训学校有限公司")))
+//               .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("departmentSelectField_lys0k6qb",Arrays.asList("527436269"))))
+               .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("textField_lvzz59hn","2911560302743331144")))
+                .useLatestVersion(true)
+                .build(), YDConf.FORM_OPERATION.update);
+        return McR.success();
+    }
+    private Object getAss(String title,String id){
+        return UtilMap.map("appType, formUuid, formType, instanceId, title, subTitle","APP_VCTRP6227CC8368NDOID","FORM-417576F4EE9F4AA1B2395BCD93B7A08C8ASN","receipt",id,title,"");
+    }
+        @PostMapping("/test21")
+        McR test21(@RequestBody Map data) {
+//            String formInstanceId = "3d1368b1-1d8a-49c7-8cf1-6b3d555105c6";//请假表单实例ID
+//            String userId = "1004909";
+            String  formInstanceId = String.valueOf(data.get("formInstanceId"));
+            String  userId = String.valueOf(data.get("userId"));
+            Map formData = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId)
+                    .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
+                    .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
+            List  employeeField_lts1mg30_id = (List) formData.get("employeeField_lts1mg30_id");
+            List  departmentSelectField_lts1mg2z_id = (List) formData.get("departmentSelectField_lts1mg2z_id");
+            List  departmentSelectField_lys0k6qb_id = (List) formData.get("departmentSelectField_lys0k6qb_id");
+    //
+            System.out.println("=="+employeeField_lts1mg30_id);
+            formData.put("employeeField_lts1mg30", employeeField_lts1mg30_id);
+            formData.put("departmentSelectField_lts1mg2z", departmentSelectField_lts1mg2z_id);
+            formData.put("departmentSelectField_lys0k6qb", departmentSelectField_lys0k6qb_id);
+
+            System.out.println(formData);
+            ydClient.operateData(YDParam.builder()
+                    .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
+                    .formUuid("FORM-A02F7EA3AD6548E59B8E1692AD729C77C5LD")
+                    .userId(userId)
+                    .formDataJson(JSON.toJSONString(formData))
+                    .build(), YDConf.FORM_OPERATION.start).toString();////
+            return McR.success(formData);
+        }
+    @PostMapping("/test22")
+    McR test22(@RequestBody Map data ) {
+//        String formInstanceId = "d738e145-e0ca-4b1e-87c8-d278330041b7";//离职单
+//        String userId = "1007210";
+        String  formInstanceId = String.valueOf(data.get("formInstanceId"));
+        String  userId = String.valueOf(data.get("userId"));
         Map formData = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId)
                 .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
                 .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
-        List  employeeField_lts1mg30_id = (List) formData.get("employeeField_lts1mg30_id");
-        List  departmentSelectField_lts1mg2z_id = (List) formData.get("departmentSelectField_lts1mg2z_id");
-//        List  departmentSelectField_lys0k6qb_id = (List) formData.get("departmentSelectField_lys0k6qb_id");
-//
-        System.out.println("=="+employeeField_lts1mg30_id);
-        formData.put("employeeField_lts1mg30", employeeField_lts1mg30_id);
-        formData.put("departmentSelectField_lts1mg2z", departmentSelectField_lts1mg2z_id);
-//        formData.put("departmentSelectField_lys0k6qb", departmentSelectField_lys0k6qb_id);
-
+        List  employeeField_lts8k71n_id = (List) formData.get("employeeField_lts8k71n_id");
+        List  departmentSelectField_lts8k71m_id = (List) formData.get("departmentSelectField_lts8k71m_id");
+        List  departmentSelectField_lx9uj3ds_id = (List) formData.get("departmentSelectField_lx9uj3ds_id");
+           List  employeeField_lwt3bde4_id = (List) formData.get("employeeField_lwt3bde4_id");
+//        System.out.println("=="+employeeField_lts1mg30_id);
+        formData.put("employeeField_lts8k71n", employeeField_lts8k71n_id);
+        formData.put("departmentSelectField_lts8k71m", departmentSelectField_lts8k71m_id);
+        formData.put("departmentSelectField_lx9uj3ds", departmentSelectField_lx9uj3ds_id);
+        formData.put("employeeField_lwt3bde4", employeeField_lwt3bde4_id);
         System.out.println(formData);
         ydClient.operateData(YDParam.builder()
                 .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
-                .formUuid("FORM-A02F7EA3AD6548E59B8E1692AD729C77C5LD")
+                .formUuid("FORM-2C6A3F5B7A194F2390A5BA9677055295XVHL")
                 .userId(userId)
                 .formDataJson(JSON.toJSONString(formData))
                 .build(), YDConf.FORM_OPERATION.start).toString();////
         return McR.success(formData);
     }
-    @GetMapping("/test22")
-    McR test22() {
-        String formInstanceId = "d738e145-e0ca-4b1e-87c8-d278330041b7";
-        String userId = "1007210";
+    @GetMapping("/test25")
+    McR test25() {
+        String formInstanceId = "92c69cfe-c8f8-476b-bd34-58aefc19abcb";//it07
+        String userId = "1003682";
         Map formData = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId)
                 .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
                 .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
-        List  employeeField_lts8k71n_id = (List) formData.get("employeeField_lts8k71n_id");
-        List  departmentSelectField_lts8k71m_id = (List) formData.get("departmentSelectField_lts8k71m_id");
-        List  departmentSelectField_lx9uj3ds_id = (List) formData.get("departmentSelectField_lx9uj3ds_id");
+        List  employeeField_lts8k71n_id = (List) formData.get("employeeField_lu7zrcj3_id");
+        List  departmentSelectField_lts8k71m_id = (List) formData.get("departmentSelectField_lu7zrcj4_id");
+        List  departmentSelectField_lx9uj3ds_id = (List) formData.get("departmentSelectField_lyr15lez_id");
 //           List  employeeField_lwt3bde4_id = (List) formData.get("employeeField_lwt3bde4_id");
 //        System.out.println("=="+employeeField_lts1mg30_id);
-        formData.put("employeeField_lts8k71n", employeeField_lts8k71n_id);
-        formData.put("departmentSelectField_lts8k71m", departmentSelectField_lts8k71m_id);
-        formData.put("departmentSelectField_lx9uj3ds", departmentSelectField_lx9uj3ds_id);
+        formData.put("employeeField_lu7zrcj3", employeeField_lts8k71n_id);
+        formData.put("departmentSelectField_lu7zrcj4", departmentSelectField_lts8k71m_id);
+        formData.put("departmentSelectField_lyr15lez", departmentSelectField_lx9uj3ds_id);
 //        formData.put("employeeField_lwt3bde4", employeeField_lwt3bde4_id);
         System.out.println(formData);
         ydClient.operateData(YDParam.builder()
                 .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
-                .formUuid("FORM-2C6A3F5B7A194F2390A5BA9677055295XVHL")
+                .formUuid("FORM-0AD770FAD54A47CA938A9D338C6FBB1BZ7AH")
                 .userId(userId)
                 .formDataJson(JSON.toJSONString(formData))
                 .build(), YDConf.FORM_OPERATION.start).toString();////
@@ -171,17 +254,33 @@ public class QysHuiDaoController {
                 .build(), YDConf.FORM_OPERATION.start).toString();////
         return McR.success(formData);
     }
+
+    @GetMapping("/test61")
+    public McR test15() throws Exception {
+        Map formData = ydClient.queryData(YDParam.builder().formInstId("b9a7515d-70f3-4a38-b81a-9e126f0c6bb4")
+                .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
+                .userId(ddConf.getOperator()).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
+        JSONArray tableField_m29vcuas = (JSONArray) formData.get("tableField_m29vcuas");
+        for (int i = 0; i < tableField_m29vcuas.size(); i++) {
+            JSONObject o = (JSONObject) tableField_m29vcuas.get(i);
+            System.out.println(o.get("employeeField_m2cy3eg0_id"));
+
+        }
+
+        return McR.success(formData);
+    }
     //刷新页面为最新版本
     @GetMapping("/test6")
     public McR test6() throws Exception {
         List<Map> datalist = ydService.queryFormData_all(YDParam.builder()
-                        .formUuid("FORM-2C6A3F5B7A194F2390A5BA9677055295XVHL")
+                        .formUuid("FORM-2C10C625AF2D456F93852DFEAEBF9C349IQA")
                         .build()
                 );
         for (Map map : datalist) {
             ydClient.operateData(YDParam.builder()
                     .useLatestVersion(true)
                     .formInstanceId(UtilMap.getString(map, "formInstanceId"))
+//                    .formInstanceId("a5b23b72-c450-4ffe-83b0-a5a59a3cbaa4")
                     .updateFormDataJson(JSONObject.toJSONString(new HashMap<>()))
                     .build(), YDConf.FORM_OPERATION.update);
         }
@@ -371,6 +470,63 @@ public class QysHuiDaoController {
 //        }
 return "success";
     }
+    @GetMapping("/test32")
+    public McR test32() throws Exception {
+//        ArrayList<Object> objects = new ArrayList<>();
+//        objects.add("722");
+//        objects.add("1006660");
+//        System.out.println(objects);
+//        for (Object obj : objects) {
+//            System.out.println(obj);
+//            DDR_New ddrNew = (DDR_New) UtilHttp.doPost("https://oapi.dingtalk.com/topapi/v2/user/get", null, ddClient.initTokenParams(), UtilMap.map("userid", obj), DDR_New.class);
+//            System.out.println("==="+ddrNew);
+//            Object result = ddrNew.getResult();
+//            if (result != null) {
+//                JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(result));
+//                String mobile = jsonObject.getString("orgEmail");
+//                System.out.println("mobile====="+mobile);
+//            }
+//            System.out.println("11"+result);
+//
+//        }
+        Map userInfoById = ddClient_contacts.getUserInfoById(ddClient.getAccessToken(), "1006660");
+        String org_email = String.valueOf(userInfoById.get("org_email"));
+        return McR.success(org_email);
+    }
+    @GetMapping("/test33")
+    public McR test33() throws Exception {
+        List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
+                .formUuid("FORM-11B80FC621CA4DB9A35364CFBFF7287538KR")
+                .build());
+        dataList.forEach(data -> {
+            if ("未启用".equals(UtilMap.getString(data, "radiofield_MMa26Yu4"))) {
+                String userId = UtilMap.getString(data, "textField_lztc6k3k");
+                String message = "";
+                try {
+                    this.delectExclusiveUser(userId);
+                } catch (McException e) {
+                    message = e.getMessage();
+                    log.error(e.getMessage(), e);
+                }
+//                ydClient.operateData(YDParam.builder()
+//                        .formInstanceId(UtilMap.getString(data, "instanceId"))
+//                        .useLatestVersion(true)
+//                        .updateFormDataJson(JSON.toJSONString(UtilMap.map("radioField_m0hlup9w, employeeField_m0hlup9v, textareaField_m0hs4k90", "是", Arrays.asList(userId), message)))
+//                        .build(), YDConf.FORM_OPERATION.update);
+            }
+        });
+        return McR.success(dataList);
+    }
+
+    private void delectExclusiveUser(String userId) throws McException {
+        Map param2 = new HashMap();
+        param2.put("access_token", dingshiqiImpl.getAccessToken_PJSS());
+        Map body = new HashMap();
+        body.put("userid", userId);
+        String s = UtilHttp.doGet("https://oapi.dingtalk.com/topapi/v2/user/delete", param2, (Map<String, Object>) body);
+        JSONObject obj = JSONObject.parseObject(s);
+        JSONArray arr = obj.getJSONArray("result");
+    }
     @GetMapping("/test2")
     public String test2() throws Exception {
         dingshiqiImpl dingshiqi = new dingshiqiImpl();
@@ -383,34 +539,37 @@ return "success";
 //                .build(), YDConf.FORM_QUERY.retrieve_list).getData();
 //        Map map = list1.get(0);
 //        String instanceId = (String) map.get("formInstanceId");
-        String instanceId = "68b97e35-4707-4cd5-bff8-c5118e2db4ce";
+        String instanceId = "b3f6533c-d247-4355-82e7-4c6868c7b042";
         Map param2 = new HashMap();
         param2.put("x-acs-dingtalk-access-token", dingshiqi.getAccessToken_PJSS());
         Map body3 = new HashMap();
         body3.put("appType","APP_VCTRP6227CC8368NDOID");
         body3.put("systemToken","5H9662C1X8XJLFFCE841M5VBEBQ73DM5IBPULPI3");
         body3.put("processInstanceId", instanceId);
-        body3.put("userId","15099924886");
+        body3.put("userId","1006781");
         boolean flag=true;
         do {
             String s = UtilHttp.doGet("https://api.dingtalk.com/v1.0/yida/processes/operationRecords", param2, (Map<String, Object>) body3);
             JSONObject obj=JSONObject.parseObject(s);
             JSONArray arr = obj.getJSONArray("result");
-            for (int i = 0; i < arr.size(); i++) {
-                JSONObject json = arr.getJSONObject(i);
-                flag=false;
-//                if(json.getString("operatorUserId").equals("13810479803")&&json.getString("type").equals("TODO")){
-                    try {
-                        taskExecute(instanceId,json.getString("taskId"));
-                    }catch (McException e){
-                        log.error("taskExecute error:{}",e.getMessage());
-                    }
-
-                    flag=true;
-                    break;
-
-//                }
-            }
+            System.out.println(arr);
+            flag = true;
+            break;
+//            for (int i = 0; i < arr.size(); i++) {
+//                JSONObject json = arr.getJSONObject(i);
+//                flag=false;
+////                if(json.getString("operatorUserId").equals("13810479803")&&json.getString("type").equals("TODO")){
+//                    try {
+//                        taskExecute(instanceId,json.getString("taskId"));
+//                    }catch (McException e){
+//                        log.error("taskExecute error:{}",e.getMessage());
+//                    }
+//
+//                    flag=true;
+//                    break;
+//
+////                }
+//            }
         }while (flag);
         return "success";
     }

+ 18 - 2
mjava-ruisi/src/main/java/com/malk/ruisi/controller/RSScheduleTask.java

@@ -1,5 +1,6 @@
 package com.malk.ruisi.controller;
 
+import cn.hutool.http.HttpUtil;
 import com.malk.ruisi.service.RSService;
 import com.malk.ruisi.service.impl.RSImplService;
 import lombok.extern.slf4j.Slf4j;
@@ -36,14 +37,29 @@ public class RSScheduleTask {
             e.printStackTrace();
         }
     }
-    /// 数据缓存 + 图片缓存, 10 分钟更新一次
+    /**
+     * 每天凌晨6点同步
+     * 删除供应商账号
+     */
+    @Scheduled(cron = "0 0 6 * * ? ")
+    public void syncDingTalkFailedListDelect() {
+        try {
+            rsService.syncDingTalk_delect();
+        } catch (Exception e) {
+            // 记录错误信息
+            e.printStackTrace();
+        }
+    }
+//    /// 数据缓存 + 图片缓存, 10 分钟更新一次
     private Map portal_cache = new HashMap();
 
 //    @Scheduled(cron = "0 0 5 * * ? ")
-    @Scheduled(cron = "0 */8 * * * ?")
+    @Scheduled(cron = "0 */5 * * * ?")
+
     public void hzmhByType() {
         try {
             rsService.getDataList();
+//            HttpUtil.get("http://aservice.risechina.com:9020/ruisi/hzmh/byType");
 //            portal_cache = new HashMap();
 //            rsService.getPortalList("财务专区");
 //            rsService.getPortalList("公司头条");

+ 4 - 4
mjava-ruisi/src/main/java/com/malk/ruisi/controller/ScheduleTask.java

@@ -47,8 +47,8 @@ public class ScheduleTask {
     /**
      * 每月查询业务ID
      */
-    @Scheduled(cron = "0 23 12 * * ?")
-//    @Scheduled(cron = "0 0 4 * * ?")
+//    @Scheduled(cron = "0 23 12 * * ?")
+    @Scheduled(cron = "0 0 4 * * ?")
     public void syncRecruitSource() {
         try {
             System.out.println("开始上传业务ID");
@@ -65,7 +65,7 @@ public class ScheduleTask {
      * 每月查询物理印章ID
      */
     @Scheduled(cron = "0 45 3 * * ?")
-//    @Scheduled(cron = "0 26 11 * * ?")
+//    @Scheduled(cron = "0 49 13 * * ?")
 //   @Scheduled(cron = "0/1 * * * * ?")
     public void syncRecruitSource1() {
         try {
@@ -205,7 +205,7 @@ public class ScheduleTask {
      * //
      */
     @Scheduled(cron = "0 30 3 * * ?")
-//    @Scheduled(cron = "0 48 14 * * *")
+//    @Scheduled(cron = "0 41 17 * * *")
     public void syncRecruitSource2() {
         try {
             System.out.println("开始上传电子印章ID");

+ 6 - 0
mjava-ruisi/src/main/java/com/malk/ruisi/service/RSService.java

@@ -1,5 +1,7 @@
 package com.malk.ruisi.service;
 
+import com.malk.server.common.McR;
+
 import java.util.List;
 import java.util.Map;
 
@@ -21,4 +23,8 @@ public interface RSService {
     void getDataList();
 
     void shareRecord(String processInstanceId,Map data);
+
+    Map approvalRecord(String processInstanceId, Map data);
+
+    void syncDingTalk_delect();
 }

+ 135 - 5
mjava-ruisi/src/main/java/com/malk/ruisi/service/impl/RSImplService.java

@@ -1,16 +1,20 @@
 package com.malk.ruisi.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.malk.ruisi.service.RSService;
 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.DDR_New;
 import com.malk.service.aliwork.YDClient;
 import com.malk.service.aliwork.YDService;
 import com.malk.service.dingtalk.DDClient;
 import com.malk.service.dingtalk.DDClient_Contacts;
 import com.malk.utils.UtilDateTime;
+import com.malk.utils.UtilHttp;
 import com.malk.utils.UtilMap;
 import com.malk.utils.UtilServlet;
 import lombok.extern.slf4j.Slf4j;
@@ -44,6 +48,8 @@ public class RSImplService implements RSService {
     @Autowired
     private static final long DEPT_ID = 933074211L; // 合作加盟校区
 
+    /// 数据缓存 + 图片缓存, 10 分钟更新一次
+    private Map portal_cache = new HashMap();
 
     /// 创建企业账号: loginI/userId 都为 SHR 工号
     private void createExclusiveUser(String loginId, String name) {
@@ -115,13 +121,58 @@ public class RSImplService implements RSService {
     @Override
     public void shareRecord(String processInstanceId,Map data) {
         // 执行分享逻辑 [ 拼接后的权限组 ]
-        McException.assertParamException_Null(data, "compId, userIds, userId, content");
+        McException.assertParamException_Null(data, "compId, userIds, userId, content, atUserId");
+        //开始抓取宜搭对应的子表数据
+        String mapss = null;
+        ArrayList<Map<String,String>> maps_YD = new ArrayList<>();
+//        cn.hutool.json.JSONArray jsonArray_YDZB =null;
+        DDR_New ddrNew1 = ydClient.queryData(YDParam.builder().formInstanceId(processInstanceId).build()
+                , YDConf.FORM_QUERY.retrieve_id);
+        Map  data1 =  ddrNew1.getFormData();
+        List<Map> list = new ArrayList<>();
+        if (data1.get("tableField_m2cx8zh5") != null){
+            list = (List<Map>) data1.get("tableField_m2cx8zh5");
+        }
+//         jsonArray_YDZB = new cn.hutool.json.JSONArray(mapss);
+        Map sss=new HashMap<>();
+        sss.put("employeeField_m2cx8zh6",data.get("atUserId").toString().split(","));
+        sss.put("textareaField_m2cx8zh7",data.get("content"));
+        //原有数据
+        for (int i = 0; i < list.size(); i++) {
+            Map sss2 = new HashMap();
+            Map map = (Map) list.get(i);
+//            List<Map>  user = (List<Map>) ;
+                sss2.put("employeeField_m2cx8zh6",map.get("employeeField_m2cx8zh6_id"));
+
+            sss2.put("textareaField_m2cx8zh7",map.get("textareaField_m2cx8zh7"));
+            maps_YD.add(sss2);
+        }
+        maps_YD.add(sss);//新增数据
+
+        Map map = new HashMap();
+        map.put(UtilMap.getString(data, "compId"),UtilMap.getList(data, "userIds"));
+        map.put("tableField_m2cx8zh5",maps_YD);
+
         ydClient.operateData(YDParam.builder()
                 .formInstId(processInstanceId)
-                .updateFormDataJson(JSON.toJSONString(UtilMap.map(UtilMap.getString(data, "compId"), UtilMap.getList(data, "userIds"))))
+                .updateFormDataJson(JSON.toJSONString(map))
                 .build(), YDConf.FORM_OPERATION.update);
+        String userIds = String.valueOf(data.get("atUserId"));
+        String[] split = userIds.split(",");
+        ArrayList<String> names = new ArrayList<>();
+        for(Object auserId : split){
+            DDR_New ddrNew = (DDR_New) UtilHttp.doPost("https://oapi.dingtalk.com/topapi/v2/user/get", null, ddClient.initTokenParams(), UtilMap.map("userid", auserId), DDR_New.class);
+            Object result = ddrNew.getResult();
+            if (result != null) {
+                JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(result));
+                String name = jsonObject.getString("name");
+                names.add(name);
+            }
+        }
+
+        data.put("content", names.stream().collect(Collectors.joining(",")) + ":" +UtilMap.getString(data, "content"));
 
-        YDParam ydParam = YDParam.builder()
+               YDParam ydParam = YDParam.builder()
                 .formInstanceId(processInstanceId)
                 .userId(UtilMap.getString(data, "userId"))
                 .content(UtilMap.getString(data, "content"))
@@ -132,9 +183,83 @@ public class RSImplService implements RSService {
         ydClient.operateData(ydParam, YDConf.FORM_OPERATION.remarks);
     }
 
+    @Override
+    public Map approvalRecord(String processInstanceId, Map data) {
+        List<Map> records = (List<Map>) ydClient.queryData(YDParam.builder()
+                .processInstanceId(processInstanceId)
+                .build(), YDConf.FORM_QUERY.retrieve_approval_record).getResult();
+
+        List<String> userIds = new ArrayList<>();   // 后端格式
+        List<Map> users = new ArrayList<>();        // 前端格式
+        for (Map record : records) {
+
+            // 节点多人情况处理
+            List<Map> domainList = UtilMap.getList(record, "domainList");
+            if (!domainList.isEmpty()) {
+                for (Map operator : domainList) {
+                    String userId = UtilMap.getString(operator, "operator");
+                    if (!userIds.contains(userId)) {
+                        userIds.add(userId);
+                        // 前端格式显示通过label控制
+                        users.add(UtilMap.map("name, label, value", operator.get("operatorName"), operator.get("operatorName"), userId));
+                    }
+                }
+            } else {
+                // 单人审批节点处理
+                String userId = UtilMap.getString(record, "operatorUserId");
+                if (!userIds.contains(userId)) {
+                    userIds.add(userId);
+                    // 前端格式显示通过label控制
+                    users.add(UtilMap.map("name, label, value", record.get("operatorName"), record.get("operatorName"), userId));
+                }
+            }
+        }
+
+        // 执行更新逻辑
+        if (UtilMap.getBoolean(data, "isUpdate")) {
+            McException.assertParamException_Null(data, "compId");
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(processInstanceId)
+                    .updateFormDataJson(JSON.toJSONString(UtilMap.map(UtilMap.getString(data, "compId"), userIds)))
+                    .build(), YDConf.FORM_OPERATION.update);
+        }
+        return UtilMap.map("users, userIds", users, userIds);
+//
+    }
+
+    @Override
+    public void syncDingTalk_delect() {
+        List<Map> dataList = ydService.queryFormData_all(YDParam.builder()
+                .formUuid("FORM-11B80FC621CA4DB9A35364CFBFF7287538KR")
+                .build());
+        dataList.forEach(data -> {
+            if ("未启用".equals(UtilMap.getString(data, "radiofield_MMa26Yu4"))) {
+                String userId = UtilMap.getString(data, "textField_lztc6k3k");
+                String message = "";
+                try {
+                    this.delectExclusiveUser(userId);
+                } catch (McException e) {
+                    message = e.getMessage();
+                    log.error(e.getMessage(), e);
+                }
+//                ydClient.operateData(YDParam.builder()
+//                        .formInstanceId(UtilMap.getString(data, "instanceId"))
+//                        .useLatestVersion(true)
+//                        .updateFormDataJson(JSON.toJSONString(UtilMap.map("radioField_m0hlup9w, employeeField_m0hlup9v, textareaField_m0hs4k90", "是", Arrays.asList(userId), message)))
+//                        .build(), YDConf.FORM_OPERATION.update);
+            }
+        });
+    }
+    private void delectExclusiveUser(String userId) throws McException {
+        Map param2 = new HashMap();
+        param2.put("access_token", dingshiqiImpl.getAccessToken_PJSS());
+        Map body = new HashMap();
+        body.put("userid", userId);
+        String s = UtilHttp.doGet("https://oapi.dingtalk.com/topapi/v2/user/delete", param2, (Map<String, Object>) body);
+        JSONObject obj = JSONObject.parseObject(s);
+        JSONArray arr = obj.getJSONArray("result");
+    }
 
-    /// 数据缓存 + 图片缓存, 10 分钟更新一次
-    private Map portal_cache = new HashMap();
 
     /**
      * 工作台数据
@@ -164,11 +289,16 @@ public class RSImplService implements RSService {
                 if (StringUtils.isNotBlank(image)) {
                     List<Map> attas = (List<Map>) JSON.parse(image);
                     row.put("image", ydClient.convertTemporaryUrl(UtilMap.getString(attas.get(0), "url")));
+                    Object image1 = row.get("image");
+                    System.out.println("image========="+UtilMap.getString(attas.get(0), "url"));
+//                    System.out.println("image1========="+image1);
                 }
                 return row;
             }).collect(Collectors.toList());
             portal_cache.put(type, pList);
         }
+
+        log.info("type: {},list:{}", type, pList);
         return pList;
     }
 

+ 2 - 2
mjava-ruisi/src/main/java/com/malk/ruisi/service/impl/RsQysServiceImpl.java

@@ -68,7 +68,7 @@ public class RsQysServiceImpl implements RsQysService {
             map.put("contractId", "textField_lwah8x72");//合同Id
             map.put("categoryName", "textField_lvz1kozg");//业务分类名称
             map.put("fujian", "attachmentField_ltsbweir");//附件
-            map.put("fujian1", "attachmentField_m11gjcqu");//附件
+            map.put("fujian1", "attachmentField_m1gebrx1");//附件
             map.put("creatorName", "employeeField_ltsbwefl");//创建人姓名
             map.put("applyerNumber", "textField_lwebkb16");//创建人员工编号
             map.put("sealName", "textField_lvw4umfr");//授权印章名称
@@ -1451,7 +1451,7 @@ public class RsQysServiceImpl implements RsQysService {
         String formuuid ="FORM-B27C1AE7298648F29E836B5FDF469DBDPFCK";//其他用印
         String hrformuuid ="FORM-54972289A0B7416287A9BA44DA6CCDC50QUC";//hr09
         String htformuuid ="FORM-55D56A69CCCE4043A01660C8910E33BAQ4N0";//合同用印
-        String kjformuuid ="FORM-54972289A0B7416287A9BA44DA6CCDC50QUC";//框架用印
+        String kjformuuid ="FORM-5DB656AF0F0E4EFA85A4739D55C23ED85BXO";//框架用印
         String jsonString = "";
 
 // 根据categoryName的值来决定从data中获取哪个键对应的值

+ 3 - 3
mjava-ruisi/src/main/java/com/malk/ruisi/service/impl/dingshiqiImpl.java

@@ -193,7 +193,7 @@ public class dingshiqiImpl implements dingshiqi {
         }
         return null;
     }
-    public String getAccessToken_PJSS() {
+    public static String getAccessToken_PJSS() {
         //
         String accessToken = UtilToken.get("invalid-token-dingtalk");
         if (StringUtils.isNotBlank(accessToken)) {
@@ -417,13 +417,13 @@ public class dingshiqiImpl implements dingshiqi {
     @Override
     public void syncDelete() {
         DDR_New ddrNew = ydClient.queryData(YDParam.builder()
-                .formUuid("FORM-11263AE5C32E4DD48CAECDBB93D838673UMK")
+                .formUuid("FORM-7ACCB70D96FA4187BD2042243641E54CD6VH")
                 .build(), YDConf.FORM_QUERY.retrieve_search_form_id);
 
         System.out.println(ddrNew.getTotalCount());
 
         ydClient.operateData(YDParam.builder()
-                .formUuid("FORM-11263AE5C32E4DD48CAECDBB93D838673UMK")
+                .formUuid("FORM-7ACCB70D96FA4187BD2042243641E54CD6VH")
                 .asynchronousExecution(true)
                 .formInstanceIdList((List<String>) ddrNew.getData())
                 .build(), YDConf.FORM_OPERATION.delete_batch);