diff --git a/.vs/ICSSoft.FromERP/v16/.suo b/.vs/ICSSoft.FromERP/v16/.suo index d9031a3..ce8cf8e 100644 Binary files a/.vs/ICSSoft.FromERP/v16/.suo and b/.vs/ICSSoft.FromERP/v16/.suo differ diff --git a/ICSSoft.FromERP/App.config b/ICSSoft.FromERP/App.config index 5ed0c42..4fe4cf0 100644 --- a/ICSSoft.FromERP/App.config +++ b/ICSSoft.FromERP/App.config @@ -19,7 +19,8 @@ - + + diff --git a/ICSSoft.FromERP/Data/ICSHelper.cs b/ICSSoft.FromERP/Data/ICSHelper.cs index 1dabec1..5379115 100644 --- a/ICSSoft.FromERP/Data/ICSHelper.cs +++ b/ICSSoft.FromERP/Data/ICSHelper.cs @@ -156,6 +156,35 @@ WHERE Namespace='{0}' AND ClassName='{1}' AND TenantId='{2}' throw; } } + + public static string Time4Old(string Namespace, string Class, string WorkPoint, string sql, string TempTableName) + { + try + { + string value = @"DECLARE @LastTime datetime='2000-01-01' + --同步时间表不存在插入记录 + IF NOT EXISTS(SELECT ID FROM ICSERPTime WHERE Namespace='{0}' AND Class='{1}' AND WorkPoint='{2}') + BEGIN + INSERT INTO ICSERPTime VALUES('{0}','{1}',CONVERT(VARCHAR(10),@LastTime,23),CONVERT(VARCHAR(10),@LastTime,24),GETDATE(),'{2}',@LastTime) + END + --取出最后同步日期 + SELECT @LastTime=DateTime FROM ICSERPTime WHERE Namespace='{0}' AND Class='{1}' AND WorkPoint='{2}' + --根据时间过滤所需数据放入临时表,必须要有MTIME字段 + {3} + --从临时表取出最后修改日期 + SELECT @LastTime=MAX(MTIME) FROM {4} + --更新时间表同步日期 + UPDATE ICSERPTime SET Date=CONVERT(VARCHAR(10),@LastTime,23),Time=CONVERT(VARCHAR(10),@LastTime,24),DateTime=@LastTime,MTIME=GETDATE() WHERE Namespace='{0}' AND Class='{1}' AND WorkPoint='{2}' + "; + return string.Format(value, Namespace, Class, WorkPoint, sql, TempTableName); + } + catch (Exception ex) + { + log.Error(ex.ToString()); + throw; + } + } + public static string InsertSQL(string TableName, Dictionary values) { try @@ -384,6 +413,21 @@ WHERE Namespace='{0}' AND ClassName='{1}' AND TenantId='{2}' } } + public static DataTable GetOldERPDB(string conStr) + { + try + { + string value = @" +SELECT * FROM Sys_WorkPoint"; + return ExecuteTable(conStr, value); + } + catch (Exception ex) + { + log.Error(ex.ToString()); + throw; + } + } + public static object ExecuteScalar(string connString, string sql) { using (SqlConnection conn = new SqlConnection(connString)) diff --git a/ICSSoft.FromERP/Model/金杨/CapInputDto.cs b/ICSSoft.FromERP/Model/金杨/CapInputDto.cs index d669786..1d4ce96 100644 --- a/ICSSoft.FromERP/Model/金杨/CapInputDto.cs +++ b/ICSSoft.FromERP/Model/金杨/CapInputDto.cs @@ -31,11 +31,11 @@ namespace ICSSoft.FromERP.Model /// /// 内阻值 /// - public double ParamValue_Resistance { get; set; } + public decimal ParamValue_Resistance { get; set; } /// /// 高度值 /// - public double ParamValue_Height { get; set; } + public decimal ParamValue_Height { get; set; } /// /// 备注预留 /// diff --git a/ICSSoft.FromERP/SyncCas_Jinyang.cs b/ICSSoft.FromERP/SyncCas_Jinyang.cs index 298dbcd..5a83232 100644 --- a/ICSSoft.FromERP/SyncCas_Jinyang.cs +++ b/ICSSoft.FromERP/SyncCas_Jinyang.cs @@ -40,18 +40,16 @@ namespace ICSSoft.FromERP { string conStr = ICSHelper.GetConnectString(); string Namespace = this.GetType().Namespace; - //string Class = this.GetType().Name; - DataTable dt = ICSHelper.GetERPDB(conStr); + // string Class = this.GetType().Name; + DataTable dt = ICSHelper.GetOldERPDB(conStr); foreach (DataRow dr in dt.Rows) { - //var dtNowBegin = new DateTime(2000, 1, 1, 0, 0, 0);//默认开始时间 - //var dtNow = DateTime.Now; - //string erpName = ICSHelper.GetConfigString()["ERPDB"]; - //string TenantId = dr["TenantId"].ToString();//mes 组织 - //string TenantCode = dr["TenantCode"].ToString(); - //string ErpId = dr["ErpID"].ToString(); //erpID - //string Class = this.GetType().Name + TenantCode; - //erpName = string.Format(erpName, TenantId); + var dtNowBegin = new DateTime(2000, 1, 1, 0, 0, 0);//默认开始时间 + var dtNow = DateTime.Now; + string erpName = ICSHelper.GetConfigString()["ERPDB"]; + string WorkPoint = dr["WorkPointCode"].ToString(); + string Class = this.GetType().Name + WorkPoint; + erpName = string.Format(erpName, WorkPoint); //string sql0 = " SELECT top 1 ModifyDate FROM ICSERPTime where ClassName='" + Class + "'"; //var lastDate = ICSHelper.ExecuteScalar(conStr, sql0).ToDateOrNull(); @@ -60,31 +58,67 @@ namespace ICSSoft.FromERP // lastDate = dtNowBegin; //} - //string sql = @" select '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' as MTIME into #TempVendor "; - //sql = ICSHelper.Time(Namespace, Class, TenantId, sql, "#TempVendor"); - //sql += "DROP TABLE #TempVendor"; - //ICSHelper.ExecuteDate(conStr, sql); + // string sql = @" select '" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' as MTIME into #TempCas "; + string sql = @"if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#tempSyncCas_Jinyang') and type='U') +DROP TABLE #tempSyncCas_Jinyang + + +select * ,a.CreateTime as MTime into #tempSyncCas_Jinyang from [ICSDomeAmb] a with( nolock) + where a.CreateTime>=@LastTime + + select + a.* + from + ( + select a.* + ,row_number() over(partition by a.EqCode order by a.CreateTime desc) RowSeq + from #tempSyncCas_Jinyang a + + ) a + where a.RowSeq=1 + order by a.EqCode "; + + // sql = string.Format(sql, ErpId, erpName); + sql = ICSHelper.Time4Old(Namespace, Class, WorkPoint, sql, "#tempSyncCas_Jinyang"); + // sql += "DROP TABLE #tempSyncCas_Jinyang"; + + + // sql += @""; + + + var resultDT = ICSHelper.ExecuteTable(conStr, sql); List list = new List(); - var input = new CapInputDto(); - input.WorkshopID = "1"; - input.EquipmentID = "1"; - input.ProductNo = "1"; - input.LotNo = "1"; - input.CollectionTime = "1"; - input.ParamValue_Resistance = 12; - input.ParamValue_Height = 12; - input.Msg = ""; - - list.Add(input); + + + if (resultDT == null) + { + return; + } + foreach (DataRow item in resultDT.Rows) + { + var input = new CapInputDto(); + input.WorkshopID = "6"; + input.EquipmentID = item["EqCode"].ToStringExt(); + input.ProductNo = item["InvStd "].ToStringExt(); + input.LotNo = item["LotNO"].ToStringExt(); + input.CollectionTime = item["CreateTime"].ToString(); + input.ParamValue_Resistance = item["Free2"].ToDecimal(); + input.ParamValue_Height = item["Free1"].ToDecimal(); + input.Msg = ""; + + list.Add(input); + + } + var inputObj = JsonConvert.SerializeObject(list); //string url = ICSHelper.GetConfigString()["JinyangCapUrl"]+ @"?deipaaskeyauth=a5P1RTL4380zd9jpb57qXx63rdynUHN2"; - string url = ICSHelper.GetConfigString()["JinyangCapUrl"]; + string url = ICSHelper.GetConfigString()["JinyangCapUrl"]; var result = HttpHelper.HttpClientPost(url, inputObj, new Dictionary() { { "deipaaskeyauth", "a5P1RTL4380zd9jpb57qXx63rdynUHN2" } }).Result; - // var result = HttpHelper.HttpClientPost(url, inputObj).Result; + // var result = HttpHelper.HttpClientPost(url, inputObj).Result; if (result.Result == "OK") {