wzy před 9 měsíci
rodič
revize
a3ae4d5191

+ 1 - 1
mjava-kabeiyi/src/main/resources/application-dev.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8113
+  port: 9021
   servlet:
     context-path: /kabeiyi
 

+ 10 - 0
mjava-mc/src/main/java/com/malk/mc/controller/McYdController.java

@@ -126,4 +126,14 @@ public class McYdController {
         return McR.success();
     }
 
+    /**
+     * 发起审批
+     * @param map
+     * @return
+     */
+    @PostMapping("initiateApproval")
+    public McR initiateApproval(@RequestBody Map map){
+        return mcYdService.initiateApproval(map);
+    }
+
 }

+ 3 - 0
mjava-mc/src/main/java/com/malk/mc/service/McYdService.java

@@ -1,5 +1,6 @@
 package com.malk.mc.service;
 
+import com.malk.server.common.McR;
 import org.springframework.scheduling.annotation.Async;
 
 import java.util.Map;
@@ -7,4 +8,6 @@ import java.util.Map;
 public interface McYdService {
     @Async
     void updateFormDataVersion(Map map);
+
+    McR initiateApproval(Map map);
 }

+ 41 - 0
mjava-mc/src/main/java/com/malk/mc/service/impl/McYdServiceImpl.java

@@ -1,6 +1,8 @@
 package com.malk.mc.service.impl;
 
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.malk.core.McProject;
 import com.malk.mc.service.McYdService;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
@@ -9,6 +11,7 @@ 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.utils.PublicUtil;
 import com.malk.utils.UtilHttp;
 import com.malk.utils.UtilMap;
 import org.apache.logging.log4j.util.Strings;
@@ -84,4 +87,42 @@ public class McYdServiceImpl implements McYdService {
             }
         }
     }
+
+    @Override
+    public McR initiateApproval(Map map) {
+        String pid = getString(map.get("pid"));
+        String formUuid = getString(map.get("formUuid"));
+        String processCode = getString(map.get("processCode"));
+        String userId = getString(map.get("userId"));
+        Map formData = (Map) map.get("formData");
+        Map processData = new HashMap();
+        if (Objects.nonNull(map.get("processData"))){
+            processData = (Map) map.get("processData");
+        }
+
+        if (Strings.isNotBlank(pid)){
+            //发起审批
+            String[] yida = McProject.getYida(pid);
+            Map<String,Object> body = new HashMap<>();
+            if (!PublicUtil.isNull(pid) && yida != null && yida.length >= 2) {
+                body.put("appType",yida[0]);
+                body.put("systemToken",yida[1]);
+            }
+            body.put("userId",userId);
+            body.put("formUuid",formUuid);
+            body.put("processCode",processCode);
+            body.put("formDataJson", JSONObject.toJSONString(formData));
+            if (Objects.nonNull(processData) && processData.size() > 0){
+                body.put("processData", JSONObject.toJSONString(processData));
+            }
+
+            UtilHttp.doPost("https://api.dingtalk.com/v1.0/yida/processes/instances/start", ddClient.initTokenHeader(), null, body, DDR_New.class);
+            return McR.success();
+        }
+        return McR.errorParam("参数缺失!");
+    }
+
+    private String getString(Object obj){
+        return obj == null ? "" : obj.toString();
+    }
 }