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.

498 lines
23 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 Dapper;
using Estsh.Core.Dapper;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using System.Collections;
using System.Data;
using System.Text;
/***************************************************************************************************
*
* 更新人sitong.dong
* 描述:处理菜单模块的业务数据
* 修改时间2022.06.22
* 描述:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Repositories
{
public class AdjustOrderRepository : BaseRepository<SysPartCustOrder>, IAdjustOrderRepository
{
public AdjustOrderRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
#region 成员方法
/// <summary>
/// 根据传入条件获得菜单列表数据
/// </summary>
public List<SysPartCustOrder> getList(string strWhere, string filedOrder)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
strWhere += " and enabled='Y' ";
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 dbConn.Query<SysPartCustOrder>(strSql.ToString()).ToList();
}
}
/// <summary>
/// 根据分页条件获取分页数据列表
/// </summary>
public Hashtable getListByPage(int PageSize, int PageIndex, string OrderBy, string stageId, string SN, string partNo, string enabled)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
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_workorder_seq AS c ON a.ruid = c.workorder_id ");
sb.Append(" LEFT JOIN dbo.sys_enum AS i ON i.enum_value = b.part_location ");
sb.Append(" AND i.enum_type = 'sys_part_location' AND i.enabled = 'Y' ");
sb.Append(" LEFT JOIN dbo.g_stage_location AS h ON h.enum_id = i.enum_id ");
sb.Append(" LEFT JOIN dbo.g_stock_order AS s ON s.order_no = d.order_no ");
sb.Append(" LEFT JOIN dbo.sys_enum AS z ON g.prod_type = z.enum_value AND z.enum_type = 'sys_prod_type' AND z.enabled = 'Y' ");
parameters.Add("@Table", sb.ToString());
StringBuilder sbColumn = new StringBuilder();
sbColumn.Append(" ROW_NUMBER() OVER ( ORDER BY a.seq ) AS a ,");
sbColumn.Append(" a.ruid ,");
sbColumn.Append(" c.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_time ,");
sbColumn.Append(" g.serial_number ,");
sbColumn.Append(" w.car_no,");
sbColumn.Append(" b.cust_part_no,s.batch_number,z.enum_desc AS prod_type");
String strWhere = " c.stage_id = " + stageId;
strWhere += " AND h.stage_id = " + stageId;
strWhere += " AND a.create_time>(SELECT CONVERT(VARCHAR(10), GETDATE()- 15, 120))";
strWhere += " AND a.enabled='Y'";
strWhere += " AND c.seq > ( SELECT MAX(wo_detail_seq)";
strWhere += " FROM dbo.sys_terminal AS a";
strWhere += " LEFT JOIN dbo.sys_terminal_point AS b ON a.terminal_id = b.terminal_id";
strWhere += " WHERE stage_id = " + stageId + ")";
if (!string.IsNullOrEmpty(SN) && SN.ToLower() != "null")
{
strWhere += "AND g.serial_number ='" + SN + "' ";
}
if (!string.IsNullOrEmpty(partNo) && partNo.ToLower() != "null")
{
strWhere += "AND b.part_no ='" + partNo + "' ";
}
if (!string.IsNullOrEmpty(enabled) && enabled.ToLower() != "null")
{
strWhere += "AND a.enabled ='" + enabled + "' ";
}
parameters.Add("@Column", sbColumn.ToString());
parameters.Add("@OrderColumn", OrderBy);
parameters.Add("@GroupColumn", "");
parameters.Add("@PageSize", PageSize);
parameters.Add("@CurrentPage", PageIndex);
parameters.Add("@Group", 0);
parameters.Add("@Condition", strWhere);
List<GWorkorderDetail> sysPartCustOrderList = dbConn.Query<GWorkorderDetail>("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", sysPartCustOrderList);
result.Add("totalCount", parameters.Get<int>("@TotalCount"));
return result;
}
}
/// <summary>
/// 插入菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveAdjustOrder(SysPartCustOrder Params)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO sys_part_cust_order (part_id ");
SqlStringBuilder.Append(" , cust_order ");
SqlStringBuilder.Append(" , enabled ");
SqlStringBuilder.Append(" , create_userid ");
SqlStringBuilder.Append(" , create_time ");
SqlStringBuilder.Append(" ,ship_unit) ");
SqlStringBuilder.Append(" VALUES(@partId ");
SqlStringBuilder.Append(" , @custOrder ");
SqlStringBuilder.Append(" , 'Y' ");
SqlStringBuilder.Append(" , @createUserid ");
SqlStringBuilder.Append(" , getdate()");
SqlStringBuilder.Append(" ,@shipUnit)");
int result = dbConn.Execute(SqlStringBuilder.ToString(), Params);
return result;
}
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updateAdjustOrder(SysPartCustOrder Params)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("update sys_part_cust_order ");
SqlStringBuilder.Append("SET cust_order=@custOrder ");
SqlStringBuilder.Append(" , ship_unit=@shipUnit ");
SqlStringBuilder.Append(" ,update_userid = @updateUserId ");
SqlStringBuilder.Append(" ,update_time = getdate()");
SqlStringBuilder.Append("WHERE part_id=@partId ");
int result = dbConn.Execute(SqlStringBuilder.ToString(), Params);
return result;
}
}
/// <summary>
/// 删除菜单数据
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public int deleteAdjustOrder(String part_id)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable Params = new Hashtable();
Params.Add("@part_id", part_id);
String delStr = "update sys_part_cust_order set Enabled='N' where part_id = @part_id";
int result = dbConn.Execute(delStr, Params);
return result;
}
}
/// <summary>
/// 上移
/// </summary>
public bool upRow(int seq, int ruid, int up_ruid, int up_seq)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
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 ,update_userid = @updateUserId
,update_time = CONVERT(VARCHAR(10),GETDATE(),23) WHERE ruid=@ruid");
Parameters.Add(Params);
SqlStrings.Add(@"UPDATE dbo.g_workorder_detail SET seq=@seq ,update_userid = @updateUserId ,update_time = CONVERT(VARCHAR(10),GETDATE(),23)
WHERE ruid=@up_ruid");
Parameters.Add(Params);
int result = 0;
for (int i = 0; i < SqlStrings.Count; i++)
{
result = dbConn.Execute(SqlStrings[i], Parameters);
}
return result > 0 ? true : false;
}
}
/// <summary>
/// 上移
/// </summary>
public bool upAll(int ruid, int seq, int up_ruid, int up_seq)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
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 ,update_userid = @updateUserId ,update_time=getdate() WHERE ruid=@ruid");
Parameters.Add(Params);
SqlStrings.Add("UPDATE dbo.g_workorder_detail SET seq=@seq ,update_userid = @updateUserId ,update_time=getdate() WHERE ruid=@up_ruid");
Parameters.Add(Params);
int result = 0;
for (int i = 0; i < SqlStrings.Count; i++)
{
result = dbConn.Execute(SqlStrings[i], Parameters);
}
return result > 0 ? true : false;
}
}
/// <summary>
/// 获取上一条数据
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public List<GWorkorderDetail> selectAll(string CustPDLine)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
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_time ,");
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_time>(SELECT CONVERT(VARCHAR(10), GETDATE()- 15, 120)) AND a.enabled='Y' ORDER BY a.seq ");
List<GWorkorderDetail> result = dbConn.Query<GWorkorderDetail>(sb.ToString()).ToList();
return result;
}
}
/// <summary>
/// 获取下拉框菜单数据
/// </summary>
/// <returns></returns>
public List<KeyValueResult> getSelectAdjustOrder()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("select part_id as [value] ,part_no as [key] from sys_part where part_type = '1' and enabled='Y' ");
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
return result;
}
}
public int deleteOrder(String guid)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
if (guid == null)
return 0;
string str = "UPDATE dbo.g_workorder_detail SET enabled='N' WHERE ruid IN (" + guid + ")";
int result = dbConn.Execute(str);
return result;
}
}
public string getPartLocation(string ruid)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
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 + " and a.enabled='Y' ");
string result= dbConn.ExecuteScalar(SqlStringBuilder.ToString()).ToString();
return result;
}
}
public int deleteOrderInfo(String ruid, string custPdlineDesc, string partLocation)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
if (ruid == 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 ");
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(" ) ");
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@ruid", ruid);
parameters.Add("@custPdlineDesc", custPdlineDesc);
int result = dbConn.Execute(SqlStringBuilder.ToString(), parameters);
return result;
}
}
//启用
public int EnableData(String id)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update g_workorder_detail set Enabled='Y' WHERE ruid = @ruid";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@ruid", id);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
//禁用
public int DisableData(String id)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update g_workorder_detail set Enabled='N' WHERE ruid = @ruid";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@ruid", id);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
/// <summary>
/// 根据分页条件获取分页数据列表
/// </summary>
public Hashtable getListByPage(int PageSize, int PageIndex, string OrderBy, string stageId)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
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_workorder_seq AS c ON a.ruid = c.workorder_id ");
sb.Append(" LEFT JOIN dbo.sys_enum AS i ON i.enum_value = b.part_location ");
sb.Append(" AND i.enum_type = 'sys_part_location' AND i.enabled = 'Y' ");
sb.Append(" LEFT JOIN dbo.g_stage_location AS h ON h.enum_id = i.enum_id ");
parameters.Add("@Table", sb.ToString());
StringBuilder sbColumn = new StringBuilder();
sbColumn.Append(" ROW_NUMBER() OVER ( ORDER BY a.seq ) AS a ,");
sbColumn.Append(" a.ruid ,");
sbColumn.Append(" c.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_time ,");
sbColumn.Append(" g.serial_number ,");
sbColumn.Append(" w.car_no,");
sbColumn.Append(" b.cust_part_no");
String strWhere = " c.stage_id = " + stageId;
strWhere += " AND h.stage_id = " + stageId;
strWhere += " AND a.create_time>(SELECT CONVERT(VARCHAR(10), GETDATE()- 15, 120))";
strWhere += " AND a.enabled='Y'";
strWhere += " AND c.seq > ( SELECT MAX(wo_detail_seq)";
strWhere += " FROM dbo.sys_terminal AS a";
strWhere += " LEFT JOIN dbo.sys_terminal_point AS b ON a.terminal_id = b.terminal_id";
strWhere += " WHERE stage_id = " + stageId + ")";
parameters.Add("@Column", sbColumn.ToString());
parameters.Add("@OrderColumn", OrderBy);
parameters.Add("@GroupColumn", "");
parameters.Add("@PageSize", PageSize);
parameters.Add("@CurrentPage", PageIndex);
parameters.Add("@Group", 0);
parameters.Add("@Condition", strWhere);
List<AdjustOrder> dataList = dbConn.Query<AdjustOrder>(sb.ToString(), parameters).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", parameters.Get<int>("@TotalCount"));
return result;
}
}
#endregion 成员方法
}
}