Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }