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 { /// /// 菜单业务处理类 /// public class PartMasterGYService { private PartMasterGYDal dal = new PartMasterGYDal(RemotingProxyProvider._remotingProxy); /// /// 根据分页条件获取分页菜单数据 /// /// /// /// /// /// 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; } /// /// 保存菜单数据 /// /// /// public int savePartMaster(Hashtable htParams) { return dal.savePartMaster(htParams); } /// /// 更新菜单数据 /// /// /// public int updatePartMaster(Hashtable htParams) { return dal.updatePartMaster(htParams); } /// /// 查看详情 /// /// /// 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; } /// /// 删除菜单 /// /// /// 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; } /// /// 获取下拉框中的菜单数据 /// /// public ArrayList getSelectPartMaster() { Hashtable result = new Hashtable(); DataTable dt = dal.getSelectPartMaster(); return DataTypeConvert.NewObject.DataTableToArrayList(dt); } /// /// 获取车型数据 /// /// public ArrayList getSelectPartMaster_Model_name() { Hashtable result = new Hashtable(); DataTable dt = dal.getSelectPartMaster_Model_name(); return DataTypeConvert.NewObject.DataTableToArrayList(dt); } /// /// 获取座椅位置 /// /// public ArrayList getSelectPartLocation() { Hashtable result = new Hashtable(); DataTable dt = dal.getSelectPartLocation(); return DataTypeConvert.NewObject.DataTableToArrayList(dt); } /// /// 读取采购订单文件并更新至数据库 /// /// 文件全路径 /// 登录用户信息 public Hashtable ReadExcelFile(Stream inputStream, string partType, int empId) { try { Hashtable result = new Hashtable(); List SqlStrings = new List(); List Parameters = new List(); 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; } } /// /// 获取单位数据 /// /// public ArrayList getSelectPartMaster_Enum() { Hashtable result = new Hashtable(); DataTable dt = dal.getSelectPartMaster_Enum(); return DataTypeConvert.NewObject.DataTableToArrayList(dt); } /// /// 获取默认库位数据 /// /// public ArrayList getSelectPartMaster_Locate() { Hashtable result = new Hashtable(); DataTable dt = dal.getSelectPartMaster_Locate(); return DataTypeConvert.NewObject.DataTableToArrayList(dt); } /// /// 获取条码规则数据 /// /// public ArrayList getSelectPartMaster_TMGZ() { Hashtable result = new Hashtable(); DataTable dt = dal.getSelectPartMaster_TMGZ(); return DataTypeConvert.NewObject.DataTableToArrayList(dt); } /// /// 获取工艺流程数据 /// /// public ArrayList getSelectPartMaster_Route() { Hashtable result = new Hashtable(); DataTable dt = dal.getSelectPartMaster_Route(); return DataTypeConvert.NewObject.DataTableToArrayList(dt); } /// /// 导出 /// /// 查询条件 /// /// 排序方式 /// 排序字段 /// 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; } } }