/// <summary> /// 存储收集数据 (二次调用,一次是新建存,一次是编辑) /// </summary> /// <param name="sumModel"></param> /// <returns></returns> public OpResult StoreFqcDataGather(InspectionItemDataSummaryVM sumModel) { var returnOpResult = new OpResult("采集数据模型不能为NULL", false); InspectionFqcMasterModel masterModel = null; InspectionFqcDetailModel detailModel = null; ///先排除总表不能为空 GetMasterAndDetailModelFrom(sumModel, out masterModel, out detailModel); if (detailModel == null || masterModel == null) { return(new OpResult("表单数据为空,保存失败", false)); } /// 先保存副表 再更新主表信息 returnOpResult = DetailDatasGather.storeInspectionDetial(detailModel, sumModel.SiteRootPath); if (!returnOpResult.Result) { return(returnOpResult); } ///如果只是上传文档 不用更新 Masterial if (sumModel.OpSign != OpMode.UploadFile) { returnOpResult = MasterDatasGather.storeInspectionMasterial(masterModel); } return(returnOpResult); }
/// <summary> /// 得到FQC检验项目所有的信息 /// </summary> /// <param name="orderId"></param> /// <param name="orderIdNumber"></param> /// <returns></returns> public List <InspectionItemDataSummaryVM> FindFqcInspectionSummaryDataBy(string orderId, int orderIdNumber) { try { var orderMaterialInfoList = this.GetPuroductSupplierInfo(orderId); if (orderMaterialInfoList == null || orderMaterialInfoList.Count <= 0) { return(new List <InspectionItemDataSummaryVM>()); } var orderMaterialInfo = orderMaterialInfoList[0]; ///得到FQC已经检验详表 var fqcHaveInspectionDatas = DetailDatasGather.GetFqcInspectionDetailDatasBy(orderId, orderIdNumber); if (fqcHaveInspectionDatas == null || fqcHaveInspectionDatas.Count <= 0) { return(new List <InspectionItemDataSummaryVM>()); } ///得到需要检验的项目 var fqcInspectionsItemdatas = GetFqcNeedInspectionItemDatas(orderMaterialInfo.ProductID); if (fqcInspectionsItemdatas == null || fqcInspectionsItemdatas.Count <= 0) { return(new List <InspectionItemDataSummaryVM>()); } return(HandleFindSummaryDataLabelModel(orderMaterialInfo, fqcHaveInspectionDatas, fqcInspectionsItemdatas)); } catch (Exception ex) { return(new List <InspectionItemDataSummaryVM>()); throw new Exception(ex.InnerException.Message); } }
public OpResult StoreInspectionIqcGatherDatas(InspectionItemDataSummaryVM model) { var opReulst = OpResult.SetSuccessResult("数据为空,保存失败", false); if (model == null) { return(opReulst); } ///输入的数据不为空值 if (model.InspectionItemDatas == null || model.InspectionItemDatas == string.Empty) { return(opReulst); } opReulst = DetailDatasGather.StoreInspectionIqcDetailModelForm(model, model.SiteRootPath); if (opReulst.Result) { opReulst = MasterDatasGather.StoreInspectionIqcMasterModelForm(model); } return(opReulst); }
/// <summary> /// 处理数据总表 /// </summary> /// <param name="orderMaterialInfo"></param> /// <param name="iqcNeedInspectionsItemdatas"></param> /// <returns></returns> private List <InspectionItemDataSummaryVM> HandleInspectionSummayDatas(MaterialModel orderMaterialInfo, List <InspectionIqcItemConfigModel> iqcNeedInspectionsItemdatas) { List <InspectionItemDataSummaryVM> returnList = new List <InspectionItemDataSummaryVM>(); InspectionItemDataSummaryVM model = null; iqcNeedInspectionsItemdatas.ForEach(m => { var inspectionMode = GetJudgeInspectionMode("IQC", m.MaterialId, m.InspectionItem); ///得到检验方法数据 var inspectionModeConfigModelData = this.GetInspectionModeConfigDataBy(m.InspectionLevel, m.InspectionAQL, orderMaterialInfo.ProduceNumber, inspectionMode); ///得到已经检验的数据 var iqcHaveInspectionData = DetailDatasGather.GetIqcInspectionDetailModelBy(orderMaterialInfo.OrderID, orderMaterialInfo.ProductID, m.InspectionItem); ///初始化 综合模块 InitializeSummaryVM(out model, orderMaterialInfo, iqcNeedInspectionsItemdatas, m, inspectionMode); ///加载已经录入的数据 SetHaveInspectionItemDataVaule(model, iqcHaveInspectionData); ///加载项目的抽样方案 SetItemModeConfig(model, inspectionModeConfigModelData); returnList.Add(model); //产生测试项目先存入到数据库中(如果存在 直接反回) DetailDatasGather.InitializestoreInspectionDetial(model); }); return(returnList); }
/// <summary> /// 判断是否按提正常还 /// </summary> /// <param name="materialId"></param> /// <returns></returns> private string GetJudgeInspectionMode(string InspectionClass, string materialId, string InspecitonItem) { try { ///1,通过料号 和 抽检验项目 得到当前的最后一次抽检的状态 ///3,比较 对比 ///4,返回一个 转换的状态 string retrunstirng = "正常"; var DetailModeDatas = DetailDatasGather.GetIqcMasterModeDatasBy(materialId); if (DetailModeDatas == null) { return(retrunstirng); } var DetailModeData = DetailModeDatas.OrderByDescending(e => e.MaterialInDate).Take(100).ToList(); if (DetailModeData == null || DetailModeData.Count <= 0) { return(retrunstirng); } var currentStatus = DetailModeData.Last().InspectionMode; ///2,通当前状态 得到抽样规则 抽样批量 拒受数 var modeSwithParameterList = InspectionManagerCrudFactory.InspectionModeSwithConfigCrud.GetInspectionModeSwithConfiglistBy(InspectionClass, currentStatus); if (modeSwithParameterList == null || modeSwithParameterList.Count <= 0) { return(retrunstirng); } int sampleNumberVauleMin = modeSwithParameterList.FindAll(e => e.SwitchProperty == "SampleNumber").Select(e => e.SwitchVaule).Min(); int AcceptNumberVauleMax = modeSwithParameterList.FindAll(e => e.SwitchProperty == "AcceptNumber").Select(e => e.SwitchVaule).Max(); int sampleNumberVauleMax = modeSwithParameterList.FindAll(e => e.SwitchProperty == "SampleNumber").Select(e => e.SwitchVaule).Max(); int AcceptNumberVauleMin = modeSwithParameterList.FindAll(e => e.SwitchProperty == "AcceptNumber").Select(e => e.SwitchVaule).Min(); var getNumber = DetailModeData.Take(sampleNumberVauleMax).Count(e => e.InspectionResult == "FAIL"); switch (currentStatus) { case "加严": retrunstirng = (getNumber >= AcceptNumberVauleMin) ? "正常" : currentStatus; break; case "放宽": retrunstirng = (getNumber <= AcceptNumberVauleMin) ? "正常" : currentStatus; break; case "正常": if (getNumber <= AcceptNumberVauleMin) { retrunstirng = "放宽"; } else { ///加严的数量 int getTheNumber = DetailModeData.Take(sampleNumberVauleMin).Count(e => e.InspectionResult == "FAIL"); retrunstirng = (getTheNumber >= AcceptNumberVauleMax) ? "加严" : currentStatus; } break; default: break; } return(retrunstirng); } catch (Exception es) { throw new Exception(es.InnerException.Message); } }
/// 查找IQC检验项目所有的信息 /// </summary> /// <param name="orderId"></param> /// <param name="materialId"></param> /// <returns></returns> public List <InspectionItemDataSummaryVM> FindIqcInspectionItemDataSummaryLabelListBy(string orderId, string materialId) { List <InspectionItemDataSummaryVM> returnList = new List <InspectionItemDataSummaryVM>(); var iqcHaveInspectionData = DetailDatasGather.GetIqcInspectionDetailDatasBy(orderId, materialId); if (iqcHaveInspectionData == null || iqcHaveInspectionData.Count <= 0) { return(returnList); } var iqcItemConfigdatas = InspectionManagerCrudFactory.IqcItemConfigCrud.FindIqcInspectionItemConfigDatasBy(materialId); if (iqcItemConfigdatas == null || iqcItemConfigdatas.Count <= 0) { return(returnList); } iqcHaveInspectionData.ForEach(m => { ///初始化 综合模块 var model = new InspectionItemDataSummaryVM() { OrderId = orderId, MaterialId = materialId, InspectionItem = m.InspecitonItem, EquipmentId = m.EquipmentId, MaterialInDate = m.MaterialInDate, MaterialInCount = m.MaterialCount, SizeLSL = 0, SizeUSL = 0, InspectionItemStatus = m.InspectionItemStatus, SizeMemo = string.Empty, InspectionAQL = string.Empty, InspectionLevel = string.Empty, InspectionCount = Convert.ToInt16(m.InspectionCount), AcceptCount = 0, RefuseCount = 0, InspectionItemDatas = m.InspectionItemDatas, InsptecitonItemIsFinished = true, NeedFinishDataNumber = Convert.ToInt16(m.InspectionCount), HaveFinishDataNumber = this.GetHaveFinishDataNumber(m.InspectionItemDatas), InspectionItemResult = m.InspectionItemResult, FileName = m.FileName, DocumentPath = m.FileName, Memo = m.Memo, InspectionMethod = string.Empty, InspectionMode = m.InspectionMode, Id_Key = m.Id_Key, }; var iqcItemConfigdata = iqcItemConfigdatas.FirstOrDefault(e => e.InspectionItem == m.InspecitonItem); if (iqcItemConfigdata != null) { model.SizeLSL = iqcItemConfigdata.SizeLSL; model.SizeUSL = iqcItemConfigdata.SizeUSL; model.SizeMemo = iqcItemConfigdata.SizeMemo; model.InspectionAQL = iqcItemConfigdata.InspectionAQL; model.InspectionMethod = iqcItemConfigdata.InspectionMethod; model.InspectionLevel = iqcItemConfigdata.InspectionLevel; model.EquipmentId = iqcItemConfigdata.EquipmentId; //数据采集类型 model.InspectionDataGatherType = iqcItemConfigdata.InspectionDataGatherType; } //检验方式 var inspectionMode = GetJudgeInspectionMode("IQC", m.MaterialId, m.InspecitonItem); if (model.InspectionMode == string.Empty) { model.InspectionMode = inspectionMode; } var inspectionModeConfigModelData = this.GetInspectionModeConfigDataBy(model.InspectionLevel, model.InspectionAQL, m.MaterialCount, inspectionMode); if (inspectionModeConfigModelData != null) { model.AcceptCount = inspectionModeConfigModelData.AcceptCount; model.RefuseCount = inspectionModeConfigModelData.RefuseCount; } returnList.Add(model); }); return(returnList); }