using System; using System.Data; using System.Text; using System.Collections.Generic; using System.Data.SqlClient; using ApServerProvider; using DbCommon; using System.Collections; using Estsh.Web.Util; /*************************************************************************************************** * * 作者:王勇 * * *************************************************************************************************/ namespace Estsh.Core.Repositories { /// /// 处理菜单模块的业务数据 /// public class BOMReleaseDal : BaseApp { public BOMReleaseDal(RemotingProxy remotingProxy) : base(remotingProxy) { } /// /// 根据分页条件获取分页数据列表 /// public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy) { lock (_remotingProxy) { Hashtable result = new Hashtable(); string column = "WERKS AS factory_code, MATNR AS part_no, STLAL AS remark, "; column += "BMEIN AS unit, IDNRK AS item_part_no, MENGE AS item_count, "; column += "MEINS AS item_unit, DATUV AS start_ymd, AENNR AS version "; List parameters = new List(); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalCount", 100)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Output, "@TotalPage", 100)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", "dbo.SAP_BOM")); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", column)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", OrderBy)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@GroupColumn", "")); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@PageSize", PageSize)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@CurrentPage", PageIndex)); parameters.Add(new StoreProcedureParameter(DbType.Int32, ParameterDirection.Input, "@Group", 0)); parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Condition", strWhere)); Hashtable values = new Hashtable(2); DataTable dt = new DataTable(); dt = _remotingProxy.ExecuteSotreProcedure("Com_Pagination", parameters, ref values); ArrayList dataList = DataTypeConvert.NewObject.DataTableToArrayList(dt); result.Add("dataList", dataList); result.Add("totalCount", values["@TotalCount"].ToString()); return result; } } /// /// 查询BOM版本 /// /// public DataTable getVersion() { lock (_remotingProxy) { string sql = "SELECT DISTINCT AENNR AS [value] ,AENNR AS [key] FROM sap_bom order BY AENNR"; return _remotingProxy.GetDataTable(sql); } } /// /// 查询当前版本中的所有零件 /// /// 零件 /// 版本 /// public DataTable getAllPart(string where, string version) { lock (_remotingProxy) { StringBuilder sb = new StringBuilder(); sb.Append("SELECT MATNR FROM sap_bom WHERE AENNR='" + version + "'" + where); sb.Append(" AND MATNR NOT IN(SELECT part_no FROM dbo.sys_bom )"); sb.Append(" GROUP BY Matnr"); return _remotingProxy.GetDataTable(sb.ToString()); } } /// /// 按照总成零件号和BOM版本同步 SAP BOM 数据 /// /// 总成零件号 /// BOM版本 /// 是否同步成功 public bool SyncSAPBOMByPartNo(string partNo, string version) { lock (_remotingProxy) { string SqlString = "exec sys_sync_bom_part @part_no, @version, ''"; Hashtable Params = new Hashtable(2); Params.Add("@part_no", partNo); Params.Add("@version", version); _remotingProxy.ExecuteNonQuery(SqlString, Params); return true; } } } }