Pārlūkot izejas kodu

同步数据调整

章政 7 gadi atpakaļ
vecāks
revīzija
e18c8843d9

+ 47 - 56
UAS_CheckWork/Form1.Designer.cs

@@ -36,12 +36,11 @@
             this.btnConnect = new System.Windows.Forms.Button();
             this.lblState = new System.Windows.Forms.Label();
             this.showDataGrid = new System.Windows.Forms.DataGridView();
+            this.人员编号 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            this.考勤时间 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.getAllData = new System.Windows.Forms.Button();
-            this.saveData = new System.Windows.Forms.Button();
             this.allData = new System.Windows.Forms.BindingSource(this.components);
             this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
-            this.人员编号 = new System.Windows.Forms.DataGridViewTextBoxColumn();
-            this.考勤时间 = new System.Windows.Forms.DataGridViewTextBoxColumn();
             ((System.ComponentModel.ISupportInitialize)(this.showDataGrid)).BeginInit();
             ((System.ComponentModel.ISupportInitialize)(this.allData)).BeginInit();
             this.SuspendLayout();
@@ -49,45 +48,50 @@
             // label2
             // 
             this.label2.AutoSize = true;
-            this.label2.Location = new System.Drawing.Point(206, 31);
+            this.label2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.Location = new System.Drawing.Point(167, 17);
+            this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(44, 18);
+            this.label2.Size = new System.Drawing.Size(42, 21);
             this.label2.TabIndex = 14;
             this.label2.Text = "Port";
             // 
             // label1
             // 
             this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(36, 31);
+            this.label1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.Location = new System.Drawing.Point(24, 16);
+            this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(26, 18);
+            this.label1.Size = new System.Drawing.Size(25, 21);
             this.label1.TabIndex = 13;
             this.label1.Text = "IP";
             // 
             // txtPort
             // 
-            this.txtPort.Location = new System.Drawing.Point(259, 26);
-            this.txtPort.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.txtPort.Location = new System.Drawing.Point(215, 17);
+            this.txtPort.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
             this.txtPort.Name = "txtPort";
-            this.txtPort.Size = new System.Drawing.Size(54, 28);
+            this.txtPort.Size = new System.Drawing.Size(37, 21);
             this.txtPort.TabIndex = 12;
             this.txtPort.Text = "4370";
             // 
             // txtIP
             // 
-            this.txtIP.Location = new System.Drawing.Point(66, 26);
-            this.txtIP.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.txtIP.Location = new System.Drawing.Point(58, 17);
+            this.txtIP.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
             this.txtIP.Name = "txtIP";
-            this.txtIP.Size = new System.Drawing.Size(132, 28);
+            this.txtIP.Size = new System.Drawing.Size(99, 21);
             this.txtIP.TabIndex = 11;
             this.txtIP.Text = "192.168.253.201";
             // 
             // btnConnect
             // 
-            this.btnConnect.Location = new System.Drawing.Point(471, 23);
-            this.btnConnect.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.btnConnect.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.btnConnect.Location = new System.Drawing.Point(279, 15);
+            this.btnConnect.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
             this.btnConnect.Name = "btnConnect";
-            this.btnConnect.Size = new System.Drawing.Size(135, 30);
+            this.btnConnect.Size = new System.Drawing.Size(50, 25);
             this.btnConnect.TabIndex = 10;
             this.btnConnect.Text = "连接";
             this.btnConnect.UseVisualStyleBackColor = true;
@@ -97,11 +101,12 @@
             // 
             this.lblState.AutoSize = true;
             this.lblState.ForeColor = System.Drawing.Color.Crimson;
-            this.lblState.Location = new System.Drawing.Point(71, 84);
+            this.lblState.Location = new System.Drawing.Point(359, 22);
+            this.lblState.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
             this.lblState.Name = "lblState";
-            this.lblState.Size = new System.Drawing.Size(242, 18);
+            this.lblState.Size = new System.Drawing.Size(71, 12);
             this.lblState.TabIndex = 15;
-            this.lblState.Text = "Current State:Disconnected";
+            this.lblState.Text = "状态:未连接";
             // 
             // showDataGrid
             // 
@@ -112,42 +117,13 @@
             this.人员编号,
             this.考勤时间});
             this.showDataGrid.Enabled = false;
-            this.showDataGrid.Location = new System.Drawing.Point(26, 191);
-            this.showDataGrid.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.showDataGrid.Location = new System.Drawing.Point(17, 59);
+            this.showDataGrid.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
             this.showDataGrid.Name = "showDataGrid";
             this.showDataGrid.RowTemplate.Height = 30;
-            this.showDataGrid.Size = new System.Drawing.Size(590, 464);
+            this.showDataGrid.Size = new System.Drawing.Size(795, 377);
             this.showDataGrid.TabIndex = 16;
             // 
-            // getAllData
-            // 
-            this.getAllData.BackColor = System.Drawing.SystemColors.ControlLightLight;
-            this.getAllData.Location = new System.Drawing.Point(39, 122);
-            this.getAllData.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
-            this.getAllData.Name = "getAllData";
-            this.getAllData.Size = new System.Drawing.Size(274, 37);
-            this.getAllData.TabIndex = 17;
-            this.getAllData.Text = "获取考勤数据";
-            this.getAllData.UseVisualStyleBackColor = false;
-            this.getAllData.Click += new System.EventHandler(this.getAllData_Click);
-            // 
-            // saveData
-            // 
-            this.saveData.BackColor = System.Drawing.SystemColors.ControlLightLight;
-            this.saveData.Location = new System.Drawing.Point(471, 122);
-            this.saveData.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
-            this.saveData.Name = "saveData";
-            this.saveData.Size = new System.Drawing.Size(145, 37);
-            this.saveData.TabIndex = 18;
-            this.saveData.Text = "保存数据";
-            this.saveData.UseVisualStyleBackColor = false;
-            this.saveData.Click += new System.EventHandler(this.saveData_Click);
-            // 
-            // dataGridViewCheckBoxColumn1
-            // 
-            this.dataGridViewCheckBoxColumn1.HeaderText = "勾选";
-            this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1";
-            // 
             // 人员编号
             // 
             this.人员编号.DataPropertyName = "cl_emcode";
@@ -162,12 +138,28 @@
             this.考勤时间.Name = "考勤时间";
             this.考勤时间.Width = 200;
             // 
+            // getAllData
+            // 
+            this.getAllData.BackColor = System.Drawing.SystemColors.ControlLightLight;
+            this.getAllData.Location = new System.Drawing.Point(560, 18);
+            this.getAllData.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
+            this.getAllData.Name = "getAllData";
+            this.getAllData.Size = new System.Drawing.Size(102, 25);
+            this.getAllData.TabIndex = 17;
+            this.getAllData.Text = "同步考勤数据";
+            this.getAllData.UseVisualStyleBackColor = false;
+            this.getAllData.Click += new System.EventHandler(this.getAllData_Click);
+            // 
+            // dataGridViewCheckBoxColumn1
+            // 
+            this.dataGridViewCheckBoxColumn1.HeaderText = "勾选";
+            this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1";
+            // 
             // Form1
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(654, 677);
-            this.Controls.Add(this.saveData);
+            this.ClientSize = new System.Drawing.Size(823, 451);
             this.Controls.Add(this.getAllData);
             this.Controls.Add(this.showDataGrid);
             this.Controls.Add(this.lblState);
@@ -176,7 +168,7 @@
             this.Controls.Add(this.txtPort);
             this.Controls.Add(this.txtIP);
             this.Controls.Add(this.btnConnect);
-            this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
+            this.Margin = new System.Windows.Forms.Padding(2, 1, 2, 1);
             this.Name = "Form1";
             this.Text = "Form1";
             this.Load += new System.EventHandler(this.Form1_Load);
@@ -197,7 +189,6 @@
         private System.Windows.Forms.Label lblState;
         private System.Windows.Forms.DataGridView showDataGrid;
         private System.Windows.Forms.Button getAllData;
-        private System.Windows.Forms.Button saveData;
         private System.Windows.Forms.BindingSource allData;
         private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1;
         private System.Windows.Forms.DataGridViewTextBoxColumn 人员编号;

+ 21 - 10
UAS_CheckWork/Form1.cs

@@ -58,7 +58,6 @@ namespace UAS_CheckWork
             Cursor = Cursors.Default;
         }
 
-
         private void getAllData_Click(object sender, EventArgs e)
         {
             if (!bIsConnected)
@@ -67,7 +66,7 @@ namespace UAS_CheckWork
                 return;
             }
             InitGetInfo = new Thread(InPrint);
-            SetLoadingWindow stw = new SetLoadingWindow(InitGetInfo, "正在获取数据...");
+            SetLoadingWindow stw = new SetLoadingWindow(InitGetInfo, "正在同步数据...");
             stw.StartPosition = FormStartPosition.CenterParent;
             stw.ShowDialog();
         }
@@ -75,7 +74,6 @@ namespace UAS_CheckWork
         private void InPrint()
         {
             int idwErrorCode = 0;
-            //axCZKEM1.EnableDevice(iMachineNumber, false);
             //获取所有的考勤记录
             if (axCZKEM1.ReadGeneralLogData(iMachineNumber))
             {
@@ -93,16 +91,29 @@ namespace UAS_CheckWork
                 int minute = 0;//记录考勤分钟
                 int second = 0;//记录考勤秒
                 int workCode = 0; //记录workCode
+                List<string> cl_emcode = new List<string>();
+                List<string> cl_time = new List<string>();
+                StringBuilder sql = new StringBuilder();
+                sql.Append("insert into cardlog (cl_id,cl_emcode,cl_time) values (cardlog_seq.nextval,:cl_emcode,TO_DATE(:cl_time,'yyyy-MM-dd hh24:mi:ss'))");
+                int count = 0;
                 while (axCZKEM1.SSR_GetGeneralLogData(iMachineNumber, out enrollNumber, out verifyCode, out inoutMode, out year, out month, out day, out hour, out minute, out second, ref workCode))
                 {
+                    cl_emcode.Add(enrollNumber);
+                    cl_time.Add(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
+                    if (count % 1000 == 0)
+                    {
+                        dh.BatchInsert(sql.ToString(), new string[] { "cl_emcode", "cl_time" }, cl_emcode.ToArray(), cl_time.ToArray());
+                        cl_emcode.Clear();
+                        cl_time.Clear();
+                    }
+                    count = count + 1;
                     //将数据加入DataTable中
                     DataRow dr = dt.NewRow();
                     dr["cl_emcode"] = enrollNumber;
-                    Console.WriteLine("用户编号:"+enrollNumber);
                     dr["cl_time"] = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
-                    Console.WriteLine("签到时间:" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second);
                     dt.Rows.Add(dr);
                 }
+                dh.BatchInsert(sql.ToString(), new string[] { "cl_emcode", "cl_time" }, cl_emcode.ToArray(), cl_time.ToArray());
                 allData.DataSource = dt;
                 //显示
                 showDataGrid.DataSource = (DataTable)allData.DataSource;
@@ -112,26 +123,26 @@ namespace UAS_CheckWork
                 axCZKEM1.GetLastError(ref idwErrorCode);
                 MessageBox.Show("Unable to get data,ErrorCode=" + idwErrorCode.ToString(), "Error");
             }
-
         }
 
         private void Form1_Load(object sender, EventArgs e)
         {
             CheckForIllegalCrossThreadCalls = false;//可跨线程
+            StartPosition = FormStartPosition.CenterScreen;
             dh = new DataHelper();
         }
 
         private void saveData_Click(object sender, EventArgs e)
         {
             //点击保存数据
-            string lastTime = dh.getFieldDataByCondition("cardlog", "TO_CHAR(max(wl_indate),'yyyy-MM-dd hh24:mi:ss')","").ToString();
+            string lastTime = dh.getFieldDataByCondition("cardlog", "TO_CHAR(max(wl_indate),'yyyy-MM-dd hh24:mi:ss')", "1=1").ToString();
             //筛选数据
-            DataTable fd =  dh.filterDataTable((DataTable)allData.DataSource, "cl_time > '"+lastTime+"'");
+            DataTable fd = dh.filterDataTable((DataTable)allData.DataSource, "cl_time > '" + lastTime + "'");
             //插入数据库
             //新增的数据
             List<string> cl_emcode = new List<string>();
             List<string> cl_time = new List<string>();
-            for (int i=0;i<fd.Rows.Count;i++)
+            for (int i = 0; i < fd.Rows.Count; i++)
             {
                 cl_emcode.Add(fd.Rows[i]["cl_emcode"].ToString());
                 cl_time.Add(fd.Rows[i]["cl_time"].ToString());
@@ -139,7 +150,7 @@ namespace UAS_CheckWork
             //批量插入
             StringBuilder sql = new StringBuilder();
             sql.Append("insert into cardlog (cl_id,cl_emcode,cl_time) values (cardlog_seq.nextval,:cl_emcode,TO_DATE(:cl_time,'yyyy-MM-dd hh24:mi:ss'))");
-            dh.BatchInsert(sql.ToString(), new string[] { "cl_emcode", "cl_time"}, cl_emcode.ToArray(), cl_time.ToArray());
+            dh.BatchInsert(sql.ToString(), new string[] { "cl_emcode", "cl_time" }, cl_emcode.ToArray(), cl_time.ToArray());
         }
     }
 }

+ 6 - 0
UAS_CheckWork/Form1.resx

@@ -123,6 +123,12 @@
   <metadata name="考勤时间.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
+  <metadata name="人员编号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="考勤时间.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
   <metadata name="allData.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>

+ 1 - 1
UAS_CheckWork/Tools/DataHelper.cs

@@ -11,7 +11,7 @@ namespace Check.DataOperate
     class DataHelper
     {
         //系统默认的的连接字符串
-        private string ConnectionStrings = "Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=MES_TEST;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=117.25.180.218)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));";
+        private string ConnectionStrings = "Connection Timeout=0;Pooling=false;Password=select!#%*(;User ID=DATACENTER;Pooling=false;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.88)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));";
         //用户选择的数据库的连接字符串
         public static string DBConnectionString;
         public static OracleConnection connection = null;

+ 16 - 1
UAS_CheckWork/UAS_CheckWork.csproj

@@ -55,15 +55,27 @@
     <Compile Include="ChooseAllButton.Designer.cs">
       <DependentUpon>ChooseAllButton.cs</DependentUpon>
     </Compile>
-    <Compile Include="DataHelper.cs" />
     <Compile Include="Form1.cs">
       <SubType>Form</SubType>
     </Compile>
     <Compile Include="Form1.Designer.cs">
       <DependentUpon>Form1.cs</DependentUpon>
     </Compile>
+    <Compile Include="LoadingCircle.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="LoadingCircle.Designer.cs">
+      <DependentUpon>LoadingCircle.cs</DependentUpon>
+    </Compile>
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="SetLoadingWindow.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="SetLoadingWindow.Designer.cs">
+      <DependentUpon>SetLoadingWindow.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Tools\DataHelper.cs" />
     <EmbeddedResource Include="Form1.resx">
       <DependentUpon>Form1.cs</DependentUpon>
     </EmbeddedResource>
@@ -76,6 +88,9 @@
       <AutoGen>True</AutoGen>
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
+    <EmbeddedResource Include="SetLoadingWindow.resx">
+      <DependentUpon>SetLoadingWindow.cs</DependentUpon>
+    </EmbeddedResource>
     <None Include="Properties\Settings.settings">
       <Generator>SettingsSingleFileGenerator</Generator>
       <LastGenOutput>Settings.Designer.cs</LastGenOutput>