|
@@ -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();
|
|
|
+ }
|
|
|
}
|