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.

425 lines
19 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.IRepositories;
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 MesRouteGroupRepository : BaseRepository<MesRouteGroupDetail>, IMesRouteGroupRepository
{
public MesRouteGroupRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
#region 成员方法
/// <summary>
/// 获得菜单列表数据
/// </summary>
public List<MesRouteGroupDetail> getList(string strWhere, string filedOrder)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.group_id , ");
SqlStringBuilder.Append(" a.part_no , ");
SqlStringBuilder.Append(" b.part_spec , ");
SqlStringBuilder.Append(" CONVERT(VARCHAR, a.create_time, 120) AS create_time , ");
SqlStringBuilder.Append(" CONVERT(VARCHAR, a.update_time, 120) AS update_time ");
SqlStringBuilder.Append("FROM dbo.mes_route_group_detail a ");
SqlStringBuilder.Append(" LEFT JOIN sys_part b ON a.part_no = b.part_no ");
if (!strWhere.Trim().Equals(""))
{
SqlStringBuilder.Append(" where " + strWhere);
}
if (filedOrder != null && !filedOrder.Trim().Equals(""))
{
SqlStringBuilder.Append(" order by " + filedOrder);
}
List<MesRouteGroupDetail> result = dbConn.Query<MesRouteGroupDetail>(SqlStringBuilder.ToString()).ToList();
return result;
}
}
/// <summary>
/// 获取分页数据列表
/// </summary>
public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
DynamicParameters Params = new DynamicParameters();
Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
Params.Add("@GroupColumn", "");
Params.Add("@Table", "dbo.mes_route_group_detail a LEFT JOIN sys_part b ON a.part_no=b.part_no");
Params.Add("@Column", "a.group_id,a.part_no,b.part_spec,CONVERT(VARCHAR, a.create_time, 120) AS create_time ,CONVERT(VARCHAR, a.update_time, 120) AS update_time,a.guid");
Params.Add("@PageSize", PageSize);
Params.Add("@CurrentPage", PageIndex);
Params.Add("@Condition", strWhere);
Params.Add("@OrderColumn", OrderBy);
Params.Add("@Group", 0);
List<MesRouteGroupDetail> dataList = dbConn.Query<MesRouteGroupDetail>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", Params.Get<int>("@TotalCount"));
return result;
}
}
/// <summary>
/// 获取分页数据列表
/// </summary>
public Hashtable getTableListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable result = new Hashtable();
DynamicParameters Params = new DynamicParameters();
Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
Params.Add("@GroupColumn", "");
Params.Add("@Table", "dbo.mes_route_group_detail a LEFT JOIN sys_part b ON a.part_no=b.part_no");
Params.Add("@Column", "a.group_id,a.part_no,b.part_spec,CONVERT(VARCHAR, a.create_time, 120) AS create_time ,CONVERT(VARCHAR, a.update_time, 120) AS update_time,a.guid");
Params.Add("@PageSize", PageSize);
Params.Add("@CurrentPage", PageIndex);
Params.Add("@Condition", strWhere);
Params.Add("@OrderColumn", OrderBy);
Params.Add("@Group", 0);
List<MesRouteGroup> dataList = dbConn.Query<MesRouteGroup>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", Params.Get<int>("@TotalCount"));
return result;
}
}
/// <summary>
/// 删除菜单数据
/// </summary>
/// <param name="keydata_id"></param>
/// <returns></returns>
public int deleteData(String guid)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update mes_route_group_detail set Enabled='N' where guid = @guid";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@guid", guid);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
#endregion 成员方法
/// <summary>
/// 获取 站点 信息
/// BY NOAH
/// </summary>
/// <returns></returns>
public List<KeyValueResult> getTerminalName()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT DISTINCT keydata_id as [value],terminal_name as [key] from sys_terminal WHERE keydata_id IN (SELECT keydata_id FROM dbo.sys_terminal EXCEPT SELECT keydata_id FROM dbo.sys_terminal_control) and enabled = 'Y'");
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
return result;
}
}
/// <summary>
/// 获取 看板 信息
/// BY NOAH
/// </summary>
/// <returns></returns>
public List<KeyValueResult> getBoardName()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT DISTINCT view_board_id as [value],view_board_name as [key] from g_view_board WHERE enabled = 'Y'");
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
return result;
}
}
/// <summary>
/// 判断用户输入的零件号是否存在
/// BY NOAH
/// </summary>
/// <param name="part_no"></param>
/// <returns></returns>
public String isExsitPart_no(String part_no)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string part_id = null;
string SqlString = "select top 1 part_id from sys_part where enabled='Y' and part_no=@partNo";
DynamicParameters Params = new DynamicParameters();
Params.Add("@partNo", part_no);
List<SysPart> dt = dbConn.Query<SysPart>(SqlString, Params).ToList();
if (dt.Count < 1)
{
return part_id;
}
else
{
part_id = dt[0].PartId.ToString();
return part_id;
}
}
}
/// <summary>
/// 导入数据方法
/// </summary>
/// <param name="dt">需要导入的数据表</param>
/// <returns>true or false</returns>
public bool InsertData(List<MesRouteGroup> dt, string userId)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
List<String> SqlStrings = new List<string>(dt.Count);
List<DynamicParameters> hs = new List<DynamicParameters>(dt.Count);
for (int i = 0; i < dt.Count; i++)
{
string partNo = dt[i].PartNo.ToString().Trim();
string partLocation = GetPartLocation(partNo);
StringBuilder SqlStringBuilder = new StringBuilder(1024);
//获取插入状态All=1、2线都做 P001=只做1线 P002=只做2线 焊接=只做焊接)
string insertType = dt[i].GroupId.ToString().Trim();
//1线工步
if (insertType.Equals("100001"))
{
//判断是前排还是后排01 02 为前排,其他为后排)
if (partLocation.Equals("01") || partLocation.Equals("02"))
{
SqlStringBuilder.Append("INSERT INTO mes_route_group_detail ");
SqlStringBuilder.Append(" ( group_id , ");
SqlStringBuilder.Append(" part_no, ");
SqlStringBuilder.Append(" enabled ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append("SELECT terminal_id, ");
SqlStringBuilder.Append(" @partNo, ");
SqlStringBuilder.Append(" 'Y' ");
SqlStringBuilder.Append("FROM dbo.sys_terminal ");
SqlStringBuilder.Append("WHERE pdline_id = 100001 AND stage_id =1001 ");
}
else if (partLocation.Equals("03") || partLocation.Equals("04") || partLocation.Equals("05") || partLocation.Equals("07") || partLocation.Equals("08"))
{
SqlStringBuilder.Append("INSERT INTO mes_route_group_detail ");
SqlStringBuilder.Append(" ( group_id , ");
SqlStringBuilder.Append(" part_no ");
SqlStringBuilder.Append(" enabled ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append("SELECT terminal_id, ");
SqlStringBuilder.Append(" @partNo ,");
SqlStringBuilder.Append(" 'Y' ");
SqlStringBuilder.Append("FROM dbo.sys_terminal ");
SqlStringBuilder.Append("WHERE pdline_id = 100001 AND stage_id =1002 ");
}
else if (partLocation.Equals("06") || partLocation.Equals("09") || partLocation.Equals("0A") || partLocation.Equals("0B"))
{
SqlStringBuilder.Append("INSERT INTO mes_route_group_detail ");
SqlStringBuilder.Append(" ( group_id , ");
SqlStringBuilder.Append(" part_no ");
SqlStringBuilder.Append(" enabled ");
SqlStringBuilder.Append(" ) ");
SqlStringBuilder.Append("SELECT terminal_id, ");
SqlStringBuilder.Append(" @partNo ,");
SqlStringBuilder.Append(" 'Y' ");
SqlStringBuilder.Append("FROM dbo.sys_terminal ");
SqlStringBuilder.Append("WHERE pdline_id = 100001 AND stage_id =1003 ");
}
}
DynamicParameters values = new DynamicParameters();
values.Add("@emp_id", userId);
values.Add("@partNo", partNo);
if (!SqlStringBuilder.ToString().Equals("") || SqlStringBuilder.ToString() != null)
{
string sqlStr = "SELECT * FROM mes_route_group_detail WHERE part_no = @partNo";
String delStr = "update mes_route_group_detail set Enabled='N' where part_no = '" + partNo + "'";
DynamicParameters Params = new DynamicParameters();
Params.Add("@partNo", partNo);
List<MesRouteGroupDetail> dtToGroup = dbConn.Query<MesRouteGroupDetail>(sqlStr, Params).ToList();
if (dtToGroup.Count > 0)
{
dbConn.Execute(delStr);
}
}
SqlStrings.Add(SqlStringBuilder.ToString());
hs.Add(values);
}
IDbTransaction transaction = dbConn.BeginTransaction();
try
{
for (int i = 0; i < SqlStrings.Count; i++)
{
dbConn.Execute(SqlStrings[i], hs[i], transaction);
}
transaction.Commit();
return true;
}
catch (Exception ex)
{
transaction.Rollback();
return false;
}
}
}
/// <summary>
/// 获取配置ID
/// </summary>
/// <param name="modelName"></param>
/// <returns></returns>
public int GetModelID(string modelName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "SELECT model_id FROM dbo.sys_model WHERE model_name=@modelName";
DynamicParameters Params = new DynamicParameters();
Params.Add("@modelName", modelName);
List<SysModel> dt = dbConn.Query<SysModel>(SqlString, Params).ToList();
if (dt == null)
return 0;
if (dt.Count == 0)
return 0;
return Convert.ToInt32(dt[0].ModelId.ToString());
}
}
/// <summary>
/// 获取总成零件ID
/// </summary>
/// <param name="modelName"></param>
/// <returns></returns>
public int GetPartID(string partNo)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "SELECT part_id FROM sys_part WHERE part_no=@partNo";
string SqlStringTolocation = "SELECT part_location FROM sys_part WHERE part_no=@partNo";
DynamicParameters Params = new DynamicParameters();
Params.Add("@partNo", partNo);
List<SysPart> dt = dbConn.Query<SysPart>(SqlString, Params).ToList();
List<SysPart> dtTolocation = dbConn.Query<SysPart>(SqlStringTolocation, Params).ToList();
if (dt == null)
return 0;
if (dt.Count == 0)
return 0;
if (dtTolocation == null)
return 0;
if (dtTolocation.Count == 0)
return 0;
return Convert.ToInt32(dt[0].PartId.ToString());
}
}
/// <summary>
/// 获取总成位置信息
/// </summary>
/// <param name="partNo"></param>
/// <returns></returns>
public string GetPartLocation(string partNo)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "SELECT part_location FROM sys_part WHERE part_no =@partNo";
DynamicParameters Params = new DynamicParameters();
Params.Add("@partNo", partNo);
object obj = dbConn.ExecuteScalar(SqlString, Params);
return obj.ToString();
}
}
/// <summary>
/// 获取导入总成工步模板
/// </summary>
/// <param name="ruluNO"></param>
/// <param name="partLocation"></param>
/// <returns></returns>
public List<MesRouteGroupDetail> getTEMPdt(string ruluNO, string partLocation)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT group_id , part_no FROM dbo.mes_route_group_detail ");
SqlStringBuilder.Append(" WHERE part_no = ( SELECT TOP 1 part_no FROM ( SELECT TOP 10 part_no , ");
SqlStringBuilder.Append(" create_time FROM sys_part ");
SqlStringBuilder.Append(" WHERE label_type = @ruluNO AND part_type = 1 ");
SqlStringBuilder.Append(" AND part_location = @partLocation ORDER BY create_time DESC ");
SqlStringBuilder.Append(" ) list ORDER BY list.create_time ");
SqlStringBuilder.Append(" ) ");
DynamicParameters Params = new DynamicParameters();
Params.Add("@ruluNO", ruluNO);
Params.Add("@partLocation", partLocation);
List<MesRouteGroupDetail> dt = dbConn.Query<MesRouteGroupDetail>(SqlStringBuilder.ToString(), Params).ToList();
return dt != null && dt.Count > 0 ? dt : null;
}
}
public bool existGroupid(string groupID, string partNO)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT TOP 1 1 FROM dbo.mes_route_group_detail WHERE group_id = @groupID AND part_no = @partNO ");
DynamicParameters Params = new DynamicParameters();
Params.Add("@groupID", groupID);
Params.Add("@partNO", partNO);
object obj = dbConn.ExecuteScalar(SqlStringBuilder.ToString(), Params);
return Convert.ToInt32(obj) > 0;
}
}
}
}