Exemplo n.º 1
0
 public void DelAssayBasicData(AssayBasicData delAssayBasicData)
 {
     try
     {
         _assayBDDal.Delete(delAssayBasicData);
     }
     catch (RepositoryException ex)
     {
         throw ex;
     }
 }
Exemplo n.º 2
0
        public AssayBasicData UpdAssayBasicData(AssayBasicData newAssayBasicData)
        {
            AssayBasicData reAssayBD = null;

            try
            {
                _assayBDDal.Update(newAssayBasicData);
                reAssayBD = newAssayBasicData;
            }
            catch (RepositoryException ex)
            {
                throw ex;
            }
            return(reAssayBD);
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="arList">检测值列表</param>
        /// <param name="org">组织机构</param>
        /// <param name="goodsKindID">粮食品种</param>
        /// <param name="cont">合同</param>
        /// <returns>返回等级,-2表示异常,-1表示无等级基础数据,0表示未获取到组织机构对应的等级判定</returns>
        public int JudgeGrainGrade(IList <AssayResult> arList, OrganizationDepartment org, int goodsKindID, out decimal unitPrice)
        {
            int graidGrade = 0;

            unitPrice = 0;
            IList <AssayBasicData> GrainGradeList = GetGrainGrade().ToList();

            if (GrainGradeList == null || GrainGradeList.Count == 0)
            {
                return(-1);
            }
            try
            {
                List <TargetPrice> TargetPriceList;
                if (org.TargetPrices.Count == 0)
                {
                    //未关联组织机构,直接找关联粮食品种的TargetPrice
                    TargetPriceList = _targetPriceService.GetTargetPricesByGoodsKindID(goodsKindID).OrderByDescending(tp => decimal.Parse(tp.min_value)).ToList();
                }
                else
                {
                    TargetPriceList = org.TargetPrices.Where(
                        tp => tp.grain_kind == goodsKindID).OrderByDescending(
                        otp => decimal.Parse(otp.min_value)).ToList();
                }
                if (TargetPriceList == null || TargetPriceList.Count == 0)
                {
                    return(0);                               //如果没有对应的等级判定,就立即返回0
                }
                //选取默认第一个TargetPrice的grain_quality_index为检索项
                AssayResult newar = arList.SingleOrDefault(ar => ar.grain_quality_index == TargetPriceList[0].grain_quality_index.Value);
                if (newar == null)
                {
                    return(0);
                }
                //判断
                string grain_grade = "";
                #region //////////////////////////////////////////判定等级////////////////////////////////////
                for (int i = 0; i < TargetPriceList.Count; i++)
                {
                    int Result = -1;
                    if (!TargetPriceList[i].min_tag.HasValue)
                    {
                        continue;
                    }
                    switch (TargetPriceList[i].min_tag.Value)
                    {
                    case 0:
                        if (decimal.Parse(newar.assay_result_value) > decimal.Parse(TargetPriceList[i].min_value))
                        {
                            Result    = 0;
                            unitPrice = TargetPriceList[i].price.Value;
                        }
                        break;

                    case 1:
                        if (decimal.Parse(newar.assay_result_value) >= decimal.Parse(TargetPriceList[i].min_value))
                        {
                            Result    = 0;
                            unitPrice = TargetPriceList[i].price.Value;
                        }
                        break;

                    case 2:
                        if (decimal.Parse(newar.assay_result_value) < decimal.Parse(TargetPriceList[i].min_value))
                        {
                            Result    = 0;
                            unitPrice = TargetPriceList[i].price.Value;
                        }
                        break;

                    case 3:
                        if (decimal.Parse(newar.assay_result_value) <= decimal.Parse(TargetPriceList[i].min_value))
                        {
                            Result    = 0;
                            unitPrice = TargetPriceList[i].price.Value;
                        }
                        break;

                    default: Result = -1; break;
                    }
                    if (Result != -1)                                                               //满足条件“一等”
                    {
                        switch (i)
                        {
                        case 0:
                            grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.一等);
                            break;

                        case 1:
                            grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.二等);;
                            break;

                        case 2:
                            grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.等);
                            break;

                        case 3:
                            grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.四等);
                            break;

                        case 4:
                            grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.五等);
                            break;

                        case 5:
                            grain_grade = Enum.GetName(typeof(GrainGrade), GrainGrade.等外);
                            break;

                        default: grain_grade = string.Empty; break;
                        }
                        break;      //  赋值以后可退出循环
                    }
                }
                AssayBasicData abd = GrainGradeList.Single(gg => gg.name == grain_grade);
                if (abd != null)
                {
                    graidGrade = abd.basic_data_id;
                }
                #endregion
                return(graidGrade);
            }
            catch
            {
                //返回-2是异常
                return(-2);
            }
        }