KKLController.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.malk.kuaikeli.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.malk.server.aliwork.YDConf;
  4. import com.malk.server.common.McR;
  5. import com.malk.service.aliwork.YDService;
  6. import com.malk.utils.UtilMc;
  7. import com.malk.utils.UtilServlet;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import javax.servlet.http.HttpServletRequest;
  14. import java.util.List;
  15. import java.util.Map;
  16. import java.util.stream.Collectors;
  17. /**
  18. * 错误抛出与拦截详见 CatchException
  19. */
  20. @Slf4j
  21. @RestController
  22. @RequestMapping()
  23. public class KKLController {
  24. @Autowired
  25. private YDService ydService;
  26. @PostMapping("supplier")
  27. McR supplier(HttpServletRequest request) {
  28. Map data = UtilServlet.getParamMap(request);
  29. log.info("supplier, {}", JSON.toJSONString(data));
  30. // ppExt: 供应商区分发起: 当前表:供应供子表组件ID,子表内供应商编号,名称,负责人
  31. String[] compIds_supplier = String.valueOf(data.get("compId_supplier")).split(", ");
  32. String compId_supplier = compIds_supplier[1];
  33. Map formData = (Map) JSON.parse(String.valueOf(data.get("formData")));
  34. List<Map> details = (List<Map>) formData.get(compIds_supplier[0]);
  35. // 供应商编号, 数据去重: 提取数据区分供应商发起
  36. List<Map> suppliers = UtilMc.distinctByKey(details, compId_supplier);
  37. for (Map supplier : suppliers) {
  38. List<Map> dataList = details.stream().filter(item -> supplier.get(compId_supplier).equals(item.get(compId_supplier))).collect(Collectors.toList());
  39. formData.put(compIds_supplier[0], dataList);
  40. // ppExt: 参数传递, 目标表组件ID, 对照当前表子表内的子表内供应商编号,名称,负责人已放置主表字段, 此处公共内容提前首条数据进行赋值
  41. for (int i = 1; i < compIds_supplier.length; i++) {
  42. formData.put(compIds_supplier[i], YDConf.getDataByCompId(dataList.get(0), compIds_supplier[i]));
  43. }
  44. data.put("formData", JSON.toJSONString(formData));
  45. ydService.copyFormData(data); // 发起流程
  46. }
  47. return McR.success();
  48. }
  49. @PostMapping("test")
  50. McR test(HttpServletRequest request) {
  51. Map data = UtilServlet.getParamMap(request);
  52. log.info("xxxx, {}", data);
  53. return McR.success();
  54. }
  55. }