Ejemplo n.º 1
0
        private void BtnBOMCheck_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.PartNum.Text))
            {
                MessageBox.Show("请输入物料编码!", "提示"); return;
            }
            DgvMain.DataSource = null;
            List <CheckResult> lists = new List <CheckResult>();

            GetCashData();
            foreach (var item in MPART)
            {
                if (item.TypeCode == "M")
                {
                    var boo = PLM.GetPLMBOO(item.PartNum);
                    if (boo.Count <= 0)
                    {
                        lists.Add(new CheckResult()
                        {
                            ErrorGrade = 1,
                            ErrorType  = "BOO",
                            Message    = "需要有效的工序",
                            PartDesc   = item.PartDescription,
                            PartNum    = item.PartNum
                        });
                    }
                }
                var entity = BasicDatas.ErpPart.Where(o => o.InActive == true && o.PartNum == item.PartNum).FirstOrDefault();
                if (entity != null)
                {
                    lists.Add(new CheckResult()
                    {
                        ErrorGrade = 1,
                        ErrorType  = "PART",
                        Message    = "此编码已禁用",
                        PartDesc   = item.PartDescription,
                        PartNum    = item.PartNum
                    });
                }
            }
            if (lists.Count > 0)
            {
                DgvMain.DataSource = lists;
            }
            else
            {
                MessageBox.Show("BOM没有问题!", "提示");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取新BOO
        /// </summary>
        private void CallGetNewBOO(string[] PartNumArr, List <ExportDto.MBOM_UD> ListMBOM, bool IsOnly)
        {
            DataNewBOO = new DataTable();
            if (PartNumArr.Length > 0 && !IsOnly)
            {
                List <Entity.DTO.DTO_MBOO> lists = new List <Entity.DTO.DTO_MBOO>();
                int GroupId = 1;
                foreach (string PartNum in PartNumArr)
                {
                    var boo = PLM.GetPLMBOO(PartNum, true);
                    lists = lists.Union(boo).ToList();
                    var           BOMS  = ListMBOM.Where(o => o.GroupID == GroupId && o.PullAsAsm == "TRUE").ToList();
                    List <string> Parts = new List <string>();
                    foreach (var bom in BOMS)
                    {
                        if (!Parts.Contains(bom.MtlPartNum))
                        {
                            Parts.Add(bom.MtlPartNum);
                        }
                    }
                    foreach (var part in Parts)
                    {
                        var boo2 = PLM.GetPLMBOO(part, true);
                        if (boo2 != null && boo2.Count > 0)
                        {
                            boo2  = boo2.OrderBy(o => o.OprSeq).ToList();
                            lists = lists.Union(boo2).ToList();
                        }
                    }
                    GroupId++;
                }

                lists = lists.OrderBy(o => o.PartNum).ThenBy(o => o.RevisionNum).ThenBy(o => o.OprSeq).ToList();
                Mapper.Initialize(x => x.CreateMap <Entity.DTO.DTO_MBOO, ExportDto.MBOO>().ForMember(dest => dest.CommentText, opt => opt.MapFrom(src => src.OprComment)));
                List <ExportDto.MBOO> data = Mapper.Map <List <ExportDto.MBOO> >(lists);

                DataNewBOO = Utility.ListToDataTable(data, "_", "#");
            }
            Utility.ExportExcel(DataNewBOO, SaveFolderPath + "\\BOO.xls");
            pecentExe += 10;
            lblStatus  = "新BOO数据已就绪...";
        }
Ejemplo n.º 3
0
        private void buttonGetBOO_Click(object sender, EventArgs e)
        {
            string contents = textBoxPartNums.Text.Trim();

            string[] PartNums = contents.Split(new string[] { "\r\n" }, StringSplitOptions.None);
            var      lists    = new List <Entity.DTO.DTO_MBOO>();

            foreach (var item in PartNums)
            {
                var exMBOO = PLM.GetPLMBOO(item, true);
                lists = lists.Union(exMBOO).ToList();
            }
            foreach (var item in lists)
            {
                item.RevisionNum = textBoxPartRev.Text;
            }
            Mapper.Initialize(x => x.CreateMap <Entity.DTO.DTO_MBOO, ExportDto.MBOO>().ForMember(dest => dest.CommentText, opt => opt.MapFrom(src => src.OprComment)));
            BOO = Mapper.Map <List <ExportDto.MBOO> >(lists);
            dataGridViewBOO.DataSource = BOO;
            tabControl1.SelectedIndex  = 1;
        }
Ejemplo n.º 4
0
        private void CallGetNewBOO()
        {
            string PartNum = this.tboxPartNum.Text;
            //string SqlStr = "select * from V_BOO where PartNum='" + PartNum + "'";
            //if (!string.IsNullOrEmpty(textBoxRev.Text))
            //{
            //    SqlStr += " and REVISIONNUM='"+ textBoxRev.Text + "'";
            //}
            var ds = PLM.GetPLMBOO(PartNum);

            ds = ds.OrderBy(o => o.OprSeq).ToList();
            this.BeginInvoke(new Action(() =>
            {
                dataGridViewMain.DataSource = ds;
                DataCount                       = ds.Count;
                BtnGetNewBOO.Enabled            = true;
                tabControlMain.SelectedIndex    = 0;
                tabControlMain.SelectedTab.Text = "PLM部件BOO";
                CurrentDgv                      = dataGridViewMain;
            }));
        }
        /// <summary>
        /// 工单BOO对比PLMBOO
        /// </summary>
        /// <param name="partNum"></param>
        /// <param name="jobNum"></param>
        /// <returns></returns>
        private List <DTO_MBOO> CompareBOO(string partNum, string jobNum)
        {
            List <Entity.DTO.DTO_MBOO> BOO_DIFF = new List <Entity.DTO.DTO_MBOO>();

            #region PLM所有BOO
            List <Entity.DTO.DTO_MBOO> PLM_BOO = new List <Entity.DTO.DTO_MBOO>();
            if (!string.IsNullOrEmpty(partNum) && PLM_BOM.Count > 0)
            {
                var boo = PLM.GetPLMBOO(partNum);
                PLM_BOO = PLM_BOO.Union(boo).ToList();

                var PBOM = PLM_BOM.Where(o => o.PullAsAsm == "TRUE").ToList();
                foreach (var item in PBOM)
                {
                    var boos = PLM.GetPLMBOO(item.MtlPartNum);
                    PLM_BOO = PLM_BOO.Union(boos).ToList();
                }
                PLM_BOO = PLM_BOO.OrderBy(o => o.PartNum).ThenBy(o => o.OprSeq).ToList();
            }
            #endregion
            #region ERP所有BOO
            List <Entity.DTO.DTO_MBOO> ERP_BOO = new List <Entity.DTO.DTO_MBOO>();
            if (!string.IsNullOrEmpty(jobNum) && ERP_JOB_BOM.Count > 0)
            {
                var operList = ERP.GetJobOper(jobNum);
                var asmbList = ERP.GetJobAsmbl(jobNum);
                var boolists = from asmbl in asmbList
                               join joboper in operList on new { asmbl.Company, asmbl.AssemblySeq, asmbl.JobNum } equals new { joboper.Company, joboper.AssemblySeq, joboper.JobNum }
                orderby asmbl.AssemblySeq ascending
                    select new { asmbl, joboper };
                foreach (var boo in boolists)
                {
                    Entity.DTO.DTO_MBOO obj = new Entity.DTO.DTO_MBOO();
                    obj.Company           = boo.asmbl.Company;
                    obj.DaysOut           = boo.joboper.DaysOut.ToString();
                    obj.ECOGroupID        = "manager";
                    obj.LaborEntryMethod  = boo.joboper.LaborEntryMethod;
                    obj.OpCode            = boo.joboper.OpCode;
                    obj.OprComment        = boo.joboper.CommentText;
                    obj.OprSeq            = boo.joboper.OprSeq;
                    obj.PartDescription   = boo.asmbl.Description;
                    obj.PartNum           = boo.asmbl.PartNum;
                    obj.Plant             = "MfgSys";
                    obj.ProdStandard      = boo.joboper.ProdStandard;
                    obj.RevisionNum       = boo.joboper.RevisionNum;
                    obj.StdFormat         = boo.joboper.StdFormat;
                    obj.SubContract       = boo.joboper.SubContract.ToString().ToUpper();
                    obj.VendorNumVendorID = boo.joboper.VendorNum.ToString();
                    ERP_BOO.Add(obj);
                }
                ERP_BOO = ERP_BOO.OrderBy(o => o.PartNum).ThenBy(o => o.OprSeq).ToList();
            }
            #endregion
            #region 开始对比
            if (PLM_BOO != null && ERP_BOO != null)
            {
                foreach (var item in PLM_BOO)
                {
                    if (ERP_BOO.Where(o => o.PartNum == item.PartNum).Count() <= 0)
                    {
                        if (BOO_DIFF.Where(o => o.PartNum == item.PartNum).Count() <= 0)
                        {
                            item.VendorNumVendorID = "无此物料";
                            BOO_DIFF.Add(item);
                            continue;
                        }
                    }
                    else
                    {
                        var ERPBOO = ERP_BOO.Where(o => o.PartNum == item.PartNum && o.OpCode == item.OpCode);
                        if (ERPBOO.Count() <= 0)
                        {
                            if (BOO_DIFF.Where(o => o.PartNum == item.PartNum && o.OpCode == item.OpCode).Count() <= 0)
                            {
                                item.VendorNumVendorID = "工序不存在";
                                BOO_DIFF.Add(item);
                                continue;
                            }
                        }
                    }
                }
            }
            #endregion
            return(BOO_DIFF);
        }