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.

314 lines
10 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Estsh.Web.Util;
using System.Data;
using Estsh.Web.Dal;
using System.Collections;
using System.IO;
using System.Text;
namespace Estsh.Core.Services
{
/**
* 客户零件号关系管理
*
* Fred
*
*/
public class GPartRelationDefineService
{
private GPartRelationDefineDal dal = new GPartRelationDefineDal(RemotingProxyProvider._remotingProxy);
/// <summary>
/// 获取菜单列表
/// </summary>
/// <param name="sqlWhere"></param>
/// <param name="orderBy"></param>
/// <returns></returns>
public List<TreeNode> getMenuList(string sqlWhere, string orderBy,String rootPath)
{
DataTable ds = dal.getList(sqlWhere, orderBy);
List<TreeNode> treeNodes = new List<TreeNode>();
for (int i = 0; i < ds.Rows.Count; i++)
{
TreeNode node = new TreeNode();
node.id = ds.Rows[i]["RUID"].ToString();
node.icon = ds.Rows[i]["MenuPicLink"].ToString();
node.name = ds.Rows[i]["MenuName"].ToString();
if (ds.Rows[i]["ParentMenuID"] == null || "0".Equals(ds.Rows[i]["ParentMenuID"].ToString().Trim()))
{
node.parentId = "0";
node.iconSkin = "diy01";
}
else
{
node.parentId = ds.Rows[i]["ParentMenuID"].ToString();
node.url = rootPath + ds.Rows[i]["MenuLink"].ToString();
node.target = "frmright";
}
treeNodes.Add(node);
}
return treeNodes;
}
/// <summary>
/// 根据分页条件获取分页菜单数据
/// </summary>
/// <param name="partNo"></param>
/// <param name="pager"></param>
/// <param name="direction"></param>
/// <param name="sort"></param>
/// <returns></returns>
public ArrayList getDataListByPage(String part_no_search, Pager pager, String direction, String sort)
{
Hashtable result = new Hashtable();
String strWhere = " where 1=1 ";
if (part_no_search != null && !part_no_search.Trim().Equals(""))
{
strWhere += " and c.part_no like '%" + part_no_search.Trim() + "%'";
}
DataTable dt = dal.getListByPage(pager.pageSize, pager.pageNo, strWhere, sort + " " );
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
/// <summary>
/// 获取分页总数量
/// </summary>
/// <param name="partNo"></param>
/// <returns></returns>
public int getMenuCount(String part_no_search)
{
String strWhere = " where 1=1 ";
if (part_no_search != null && !part_no_search.Trim().Equals(""))
{
strWhere += " and c.part_no like '%" + part_no_search.Trim() + "%'";
}
return dal.getCountWhere(strWhere);
}
/// <summary>
/// 保存菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveData(Hashtable htParams)
{
return dal.saveData(htParams);
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updateData(Hashtable htParams)
{
return dal.updateData(htParams);
}
/// <summary>
/// 获取配置ID
/// </summary>
/// <param name="modelName"></param>
/// <returns></returns>
public int getModelID(string modelName)
{
return dal.GetModelID(modelName);
}
/// <summary>
/// 查看信息是否存在
/// </summary>
/// <param name="modelID"></param>
/// <param name="partID"></param>
/// <param name="custPartNo"></param>
/// <returns></returns>
public DataTable checkExist(int modelID, int partID, string custPartNo)
{
return dal.checkExist(modelID, partID, custPartNo);
}
/// <summary>
/// 获取总成零件ID
/// </summary>
/// <param name="modelName"></param>
/// <returns></returns>
public int getpartID(string partNo)
{
return dal.GetPartID(partNo);
}
/// <summary>
/// 查看菜单详情
/// </summary>
/// <param name="keydata_id"></param>
/// <returns></returns>
public Hashtable getDataDetail(String ruid)
{
ruid = " ruid = " + ruid;
DataTable dt = dal.getList(ruid, "");
Hashtable result = new Hashtable();
result.Add("ruid", dt.Rows[0]["ruid"]);
result.Add("model_name", dt.Rows[0]["model_name"]);
result.Add("part_no", dt.Rows[0]["part_no"]);
result.Add("cust_part_no", dt.Rows[0]["cust_part_no"]);
return result;
}
/// <summary>
/// 删除菜单
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int deleteData(String ids)
{
String[] idArray = ids.Split(',');
int count = 0;
foreach (String id in idArray)
{
if (!"".Equals(id))
{
count += this.dal.deleteData(id);
}
}
return count;
}
/// <summary>
/// 判断是否存在 用户输入的零件号
/// BY NOAH
/// </summary>
/// <param name="part_no"></param>
/// <returns></returns>
public String isExsitPart_no(String part_no)
{
return this.dal.isExsitPart_no(part_no);
}
/// <summary>
/// 根据分页条件获取分页菜单数据
/// </summary>
/// <param name="menuName">查询条件</param>
/// <param name="pager"></param>
/// <param name="direction">排序方式</param>
/// <param name="sort">排序字段</param>
/// <returns></returns>
public DataTable getTableListByPage(String part_no_search, Pager pager, String direction, String sort, Boolean isPage)
{
DataTable result = null;
int rowCount = 0;
String strWhere = " where 1=1 ";
if (part_no_search != null && !part_no_search.Trim().Equals(""))
{
strWhere += " and c.part_no like '%" + part_no_search.Trim() + "%'";
}
if (isPage)
{
rowCount = pager.pageSize;
}
else
{
rowCount = pager.pageSize;
}
result = dal.getListByPage(rowCount, pager.pageNo, strWhere, sort + " " );
return result;
}
/// <summary>
/// 读取文件并更新至数据库
/// </summary>
/// <param name="inputStream">文件全路径</param>
/// <param name="userInfo">登录用户信息</param>
public Hashtable ReadExcelFile(Stream inputStream, int userId)
{
Hashtable result = new Hashtable();
Hashtable Cache = new Hashtable();
DataTable dt = AsposeExcelTools.ExcelFileToDataTable(inputStream);
dt.Rows[0].Delete();
if (dt == null)
{
result.Add("message", "导入数据为空,请重新导入");
result.Add("flag", "error");
return result;
}
string modelName = string.Empty;
string partNo = string.Empty;
string custPartNo = string.Empty;
StringBuilder ErrorMessage = new StringBuilder(1024);
for (int i = 0; i < dt.Rows.Count; i++)
{
modelName = dt.Rows[i][0].ToString().Trim();
partNo = dt.Rows[i][1].ToString().Trim();
custPartNo = dt.Rows[i][3].ToString().Trim();
// 跳过空行
if (string.IsNullOrEmpty(modelName))
{
continue;
}
// 判断制程名称是否存在
int modelID = dal.GetModelID(modelName);
if (modelID == 0)
{
ErrorMessage.Append("配置名称 " + modelID + " 不存在!" + Environment.NewLine);
}
// 判断零件号是否存在
int partID = dal.GetPartID(partNo);
if (partID == 0)
{
ErrorMessage.Append("零件号 " + partNo + " 不存在!" + Environment.NewLine);
}
// 判断客户零件号是否为空
if (string.IsNullOrEmpty(custPartNo))
{
ErrorMessage.Append("客户零件号不能为空!" + Environment.NewLine);
}
DataTable existInfo = checkExist(modelID, partID, custPartNo);
if (existInfo.Rows.Count >= 1)
{
int rowsNo = i + 1;
result.Add("message", "系统中已存在第" + rowsNo + "行数据!");
result.Add("flag", "error");
return result;
}
}
if (ErrorMessage.Length != 0)
{
result.Add("message", ErrorMessage.ToString());
result.Add("flag", "error");
return result;
}
// 处理表身数据
if (dal.InsertData(dt))
{
result.Add("message", "导入成功");
result.Add("flag", "error");
return result;
}
else
{
result.Add("message", "导入失败");
result.Add("flag", "error");
return result;
}
}
}
}