ソースを参照

同步程序修改

lqq 8 年 前
コミット
4b2b1903ae

+ 3 - 0
Winsoft.GOV.ConsoleSyncData/App.config

@@ -3,6 +3,9 @@
   <startup>
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
   </startup>
+  <appSettings>
+    <add key="UpdateDate" value="2017/7/1 12:09:47" />
+  </appSettings>
   <connectionStrings>
     <add name="gov" providerName="MySql.Data.MySqlClient" connectionString="Database=gov;Data Source=127.0.0.1;UserId=root;Password=root;pooling=false;CharSet=utf8;Port=3306;allow zero datetime=true"/>
     <add name="qlk" providerName="MySql.Data.MySqlClient" connectionString="Database=qlsx;Data Source=172.28.100.109;UserId=root;Password=root;pooling=false;CharSet=utf8;Port=3306;allow zero datetime=true"/>

+ 43 - 2
Winsoft.GOV.ConsoleSyncData/Program.cs

@@ -26,10 +26,43 @@ namespace Winsoft.GOV.ConsoleSyncData
                     IEnumerable<PowerMattersDetail> pms = QLSXProvider.Instance.Select(t);
                     foreach (PowerMattersDetail pm in pms)
                     {
-                        Console.WriteLine(String.Format("QL_INNER_CODE:{0}; UPDATE_DATE:{1}", pm.QL_INNER_CODE, pm.UPDATE_DATE.ToString()));
-                        if (!PowerMettersBaseProvider.Instance.IsExistByQL_INNER_CODE(pm.QL_INNER_CODE))
+                        if (pm.QL_NAME.First<char>() == '$')
+                        {
+                            Console.WriteLine(String.Format("忽略--权力单位:{0}; 数据推送时间:{1}", pm.QL_DEP, pm.UPDATE_DATE.ToString()));
                             continue;
+                        }
+                        Branch b = BranchProvider.Instance.Find(pm.OUGUID);
+                        if (b == null)
+                        {
+                            b = new Branch()
+                            {
+                                ShortName = pm.QL_DEP,
+                                GUID = pm.OUGUID,
+                                Position = 999
+                            };
+                            BranchProvider.Instance.Insert(b);
+                        }
                         PowerMettersDetailProvider.Instance.UpdateOrInsert(pm);
+                        PowerMattersBase p = new PowerMattersBase()
+                        {
+                            QL_NAME = pm.QL_NAME,
+                            QL_INNER_CODE = pm.QL_INNER_CODE,
+                            QL_DEP = b.ShortName,
+                            OUGUID = pm.OUGUID,
+                            QL_STATE = pm.QL_STATE
+                        };
+                        
+                        if (!PowerMettersBaseProvider.Instance.IsExistByQL_INNER_CODE(pm.QL_INNER_CODE))
+                        {
+                            Console.WriteLine(String.Format("新增--权力单位:{0}; 数据推送时间:{1}", p.QL_DEP, pm.UPDATE_DATE.ToString()));
+                            PowerMettersBaseProvider.Instance.Insert(p);
+                        }                            
+                        else
+                        {
+                            Console.WriteLine(String.Format("更新--权力单位:{0}; 数据推送时间:{1}", p.QL_DEP, pm.UPDATE_DATE.ToString()));
+                            PowerMettersBaseProvider.Instance.Update(p);
+                        }
+                                               
                     }
 
                     if (pms != null && pms.Count() > 0)
@@ -65,9 +98,17 @@ namespace Winsoft.GOV.ConsoleSyncData
             }
             else
             {
+                
                 DateTime t2 = PowerMettersDetailProvider.Instance.FindLastUpdateDate();
                 if (DateTime.TryParse(config.AppSettings.Settings["UpdateDate"].Value, out t))
+                {
+                    Console.WriteLine("是否指定开始时间?");
+                    if (Console.ReadKey().KeyChar == 'y')
+                    {
+                        return t;
+                    }
                     return t > t2 ? t : t2;
+                }                    
                 else
                     return t2;
             }

+ 2 - 0
Winsoft.GOV.Framework/Model/Branch.cs

@@ -17,6 +17,8 @@ namespace Winsoft.GOV.Framework.Model
         [DataMember]
         public string ShortName { get; set; }
 
+        public int Position { get; set; }
+
         public override string ToString()
         {
             return ShortName;

+ 2 - 0
Winsoft.GOV.Framework/Model/PowerMattersBase.cs

@@ -29,6 +29,8 @@ namespace Winsoft.GOV.Framework.Model
         [DataMember]
         public string QL_NAME { get; set; }
 
+        public string QL_STATE { get; set; }
+
         public int ApplyCode { get; set; }
         public string OUGUID { get; set; }
         public string QL_DEP { get; set; }

+ 1 - 1
Winsoft.GOV.Framework/Provider/BranchProvider.cs

@@ -36,7 +36,7 @@ namespace Winsoft.GOV.Framework.Provider
 
         public void Insert(Branch b)
         {
-            const string sql = "insert branch(guid, shortname) values(@guid, @shortname);";
+            const string sql = "insert branch(guid, shortname, position) values(@guid, @shortname, @position);";
             using (IDbConnection connection = GetDbConnection())
             {
                 connection.Execute(sql, b);

+ 20 - 53
Winsoft.GOV.Framework/Provider/PowerMettersBaseProvider.cs

@@ -20,12 +20,13 @@ namespace Winsoft.GOV.Framework.Provider
                            + "QL_NAME varchar(200),"
                            + "QL_INNER_CODE varchar(50),"
                            + "QL_DEP varchar(50),"
-                           + "OUGUID varchar(50)"
+                           + "OUGUID varchar(50),"
+                           + "QL_STATE varchar(1) DEFAULT '1'"
                            + "); "
                            + "call add_index('PowerMattersBase', 'index1', 'index1(QL_INNER_CODE, OUGUID)'); "
                            + "call add_index('PowerMattersBase', 'index2', 'index2(QL_INNER_CODE)'); "
-                           + "call add_index('PowerMattersBase', 'index3', 'index3(OUGUID)'); ";
-                           //+ "call add_index('PowerMattersBase', 'index4', 'index4(QL_NAME)'); ";
+                           + "call add_index('PowerMattersBase', 'index3', 'index3(OUGUID)'); "
+                           + "call add_index('PowerMattersBase', 'index4', 'index4(QL_STATE, OUGUID); ";
             using(var con = GetDbConnection())
             {
                 con.Execute(sql);
@@ -55,7 +56,8 @@ namespace Winsoft.GOV.Framework.Provider
 
         public IEnumerable<PowerMattersBase> FindByBranchGUID(string guid)
         {
-            string sql = "select " + cols + " from PowerMattersBase where ouguid=@guid";
+            //string sql = "select " + cols + " from powerMettersDetail where  QL_INNER_CODE in (select QL_INNER_CODE PowerMattersBase where ouguid=@guid) and QL_STATE = '1'";
+            string sql = "select " + cols + " from PowerMattersBase where  ouguid=@guid and QL_STATE = '1'";
             using (IDbConnection connection = GetDbConnection())
             {
                 return connection.Query<PowerMattersBase>(sql, new { guid = guid });
@@ -64,7 +66,7 @@ namespace Winsoft.GOV.Framework.Provider
 
         public IEnumerable<PowerMattersBase> Find(string guid, string ql_kind)
         {
-            string sql = "select " + cols + " from powerMettersDetail where OUGUID=@guid and ql_kind = @ql_kind and QL_INNER_CODE in (SELECT QL_INNER_CODE FROM PowerMattersBase WHERE ouguid=@guid)";
+            string sql = "select " + cols + " from powerMettersDetail where OUGUID=@guid and ql_kind = @ql_kind and QL_INNER_CODE in (SELECT QL_INNER_CODE FROM PowerMattersBase WHERE ouguid=@guid and ql_state='1')";
             using (IDbConnection connection = GetDbConnection())
             {
                 return connection.Query<PowerMattersBase>(sql, new { guid = guid, ql_kind = ql_kind });
@@ -73,7 +75,7 @@ namespace Winsoft.GOV.Framework.Provider
 
         public IEnumerable<PowerMattersBase> Search(string ql_name, int itemIndex, int size)
         {
-            string sql = "select " + cols + " from PowerMattersBase where ql_name like @ql_name";
+            string sql = "select " + cols + " from PowerMattersBase where ql_name like @ql_name and ql_state='1'";
             return GetItemList(sql, itemIndex, size, new { ql_name = "%" + ql_name + "%" });
         }
 
@@ -91,7 +93,7 @@ namespace Winsoft.GOV.Framework.Provider
         {
             string select = "select count(*) from PowerMattersBase where QL_INNER_CODE=@QL_INNER_CODE and OUGUID=@OUGUID;";
             string update = "update PowerMattersBase set QL_NAME=@QL_NAME, QL_DEP=@QL_DEP where QL_INNER_CODE=@QL_INNER_CODE and OUGUID=@OUGUID;";
-            string insert = "insert PowerMattersBase(QL_NAME, QL_INNER_CODE, OUGUID, QL_DEP) values(@QL_NAME, @QL_INNER_CODE, @OUGUID, @QL_DEP);";
+            string insert = "insert PowerMattersBase(QL_NAME, QL_INNER_CODE, OUGUID, QL_DEP, QL_STATE) values(@QL_NAME, @QL_INNER_CODE, @OUGUID, @QL_DEP, @QL_STATE);";
 
             using (var conn = GetDbConnection())
             {
@@ -115,56 +117,21 @@ namespace Winsoft.GOV.Framework.Provider
 
         public void Update(PowerMattersBase p)
         {
-            //const string sql = "UPDATE `powermettersbase` "
-            //                    + "SET "
-            //                    + "`QL_MAINITEM_ID` = @QL_MAINITEM_ID, "
-            //                    + "`QL_SUBITEM_ID` = @QL_SUBITEM_ID, "
-            //                    + "`QL_NAME` = @QL_NAME, "
-            //                    + "`QL_KIND` = @QL_KIND, "
-            //                    + "`QL_STATE` = @QL_STATE, "
-            //                    + "`OUGUID` = @OUGUID, "
-            //                    + "`QL_DEP` = @QL_DEP, "
-            //                    + "`UPDATE_DATE` = @UPDATE_DATE, "
-            //                    + "`APPLYERMIN_COUNT_DESC` = @APPLYERMIN_COUNT_DESC "
-            //                    + " WHERE `ROWGUID` = @ROWGUID; ";
-            //using (IDbConnection connection = GetDbConnection())
-            //{
-            //    connection.Execute(sql, p);
-            //}
+            string update = "update PowerMattersBase set QL_NAME=@QL_NAME, QL_DEP=@QL_DEP, QL_STATE=@QL_STATE where QL_INNER_CODE=@QL_INNER_CODE and OUGUID=@OUGUID;";
+            using (IDbConnection connection = GetDbConnection())
+            {
+                connection.Execute(update, p);
+            }
         }
 
         public void Insert(PowerMattersBase p)
         {
-            //string sql = "INSERT INTO `powermettersbase`"
-            //            + "(`ROWGUID`, "
-            //            + "`QL_MAINITEM_ID`, "
-            //            + "`QL_SUBITEM_ID`, "
-            //            + "`QL_NAME`, "
-            //            + "`QL_KIND`, "
-            //            + "`QL_STATE`, "
-            //            + "`OUGUID`, "
-            //            + "`ShortName`, "
-            //            + "`QL_DEP`, "
-            //            + "`UPDATE_DATE`, "
-            //            + "`IsOnceRun`, "
-            //            + "`APPLYERMIN_COUNT_DESC`) "
-            //            + "VALUES"
-            //            + "(@ROWGUID, "
-            //            + "@QL_MAINITEM_ID, "
-            //            + "@QL_SUBITEM_ID, "
-            //            + "@QL_NAME, "
-            //            + "@QL_KIND, "
-            //            + "@QL_STATE, "
-            //            + "@OUGUID, "
-            //            + "@ShortName, "
-            //            + "@QL_DEP, "
-            //            + "@UPDATE_DATE, "
-            //            + "@IsOnceRun, "
-            //            + "@APPLYERMIN_COUNT_DESC); ";
-            //using (IDbConnection connection = GetDbConnection())
-            //{
-            //    connection.Execute(sql, p);
-            //}
+            string insert = "insert PowerMattersBase(QL_NAME, QL_INNER_CODE, OUGUID, QL_DEP, QL_STATE) values(@QL_NAME, @QL_INNER_CODE, @OUGUID, @QL_DEP, @QL_STATE);";
+
+            using (IDbConnection connection = GetDbConnection())
+            {
+                connection.Execute(insert, p);
+            }
         }
 
         public bool IsOnceRun(string ql_inner_code)

+ 0 - 1
Winsoft.GOV.Framework/Provider/PowerMettersDetailProvider.cs

@@ -246,7 +246,6 @@ namespace Winsoft.GOV.Framework.Provider
                 IEnumerable<string> tmp = connection.Query<string>(sql, p);
                 if (tmp != null && tmp.Count() > 0)
                 {
-                    Console.WriteLine("更新:" + p.QL_INNER_CODE);
                     sql = "UPDATE `powermettersdetail` " +
                             "SET " +
                             "`ROWGUID` = @ROWGUID, " +

+ 4 - 4
Winsoft.GOV.ImportDataForm/App.config

@@ -4,9 +4,9 @@
         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
     </startup>
   <connectionStrings>
-    <!--<add name="gov" providerName="MySql.Data.MySqlClient" connectionString="Database=gov;Data Source=183.134.79.238;UserId=ImportUser;Password=zjwskj@)!$123456;pooling=false;CharSet=utf8;Port=18889;allow zero datetime=true"/>
-    <add name="qlk" providerName="MySql.Data.MySqlClient" connectionString="Database=qlsx;Data Source=172.28.100.109;UserId=root;Password=root;pooling=false;CharSet=utf8;Port=3306;allow zero datetime=true"/>-->
-    <add name="gov" providerName="MySql.Data.MySqlClient" connectionString="Database=gov;Data Source=127.0.0.1;UserId=root;Password=root;pooling=false;CharSet=utf8;Port=3306;allow zero datetime=true; Connect Timeout=600"/>
-    <add name="qlk" providerName="MySql.Data.MySqlClient" connectionString="Database=gov;Data Source=127.0.0.1;UserId=root;Password=root;pooling=false;CharSet=utf8;Port=3306;allow zero datetime=true; Connect Timeout=600"/>
+    <add name="gov" providerName="MySql.Data.MySqlClient" connectionString="Database=gov;Data Source=183.134.79.238;UserId=ImportUser;Password=zjwskj@)!$123456;pooling=false;CharSet=utf8;Port=18889;allow zero datetime=true"/>
+    <add name="qlk" providerName="MySql.Data.MySqlClient" connectionString="Database=qlsx;Data Source=172.28.100.109;UserId=root;Password=root;pooling=false;CharSet=utf8;Port=3306;allow zero datetime=true"/>
+    <!--<add name="gov" providerName="MySql.Data.MySqlClient" connectionString="Database=gov;Data Source=127.0.0.1;UserId=root;Password=root;pooling=false;CharSet=utf8;Port=3306;allow zero datetime=true; Connect Timeout=600"/>
+    <add name="qlk" providerName="MySql.Data.MySqlClient" connectionString="Database=gov;Data Source=127.0.0.1;UserId=root;Password=root;pooling=false;CharSet=utf8;Port=3306;allow zero datetime=true; Connect Timeout=600"/>-->
   </connectionStrings>
 </configuration>

+ 6 - 0
Winsoft.GOV.Test/Program.cs

@@ -14,6 +14,12 @@ namespace Winsoft.GOV.Test
         {
             try
             {
+
+                //string s = "$主项";
+                //if (s.First<char>() == '$')
+                //    Console.WriteLine("能识别" + s.First<char>());
+                //Console.ReadKey();
+                //return;
                 IPowerMettersService service = new PowerMettersServiceClient();
 
                 Console.WriteLine("service.GetOnceRunBanchs()");