Beispiel #1
0
 private void SetText(Common_n com)
 {
     if (com != null)
     {
         // FID
         tb_fid.Text = com.G3E_FID.ToString();
         // 名称
         tb_mc.Text = com.SBMC;
         tj_name    = com.SBMC;
         //// 所属单位
         //cb_ssdw.Text = com.CD_SSDW;
         //// 所属变电站
         //cb_ssbdz.Text = com.CD_SSBDZ;
         //// 所属线路
         //cb_ssxl.Text = com.CD_SSXL;
         //// 电压等级
         //cb_dydj.Text = com.CD_DYDJ;
         //// 生命周期
         //cb_smzq.Text = com.CD_SMZQ;
         //// 所属供电所
         //cb_ssgds.Text = com.GNWZ_SSGDS;
         //台架下所挂的设备
         var str_devs = tj_devs_comm.Aggregate("", (current, d) => current + (d.G3E_FID + ":" + d.G3E_FNO + ":" + d.SBMC + "\n"));
         rtb_sgsb.Text = str_devs;
     }
 }
Beispiel #2
0
        /// <summary>
        /// 显示设备GIS功能属性表
        /// </summary>
        /// <param name="fid">设备FID</param>
        public static bool ShowDeviceAttributeByFid(long fid)
        {
            Common_n device_common = DBManager.Instance.GetEntities <Common_n>(o => o.G3E_FID == fid).FirstOrDefault();

            if (device_common != null)
            {
                if (device_common.EntityState == EntityState.Delete)
                {
                    MessageBox.Show("抱歉,您要查找的设备已被删除咯!!!", "CAD警告", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                    return(false);
                }
                if (device_common.G3E_FNO == 198)
                {
                    MessageBox.Show("请到开关柜管理界面修改.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                    return(false);
                }
                if (AttributeQuery(device_common.G3E_FNO, fid) == RetureValueCheck.LoadDialogSuccess)
                {
                    return(true);
                }
            }
            else
            {
                return(NoCommonAttributeQuery(fid));
            }
            return(false);
        }
Beispiel #3
0
        /// <summary>
        /// 新增受电馈线
        /// </summary>
        /// <param name="dbEntity"></param>
        /// <returns>返回G3e_id</returns>
        public static long InsertSDKX(Common_n dbEntity)
        {
            try
            {
                var cid = DBEntityFinder.Instance.GetSdkxCount(dbEntity.G3E_FID);
                cid++;
                var g3eid  = CYZCommonFunc.getid();
                var newEnt = new Gg_pd_sdkx_ac
                {
                    G3E_ID      = g3eid,
                    G3E_FID     = dbEntity.G3E_FID,
                    G3E_FNO     = dbEntity.G3E_FNO,
                    G3E_CID     = cid,
                    G3E_CNO     = 14904,
                    LTT_DATE    = dbEntity.LTT_DATE,
                    LTT_ID      = MapConfig.Instance.LTTID,
                    LTT_STATUS  = dbEntity.LTT_STATUS,
                    LTT_TID     = dbEntity.LTT_TID,
                    SCM_DID     = dbEntity.SCM_DID,
                    GDBDZ       = dbEntity.CD_SSBDZ,
                    KXH         = dbEntity.CD_SSXL,
                    EntityState = EntityState.Insert
                };

                DBManager.Instance.Insert(newEnt);
                return(newEnt.G3E_ID);
            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex);
            }
            return(0);
        }
Beispiel #4
0
        private static void Main(string[] args)
        {
            Stopwatch w = new Stopwatch();

            w.Start();
            var path    = Path.Combine(@"..\..\..\..\..\文档\数据包", "dbcad_201308093.xml");
            var newPath = Path.ChangeExtension(path, "inv");

            File.WriteAllBytes(newPath, File.ReadAllBytes(path).Inverse());
            w.Stop();
            Expression <Func <Student, string> > expr = o => o.Name;
            var parameterExpr = Expression.Parameter(typeof(Common_n), "test");
            var propertyExpr  = Expression.Property(parameterExpr, "G3E_ID");
            var f0            = Expression.Lambda(propertyExpr, parameterExpr);
            //var i = Expression.Call(parameterExpr, typeof(Student).GetProperty("Name").GetGetMethod(true));
            var f1     = Expression.Lambda <Func <Common_n, Int64> >(propertyExpr, parameterExpr);
            var func   = expr.Compile();
            var result = func(new Student {
                Name = "jack"
            });
            var method = f1.Compile();

            Common_n n = new Common_n {
                G3E_ID = 1L
            };
            Stopwatch watch1 = new Stopwatch();
            Stopwatch watch2 = new Stopwatch();
            Stopwatch watch3 = new Stopwatch();

            watch1.Start();

            for (int index = 0; index < 1000000; index++)
            {
                var result1 = n.G3E_ID;//ExpressionEvaluator.GetValue(n, "G3E_ID");
            }
            watch1.Stop();
            watch2.Start();
            for (int index = 0; index < 1000000; index++)
            {
                var result2 = n.GetValue("G3E_ID");
            }
            watch2.Stop();
            var student = new Student {
                Name = "jack"
            };

            watch3.Start();
            for (int index = 0; index < 1000000; index++)
            {
                var result2 = method(n);
            }
            watch3.Stop();
            var result3 = n.GetValue("G3E_FID");

            Console.WriteLine(watch1.Elapsed);
            Console.WriteLine(watch2.Elapsed);
            Console.WriteLine(watch3.Elapsed);
            Console.ReadLine();
        }
Beispiel #5
0
 private void SetText(Common_n com)
 {
     if (com != null)
     {
         textBox_DF_FID.Text     = com.G3E_FID.ToString();
         textBox_DF_OLDNAME.Text = com.SBMC;
     }
 }
Beispiel #6
0
        /// <summary>
        /// 得到变压器、台架、级联设备的功能位置与公共属性
        /// </summary>
        /// <param name="BYQFid">变压器G3E_FID</param>
        /// <returns></returns>
        private bool GetDevsByBYQFid(long BYQFid)
        {
            try
            {
                byq_gnwz = null;
                // 得到变压器的功能位置
                byq_gnwz = DBManager.Instance.GetEntities <Gg_pd_gnwzmc_n>(o => o.G3E_FID == BYQFid).FirstOrDefault();

                if (byq_gnwz != null)
                {
                    long tj_fid;
                    long.TryParse(byq_gnwz.GNWZ_SSTJ, out tj_fid);
                    // 得到台架的功能位置
                    tj_gnwz = null;
                    tj_gnwz = DBManager.Instance.GetEntities <Gg_pd_gnwzmc_n>(o => o.G3E_FID == tj_fid).FirstOrDefault();
                    if (tj_gnwz != null)
                    {
                        tj_comm = null;
                        tj_comm =
                            DBManager.Instance.GetEntities <Common_n>(o => o.G3E_FID == tj_gnwz.G3E_FID).FirstOrDefault();
                        tj_devs_gnwz = null;
                        // 得到台架级联设备的功能位置
                        tj_devs_gnwz =
                            DBManager.Instance.GetEntities <Gg_pd_gnwzmc_n>(o => o.GNWZ_SSTJ == tj_gnwz.G3E_FID.ToString());
                        if (tj_devs_gnwz != null && tj_devs_gnwz.Any())
                        {
                            tj_devs_comm.Clear();
                            // 得到台架级联设备的公共属性
                            tj_devs_comm.AddRange(
                                tj_devs_gnwz.Select(d => DBManager.Instance.GetEntity <Common_n>(d.G3E_FID))
                                .Where(dc => dc != null));
                            return(true);
                        }
                    }
                    else
                    {
                        PublicMethod.Instance.ShowMessage("此变压器没有台架信息。\n");
                    }
                }
                else
                {
                    PublicMethod.Instance.ShowMessage("此变压器没有功能位置信息。\n");
                }
                return(false);
            }
            catch (NotExistException ex)
            {
                PublicMethod.Instance.NotExistTable(ex);
                return(GetDevsByBYQFid(BYQFid));
            }
        }
Beispiel #7
0
 /// <summary>
 /// 更新公共属性表
 /// </summary>
 /// <param name="com"></param>
 /// <returns></returns>
 public static bool UpdateCommon(Common_n com)
 {
     try
     {
         var newObj = com.Clone() as Common_n;
         //只有原始数据才改变状态
         if (newObj.EntityState == EntityState.None)
         {
             newObj.EntityState = EntityState.Update;
         }
         DBManager.Instance.Update(newObj);
         return(true);
     }
     catch { return(false); }
 }
Beispiel #8
0
 /// <summary>
 /// 初始化出厂日期
 /// </summary>
 /// <param name="common"></param>
 private void SetTYRQ(Common_n common)
 {
     try
     {
         if (common.TYRQ != null)
         {
             tbTYRQ.Value = (DateTime)common.TYRQ;
         }
     }catch
     {
         // 初始化出厂日期
         if (String.IsNullOrEmpty(tbTYRQ.Text))
         {
             tbTYRQ.Value = DateTime.Now;
         }
     }
 }
Beispiel #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="objDev"></param>
        /// <param name="ObjCom"></param>
        /// <param name="ObjSelf"></param>
        /// <param name="ObjGnwz"></param>
        /// <param name="flag">是否是批量</param>
        public void UpdateAttribute(XProps objDev, Common_n ObjCom, DBEntity ObjSelf, Gg_pd_gnwzmc_n ObjGnwz, bool flag)
        {
            var tableName = string.Empty;

            try
            {
                if (ObjCom != null)
                {
                    tableName = ObjCom.GetType().Name;
                    if (flag)
                    {
                        string sbmc = ObjCom.SBMC;
                        GenerateHelper.PartialCopyFromCAD(objDev, ObjCom, 198);
                        ObjCom.SBMC = sbmc;
                    }
                    else
                    {
                        GenerateHelper.PartialCopyFromCAD(objDev, ObjCom, 198);
                    }
                    if (GenerateHelper.Atff.com != null && ObjCom.CompareProperties(GenerateHelper.Atff.com).Any())
                    {
                        if (ObjCom.EntityState == EntityState.None)
                        {
                            ObjCom.EntityState = EntityState.Update;
                        }
                        DBManager.Instance.Update(ObjCom);
                    }
                }
                if (ObjSelf != null)
                {
                    tableName = ObjSelf.GetType().Name;
                    GenerateHelper.PartialCopyFromCAD(objDev, ObjSelf, 198);
                    if (GenerateHelper.Atff.self != null && ObjSelf.CompareProperties(GenerateHelper.Atff.self).Any())
                    {
                        if (ObjSelf.EntityState == EntityState.None)
                        {
                            ObjSelf.EntityState = EntityState.Update;
                        }
                        DBManager.Instance.Update(ObjSelf);
                    }
                }
                if (ObjGnwz != null)
                {
                    tableName = ObjGnwz.GetType().Name;
                    if (flag)
                    {
                        string mc = ObjGnwz.MC;
                        GenerateHelper.PartialCopyFromCAD(objDev, ObjGnwz, 198);
                        ObjGnwz.MC = mc;
                    }
                    else
                    {
                        GenerateHelper.PartialCopyFromCAD(objDev, ObjGnwz, 198);
                        ObjGnwz.SetAttribute("MC", GenerateHelper.GetPropertyValue((XProps)pgSwitchCabinet.SelectedObject, "Common_n", "SBMC"));
                    }
                    if (GenerateHelper.Atff.gnwz != null && ObjGnwz.CompareProperties(GenerateHelper.Atff.gnwz).Any())
                    {
                        if (ObjGnwz.EntityState == EntityState.None)
                        {
                            ObjGnwz.EntityState = EntityState.Update;
                        }
                        DBManager.Instance.Update(ObjGnwz);
                    }
                }
            }
            catch (UpdataArgumentException ee)
            {
                CommonHelp.Instance.ShowErrorMsg();
                GenerateHelper.SetPropertyValue(objDev, tableName, ee.FieldName, null);
            }
        }
Beispiel #10
0
        private List <SyncRecord> SyncDataFrom(List <TzTableValue> tzValues, RequiredDevTables rdt)
        {
            List <SyncRecord> syncRecords = new List <SyncRecord>();

            foreach (var field in tzValues)
            {
                if (string.IsNullOrEmpty(field.TableName))
                {
                    continue;
                }
                switch (field.TableName)
                {
                case "COMMON_N":
                {
                    Common_n com = rdt.ComObj;
                    if (com != null)
                    {
                        syncRecords.Add(new SyncRecord {
                                TableName = field.TableName, Fields = SyncDataToModel(field, com)
                            });
                    }
                }
                break;

                case "CONNECTIVITY_N":
                {
                    var connectivity = rdt.ConnectObj;
                    if (connectivity != null)
                    {
                        syncRecords.Add(new SyncRecord {
                                TableName = field.TableName, Fields = SyncDataToModel(field, connectivity)
                            });;
                    }
                }
                break;

                case "GG_PD_GNWZMC_N":
                {
                    var gnwz = rdt.GnwzObj;
                    if (gnwz != null)
                    {
                        syncRecords.Add(new SyncRecord {
                                TableName = field.TableName, Fields = SyncDataToModel(field, gnwz)
                            });
                    }
                }
                break;

                default:
                {
                    DBEntity self = rdt.SelfObj;
                    if (self != null)
                    {
                        syncRecords.Add(new SyncRecord {
                                TableName = field.TableName, Fields = SyncDataToModel(field, self)
                            });
                    }
                }
                break;
                }
            }
            return(syncRecords);
        }
Beispiel #11
0
        /// <summary>
        /// 根据安装位置判断是否做从属
        /// </summary>
        /// <param name="comm"></param>
        /// <param name="fcomm"></param>
        public static String BelongByAZWZ(Common_n comm, Common_n fcomm)
        {
            var str_err = "";

            switch (comm.G3E_FNO)
            {
            case 146:    //10kV开关
            {
                var dlt = DBManager.Instance.GetEntity <Gg_pd_zfhwg_n>(comm.G3E_FID).DLT;
                //1	户内	62452 //2	户外	46718 //3	柱上	46041 //4	箱式	27373 //5	房内	1217 //6	房外	29
                //201电杆//142公用电房//163专用电房//149箱式设备//198开关柜//199台架
            }
            break;

                #region 变压器

            case 148:
            {
                var fl = DBManager.Instance.GetEntity <Gg_pd_gnwzmc_n>(comm.G3E_FID).GNWZ_FL2;
                switch (fl)
                {
                case "":
                {
                    str_err = "请选择安装位置!";
                }
                break;

                case "台架":
                {
                    if (fcomm.G3E_FNO != 201)
                    {
                        str_err = "台架只能从属于杆塔!";
                    }
                }
                break;

                case "箱式":
                {
                    if (fcomm.G3E_FNO != 149)
                    {
                        str_err = "当前安装位置只能从属于箱式设备!";
                    }
                }
                break;

                case "房内":
                {
                    if (fcomm.G3E_FNO == 149 || fcomm.G3E_FNO == 201)
                    {
                        str_err = "当前安装位置只能从属于电房!";
                    }
                }
                break;
                }
            }

                #endregion

                break;

            case 177:    //避雷器
            {
                var azwz = DBManager.Instance.GetEntity <Gg_pd_blq_n>(comm.G3E_FID).AZWZ;
                //房外//柱上//户外//198开关柜//149箱式设备//201电杆//163专用电房//199台架//142公用电房
            }
            break;

            case 81:    //低压柜
                break;

            case 82:    //高压表
                break;

            case 84:    //计量柜
                break;

            case 90:    //DTU
                break;

            case 180:    //FTU
                break;

            case 307:    //电压互感器
                break;
            }
            return(str_err);
        }
Beispiel #12
0
        private void btn_JLBmove_Click(object sender, EventArgs e)
        {
            try
            {
                // 提示文字颜色
                lb_JLBWarn.Text      = "";
                lb_JLBWarn.ForeColor = Color.Red;
                // 输入文本框是否为空
                if (string.IsNullOrEmpty(tx_JLBYDH.Text))
                {
                    lb_JLBWarn.Text = "用户号不能为空.";
                    return;
                }
                // 迁移户表的自身属性表
                var temp_jlbn =
                    DBManager.Instance.GetEntities <Gg_pd_jlb_n>(o => o.YHH == tx_JLBYDH.Text.Trim()).FirstOrDefault();
                if (temp_jlbn == null)
                {
                    lb_JLBWarn.Text = "用户号不存在.";
                    return;
                }
                // 计量表的设备类型
                SBLX = temp_jlbn.CD_SBLX;
                // 迁移计量表的g3e_fid
                g3e_Fid = temp_jlbn.G3E_FID;
                // 得到迁移计量表的坐标表
                var temp_jlbpt =
                    DBManager.Instance.GetEntities <Gg_jx_jlb_pt>(
                        o => o.G3E_FID == temp_jlbn.G3E_FID && o.EntityState != EntityState.Delete).FirstOrDefault();
                if (temp_jlbpt == null)
                {
                    lb_JLBWarn.Text = "该用户号的计量表坐标表不存在.";
                    return;
                }
                // 判断是否在当前集抄箱
                if (temp_jlbpt.G3E_DETAILID == g3e_detailId)
                {
                    lb_JLBWarn.Text = "该用户号的计量表表已在此详图中.";
                    return;
                }
                // 取出需要被迁移计量表的详表数据
                var temp_detail =
                    DBManager.Instance.GetEntities <Detailreference_n>(
                        o => o.G3E_DETAILID == temp_jlbpt.G3E_DETAILID && o.EntityState != EntityState.Delete)
                    .FirstOrDefault();
                if (temp_detail == null)
                {
                    lb_JLBWarn.Text = "该用户号的户表详表数据不存在.";
                    return;
                }
                // 判断需要被迁移的计量表的详图是否被锁定
                var isLock = DBEntityFinder.Instance.VerifyLTTID(temp_detail.G3E_FID);
                if (!isLock)
                {
                    lb_JLBWarn.Text = "户表所属抄表箱没有被工单锁定,不能迁移!";
                    return;
                }

                var str = "户名: " + temp_jlbn.HM + "\n"
                          + "用户号: " + temp_jlbn.YHH + "\n"
                          + "表号: " + temp_jlbn.BH + "\n"
                          + "确定要迁移?";
                // 搜索成功,弹出提示框
                var res = MessageBox.Show(str, @"确定?", MessageBoxButtons.OKCancel);
                if (res == DialogResult.Cancel)
                {
                    return;
                }
                // 迁移户表操作
                // 1 更改户表的detailID
                temp_jlbpt.G3E_DETAILID = g3e_detailId;
                if (temp_jlbpt.EntityState != EntityState.Insert)
                {
                    temp_jlbpt.EntityState = EntityState.Update;
                }
                // 2 得到户表的FID
                // 3 保持与当前详图的所属线路、单位一致
                var temp_detail_comm =
                    DBManager.Instance.GetEntities <Common_n>(
                        o => o.G3E_FID == temp_detail.G3E_FID && o.EntityState != EntityState.Delete).FirstOrDefault();
                Common_n temp_jlb_comm = null;
                if (temp_detail_comm != null)
                {
                    temp_jlb_comm =
                        DBManager.Instance.GetEntities <Common_n>(
                            o => o.G3E_FID == g3e_Fid && o.EntityState != EntityState.Delete).FirstOrDefault();
                    if (temp_jlb_comm != null)
                    {
                        temp_jlb_comm.CD_SSDW = temp_detail_comm.CD_SSDW;
                        temp_jlb_comm.CD_SSXL = temp_detail_comm.CD_SSXL;
                        if (temp_jlb_comm.EntityState != EntityState.Insert)
                        {
                            temp_jlb_comm.EntityState = EntityState.Update;
                        }
                    }
                }
                // 4 更改户表的坐标
                if (!UpdateSdo(temp_jlbn.G3E_FID, move_pt))
                {
                    PublicMethod.Instance.AlertDialog("迁移失败!\n");
                    return;
                }
                DBManager.Instance.Update(temp_jlbpt);
                DBManager.Instance.Update(temp_jlb_comm);
                PublicMethod.Instance.AlertDialog("迁移成功!\n");
                DialogResult = DialogResult.OK;
                Close();
            }
            catch (NotExistException ex)
            {
                PublicMethod.Instance.NotExistTable(ex);
            }
            catch (Exception exception)
            {
                PublicMethod.Instance.ShowMessage(exception.Message);
            }
        }