package com.malk.ruisi.controller; /** * 错误抛出与拦截详见 CatchException */ import com.alibaba.fastjson.JSON; 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.utils.UtilMap; import com.malk.utils.UtilServlet; import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @Slf4j @RestController @RequestMapping("yd") public class YDController { @Autowired private YDClient ydClient; // 接口校验通用逻辑 @Synchronized @PostMapping("/invokeThird") McR invokeThird(HttpServletRequest request) { Map data = UtilServlet.getParamMap(request); log.info("接口校验通用逻辑, {}", JSON.toJSONString(data)); McException.assertParamException_Null(data, "instanceId"); // 多人审批场景下, 避免重复推送 if ("成功".equals(UtilMap.getString(data, "radioField_m1hmte37"))) { return McR.success(); } boolean isSuccess = true; String message = ""; try { /// 调用服务, 若也存在异常, 抛出 } catch (McException exception) { isSuccess = true; message = exception.getMessage(); log.error(exception.getMessage(), exception); } ydClient.operateData(YDParam.builder() .formInstId(UtilMap.getString(data, "instanceId")) .updateFormDataJson(JSON.toJSONString(UtilMap.map("radioField_m1hmte37, textareaField_lntocd8u", isSuccess ? "成功" : "失败", message))) .build(), YDConf.FORM_OPERATION.update); McException.assertAccessException(!isSuccess, message); // 抛出异常 return McR.success(); } // 重新发起请假流程 @GetMapping("/test21") McR test21() { String formInstanceId = "35c8ba1b-2c5b-4581-bf75-a53f9f3b4657"; String userId = "1007054"; Map formData = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId) .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() .formUuid("FORM-A02F7EA3AD6548E59B8E1692AD729C77C5LD") .userId(userId) .formDataJson(JSON.toJSONString(formData)) .build(), YDConf.FORM_OPERATION.start).toString(); return McR.success(formData); } }