예제 #1
0
    public string GetMeterInfo(string key, string meterNo, out string info)
    {
        string reuslt = string.Empty;

        info = string.Empty;
        if (key != "6E5F0C851FD4" || string.IsNullOrEmpty(meterNo))
        {
            info = "参数有误!";
            return(reuslt);
        }
        try
        {
            var bc = new project.Business.Base.BusinessMeter();
            bc.load(meterNo);
            if (bc.Entity != null)
            {
                var obj = new { rmid = bc.Entity.MeterRMID, read = bc.Entity.MeterReadout.ToString("0.##"), digit = bc.Entity.MeterDigit };
                reuslt = JsonConvert.SerializeObject(obj);
            }
            else
            {
                info = "查无此表!";
            }
        }
        catch
        {
            info = "异常!";
        }
        return(reuslt);
    }
예제 #2
0
        private string validaction(JsonArrayParse jp)
        {
            JsonObjectCollection collection = new JsonObjectCollection();
            string flag = "1";

            try
            {
                Business.Base.BusinessMeter bc = new project.Business.Base.BusinessMeter();
                bc.load(jp.getValue("id"));
                if (bc.Entity.MeterStatus == "open")
                {
                    bc.Entity.MeterStatus = "close";
                }
                else
                {
                    bc.Entity.MeterStatus = "open";
                }

                int r = bc.valid();
                if (r <= 0)
                {
                    flag = "2";
                }

                if (bc.Entity.MeterStatus == "close")
                {
                    collection.Add(new JsonStringValue("stat", "<span class=\"label radius\">禁用</span>"));
                }
                else
                {
                    collection.Add(new JsonStringValue("stat", "<span class=\"label label-success radius\">正常</span>"));
                }

                collection.Add(new JsonStringValue("id", jp.getValue("id")));
            }
            catch { flag = "2"; }

            collection.Add(new JsonStringValue("type", "valid"));
            collection.Add(new JsonStringValue("flag", flag));
            collection.Add(new JsonStringValue("liststr", createList(jp.getValue("MeterLOCNo1S"), jp.getValue("MeterLOCNo2S"), jp.getValue("MeterLOCNo3S"),
                                                                     jp.getValue("MeterLOCNo4S"), jp.getValue("MeterNoS"), jp.getValue("MeterTypeS"), jp.getValue("MeterUsageTypeS"),
                                                                     jp.getValue("MeterRMIDS"), jp.getValue("MeterSizeS"), jp.getValue("MeterStatusS"), ParseIntForString(jp.getValue("page")))));
            return(collection.ToString());
        }
예제 #3
0
        private string deleteaction(JsonArrayParse jp)
        {
            JsonObjectCollection collection = new JsonObjectCollection();
            string flag = "1";

            try
            {
                Business.Base.BusinessMeter bc = new project.Business.Base.BusinessMeter();
                bc.load(jp.getValue("id"));

                if (obj.PopulateDataSet("select 1 from Op_ChangeMeter where OldMeterNo='" + bc.Entity.MeterNo + "' or NewMeterNo='" + bc.Entity.MeterNo + "'").Tables[0].Rows.Count > 0)
                {
                    flag = "3";
                }
                else
                {
                    if (obj.PopulateDataSet("select 1 from Op_Readout where MeterNo='" + bc.Entity.MeterNo + "'").Tables[0].Rows.Count > 0)
                    {
                        flag = "3";
                    }
                    else
                    {
                        int r = bc.delete();
                        if (r <= 0)
                        {
                            flag = "2";
                        }
                    }
                }
            }
            catch { flag = "2"; }

            collection.Add(new JsonStringValue("type", "delete"));
            collection.Add(new JsonStringValue("flag", flag));
            collection.Add(new JsonStringValue("liststr", createList(jp.getValue("MeterLOCNo1S"), jp.getValue("MeterLOCNo2S"), jp.getValue("MeterLOCNo3S"),
                                                                     jp.getValue("MeterLOCNo4S"), jp.getValue("MeterNoS"), jp.getValue("MeterTypeS"), jp.getValue("MeterUsageTypeS"),
                                                                     jp.getValue("MeterRMIDS"), jp.getValue("MeterSizeS"), jp.getValue("MeterStatusS"), ParseIntForString(jp.getValue("page")))));

            return(collection.ToString());
        }
예제 #4
0
    public bool AddMeterReadout(string key, string userName, string meterReadoutObj, byte[] readoutImg)
    {
        string imgName = string.Empty;

        if (key != "6E5F0C851FD4")
        {
            return(false);
        }
        try
        {
            var entityReadout = JsonConvert.DeserializeObject <project.Entity.Op.EntityReadout>(meterReadoutObj);
            entityReadout.RowPointer = Guid.NewGuid().ToString();
            //表记资料
            var businessMeter = new project.Business.Base.BusinessMeter();
            businessMeter.load(entityReadout.MeterNo);
            if (businessMeter.Entity == null)
            {
                return(false);
            }
            entityReadout.RMID      = businessMeter.Entity.MeterRMID;
            entityReadout.MeterType = businessMeter.Entity.MeterType;
            entityReadout.MeteRate  = businessMeter.Entity.MeterRate;
            //抄表附带数据
            DataTable dt = obj.PopulateDataSet(string.Format("SELECT READERNO FROM Mstr_MeterReader WHERE READERNAME='{0}'", userName)).Tables[0];
            entityReadout.ROOperator   = dt.Rows.Count > 0 ? dt.Rows[0]["ReaderNo"].ToString() : "";
            entityReadout.ROCreateDate = GetDate();
            entityReadout.ROCreator    = userName;
            entityReadout.RODate       = GetDate();
            //图片处理
            if (readoutImg != null)
            {
                imgName = SaveReadoutImg(entityReadout.MeterNo, readoutImg);
            }
            entityReadout.Img = imgName;
            //数据保存
            var businessReadout = new project.Business.Op.BusinessReadout(entityReadout);
            if (businessReadout.Save("insert") > 0)
            {
                return(true);
            }
            else
            {
                if (!string.IsNullOrEmpty(imgName))
                {
                    string imgPath = ReadoutImgPath + imgName;
                    if (File.Exists(imgPath))
                    {
                        File.Delete(imgPath);
                    }
                }
            }
        }
        catch (Exception)
        {
            if (!string.IsNullOrEmpty(imgName))
            {
                string imgPath = ReadoutImgPath + imgName;
                if (File.Exists(imgPath))
                {
                    File.Delete(imgPath);
                }
            }
        }
        return(false);
    }
예제 #5
0
    public string MeterReadout(string MeterNo, string ReadoutType, decimal LastReadout, decimal Readout,
                               decimal JoinReadings, decimal Readings, string UserName, string KEY, byte[] ImgByte)
    {
        if (KEY != "6E5F0C851FD4")
        {
            return("");
        }

        string InfoMsg = "";
        string imgName = MeterNo + "-" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg";
        string imgPath = ReadoutImgPath + imgName;

        try
        {
            if (ImgByte != null)
            {
                SaveReadoutImg(MeterNo, imgName, ImgByte);                 //保存图片
            }
            else
            {
                imgName = string.Empty;
            }

            project.Business.Op.BusinessReadout bc = new project.Business.Op.BusinessReadout();
            string id = Guid.NewGuid().ToString();
            bc.Entity.RowPointer = id;
            bc.Entity.MeterNo    = MeterNo;

            string isOk = "1";
            try
            {
                project.Business.Base.BusinessMeter bm = new project.Business.Base.BusinessMeter();
                bm.load(MeterNo);
                bc.Entity.RMID      = bm.Entity.MeterRMID;
                bc.Entity.MeterType = bm.Entity.MeterType;
                bc.Entity.MeteRate  = bm.Entity.MeterRate;
            }
            catch
            {
                isOk    = "0";
                InfoMsg = "当前表记未找到!";
                DelReadoutImg(imgPath);
            }

            if (isOk == "1")
            {
                bc.Entity.ReadoutType  = ReadoutType;
                bc.Entity.LastReadout  = LastReadout;
                bc.Entity.Readout      = Readout;
                bc.Entity.JoinReadings = JoinReadings;
                bc.Entity.Readings     = Readings;
                DataTable tempDt = obj.PopulateDataSet(string.Format("SELECT READERNO FROM Mstr_MeterReader WHERE READERNAME='{0}'", UserName)).Tables[0];
                bc.Entity.ROOperator   = tempDt.Rows.Count > 0 ? tempDt.Rows[0]["ReaderNo"].ToString() : "";
                bc.Entity.RODate       = GetDate();
                bc.Entity.Img          = imgName;
                bc.Entity.ROCreateDate = GetDate();
                bc.Entity.ROCreator    = UserName;

                //获取换表记录 [换表记录已审核,并没有被抄表引用]
                DataTable dt = obj.PopulateDataSet("select RowPointer,OldMeterReadings from Op_ChangeMeter " +
                                                   "where AuditStatus='1' and NewMeterNo='" + bc.Entity.MeterNo + "' " +
                                                   "and RowPointer not in (select ChangeID from Op_Readout_ChangeList)").Tables[0];
                if (dt.Rows.Count > 0)
                {
                    bc.Entity.IsChange = true;
                    decimal OldMeterReadings = 0;

                    //考虑多次换表的情况
                    foreach (DataRow dr in dt.Rows)
                    {
                        OldMeterReadings += ParseDecimalForString(dr["OldMeterReadings"].ToString());
                    }
                    bc.Entity.OldMeterReadings = OldMeterReadings;
                }
                else
                {
                    bc.Entity.IsChange         = false;
                    bc.Entity.OldMeterReadings = 0;
                }

                int r = bc.Save("insert");
                if (r <= 0)
                {
                    DelReadoutImg(imgPath);
                    InfoMsg = "抄表写入失败!";
                }
                else
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        obj.ExecuteNonQuery("insert into Op_Readout_ChangeList(RowPointer,RefRP,ChangeID) values(newid(),'" + id + "','" + dr["RowPointer"].ToString() + "')");
                    }
                }
            }
        }
        catch (Exception ex)
        {
            DelReadoutImg(imgPath);
            InfoMsg = ex.Message;
        }

        return(InfoMsg);
    }
예제 #6
0
        private string submitaction(JsonArrayParse jp)
        {
            JsonObjectCollection collection = new JsonObjectCollection();
            string flag = "1";

            try
            {
                Business.Base.BusinessMeter bc = new project.Business.Base.BusinessMeter();
                if (jp.getValue("tp") == "update")
                {
                    bc.load(jp.getValue("id"));
                    bc.Entity.MeterName       = jp.getValue("MeterName");
                    bc.Entity.MeterType       = jp.getValue("MeterType");
                    bc.Entity.MeterLOCNo1     = jp.getValue("MeterLOCNo1");
                    bc.Entity.MeterLOCNo2     = jp.getValue("MeterLOCNo2");
                    bc.Entity.MeterLOCNo3     = jp.getValue("MeterLOCNo3");
                    bc.Entity.MeterLOCNo4     = jp.getValue("MeterLOCNo4");
                    bc.Entity.MeterRate       = ParseDecimalForString(jp.getValue("MeterRate"));
                    bc.Entity.MeterDigit      = ParseIntForString(jp.getValue("MeterDigit"));
                    bc.Entity.MeterUsageType  = jp.getValue("MeterUsageType");
                    bc.Entity.MeterNatureType = jp.getValue("MeterNatureType");
                    //bc.Entity.MeterReadout = ParseDecimalForString(jp.getValue("MeterReadout"));
                    //bc.Entity.MeterReadoutDate = ParseDateForString(jp.getValue("MeterReadoutDate"));
                    bc.Entity.MeterRMID           = jp.getValue("MeterRMID");
                    bc.Entity.MeterSize           = jp.getValue("MeterSize");
                    bc.Entity.MeterRelatedMeterNo = jp.getValue("MeterRelatedMeterNo");
                    bc.Entity.Addr = jp.getValue("Addr");

                    int r = bc.Save("update");

                    if (r <= 0)
                    {
                        flag = "2";
                    }
                }
                else
                {
                    Data      obj = new Data();
                    DataTable dt  = obj.PopulateDataSet("select cnt=COUNT(*) from Mstr_Meter where MeterNo='" + jp.getValue("MeterNo") + "'").Tables[0];
                    if (int.Parse(dt.Rows[0]["cnt"].ToString()) > 0)
                    {
                        flag = "3";
                    }
                    else
                    {
                        bc.Entity.MeterNo         = jp.getValue("MeterNo");
                        bc.Entity.MeterName       = jp.getValue("MeterName");
                        bc.Entity.MeterType       = jp.getValue("MeterType");
                        bc.Entity.MeterLOCNo1     = jp.getValue("MeterLOCNo1");
                        bc.Entity.MeterLOCNo2     = jp.getValue("MeterLOCNo2");
                        bc.Entity.MeterLOCNo3     = jp.getValue("MeterLOCNo3");
                        bc.Entity.MeterLOCNo4     = jp.getValue("MeterLOCNo4");
                        bc.Entity.MeterRate       = ParseDecimalForString(jp.getValue("MeterRate"));
                        bc.Entity.MeterDigit      = ParseIntForString(jp.getValue("MeterDigit"));
                        bc.Entity.MeterUsageType  = jp.getValue("MeterUsageType");
                        bc.Entity.MeterNatureType = jp.getValue("MeterNatureType");
                        //bc.Entity.MeterReadout = ParseDecimalForString(jp.getValue("MeterReadout"));
                        //bc.Entity.MeterReadoutDate = ParseDateForString(jp.getValue("MeterReadoutDate"));
                        bc.Entity.MeterRMID           = jp.getValue("MeterRMID");
                        bc.Entity.MeterSize           = jp.getValue("MeterSize");
                        bc.Entity.MeterRelatedMeterNo = jp.getValue("MeterRelatedMeterNo");
                        bc.Entity.Addr = jp.getValue("Addr");

                        bc.Entity.MeterCreator    = user.Entity.UserName;
                        bc.Entity.MeterCreateDate = GetDate();

                        int r = bc.Save("insert");
                        if (r <= 0)
                        {
                            flag = "2";
                        }
                    }
                }
            }
            catch { flag = "2"; }


            collection.Add(new JsonStringValue("type", "submit"));
            collection.Add(new JsonStringValue("flag", flag));
            collection.Add(new JsonStringValue("liststr", createList(jp.getValue("MeterLOCNo1S"), jp.getValue("MeterLOCNo2S"), jp.getValue("MeterLOCNo3S"),
                                                                     jp.getValue("MeterLOCNo4S"), jp.getValue("MeterNoS"), jp.getValue("MeterTypeS"), jp.getValue("MeterUsageTypeS"),
                                                                     jp.getValue("MeterRMIDS"), jp.getValue("MeterSizeS"), jp.getValue("MeterStatusS"), ParseIntForString(jp.getValue("page")))));

            return(collection.ToString());
        }
예제 #7
0
        private string updateaction(JsonArrayParse jp)
        {
            JsonObjectCollection collection = new JsonObjectCollection();
            string flag = "1";

            try
            {
                Business.Base.BusinessMeter bc = new project.Business.Base.BusinessMeter();
                bc.load(jp.getValue("id"));

                collection.Add(new JsonStringValue("MeterNo", bc.Entity.MeterNo));
                collection.Add(new JsonStringValue("MeterName", bc.Entity.MeterName));
                collection.Add(new JsonStringValue("MeterType", bc.Entity.MeterType));
                collection.Add(new JsonStringValue("MeterLOCNo1", bc.Entity.MeterLOCNo1));
                collection.Add(new JsonStringValue("MeterLOCNo2", bc.Entity.MeterLOCNo2));
                collection.Add(new JsonStringValue("MeterLOCNo3", bc.Entity.MeterLOCNo3));
                collection.Add(new JsonStringValue("MeterLOCNo4", bc.Entity.MeterLOCNo4));
                collection.Add(new JsonStringValue("MeterRate", bc.Entity.MeterRate.ToString("0.####")));
                collection.Add(new JsonStringValue("MeterDigit", bc.Entity.MeterDigit.ToString()));
                collection.Add(new JsonStringValue("MeterUsageType", bc.Entity.MeterUsageType));
                collection.Add(new JsonStringValue("MeterNatureType", bc.Entity.MeterNatureType));
                collection.Add(new JsonStringValue("MeterReadout", bc.Entity.MeterReadout.ToString("0.####")));
                collection.Add(new JsonStringValue("MeterReadoutDate", ParseStringForDate(bc.Entity.MeterReadoutDate)));
                collection.Add(new JsonStringValue("MeterRMID", bc.Entity.MeterRMID));
                collection.Add(new JsonStringValue("MeterSize", bc.Entity.MeterSize));
                collection.Add(new JsonStringValue("MeterRelatedMeterNo", bc.Entity.MeterRelatedMeterNo));
                collection.Add(new JsonStringValue("Addr", bc.Entity.Addr));

                string subtype = "";
                int    row     = 0;
                Business.Base.BusinessLocation bt = new Business.Base.BusinessLocation();
                foreach (Entity.Base.EntityLocation it in bt.GetListQuery(string.Empty, string.Empty, bc.Entity.MeterLOCNo1))
                {
                    subtype += it.LOCNo + ":" + it.LOCName + ";";
                    row++;
                }
                collection.Add(new JsonNumericValue("row", row));
                collection.Add(new JsonStringValue("subtype", subtype));

                row     = 0;
                subtype = "";
                foreach (Entity.Base.EntityLocation it in bt.GetListQuery(string.Empty, string.Empty, bc.Entity.MeterLOCNo2))
                {
                    subtype += it.LOCNo + ":" + it.LOCName + ";";
                    row++;
                }
                collection.Add(new JsonNumericValue("row1", row));
                collection.Add(new JsonStringValue("subtype1", subtype));

                row     = 0;
                subtype = "";
                foreach (Entity.Base.EntityLocation it in bt.GetListQuery(string.Empty, string.Empty, bc.Entity.MeterLOCNo3))
                {
                    subtype += it.LOCNo + ":" + it.LOCName + ";";
                    row++;
                }
                collection.Add(new JsonNumericValue("row2", row));
                collection.Add(new JsonStringValue("subtype2", subtype));
            }
            catch
            { flag = "2"; }

            collection.Add(new JsonStringValue("type", "update"));
            collection.Add(new JsonStringValue("flag", flag));

            return(collection.ToString());
        }