| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package com.malk.xinwei.controller;
- import cn.hutool.core.util.ObjectUtil;
- import com.alibaba.fastjson.JSON;
- import com.malk.Util.UtilServlet;
- 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.service.aliwork.YDClient;
- import com.malk.service.aliwork.YDService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.EnableAsync;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * 错误抛出与拦截详见 CatchException
- */
- @Slf4j
- @RestController
- @RequestMapping("/chuoqi")
- @EnableAsync
- public class SuoDiSiController {
- /**** 索迪斯服务 ****/
- @Autowired
- private YDClient ydClient;
- /**
- * 动态审批人
- */
- @PostMapping("sds/test")
- List<String> sdsTest(HttpServletRequest request) {
- Map param = UtilServlet.getParamMap(request);
- McException.assertParamException_Null(param, "finance");
- Map condition = new HashMap();
- condition.put("textField_lg52q035", param.get("finance"));
- YDParam ydParam = YDParam.builder()
- .appType("APP_Y75CEY3YR30YOLEWETJJ")
- .systemToken("BY866R813JM8XVLGD7YELCPDH9IL29Z5BQQEL48")
- .formUuid("FORM-8Y866XB1AXM9DFV3AW6D7AV2WWEK2F3OP25GLD")
- .searchFieldJson(JSON.toJSONString(condition))
- .build();
- List<Map> list = (List<Map>) ydClient.queryData(YDConf.API_FORM_QUERY_DATA, ydParam).get("data");
- Map formData = (Map) list.get(0).get("formData");
- log.info("索迪斯动态审批人, {}, {}", param, formData);
- return (List<String>) formData.get("employeeField_lg52q036_id");
- }
- /**
- * 回写招聘子表
- */
- @PostMapping("sds/update")
- Map sdsUpdate(HttpServletRequest request) {
- // 查询招聘申请
- Map param = UtilServlet.getParamMap(request);
- McException.assertParamException_Null(param, "formInstId");
- YDParam ydParam = YDParam.builder()
- .appType("APP_Y75CEY3YR30YOLEWETJJ")
- .systemToken("BY866R813JM8XVLGD7YELCPDH9IL29Z5BQQEL48")
- .formInstId(String.valueOf(param.get("formInstId")))
- .build();
- Map rsp = (Map) ydClient.operateData(YDConf.API_FORM_DETAIL, ydParam);
- Map formData = (Map) rsp.get("formData");
- log.info("索迪斯回写子表, {}, {}", param, formData);
- // 组装分发子表数据
- Map detail = new HashMap();
- detail.put("associationFormField_lf7pkag4", JSON.parse(String.valueOf(formData.get("associationFormField_lg54gbt9_id")))); // 职位组
- detail.put("textField_lf7pkag5", formData.get("textField_lg54gbta")); // 新员工姓名
- detail.put("dateField_lf7pkag6", formData.get("dateField_lg54gbtf")); // 入职日期
- // todo: 成员, 附件, 关联表单
- List<Map> association = JSON.parseArray(String.valueOf(JSON.parse(String.valueOf(formData.get("associationFormField_lg0gmbi8_id")))), Map.class);
- String formInstId = String.valueOf(association.get(0).get("instanceId"));
- ydParam.setFormInstId(formInstId);
- Map rspSrc = (Map) ydClient.operateData(YDConf.API_FORM_DETAIL, ydParam);
- Map formDataSrc = (Map) rspSrc.get("formData");
- List<Map> list = new ArrayList<>();
- if (ObjectUtil.isNotNull(formDataSrc.get("tableField_lf7pkag3"))) {
- list = (List<Map>) formDataSrc.get("tableField_lf7pkag3");
- }
- // 更新流程数据
- Map form = new HashMap();
- list.add(detail);
- form.put("tableField_lf7pkag3", list);
- form.put("numberField_lfj9d501", 2);
- ydParam.setUpdateFormDataJson(JSON.toJSONString(form));
- ydClient.operateData(YDConf.API_FORM_UPDATE, ydParam);
- log.info("更新, {}, {}", formInstId, form);
- Map r = new HashMap();
- r.put("success", true);
- return r;
- }
- @Autowired
- private YDService ydService;
- /**
- * GXG基础档案
- */
- @PostMapping("gxg/data-list")
- McR gxgDataList(@RequestBody Map data) {
- Map condition = new HashMap();
- YDParam ydParam = YDParam.builder()
- .appType("APP_YGFK3PFENGL4E7RMLZEV")
- .systemToken("L5666S81WTM9LWRB9POYW974EWBA3ISV5WBGLDA")
- .formUuid("FORM-4H666KB1FVP9UEXX8UQBT7GBB5CR20UV5WBGLGJ")
- .searchFieldJson(JSON.toJSONString(condition))
- .currentPage(1)
- .pageSize(100)
- .build();
- List<Map> list = new ArrayList();
- ydService.queryLimitData(YDConf.API_FORM_QUERY_DATA, ydParam, YDService.INVOKE_TYPE.AWAIT_CONCURRENCE, list::addAll);
- log.info("GXG基础档案, {}, {}", data, list.size());
- return McR.success(list.stream().map(item -> {
- Map record = new HashMap();
- record.put("name", ((Map) item.get("formData")).get("textField_lg62a86d"));
- record.put("code", ((Map) item.get("formData")).get("textField_lg62ksb8"));
- record.put("area", ((Map) item.get("formData")).get("textField_lg62a86e"));
- return record;
- }).collect(Collectors.toList()));
- }
- }
|