DispatchMidController.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package fi.fa.webService;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import kd.bos.dataentity.entity.DynamicObject;
  5. import kd.bos.openapi.common.custom.annotation.ApiController;
  6. import kd.bos.openapi.common.custom.annotation.ApiMapping;
  7. import kd.bos.openapi.common.custom.annotation.ApiParam;
  8. import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
  9. import kd.bos.openapi.common.result.CustomApiResult;
  10. import kd.bos.orm.query.QCP;
  11. import kd.bos.orm.query.QFilter;
  12. import kd.bos.servicehelper.BusinessDataServiceHelper;
  13. import kd.bos.servicehelper.operation.SaveServiceHelper;
  14. import java.io.Serializable;
  15. /**
  16. * 接收e管家资产调拨单接口
  17. */
  18. @ApiController(value = "midDispatch", desc = "自定义API 中间表新增")
  19. @ApiMapping(value = "saveMidDispatchApi")
  20. public class DispatchMidController implements Serializable {
  21. /**
  22. * @description 资产调拨单中间表新增接口,资产调拨单下推接口
  23. * @param info
  24. * @return CustomApiResult
  25. */
  26. @ApiPostMapping(value = "/add", desc = "新增资产调拨单中间表")
  27. public CustomApiResult<Object> AddMidDispatch (@ApiParam(value = "e管家资产调拨单") JSONObject info) {
  28. StringBuilder resultString = new StringBuilder();
  29. JSONArray data = info.getJSONArray("data");
  30. //循环传入的数据
  31. for (int i = 0; i < data.size(); i++) {
  32. try{
  33. JSONObject eobject = data.getJSONObject(i);
  34. //第一步:保存进中间表
  35. SaveMidDispatch(eobject);
  36. } catch (Exception e){
  37. resultString.append("保存过程中发生异常:").append(e.getMessage()).append("\n");
  38. }
  39. }
  40. return resultString.length() == 0
  41. ? CustomApiResult.success("推送中间表成功成功!")
  42. : CustomApiResult.fail("404", resultString.toString());
  43. }
  44. /**
  45. * @description 保存中间表
  46. * @param jsonObject
  47. */
  48. private void SaveMidDispatch(JSONObject jsonObject) {
  49. String dispatchType = jsonObject.getString("dispatchType");
  50. DynamicObject minInfo = null;
  51. if ("0".equals(dispatchType)) {
  52. //查询调出中间表,如果有则修改,没有则新增
  53. QFilter filter = new QFilter("number", QCP.equals, jsonObject.getString("billno"));
  54. DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_dispatch_mid","id",new QFilter[] {filter});
  55. if (mid.length > 0) {
  56. minInfo = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
  57. }else {
  58. minInfo = BusinessDataServiceHelper.newDynamicObject("nckd_e_dispatch_mid");
  59. }
  60. minInfo.set("nckd_changemode", "调出");//减少方式默认调出
  61. minInfo.set("nckd_user_out", jsonObject.getString("sendUser"));//调出类型对应人员
  62. minInfo.set("nckd_user_in", jsonObject.getString("receiveUser"));//调入负责人
  63. minInfo.set("nckd_org_out", jsonObject.getString("outOrgId"));//调出组织
  64. minInfo.set("nckd_org_in", jsonObject.getString("orgId"));//调入组织
  65. minInfo.set("nckd_used_user", jsonObject.getString("receiveUser"));//调入使用人
  66. minInfo.set("nckd_direction", jsonObject.getString("direction"));//调入调出类型
  67. minInfo.set("nckd_storeplace", jsonObject.getString("storeplace"));//调入存放地点
  68. } else if ("1".equals(dispatchType)) {
  69. //查询变更中间表,如果有则修改,没有则新增
  70. QFilter filter = new QFilter("number", QCP.equals, jsonObject.getString("billno"));
  71. DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_change_mid","id",new QFilter[] {filter});
  72. if (mid.length > 0) {
  73. minInfo = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
  74. }else {
  75. minInfo = BusinessDataServiceHelper.newDynamicObject("nckd_e_change_mid");
  76. }
  77. minInfo.set("nckd_user_out", jsonObject.getString("sendUser"));//调出类型对应人员
  78. minInfo.set("nckd_user_in", jsonObject.getString("receiveUser"));//调入负责人
  79. minInfo.set("nckd_org_in", jsonObject.getString("orgId"));//归属机构
  80. minInfo.set("nckd_used_user", jsonObject.getString("receiveUser"));//调入使用人
  81. minInfo.set("nckd_direction", jsonObject.getString("direction"));//调入调出类型
  82. minInfo.set("nckd_storeplace", jsonObject.getString("storeplace"));//调入存放地点
  83. } else if ("2".equals(dispatchType)) {
  84. //查询报废单中间表,如果有则修改,没有则新增
  85. QFilter filter = new QFilter("number", QCP.equals, jsonObject.getString("billno"));
  86. DynamicObject[] mid = BusinessDataServiceHelper.load("nckd_e_discard_mid","id",new QFilter[] {filter});
  87. if (mid.length > 0) {
  88. minInfo = BusinessDataServiceHelper.loadSingle(mid[0].getPkValue(), mid[0].getDynamicObjectType().getName());
  89. }else {
  90. minInfo = BusinessDataServiceHelper.newDynamicObject("nckd_e_discard_mid");
  91. }
  92. minInfo.set("nckd_org_in", jsonObject.getString("orgId"));//归属机构
  93. minInfo.set("nckd_user_out", jsonObject.getString("sendUser"));//报废申请人
  94. }
  95. minInfo.set("number", jsonObject.getString("billno"));//来源单据号
  96. minInfo.set("nckd_date_out", jsonObject.getDate("sendDate"));//调出日期
  97. minInfo.set("nckd_reason", jsonObject.getString("reason"));//调拨原因
  98. minInfo.set("nckd_dispatch_type", jsonObject.getString("dispatchType"));//调拨类型 枚举 组织间,组织内
  99. minInfo.set("nckd_dept_in", jsonObject.getString("inDeptId"));//调入部门
  100. minInfo.set("createtime", jsonObject.getDate("sendDate"));//创建时间
  101. minInfo.set("status", "A");//暂存
  102. //拼接资产信息的组织和编码
  103. String cardNumber = "";
  104. JSONArray assetArray = jsonObject.getJSONArray("asset");
  105. for (int j = 0; j < assetArray.size(); j++) {
  106. //判断资产的组织是否相同
  107. JSONObject asset = assetArray.getJSONObject(j);
  108. String number = asset.getString("number");
  109. String orgId = asset.getString("orgId");
  110. cardNumber = cardNumber + number+ ":" + orgId + ",";
  111. if ("2".equals(jsonObject.getString("dispatchType"))) {
  112. minInfo.set("nckd_count", asset.getString("count"));//资产数量
  113. }
  114. }
  115. minInfo.set("nckd_card_number", cardNumber);
  116. SaveServiceHelper.save(new DynamicObject[]{minInfo});
  117. }
  118. }