using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Reflection; using System.Text; using MESClassLibrary.BLL.Log; using MESClassLibrary.DAL; using MESClassLibrary.EFModel; using MESClassLibrary.Model; namespace MESClassLibrary.BLL.PunchAndWeld { public class PlanPunchNewBLL { BBMPTEntities ef = new BBMPTEntities(); BasicBLL db = new BasicBLL(); /// /// 查询全部信息分页 /// /// public string SearchInfoAll(string page, string pagesize, string StartTime, string EndTime, string OrderNo) { try { string jsonStr = "[]"; int total = 0;//总行数 DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); List list = ef.tb_Plan_Punch_214.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); if (!String.IsNullOrEmpty(OrderNo)) { list = list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); } if (list.Count > 0) { total = list.Count; int Skipcount = (Convert.ToInt32(page) - 1) * Convert.ToInt32(pagesize); list = list.Skip(Skipcount).Take(Convert.ToInt32(pagesize)).ToList(); List modelList = new List(); #region 联查 var listModel = ef.tb_Product.ToList(); var listModels = ef.tb_Station.ToList(); foreach (var item in list) { tb_Plan_PunchNewModel dm = Tool.Mapper(item); var p_info = listModel.FirstOrDefault(p => p.PartNo == item.PartNo); if (p_info != null) { dm.PartName = p_info.ProductName; } var s_info = listModels.FirstOrDefault(p => p.StationID == item.StationId); if (s_info != null) { dm.StationNo = s_info.StationNo; dm.StationDes = s_info.Des; } modelList.Add(dm); } #endregion JsonDataModel md = new JsonDataModel(); md.total = total.ToString(); md.rows = modelList; jsonStr = JSONTools.ScriptSerialize(md); } return jsonStr; } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); return null; } } /// /// 新增信息 /// /// /// public bool AddInfo(tb_Plan_Punch_214 md) { try { var list = ef.tb_Plan_Punch_214.Where(p => p.OrderNo == md.OrderNo && p.Item == md.Item && p.PartNo == md.PartNo).ToList(); if (list.Count > 0) { return false; } return db.AddInfo(md); } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); return false; } } public bool UpdateInfo(tb_Plan_Punch_214 md) { //初始化要更新的字段 string[] proNames = new string[1]; proNames[0] = "OrderCount"; string sql = "select * from tb_Plan_Punch_214 where OrderNo='" + md.OrderNo + "' and PartNo='" + md.PartNo + "'"; SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.GetConnSting(), CommandType.Text, sql); if (dr.Read()) { if (md.OrderCount < Convert.ToInt32(dr["CompleteCount"])) { return false; } else { return db.UpdateInfo(md, proNames); } } else { return false; } } public string QueryForComboboxOrderNo(string StartTime) { try { string jsonStr = "[]"; List list = new List(); string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); var info = ef.tb_Plan_Punch_214.Where(p => p.OrderNo.Contains(orderNo)).GroupBy(p => p.OrderNo).Select(p => p.Key).ToList();//判断是否有重复数据 foreach (var item in info) { SelectModel md = new SelectModel(); md.textField = item; md.valueField = item; list.Add(md); } jsonStr = JSONTools.ScriptSerialize(list); return jsonStr; } catch (Exception) { return ""; } } public string QueryForItem(string OrderNo) { try { var info = ef.tb_Plan_Punch_214.Where(p => p.OrderNo.Equals(OrderNo)).OrderByDescending(p => p.Item).FirstOrDefault();//判断是否有重复数据 return (info.Item + 1).ToString(); } catch (Exception) { return ""; } } public bool UpdateAddInfo(tb_Plan_Punch_214 md) { try { var list = ef.tb_Plan_Punch_214.Where(p => p.OrderNo == md.OrderNo && p.PartNo == md.PartNo).ToList(); if ( list.Count > 0) { return false; } return db.AddInfo(md); } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); return false; } } public string SearchOrderNo(string StartTime, string Banci) { try { string jsonStr = ""; string orderNo = Convert.ToDateTime(StartTime).ToString("yyyyMMdd"); var info = ef.tb_Plan_Punch_214.Where(p => p.OrderNo.Contains(Banci.Substring(0, 1) + orderNo)).OrderByDescending(p => p.OrderNo).FirstOrDefault(); if (info != null) { return info.OrderNo.Substring(0, info.OrderNo.Length - 4) + (Convert.ToInt32(info.OrderNo.Substring(info.OrderNo.Length - 4, 4)) + 1).ToString() .PadLeft(4, '0'); } else { if (Banci.Contains("A")) { return "A" + orderNo + "0001"; } else { return "B" + orderNo + "0001"; } } } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); return ""; } } /// /// 删除信息 /// /// /// /// public bool DeleteInfo(tb_Plan_Punch_214 md) { try { if (ef.tb_Plan_Punch_214.Where(p => p.ID == md.ID && p.CompleteCount > 0).Count() > 0) { return false; } return db.DelInfo(md); } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); return false; } } public bool IsExist(string orderNo, int item) { bool res = false; try { if (ef.tb_Plan_Punch_214.Where(p => p.OrderNo == orderNo && p.Item==item).Count() > 0) { res= true; } } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); } return res; } public List> SearchForExcel(string StartTime, string EndTime, string OrderNo) { try { List> list = new List>(); DateTime stime = Convert.ToDateTime(StartTime + " 00:00:00"); DateTime etime = Convert.ToDateTime(EndTime + " 23:59:59"); List titleList = new List(); titleList.Add("生产计划单号"); titleList.Add("序号"); titleList.Add("工位号"); titleList.Add("工位名称"); titleList.Add("零件号"); titleList.Add("零件名称"); titleList.Add("数量"); titleList.Add("领用数量"); titleList.Add("完成数量"); titleList.Add("不良数量"); titleList.Add("备注"); titleList.Add("创建时间"); list.Add(titleList); List Plan_list = ef.tb_Plan_Punch_214.Where(p => p.CreateTime >= stime && p.CreateTime <= etime).OrderBy(p => p.CreateTime).ToList(); if (!String.IsNullOrEmpty(OrderNo)) { Plan_list = Plan_list.Where(p => p.OrderNo.Contains(OrderNo)).OrderBy(p => p.CreateTime).ToList(); } if (Plan_list.Count > 0) { List modelList = new List(); var listModel = ef.tb_Product.ToList(); var listModels = ef.tb_Station.ToList(); foreach (var item in Plan_list) { tb_Plan_PunchNewModel dm = Tool.Mapper(item); var p_info = listModel.FirstOrDefault(p => p.PartNo == item.PartNo); if (p_info != null) { dm.PartName = p_info.ProductName; } var s_info = listModels.FirstOrDefault(p => p.StationID == item.StationId); if (s_info != null) { dm.StationNo = s_info.StationNo; dm.StationDes = s_info.Des; } modelList.Add(dm); } for (int i = 0; i < modelList.Count; i++) { List rowList = new List(); rowList.Add(modelList[i].OrderNo); rowList.Add(modelList[i].Item == null ? "" : modelList[i].Item.ToString()); rowList.Add(modelList[i].StationNo); rowList.Add(modelList[i].StationDes == null ? "" : modelList[i].StationDes); rowList.Add(modelList[i].PartNo); rowList.Add(modelList[i].PartName == null ? "" : modelList[i].PartName); rowList.Add(modelList[i].OrderCount == null ? "" : modelList[i].OrderCount.ToString()); rowList.Add(modelList[i].LyCount == null ? "" : modelList[i].LyCount.ToString()); rowList.Add(modelList[i].CompleteCount == null ? "" : modelList[i].CompleteCount.ToString()); rowList.Add(modelList[i].BadCount == null ? "" : modelList[i].BadCount.ToString()); rowList.Add(modelList[i].Des); rowList.Add(modelList[i].CreateTime == null ? "" : modelList[i].CreateTime.ToString()); list.Add(rowList); } } return list; } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); return null; } } } }