【WEBAPI】供应商冻结/反冻结自定义接口案例原创
23人赞赏了该文章
366次浏览
编辑于2023年11月01日 13:56:47
【应用场景】
目前供应商的冻结和反冻结操作,是表单插件实现,没有标准对外的接口。这时候想要通过API的方式调用冻结、反冻结操作,需要自行二开自定义接口
【代码案例】
/// <summary> /// 供应商冻结/反冻结 /// </summary> /// <param name="ctx">上下文</param> /// <param name="freezeLimit">冻结范围</param> /// <param name="freezeStatus">冻结/反冻结状态</param> /// <param name="fIds">供应商的FID</param> public void UpdateFreeze(Context ctx, string freezeLimit, string freezeStatus, string fIds) { List<SqlParam> paras = new List<SqlParam>(); List<SqlObject> lstSqlObj = new List<SqlObject>(); string SQL = string.Format(" Update t_BD_SupplierBusiness SET FFreezeLimit = @FreezeLimit, FBusinessStatus = @FreezeStatus WHERE FSupplierId in ({0})", fIds); SqlParam param = new SqlParam("@FreezeLimit", DbType.String, freezeLimit); paras.Add(param); param = new SqlParam("@FreezeStatus", DbType.String, freezeStatus); paras.Add(param); lstSqlObj.Add(new SqlObject(SQL, paras)); if (freezeStatus.EqualsIgnoreCase("A"))//反冻结时清空冻结人和冻结日期 { SQL = string.Format(" Update t_BD_SupplierBusiness SET FFreezeOperator = @FreezeOperator, FFREEZEDATE = @FreezeDate WHERE FSupplierId in ({0})", fIds); paras = new List<SqlParam>(); param = new SqlParam("@FreezeOperator", DbType.Int64, 0); paras.Add(param); param = new SqlParam("@FreezeDate", DbType.DateTime, null); paras.Add(param); lstSqlObj.Add(new SqlObject(SQL, paras)); } else//冻结时写入冻结人和冻结日期 { SQL = string.Format(" Update t_BD_SupplierBusiness SET FFreezeOperator = @FreezeOperator, FFREEZEDATE = @FreezeDate WHERE FSupplierId in ({0})", fIds); paras = new List<SqlParam>(); param = new SqlParam("@FreezeOperator", DbType.Int64, ctx.UserId); paras.Add(param); param = new SqlParam("@FreezeDate", DbType.DateTime, BOS.App.ServiceHelper.GetService<ITimeService>().GetSystemDateTime(ctx)); paras.Add(param); lstSqlObj.Add(new SqlObject(SQL, paras)); } DBUtils.ExecuteBatch(ctx, lstSqlObj); }
【注意事项】
<1>冻结、反冻结操作,更新供应商的冻结人(FFreezeOperator)、冻结日期(FreezeDate)、冻结范围(FFreezeLimit)、业务状态(FBusinessStatus)的数据
<2>自定义接口的封装参考:
二开案例.WebApi.从零开发自定义WebApi接口 (kingdee.com)
<3>相关的枚举信息可在BOS中获取:
推荐阅读