管道基础大数据平台系统开发-【CS】-ExportMap
13693261870
2023-08-22 12b68cf5f346c73a4e270f37054642714e29e117
修改数据入库的界面1
已添加2个文件
已删除1个文件
已修改4个文件
356 ■■■■ 文件已修改
DataLoader/CS/DBHelper.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/CS/MetaHelper.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/DataLoader.csproj 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/MainWindow.xaml 161 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/MainWindow.xaml.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/Model/CommonProp.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/Model/MetaType.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DataLoader/CS/DBHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
using DataLoader.Model;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Linq;
namespace DataLoader.CS
{
    /// <summary>
    /// æ•°æ®åº“帮助类
    /// </summary>
    public class DBHelper
    {
        // id, eventid, metaid, verid, name, type, guid, path, sizes, tab, rows, create_user, create_time, update_user, update_time, bak, geom, layer, depcode, dircode, ismeta, sensortype, acq_time, resolution, gridsize, coor_sys, epsg, h_datum, mata_type, bands, band_type, ct
        public static string insertMeta = "insert into lf.sys_meta (eventid, metaid, verid, name, type, guid, path, sizes, tab, rows, create_user, create_time, bak, geom, layer, depcode, dircode, ismeta, sensortype, acq_time, resolution, gridsize, coor_sys, epsg, h_datum, mata_type, bands, band_type, ct) values (@eventid, @metaid, @verid, @name, @type, @guid, @path, @sizes, @tab, @rows, @create_user, now(), @bak, @geom, @layer, @depcode, @dircode, @ismeta, @sensortype, @acq_time, @resolution, @gridsize, @coor_sys, @epsg, @h_datum, @mata_type, @bands, @band_type, @ct) returning id";
        /// <summary>
        /// æ’入元数据
        /// </summary>
        public int InsertMeta(List<SysMeta> list)
        {
            PostgreHelper db = Tools.DBHelper;
            int count = 0;
            foreach (SysMeta meta in list)
            {
                List<DbParameter> args = Tools.GetParams<SysMeta>(insertMeta, meta)
                    ;
                int id = db.GetIntScalar(insertMeta, args.ToArray());
                if (id > 0) count++;
            }
            return count;
        }
        /// <summary>
        /// æ ¹æ®GUID查询路径
        /// </summary>
        public static string GetFilePathByGuid(string guid)
        {
            string sql = "select path from lf.sys_meta where guid = @guid limit 1";
            DbParameter dp = new NpgsqlParameter("@guid", guid);
            object obj = Tools.DBHelper.GetScalar(sql, dp);
            return obj == null ? null : obj.ToString();
        }
        /// <summary>
        /// æ–‡ä»¶æ˜¯/否存在
        /// </summary>
        public static bool IsFileExists(string guid)
        {
            string sql = "select count(*) from lf.sys_meta where guid = @guid";
            DbParameter dp = new NpgsqlParameter("@guid", guid);
            object obj = Tools.DBHelper.GetScalar(sql, dp);
            return obj != null && Convert.ToInt32(obj) > 0;
        }
        /// <summary>
        /// èŽ·å–ç›®å½•åˆ—è¡¨
        /// </summary>
        public static List<SysDir> GetDirList()
        {
            string sql = "select * from lf.sys_dir";
            DataTable dt = Tools.DBHelper.GetDataTable(sql);
            if (null == dt || dt.Rows.Count == 0) return null;
            List<SysDir> list = ModelHandler.FillModel<SysDir>(dt);
            return list;
        }
    }
}
DataLoader/CS/MetaHelper.cs
ÎļþÒÑɾ³ý
DataLoader/DataLoader.csproj
@@ -135,13 +135,14 @@
    <Compile Include="CS\Importor.cs" />
    <Compile Include="CS\LogOut.cs" />
    <Compile Include="CS\MD5Helper.cs" />
    <Compile Include="CS\MetaHelper.cs" />
    <Compile Include="CS\DBHelper.cs" />
    <Compile Include="CS\StaticData.cs" />
    <Compile Include="CS\Tools.cs" />
    <Compile Include="Model\CommonProp.cs" />
    <Compile Include="CS\ModelHandler.cs" />
    <Compile Include="CS\NtstWeb.cs" />
    <Compile Include="CS\PostgreHelper.cs" />
    <Compile Include="Model\MetaType.cs" />
    <Compile Include="Model\SysDir.cs" />
    <Compile Include="Model\ViewData.cs" />
    <Compile Include="LoginWin.xaml.cs">
DataLoader/MainWindow.xaml
@@ -3,7 +3,7 @@
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="700" Width="900"
        Loaded="Window_Loaded"
        Title="影像数据入库 v1.5" WindowStartupLocation="CenterScreen">
        Title="数据入库 v1.5" WindowStartupLocation="CenterScreen">
    <Window.Resources>
        <Style x:Key="btn" TargetType="Button">
            <Setter Property="Background" Value="#005699"/>
@@ -26,9 +26,111 @@
            <Setter Property="Height" Value="30"/>
            <Setter Property="FontSize" Value="20"/>
        </Style>
        <!--Combox-->
        <Style TargetType="ToggleButton" x:Key="ComboxStyleBtn">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <!--下拉按钮内部背景色-->
                        <Border x:Name="Back" BorderThickness="1" BorderBrush="Transparent">
                            <!--下拉按钮内边框-->
                            <Path Name="PathFill" Fill="#136BAF" Width="10" Height="6" StrokeThickness="0" Data="M5,0 L10,10 L0,10 z" RenderTransformOrigin="0.5,0.5" Stretch="Fill">
                                <Path.RenderTransform>
                                    <TransformGroup>
                                        <ScaleTransform/>
                                        <SkewTransform/>
                                        <RotateTransform Angle="180"/>
                                        <TranslateTransform/>
                                    </TransformGroup>
                                </Path.RenderTransform>
                            </Path>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter TargetName="PathFill" Property="Fill" Value="White"></Setter>
                                <Setter TargetName="Back" Property="Background" Value="#136BAF"></Setter>
                                <Setter TargetName="Back" Property="BorderBrush" Value="#136BAF"></Setter>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style TargetType="ComboBox" x:Key="ComboBoxStyle">
            <Setter Property="ItemContainerStyle">
                <Setter.Value>
                    <!--ComBoxItem-->
                    <Style TargetType="ComboBoxItem">
                        <Setter Property="MinHeight" Value="30"></Setter>
                        <Setter Property="MinWidth" Value="60"></Setter>
                        <Setter Property="Foreground" Value="White"></Setter>
                        <Setter Property="FontWeight" Value="Bold"></Setter>
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="ComboBoxItem">
                                    <Border Name="Back" Background="Transparent"  BorderThickness="0,0,0,0" BorderBrush="#136BAF" >
                                        <ContentPresenter ContentSource="{Binding Source}" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0 0 30 0"></ContentPresenter>
                                    </Border>
                                    <ControlTemplate.Triggers>
                                        <Trigger Property="IsMouseOver" Value="True">
                                            <Setter TargetName="Back" Property="Background" Value="LightGray"></Setter>
                                        </Trigger>
                                        <!--下拉框背景色-->
                                        <Trigger Property="IsHighlighted" Value="True">
                                            <Setter TargetName="Back" Property="Background" Value="Transparent"></Setter>
                                        </Trigger>
                                    </ControlTemplate.Triggers>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Setter.Value>
            </Setter>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ComboBox">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="0.7*"/>
                                <ColumnDefinition Width="0.3*" MaxWidth="30"/>
                            </Grid.ColumnDefinitions>
                            <!--文字区域背景和边线样式-->
                            <TextBox Background="Transparent" HorizontalContentAlignment="Center" VerticalAlignment="Center"  Grid.Column="0" Foreground="White" BorderBrush="#136BAF" BorderThickness="0,0,0,0" IsReadOnly="{TemplateBinding IsReadOnly}" Text="{TemplateBinding Text}"></TextBox>
                            <Border  Grid.Column="0" BorderThickness="1,1,0,1" BorderBrush="#136BAF" CornerRadius="0,0,0,0">
                            </Border>
                            <!--右侧下拉button设置-->
                            <Border Grid.Column="1" BorderThickness="0,1,1,1" BorderBrush="#136BAF" CornerRadius="0,0,0,0">
                                <ToggleButton BorderThickness="3" BorderBrush="#136BAF" Style="{StaticResource ComboxStyleBtn}" IsChecked="{Binding Path=IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" ClickMode="Press"></ToggleButton>
                            </Border>
                            <!--弹出popup整体设置-->
                            <Popup IsOpen="{TemplateBinding IsDropDownOpen}" Placement="Bottom" x:Name="Popup" Focusable="False" AllowsTransparency="True" PopupAnimation="Slide" >
                                <!--弹出popup边框-->
                                <Border CornerRadius="1" BorderBrush="#136BAF" BorderThickness="1,0,1,1" MaxHeight="{TemplateBinding MaxDropDownHeight}" MinWidth="{TemplateBinding ActualWidth}" x:Name="DropDown" SnapsToDevicePixels="True">
                                    <Border.Effect>
                                        <DropShadowEffect Color="Black" BlurRadius="2" ShadowDepth="0" Opacity="1"/>
                                    </Border.Effect>
                                    <!--下拉幕布边界背景设置 MaxHeight="{TemplateBinding MaxDropDownHeight}"-->
                                    <ScrollViewer Margin="0,0,0,0"   SnapsToDevicePixels="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" BorderBrush="#136BAF" BorderThickness="2" >
                                        <!-- StackPanel ç”¨äºŽæ˜¾ç¤ºå­çº§ï¼Œæ–¹æ³•是将 IsItemsHost è®¾ç½®ä¸º True -->
                                        <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained" Background="#001f55" />
                                    </ScrollViewer>
                                </Border>
                            </Popup>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style TargetType="ListBoxItem">
            <Setter Property="Height" Value="35"/>
            <Setter Property="BorderThickness" Value="0"/>
        </Style>
    </Window.Resources>
    <Grid x:Name="gMain">
        <Grid.RowDefinitions>
            <RowDefinition Height="40"/>
            <RowDefinition Height="40"/>
            <RowDefinition Height="40"/>
            <RowDefinition Height="40"/>
            <RowDefinition Height="40"/>
@@ -38,32 +140,53 @@
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="4*" />
            <ColumnDefinition Width="5*" />
            <ColumnDefinition Width="20*" />
            <ColumnDefinition Width="4*" />
            <ColumnDefinition Width="5*" />
            <ColumnDefinition Width="20*" />
            <ColumnDefinition Width="5*" />
        </Grid.ColumnDefinitions>
        <Label Grid.Row="0" Grid.Column="0" Content="用户名:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="0" Grid.Column="1" Style="{StaticResource tb}" IsReadOnly="True" x:Name="tbUname"/>
        <Label Grid.Row="0" Grid.Column="2" Content="令牌:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="0" Grid.Column="3"  Style="{StaticResource tb}" IsReadOnly="True" x:Name="tbToken"/>
        <Label Grid.Row="0" Grid.Column="0" Content="用户ID:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="0" Grid.Column="1"  Style="{StaticResource tb}" IsReadOnly="True" x:Name="tbUid"/>
        <Label Grid.Row="0" Grid.Column="2" Content="用户名:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="0" Grid.Column="3" Style="{StaticResource tb}" IsReadOnly="True" x:Name="tbUname"/>
        <Button Grid.Row="0" Grid.Column="4" Content="登 å½•" Style="{StaticResource btn}" Click="Login_MouseLeftButtonDown"/>
        <Label Grid.Row="1" Grid.Column="0" Content="资源目录:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="3" Style="{StaticResource tb}" x:Name="tbDir"/>
        <Button Grid.Row="1" Grid.Column="4" Content="选 æ‹©" Style="{StaticResource btn}" Click="Dir_MouseLeftButtonDown" x:Name="btnDir"/>
        <Label Grid.Row="1" Grid.Column="0" Content="令牌:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="1" Grid.Column="1"  Style="{StaticResource tb}" IsReadOnly="True" x:Name="tbToken"/>
        <Label Grid.Row="1" Grid.Column="2" Content="元数据类型:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <!--<TextBox Grid.Row="1" Grid.Column="3" Style="{StaticResource tb}" x:Name="tbAcqTim2e"/>-->
        <!--<ComboBox Grid.Row="1" Grid.Column="3" IsReadOnly="True" DisplayMemberPath="Name" Style="{StaticResource ComboBoxStyle}" Width="320" Height="30" HorizontalAlignment="Left" x:Name="cbMetaType"></ComboBox>-->
        <ComboBox Grid.Row="1" Grid.Column="3" HorizontalAlignment="Left" VerticalContentAlignment="Center" Background="White" SelectedIndex="0" Width="322" Height="38" BorderThickness="0" x:Name="cbMetaType">
            <ComboBoxItem>请选择</ComboBoxItem>
            <ComboBoxItem>数字正射影像图</ComboBoxItem>
            <ComboBoxItem>数字高程模型</ComboBoxItem>
            <ComboBoxItem>单波段栅格数据</ComboBoxItem>
            <ComboBoxItem>多光谱栅格数据</ComboBoxItem>
            <ComboBoxItem>高光谱栅格数据</ComboBoxItem>
            <ComboBoxItem>矢量数据</ComboBoxItem>
            <ComboBoxItem>三维模型</ComboBoxItem>
        </ComboBox>
        <Label Grid.Row="2" Grid.Column="0" Content="数据目录:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3" Style="{StaticResource tb}" x:Name="tbSource"/>
        <Button Grid.Row="2" Grid.Column="4" Content="选 æ‹©" Style="{StaticResource btn}" Click="Source_MouseLeftButtonDown" x:Name="btnSource"/>
        <Label Grid.Row="2" Grid.Column="0" Content="传感器类型:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="2" Grid.Column="1" Style="{StaticResource tb}" x:Name="tbSensorType"/>
        <Label Grid.Row="2" Grid.Column="2" Content="采集时间:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="2" Grid.Column="3" Style="{StaticResource tb}" x:Name="tbAcqTime"/>
        <Label Grid.Row="3" Grid.Column="0" Content="入库目录:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" Style="{StaticResource tb}" x:Name="tbTarget"/>
        <Button Grid.Row="3" Grid.Column="4" Content="选 æ‹©" Style="{StaticResource btn}" Click="Target_MouseLeftButtonDown" x:Name="btnTarget"/>
        <Label Grid.Row="3" Grid.Column="0" Content="资源目录:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" Style="{StaticResource tb}" x:Name="tbDir"/>
        <Button Grid.Row="3" Grid.Column="4" Content="选 æ‹©" Style="{StaticResource btn}" Click="Dir_MouseLeftButtonDown" x:Name="btnDir"/>
        <ScrollViewer Grid.Row="4" Grid.RowSpan="3" Grid.Column="0" Grid.ColumnSpan="4" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="2">
        <Label Grid.Row="4" Grid.Column="0" Content="数据目录:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="3" Style="{StaticResource tb}" x:Name="tbSource"/>
        <Button Grid.Row="4" Grid.Column="4" Content="选 æ‹©" Style="{StaticResource btn}" Click="Source_MouseLeftButtonDown" x:Name="btnSource"/>
        <Label Grid.Row="5" Grid.Column="0" Content="入库目录:" VerticalAlignment="Center" HorizontalAlignment="Right" />
        <TextBox Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="3" Style="{StaticResource tb}" x:Name="tbTarget"/>
        <Button Grid.Row="5" Grid.Column="4" Content="选 æ‹©" Style="{StaticResource btn}" Click="Target_MouseLeftButtonDown" x:Name="btnTarget"/>
        <ScrollViewer Grid.Row="6" Grid.RowSpan="3" Grid.Column="0" Grid.ColumnSpan="4" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Margin="5 5 0 5">
            <ListView x:Name="lvView">
                <ListView.View>
                    <GridView>
@@ -84,7 +207,7 @@
            </ListView>
        </ScrollViewer>
        <Button x:Name="btnLoad" Grid.Row="4" Grid.Column="4" Content="加 è½½" Style="{StaticResource btn}" Click="Load_MouseLeftButtonDown"/>
        <Button x:Name="btnImport" Grid.Row="5" Grid.Column="4" Content="导 å…¥" Style="{StaticResource btn}" VerticalAlignment="Top" Click="Import_MouseLeftButtonDown"/>
        <Button x:Name="btnLoad" Grid.Row="6" Grid.Column="4" Content="加 è½½" Style="{StaticResource btn}" Click="Load_MouseLeftButtonDown"/>
        <Button x:Name="btnImport" Grid.Row="7" Grid.Column="4" Content="导 å…¥" Style="{StaticResource btn}" VerticalAlignment="Top" Click="Import_MouseLeftButtonDown"/>
    </Grid>
</Window>
DataLoader/MainWindow.xaml.cs
@@ -30,6 +30,8 @@
            CommonProp.Owner = this;
            CommonProp.Init();
            //this.cbMetaType.ItemsSource= GetMetaTypes();
            //this.cbMetaType.SelectedIndex= 0;
            this.btnLoad.IsEnabled = false;
            this.btnImport.IsEnabled = false;
@@ -40,6 +42,21 @@
            LogOut.Info("************  åº”用程序启动成功! ************");
        }
        private List<MetaType> GetMetaTypes()
        {
            List<MetaType> list = new List<MetaType>();
            list.Add(new MetaType("默认"));
            list.Add(new MetaType("数字正射影像图"));
            list.Add(new MetaType("数字高程模型"));
            list.Add(new MetaType("单波段栅格数据"));
            list.Add(new MetaType("多光谱栅格数据"));
            list.Add(new MetaType("高光谱栅格数据"));
            list.Add(new MetaType("矢量图层"));
            list.Add(new MetaType("三维模型"));
            return list;
        }
        // è®¾ç½®
        private void Login_MouseLeftButtonDown(object sender, RoutedEventArgs e)
        {
DataLoader/Model/CommonProp.cs
@@ -95,6 +95,16 @@
        /// </summary>
        public static string TargetPath;
        /// <summary>
        /// ä¼ æ„Ÿå™¨ç±»åž‹
        /// </summary>
        public static string SensorType;
        /// <summary>
        /// é‡‡é›†æ—¶é—´
        /// </summary>
        public static DateTime AcqTime;
        /*private string _sourcePath;
        /// <summary>
DataLoader/Model/MetaType.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataLoader.Model
{
    [Serializable]
    public class MetaType
    {
        public MetaType() { }
        public MetaType(string name)
        {
            this.Name = name;
            this.Value = "默认" == name ? "" : name;
        }
        public string Name { set; get; }
        public string Value { set; get; }
    }
}