|
@@ -0,0 +1,160 @@
|
|
|
+package com.malk.kabeiyi.service.impl;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.malk.kabeiyi.service.KabeiyiService;
|
|
|
+import com.malk.kabeiyi.util.U8Util;
|
|
|
+import com.malk.server.aliwork.YDConf;
|
|
|
+import com.malk.server.aliwork.YDParam;
|
|
|
+import com.malk.server.common.McR;
|
|
|
+import com.malk.service.aliwork.YDService;
|
|
|
+import com.malk.service.dingtalk.DDClient;
|
|
|
+import com.malk.service.dingtalk.DDClient_Workflow;
|
|
|
+import com.malk.utils.UtilHttp;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class KabeiyiServiceImpl implements KabeiyiService {
|
|
|
+ @Autowired
|
|
|
+ private DDClient_Workflow ddClient_workflow;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DDClient ddClient;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private YDService ydService;
|
|
|
+
|
|
|
+ //审批实例url前缀
|
|
|
+ private static final String PROC_INST_PREFIX_URL = "https://aflow.dingtalk.com/dingtalk/web/query/pchomepage.htm?from=oflow&op=true&corpid=dingc3a744cb591a7346f2c783f7214b6d69#/plainapproval?procInstId=";
|
|
|
+
|
|
|
+ //宜搭-关联数据表
|
|
|
+ private static final String RELATION = "FORM-230C40137ED94524B4D4C94F8B23A8D2F8PF";
|
|
|
+
|
|
|
+ private static final Map<String,String> SCHEMA_MAP = new HashMap<>();
|
|
|
+
|
|
|
+
|
|
|
+ static{
|
|
|
+ SCHEMA_MAP.put("工厂用章流程","1.1、工厂用章流程(除采购营销人事)");
|
|
|
+ SCHEMA_MAP.put("中心用章流程","1.2、中心用章流程(除采购营销人事)");
|
|
|
+ SCHEMA_MAP.put("人事专用用章审批流程","1.3、人事专用用章审批流程");
|
|
|
+ SCHEMA_MAP.put("商务部用章申请流程","1.4、商务部用章申请流程");
|
|
|
+ SCHEMA_MAP.put("办公用品采购申请流程","4.3、办公用品采购申请流程");
|
|
|
+
|
|
|
+
|
|
|
+ //需传其他值
|
|
|
+ //对方单位名称 收入或支出 金额 备注
|
|
|
+ SCHEMA_MAP.put("信息化建设用章流程","1.7、信息化建设用章流程");
|
|
|
+ //合同说明 采购物品类型
|
|
|
+ SCHEMA_MAP.put("技术中心请购审批流程","4.10、技术中心请购审批流程");
|
|
|
+ //合同总金额 合同说明
|
|
|
+ SCHEMA_MAP.put("设备备品备件采购合同审批流程","4.1b、设备备品备件采购合同审批流程");
|
|
|
+ SCHEMA_MAP.put("其他物品采购合同流程","4.2b、其他物品采购合同流程");
|
|
|
+ SCHEMA_MAP.put("设备采购合同审批流程","4.5c、设备采购合同审批流程");
|
|
|
+ SCHEMA_MAP.put("原材料采购合同审批流程","4.9b、原材料采购合同审批流程");
|
|
|
+ SCHEMA_MAP.put("墨西哥采购合同审批流程","4.13b、墨西哥采购合同审批流程");
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public McR addPayment(Map map) {
|
|
|
+ try {
|
|
|
+ String tradeid = U8Util.getTradeid();
|
|
|
+
|
|
|
+ map.put("tradeid",tradeid);
|
|
|
+
|
|
|
+
|
|
|
+ U8Util.sendPost(map,"https://api.yonyouup.com/api/voucher/add","voucher");
|
|
|
+
|
|
|
+ }catch (Exception e) {
|
|
|
+ return McR.errorUnknown(e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return McR.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public McR pushProcInstToYD(Map map) {
|
|
|
+ //审批实例
|
|
|
+ String procInstId = String.valueOf(map.get("procInstId"));
|
|
|
+ //获取审批实例信息
|
|
|
+ Map processInstance = ddClient_workflow.getProcessInstanceId(ddClient.getAccessToken(), procInstId);
|
|
|
+ if (Objects.nonNull(processInstance)){
|
|
|
+ Map formData = new HashMap<>();
|
|
|
+ String title = String.valueOf(processInstance.get("title"));
|
|
|
+ String type = "";
|
|
|
+ List<Map> formComponentValues = (List<Map>) processInstance.get("formComponentValues");
|
|
|
+ for (String key : SCHEMA_MAP.keySet()) {
|
|
|
+ if (title.contains(key)){
|
|
|
+ type = SCHEMA_MAP.get(key);
|
|
|
+ switch (type){
|
|
|
+ case "1.7、信息化建设用章流程" :
|
|
|
+ for (Map formComponentValue : formComponentValues) {
|
|
|
+ String name = String.valueOf(formComponentValue.get("name"));
|
|
|
+ String value = String.valueOf(formComponentValue.get("value"));
|
|
|
+ switch (name){
|
|
|
+ case "对方单位名称" : formData.put("textField_lygzlf3j",value);break;
|
|
|
+ case "收入或支出" : formData.put("textField_lygzlf3k",value);break;
|
|
|
+ case "金额" : formData.put("textField_lygzlf3l",value);break;
|
|
|
+ case "备注" : formData.put("textField_lygzlf3m",value);break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "4.1b、设备备品备件采购合同审批流程" :
|
|
|
+ case "4.2b、其他物品采购合同流程" :
|
|
|
+ case "4.5c、设备采购合同审批流程" :
|
|
|
+ case "4.9b、原材料采购合同审批流程" :
|
|
|
+ case "4.13b、墨西哥采购合同审批流程" :
|
|
|
+ for (Map formComponentValue : formComponentValues) {
|
|
|
+ String name = String.valueOf(formComponentValue.get("name"));
|
|
|
+ switch (name){
|
|
|
+ case "合同总金额" : formData.put("numberField_lyf81587",formComponentValue.get("value"));break;
|
|
|
+ case "合同说明" :
|
|
|
+ if (Objects.nonNull(formComponentValue.get("value"))){
|
|
|
+ formData.put("textField_lyf81588",formComponentValue.get("value"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "4.10、技术中心请购审批流程" :
|
|
|
+ for (Map formComponentValue : formComponentValues) {
|
|
|
+ String name = String.valueOf(formComponentValue.get("name"));
|
|
|
+ switch (name){
|
|
|
+ case "采购物品类型" : formData.put("textField_lyibvb98",formComponentValue.get("value"));break;
|
|
|
+ case "合同说明" :
|
|
|
+ if (Objects.nonNull(formComponentValue.get("value"))){
|
|
|
+ formData.put("textField_lyf81588",formComponentValue.get("value"));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ formData.put("textField_lyf8157x",title);
|
|
|
+ formData.put("selectField_lyf81580",type);
|
|
|
+
|
|
|
+ Map condition = new HashMap<>();
|
|
|
+ condition.put("textField_lyf81581",PROC_INST_PREFIX_URL + procInstId);
|
|
|
+ //同步到宜搭
|
|
|
+ ydService.upsertFormData(RELATION,condition,formData,null);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return McR.success();
|
|
|
+ }
|
|
|
+
|
|
|
+ return McR.errorParam("审批实例不存在!");
|
|
|
+ }
|
|
|
+}
|