using System; using System.Collections.Generic; using System.Linq; using System.Text; using QMAPP.FJC.Entity.Operation; namespace QMAPP.FJC.TRACING.DataAnalyzers { /// /// 具有相同条码的零件数据解析类 /// public class SameCodePartAnalyzer : DAInterface.IDataAnalyzer { public void Analyze(DAInterface.DAObject data) { DAL.Produce.ProductDAL proddal = new DAL.Produce.ProductDAL(); //获取当前工序下状态为未使用的产品信息 var product = proddal.GetUnusedProduct(data.DAValue.ToString(), data.WorkLocState.WORKCELL_CODE); if (product != null) //如果信息存在 将产品信息返回给采集点 { data.ObjectPID = product.PID; data.ObjectCacheList.Add(product); data.AnalyzedValue = product.PRODUCTCODE; data.MaterialCode = product.MATERIAL_CODE; DAL.MD.MaterialDAL mdal = new DAL.MD.MaterialDAL(); var material = mdal.Get(data.MaterialCode); data.MaterialName = material == null ? "" : material.MATERIAL_SHORT; } else //若不存在 { //查询此条码先关的最新的信息 product = proddal.GetNewestProduct(data.DAValue.ToString()); if (product == null) { throw new Exception("无法查到与此条码相关的产品数据!"); } else { throw new Exception("此产品未完成前序加工或已经过当前工序!"); } } } } }