自定义WebApi接口查询即时库存序列号

一、【需求场景】
接口获取了即时库存后,怎么查每一个物料的具体序列号
二、【问题分析】
系统当前查询对应即时库存的序列号的功能入口,是在即时库存明细选中对应记录联查"序列号报表",WebApi并无相关的接口可以直接调用。
换个思路实现,自定义一个WebApi接口,根据传入的即时库存ID,将联查报表的数据获取到即可满足需求。
三、【方案实现】
1、跟踪联查,追踪到报表核心的SQL查询脚本


2、自定义WebApi接口,传入即时库存ID,查询数据库组织数据返回
using Kingdee.BOS.ServiceFacade.KDServiceFx;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.WebApi.ServicesStub;
using Newtonsoft.Json.Linq;
using System.Data;
namespace CUS.WebApi.ServicesStub
{
public class InventorySerialQueryService: AbstractWebApiBusinessService
{
public InventorySerialQueryService(KDServiceContext context):base(context)
{
}
public JObject ExecuteService(string param)
{
return null;
}
public DataSet ExecuteDataSet(string param)
{
return DBServiceHelper.ExecuteDataSet(this.KDContext.Session.AppContext, BuildInventorySerialQuerySql(param));
}
public object ExecuteDynamicObject(string param)
{
return DBServiceHelper.ExecuteDynamicObject(this.KDContext.Session.AppContext, BuildInventorySerialQuerySql(param));
}
private string BuildInventorySerialQuerySql(string InvId)
{
string sql = string.Format(@"
SELECT 'BD_SerialMainFile' fformid,
SM.FSERIALID fserialId,
INV.FID fid,
SM.FNUMBER fserialno,
ORGL.FNAME fstockorgname,
MA.FMaterialId fmaterialId,
MA.FNUMBER fmaterialnumber,
MAL.FNAME fmaterialname,
MAL.FSpecification fmaterialmodel,
INV.FAuxPropID fauxpropcomid,
' ' fauxprop,
BDSTL.FNAME fstockname,
SMORG.FSTOCKSTATUS fstockstatus,
Row_number()
OVER(
ORDER BY INV.FID ASC, SM.FNUMBER ASC) fidentityid
FROM T_STK_INVENTORY INV
INNER JOIN T_BD_SERIALBILLTRACE TRA
ON INV.FID = TRA.FINVID
INNER JOIN (SELECT Max(T3.FBILLTRACEID) fbilltraceid
FROM T_BD_SERIALBILLTRACE T3
INNER JOIN (SELECT DISTINCT FSERIALID
FROM T_BD_自定义WebApi接口查询即时库存序列号
一、【需求场景】接口获取了即时库存后,怎么查每一个物料的具体序列号二、【问题分析】系统当前查询对应即时库存的序列号的功能入口,是在...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



