MaterialSFHZQueryWebApiPlugin.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package bamp.basedata.webapi;
  2. import kd.bos.algo.DataSet;
  3. import kd.bos.algo.Row;
  4. import kd.bos.dataentity.entity.DynamicObject;
  5. import kd.bos.logging.Log;
  6. import kd.bos.logging.LogFactory;
  7. import kd.bos.openapi.common.custom.annotation.ApiController;
  8. import kd.bos.openapi.common.custom.annotation.ApiMapping;
  9. import kd.bos.openapi.common.custom.annotation.ApiParam;
  10. import kd.bos.openapi.common.custom.annotation.ApiPostMapping;
  11. import kd.bos.openapi.common.result.CustomApiResult;
  12. import kd.bos.orm.query.QCP;
  13. import kd.bos.orm.query.QFilter;
  14. import kd.bos.servicehelper.BusinessDataServiceHelper;
  15. import kd.scmc.im.report.algox.util.ImReportQueryHelper;
  16. import kd.scmc.im.report.algox.util.ReqParam;
  17. import java.io.Serializable;
  18. import java.util.*;
  19. /*
  20. * 客户新增插件
  21. * wangj 2025-01-15
  22. * 主要功能:新增主数据客户并分配组织
  23. */
  24. @SuppressWarnings("all")
  25. @ApiController(value = "open", desc = "报表查询接口插件")
  26. @ApiMapping(value = "/report")
  27. public class MaterialSFHZQueryWebApiPlugin implements Serializable {
  28. private static final Log log = LogFactory.getLog(MaterialSFHZQueryWebApiPlugin.class);
  29. int successCount = 0;
  30. int failCount = 0;
  31. @ApiPostMapping(value = "materialInvInfo_query", desc = "同步接口")
  32. public CustomApiResult<Map<String, Object>> materialInvInfo_query(@ApiParam(value = "提交参数") List<Map<String, Object>> data ) {
  33. CustomApiResult customApiResult = new CustomApiResult();
  34. customApiResult.setStatus(true);
  35. customApiResult.setErrorCode("0");
  36. try {
  37. Map resultDatasMap = new HashMap();
  38. List<Map> resultDatas = new ArrayList<Map>();
  39. for(Map param : data){
  40. Map resultData = new HashMap();
  41. try {
  42. doQuery(param,resultData);
  43. }catch (Exception e) {
  44. resultData.put("id","");
  45. resultData.put("errors",e.getMessage());
  46. resultData.put("billStatus","false");
  47. failCount ++;
  48. }
  49. resultDatas.add(resultData);
  50. }
  51. resultDatasMap.put("failCount",failCount);
  52. resultDatasMap.put("successCount",successCount);
  53. resultDatasMap.put("result",resultDatas);
  54. customApiResult.setData(resultDatasMap);
  55. } catch (Exception e) {
  56. customApiResult.setStatus(false);
  57. customApiResult.setMessage(e.getMessage());
  58. customApiResult.setErrorCode("400");
  59. }
  60. return customApiResult;
  61. }
  62. private void doQuery(Map param, Map resultData) {
  63. String errorInfo = "";
  64. ReqParam params = new ReqParam();
  65. List<Long> orgIds = new ArrayList();
  66. if(param.get("invorg")!=null && !"".equals(param.get("invorg"))){
  67. List<String> orgNumbers = new ArrayList();
  68. String[] invorg = param.get("invorg").toString().split(",");
  69. for(String orgNumber : invorg){
  70. orgNumbers.add(orgNumber);
  71. }
  72. QFilter qFilter_number = new QFilter("number", QCP.in, orgNumbers);
  73. DynamicObject[] orgCol = BusinessDataServiceHelper.load("bos_org", "id", new QFilter[]{qFilter_number});
  74. for(DynamicObject org : orgCol){
  75. orgIds.add(org.getLong("id"));
  76. }
  77. if(orgIds.size()>0){
  78. params.setOrgIds(orgIds);
  79. }
  80. }else{
  81. errorInfo = "组织不能为空;";
  82. }
  83. String beginDate = "";
  84. if(param.get("beginDate")!=null){
  85. beginDate = param.get("beginDate").toString();
  86. params.setBeginDate(param.get("beginDate").toString());
  87. }else{
  88. errorInfo = errorInfo + "查询起始日期不能为空;";
  89. }
  90. String endDate = "";
  91. if(param.get("endDate")!=null){
  92. endDate = param.get("endDate").toString();
  93. params.setEndDate(param.get("endDate").toString());
  94. }else{
  95. errorInfo = errorInfo + "查询结束日期不能为空;";
  96. }
  97. // if(param.get("groupstandard")!=null){
  98. //
  99. // }else{
  100. // errorInfo = errorInfo + "物料分类标准不能为空;";
  101. // }
  102. // params.setqFilter();
  103. DataSet dataSet = ImReportQueryHelper.query(params);
  104. while (dataSet.hasNext()) {
  105. Row row = dataSet.next();
  106. log.info(row.toString());
  107. }
  108. }
  109. }