McYdController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. package com.malk.mc.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.malk.mc.service.McYdService;
  4. import com.malk.server.aliwork.YDConf;
  5. import com.malk.server.aliwork.YDParam;
  6. import com.malk.server.common.McException;
  7. import com.malk.server.common.McR;
  8. import com.malk.server.dingtalk.DDR_New;
  9. import com.malk.service.aliwork.YDClient;
  10. import com.malk.service.aliwork.YDService;
  11. import com.malk.utils.PublicUtil;
  12. import com.malk.utils.UtilMap;
  13. import com.malk.utils.UtilServlet;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.slf4j.MDC;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.servlet.http.HttpServletRequest;
  19. import java.util.*;
  20. /***
  21. * 宜搭服务
  22. */
  23. @Slf4j
  24. @RestController
  25. @RequestMapping("/yd/")
  26. public class McYdController {
  27. @Autowired
  28. private YDService ydService;
  29. @Autowired
  30. private YDClient ydClient;
  31. @Autowired
  32. private McYdService mcYdService;
  33. /***
  34. * 复制表单数据到另一个表
  35. * @param param
  36. * @return
  37. */
  38. @PostMapping("copy")
  39. public McR copy(@RequestBody JSONObject param) {
  40. if (PublicUtil.isNull(param, "instanceId", "formUuid")) {
  41. return McR.errorNullPointer();
  42. }
  43. ydService.mirrorFormData(param.getString("instanceId"), param.getString("formUuid"), param.getString("processCode"), param.getString("processUserId"),
  44. param.getJSONObject("updateData"), param.getString("updateInstanceId"));
  45. return McR.success();
  46. }
  47. /***
  48. * 保存关联表单数据
  49. * @param param
  50. * @return
  51. */
  52. @PostMapping("saveGl")
  53. public McR saveGl(@RequestBody JSONObject param) {
  54. if (PublicUtil.isNull(param, "formInstId", "formUuid", "title", "saveFormInstId", "compId", "appType")) {
  55. return McR.errorNullPointer();
  56. }
  57. ydClient.operateData(YDParam.builder().updateFormDataJson(JSONObject.toJSONString(UtilMap.map(param.getString("compId"), Arrays.asList(
  58. UtilMap.map("appType, formType, instanceId, title, subTitle, formUuid", param.getString("appType"), "receipt", param.getString("formInstId")
  59. , param.getString("title"), param.getString("subTitle"), param.getString("formUuid")))
  60. ))).formInstId(param.getString("saveFormInstId")).build(), YDConf.FORM_OPERATION.update);
  61. return McR.success();
  62. }
  63. /**
  64. * 根据筛选条件获取表单数据
  65. *
  66. * @param
  67. * @return
  68. */
  69. @GetMapping("getFromData")
  70. public Map getFromData(String formUuid, String fieldCode, String fileValue) {
  71. log.info("formUuid:{},fieldCode:{},fileValue:{}", formUuid, fieldCode, fileValue);
  72. MDC.put("MDC_KEY_PID", "1004");
  73. // McProject.addYida("1004",new String[] {"APP_YMOUJB8W36ZVCJ9BUE77","YE966DA1CKMCAWSRAM78Y5K6NESA27LKXC9KL6C2"});
  74. fileValue = Objects.nonNull(fileValue) ? fileValue : "";
  75. List<Map> ydFormDataList = getYdFormDataList(formUuid, JSONObject.toJSONString(UtilMap.map(fieldCode, fileValue)), YDConf.FORM_QUERY.retrieve_list);
  76. Map<String, Object> resultMap = new HashMap<>();
  77. resultMap.put("data", ydFormDataList);
  78. return resultMap;
  79. }
  80. private List<Map> getYdFormDataList(String formUuid, String searchCondition, YDConf.FORM_QUERY formQuery) {
  81. List<Map> list = new ArrayList<>();
  82. DDR_New ddrNew;
  83. int pageNumber = 1;
  84. int pageSize = 100;
  85. do {
  86. ddrNew = ydClient.queryData(YDParam.builder().formUuid(formUuid)
  87. .searchCondition(searchCondition)
  88. .pageNumber(pageNumber)
  89. .pageSize(pageSize).build(), formQuery);
  90. list.addAll((List<Map>) ddrNew.getData());
  91. pageNumber++;
  92. } while (ddrNew.getTotalCount() > ddrNew.getPageNumber() * pageSize);
  93. return list;
  94. }
  95. /**
  96. * 更新表单数据版本
  97. *
  98. * @param map
  99. * @return
  100. */
  101. @PostMapping("/updateFormDataVersion")
  102. public McR updateFormDataVersion(@RequestBody Map map) {
  103. mcYdService.updateFormDataVersion(map);
  104. return McR.success();
  105. }
  106. /**
  107. * 批量更新符合条件的指定数量的实例(批量上限100条)
  108. * @param map
  109. * @return
  110. */
  111. @PostMapping("/batchUpdateSpecifiedQuantityData")
  112. public McR batchUpdateSpecifiedQuantityData(@RequestBody Map map){
  113. mcYdService.batchUpdateSpecifiedQuantityData(map);
  114. return McR.success();
  115. }
  116. /**
  117. * 发起审批
  118. *
  119. * @param map
  120. * @return
  121. */
  122. @PostMapping("initiateApproval")
  123. public McR initiateApproval(@RequestBody Map map) {
  124. return mcYdService.initiateApproval(map);
  125. }
  126. //子表数值转化为文本,添加千位分隔符
  127. @PostMapping("/convertSubTableNumber")
  128. public McR convertSubTableNumber(@RequestBody Map map) {
  129. return mcYdService.convertSubTableNumber(map);
  130. }
  131. @PostMapping("/saveApproverToForm")
  132. public McR saveApproverToForm(@RequestBody Map map) {
  133. McException.assertParamException_Null(map, "formInstId", "key");
  134. return mcYdService.saveApproverToForm(map);
  135. }
  136. //海天二期开发部分(出库)
  137. @PostMapping("/multiLocationOutbound")
  138. public McR multiLocationOutbound(@RequestBody Map map) {
  139. return mcYdService.multiLocationOutbound(map);
  140. }
  141. //海天二期开发部分(入库)
  142. @PostMapping("/WarehouseStorage")
  143. public McR WarehouseStorage(@RequestBody Map map) {
  144. return mcYdService.WarehouseStorage(map);
  145. }
  146. //海天二期开发(退货)
  147. @PostMapping("/ProductReturn")
  148. public McR ProductReturn(@RequestBody Map map) {
  149. return mcYdService.ProductReturn(map);
  150. }
  151. //海天二期开发(调拨)
  152. @PostMapping("/allocateTransfer")
  153. public McR allocateTransfer(@RequestBody Map map) {
  154. return mcYdService.allocateTransfer(map);
  155. }
  156. /**
  157. * 分享数据权限
  158. * @param map compId 表单分享权限所属, userIds 分享人及被分享人, userId 分享人, content 代办标题, atUserId 被分享人, appUrl 移动端地址, pcUrl PC端地址
  159. * @param header POC下MC服务项目pid
  160. * @return
  161. */
  162. @PostMapping("/shareRecord")
  163. public McR shareRecord(@RequestBody Map map, @RequestHeader Map header) {
  164. map.put("pid",header.get("pid").toString());
  165. return mcYdService.shareRecord(map);
  166. }
  167. }