using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using QMFrameWork.Common.Encrypt; using QMFrameWork.Data; using QMAPP.FJC.DAL.Operation; using QMAPP.FJC.Entity.Operation; using QMAPP.BLL; using QMAPP.Entity; using QMAPP.FJC.Entity.Basic; using QMAPP.FJC.Entity.ProduceManage; using QMAPP.FJC.BLL.Dict; using QMAPP.FJC.BLL.Basic; using QMAPP.FJC.Entity; using QMFrameWork.Log; using QMAPP.FJC.DAL.Injection; using QMAPP.FJC.Entity.Injection; using System.Configuration; using QMAPP.BLL.Sys; using QMAPP.FJC.DAL.Basic; using QMAPP.FJC.Entity.QT; using QMAPP.MD.Entity; using QMAPP.MD.DAL; namespace QMAPP.FJC.BLL.Operation { /// /// 模块编号:M13-1 /// 作 用:零件条码表 /// 作 者:王庆男 /// 编写日期:2015年05月29日 /// public class ProductBLL : BaseBLL { #region 获取信息 /// /// 获取信息 /// /// 条件 /// 信息 public Product Get(Product model) { try { return new ProductDAL().Get(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件信息" }); throw ex; } } /// /// 获取信息 /// /// 条件 /// 信息 public DataResult GetModle(Product model) { DataResult result = new DataResult(); try { result.Result = new ProductDAL().Get(model); } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } /// /// 获取T_AW_PACKAGE信息 /// /// 条件 /// 信息 public DataResult GetPackageModle(Entity.Operation.Package model) { DataResult result = new DataResult(); try { result.Result = new ProductDAL().GetPackage(model); } catch (Exception ex) { result.IsSuccess = false; result.Msg = Resource.SystemException; throw ex; } result.IsSuccess = true; return result; } /// /// 获取列表 /// /// 条件 /// 全部集合 public Product GetByCondition(Product condition) { Product product = new Product(); try { List list = new ProductDAL().GetList(condition); if (list.Count > 0) { product = list[0]; } else { product = null; } if (product != null) { //product.productBasic = new ProductBasicBLL().GetByCode(new ProductBasic { PRODUCTTYPE = product.PRODUCTTYPE}); } } catch (Exception ex) { product = null; LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件所有列表" }); throw ex; } return product; } /// /// 获取列表 /// /// 条件 /// 全部集合 public List GetListAndAttrByCondition(Product condition) { //Product product = new Product(); List list; try { list = new ProductDAL().GetListAndAttribute(condition); } catch (Exception ex) { list = null; //product = null; LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件" }); throw ex; } return list; } /// /// 获取列表 /// /// 条件 /// 全部集合 public Product GetAndAttrByCondition(Product condition) { Product product = new Product(); try { List list = new ProductDAL().GetListAndAttribute(condition); if (list.Count > 0) { product = list[0]; } else { product = null; } if (product != null) { product.productBasic = new ProductBasicBLL().GetByCode(new ProductBasic { PRODUCTTYPE = product.PRODUCTTYPE }); //product.processSet = new ProcessSetBLL().GetByModel(new ProcessSet { PRODUCTTYPE = product.PRODUCTTYPE, PROCESSTYPESEARCH = product.CURRENTPROCESS }).Result; } } catch (Exception ex) { product = null; LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件" }); throw ex; } return product; } #endregion #region 获取列表 /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public DataPage GetList(Product condition, DataPage page) { try { //获取信息列表 //if (!string.IsNullOrEmpty(condition.PRODUCTTYPES)) //{ // condition.PRODUCTTYPES = "'" + condition.PRODUCTTYPES.Replace(",", "','") + "'"; //} DataPage dataPage = new ProductDAL().GetList(condition, page); return dataPage; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件列表" }); throw ex; } } /// /// 获取列表 /// /// 条件 /// 数据页 /// 数据页 public DataPage GetListAndAttribute(Product condition, DataPage page) { try { //获取信息列表 DataPage dataPage = new ProductDAL().GetListAndAttribute(condition, page); #region 转换属性 List proList = dataPage.Result as List; DictManageBLL dictProType = new DictManageBLL(DictKind.PROTYPE); DictManageBLL dictColor = new DictManageBLL(DictKind.SKIN_COLOR); DictManageBLL dictHAndL = new DictManageBLL(DictKind.HAndL); DictManageBLL dictPosi = new DictManageBLL(DictKind.CAVITYTYPE); foreach (Product m in proList) { //产品类型 m.VAL2 = dictProType.GetDictValue(m.VAL2); //颜色 m.VAL4 = dictColor.GetDictValue(m.VAL4); //高低配 m.VAL3 = dictHAndL.GetDictValue(m.VAL3); //腔 m.VAL5 = dictPosi.GetDictValue(m.VAL5); } #endregion return dataPage; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件属性列表" }); throw ex; } } /// /// 获取替换列表 /// /// 条件 /// 数据页 /// 数据页 public DataResult GetProductReplaceList(ProductReplace condition, DataPage page) { DataResult result = new DataResult(); try { result.IsSuccess = true; page = new ProductDAL().GetProductReplaceList(condition, page); //List list = page.Result as List; ////处理字典信息 //var UserList = new UserManageBLL().GetUserComboxSource(); //foreach (var info in list) //{ // //创建人员 // var userCreat = UserList.FirstOrDefault(x => x.UserID == info.CREATEUSER); // if (userCreat != null) // info.CREATEUSERNAME = userCreat.UserName; //} //page.Result = list; result.Result = page; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "本体信息获取列表错误!" }); result.IsSuccess = false; result.Msg = "本体信息获取列表错误!"; } return result; } /// /// 获取列表 /// /// 条件 /// 全部集合 public List GetAllList(Product condition) { try { return new ProductDAL().GetList(condition); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件所有列表" }); throw ex; } } #endregion #region 信息是否重复 /// /// 判断名称是否存在 /// /// /// true:已存在;fasel:不存在。 public bool ExistsProduct(Product model) { try { return new ProductDAL().ExistsProduct(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--判断零件重复" }); throw ex; } } /// /// 判断名称是否存在 /// /// /// true:已存在;fasel:不存在。 public bool IsUsedProduct(Product model) { try { return new ProductDAL().IsUsedProduct(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--判断零件是否使用" }); throw ex; } } #endregion #region 插入信息 /// /// 插入信息(单表) /// /// 信息 /// 插入行数 public DataResult Insert(Product model) { DataResult result = new DataResult(); try { //基本信息 if(string.IsNullOrEmpty(model.PID)) model.PID = Guid.NewGuid().ToString(); model.CREATEUSER = this.LoginUser.UserID; model.CREATEDATE = DateTime.Now; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; ProductDAL cmdDAL = new ProductDAL(); if (ExistsProduct(model) == true) { result.IsSuccess = false; result.Msg = Resource.IsHaving; return result; } result.Result = new ProductDAL().Insert(model); result.IsSuccess = true; ; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--插入零件条码" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } /// /// 插入信息(单表) /// /// 信息 /// 插入行数 public DataResult InsertInjection(Product model, MachineInfo machine) { DataResult result = new DataResult(); //基本信息 model.PID = Guid.NewGuid().ToString(); ProductDAL cmdDAL = new ProductDAL(); if (ExistsProduct(model) == true) { result.IsSuccess = false; result.Msg = Resource.IsHaving; return result; } MainOperation operation = new MainOperation(); operation.PID = Guid.NewGuid().ToString(); operation.PDID = model.PID; operation.PRODUCTCODE = model.PRODUCTCODE; //搪塑 operation.PROCESSTYPE = EnumGeter.ProcessType.gujiazhusu.GetHashCode().ToString(); operation.PRODUCTTYPE = model.PRODUCTTYPE; operation.MACHINENAME = model.MACHINENAME; operation.MACHINECODDE = model.MACHINECODDE; operation.MATERIAL_CODE = model.MATERIAL_CODE; operation.MATERIAL_TYPE_CODE = model.MATERIAL_TYPE; operation.STATUS = EnumGeter.STATUS.QUALIFIED.GetHashCode().ToString(); operation.OPERATESTATE = EnumGeter.OPERATESTATE.COMPLETED.GetHashCode().ToString(); operation.OPERATEDDATE = model.CREATEDATE; operation.CURRENTPROCESS = EnumGeter.ProcessType.gujiazhusu.GetHashCode().ToString(); operation.PRODUCESHIFTNAME = model.PRODUCESHIFTNAME; operation.PRODUCESHIFTTCODE = model.PRODUCESHIFTTCODE; operation.PRODUCELINE = "B9"; operation.MODELSTATION = ""; operation.CREATEUSER = model.CREATEUSER; operation.CREATEDATE = System.DateTime.Now; operation.UPDATEUSER = model.UPDATEUSER; operation.UPDATEDATE = System.DateTime.Now; model.CREATEDATE = DateTime.Now; model.CREATEUSER = this.LoginUser.UserID; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; string productType = model.MATERIAL_CODE; List initList = new MaterialCodeInitDAL().GetList(new MaterialCodeInit() { MATERIAL_CODE = productType }); if (initList.Count > 0) { MaterialCodeInit init = initList[0]; model.WORKCELL_CODE = init.WORKCELL_CODE; model.WORKCENTER_CODE = init.WORKCENTER_CODE; model.WORKLOC_CODE = init.WORKLOC_CODE; operation.WORKCENTER_CODE = init.WORKCENTER_CODE; } //零件投料关联表 List addInjectItemList = new List(); InjectionRecorderDAL injectDal = new InjectionRecorderDAL(); List list = injectDal.GetLastRecorder(new InjectionRecorder() { MACHINECODDE = machine.MACHINECODDE, MATERIALTYPE = "0" });//0位原材料 if (list.Count > 0) { InjectionRecorder inRecorder = list[0]; #region 零件投料关联记录 ProductInjection proInject = new ProductInjection(); proInject.PID = Guid.NewGuid().ToString(); proInject.IPID = inRecorder.PID; proInject.MPPID = model.PID; proInject.MATERIALNAME = inRecorder.MATERIALNAME; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.MATERIALTYPE = inRecorder.MATERIALTYPE; proInject.MATERIALBATCH = inRecorder.MATERIALBATCH; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.INJECTIONINDEX = inRecorder.INJECTIONINDEX; proInject.INJECTIONTERMINAL = inRecorder.INJECTIONTERMINAL; proInject.USEDWEIGHT = 0; proInject.CREATEDATE = System.DateTime.Now; proInject.CREATEUSER = inRecorder.CREATEUSER; proInject.UPDATEUSER = inRecorder.UPDATEUSER; addInjectItemList.Add(proInject); #endregion } list = injectDal.GetLastRecorder(new InjectionRecorder() { MACHINECODDE = machine.MACHINECODDE, MATERIALTYPE = "1" });//1位织布 if (list.Count > 0) { InjectionRecorder inRecorder = list[0]; #region 零件投料关联记录 ProductInjection proInject = new ProductInjection(); proInject.PID = Guid.NewGuid().ToString(); proInject.IPID = inRecorder.PID; proInject.MPPID = model.PID; proInject.MATERIALNAME = inRecorder.MATERIALNAME; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.MATERIALTYPE = inRecorder.MATERIALTYPE; proInject.MATERIALBATCH = inRecorder.MATERIALBATCH; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.INJECTIONINDEX = inRecorder.INJECTIONINDEX; proInject.INJECTIONTERMINAL = inRecorder.INJECTIONTERMINAL; proInject.USEDWEIGHT = 0; proInject.CREATEDATE = System.DateTime.Now; proInject.CREATEUSER = inRecorder.CREATEUSER; proInject.UPDATEUSER = inRecorder.UPDATEUSER; addInjectItemList.Add(proInject); #endregion } list = injectDal.GetLastRecorder(new InjectionRecorder() { MACHINECODDE = machine.MACHINECODDE, MATERIALTYPE = "2" });//1金属支架 if (list.Count > 0) { InjectionRecorder inRecorder = list[0]; #region 零件投料关联记录 ProductInjection proInject = new ProductInjection(); proInject.PID = Guid.NewGuid().ToString(); proInject.IPID = inRecorder.PID; proInject.MPPID = model.PID; proInject.MATERIALNAME = inRecorder.MATERIALNAME; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.MATERIALTYPE = inRecorder.MATERIALTYPE; proInject.MATERIALBATCH = inRecorder.MATERIALBATCH; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.INJECTIONINDEX = inRecorder.INJECTIONINDEX; proInject.INJECTIONTERMINAL = inRecorder.INJECTIONTERMINAL; proInject.USEDWEIGHT = 0; proInject.CREATEDATE = System.DateTime.Now; proInject.CREATEUSER = inRecorder.CREATEUSER; proInject.UPDATEUSER = inRecorder.UPDATEUSER; addInjectItemList.Add(proInject); #endregion } #region 数据库操作 using (IDataSession session = AppDataFactory.CreateMainSession()) { session.OpenTs(); ProductDAL productDal = new ProductDAL(); MainOperationDAL mainOpeDal = new MainOperationDAL(); ProductInjectionDAL proInDal = new ProductInjectionDAL(); InjectionRecorderDAL recoderDal = new InjectionRecorderDAL(); productDal.BaseSession = session; mainOpeDal.BaseSession = session; proInDal.BaseSession = session; recoderDal.BaseSession = session; try { #region 插入产品信息 productDal.Insert(model); #endregion #region 投料关联表 foreach (var proinject in addInjectItemList) { proInDal.Insert(proinject); } #endregion #region 插入操作记录 mainOpeDal.Insert(operation); #endregion session.CommitTs(); result.Result = 1; result.IsSuccess = true; ; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { session.RollbackTs(); result.Result = 0; result.IsSuccess = false; ; result.Msg = Resource.MsgFaile; LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--插入零件条码" }); throw; } } #endregion return result; } /// /// 插入信息(单表) /// /// 信息 /// 插入行数 public DataResult InsertForBundle(Product model) { DataResult result = new DataResult(); try { //基本信息 model.PID = Guid.NewGuid().ToString(); model.CREATEUSER = this.LoginUser.UserID; model.CREATEDATE = DateTime.Now; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; ProductDAL cmdDAL = new ProductDAL(); result.Result = new ProductDAL().Insert(model); result.IsSuccess = true; ; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--插入零件条码" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } /// /// 插入信息(单表) /// /// 信息 /// 插入行数 public DataResult InsertAndReturn(Product model) { DataResult result = new DataResult(); try { //基本信息 model.PID = Guid.NewGuid().ToString(); model.CREATEUSER = this.LoginUser.UserID; model.CREATEDATE = DateTime.Now; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; ProductDAL cmdDAL = new ProductDAL(); if (ExistsProduct(model) == true) { result.IsSuccess = false; result.Msg = Resource.IsHaving; return result; } int count = new ProductDAL().Insert(model); result.Result = this.Get(model); result.IsSuccess = true; ; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--插入零件条码" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } /// /// 插入表皮信息(单表) /// /// 信息 /// 插入行数 public DataResult> InsertEpidermis(Product model) { DataResult> result = new DataResult>(); List proList = new List(); List mainOperations = new List(); List updateInjectList = new List(); List listCodes = new List(); //零件投料关联表 List addInjectItemList = new List(); try { //基本信息 model.PID = Guid.NewGuid().ToString(); model.CREATEUSER = this.LoginUser.UserID; model.CREATEDATE = DateTime.Now; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; //生成条码 if (string.IsNullOrEmpty(model.PRODUCTCODE) == true) { StringBuilder proCode = new StringBuilder(); string OpDate = model.PRODUCTATTRIBUTE.VAL7; proCode.Append(Convert.ToDateTime(OpDate).ToString("yyMMddHHmm")); /** //获取当前日期加工表皮列表 Product searchModel = new Product(); searchModel.CREATEDATE = Convert.ToDateTime(OpDate); searchModel.PRODUCELINE = model.PRODUCELINE; searchModel.PRODUCTTYPE = model.PRODUCTTYPE; List list = this.GetAllList(searchModel); string hhmm = ""; if (list.Count > 0) { list.Sort((b, a) => { return a.CREATEDATE.CompareTo(b.CREATEDATE); }); for (int i = 0; i < list.Count; i++) { DateTime createDate = list[i].CREATEDATE; if (i + 1 < list.Count && !createDate.AddMinutes(-1).ToString("HHmm").Equals(list[i + 1].CREATEDATE.ToString("HHmm"))) { hhmm = createDate.AddMinutes(-1).ToString("HHmm"); break; } if (i + 1 == list.Count) { hhmm = createDate.AddMinutes(-1).ToString("HHmm"); } } } else { hhmm = DateTime.Now.AddMinutes(-1).ToString("HHmm"); } proCode.Append(hhmm); **/ proCode.Append(model.PRODUCTATTRIBUTE.VAL1);//设备名称 proCode.Append(model.PRODUCTATTRIBUTE.VAL2);//产品类型 proCode.Append(model.PRODUCTATTRIBUTE.VAL3);//高低配 proCode.Append(model.PRODUCTATTRIBUTE.VAL4);//颜色 proCode.Append(model.PRODUCTATTRIBUTE.VAL5);//腔 proCode.Append(model.PRODUCTATTRIBUTE.VAL6);//模腔号 model.PRODUCTCODE = proCode.ToString(); #region 初始化零件号 //获取产品零件号 string productType = model.PRODUCTATTRIBUTE.VAL2 + model.PRODUCTATTRIBUTE.VAL3 + model.PRODUCTATTRIBUTE.VAL4; List initList = new MaterialCodeInitDAL().GetList(new MaterialCodeInit() { PRODUCT_TYPES = productType }); if (initList.Count > 0) { MaterialCodeInit init = initList[0]; model.WORKCELL_CODE = init.WORKCELL_CODE; model.WORKCENTER_CODE = init.WORKCENTER_CODE; model.MATERIAL_CODE = init.MATERIAL_CODE; model.WORKLOC_CODE = init.WORKLOC_CODE; model.MATERIAL_TYPE = init.MATERIAL_TYPE; } #endregion } if (string.IsNullOrEmpty(model.PRODUCTATTRIBUTE.PID)) { //属性表 model.PRODUCTATTRIBUTE.PID = Guid.NewGuid().ToString(); model.PRODUCTATTRIBUTE.MPPID = model.PID; model.PRODUCTATTRIBUTE.CREATEUSER = model.CREATEUSER; model.PRODUCTATTRIBUTE.CREATEDATE = model.CREATEDATE; model.PRODUCTATTRIBUTE.UPDATEUSER = model.UPDATEUSER; model.PRODUCTATTRIBUTE.UPDATEDATE = model.UPDATEDATE; } if (ExistsProduct(model) == true) { result.IsSuccess = false; result.Msg = Resource.IsHaving; return result; } //判断一次出几个码 if (model.PRODUCTATTRIBUTE.VAL5.Equals("A-B")) { string code = model.PRODUCTCODE.Clone().ToString(); model.PRODUCTATTRIBUTE.VAL5 = "A"; model.PRODUCTCODE = model.PRODUCTCODE.Replace("A-B", "A"); proList.Add(model); Product newModel = model.Clone() as Product; string newId = Guid.NewGuid().ToString(); newModel.PID = newId; newModel.PRODUCTATTRIBUTE = model.PRODUCTATTRIBUTE.Clone() as ProductAttribute; newModel.PRODUCTATTRIBUTE.PID = Guid.NewGuid().ToString(); newModel.PRODUCTATTRIBUTE.MPPID = newId; newModel.PRODUCTATTRIBUTE.VAL5 = "B"; string newCode = code.Replace("A-B", "B"); newModel.PRODUCTCODE = newCode; proList.Add(newModel); } else { proList.Add(model); } for (int i = 0; i < proList.Count; i++) { MainOperation operation = new MainOperation(); operation.PID = Guid.NewGuid().ToString(); operation.PDID = proList[i].PID; operation.PRODUCTCODE = proList[i].PRODUCTCODE; //搪塑 operation.PROCESSTYPE = EnumGeter.ProcessType.tangsu.GetHashCode().ToString(); operation.PRODUCTTYPE = model.PRODUCTTYPE; operation.MACHINENAME = model.MACHINENAME; operation.MACHINECODDE = model.MACHINECODDE; operation.STATUS = EnumGeter.STATUS.QUALIFIED.GetHashCode().ToString(); operation.OPERATESTATE = EnumGeter.OPERATESTATE.COMPLETED.GetHashCode().ToString(); operation.OPERATEDDATE = System.DateTime.Now; operation.CURRENTPROCESS = EnumGeter.ProcessType.tangsu.GetHashCode().ToString(); operation.PRODUCESHIFTNAME = model.PRODUCESHIFTNAME; operation.PRODUCESHIFTTCODE = model.PRODUCESHIFTTCODE; operation.PRODUCELINE = "B9"; operation.MODELSTATION = ""; operation.CREATEUSER = model.CREATEUSER; operation.CREATEDATE = System.DateTime.Now; operation.UPDATEUSER = model.UPDATEUSER; operation.UPDATEDATE = System.DateTime.Now; mainOperations.Add(operation); listCodes.Add(operation.PRODUCTCODE); } #region 加工工序信息 if (model.AddM)//如果需要添加物料扣减需要调用接口 { MachineInfo mInfo = new MachineInfoBLL().GetAllList(new MachineInfo { MACHINECODDE = model.MACHINECODDE })[0]; Process.SlushProcess slush = new Process.SlushProcess(); addInjectItemList = slush.GetProductInjectionList(proList, mInfo, ref updateInjectList); } else { InjectionRecorderDAL injectDal = new InjectionRecorderDAL(); List boms = new PbomDAL().GetSubItem(model.MATERIAL_CODE); foreach (var bom in boms) { List listInject = injectDal.GetLastRecorder(new InjectionRecorder() { MACHINECODDE = model.MACHINECODDE, MATERIALCODE = bom.MATERIAL_CODE }); #region 获取投料信息 foreach (Product item in proList) { if (listInject.Count > 0) { InjectionRecorder inRecorder = listInject[0]; #region 零件投料关联记录 ProductInjection proInject = new ProductInjection(); proInject.PID = Guid.NewGuid().ToString(); proInject.IPID = inRecorder.PID; proInject.MPPID = item.PID; proInject.MATERIALNAME = inRecorder.MATERIALNAME; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.MATERIALTYPE = inRecorder.MATERIALTYPE; proInject.MATERIALBATCH = inRecorder.MATERIALBATCH; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.INJECTIONINDEX = inRecorder.INJECTIONINDEX; proInject.INJECTIONTERMINAL = inRecorder.INJECTIONTERMINAL; proInject.USEDWEIGHT = 0; proInject.CREATEDATE = System.DateTime.Now; proInject.CREATEUSER = inRecorder.CREATEUSER; proInject.UPDATEUSER = inRecorder.UPDATEUSER; proInject.PROCESSTYPE = model.CURRENTPROCESS; addInjectItemList.Add(proInject); #endregion } } } } #endregion #region 数据库操作 using (IDataSession session = AppDataFactory.CreateMainSession()) { session.OpenTs(); ProductDAL productDal = new ProductDAL(); MainOperationDAL mainOpeDal = new MainOperationDAL(); ProductInjectionDAL proInDal = new ProductInjectionDAL(); InjectionRecorderDAL recoderDal = new InjectionRecorderDAL(); productDal.BaseSession = session; mainOpeDal.BaseSession = session; proInDal.BaseSession = session; recoderDal.BaseSession = session; try { #region 插入产品信息 foreach (Product item in proList) { productDal.InsertMainAndAttribute(item); } #endregion #region 插入操作记录 foreach (MainOperation item in mainOperations) { mainOpeDal.Insert(item); } #endregion #region 投料关联表 foreach (ProductInjection item in addInjectItemList) { proInDal.Insert(item); } foreach (InjectionRecorder item in updateInjectList) { recoderDal.Update(item); } #endregion session.CommitTs(); result.Result = listCodes; result.IsSuccess = true; ; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { session.RollbackTs(); result.IsSuccess = true; ; result.Msg = Resource.MsgFaile; throw; } } #endregion //result.Result = new ProductDAL().InsertMainAndAttribute(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--插入表皮信息" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } public DataResult> TaskInsertEpidermis(Product model, IDataSession session) { DataResult> result = new DataResult>(); List proList = new List(); List mainOperations = new List(); List updateInjectList = new List(); List listCodes = new List(); //零件投料关联表 List addInjectItemList = new List(); try { var workcellCode = ""; var workcenterCode = ""; var worklogCode = ""; //基本信息 model.PID = Guid.NewGuid().ToString(); model.CREATEUSER = this.LoginUser.UserID; model.CREATEDATE = DateTime.Now; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; #region 初始化零件号 //获取产品零件号 //string productType = model.PRODUCTATTRIBUTE.VAL2 + model.PRODUCTATTRIBUTE.VAL3 + model.PRODUCTATTRIBUTE.VAL4; List initList = new MaterialCodeInitDAL().GetList(new MaterialCodeInit() { MATERIAL_TYPE = model.MATERIAL_TYPE }); if (initList.Count > 0) { MaterialCodeInit init = initList[0]; workcellCode = init.WORKCELL_CODE; workcenterCode = init.WORKCENTER_CODE; worklogCode = init.WORKLOC_CODE; model.WORKCELL_CODE = init.WORKCELL_CODE; model.WORKCENTER_CODE = init.WORKCENTER_CODE; model.WORKLOC_CODE = init.WORKLOC_CODE; } ProcessRecord recorder = new ProcessRecord { PID = Guid.NewGuid().ToString(), PRODUCT_PID = model.PID, WORKLOC_CODE = worklogCode, WORKCELL_CODE = workcellCode, IN_WORKCELL_TIME = System.DateTime.Now, WORK_START_TIME = System.DateTime.Now, WORK_END_TIME = System.DateTime.Now, PROCESS_STATE = "1", MANUAL_PASS = "0", MODULE_CODE = "1" }; //直接插入数据库 session.Insert(recorder); #endregion if (ExistsProduct(model) == true) { result.IsSuccess = false; result.Msg = Resource.IsHaving; return result; } proList.Add(model); for (int i = 0; i < proList.Count; i++) { MainOperation operation = new MainOperation(); operation.PID = Guid.NewGuid().ToString(); operation.PDID = proList[i].PID; operation.PRODUCTCODE = proList[i].PRODUCTCODE; operation.MACHINENAME = model.MACHINENAME; operation.MACHINECODDE = model.MACHINECODDE; operation.STATUS = EnumGeter.STATUS.QUALIFIED.GetHashCode().ToString(); operation.OPERATESTATE = EnumGeter.OPERATESTATE.COMPLETED.GetHashCode().ToString(); operation.OPERATEDDATE = System.DateTime.Now; operation.CURRENTPROCESS = EnumGeter.ProcessType.tangsu.GetHashCode().ToString(); operation.PRODUCESHIFTNAME = model.PRODUCESHIFTNAME; operation.PRODUCESHIFTTCODE = model.PRODUCESHIFTTCODE; operation.PRODUCELINE = ""; operation.MODELSTATION = ""; operation.CREATEUSER = model.CREATEUSER; operation.CREATEDATE = System.DateTime.Now; operation.UPDATEUSER = model.UPDATEUSER; operation.UPDATEDATE = System.DateTime.Now; operation.MATERIAL_CODE = model.MATERIAL_CODE; operation.MATERIAL_NAME = model.MATERIAL_NAME; operation.MATERIAL_TYPE_CODE = model.MATERIAL_TYPE; operation.WORKCENTER_CODE = workcenterCode; operation.WORKCELL_CODE = workcellCode; mainOperations.Add(operation); listCodes.Add(operation.PRODUCTCODE); } #region 加工工序信息 if (model.AddM)//如果需要添加物料扣减需要调用接口 { MachineInfo mInfo = new MachineInfoBLL().GetAllList(new MachineInfo { MACHINECODDE = model.MACHINECODDE })[0]; Process.SlushProcess slush = new Process.SlushProcess(); addInjectItemList = slush.GetProductInjectionList(proList, mInfo, ref updateInjectList); } else { InjectionRecorderDAL injectDal = new InjectionRecorderDAL(); List listInject = injectDal.GetLastRecorder(new InjectionRecorder() { MACHINECODDE = model.MACHINECODDE, }); #region 获取投料信息 foreach (Product item in proList) { if (listInject.Count > 0) { InjectionRecorder inRecorder = listInject[0]; #region 零件投料关联记录 ProductInjection proInject = new ProductInjection(); proInject.PID = Guid.NewGuid().ToString(); proInject.IPID = inRecorder.PID; proInject.MPPID = item.PID; proInject.MATERIALNAME = inRecorder.MATERIALNAME; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.MATERIALTYPE = inRecorder.MATERIALTYPE; proInject.MATERIALBATCH = inRecorder.MATERIALBATCH; proInject.INJECTIONINDEX = inRecorder.INJECTIONINDEX; proInject.INJECTIONTERMINAL = inRecorder.INJECTIONTERMINAL; proInject.USEDWEIGHT = 0; proInject.CREATEDATE = System.DateTime.Now; proInject.CREATEUSER = inRecorder.CREATEUSER; proInject.UPDATEUSER = inRecorder.UPDATEUSER; proInject.PROCESSTYPE = model.CURRENTPROCESS; addInjectItemList.Add(proInject); #endregion } } } #endregion #region 数据库操作 ProductDAL productDal = new ProductDAL(); MainOperationDAL mainOpeDal = new MainOperationDAL(); ProductInjectionDAL proInDal = new ProductInjectionDAL(); InjectionRecorderDAL recoderDal = new InjectionRecorderDAL(); productDal.BaseSession = session; mainOpeDal.BaseSession = session; proInDal.BaseSession = session; recoderDal.BaseSession = session; try { #region 插入产品信息 foreach (Product item in proList) { productDal.InsertMainAndAttribute(item); } #endregion #region 插入操作记录 foreach (MainOperation item in mainOperations) { mainOpeDal.Insert(item); } #endregion #region 投料关联表 foreach (ProductInjection item in addInjectItemList) { proInDal.Insert(item); } foreach (InjectionRecorder item in updateInjectList) { recoderDal.Update(item); } #endregion //session.CommitTs(); result.Result = listCodes; result.IsSuccess = true; ; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { //session.RollbackTs(); result.IsSuccess = false; ; result.Msg = Resource.MsgFaile; throw; } #endregion //result.Result = new ProductDAL().InsertMainAndAttribute(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--插入表皮信息" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } /// /// 插入表皮信息(单表) /// /// 信息 /// 插入行数 public DataResult> InsertListEpidermis(List models) { DataResult> result = new DataResult>(); List proList = new List(); List mainOperations = new List(); List updateInjectList = new List(); PrintCode printInfo = new PrintCode(); List listCodes = new List(); List recorderList = new List(); //零件投料关联表 List addInjectItemList = new List(); try { string cartype = ""; foreach (Product model in models) { //基本信息 model.PID = Guid.NewGuid().ToString(); model.CREATEUSER = this.LoginUser.UserID; model.CREATEDATE = DateTime.Now; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; //生成条码 if (string.IsNullOrEmpty(model.PRODUCTCODE) == true) { StringBuilder proCode = new StringBuilder(); string OpDate = model.PRODUCTATTRIBUTE.VAL7; proCode.Append(Convert.ToDateTime(OpDate).ToString("yyMMddHHmm")); proCode.Append(model.PRODUCTATTRIBUTE.VAL1);//设备名称 proCode.Append(model.PRODUCTATTRIBUTE.VAL2);//产品类型 proCode.Append(model.PRODUCTATTRIBUTE.VAL3);//高低配 proCode.Append(model.PRODUCTATTRIBUTE.VAL4);//颜色 proCode.Append(model.PRODUCTATTRIBUTE.VAL5);//腔 proCode.Append(model.PRODUCTATTRIBUTE.VAL6);//模腔号 model.PRODUCTCODE = proCode.ToString(); #region 初始化零件号 //获取产品零件号 string productType = model.PRODUCTATTRIBUTE.VAL2 + model.PRODUCTATTRIBUTE.VAL3 + model.PRODUCTATTRIBUTE.VAL4; List initList = new MaterialCodeInitDAL().GetList(new MaterialCodeInit() { PRODUCT_TYPES = productType }); if (initList.Count > 0) { MaterialCodeInit init = initList[0]; model.WORKCELL_CODE = init.WORKCELL_CODE; model.WORKCENTER_CODE = init.WORKCENTER_CODE; model.MATERIAL_CODE = init.MATERIAL_CODE; model.WORKLOC_CODE = init.WORKLOC_CODE; model.MATERIAL_TYPE = init.MATERIAL_TYPE; cartype = init.CARTYPE; ProcessRecord recorder = new ProcessRecord(); recorder.PID = Guid.NewGuid().ToString(); recorder.PRODUCT_PID = model.PID; recorder.WORKLOC_CODE = init.WORKLOC_CODE_INIT; recorder.WORKCELL_CODE = init.WORKCELL_CODE_INIT; recorder.IN_WORKCELL_TIME = System.DateTime.Now; recorder.WORK_START_TIME = System.DateTime.Now; recorder.WORK_END_TIME = System.DateTime.Now; recorder.PROCESS_STATE = "1"; recorder.MANUAL_PASS = "0"; recorder.MODULE_CODE = "1"; recorderList.Add(recorder); printInfo.PRODUCTCODE = init.MATERIAL_CODE; printInfo.COLOR_CODE = init.COLOR; } #endregion } if (string.IsNullOrEmpty(model.PRODUCTATTRIBUTE.PID)) { //属性表 model.PRODUCTATTRIBUTE.PID = Guid.NewGuid().ToString(); model.PRODUCTATTRIBUTE.MPPID = model.PID; model.PRODUCTATTRIBUTE.CREATEUSER = model.CREATEUSER; model.PRODUCTATTRIBUTE.CREATEDATE = model.CREATEDATE; model.PRODUCTATTRIBUTE.UPDATEUSER = model.UPDATEUSER; model.PRODUCTATTRIBUTE.UPDATEDATE = model.UPDATEDATE; } if (ExistsProduct(model) == true) { result.IsSuccess = false; result.Msg = Resource.IsHaving; return result; } //判断一次出几个码 if (model.PRODUCTATTRIBUTE.VAL5.Equals("A-B")) { string code = model.PRODUCTCODE.Clone().ToString(); model.PRODUCTATTRIBUTE.VAL5 = "A"; model.PRODUCTCODE = model.PRODUCTCODE.Replace("A-B", "A"); proList.Add(model); Product newModel = model.Clone() as Product; string newId = Guid.NewGuid().ToString(); newModel.PID = newId; newModel.PRODUCTATTRIBUTE = model.PRODUCTATTRIBUTE.Clone() as ProductAttribute; newModel.PRODUCTATTRIBUTE.PID = Guid.NewGuid().ToString(); newModel.PRODUCTATTRIBUTE.MPPID = newId; newModel.PRODUCTATTRIBUTE.VAL5 = "B"; string newCode = code.Replace("A-B", "B"); newModel.PRODUCTCODE = newCode; proList.Add(newModel); } else { proList.Add(model); } MainOperation operation = new MainOperation(); operation.PID = Guid.NewGuid().ToString(); operation.PDID = model.PID; operation.PRODUCTCODE = model.PRODUCTCODE; //搪塑 operation.PROCESSTYPE = EnumGeter.ProcessType.tangsu.GetHashCode().ToString(); operation.PRODUCTTYPE = model.PRODUCTTYPE; operation.MACHINENAME = model.MACHINENAME; operation.MACHINECODDE = model.MACHINECODDE; operation.STATUS = EnumGeter.STATUS.QUALIFIED.GetHashCode().ToString(); operation.OPERATESTATE = EnumGeter.OPERATESTATE.COMPLETED.GetHashCode().ToString(); operation.OPERATEDDATE = System.DateTime.Now; operation.CURRENTPROCESS = EnumGeter.ProcessType.tangsu.GetHashCode().ToString(); operation.PRODUCESHIFTNAME = model.PRODUCESHIFTNAME; operation.PRODUCESHIFTTCODE = model.PRODUCESHIFTTCODE; operation.PRODUCELINE = cartype; operation.MATERIAL_CODE = model.MATERIAL_CODE; operation.MATERIAL_TYPE_CODE = model.MATERIAL_TYPE; operation.WORKCENTER_CODE = model.WORKCENTER_CODE; operation.WORKCELL_CODE = model.WORKCELL_CODE; operation.MODELSTATION = ""; operation.CREATEUSER = model.CREATEUSER; operation.CREATEDATE = System.DateTime.Now; operation.UPDATEUSER = model.UPDATEUSER; operation.UPDATEDATE = System.DateTime.Now; mainOperations.Add(operation); printInfo.MAINCODE = operation.PRODUCTCODE; if (model.AddM == false)//如果需要添加物料扣减需要调用接口 { MachineInfo mInfo = new MachineInfoBLL().GetAllList(new MachineInfo { MACHINECODDE = model.MACHINECODDE })[0]; Process.SlushProcess slush = new Process.SlushProcess(); addInjectItemList = slush.GetProductInjectionList(proList, mInfo, ref updateInjectList); } else { InjectionRecorderDAL injectDal = new InjectionRecorderDAL(); List boms = new PbomDAL().GetSubItem(model.MATERIAL_CODE); foreach (var bom in boms) { List listInject = injectDal.GetLastRecorder(new InjectionRecorder() { MATERIALCODE=bom.MATERIAL_CODE, MACHINECODDE = model.MACHINECODDE, }); #region 获取投料信息 //foreach (Product item in proList) //{ //} if (listInject.Count > 0) { InjectionRecorder inRecorder = listInject[0]; #region 零件投料关联记录 ProductInjection proInject = new ProductInjection(); proInject.PID = Guid.NewGuid().ToString(); proInject.IPID = inRecorder.PID; proInject.MPPID = model.PID; proInject.MATERIALNAME = inRecorder.MATERIALNAME; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.MATERIALTYPE = inRecorder.MATERIALTYPE; proInject.MATERIALBATCH = inRecorder.MATERIALBATCH; proInject.MATERIALCODE = inRecorder.MATERIALCODE; proInject.INJECTIONINDEX = inRecorder.INJECTIONINDEX; proInject.INJECTIONTERMINAL = inRecorder.INJECTIONTERMINAL; proInject.USEDWEIGHT = 0; proInject.CREATEDATE = System.DateTime.Now; proInject.CREATEUSER = inRecorder.CREATEUSER; proInject.UPDATEUSER = inRecorder.UPDATEUSER; proInject.PROCESSTYPE = model.CURRENTPROCESS; addInjectItemList.Add(proInject); #endregion } #endregion } } } #region 数据库操作 using (IDataSession session = AppDataFactory.CreateMainSession()) { session.OpenTs(); ProductDAL productDal = new ProductDAL(); MainOperationDAL mainOpeDal = new MainOperationDAL(); ProductInjectionDAL proInDal = new ProductInjectionDAL(); InjectionRecorderDAL recoderDal = new InjectionRecorderDAL(); productDal.BaseSession = session; mainOpeDal.BaseSession = session; proInDal.BaseSession = session; recoderDal.BaseSession = session; try { #region 插入产品信息 foreach (Product item in proList) { productDal.InsertMainAndAttribute(item); } #endregion #region 插入操作记录 foreach (MainOperation item in mainOperations) { mainOpeDal.Insert(item); } #endregion #region 投料关联表 foreach (ProductInjection item in addInjectItemList) { proInDal.Insert(item); } foreach (InjectionRecorder item in updateInjectList) { recoderDal.Update(item); } #endregion #region 插入加工记录 foreach (var recorder in recorderList) { session.Insert(recorder); } #endregion session.CommitTs(); listCodes.Add(printInfo); result.Result = listCodes; result.IsSuccess = true; ; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { session.RollbackTs(); result.IsSuccess = true; ; result.Msg = Resource.MsgFaile; throw; } } #endregion } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--插入表皮信息" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } #endregion #endregion /// /// 插入T_AW_PACKAGE信息 /// /// /// public DataResult InsertPackage(Entity.Operation.Package model) { DataResult result = new DataResult(); try { ProductDAL cmdDAL = new ProductDAL(); //基本信息 model.PID = Guid.NewGuid().ToString(); model.CREATEUSER = this.LoginUser.UserID; model.CREATEDATE = DateTime.Now; model.UPDATEUSER = model.CREATEUSER; model.UPDATEDATE = model.CREATEDATE; model.USINGCOUNT = 0; model.USINGSTATE = 0; //去T_MD_PACKAGESET查找容量信息 PackageSet packageSet = cmdDAL.GetPackageSetInfo(new PackageSet { MATERIAL_CODE = model.MATERIAL_CODE }); if (packageSet != null) { model.CAPACITY = packageSet.CAPACITY; } //if (ExistsProduct(model) == true) //{ // result.IsSuccess = false; // result.Msg = Resource.IsHaving; // return result; //} result.Result = new ProductDAL().InsertPackage(model); result.IsSuccess = true; ; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "产品--插入包装信息" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } #endregion #region 更新信息 /// /// 更新信息 /// /// /// 更新行数 public DataResult Update(Product model) { DataResult result = new DataResult(); try { model.UPDATEUSER = this.LoginUser.UserID; result.Result = new ProductDAL().Update(model); result.IsSuccess = true; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--更新零件信息" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } /// /// 更新信息 /// /// /// 更新行数 public DataResult UpdateStatus(Product model, MendRecorder recorder) { DataResult result = new DataResult(); try { model.UPDATEUSER = this.LoginUser.UserID; recorder.PID = Guid.NewGuid().ToString(); recorder.CREATEUSER = this.LoginUser.UserID; recorder.CREATEDATE = DateTime.Now; recorder.UPDATEUSER = model.CREATEUSER; recorder.UPDATEDATE = model.CREATEDATE; result.Result = new ProductDAL().Update(model, recorder); result.IsSuccess = true; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--更新零件状态返修或报废" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } #endregion #region 删除 /// /// 删除信息 /// /// /// 删除个数 public DataResult Delete(string strs) { DataResult result = new DataResult(); string[] list = strs.Split(":".ToCharArray()); try { foreach (string str in list) { result.Result += this.DeleteProduct(new Product { PID = str }); } result.IsSuccess = true; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--删除零件信息" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } /// /// 删除信息 /// /// /// 删除个数 public DataResult DeleteSingle(string str) { DataResult result = new DataResult(); try { if (this.IsUsedProduct(new Product { PID = str, USINGSTATE = EnumGeter.PRODUCTUSESTATE.UNUSED.GetHashCode().ToString() })) { result.IsSuccess = false; result.Msg = Resource.ProductIsUsing; return result; } result.Result = this.DeleteProduct(new Product { PID = str }); result.IsSuccess = true; result.Msg = Resource.MsgSuccess; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--删除零件信息" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } /// /// 删除信息 /// /// 信息 /// 删除个数 public int DeleteProduct(Product model) { int count = 0; try { count = new ProductDAL().Delete(model); return count; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--删除零件信息" }); throw ex; } } public DataResult DeleteProduct(string ProductCode, string machineCode) { try { DataResult result = new DataResult(); result.Result = new ProductDAL().DeleteProduct(ProductCode, machineCode); return result; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件信息" }); throw ex; } } #endregion #region 导出数据 /// /// 获取导出的数据 /// /// 查询条件 /// 数据 public DataTable GetExportData(Product model) { try { return new ProductDAL().GetExportData(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--导出零件信息" }); throw ex; } } #endregion #region 导入数据 public DataResult GetImportData(List list) { DataResult result = new DataResult(); ProductDAL cmDal = new ProductDAL(); List List = new List(); int index = 0; try { result.Result = new ImportMessage(); result.Result.Errors = new List(); using (IDataSession session = AppDataFactory.CreateMainSession()) { //状态判断 foreach (Product ma in list) { index++; if (string.IsNullOrEmpty(ma.InfoError) == false) { ma.PID = null; result.Result.failureNum += 1; continue; } //修改改时根据主键等信息获取详细内容信息 Product oldInfo = cmDal.Get(ma); if (oldInfo != null) { //更新 ma.PID = oldInfo.PID; ma.CREATEUSER = oldInfo.CREATEUSER; ma.CREATEDATE = oldInfo.CREATEDATE; ma.UPDATEUSER = this.LoginUser.UserID; ma.UPDATEDATE = oldInfo.UPDATEDATE; ma.IsNewInfo = false; result.Result.updateNum += 1; } else { //新增 oldInfo = new Product(); ma.PID = Guid.NewGuid().ToString(); ma.CREATEUSER = this.LoginUser.UserID; ma.CREATEDATE = DateTime.Now; ma.UPDATEUSER = ma.CREATEUSER; ma.UPDATEDATE = ma.CREATEDATE; ma.IsNewInfo = true; result.Result.insertNum += 1; } List.Add(ma); } } //导入 cmDal.GetImportData(List); result.Msg = "导入成功"; result.IsSuccess = true; return result; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--导入零件信息" }); result.IsSuccess = false; result.Ex = ex; return result; } } #endregion #region 返修登记、返修完成更新产品(工控机) /// /// 返修登记、返修完成更新产品(工控机) /// /// 更新信息 /// public DataResult MendUpdate(Product model) { DataResult result = new DataResult(); try { Product condition = new ProductDAL().Get(model); if (condition == null) { result.IsSuccess = false; result.Msg = Resource.OperationProNotFound; } else { condition.UPDATEUSER = this.LoginUser.UserID; condition.STATUS = model.STATUS; result.Result = new ProductDAL().Update(condition); result.IsSuccess = true; result.Msg = Resource.MsgSuccess; } } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--更新零件信息" }); result.IsSuccess = false; result.Msg = Resource.SystemException; } return result; } #endregion #region 获取信息(工控机) /// /// 获取信息 /// /// 条件 /// 信息 public Product GetProductInfo(Product model) { try { return new ProductDAL().GetProductInfo(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件信息" }); throw ex; } } public Product GetProductByAssembleCode(string code) { try { return new ProductDAL().GetProductByAssembleCode(code); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件信息" }); throw ex; } } /// /// 查询条码所代表的原始产品信息 /// /// /// public Product GetOrginProduct(string productcode) { FJC.DAL.Produce.ProductDAL dal = new DAL.Produce.ProductDAL(); return dal.GetByCode(productcode); } public Product GetProductByPart(string partpid) { FJC.DAL.Produce.ProductDAL dal = new DAL.Produce.ProductDAL(); return dal.GetProductByPart(partpid); } public Product GetProductByPartID(string partpid) { FJC.DAL.Produce.ProductDAL dal = new DAL.Produce.ProductDAL(); return dal.GetProductByPartID(partpid); } #endregion #region 插入金属支架 /// /// /// /// 金属支架盒编码 public void InsertAirbagSupportPackage(string barCode) { Product product = new Product(); ProductDAL productdal = new ProductDAL(); try { //判断该对象是否已经存在 product = productdal.GetProductInfo(new Product() { PRODUCTCODE = barCode.Replace("\r", "").Replace("\n", "").ToUpper() }); if (product != null && string.IsNullOrEmpty(product.PID) == false) { LogManager.LogHelper.Info(new LogInfo() { Info = "AirbagSupportPackage:" + barCode + " exist!" }); return; } product = new Product(); product.PID = Guid.NewGuid().ToString(); product.PRODUCTCODE = barCode.Replace("\r", "").Replace("\n", "").ToUpper().ToString(); product.PRODUCTTYPE = EnumGeter.ProductType.jinshuzhijia.GetHashCode().ToString(); product.MACHINENAME = "";//machine.MACHINENAME; product.MACHINECODDE = "";//machine.MACHINECODDE; //自制件 product.PRODUCTSOURCE = EnumGeter.PRODUCTSOURCE.OUTSOURCING.GetHashCode().ToString(); //合格品 product.STATUS = EnumGeter.STATUS.QUALIFIED.GetHashCode().ToString(); product.CURRENTPROCESS = EnumGeter.ProcessType.qinangzhijiazhusu.GetHashCode().ToString(); product.PRODUCELINE = "B9"; product.PRODUCESHIFTNAME = ""; product.PRODUCESHIFTTCODE = ""; //在库 product.OUTFLAG = EnumGeter.OUTFLAG.INWAREHOUSE.GetHashCode().ToString(); //未使用 product.USINGSTATE = EnumGeter.USINGSTATE.UNUSED.GetHashCode().ToString(); string piece = ConfigurationManager.AppSettings["Piece"]; product.CAPACITY = Convert.ToInt32(piece); product.USINGCOUNT = 0; //product.CREATEUSER = machine.PID; product.CREATEDATE = System.DateTime.Now; //product.UPDATEUSER = machine.PID; product.UPDATEDATE = System.DateTime.Now; productdal.Insert(product); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { Info = "insert AirbagSupportPackage:" + barCode + " error!", ErrorInfo = ex }); } } #endregion #region 条码作废 /// /// /// /// /// public DataResult ScarpProduct(Product condition) { DataResult result = new DataResult(); result.IsSuccess = true; try { ProductDAL prodal = new ProductDAL(); Product entity = prodal.GetProductInfo(condition); if (entity == null) { result.IsSuccess = false; result.Msg = string.Format("产品{0}不存在!", condition.PRODUCTCODE); return result; } if (entity.USINGSTATE == EnumGeter.USINGSTATE.USED.GetHashCode().ToString()) { result.IsSuccess = false; result.Msg = string.Format("产品{0}已使用!", condition.PRODUCTCODE); return result; } if (entity.STATUS == EnumGeter.STATUS.SCRAP.GetHashCode().ToString()) { result.IsSuccess = false; result.Msg = string.Format("产品{0}已作废!", condition.PRODUCTCODE); return result; } entity.STATUS = EnumGeter.STATUS.SCRAP.GetHashCode().ToString(); prodal.Update(entity); return result; } catch (Exception ex) { result.IsSuccess = false; result.Msg = string.Format("系统异常!"); return result; } } #endregion public int ModifyProductCode(string productCode) { int result = 0; Product entityInsert = new Product(); entityInsert.PID = Guid.NewGuid().ToString(); entityInsert.PRODUCTCODE = productCode; entityInsert.PRODUCTSOURCE = "0"; entityInsert.PRODUCELINE = "B9"; entityInsert.OUTFLAG = "0"; entityInsert.USINGSTATE = "0"; entityInsert.CAPACITY = 1; entityInsert.USINGCOUNT = 0; string startStr = productCode.Substring(0, 3); string endStr = productCode.Substring(productCode.Length - 4, 4); string selectSql = "select * from t_aw_product t where 1=1 "; if (productCode.Substring(0, 3) == "B9A") { selectSql += " AND createdate>'2016-05-1 09:13:33.000'"; selectSql += " AND currentprocess='7' "; selectSql += " AND PRODUCTTYPE='1' "; selectSql += " AND PRODUCTCODE LIKE 'B9A1605%"; selectSql += endStr; selectSql += "'"; } if (productCode.Substring(0, 3) == "B9B") { selectSql += " AND createdate>'2016-05-1 09:13:33.000'"; selectSql += " AND currentprocess='13' "; selectSql += " AND PRODUCTTYPE='4' "; selectSql += " AND PRODUCTCODE LIKE 'B9B1605%"; selectSql += endStr; selectSql += "'"; entityInsert.PRODUCTTYPE = "4"; entityInsert.MACHINENAME = "恩格尔3200T注塑"; entityInsert.MACHINECODDE = "Engel3200T"; entityInsert.STATUS = "0"; entityInsert.CURRENTPROCESS = "13"; entityInsert.CREATEUSER = "c361d78c-91ed-4b1f-9777-8ff0aefa6cc6"; entityInsert.UPDATEUSER = "c361d78c-91ed-4b1f-9777-8ff0aefa6cc6"; entityInsert.CREATEDATE = Convert.ToDateTime("2016-05-" + productCode.Substring(7, 2) + " " + productCode.Substring(9, 2) + ":" + productCode.Substring(11, 2) + ":00"); } if (productCode.Substring(0, 3) == "B9C") { selectSql += " AND createdate>'2016-05-1 09:13:33.000'"; selectSql += " AND currentprocess='13' "; selectSql += " AND PRODUCTTYPE='5' "; selectSql += " AND PRODUCTCODE LIKE 'B9C1605%"; selectSql += endStr; selectSql += "'"; } if (productCode.Substring(0, 3) == "FJC") { selectSql += " AND createdate>'2016-04-1 09:13:33.000'"; selectSql += " AND currentprocess='15' "; selectSql += " AND PRODUCTTYPE='2' "; selectSql += " AND PRODUCTCODE LIKE 'FJC160%"; selectSql += endStr; selectSql += "'"; } if (productCode.Substring(0, 3) == "AAA") { selectSql += " AND createdate>'2016-04-1 09:13:33.000'"; selectSql += " AND currentprocess='15' "; selectSql += " AND PRODUCTTYPE='2' "; selectSql += " AND PRODUCTCODE LIKE 'FJC160%"; selectSql += endStr; selectSql += "'"; } List productList = new List(); using (IDataSession session = AppDataFactory.CreateMainSession()) { productList = session.GetList(selectSql, new List().ToArray()).ToList(); } if (productList.Count == 0) { try { if (productCode.Substring(0, 3) == "B9B") { using (IDataSession session = AppDataFactory.CreateMainSession()) { session.Insert(entityInsert); } } } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Info = ex.Message }); } result = 0; } if (productList.Count > 0 && productList.Count < 2) { Product entity = productList[0]; if (entity.PRODUCTCODE == productCode) { if (productCode.Substring(0, 3) != "B9B") { result = 2; return result; } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { session.Insert(entityInsert); } } } else { using (IDataSession session = AppDataFactory.CreateMainSession()) { entity.PRODUCTCODE = productCode; session.Update(entity); } result = 1; } } else { result = 2; } return result; } /// /// 门板强制终检 /// /// /// /// public Product CreateAssy(string productcode, string materialcode) { var materialdal = new MD.DAL.MaterialDAL(); var material = materialdal.Get(new MD.Entity.Material { MATERIAL_CODE = materialcode }); var matinitdal = new FJC.DAL.Basic.MaterialCodeInitDAL(); var mcinit = matinitdal.GetByCondition(new MaterialCodeInit { MATERIAL_TYPE = material.MATERIAL_TYPE_CODE}); using (IDataSession session = AppDataFactory.CreateMainSession()) { try { session.OpenTs(); ProductDAL prodal = new ProductDAL(); prodal.BaseSession = session; var product = new Product { CAPACITY = 1, CREATEDATE = DateTime.Now, CREATEUSER = base.LoginUser.UserID, CURRENTPROCESS = "", ENDOFLINE = "1", MACHINECODDE = "", MACHINENAME = "", MATERIAL_CODE = materialcode, MATERIAL_TYPE = material.MATERIAL_TYPE_CODE, OUTFLAG = "0", PID = Guid.NewGuid().ToString(), PRODUCELINE = "", PRODUCESHIFTNAME = "A", PRODUCESHIFTTCODE = "A", PRODUCTCODE = productcode, PRODUCTSOURCE = "0", PRODUCTTYPE = "", STATUS = "0", TEAM_CODE = "", UPDATEDATE = DateTime.Now, UPDATEUSER = base.LoginUser.UserID, USINGCOUNT = 0, USINGSTATE = "0", WORKCELL_CODE = mcinit == null ? "" : mcinit.WORKCELL_CODE_INIT, WORKCENTER_CODE = mcinit == null ? "" : mcinit.WORKCENTER_CODE_INIT, WORKLOC_CODE = "", PLAN_ID = "" }; prodal.Insert(product); DAL.Operation.MainDAL maindal = new MainDAL(); maindal.BaseSession = session; session.CommitTs(); return product; } catch (Exception e) { session.RollbackTs(); throw e; } } } /// /// 创建门板总成 /// /// /// /// public Product CreateDPAssy(string framecode, string materialcode) { ProductDAL prodal = new ProductDAL(); var frame=prodal.Get(new Product{ PRODUCTCODE=framecode}); if(frame==null) { throw new Exception("查找主框架信息失败!"); } MD.DAL.PbomDAL bomdal=new MD.DAL.PbomDAL(); var bom= bomdal.Get(new MD.Entity.Pbom { MATERIAL_CODE= materialcode}); if(bom==null) { throw new Exception("查找总成BOM信息失败!"); } var DFmaterial= bomdal.GetUPLevelItem(bom.PBOM_CODE,frame.MATERIAL_CODE); string productcode=GenerateCode(DFmaterial.MATERIAL_CODE,DateTime.Now.AddDays(-5)); var materialdal = new MD.DAL.MaterialDAL(); var material = materialdal.Get(new MD.Entity.Material { MATERIAL_CODE = materialcode }); var materialdf = materialdal.Get(new MD.Entity.Material { MATERIAL_CODE = DFmaterial.MATERIAL_CODE }); var matinitdal = new FJC.DAL.Basic.MaterialCodeInitDAL(); var mcinit = matinitdal.GetByCondition(new MaterialCodeInit { MATERIAL_TYPE = material.MATERIAL_TYPE_CODE }); var mcinitdf = matinitdal.GetByCondition(new MaterialCodeInit { MATERIAL_TYPE = materialdf.MATERIAL_TYPE_CODE }); using (IDataSession session = AppDataFactory.CreateMainSession()) { try { session.OpenTs(); prodal.BaseSession = session; var frameassy = new Product { CAPACITY = 1, CREATEDATE = DateTime.Now.AddDays(-5), CREATEUSER = base.LoginUser.UserID, CURRENTPROCESS = "", ENDOFLINE = "1", MACHINECODDE = "", MACHINENAME = "", MATERIAL_CODE = DFmaterial.MATERIAL_CODE, MATERIAL_TYPE = materialdf.MATERIAL_TYPE_CODE, OUTFLAG = "0", PID = Guid.NewGuid().ToString(), PRODUCELINE = "", PRODUCESHIFTNAME = "A", PRODUCESHIFTTCODE = "A", PRODUCTCODE = productcode, PRODUCTSOURCE = "0", PRODUCTTYPE = "", STATUS = "0", TEAM_CODE = "", UPDATEDATE = DateTime.Now.AddDays(-5), UPDATEUSER = base.LoginUser.UserID, USINGCOUNT = 0, USINGSTATE = "0", WORKCELL_CODE = mcinit == null ? "" : mcinit.WORKCELL_CODE_INIT, WORKCENTER_CODE = mcinit == null ? "" : mcinit.WORKCENTER_CODE_INIT, WORKLOC_CODE = "", PLAN_ID = "" }; var dpassy = new Product { CAPACITY = 1, CREATEDATE = DateTime.Now.AddDays(-5).AddSeconds(1), CREATEUSER = base.LoginUser.UserID, CURRENTPROCESS = "", ENDOFLINE = "1", MACHINECODDE = "", MACHINENAME = "", MATERIAL_CODE = materialcode, MATERIAL_TYPE = material.MATERIAL_TYPE_CODE, OUTFLAG = "0", PID = Guid.NewGuid().ToString(), PRODUCELINE = "", PRODUCESHIFTNAME = "A", PRODUCESHIFTTCODE = "A", PRODUCTCODE = productcode, PRODUCTSOURCE = "0", PRODUCTTYPE = "", STATUS = "0", TEAM_CODE = "", UPDATEDATE = DateTime.Now.AddDays(-5).AddSeconds(1), UPDATEUSER = base.LoginUser.UserID, USINGCOUNT = 0, USINGSTATE = "0", WORKCELL_CODE = mcinit == null ? "" : mcinit.WORKCELL_CODE_INIT, WORKCENTER_CODE = mcinit == null ? "" : mcinit.WORKCENTER_CODE_INIT, WORKLOC_CODE = "", PLAN_ID = "" }; prodal.Insert(dpassy); prodal.Insert(frameassy); DAL.QT.ProductStructureDAL psdal = new DAL.QT.ProductStructureDAL(); psdal.BaseSession = session; psdal.Insert(new ProductStructure { PID = Guid.NewGuid().ToString(), PROCESS_CODE = productcode, PRODUCT_PID = frameassy.PID, PART_PID = frame.PID }); psdal.Insert(new ProductStructure { PID = Guid.NewGuid().ToString(), PROCESS_CODE = productcode, PRODUCT_PID = dpassy.PID, PART_PID = frameassy.PID }); session.CommitTs(); return dpassy; } catch (Exception e) { session.RollbackTs(); throw e; } } } private string GenerateCode(string materialcode, DateTime time) { MD.DAL.MaterialDAL mdal = new MD.DAL.MaterialDAL(); var material = mdal.Get(new MD.Entity.Material { MATERIAL_CODE = materialcode }); if (material == null) { throw new Exception("查找物料信息失败!"); } DAL.Basic.MaterialCodeInitDAL mcdal = new DAL.Basic.MaterialCodeInitDAL(); var materialinit = mcdal.GetByCondition(new Entity.Basic.MaterialCodeInit { MATERIAL_TYPE = material.MATERIAL_TYPE_CODE }); string prefix = ""; if (materialinit != null) { prefix = materialinit.PRODUCT_TYPES; } var productdal = new DAL.Produce.ProductDAL(); string maxcode = productdal.GetMaxCode(material.MATERIAL_TYPE_CODE, time); string newcode = "1"; if (!string.IsNullOrEmpty(maxcode)) { newcode = (Convert.ToInt32(maxcode) + 1) + ""; } newcode = prefix + time.ToString("yyyyMMdd") + newcode.PadLeft(6, '0'); return newcode; } #region 获取主体条码下的零件列表 public List GetMainProductMaterialCodeList(string productcode) { try { return new ProductDAL().GetMainProductMaterialCodeList(productcode); } catch (Exception ex) { throw ex; } } #endregion #region 替换并添加临时表 public int ReplaceProductMaterialCode(Product mainProduct, Product childProduct, Product replaceProduct) { try { return new ProductDAL().ReplaceProductMaterialCode(mainProduct, childProduct, replaceProduct,LoginUser.UserID); } catch (Exception ex) { return 0; } } #endregion #region 替换件导出数据 /// /// 获取导出的数据 /// /// 查询条件 /// 数据 public DataResult GetExpProductReplaceList(ProductReplace model) { DataResult result = new DataResult(); try { result.IsSuccess = true; result.Result = new ProductDAL().GetExpProductReplaceList(model); } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "导出错误!" }); result.IsSuccess = false; result.Msg = "导出错误!"; } return result; } #endregion public DataResult GetProductAllInfo(string productcode) { try { var result=new DataResult(); var product = new ProductDAL().GetProductByAssembleCode(productcode); if (product == null) { DAL.Operation.MainCodeChangeDAL dal = new MainCodeChangeDAL(); var codechangerecord=dal.GetChangeRecord(productcode); if (codechangerecord != null && codechangerecord.Count > 0) { string newproductcode = codechangerecord.OrderByDescending(p => p.CREATEDATE).FirstOrDefault().NEWMAINCODE; product = new ProductDAL().GetProductByAssembleCode(newproductcode); } } if (product == null) { List ProductList = new MainOperationDAL().GetMainOperations(new Product() { PRODUCTCODE = productcode }); if (ProductList != null && ProductList.Count > 1) { result.IsSuccess = false; result.Msg = "此条码为批量条码,无法进行反关联查询!"; return result; } else product = ProductList[0]; } if (product == null) { result.IsSuccess = false; result.Msg = "条码无效,未找到与此条码相关产品信息!"; return result; } if (product.USINGSTATE == "2" && product.CAPACITY <= 1) { var product1 = new ProductDAL().GetProductByPartID(product.PID); if (product1 != null) { product = product1; } } var material = new MD.DAL.MaterialDAL().GetMaterial(product.MATERIAL_CODE); if (material != null) { product.MATERIAL_NAME = material.MATERIAL_NAME; product.MATERIAL_TYPE_NAME = material.MATERIAL_TYPE_NAME; product.MATERIAL_ATTRIBUTE = material.MATERIAL_ATTRIBUTE; } var partlist = new DAL.Operation.ProductDAL().GetPartList(product.PRODUCTCODE); DictManageBLL dictOutFlagBll = new DictManageBLL(DictKind.OUTFLAG); DictManageBLL dictUsingStateBll = new DictManageBLL(DictKind.USINGSTATE); DictManageBLL dictMaterialAttributeBll = new DictManageBLL("MATERIALATTRIBUTE"); DictManageBLL dictProductStatusBll = new DictManageBLL(DictKind.PRODUCTSTATUS); DictManageBLL dictIntypeBll = new DictManageBLL(DictKind.INTTYPE); product.STATUSNAME = dictProductStatusBll.GetDictValue(product.STATUS); product.OUTFLAGNAME = dictOutFlagBll.GetDictValue(product.OUTFLAG); product.USINGSTATENAME = dictUsingStateBll.GetDictValue(product.USINGSTATE); product.MATERIAL_ATTRIBUTE = dictMaterialAttributeBll.GetDictValue(material.MATERIAL_ATTRIBUTE); DAL.Operation.ProductOutDAL outdal = new ProductOutDAL(); var outrecord=outdal.GetList(product.PRODUCTCODE); DAL.ProductIn.ProductInDAL indal = new DAL.ProductIn.ProductInDAL(); var inrecord = indal.GetInRecords(string.IsNullOrEmpty(product.MAINCODE) ? product.PRODUCTCODE : product.MAINCODE); foreach (var ir in inrecord) { ir.INTTYPE_NAME = dictIntypeBll.GetDictValue(ir.INTTYPE); } var shipinfo = new DAL.Operation.ProductDAL().GetShipmentInfo(string.IsNullOrEmpty(product.MAINCODE) ? product.PRODUCTCODE : product.MAINCODE); var codereplaterecord = new MainCodeChangeDAL().GetChangeRecordFromNewCode(string.IsNullOrEmpty(product.MAINCODE) ? product.PRODUCTCODE : product.MAINCODE); result.IsSuccess = true; result.Result = new ProductFullInfo { ProductBasicInfo = product, ProductOutRecord = outrecord, ProductInRecord = inrecord, PartList = partlist, ShipmentInfo=shipinfo, CodeReplaceRecord=codereplaterecord }; return result; } catch (Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件信息" }); throw ex; } } public DataResult GetProductInfoByAnyBarcode(string productcode) { try { var result = new DataResult(); var product = new ProductDAL().GetProductByAssembleCode(productcode); if (product == null) { DAL.Operation.MainCodeChangeDAL dal = new MainCodeChangeDAL(); var codechangerecord = dal.GetChangeRecord(productcode); if (codechangerecord != null && codechangerecord.Count > 0) { string newproductcode = codechangerecord.OrderByDescending(p => p.CREATEDATE).FirstOrDefault().NEWMAINCODE; product = new ProductDAL().GetProductByAssembleCode(newproductcode); } } if (product == null) { result.IsSuccess = false; result.Msg = "条码无效,未找到与此条码相关产品信息!"; return result; } if (product.USINGSTATE == "2" && product.CAPACITY <= 1) { var product1 = new ProductDAL().GetProductByPartID(product.PID); if (product1 != null) { product = product1; } } var material = new MD.DAL.MaterialDAL().GetMaterial(product.MATERIAL_CODE); if (material != null) { product.MATERIAL_NAME = material.MATERIAL_NAME; product.MATERIAL_TYPE_NAME = material.MATERIAL_TYPE_NAME; product.MATERIAL_ATTRIBUTE = material.MATERIAL_ATTRIBUTE; } DictManageBLL dictOutFlagBll = new DictManageBLL(DictKind.OUTFLAG); DictManageBLL dictUsingStateBll = new DictManageBLL(DictKind.USINGSTATE); DictManageBLL dictMaterialAttributeBll = new DictManageBLL("MATERIALATTRIBUTE"); DictManageBLL dictProductStatusBll = new DictManageBLL(DictKind.PRODUCTSTATUS); //DictManageBLL dictIntypeBll = new DictManageBLL(DictKind.INTTYPE); product.STATUSNAME = dictProductStatusBll.GetDictValue(product.STATUS); product.OUTFLAGNAME = dictOutFlagBll.GetDictValue(product.OUTFLAG); product.USINGSTATENAME = dictUsingStateBll.GetDictValue(product.USINGSTATE); product.MATERIAL_ATTRIBUTE = dictMaterialAttributeBll.GetDictValue(material.MATERIAL_ATTRIBUTE); result.IsSuccess = true; result.Result = product; return result; } catch(Exception ex) { LogManager.LogHelper.Error(new LogInfo() { ErrorInfo = ex, Tag = ex.StackTrace, Info = "零件条码--获取零件信息" }); throw ex; } } public List GetPartList(string productCode) { var partlist = new DAL.Operation.ProductDAL().GetPartList(productCode); return partlist; } public ShipmentInfo GetShipmentInfo(string productCode) { var shipinfo = new DAL.Operation.ProductDAL().GetShipmentInfo(productCode); return shipinfo; } } }