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
{
/**
* 工站管制信息管理
*
* NOAH
*
*/
public class PrintVendorDefineService
{
private PrintVendorDefineDal dal = new PrintVendorDefineDal(RemotingProxyProvider._remotingProxy);
///
/// 获取菜单列表
///
///
///
///
public List getMenuList(string sqlWhere, string orderBy, String rootPath)
{
DataTable ds = dal.getList(sqlWhere, orderBy);
List treeNodes = new List();
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;
}
///
/// 根据分页条件获取分页菜单数据
///
///
///
///
///
///
public ArrayList getKeyDataListByPage(String part_on, String vendorID, Pager pager, String direction, String sort)
{
Hashtable result = new Hashtable();
String strWhere = " where 1=1 ";
if (part_on != null && !part_on.Trim().Equals(""))
{
strWhere += " and a.part_no like '%" + part_on.Trim() + "%'";
}
if (vendorID != null && !vendorID.Trim().Equals(""))
{
strWhere += " and a.vendor_id = '" + vendorID.Trim() + "'";
}
DataTable dt = dal.getListByPage(pager.pageSize, pager.pageNo, strWhere, sort + " ");
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
///
/// 获取分页总数量
///
///
///
public int getMenuCount(String part_on, String vendorID)
{
String strWhere = " where 1=1 ";
if (part_on != null && !part_on.Trim().Equals(""))
{
strWhere += " and a.part_no like '%" + part_on.Trim() + "%'";
}
if (vendorID != null && !vendorID.Trim().Equals(""))
{
strWhere += " and a.vendor_id = '" + vendorID.Trim() + "'";
}
return dal.getCountWhere(strWhere);
}
///
/// 保存菜单数据
///
///
///
public int savePrintVendor(Hashtable htParams)
{
return dal.savePrintVendor(htParams);
}
///
/// 更新菜单数据
///
///
///
public int updatePrintVendor(Hashtable htParams)
{
return dal.updatePrintVendor(htParams);
}
///
/// 查看菜单详情
///
///
///
public Hashtable getPrintVendorDetail(String ruid)
{
ruid = " ruid = " + ruid;
DataTable dt = dal.getList(ruid, "");
Hashtable result = new Hashtable();
result.Add("part_no", dt.Rows[0]["part_no"]);
result.Add("group_id", dt.Rows[0]["group_id"]);
result.Add("vendor_id", dt.Rows[0]["vendor_id"]);
result.Add("enabled", dt.Rows[0]["enabled"]);
return result;
}
///
/// 删除菜单
///
///
///
public int deletePrintVendor(String ids)
{
String[] idArray = ids.Split(',');
int count = 0;
foreach (String id in idArray)
{
if (!"".Equals(id))
{
count += this.dal.deletePrintVendor(id);
}
}
return count;
}
///
/// 是否存在该零件号
///
///
///
public ArrayList getPartNo(string part_no)
{
Hashtable result = new Hashtable();
//DataTable dt = dal.isExsitPart_no(part_no);
return DataTypeConvert.NewObject.DataTableToArrayList(null);
}
///
/// 判断是否存在 用户输入的零件号
/// BY NOAH
///
///
///
public bool isExsitPart_no(String part_no)
{
return this.dal.isExsitPart_no(part_no);
}
///
/// 根据分页条件获取分页菜单数据
///
/// 查询条件
///
/// 排序方式
/// 排序字段
///
public DataTable getTableListByPage(String part_on, String vendorID, Pager pager, String direction, String sort, Boolean isPage)
{
DataTable result = null;
int rowCount = 0;
String strWhere = " where 1=1 ";
if (part_on != null && !part_on.Trim().Equals(""))
{
strWhere += " and a.part_no like '%" + part_on.Trim() + "%'";
}
if (vendorID != null && !vendorID.Trim().Equals(""))
{
strWhere += " and a.vendor_id = '" + vendorID.Trim() + "'";
}
if (isPage)
{
rowCount = pager.pageSize;
}
else
{
rowCount = pager.pageSize;
}
result = dal.getListByPage(rowCount, pager.pageNo, strWhere, sort + " ");
return result;
}
///
/// 读取文件并更新至数据库
///
/// 文件全路径
/// 登录用户信息
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;
}
StringBuilder ErrorMessage = new StringBuilder(1024);
for (int i = 0; i < dt.Rows.Count; i++)
{
string PartNo = dt.Rows[i][0].ToString().Trim();
bool isPartNo = dal.isExsitPart_no(PartNo);
if (!isPartNo)
{
ErrorMessage.Append("原材料零件号 " + PartNo + " 不存在!" + Environment.NewLine);
}
bool isVendor = dal.isExsitVendor(PartNo);
if (isVendor)
{
ErrorMessage.Append("已存在零件号 " + PartNo + " 的对应关系!" + Environment.NewLine);
}
string vendorID = dt.Rows[i][1].ToString().Trim();
if (!vendorID.Equals("106044") && !vendorID.Equals("111847") && !vendorID.Equals("112808") && !vendorID.Equals("113664") && !vendorID.Equals("113732") && !vendorID.Equals("113738"))
{
ErrorMessage.Append("不存在该供应商ID " + dt.Rows[i][1].ToString().Trim() + " !" + Environment.NewLine);
}
}
// 校验数据时发生错误
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;
}
}
}
}