package bamp.basedata.webapi; import kd.bos.algo.DataSet; import kd.bos.algo.Row; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.openapi.common.custom.annotation.ApiController; import kd.bos.openapi.common.custom.annotation.ApiMapping; import kd.bos.openapi.common.custom.annotation.ApiParam; import kd.bos.openapi.common.custom.annotation.ApiPostMapping; import kd.bos.openapi.common.result.CustomApiResult; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.scmc.im.report.algox.util.ImReportQueryHelper; import kd.scmc.im.report.algox.util.ReqParam; import java.io.Serializable; import java.util.*; /* * 客户新增插件 * wangj 2025-01-15 * 主要功能:新增主数据客户并分配组织 */ @SuppressWarnings("all") @ApiController(value = "open", desc = "报表查询接口插件") @ApiMapping(value = "/report") public class MaterialSFHZQueryWebApiPlugin implements Serializable { private static final Log log = LogFactory.getLog(MaterialSFHZQueryWebApiPlugin.class); int successCount = 0; int failCount = 0; @ApiPostMapping(value = "materialInvInfo_query", desc = "同步接口") public CustomApiResult> materialInvInfo_query(@ApiParam(value = "提交参数") List> data ) { CustomApiResult customApiResult = new CustomApiResult(); customApiResult.setStatus(true); customApiResult.setErrorCode("0"); try { Map resultDatasMap = new HashMap(); List resultDatas = new ArrayList(); for(Map param : data){ Map resultData = new HashMap(); try { doQuery(param,resultData); }catch (Exception e) { resultData.put("id",""); resultData.put("errors",e.getMessage()); resultData.put("billStatus","false"); failCount ++; } resultDatas.add(resultData); } resultDatasMap.put("failCount",failCount); resultDatasMap.put("successCount",successCount); resultDatasMap.put("result",resultDatas); customApiResult.setData(resultDatasMap); } catch (Exception e) { customApiResult.setStatus(false); customApiResult.setMessage(e.getMessage()); customApiResult.setErrorCode("400"); } return customApiResult; } private void doQuery(Map param, Map resultData) { String errorInfo = ""; ReqParam params = new ReqParam(); List orgIds = new ArrayList(); if(param.get("invorg")!=null && !"".equals(param.get("invorg"))){ List orgNumbers = new ArrayList(); String[] invorg = param.get("invorg").toString().split(","); for(String orgNumber : invorg){ orgNumbers.add(orgNumber); } QFilter qFilter_number = new QFilter("number", QCP.in, orgNumbers); DynamicObject[] orgCol = BusinessDataServiceHelper.load("bos_org", "id", new QFilter[]{qFilter_number}); for(DynamicObject org : orgCol){ orgIds.add(org.getLong("id")); } if(orgIds.size()>0){ params.setOrgIds(orgIds); } }else{ errorInfo = "组织不能为空;"; } String beginDate = ""; if(param.get("beginDate")!=null){ beginDate = param.get("beginDate").toString(); params.setBeginDate(param.get("beginDate").toString()); }else{ errorInfo = errorInfo + "查询起始日期不能为空;"; } String endDate = ""; if(param.get("endDate")!=null){ endDate = param.get("endDate").toString(); params.setEndDate(param.get("endDate").toString()); }else{ errorInfo = errorInfo + "查询结束日期不能为空;"; } // if(param.get("groupstandard")!=null){ // // }else{ // errorInfo = errorInfo + "物料分类标准不能为空;"; // } // params.setqFilter(); DataSet dataSet = ImReportQueryHelper.query(params); while (dataSet.hasNext()) { Row row = dataSet.next(); log.info(row.toString()); } } }