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.

244 lines
7.9 KiB
C#

2 years ago
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 TerminalEmpDefineService
{
private TerminalEmpDefineDal dal = new TerminalEmpDefineDal(RemotingProxyProvider._remotingProxy);
/// <summary>
/// 根据分页条件获取分页菜单数据
/// </summary>
/// <param name="partNo"></param>
/// <param name="pager"></param>
/// <param name="direction"></param>
/// <param name="sort"></param>
/// <returns></returns>
public Hashtable getTerminalEmpListByPage(String terminal_name, string emp_no,string emp_id, Pager pager, String direction, String sort)
{
Hashtable result = new Hashtable();
String strWhere = " 1=1 ";
if (terminal_name != null && !terminal_name.Trim().Equals(""))
{
strWhere += " and b.terminal_name like '%" + terminal_name.Trim() + "%'";
}
if (emp_no != null && !emp_no.Trim().Equals(""))
{
strWhere += " and a.emp_no like '%" + emp_no.Trim() + "%'";
}
result = dal.getTerminalEmpListByPage(pager.pageSize, pager.pageNo, strWhere, sort);
return result;
}
/// <summary>
/// 保存菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveTerminalEmp(Hashtable htParams)
{
return dal.saveTerminalEmp(htParams);
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updateTerminalEmp(Hashtable htParams)
{
return dal.updateTerminalEmp(htParams);
}
/// <summary>
/// 获取客户产线ID
/// </summary>
/// <param name="custPDLineDesc"></param>
/// <returns></returns>
public int GetEmpno(string emp_no)
{
return dal.GetEmpno(emp_no);
}
/// <summary>
/// 获取工位编号
/// </summary>
/// <param name="terminal_name"></param>
/// <returns></returns>
public int GetTerminalName(string terminal_name)
{
return dal.GetTerminalName(terminal_name);
}
public int GetEmpId(string emp_no)
{
return dal.GetEmpId(emp_no);
}
public bool GetEmpnoTerminalId(string terminal_name, string emp_no)
{
return dal.GetEmpnoTerminalId(terminal_name, emp_no);
}
/// <summary>
/// 查看菜单详情
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public Hashtable getTerminalEmpDetail(String ruid)
{
ruid = " ruid = " + ruid;
DataTable dt = dal.getList(ruid, "");
Hashtable result = new Hashtable();
result.Add("ruid", dt.Rows[0]["ruid"]);
result.Add("emp_id", dt.Rows[0]["emp_id"]);
result.Add("emp_no", dt.Rows[0]["emp_no"]);
result.Add("terminal_name", dt.Rows[0]["terminal_name"]);
return result;
}
/// <summary>
/// 删除菜单
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int deleteTerminalEmp(String ids)
{
String[] idArray = ids.Split(',');
int count = 0;
foreach (String id in idArray)
{
if (!"".Equals(id))
{
count += this.dal.deleteTerminalEmp(id);
}
}
return count;
}
/// <summary>
/// 根据分页条件获取分页菜单数据
/// </summary>
/// <param name="menuName">查询条件</param>
/// <param name="pager"></param>
/// <param name="direction">排序方式</param>
/// <param name="sort">排序字段</param>
/// <returns></returns>
public DataTable getTerminalEmpExport(String terminal_name, string emp_no, Pager pager, String direction, String sort)
{
DataTable result = null;
string strWhere = " 1=1 ";
String orderBy = "";
if (terminal_name != null && !terminal_name.Trim().Equals(""))
{
strWhere += " and b.terminal_name like '%" + terminal_name.Trim() + "%'";
}
if (emp_no != null && !emp_no.Trim().Equals(""))
{
strWhere += " and a.emp_no like '%" + emp_no.Trim() + "%'";
}
if (sort != null && !"".Equals(sort.Trim()))
{
orderBy += sort + " " + direction;
}
else
{
orderBy += " f.cust_pdline_name " + direction;
}
result = dal.getTerminalEmpExport(pager.pageSize, pager.pageNo, strWhere, orderBy);
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);
DataView dv = new DataView(dt);
//去除第一行&重新排序
dv.AllowDelete = true;
dv[0].Delete();
dv.Sort = "Column1";
dt = dv.ToTable();
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++)
{
bool EmpNo = dal.ExistsEmpNo(dt.Rows[i][1].ToString().Trim());
if (EmpNo == false)
{
result.Add("message", string.Format("当前账号" + dt.Rows[i][1].ToString().Trim() + "不存在,请在员工管理中维护!", i + 1));
result.Add("flag", "error");
return result;
}
bool Terminal_name = dal.ExistsTerminalName(dt.Rows[i][0].ToString().Trim());
if (EmpNo == false)
{
result.Add("message", string.Format("当前工位" + dt.Rows[i][0].ToString().Trim() + "不存在,请检查!", i + 1));
result.Add("flag", "error");
return result;
}
bool CplID = dal.GetEmpnoTerminalId(dt.Rows[i][0].ToString().Trim(),dt.Rows[i][1].ToString().Trim());
if (CplID == true)
{
result.Add("message", string.Format("当前账号"+dt.Rows[i][1].ToString().Trim()+"只能对应此工位"+ dt.Rows[i][0].ToString().Trim()+"已存在!", i + 1 ));
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;
}
}
}
}