仓储定时任务 增加一个job 定时生成当日仓储费和库存量记录

dev
dengyu 2 months ago
parent bd1bd6facd
commit 2af6e5317c

@ -73,8 +73,8 @@
<Reference Include="MimeKit, Version=2.9.0.0, Culture=neutral, PublicKeyToken=bede1c8a46c66814, processorArchitecture=MSIL"> <Reference Include="MimeKit, Version=2.9.0.0, Culture=neutral, PublicKeyToken=bede1c8a46c66814, processorArchitecture=MSIL">
<HintPath>..\packages\MimeKit.2.9.2\lib\net45\MimeKit.dll</HintPath> <HintPath>..\packages\MimeKit.2.9.2\lib\net45\MimeKit.dll</HintPath>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net40\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="Quartz, Version=2.6.2.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL"> <Reference Include="Quartz, Version=2.6.2.0, Culture=neutral, PublicKeyToken=f6b8c98a402cc8a4, processorArchitecture=MSIL">
<HintPath>..\packages\Quartz.2.6.2\lib\net40\Quartz.dll</HintPath> <HintPath>..\packages\Quartz.2.6.2\lib\net40\Quartz.dll</HintPath>

@ -208,4 +208,214 @@ namespace Job_DSWMS_REPORT
} }
/// <summary>
/// 新仓储系统 分类监管 报文上传
/// </summary>
public class Job_DSWMS_SaveDailyAmount : IJob
{
private ILog log = LogManager.GetLogger(typeof(Job_DSWMS_SaveDailyAmount));
private string USERCODE = "";
private string PWD = "";
private string SERVERUrl = "";
private string SERVERPORTUrl = "";
private string SERVERPORTUrl2 = "";
private string FilePath = "";
public void Execute(IJobExecutionContext context)
{
log.Debug($"Execute开始");
USERCODE = context.JobDetail.JobDataMap.GetString("USERCODE");
PWD = context.JobDetail.JobDataMap.GetString("PWD");
SERVERUrl = context.JobDetail.JobDataMap.GetString("SERVERUrl");
//SERVERPORTUrl = context.JobDetail.JobDataMap.GetString("SERVERPORTUrl");
SERVERPORTUrl2 = context.JobDetail.JobDataMap.GetString("SERVERPORTUrl2");
//1调用URL指定的接口 得到返回数据 取得其中的文件名
//2从URL+文件名中取得文件,保存至指定文件夹
try
{
var _data = SetDo();
//DownLoad(filename);
}
catch (Exception ex)
{
log.Error("错误中断0:" + ex.Message);
}
}
public class WMSXMLResult
{
bool status { get; set; }
string code { get; set; }
public string data { get; set; }
}
private string getFileName()
{
string strBuff = "";
var url = SERVERPORTUrl + "?USERCODE=" + USERCODE + "&PWD=" + PWD;
var rtn = DoGet(url);
//"{\"status\":true,\"code\":null,\"message\":\"\",\"data\":\"Upload/FLJG/2021_07_06_YLDY_StockApply.FLJGRX\"}"
var jsonObj = JsonConvert.DeserializeObject<WMSXMLResult>(rtn);
return jsonObj.data;
}
public static string DoPost(string url, string json, int timeout = 10000)
{
try
{
string responseString = "";//post返回的结果
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, err) => { return true; };
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Method = "POST";
req.Timeout = timeout;
req.Headers.Add("Accept-Encoding", "gzip, deflate");
if (!string.IsNullOrWhiteSpace(json))
{
byte[] postBytes = Encoding.UTF8.GetBytes(json);
req.ContentType = "application/json; charset=utf-8";
req.ContentLength = Encoding.UTF8.GetByteCount(json);
Stream stream = req.GetRequestStream();
stream.Write(postBytes, 0, postBytes.Length);
stream.Close();
}
else
{
req.ContentLength = 0;
}
var response = req.GetResponse();
responseString = GetResponseBody((HttpWebResponse)response);
return responseString;
}
catch (Exception e)
{
return e.Message;
}
}
public static string DoGet(string url)
{
string responseString = "";//post返回的结果
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, err) => { return true; };
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Method = "GET";
req.ContentLength = 0;
var response = req.GetResponse();
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
responseString = streamRead.ReadToEnd();
response.Close();
streamRead.Close();
return responseString;
}
public string DownLoad(string FileName)
{
var url = SERVERUrl + FileName;
var fr = FileName.Split('/').ToList();
var fileSaveName = fr[fr.Count - 1];
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
byte[] fileBytes;
using (WebResponse webRes = request.GetResponse())
{
int length = (int)webRes.ContentLength;
HttpWebResponse response = webRes as HttpWebResponse;
Stream stream = response.GetResponseStream();
var contentdisposition = response.Headers["Content-Disposition"];
var filename = fileSaveName;
//读取到内存
MemoryStream stmMemory = new MemoryStream();
byte[] buffer = new byte[length];
int i;
//将字节逐个放入到Byte中
while ((i = stream.Read(buffer, 0, buffer.Length)) > 0)
{
stmMemory.Write(buffer, 0, i);
}
fileBytes = stmMemory.ToArray();//文件流Byte
FileStream fs = new FileStream(FilePath + "\\" + filename, FileMode.OpenOrCreate);
stmMemory.WriteTo(fs);
stmMemory.Close();
fs.Close();
return FilePath + filename;
}
}
private string SetDo()
{
string strBuff = "";
var url = SERVERPORTUrl2 + "?USERCODE=" + USERCODE + "&PWD=" + PWD;
var rtn = DoGet(url);
//"{\"status\":true,\"code\":null,\"message\":\"\",\"data\":\"Upload/FLJG/2021_07_06_YLDY_StockApply.FLJGRX\"}"
var jsonObj = JsonConvert.DeserializeObject<WMSXMLResult>(rtn);
return jsonObj.data;
}
private static string GetResponseBody(HttpWebResponse response)
{
string responseBody = string.Empty;
if (response.ContentEncoding != null && response.ContentEncoding.ToLower().Contains("gzip"))
{
using (GZipStream stream = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress))
{
using (StreamReader reader = new StreamReader(stream))
{
responseBody = reader.ReadToEnd();
}
}
}
else if (response.ContentEncoding != null && response.ContentEncoding.ToLower().Contains("deflate"))
{
using (DeflateStream stream = new DeflateStream(
response.GetResponseStream(), CompressionMode.Decompress))
{
using (StreamReader reader =
new StreamReader(stream, Encoding.UTF8))
{
responseBody = reader.ReadToEnd();
}
}
}
else
{
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
responseBody = reader.ReadToEnd();
}
}
}
return responseBody;
}
}
} }

Loading…
Cancel
Save