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.

553 lines
25 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 SupplierProductionPlanPrintDal : BaseApp
{
public SupplierProductionPlanPrintDal(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(" ( SELECT DISTINCT ");
sb.Append(" ruid , ");
sb.Append(" modelNo , ");
sb.Append(" value = ( STUFF(( SELECT ',' + part_no + '-' ");
sb.Append(" + enum_desc ");
sb.Append(" FROM ( SELECT a.ruid , ");
sb.Append(" d.part_no AS modelNo , ");
sb.Append(" c.part_no , ");
sb.Append(" e.document_data , ");
sb.Append(" f.enum_desc , ");
sb.Append(" g.shift_name , ");
sb.Append(" a.create_ymd + ' ' ");
sb.Append(" + a.create_hms AS dateTime ");
sb.Append(" FROM dbo.g_workorder AS a ");
sb.Append(" LEFT JOIN dbo.g_workorder_detail ");
sb.Append(" AS b ON a.ruid = b.workorder_id ");
sb.Append(" LEFT JOIN dbo.sys_part ");
sb.Append(" AS c ON b.part_id = c.part_id ");
sb.Append(" LEFT JOIN sys_part ");
sb.Append(" AS d ON d.part_id = a.part_id ");
sb.Append(" LEFT JOIN dbo.g_stock_order ");
sb.Append(" AS e ON a.order_no = e.order_no ");
sb.Append(" LEFT JOIN dbo.sys_enum ");
sb.Append(" AS f ON c.part_location = f.enum_value ");
sb.Append(" AND f.enum_type = 'sys_part_location' ");
sb.Append(" LEFT JOIN dbo.sys_shift ");
sb.Append(" AS g ON g.shift_id = e.shift_id ");
sb.Append(" WHERE b.enabled = 'Y' ");
sb.Append(" AND a.ruid > 954 ");
sb.Append(" ) AS a1 ");
sb.Append(" WHERE a1.ruid = a2.ruid ");
sb.Append(" FOR ");
sb.Append(" XML PATH('') ");
sb.Append(" ), 1, 1, '') ) , ");
sb.Append(" document_data , ");
sb.Append(" shift_name , ");
sb.Append(" dateTime ");
sb.Append(" FROM ( SELECT a.ruid , ");
sb.Append(" d.part_no AS modelNo , ");
sb.Append(" c.part_no , ");
sb.Append(" e.document_data , ");
sb.Append(" f.enum_desc , ");
sb.Append(" g.shift_name , ");
sb.Append(" a.create_ymd + ' ' + a.create_hms AS dateTime ");
sb.Append(" FROM dbo.g_workorder AS a ");
sb.Append(" LEFT JOIN dbo.g_workorder_detail AS b ON a.ruid = b.workorder_id ");
sb.Append(" LEFT JOIN dbo.sys_part AS c ON b.part_id = c.part_id ");
sb.Append(" LEFT JOIN sys_part AS d ON d.part_id = a.part_id ");
sb.Append(" LEFT JOIN dbo.g_stock_order AS e ON a.order_no = e.order_no ");
sb.Append(" LEFT JOIN dbo.sys_enum AS f ON c.part_location = f.enum_value ");
sb.Append(" AND f.enum_type = 'sys_part_location' ");
sb.Append(" LEFT JOIN dbo.sys_shift AS g ON g.shift_id = e.shift_id ");
sb.Append(" WHERE b.enabled = 'Y' ");
sb.Append(" AND a.ruid > 954 ");
sb.Append(" ) AS a2 ");
sb.Append(" ) AS A3 ");
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Table", sb.ToString()));
StringBuilder sbColumn = new StringBuilder(1024);
sbColumn.Append(" * ");
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@Column", " * "));
parameters.Add(new StoreProcedureParameter(DbType.String, ParameterDirection.Input, "@OrderColumn", " ruid "));
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", " 1=1 "));
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>
/// <returns></returns>
public DataTable GetCustPDLine()
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT cust_pdline_name as [value], ");
SqlStringBuilder.Append("cust_pdline_name as [key] ");
SqlStringBuilder.Append("FROM dbo.sys_cust_pdline ");
SqlStringBuilder.Append("WHERE enabled = 'Y' ");
SqlStringBuilder.Append("ORDER BY cust_pdline_name ");
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
}
}
public DataTable GetPrint(string strWhere, string cbCustPDLine, string pdLine, string txtCreateDate)
{
lock (_remotingProxy)
{
string sql = @" SELECT j.serial_number ,
SUBSTRING(j.serial_number, 3, 3) AS gc ,
SUBSTRING(j.serial_number, 19, 4) AS nob ,
j.create_ymd ,
h.type_name ,
g.model_name ,
d.part_class ,
d.part_no_3c ,
d.part_no ,
d.part_spec,k.document_data,m.shift_name
FROM dbo.g_workorder_detail a
LEFT JOIN dbo.g_workorder b ON a.workorder_id = b.ruid
LEFT JOIN dbo.g_workorder_sn c ON a.ruid = c.wo_detail_id
LEFT JOIN dbo.sys_part d ON a.part_id = d.part_id
LEFT JOIN dbo.sys_part f ON b.part_id = f.part_id
LEFT JOIN dbo.sys_model g ON f.model_id = g.model_id
LEFT JOIN dbo.sys_model_type h ON g.model_type_id = h.type_id
LEFT JOIN dbo.g_sn_status j ON j.serial_number = c.serial_number
LEFT JOIN dbo.g_stock_order k ON j.workorder=k.order_no
LEFT JOIN dbo.sys_shift m ON k.shift_id=m.shift_id" + strWhere;
return _remotingProxy.GetDataTable(sql);
}
}
public DataTable GetSummary(string txtCreateDate)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT SUBSTRING(j.serial_number, 19, 4) AS no , ");
SqlStringBuilder.Append(" h.type_name , ");
SqlStringBuilder.Append(" d.part_spec , ");
SqlStringBuilder.Append(" g.model_name , ");
SqlStringBuilder.Append(" d.part_no , ");
SqlStringBuilder.Append(" 1 AS qty , ");
SqlStringBuilder.Append(" SUBSTRING(j.serial_number, 3, 3) AS shiftCode , ");
SqlStringBuilder.Append(" j.create_ymd , k.document_data ");
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_part d ON a.part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part f ON b.part_id = f.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_model g ON f.model_id = g.model_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_model_type h ON g.model_type_id = h.type_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_sn_status j ON j.serial_number = c.serial_number ");
SqlStringBuilder.Append(" LEFT JOIN dbo.g_stock_order k ON j.workorder=k.order_no ");
SqlStringBuilder.Append("WHERE a.enabled = 'Y' ");
SqlStringBuilder.Append(" AND j.work_flag = -1 AND k.document_data ='" + txtCreateDate + "' ");
SqlStringBuilder.Append("ORDER BY shiftCode,a.ruid,a.create_ymd ");
return _remotingProxy.GetDataTable(SqlStringBuilder.ToString());
}
}
/// <summary>
/// 插入菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveAdjustOrder(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 updateAdjustOrder(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 deleteAdjustOrder(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="addSeqNo"></param>
/// <param name="SequenceNumber"></param>
/// <param name="ruidList"></param>
/// <returns></returns>
public bool adjustSeq(int addSeqNo, int SequenceNumber, string ruidList, string prodType)
{
lock (_remotingProxy)
{
// string sql = @"UPDATE dbo.g_workorder_detail
// SET seq = seq + " + addSeqNo + @"
// WHERE seq >= " + SequenceNumber + @"
// AND ruid NOT IN ( " + ruidList + " )";
string sql = @"UPDATE dbo.g_workorder_detail
SET seq = seq + " + addSeqNo + @"
WHERE type ='" + prodType + @"' AND ruid IN (
SELECT a.ruid
FROM dbo.g_workorder_detail a
LEFT JOIN dbo.g_workorder_sn b ON a.ruid = b.wo_detail_id
LEFT JOIN dbo.g_sn_status c ON b.serial_number = c.serial_number
WHERE c.work_flag < 0
AND a.seq >= " + SequenceNumber + @"
AND a.ruid NOT IN ( " + ruidList + " ) )";
return _remotingProxy.ExecuteNonQuery(sql) > 0;
}
}
public int maxSeq()
{
lock (_remotingProxy)
{
string sql = "SELECT MAX(seq) FROM dbo.g_workorder_detail";
object obj = _remotingProxy.GetScalar(sql);
return obj != null && obj != DBNull.Value ? Convert.ToInt32(obj) : 0;
}
}
/// <summary>
/// 向后调整
/// </summary>
/// <param name="addSeqNo"></param>
/// <param name="SequenceNumber"></param>
/// <param name="ruidList"></param>
/// <returns></returns>
public bool adjustSeq2(int addSeqNo, int SequenceNumber, string ruidList, string prodType)
{
lock (_remotingProxy)
{
// string sql = @"UPDATE dbo.g_workorder_detail
// SET seq = seq + " + addSeqNo + @"
// WHERE seq >= " + SequenceNumber + @"
// OR ruid IN ( " + ruidList + " )";
string sql = @"UPDATE dbo.g_workorder_detail
SET seq = seq + " + addSeqNo + @"
WHERE type ='" + prodType + @"' AND ruid IN (
SELECT a.ruid
FROM dbo.g_workorder_detail a
LEFT JOIN dbo.g_workorder_sn b ON a.ruid = b.wo_detail_id
LEFT JOIN dbo.g_sn_status c ON b.serial_number = c.serial_number
WHERE c.work_flag < 0
AND a.seq > " + SequenceNumber + @"
OR a.ruid IN ( " + ruidList + " ) )";
return _remotingProxy.ExecuteNonQuery(sql) > 0;
}
}
/// <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 getSelectAdjustOrder()
{
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, string prodType)
{
lock (_remotingProxy)
{
if (guid == null)
return 0;
//0506座椅不打印条码不显示生产队列防止在统计产量时影响实际数据
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE g_workorder_detail ");
SqlStringBuilder.Append("SET enabled = 'N' ");
SqlStringBuilder.Append("FROM g_workorder_detail a , ");
SqlStringBuilder.Append(" sys_part b ");
SqlStringBuilder.Append("WHERE a.part_id = b.part_id ");
SqlStringBuilder.Append(" AND b.part_location IN ( '04','07', '08' ) ");
SqlStringBuilder.Append(" AND a.enabled = 'Y' ");
SqlStringBuilder.Append("UPDATE dbo.g_workorder_detail SET enabled='N' WHERE type='" + prodType + "' AND ruid IN (" + guid + ") ");
return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString());
}
}
public string getPartLocation(string ruid)
{
lock (_remotingProxy)
{
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT part_location ");
SqlStringBuilder.Append("FROM dbo.g_workorder_detail a ");
SqlStringBuilder.Append(" LEFT JOIN sys_part b ON a.part_id = b.part_id ");
SqlStringBuilder.Append("WHERE a.seq = " + ruid + " ");
return _remotingProxy.GetScalar(SqlStringBuilder.ToString()).ToString();
}
}
public int deleteOrderInfo(String seq, string custPdlineDesc, string partLocation, string prodType, string pdLine)
{
lock (_remotingProxy)
{
if (seq == null)
return 0;
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE dbo.g_workorder_detail ");
SqlStringBuilder.Append("SET enabled = 'N' ");
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 AND f.pdline_id=@pdLine ");
SqlStringBuilder.Append(" AND a.seq >= @seq AND a.type=@type ");
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("@seq", seq);
ht.Add("@custPdlineDesc", custPdlineDesc);
ht.Add("@type", prodType);
ht.Add("@pdLine", pdLine);
return _remotingProxy.ExecuteNonQuery(SqlStringBuilder.ToString(), ht);
}
}
#endregion 成员方法
}
}