|
|
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;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|