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.

252 lines
8.0 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 Estsh.Core.Dapper;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using Estsh.Core.Services.IServices;
using Estsh.Core.Util;
using System.Collections;
/***************************************************************************************************
*
* 更新人sitong.dong
* 描述:工位管理模块业务处理类
* 修改时间2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Services
{
public class TerminalDefineService : BaseService<SysTerminal>, ITerminalDefineService
{
private readonly ITerminalDefineRepository repository;
public TerminalDefineService(ITerminalDefineRepository _repository) : base(_repository)
{
repository = _repository;
}
/// <summary>
/// 根据分页条件获取分页菜单数据
/// </summary>
/// <param name="menuName"></param>
/// <param name="pager"></param>
/// <param name="direction"></param>
/// <param name="sort"></param>
/// <returns></returns>
public List<SysTerminal> getListByPage(String terminal_name, Pager pager, String direction, String sort)
{
Hashtable result = new Hashtable();
String strWhere = " ";
if (terminal_name != null && !terminal_name.Trim().Equals(""))
{
strWhere = " terminal_name like '%" + terminal_name.Trim() + "%'";
}
String orderBy = "";
if (sort != null && !"".Equals(sort.Trim()))
{
orderBy += typeof(SysTerminal).GetEntityColumnName(sort.Trim()) + " " + direction;
}
else
{
orderBy += typeof(SysTerminal).GetEntityColumnName("TerminalId") + " " + direction;
}
List<SysTerminal> dt = repository.getListByPage(pager.pageSize, pager.pageNo, strWhere, orderBy);
return dt;
}
/// <summary>
/// 保存工位数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveTerminal(SysTerminal htParams)
{
return repository.saveTerminal(htParams);
}
/// <summary>
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updateTerminal(SysTerminal htParams)
{
return repository.updateTerminal(htParams);
}
/// <summary>
/// 工厂名称
/// </summary>
/// <returns>数据集</returns>
public List<KeyValueResult> getFactoryInfo()
{
return repository.getFactoryInfo();
}
/// <summary>
/// 产线名称
/// </summary>
/// <returns></returns>
public List<KeyValueResult> getPdlineInfo()
{
return repository.getPdlineInfo();
}
/// <summary>
/// 区段名称
/// </summary>
/// <returns></returns>
public List<KeyValueResult> getStageInfoByKey()
{
return repository.getStageInfoByKey();
}
/// <summary>
/// 制程名称
/// </summary>
/// <returns></returns>
public List<KeyValueResult> getProcessInfo()
{
return repository.getProcessInfo();
}
/// <summary>
/// 删除工位
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int deleteTerminal(String ids)
{
String[] idArray = ids.Split(',');
int count = 0;
foreach (String id in idArray)
{
if (!"".Equals(id))
{
count += this.repository.deleteTerminal(id);
}
}
return count;
}
/// <summary>
/// 启用
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int EnableData(String ids)
{
ids = ids.Substring(0, ids.Length - 1);
return this.repository.EnableData(ids);
}
/// <summary>
/// 禁用
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int DisableData(String ids)
{
ids = ids.Substring(0, ids.Length - 1);
return this.repository.DisableData(ids);
}
#region 树状结构实现方式
/// <summary>
/// 根据制程数据信息
/// </summary>
/// <param name="factoryId"></param>
/// <returns></returns>
public ArrayList getProcessTree(string factoryId)
{
List<SysProcess> dtProcess = repository.getProcessInfo(factoryId);
List<SysStage> dtStage = repository.getStageInfo();
ArrayList treeNodes = new ArrayList();
Hashtable node;
//添加父节点
for (int i = 0; i < dtStage.Count; i++)
{
node = new Hashtable();
node.Add("id", "F" + Convert.ToString(dtStage[i].StageId));
node.Add("name", Convert.ToString(dtStage[i].StageName));
node.Add("parentId", "0");
node.Add("isParent", true);
node.Add("open", true);
node.Add("drop", false);
node.Add("drag", false);
treeNodes.Add(node);
}
//添加子节点
for (int i = 0; i < dtProcess.Count; i++)
{
node = new Hashtable();
node.Add("id", Convert.ToString(dtProcess[i].ProcessId));
node.Add("name", Convert.ToString(dtProcess[i].ProcessName));
node.Add("parentId", "F" + Convert.ToString(dtProcess[i].StageId));
node.Add("drop", false);
node.Add("drag", true);
node.Add("dropRoot", false);
node.Add("dropInner", false);
treeNodes.Add(node);
}
return treeNodes;
}
/// <summary>
/// 获得产线线别信息
/// </summary>
/// <param name="factoryId"></param>
/// <returns></returns>
public List<KeyValueResult> getPdLine()
{
return repository.getPdLine();
}
/// <summary>
/// 获得工站树信息
/// </summary>
/// <param name="pdLineId"></param>
/// <returns></returns>
public ArrayList getTerminalTree(string pdLineId)
{
List<SysTerminal> dtStage = repository.getTerminalInfo(pdLineId);
ArrayList treeNodes = new ArrayList();
Hashtable node;
for (int i = 0; i < dtStage.Count; i++)
{
node = new Hashtable();
node.Add("id", Convert.ToString(dtStage[i].Id));
node.Add("name", Convert.ToString(dtStage[i].Name));
node.Add("parentId", Convert.ToString(dtStage[i].ParentId));
node.Add("noR", Convert.ToString(dtStage[i].NoR));
node.Add("open", true);
node.Add("drop", false);
node.Add("drag", false);
//node.Add("dropRoot", false);
//node.Add("dropInner", false);
treeNodes.Add(node);
}
return treeNodes;
}
public List<SysTerminal> GetTerminalByTerminalId(string terminalId)
{
return repository.GetTerminalByTerminalId(terminalId);
}
/// <summary>
/// 获得默认工站名称
/// </summary>
/// <param name="processName"></param>
/// <returns></returns>
public string GetDefaultTerminalName(string processName)
{
return repository.GetDefaultTerminalName(processName);
}
#endregion
}
}