Exemplo n.º 1
0
        //
        public HttpResponseMessage ItemSave(eqia_rsavedata itemvalue)
        {
            string result = string.Empty;

            if (itemvalue.fldUserID == null || itemvalue.fldUserName == null)
            {
                itemvalue.fldUserID   = rule.ConductUserinfo(itemvalue.fldUserID);
                itemvalue.fldUserName = "";
            }
            try
            {
                if (itemvalue.BeginDate != null && itemvalue.EndDate != null)
                {
                    if (itemvalue.fldSTCode != null)
                    {
                        if (itemvalue.fldRCode != null)
                        {
                            if (itemvalue.fldRSCode != null)
                            {
                                if (itemvalue.fldItemData.Count > 0)
                                {
                                    List <tblEQIW_R_Basedata_Pre> lstData  = new List <tblEQIW_R_Basedata_Pre>();
                                    tblEQIW_R_Basedata_Pre        objData  = new tblEQIW_R_Basedata_Pre();
                                    List <tblEQIW_D_Basedata_Pre> lstDataD = new List <tblEQIW_D_Basedata_Pre>();
                                    tblEQI_InputDate inputdate_new         = new tblEQI_InputDate();
                                    objData.fldSTCode         = itemvalue.fldSTCode;
                                    objData.fldRCode          = itemvalue.fldRCode;
                                    objData.fldRSCode         = itemvalue.fldRSCode;
                                    objData.fldRSC            = itemvalue.fldRSC;
                                    objData.fldSAMPH          = "1";
                                    objData.fldSAMPR          = "1";
                                    objData.fldYear           = inputdate_new.fldSYear = decimal.Parse(Convert.ToDateTime(itemvalue.BeginDate).Year.ToString());
                                    objData.fldMonth          = inputdate_new.fldSMonth = decimal.Parse(Convert.ToDateTime(itemvalue.BeginDate).Month.ToString());
                                    objData.fldDay            = inputdate_new.fldSDay = decimal.Parse(Convert.ToDateTime(itemvalue.BeginDate).Day.ToString());
                                    objData.fldHour           = inputdate_new.fldSHour = decimal.Parse(Convert.ToDateTime(itemvalue.BeginDate).Hour.ToString());
                                    objData.fldMinute         = inputdate_new.fldSMinute = decimal.Parse(Convert.ToDateTime(itemvalue.BeginDate).Minute.ToString());
                                    objData.fldSource         = 0;
                                    objData.fldUserID         = inputdate_new.fldUserID = int.Parse(itemvalue.fldUserID);
                                    objData.fldFlag           = 0;
                                    objData.fldCityID_Operate = inputdate_new.fldCityID = int.Parse(itemvalue.fldCityID_Operate);
                                    objData.fldCityID_Submit  = itemvalue.fldCityID_Submit;
                                    objData.fldDate_Operate   = DateTime.Now;
                                    objData.fldBatch          = itemvalue.BeginDate + Guid.NewGuid().ToString();
                                    inputdate_new.fldObject   = "eqiw_r";
                                    Regex regexvalue  = new Regex(@"^(\d*\.?\d+)+$");
                                    Regex regexvalue2 = new Regex(@"^(\d*\.?\d+)?[lL]$");
                                    for (int i = 0; i < itemvalue.fldItemData.Count; i++)
                                    {
                                        decimal dValue = -1;


                                        DataTable dataTable = rule.GetItem("地表水", itemvalue.fldItemData[i].itemcode);

                                        if (dataTable.Rows.Count > 0)
                                        {
                                            if (itemvalue.fldItemData[i].itemvalue.Trim() != "")
                                            {
                                                //if (!regexvalue.IsMatch(itemvalue.fldItemData[i].itemvalue) && !regexvalue2.IsMatch(itemvalue.fldItemData[i].itemvalue))
                                                //{
                                                //    result = rule.JsonStr("error", "项目[" + dataTable.Rows[0]["fldItemName"].ToString() + "]的监测值只能输入数字或字符L和l!", "");
                                                //    return new HttpResponseMessage { Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json") };
                                                //}
                                                if (!regexvalue2.IsMatch(itemvalue.fldItemData[i].itemvalue))
                                                {
                                                    dValue = Convert.ToDecimal(itemvalue.fldItemData[i].itemvalue);
                                                    decimal dMinValue = Convert.ToDecimal(dataTable.Rows[0]["fldMinValue"].ToString());
                                                    if (dMinValue >= 0 && dValue < dMinValue)
                                                    {
                                                        result = rule.JsonStr("error", "" + dataTable.Rows[0]["fldItemName"] + "的监测值应 >=" + dMinValue, "");
                                                        return(new HttpResponseMessage {
                                                            Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json")
                                                        });
                                                    }
                                                    decimal dMaxValue = Convert.ToDecimal(dataTable.Rows[0]["fldMaxValue"].ToString());
                                                    if (dMaxValue > 0 && dValue > dMaxValue)
                                                    {
                                                        result = rule.JsonStr("error", "" + dataTable.Rows[0]["fldItemName"] + "的监测值应 <=" + dMaxValue, "");
                                                        return(new HttpResponseMessage {
                                                            Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json")
                                                        });
                                                    }
                                                }
                                                if (regexvalue2.IsMatch(itemvalue.fldItemData[i].itemvalue.Trim()))
                                                {
                                                    if (itemvalue.fldItemData[i].itemvalue.Trim().ToLower() == "l")
                                                    {
                                                        decimal temp = Convert.ToDecimal(dataTable.Rows[0]["fldSense"].ToString());

                                                        if (temp <= 0)
                                                        {
                                                            result = rule.JsonStr("error", "项目[" + dataTable.Rows[0]["fldItemName"].ToString() + "]的检出限<=0,不能输入 L 作为监测值", "");
                                                            return(new HttpResponseMessage {
                                                                Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json")
                                                            });
                                                        }
                                                        dValue = -temp;
                                                    }
                                                    else
                                                    {
                                                        dValue = -Convert.ToDecimal(itemvalue.fldItemData[i].itemvalue.Trim().Replace("l", "").Replace("L", ""));
                                                    }
                                                    if (dValue == -1)
                                                    {
                                                        dValue = Convert.ToDecimal(-0.99999999);
                                                    }
                                                }
                                                else
                                                {
                                                    dValue = Convert.ToDecimal(itemvalue.fldItemData[i].itemvalue.ToString().Trim());
                                                }
                                            }

                                            tblEQIW_R_Basedata_Pre objTmp = objData.Clone();
                                            objTmp.fldItemCode       = itemvalue.fldItemData[i].itemcode;
                                            objTmp.fldItemValue      = dValue;
                                            objTmp.fldCityID_Operate = Int32.Parse(itemvalue.fldCityID_Operate);
                                            objTmp.fldCityID_Submit  = itemvalue.fldCityID_Submit;
                                            lstData.Add(objTmp);
                                        }
                                    }
                                    RuletblEQIW_R_Basedata_Pre rule_basedata = new RuletblEQIW_R_Basedata_Pre();
                                    bool issave = rule_basedata.InsertAll(lstData, inputdate_new);
                                    if (issave)
                                    {
                                        RuleWriteOperateLog rule_wol = new RuleWriteOperateLog();
                                        rule_wol.WriteLog(0, "录入河流数据到临时表,断面" + itemvalue.fldRSCode +
                                                          ";时间:" + itemvalue.BeginDate + " " + itemvalue.EndDate + ";录入者ID:" + int.Parse(itemvalue.fldUserID), itemvalue.fldUserName, int.Parse(itemvalue.fldUserID), int.Parse(itemvalue.fldCityID_Submit));
                                        result = rule.JsonStr("error", "录入成功!您保存的数据,已进入“待提交审核的数据”状态", "");
                                    }
                                    else
                                    {
                                        result = rule.JsonStr("error", "数据保存失败,请重试", "");
                                    }
                                }
                                else
                                {
                                    result = rule.JsonStr("error", "缺少因子监测值", "");
                                }
                            }
                            else
                            {
                                result = rule.JsonStr("error", "缺少断面代码", "");
                            }
                        }
                        else
                        {
                            result = rule.JsonStr("error", "缺少河流代码", "");
                        }
                    }
                    else
                    {
                        result = rule.JsonStr("error", "缺少城市代码", "");
                    }
                }
                else
                {
                    result = rule.JsonStr("error", "缺少监测时间", "");
                }
            }
            catch (InputException ex)
            {
                result = rule.JsonStr("error", "数据保存失败," + ex.Message, "");
            }
            catch (InsertException ex)
            {
                PageException pagex = new PageException(int.Parse(itemvalue.fldUserID), ex.Message,
                                                        "Eqiw_rPointInputController", "ItemSave", "");
                result = rule.JsonStr("error", "数据写入数据库失败," + ex.Message, "");
            }
            catch (Exception ex)
            {
                PageException pagex = new PageException(int.Parse(itemvalue.fldUserID), ex.Message,
                                                        "Eqiw_rPointInputController", "ItemSave", "");
                result = rule.JsonStr("error", "数据保存时出现了错误," + ex.Message, "");
            }
            return(new HttpResponseMessage {
                Content = new StringContent(result, System.Text.Encoding.UTF8, "application/json")
            });
        }
        /// <summary>
        /// 功能描述:数据插入到临时表
        /// 创建  人:周文卿
        /// 创建时间:2017/07/12
        /// </summary>
        /// <param name="inputdata">插入的实体类</param>
        /// <returns>json(是否成功)</returns>
        public HttpResponseMessage ItemSave(List<tbleqiw_r_table> inputdata)
        {
            string returntext = "";

            try
            {
                Regex regexvalue = new Regex(@"^(\d*\.?\d+)+$");
                Regex regexvalue2 = new Regex(@"^(\d*\.?\d+)?[lL]$");

                //赋值点位时间信息
                List<tblEQIW_R_Basedata_Pre> lstData = new List<tblEQIW_R_Basedata_Pre>();
                tblEQIW_R_Basedata_Pre objData = new tblEQIW_R_Basedata_Pre();
                List<tblEQIW_D_Basedata_Pre> lstDataD = new List<tblEQIW_D_Basedata_Pre>();
                for (int i = 0; i < inputdata.Count; i++)
                {
                    List<tbaeqiw_r_value> valueall = inputdata[i].valueall;
                    for (int j = 0; j < valueall.Count; j++)
                    {
                        objData.fldSTCode = valueall[j].fldSTCode;
                        objData.fldRSC = inputdata[i].fldRSC;
                        objData.fldUserID = int.Parse(inputdata[i].fldUserID);
                        objData.fldFlag = 0;
                        objData.fldCityID_Operate = int.Parse(inputdata[i].fldCityID_Operate);
                        objData.fldCityID_Submit = inputdata[i].fldCityID_Submit;
                        objData.fldDate_Operate = DateTime.Now;
                        decimal dValue = -1;
                        string samphvalue = valueall[j].monitorvalue;
                        #region 修改监测值
                        if (samphvalue != "")
                        {
                            if (regexvalue2.IsMatch(samphvalue))
                            {
                                if (samphvalue.ToLower() == "l")
                                {

                                    decimal temp = Convert.ToDecimal(valueall[j].monitorvalue);
                                    if (temp <= 0)
                                    {
                                        returntext = rule.JsonStr("error", "项目的检出限<=0,不能输入 L 作为监测值", "");
                                        return new HttpResponseMessage { Content = new StringContent(returntext, System.Text.Encoding.UTF8, "application/json") };
                                    }
                                    dValue = -temp;
                                }
                                else
                                {
                                    dValue = -Convert.ToDecimal(samphvalue.Replace("l", "").Replace("L", ""));
                                }
                                if (dValue == -1)
                                {
                                    dValue = Convert.ToDecimal(-0.99999999);
                                }
                            }
                            else
                            {
                                dValue = Convert.ToDecimal(samphvalue);
                            }
                        }
                        #endregion
                        tblEQIW_R_Basedata_Pre objTmp = objData.Clone();
                        DateTime time = DateTime.Parse(valueall[j].fldDate.ToString());
                        objTmp.fldYear = time.Year;
                        objTmp.fldMonth = time.Month;
                        objTmp.fldDay = time.Day;
                        objTmp.fldHour = 0;
                        objTmp.fldMinute = 0;
                        objTmp.fldSAMPH = "1";
                        objTmp.fldRCode = valueall[j].fldRCode;
                        objTmp.fldRSCode = valueall[j].fldRSCode;
                        objTmp.fldSAMPR = "1";
                        objTmp.fldItemCode = inputdata[i].itemcode;
                        objTmp.fldItemValue = dValue;
                        lstData.Add(objTmp);
                    }
                }
                RuletblEQIW_R_Basedata_Pre rule_basedata = new RuletblEQIW_R_Basedata_Pre();
                bool issave = rule_basedata.InsertAll(lstData);
                if (issave)
                {
                    RuleWriteOperateLog rule_wol = new RuleWriteOperateLog();
                    rule_wol.WriteLog(0, "录入河流数据到临时表", "", int.Parse(inputdata[0].fldUserID), int.Parse(inputdata[0].fldCityID_Operate));
                    returntext = rule.JsonStr("ok", "录入成功!您保存的数据,已进入“待提交审核的数据”状态", "");
                }
                else
                {
                    returntext = rule.JsonStr("error", "保存数据失败!请重试!", "");
                }
            }
            catch (InputException ex)
            {
                returntext = rule.JsonStr("error", ex.Message, "");
            }
            catch (InsertException ex)
            {
                returntext = rule.JsonStr("error", ex.Message, "");
            }
            catch (Exception ex)
            {
                returntext = rule.JsonStr("error", ex.Message, "");
            }

            return new HttpResponseMessage { Content = new StringContent(returntext, System.Text.Encoding.UTF8, "application/json") };
        }