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.

354 lines
15 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 YYAdjustOrderDal : BaseApp
{
public YYAdjustOrderDal(RemotingProxy remotingProxy)
: base(remotingProxy)
{
}
#region 成员方法
/// <summary>
/// 根据传入条件获得菜单列表数据
/// </summary>
public DataTable getList(string strWhere, string filedOrder)
{
lock (_remotingProxy)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" select * from dbo.sys_part_cust_order ");
if (strWhere != null && !strWhere.Trim().Equals(""))
{
strSql.Append(" where " + strWhere);
}
if (filedOrder != null && !filedOrder.Trim().Equals(""))
{
strSql.Append(" order by " + filedOrder);
}
return this._remotingProxy.GetDataTable(strSql.ToString());
}
}
/// <summary>
/// 根据分页条件获取分页数据列表
/// </summary>
public Hashtable getListByPage(RemotingProxy.RecordStatus status, int PageSize, int PageIndex, string strWhere, string OrderBy)
{
lock (_remotingProxy)
{
Hashtable result = new Hashtable();
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));
StringBuilder sb = new StringBuilder();
sb.Append(" dbo.g_workorder_detail AS a");
sb.Append(" LEFT JOIN dbo.g_workorder AS d ON a.workorder_id=d.ruid LEFT JOIN dbo.sys_part AS e ON d.part_id=e.part_id");
sb.Append(" LEFT JOIN dbo.g_workorder_sn AS f ON a.ruid=f.wo_detail_id");
sb.Append(" LEFT JOIN dbo.g_sn_status AS g ON f.serial_number=g.serial_number");
sb.Append(" LEFT JOIN dbo.g_workorder AS w ON w.ruid = a.workorder_id");
sb.Append(" LEFT JOIN dbo.g_pdline_relation AS r ON r.pdline_id = w.pdline_id");
sb.Append(" LEFT JOIN dbo.sys_cust_pdline AS p ON p.cust_pdline_id = r.cust_pdline_id");
sb.Append(" LEFT JOIN dbo.sys_part AS b ON a.part_id = b.part_id ");
sb.Append(" LEFT JOIN dbo.g_stock_order AS o ON g.workorder=o.order_no ");
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", sb.ToString()));
StringBuilder sbColumn = new StringBuilder();
sbColumn.Append(" ROW_NUMBER() OVER ( ORDER BY a.seq ) AS a ,");
sbColumn.Append(" a.ruid ,");
sbColumn.Append(" a.seq ,");
sbColumn.Append(" a.workorder_id ,");
sbColumn.Append(" e.part_no AS modelNo,");
sbColumn.Append(" b.part_no ,");
sbColumn.Append(" b.part_spec ,");
sbColumn.Append(" p.cust_pdline_desc ,");
sbColumn.Append(" a.type ,");
sbColumn.Append(" a.create_ymd ,");
sbColumn.Append(" a.create_hms ,");
sbColumn.Append(" g.serial_number ,");
sbColumn.Append(" f.serial_number AS car_no , ");
sbColumn.Append(" g.work_flag,o.edi_id, ");
sbColumn.Append(" b.cust_part_no");
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", sbColumn.ToString()));
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>
/// 插入菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveYYAdjustOrder(Hashtable htParams)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO sys_part_cust_order (part_id ");
SqlStringBuilder.Append(" , cust_order ");
SqlStringBuilder.Append(" ,ship_unit) ");
SqlStringBuilder.Append(" VALUES(@part_id ");
SqlStringBuilder.Append(" , @cust_order ");
SqlStringBuilder.Append(" ,@ship_unit)");
return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), htParams);
}
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updateYYAdjustOrder(Hashtable htParams)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update sys_part_cust_order ");
SqlStringBuilder.Append("SET cust_order=@cust_order ");
SqlStringBuilder.Append(" , ship_unit=@ship_unit ");
SqlStringBuilder.Append("WHERE part_id=@part_id ");
return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), htParams);
}
}
/// <summary>
/// 删除菜单数据
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public int deleteYYAdjustOrder(String part_id)
{
lock (_remotingProxy)
{
Hashtable htparams = new Hashtable();
htparams.Add("@part_id", part_id);
String delStr = "delete from sys_part_cust_order where part_id = @part_id";
return _remotingProxy.ExecuteNonQuery(delStr, htparams);
}
}
/// <summary>
/// 上移
/// </summary>
public bool upRow(int seq, int ruid, int up_ruid, int up_seq)
{
lock (_remotingProxy)
{
List<string> SqlStrings = new List<string>(3);
List<Hashtable> Parameters = new List<Hashtable>(3);
Hashtable Params = new Hashtable(4);
Params.Add("@seq", seq);
Params.Add("@ruid", ruid);
Params.Add("@up_ruid", up_ruid);
Params.Add("@up_seq", up_seq);
SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@up_seq WHERE ruid=@ruid");
Parameters.Add(Params);
SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@seq WHERE ruid=@up_ruid");
Parameters.Add(Params);
return _remotingProxy.ExecuteSqlTransaction(SqlStrings, Parameters);
}
}
/// <summary>
/// 上移
/// </summary>
public bool upAll(int ruid, int seq, int up_ruid, int up_seq)
{
lock (_remotingProxy)
{
List<string> SqlStrings = new List<string>(3);
List<Hashtable> Parameters = new List<Hashtable>(3);
Hashtable Params = new Hashtable(4);
Params.Add("@ruid", ruid);
Params.Add("@seq", seq);
Params.Add("@up_ruid", up_ruid);
Params.Add("@up_seq", up_seq);
SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@up_seq WHERE ruid=@ruid");
Parameters.Add(Params);
SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@seq WHERE ruid=@up_ruid");
Parameters.Add(Params);
return _remotingProxy.ExecuteSqlTransaction(SqlStrings, Parameters);
}
}
/// <summary>
/// 获取上一条数据
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public DataTable selectAll(string CustPDLine)
{
lock (_remotingProxy)
{
Hashtable htparams = new Hashtable();
StringBuilder sb = new StringBuilder();
sb.Append(" SELECT ROW_NUMBER() OVER ( ORDER BY a.seq ) AS a ,");
sb.Append(" a.ruid ,");
sb.Append(" a.seq ,");
sb.Append(" a.workorder_id ,");
sb.Append(" e.part_no AS modelNo ,");
sb.Append(" b.part_no ,");
sb.Append(" b.part_spec ,");
sb.Append(" p.cust_pdline_desc ,");
sb.Append(" a.type ,");
sb.Append(" a.create_ymd ,");
sb.Append(" a.create_hms ,");
sb.Append(" g.serial_number ,");
sb.Append(" w.car_no ,");
sb.Append(" g.work_flag");
sb.Append(" FROM dbo.g_workorder_detail AS a");
sb.Append(" LEFT JOIN dbo.g_workorder AS d ON a.workorder_id = d.ruid");
sb.Append(" LEFT JOIN dbo.sys_part AS e ON d.part_id = e.part_id");
sb.Append(" LEFT JOIN dbo.g_workorder_sn AS f ON a.ruid = f.wo_detail_id");
sb.Append(" LEFT JOIN dbo.g_sn_status AS g ON f.serial_number = g.serial_number");
sb.Append(" LEFT JOIN dbo.g_workorder AS w ON w.ruid = a.workorder_id");
sb.Append(" LEFT JOIN dbo.g_pdline_relation AS r ON r.pdline_id = w.pdline_id");
sb.Append(" LEFT JOIN dbo.sys_cust_pdline AS p ON p.cust_pdline_id = r.cust_pdline_id");
sb.Append(" LEFT JOIN dbo.sys_part AS b ON a.part_id = b.part_id ");
sb.Append(" WHERE p.cust_pdline_name='" + CustPDLine + "' and g.work_flag <0 and a.create_ymd>(SELECT CONVERT(VARCHAR(10), GETDATE()- 15, 120)) AND a.enabled='Y' ORDER BY a.seq ");
DataTable dt = _remotingProxy.GetDataTable(sb.ToString(), htparams);
return dt;
}
}
/// <summary>
/// 获取下拉框菜单数据
/// </summary>
/// <returns></returns>
public DataTable getSelectYYAdjustOrder()
{
lock (_remotingProxy)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select part_id as [value] ,part_no as [key] from sys_part where part_type = '1' ");
return _remotingProxy.GetDataTable(strSql.ToString());
}
}
public int deleteOrder(String guid)
{
lock (_remotingProxy)
{
if (guid == null)
return 0;
return _remotingProxy.ExecuteNonQuery("UPDATE dbo.g_workorder_detail SET enabled='N',update_ymd=dbo.get_ymd(),update_hms =dbo.get_hms() WHERE ruid IN (" + guid + ")");
}
}
public string getPartLocation(string ruid)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT part_location ");
SqlStringBuilder.Append("FROM dbo.g_workorder_sn a ");
SqlStringBuilder.Append(" LEFT JOIN sys_part b ON a.part_id = b.part_id ");
SqlStringBuilder.Append("WHERE a.wo_detail_id = " + ruid + " ");
return _remotingProxy.GetScalar(SqlStringBuilder.ToString()).ToString();
}
}
public int deleteOrderInfo(String ruid, string custPdlineDesc, string partLocation)
{
lock (_remotingProxy)
{
if (ruid == null)
return 0;
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.g_workorder_detail ");
SqlStringBuilder.Append("SET enabled = 'N', update_ymd=dbo.get_ymd(),update_hms =dbo.get_hms() ");
SqlStringBuilder.Append("WHERE ruid IN ( ");
SqlStringBuilder.Append(" SELECT a.ruid ");
SqlStringBuilder.Append(" FROM dbo.g_workorder_detail a ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_workorder b ON a.workorder_id = b.ruid ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_workorder_sn c ON a.ruid = c.wo_detail_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_pdline d ON b.pdline_id = d.pdline_id ");
SqlStringBuilder.Append(" LEFT JOIN sys_part e ON c.part_id = e.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_pdline_relation f ON d.pdline_id = f.pdline_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_cust_pdline g ON f.cust_pdline_id = g.cust_pdline_id ");
SqlStringBuilder.Append(" WHERE a.enabled = 'Y' ");
SqlStringBuilder.Append(" AND g.cust_pdline_name = @custPdlineDesc ");
SqlStringBuilder.Append(" AND a.ruid >= @ruid ");
if (partLocation != "01" && partLocation != "02")
{
SqlStringBuilder.Append(" AND e.part_location NOT IN ( '01', '02' ) ");
}
else
{
SqlStringBuilder.Append(" AND e.part_location IN ( '01', '02' ) ");
}
SqlStringBuilder.Append(" ) ");
Hashtable ht = new Hashtable(2);
ht.Add("@ruid", ruid);
ht.Add("@custPdlineDesc", custPdlineDesc);
return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), ht);
}
}
#endregion 成员方法
}
}