You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
4.9 KiB
C#
122 lines
4.9 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 处理菜单模块的业务数据
|
|
/// </summary>
|
|
public class BOMReleaseDal : BaseApp
|
|
{
|
|
public BOMReleaseDal(RemotingProxy remotingProxy)
|
|
: base(remotingProxy)
|
|
{
|
|
}
|
|
/// <summary>
|
|
/// 根据分页条件获取分页数据列表
|
|
/// </summary>
|
|
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<StoreProcedureParameter> parameters = new List<StoreProcedureParameter>();
|
|
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询BOM版本
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询当前版本中的所有零件
|
|
/// </summary>
|
|
/// <param name="_where">零件</param>
|
|
/// <param name="version">版本</param>
|
|
/// <returns></returns>
|
|
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());
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 按照总成零件号和BOM版本同步 SAP BOM 数据
|
|
/// </summary>
|
|
/// <param name="partNo">总成零件号</param>
|
|
/// <param name="version">BOM版本</param>
|
|
/// <returns>是否同步成功</returns>
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|