You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
5.8 KiB
158 lines
5.8 KiB
using ICSSoft.FromERP.Model;
|
|
using Newtonsoft.Json;
|
|
using Quartz;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace ICSSoft.FromERP
|
|
{
|
|
/// <summary>
|
|
/// 数采上传(金杨)
|
|
/// </summary>
|
|
public class SyncCas_Jinyang : IJob
|
|
{
|
|
private static object key = new object();
|
|
private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
public void Execute(IJobExecutionContext context)
|
|
{
|
|
try
|
|
{
|
|
lock (key)
|
|
{
|
|
log.Info("开始……………………………………………………………………");
|
|
Execute();
|
|
log.Info("结束……………………………………………………………………");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
log.Error(ex.ToString());
|
|
}
|
|
}
|
|
|
|
public void Execute()
|
|
{
|
|
try
|
|
{
|
|
string conStr = ICSHelper.GetConnectString();
|
|
string Namespace = this.GetType().Namespace;
|
|
// 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 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();
|
|
//if (!lastDate.HasValue)
|
|
//{
|
|
// lastDate = dtNowBegin;
|
|
//}
|
|
|
|
// 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<CapInputDto> list = new List<CapInputDto>();
|
|
|
|
|
|
if (resultDT == null)
|
|
{
|
|
return;
|
|
}
|
|
var insertSql = "";
|
|
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);
|
|
|
|
insertSql += @"
|
|
INSERT INTO [dbo].[ICSDomeAmb_cus]
|
|
([CreateTime]
|
|
,IPAddress
|
|
,UserCode
|
|
,[LotNO]
|
|
,[InvStd ]
|
|
,[EqCode]
|
|
,[Free1]
|
|
,[Free2]
|
|
)
|
|
values ('" + item["CreateTime"].ToString() + "','"+ item["IPAddress"].ToString() + "','"+ item["UserCode"].ToStringExt() + "','" + input.LotNo + "','" + input.ProductNo + "','" + input.EquipmentID + "','" + item["Free1"].ToStringExt() + "','"+ item["Free2"].ToStringExt() + "')";
|
|
}
|
|
|
|
if (list.Count == 0)
|
|
{
|
|
log.Info("没有数据行");
|
|
return;
|
|
}
|
|
var inputObj = JsonConvert.SerializeObject(list);
|
|
//string url = ICSHelper.GetConfigString()["JinyangCapUrl"]+ @"?deipaaskeyauth=a5P1RTL4380zd9jpb57qXx63rdynUHN2";
|
|
string url = ICSHelper.GetConfigString()["JinyangCapUrl"];
|
|
|
|
var result = HttpHelper.HttpClientPost<ResponseInfoDto>(url, inputObj, new Dictionary<string, string>() { { "deipaaskeyauth", "a5P1RTL4380zd9jpb57qXx63rdynUHN2" } }).Result;
|
|
// var result = HttpHelper.HttpClientPost<ResponseInfoDto>(url, inputObj).Result;
|
|
if (result.Result == "OK")
|
|
{
|
|
|
|
|
|
|
|
ICSHelper.ExecuteDate(conStr, insertSql);
|
|
}
|
|
else
|
|
{
|
|
throw new Exception(result.Result);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
log.Error(ex.ToString());
|
|
}
|
|
}
|
|
}
|
|
}
|