/// <summary> /// 获取BOM下所有物料档案 /// </summary> /// <param name="PartNum"></param> /// <returns></returns> public List <DTO_MPART> GetPLMBOMPart(string PartNum, out List <DTO_MBOM> MBom) { List <string> PartNums = new List <string>(); PartNums.Add(PartNum); List <DTO_MBOM> PLM_MBOM = new List <DTO_MBOM>(); GetPLMBOM(PartNum, PLM_MBOM); MBom = PLM_MBOM; foreach (var item in PLM_MBOM) { if (!string.IsNullOrEmpty(item.MtlPartNum)) { if (!PartNums.Contains(item.MtlPartNum.Trim())) { PartNums.Add(item.MtlPartNum.Trim()); } } } List <DTO_MPART> lists = new List <DTO_MPART>(); List <MPART> ListMPart = new List <MPART>(); ListMPart = BasicDatas.PLM_MPART.Where(o => o.DEL == false && o.STATE == "A" && PartNums.Contains(o.NO)).Distinct().ToList(); List <MATERIAL> ListMtl = new List <MATERIAL>(); ListMtl = BasicDatas.PLM_MATERIAL.Where(o => o.DEL == false && o.STATE == "A" && PartNums.Contains(o.NO)).Distinct().ToList(); foreach (var item in ListMPart) { DTO_MPART obj = new DTO_MPART(); obj.Company = "001"; obj.CostMethod = "A"; obj.IUM = CvtUM(item.UNIT); obj.PartDescription = item.NAME + " " + item.ASUSER01 + " " + item.SPECS + " " + item.MTLMARK + " " + item.SMEMO + " " + item.ASUSER02 + " " + item.STANDARDNO; obj.PartNum = string.IsNullOrEmpty(item.NO) ? "" : item.NO.Trim(); obj.PartPlant_Plant = "MfgSys"; obj.PartPlant_PrimWhse = ChkWGJ(item.SMEMO, "WGJ", "BCP"); obj.PartRev_RevisionNum = ChkWGJ(item.SMEMO, "", "A"); obj.PartRev_RevShortDesc = ChkWGJ(item.SMEMO, "", "A"); obj.PUM = obj.IUM; obj.SalesUM = obj.IUM; obj.TypeCode = ChkWGJ(item.SMEMO, "P", "M"); obj.UOMClassID = CvtUMClassID(obj.IUM); obj.ClassId = CvtClssId(obj.TypeCode, obj.PartNum); obj.PartRev_Approved = obj.TypeCode == "M" ? "TRUE" : ""; obj.PartRev_EffectiveDate = obj.TypeCode == "M" ? DateTime.Now.ToString() : ""; lists.Add(obj); } foreach (var item in ListMtl) { DTO_MPART obj = new DTO_MPART(); obj.Company = "001"; obj.CostMethod = "A"; obj.IUM = CvtUM(item.MTLUNITNAME); obj.PartDescription = item.NAME + " " + item.MTLSPECS + " " + item.MTLCATANAME + " " + item.MTLMARK + " " + item.MTLSTANDNO + " " + item.MTLDENSITY + " " + item.SMEMO; obj.PartNum = item.NO; obj.PartPlant_Plant = "MfgSys"; obj.PartPlant_PrimWhse = "WGJ"; obj.PartRev_RevisionNum = ""; obj.PartRev_RevShortDesc = ""; obj.PUM = obj.IUM; obj.SalesUM = obj.IUM; obj.TypeCode = "P"; obj.UOMClassID = CvtUMClassID(obj.IUM); obj.ClassId = CvtClssId("P", obj.PartNum); lists.Add(obj); } return(lists); }
public List <DTO_MPART> ConvertMPART(List <MPART> ListMPart, List <MATERIAL> ListMaterial, List <PRODUCT> ListProduct, List <MTL> ListMtl, List <MACH> ListMACH = null) { List <DTO_MPART> lists = new List <DTO_MPART>(); if (ListMPart != null && ListMPart.Count > 0) { foreach (var item in ListMPart) { DTO_MPART obj = new DTO_MPART(); obj.Company = "001"; obj.CostMethod = "A"; obj.IUM = CvtUM(item.UNIT); obj.PartDescription = item.NAME + " " + item.ENAME + " " + item.ASUSER01 + " " + item.SPECS + " " + item.MTLMARK + " " + item.SMEMO + " " + item.ASUSER02 + " " + item.STANDARDNO; obj.PartNum = item.NO; obj.PartPlant_Plant = "MfgSys"; obj.PartPlant_PrimWhse = ChkWGJ(item.SMEMO, "WGJ", "BCP"); obj.PartRev_RevisionNum = ChkWGJ(item.SMEMO, "", "A"); obj.PartRev_RevShortDesc = ChkWGJ(item.SMEMO, "", "A"); obj.PUM = obj.IUM; obj.SalesUM = obj.IUM; obj.TypeCode = ChkWGJ(item.SMEMO, "P", "M"); obj.UOMClassID = CvtUMClassID(obj.IUM); obj.ClassId = CvtClssId(obj.TypeCode, obj.PartNum); obj.PartRev_Approved = obj.TypeCode == "M" ? "TRUE" : ""; obj.PartRev_EffectiveDate = (item.CTIME != null ? item.CTIME.Value : DateTime.Now).ToShortDateString(); if (lists.Where(o => o.PartNum == item.NO).Count() <= 0) { lists.Add(obj); } } } if (ListMaterial != null && ListMaterial.Count > 0) { foreach (var item in ListMaterial) { DTO_MPART obj = new DTO_MPART(); obj.Company = "001"; obj.CostMethod = "A"; obj.IUM = CvtUM(item.MTLUNITNAME); obj.PartDescription = item.NAME + " " + item.ENAME + " " + item.MTLSPECS + " " + item.MTLCATANAME + " " + item.MTLMARK + " " + item.MTLSTANDNO + " " + item.MTLDENSITY + " " + item.SMEMO; obj.PartNum = item.NO; obj.PartPlant_Plant = "MfgSys"; obj.PartPlant_PrimWhse = "WGJ"; obj.PartRev_RevisionNum = ""; obj.PartRev_RevShortDesc = ""; obj.PUM = obj.IUM; obj.SalesUM = obj.IUM; obj.TypeCode = "P"; obj.UOMClassID = CvtUMClassID(obj.IUM); obj.ClassId = CvtClssId("P", obj.PartNum); obj.PartRev_Approved = obj.TypeCode == "M" ? "TRUE" : ""; obj.PartRev_EffectiveDate = (item.CTIME != null ? item.CTIME.Value : DateTime.Now).ToShortDateString(); if (lists.Where(o => o.PartNum == item.NO).Count() <= 0) { lists.Add(obj); } } } if (ListProduct != null && ListProduct.Count > 0) { foreach (var item in ListProduct) { DTO_MPART obj = new DTO_MPART(); obj.Company = "001"; obj.CostMethod = "A"; obj.IUM = "PCS"; obj.PartDescription = item.NAME + " " + item.ENAME + " " + item.SERIES + " " + item.DESCRIBE + " " + item.SMEMO; obj.PartNum = item.NO; obj.PartPlant_Plant = "MfgSys"; obj.PartPlant_PrimWhse = "WGJ"; obj.PartRev_RevisionNum = "A"; obj.PartRev_RevShortDesc = "A"; obj.PUM = "PCS"; obj.SalesUM = "PCS"; obj.TypeCode = "M"; obj.UOMClassID = CvtUMClassID(obj.IUM); obj.ClassId = "PC06"; obj.PartRev_Approved = "TRUE"; obj.PartRev_EffectiveDate = (item.CTIME != null ? item.CTIME.Value : DateTime.Now).ToShortDateString(); if (lists.Where(o => o.PartNum == item.NO).Count() <= 0) { lists.Add(obj); } } } if (ListMtl != null && ListMtl.Count > 0) { foreach (var item in ListMtl) { DTO_MPART obj = new DTO_MPART(); obj.Company = "001"; obj.CostMethod = "A"; obj.IUM = CvtUM(item.UNITNAME); obj.PartDescription = item.NAME + " " + item.ENAME + " " + item.XH + " " + item.GG + " " + item.CL + " " + item.ZZS + " " + item.PTYPE + " " + item.FSIZE + " " + item.SPECS + " " + item.SMEMO; obj.PartNum = item.NO; obj.PartPlant_Plant = "MfgSys"; obj.PartPlant_PrimWhse = "WGJ"; obj.PartRev_RevisionNum = ""; obj.PartRev_RevShortDesc = ""; obj.PUM = obj.IUM; obj.SalesUM = obj.IUM; obj.TypeCode = "P"; obj.UOMClassID = CvtUMClassID(obj.IUM); obj.ClassId = "PC01"; obj.PartRev_Approved = ""; obj.PartRev_EffectiveDate = (item.CTIME != null ? item.CTIME.Value : DateTime.Now).ToShortDateString(); if (lists.Where(o => o.PartNum == item.NO).Count() <= 0) { lists.Add(obj); } } } if (ListMACH != null && ListMACH.Count > 0) { foreach (var item in ListMACH) { DTO_MPART obj = new DTO_MPART(); obj.Company = "001"; obj.CostMethod = "A"; obj.IUM = "PCS"; obj.PartDescription = item.NAME + " " + item.ENAME + " " + item.MODEL + " " + item.SPECS + " " + item.SBZT + " " + item.FACTORY + " " + item.SMEMO + " " + item.PTYPE + " " + item.ENAME; obj.PartNum = item.NO; obj.PartPlant_Plant = "MfgSys"; obj.PartPlant_PrimWhse = "WGJ"; obj.PartRev_RevisionNum = ""; obj.PartRev_RevShortDesc = ""; obj.PUM = "PCS"; obj.SalesUM = "PCS"; obj.TypeCode = "P"; obj.UOMClassID = CvtUMClassID(obj.IUM); obj.ClassId = "PC11"; obj.PartRev_Approved = ""; obj.PartRev_EffectiveDate = (item.CTIME != null ? item.CTIME.Value : DateTime.Now).ToShortDateString(); if (lists.Where(o => o.PartNum == item.NO).Count() <= 0) { lists.Add(obj); } } } return(lists); }