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.

545 lines
27 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 Estsh.Web.Models;
using System.Text;
using System.IO;
/***************************************************************************************************
*
* 作者:王勇
* 贵阳
* *************************************************************************************************/
namespace Estsh.Core.Services
{
/// <summary>
/// 菜单业务处理类
/// </summary>
public class PartMasterGYService
{
private PartMasterGYDal dal = new PartMasterGYDal(RemotingProxyProvider._remotingProxy);
/// <summary>
/// 根据分页条件获取分页菜单数据
/// </summary>
/// <param name="PartMasterName"></param>
/// <param name="pager"></param>
/// <param name="direction"></param>
/// <param name="sort"></param>
/// <returns></returns>
public Hashtable getPartMasterListByPage(String part_type, String part_no, String model_name, Pager pager, String direction, String sort)
{
Hashtable result = new Hashtable();
String strWhere = " 1=1 ";
if (part_no != null && !part_no.Trim().Equals(""))
{
strWhere = " a.part_no like '%" + part_no.Trim() + "%' ";
}
if (model_name != null && !model_name.Trim().Equals(""))
{
strWhere += " AND b.model_name like '%" + model_name.Trim() + "%'";
}
String orderBy = "";
if (sort != null && !"".Equals(sort.Trim()))
{
orderBy += sort + " " + direction;
}
else
{
orderBy += " a.part_id " + direction;
}
result = dal.getListByPage(part_type, pager.pageSize, pager.pageNo, strWhere, orderBy);
return result;
}
/// <summary>
/// 保存菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int savePartMaster(Hashtable htParams)
{
return dal.savePartMaster(htParams);
}
/// <summary>
/// 更新菜单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updatePartMaster(Hashtable htParams)
{
return dal.updatePartMaster(htParams);
}
/// <summary>
/// 查看详情
/// </summary>
/// <param name="ruid"></param>
/// <returns></returns>
public ArrayList getPartMaster(String part_id)
{
part_id = "part_id = " + part_id;
DataTable dt = dal.getList(part_id, "");
ArrayList result = DataTypeConvert.NewObject.DataTableToArrayList(dt);
return result;
}
/// <summary>
/// 删除菜单
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public int deletePartMaster(String ids)
{
String[] idArray = ids.Split(',');
int count = 0;
foreach (String id in idArray)
{
if (!"".Equals(id))
{
count += this.dal.deletePartMaster(id);
}
}
return count;
}
/// <summary>
/// 获取下拉框中的菜单数据
/// </summary>
/// <returns></returns>
public ArrayList getSelectPartMaster()
{
Hashtable result = new Hashtable();
DataTable dt = dal.getSelectPartMaster();
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
/// <summary>
/// 获取车型数据
/// </summary>
/// <returns></returns>
public ArrayList getSelectPartMaster_Model_name()
{
Hashtable result = new Hashtable();
DataTable dt = dal.getSelectPartMaster_Model_name();
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
/// <summary>
/// 获取座椅位置
/// </summary>
/// <returns></returns>
public ArrayList getSelectPartLocation()
{
Hashtable result = new Hashtable();
DataTable dt = dal.getSelectPartLocation();
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
/// <summary>
/// 读取采购订单文件并更新至数据库
/// </summary>
/// <param name="inputStream">文件全路径</param>
/// <param name="userInfo">登录用户信息</param>
public Hashtable ReadExcelFile(Stream inputStream, string partType, int empId)
{
try
{
Hashtable result = new Hashtable();
List<string> SqlStrings = new List<string>();
List<Hashtable> Parameters = new List<Hashtable>();
Hashtable Params = new Hashtable();
Hashtable Cache = new Hashtable();
DataTable dt = AsposeExcelTools.ExcelFileToDataTable(inputStream);
//判断EXCEL是否存在数据
if (dt.Rows.Count <= 0)
{
result.Add("message", "导入数据为空,请重新导入!");
result.Add("flag", "error");
return result;
}
//判断零件号是否存在
for (int i = 1; i < dt.Rows.Count; i++)
{
string label_type = dt.Rows[i]["Column7"].ToString();
string vendor_part_no = dt.Rows[i]["Column19"].ToString().Trim();
string mfger_part_no = dt.Rows[i]["Column20"].ToString().Trim();
//是否为焊接总成
if (label_type.Trim().Equals("1"))
{
if (vendor_part_no.Equals("") || mfger_part_no.Equals("") || vendor_part_no == null || mfger_part_no == null)
{
result.Add("message", "导入失败,当前导入文件中焊接总成必须填写供应商零件号和制造商零件号!");
result.Add("flag", "error");
return result;
}
}
string partNo = dt.Rows[i]["Column1"].ToString();
DataTable dtPart = dal.ifPartNo(partNo);
if (dtPart.Rows.Count <= 0)
{
string enumDesc = dt.Rows[i]["Column3"].ToString();
if (!string.IsNullOrEmpty(enumDesc))
{
DataTable dtEnum = dal.selectEnumValue(enumDesc);
if (partType.Equals("1"))
{
if (dtEnum.Rows[0]["enum_value"].ToString().Length<=0)
{
result.Add("message", "导入数据中的座椅位置有误,请重新导入!座椅位置:" + dtEnum.Rows[0]["enum_value"].ToString());
result.Add("flag", "error");
return result;
}
}
if (dtEnum.Rows.Count > 0)
{
enumDesc = dtEnum.Rows[0]["enum_value"].ToString();
}
else
{
enumDesc = "";
}
}
string routeName = dt.Rows[i]["Column11"].ToString();
if (!string.IsNullOrEmpty(routeName))
{
DataTable dtRoute = dal.selectRouteId(routeName);
if (dtRoute.Rows.Count > 0)
{
routeName = dtRoute.Rows[0]["route_id"].ToString();
}
else
{
routeName = "";
}
}
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("INSERT INTO dbo.sys_part ");
querySen.AppendLine(" ( part_no , ");
querySen.AppendLine(" part_spec , ");
querySen.AppendLine(" part_location , ");
querySen.AppendLine(" part_type , ");
querySen.AppendLine(" model_id , ");
querySen.AppendLine(" label_type , ");
querySen.AppendLine(" rule_set , ");
querySen.AppendLine(" uom , ");
querySen.AppendLine(" route_id , ");
querySen.AppendLine(" locate_id , ");
querySen.AppendLine(" upc_code , ");
querySen.AppendLine(" ucc_code , ");
querySen.AppendLine(" ean_code , ");
querySen.AppendLine(" burnin_time , ");
querySen.AppendLine(" version , ");
querySen.AppendLine(" cust_part_no , ");
querySen.AppendLine(" vendor_part_no , ");
querySen.AppendLine(" mfger_part_no , ");
querySen.AppendLine(" subboard_qty , ");
querySen.AppendLine(" split_flag , ");
querySen.AppendLine(" batch_control , ");
querySen.AppendLine(" min_pack_qty , ");
querySen.AppendLine(" min_stock_qty , ");
querySen.AppendLine(" max_stock_qty , ");
querySen.AppendLine(" indate_flag , ");
querySen.AppendLine(" Indate , ");
querySen.AppendLine(" sampling_plan_id , ");
querySen.AppendLine(" over_request , ");
querySen.AppendLine(" default_box_qty , ");
querySen.AppendLine(" default_reel_qty , ");
querySen.AppendLine(" default_set_qty , ");
querySen.AppendLine(" part_no_3c , ");
querySen.AppendLine(" wip_min_stock_qty , ");
querySen.AppendLine(" Supply_type , ");
querySen.AppendLine(" Settle_type , ");
querySen.AppendLine(" Recheck_cycle , ");
querySen.AppendLine(" Instock_type , ");
querySen.AppendLine(" Package_size , ");
querySen.AppendLine(" Vendor_id , ");
//querySen.AppendLine(" is_sort , ");
//querySen.AppendLine(" sort_qty , ");
//querySen.AppendLine(" sort_type , ");
querySen.AppendLine(" part_class, ");
querySen.AppendLine(" create_userid ");
querySen.AppendLine(" ) ");
querySen.AppendLine("VALUES ( '" + partNo + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column2"].ToString() + "' ,");
querySen.AppendLine(" '" + enumDesc + "' ,");
querySen.AppendLine(" '" + partType + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column5"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column7"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column9"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column10"].ToString() + "' ,");
querySen.AppendLine(" '" + routeName + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column12"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column13"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column14"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column15"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column16"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column17"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column18"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column19"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column20"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column21"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column22"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column23"].ToString() + "' ,");
querySen.AppendLine(" '" + (dt.Rows[i]["Column24"].ToString() == "" ? "0" : dt.Rows[i]["Column24"].ToString()) + "' ,");
querySen.AppendLine(" '" + (dt.Rows[i]["Column25"].ToString() == "" ? "0" : dt.Rows[i]["Column25"].ToString()) + "' ,");
querySen.AppendLine(" '" + (dt.Rows[i]["Column26"].ToString() == "" ? "0" : dt.Rows[i]["Column26"].ToString()) + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column27"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column28"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column29"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column30"].ToString() + "' ,");
querySen.AppendLine(" '" + (dt.Rows[i]["Column31"].ToString() == "" ? "0" : dt.Rows[i]["Column31"].ToString()) + "' ,");
querySen.AppendLine(" '" + (dt.Rows[i]["Column32"].ToString() == "" ? "0" : dt.Rows[i]["Column32"].ToString()) + "' ,");
querySen.AppendLine(" '" + (dt.Rows[i]["Column33"].ToString() == "" ? "0" : dt.Rows[i]["Column33"].ToString()) + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column34"].ToString() + "' ,");
querySen.AppendLine(" '" + (dt.Rows[i]["Column35"].ToString() == "" ? "0" : dt.Rows[i]["Column35"].ToString()) + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column36"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column37"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column38"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column39"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column40"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column41"].ToString() + "' ,");
//querySen.AppendLine(" '" + dt.Rows[i]["Column42"].ToString() + "' ,");
//querySen.AppendLine(" '" + dt.Rows[i]["Column43"].ToString() + "' ,");
//querySen.AppendLine(" '" + dt.Rows[i]["Column44"].ToString() + "' ,");
querySen.AppendLine(" '" + dt.Rows[i]["Column42"].ToString() + "' ,");
querySen.AppendLine(" '" + empId + "'");
querySen.AppendLine(" ) ");
SqlStrings.Add(querySen.ToString());
Parameters.Add(Params);
}
else
{
string enumDesc = dt.Rows[i]["Column3"].ToString();
if (!string.IsNullOrEmpty(enumDesc))
{
DataTable dtEnum = dal.selectEnumValue(enumDesc);
if (dtEnum.Rows.Count > 0)
{
enumDesc = dtEnum.Rows[0]["enum_value"].ToString();
}
else
{
enumDesc = "";
}
}
string routeName = dt.Rows[i]["Column11"].ToString();
if (!string.IsNullOrEmpty(routeName))
{
DataTable dtRoute = dal.selectRouteId(routeName);
if (dtRoute.Rows.Count > 0)
{
routeName = dtRoute.Rows[0]["route_id"].ToString();
}
else
{
routeName = "";
}
}
StringBuilder querySen = new StringBuilder(1024);
querySen.AppendLine("UPDATE dbo.sys_part SET ");
//querySen.AppendLine(" part_no='" + dt.Rows[i]["Column1"].ToString() + "' ,");
querySen.AppendLine(" part_spec='" + dt.Rows[i]["Column2"].ToString() + "' ,");
querySen.AppendLine(" part_location='" + enumDesc + "' ,");
querySen.AppendLine(" part_type= '" + partType + "' ,");
querySen.AppendLine(" model_id='" + dt.Rows[i]["Column5"].ToString() + "' ,");
querySen.AppendLine(" label_type='" + dt.Rows[i]["Column7"].ToString() + "' ,");
querySen.AppendLine(" rule_set='" + dt.Rows[i]["Column9"].ToString() + "' ,");
querySen.AppendLine(" uom='" + dt.Rows[i]["Column10"].ToString() + "' ,");
querySen.AppendLine(" route_id='" + routeName + "' ,");
querySen.AppendLine(" locate_id='" + dt.Rows[i]["Column12"].ToString() + "' ,");
querySen.AppendLine(" upc_code='" + dt.Rows[i]["Column13"].ToString() + "' ,");
querySen.AppendLine(" ucc_code='" + dt.Rows[i]["Column14"].ToString() + "' ,");
querySen.AppendLine(" ean_code='" + dt.Rows[i]["Column15"].ToString() + "' ,");
querySen.AppendLine(" burnin_time='" + dt.Rows[i]["Column16"].ToString() + "' ,");
querySen.AppendLine(" version='" + dt.Rows[i]["Column17"].ToString() + "' ,");
querySen.AppendLine(" cust_part_no='" + dt.Rows[i]["Column18"].ToString() + "' ,");
querySen.AppendLine(" vendor_part_no='" + dt.Rows[i]["Column19"].ToString() + "' ,");
querySen.AppendLine(" mfger_part_no='" + dt.Rows[i]["Column20"].ToString() + "' ,");
querySen.AppendLine(" subboard_qty='" + dt.Rows[i]["Column21"].ToString() + "' ,");
querySen.AppendLine(" split_flag='" + dt.Rows[i]["Column22"].ToString() + "' ,");
querySen.AppendLine(" batch_control='" + dt.Rows[i]["Column23"].ToString() + "' ,");
querySen.AppendLine(" min_pack_qty='" + (dt.Rows[i]["Column24"].ToString() == "" ? "0" : dt.Rows[i]["Column24"].ToString()) + "' ,");
querySen.AppendLine(" min_stock_qty='" + (dt.Rows[i]["Column25"].ToString() == "" ? "0" : dt.Rows[i]["Column25"].ToString()) + "' ,");
querySen.AppendLine(" max_stock_qty='" + (dt.Rows[i]["Column26"].ToString() == "" ? "0" : dt.Rows[i]["Column26"].ToString()) + "' ,");
querySen.AppendLine(" indate_flag='" + dt.Rows[i]["Column27"].ToString() + "' ,");
querySen.AppendLine(" Indate='" + dt.Rows[i]["Column28"].ToString() + "' ,");
querySen.AppendLine(" sampling_plan_id='" + dt.Rows[i]["Column29"].ToString() + "' ,");
querySen.AppendLine(" over_request='" + dt.Rows[i]["Column30"].ToString() + "' ,");
querySen.AppendLine(" default_box_qty='" + (dt.Rows[i]["Column31"].ToString() == "" ? "0" : dt.Rows[i]["Column31"].ToString()) + "' ,");
querySen.AppendLine(" default_reel_qty='" + (dt.Rows[i]["Column32"].ToString() == "" ? "0" : dt.Rows[i]["Column32"].ToString()) + "' ,");
querySen.AppendLine(" default_set_qty='" + (dt.Rows[i]["Column33"].ToString() == "" ? "0" : dt.Rows[i]["Column33"].ToString()) + "' ,");
querySen.AppendLine(" part_no_3c='" + dt.Rows[i]["Column34"].ToString() + "' ,");
querySen.AppendLine(" wip_min_stock_qty='" + (dt.Rows[i]["Column35"].ToString() == "" ? "0" : dt.Rows[i]["Column35"].ToString()) + "' ,");
querySen.AppendLine(" Supply_type='" + dt.Rows[i]["Column36"].ToString() + "' ,");
querySen.AppendLine(" Settle_type='" + dt.Rows[i]["Column37"].ToString() + "' ,");
querySen.AppendLine(" Recheck_cycle='" + dt.Rows[i]["Column38"].ToString() + "' ,");
querySen.AppendLine(" Instock_type='" + dt.Rows[i]["Column39"].ToString() + "' ,");
querySen.AppendLine(" Package_size='" + dt.Rows[i]["Column40"].ToString() + "' ,");
querySen.AppendLine(" Vendor_id='" + dt.Rows[i]["Column41"].ToString() + "' ,");
//querySen.AppendLine(" is_sort='" + dt.Rows[i]["Column42"].ToString() + "' ,");
//querySen.AppendLine(" sort_qty='" + dt.Rows[i]["Column43"].ToString() + "' ,");
//querySen.AppendLine(" sort_type='" + dt.Rows[i]["Column44"].ToString() + "' ,");
querySen.AppendLine(" part_class='" + dt.Rows[i]["Column42"].ToString() + "' ,");
querySen.AppendLine(" update_userid='0' ,");
querySen.AppendLine(" update_ymd=CONVERT([varchar](10),getdate(),(120)),");
querySen.AppendLine(" update_hms=CONVERT([varchar](10),getdate(),(108)) ");
querySen.AppendLine(" WHERE part_no='" + partNo + "' ");
SqlStrings.Add(querySen.ToString());
Parameters.Add(Params);
}
}
dal.InsertData(SqlStrings, Parameters);
StringBuilder ErrorMessage = new StringBuilder(1024);
result.Add("message", "导入成功");
result.Add("flag", "error");
return result;
}
catch (Exception ex)
{
Hashtable result = new Hashtable();
result.Add("message", "导入失败");
result.Add("flag", "error");
return result;
}
}
public string Isnull(string value)
{
if (string.IsNullOrEmpty(value))
{
return "0";
}
else
{
return value;
}
}
/// <summary>
/// 获取单位数据
/// </summary>
/// <returns></returns>
public ArrayList getSelectPartMaster_Enum()
{
Hashtable result = new Hashtable();
DataTable dt = dal.getSelectPartMaster_Enum();
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
/// <summary>
/// 获取默认库位数据
/// </summary>
/// <returns></returns>
public ArrayList getSelectPartMaster_Locate()
{
Hashtable result = new Hashtable();
DataTable dt = dal.getSelectPartMaster_Locate();
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
/// <summary>
/// 获取条码规则数据
/// </summary>
/// <returns></returns>
public ArrayList getSelectPartMaster_TMGZ()
{
Hashtable result = new Hashtable();
DataTable dt = dal.getSelectPartMaster_TMGZ();
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
/// <summary>
/// 获取工艺流程数据
/// </summary>
/// <returns></returns>
public ArrayList getSelectPartMaster_Route()
{
Hashtable result = new Hashtable();
DataTable dt = dal.getSelectPartMaster_Route();
return DataTypeConvert.NewObject.DataTableToArrayList(dt);
}
/// <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_type, String part_no, String model_name, Pager pager, String direction, String sort, Boolean isPage)
{
DataTable result = null;
String strWhere = " 1=1 ";
int rowCount = 0;
if (part_no != null && !part_no.Trim().Equals(""))
{
strWhere = " a.part_no like '%" + part_no.Trim() + "%' ";
}
if (model_name != null && !model_name.Trim().Equals(""))
{
strWhere += " AND a.cust_order like '%" + model_name.Trim() + "%'";
}
String orderBy = "";
if (sort != null && !"".Equals(sort.Trim()))
{
orderBy += sort + " " + direction;
}
else
{
orderBy += " a.part_id " + direction;
}
if (isPage)
{
rowCount = pager.pageSize;
}
else
{
rowCount = pager.pageSize;
}
result = dal.getTableListByPage(part_type, rowCount, pager.pageNo, strWhere, sort + " " + direction);
return result;
}
}
}