예제 #1
0
파일: Express.ashx.cs 프로젝트: uvbs/mmp
        /// <summary>
        /// 查询快递状态
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private string Get(HttpContext context)
        {
            string expressCompanyCode = context.Request["express_company_code"];
            string expressNumber      = context.Request["express_number"];

            if (string.IsNullOrEmpty(expressCompanyCode) || string.IsNullOrEmpty(expressNumber))
            {
                resp.errcode = 1;
                resp.errmsg  = " express_company_code,express_number参数不能为空";
                return(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            }
            var map = bll.expressCompanyMap.SingleOrDefault(p => p.Key == expressCompanyCode);

            if (!string.IsNullOrEmpty(map.Key))
            {
                expressCompanyCode = map.Value;
            }
            var result = bll.GetExpressResult(expressNumber, expressCompanyCode);

            if (result != null)
            {
                return("{\"errcode\":0,\"errmsg\":\"ok\",\"express_info\":" + result.ExpressContent + "}");
            }
            else
            {
                var queryResult = bll.Query(expressCompanyCode, expressNumber);
                if (queryResult != "[]")
                {
                    ExpressResult model = new ExpressResult();
                    model.ExpressCompanyCode = expressCompanyCode;
                    model.ExpressNumber      = expressNumber;
                    model.WebsiteOwner       = bll.WebsiteOwner;
                    model.ExpressContent     = queryResult;
                    model.InsertDate         = DateTime.Now;
                    model.LastUpdateDate     = DateTime.Now;
                    bll.Add(model);
                    return("{\"errcode\":0,\"errmsg\":\"ok\",\"express_info\":" + queryResult + "}");
                }
                else
                {
                    return("{\"errcode\":1,\"errmsg\":\"没有物流信息\",\"express_info\":" + queryResult + "}");
                }
            }
        }
        public ExpressResult ExpressCalc(Express express)
        {
            var result = new ExpressResult
            {
                AquaLiters        = express.AquaLiters,
                ContainerCapacity = express.ContainerCapacity
            };

            //nitrogen
            result.MaxKNO3g = SolubilityInWater(
                result.ContainerCapacity.Value,
                KNO3SolubilityGramsPer100Ml);
            result.MaxConcentrationNinKNO3MgPerLiter = ConcentrationIn1Ml(
                result.AquaLiters.Value,
                result.MaxKNO3g.Value,
                result.ContainerCapacity.Value,
                Percent(KNO3ContentN));
            result.MaxConcentrationKinKNO3MgPerLiter = ConcentrationIn1Ml(
                result.AquaLiters.Value,
                result.MaxKNO3g.Value,
                result.ContainerCapacity.Value,
                Percent(KNO3ContentK));
            if (result.MaxConcentrationNinKNO3MgPerLiter <= 0.5)
            {
                result.OptimalConcentrationNinKNO3MgPerLiter =
                    result.MaxConcentrationNinKNO3MgPerLiter.Value;
                result.OptimalConcentrationKinKNO3MgPerLiter =
                    result.MaxConcentrationKinKNO3MgPerLiter.Value;
                result.OptimalKNO3g = result.MaxKNO3g.Value;
            }
            else if (result.MaxConcentrationNinKNO3MgPerLiter > 0.5 &&
                     result.MaxConcentrationNinKNO3MgPerLiter < 1)
            {
                result.OptimalKNO3g = (result.MaxKNO3g.Value * 0.5) /
                                      result.MaxConcentrationNinKNO3MgPerLiter.Value;
                result.OptimalConcentrationNinKNO3MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalKNO3g.Value,
                    result.ContainerCapacity.Value,
                    Percent(KNO3ContentN));
                result.OptimalConcentrationKinKNO3MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalKNO3g.Value,
                    result.ContainerCapacity.Value,
                    Percent(KNO3ContentK));
            }
            else
            {
                result.OptimalKNO3g = (result.MaxKNO3g.Value * 1) /
                                      result.MaxConcentrationNinKNO3MgPerLiter.Value;
                result.OptimalConcentrationNinKNO3MgPerLiter = Math.Round(ConcentrationIn1Ml(
                                                                              result.AquaLiters.Value,
                                                                              result.OptimalKNO3g.Value,
                                                                              result.ContainerCapacity.Value,
                                                                              Percent(KNO3ContentN)), 2);
                result.OptimalConcentrationKinKNO3MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalKNO3g.Value,
                    result.ContainerCapacity.Value,
                    Percent(KNO3ContentK));
            }
            //phosphorus
            result.MaxKH2PO4g = SolubilityInWater(
                result.ContainerCapacity.Value,
                KH2PO4SolubilityGramsPer100Ml);
            result.MaxConcentrationPinKH2PO4MgPerLiter = ConcentrationIn1Ml(
                result.AquaLiters.Value,
                result.MaxKH2PO4g.Value,
                result.ContainerCapacity.Value,
                Percent(KH2PO4ContentP));
            result.MaxConcentrationKinKH2PO4MgPerLiter = ConcentrationIn1Ml(
                result.AquaLiters.Value,
                result.MaxKH2PO4g.Value,
                result.ContainerCapacity.Value,
                Percent(KH2PO4ContentK));
            if (result.MaxConcentrationPinKH2PO4MgPerLiter <= 0.5)
            {
                result.OptimalConcentrationPinKH2PO4MgPerLiter =
                    result.MaxConcentrationPinKH2PO4MgPerLiter;
                result.OptimalConcentrationKinKH2PO4MgPerLiter =
                    result.MaxConcentrationKinKH2PO4MgPerLiter;
                result.OptimalKH2PO4g = result.MaxKH2PO4g;
            }
            else if (result.MaxConcentrationPinKH2PO4MgPerLiter > 0.5 &&
                     result.MaxConcentrationPinKH2PO4MgPerLiter < 1)
            {
                result.OptimalKH2PO4g = (result.MaxKH2PO4g.Value * 0.1) /
                                        result.MaxConcentrationPinKH2PO4MgPerLiter.Value;
                result.OptimalConcentrationPinKH2PO4MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalKH2PO4g.Value,
                    result.ContainerCapacity.Value,
                    Percent(KH2PO4ContentP));
                result.OptimalConcentrationKinKH2PO4MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalKH2PO4g.Value,
                    result.ContainerCapacity.Value,
                    Percent(KH2PO4ContentK));
            }
            else
            {
                result.OptimalKH2PO4g = (result.MaxKH2PO4g.Value * .1) /
                                        result.MaxConcentrationPinKH2PO4MgPerLiter.Value;
                result.OptimalConcentrationPinKH2PO4MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalKH2PO4g.Value,
                    result.ContainerCapacity.Value,
                    Percent(KH2PO4ContentP));
                result.OptimalConcentrationKinKH2PO4MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalKH2PO4g.Value,
                    result.ContainerCapacity.Value,
                    Percent(KH2PO4ContentK));
            }
            //potasium
            result.MaxK2SO4g = SolubilityInWater(
                result.ContainerCapacity.Value,
                K2SO4SolubilityGramsPer100Ml);
            result.MaxConcentrationKinK2SO4MgPerLiter = ConcentrationIn1Ml(
                result.AquaLiters.Value,
                result.MaxK2SO4g.Value,
                result.ContainerCapacity.Value,
                Percent(K2SO4ContentK));
            if (result.MaxConcentrationKinK2SO4MgPerLiter <= 0.5)
            {
                result.OptimalConcentrationKinK2SO4MgPerLiter =
                    result.MaxConcentrationKinK2SO4MgPerLiter;
                result.OptimalK2SO4g = result.MaxK2SO4g.Value;
            }
            else if (result.MaxConcentrationKinK2SO4MgPerLiter > 0.5 &&
                     result.MaxConcentrationKinK2SO4MgPerLiter < 1)
            {
                result.OptimalK2SO4g = (result.MaxK2SO4g.Value * 0.5) /
                                       result.MaxConcentrationKinK2SO4MgPerLiter.Value;
                result.OptimalConcentrationKinK2SO4MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalK2SO4g.Value,
                    result.ContainerCapacity.Value,
                    Percent(K2SO4ContentK));
            }
            else
            {
                result.OptimalK2SO4g = (result.MaxK2SO4g.Value * 1) /
                                       result.MaxConcentrationKinK2SO4MgPerLiter.Value;
                result.OptimalConcentrationKinK2SO4MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalK2SO4g.Value,
                    result.ContainerCapacity.Value,
                    Percent(K2SO4ContentK));
            }
            //magnesium
            result.MaxMgSO4g = SolubilityInWater(
                result.ContainerCapacity.Value, MgSO4SolubilityGramsPer100Ml);
            result.MaxConcentrationMginMgSO4MgPerLiter = ConcentrationIn1Ml(
                result.AquaLiters.Value,
                result.MaxMgSO4g.Value,
                result.ContainerCapacity.Value,
                Percent(MgSO47H2OContentMg));
            if (result.MaxConcentrationMginMgSO4MgPerLiter <= 0.5)
            {
                result.OptimalConcentrationMginMgSO4MgPerLiter =
                    result.MaxConcentrationMginMgSO4MgPerLiter;
                result.OptimalMgSO4g = result.MaxMgSO4g;
            }
            else if (result.MaxConcentrationMginMgSO4MgPerLiter > 0.5 &&
                     result.MaxConcentrationMginMgSO4MgPerLiter < 1)
            {
                result.OptimalMgSO4g = (result.MaxMgSO4g.Value * 0.5) /
                                       result.MaxConcentrationMginMgSO4MgPerLiter.Value;
                result.OptimalConcentrationMginMgSO4MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalMgSO4g.Value,
                    result.ContainerCapacity.Value,
                    Percent(MgSO47H2OContentMg));
            }
            else
            {
                result.OptimalMgSO4g = (result.MaxMgSO4g.Value * 1) /
                                       result.MaxConcentrationMginMgSO4MgPerLiter.Value;
                result.OptimalConcentrationMginMgSO4MgPerLiter = ConcentrationIn1Ml(
                    result.AquaLiters.Value,
                    result.OptimalMgSO4g.Value,
                    result.ContainerCapacity.Value,
                    Percent(MgSO47H2OContentMg));
            }
            return(result);
        }