荣圣达泛微OA审批对接完成

DS7_JinGang
ddlucky 2 years ago
parent 2206329be2
commit 544e405828

@ -997,6 +997,66 @@ namespace DSWeb.Common.DB
#endregion
}
[Table("ch_fee_payapplication")]
public partial class ch_fee_payapplication_md {
[Key]
public string GID { get; set; }
public string BILLNO { get; set; }
public int? BILLSTATUS { get; set; }
public string CUSTOMERNAME { get; set; }
public string CHEQUEPAYABLE { get; set; }
public int? SETTLETYPE { get; set; }
public DateTime? PAYABLETIME { get; set; }
public decimal? AMOUNTRMB { get; set; }
public decimal? RATE { get; set; }
public decimal? AMOUNTUSD { get; set; }
public decimal? SETTLERMB { get; set; }
public decimal? SETTLEUSD { get; set; }
public decimal? SETTLERATE { get; set; }
public string APPLICANT { get; set; }
public DateTime? APPLYTIME { get; set; }
public DateTime? ENTERTIME { get; set; }
public string SETTLEUSER { get; set; }
public DateTime? SETTLETIME { get; set; }
public string AUDITUSER { get; set; }
public DateTime? AUDITTIME { get; set; }
public string REMARK { get; set; }
public bool? ISDELETE { get; set; }
public string DELETEUSER { get; set; }
public DateTime? DELETETIME { get; set; }
public string COMPANYID { get; set; }
public bool? ISAPP { get; set; }
public string PAYAPPID { get; set; }
public string CHEQUENUMREMARK { get; set; }
public string CURR { get; set; }
public string INVNO { get; set; }
public DateTime? INVDATE { get; set; }
public string CUSTACCOUNTGID { get; set; }
public string PAYACCOUNTGID { get; set; }
public string BS_CUSTOMERNAME { get; set; }
public string PAYBANK { get; set; }
public string PORTDISCHARGE { get; set; }
public decimal? PREAMOUNTRMB { get; set; }
public decimal? PREAMOUNTUSD { get; set; }
public string PAYTYPE { get; set; }
public string ISPRINT { get; set; }
public decimal? AMOUNTOT { get; set; }
public decimal? SETTLEOT { get; set; }
public decimal? PREAMOUNTOT { get; set; }
public int? WXPUSH { get; set; }
public string AUDITREMARK { get; set; }
public string REASON { get; set; }
public decimal? STLRATE { get; set; }
public decimal? STLAMOUNT { get; set; }
public string STLCURR { get; set; }
public string SALECORPID { get; set; }
public string WORKBILLNO { get; set; }
public int? PRINTCOUNT { get; set; }
public bool? ISREVINV { get; set; }
public DateTime? PRINTTIME { get; set; }
}
[Table("company")]
public class company_md
{

@ -46,6 +46,8 @@ namespace DSWeb.Common.DB
public DbSet<code_goods_inv_md> code_goods_inv { get; set; }
public DbSet<ch_fee_do_md> ch_fee_do { get; set; }
public DbSet<ch_fee_payapplication_md> ch_fee_payapplication { get; set; }
public DbSet<company_md> company { get; set; }

@ -76,7 +76,12 @@
<Compile Include="Helper\IdHelper.cs" />
<Compile Include="Helper\MailHelper.cs" />
<Compile Include="Helper\WebRequestHelper.cs" />
<Compile Include="Model\DateTimeExtension.cs" />
<Compile Include="Model\Int32Extensions.cs" />
<Compile Include="Model\JsonExtension.cs" />
<Compile Include="Model\LongExtension.cs" />
<Compile Include="Model\RespModel.cs" />
<Compile Include="Model\StringExtension.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>

@ -0,0 +1,141 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DSWeb.Common
{
/// <summary>
/// datetime数据类型拓展
/// </summary>
public static class DateTimeExtension
{
/// <summary>
///将一个时间转换为秒级时间戳
/// </summary>
/// <param name="datetime">时间</param>
/// <returns></returns>
public static long ToTimeStampSeconds(this DateTime datetime)
{
return (long)Math.Round((datetime.ToUniversalTime() - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)).TotalSeconds);
}
/// <summary>
///将一个时间转换为毫秒级时间戳
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public static long ToTimeStampMilliSeconds(this DateTime datetime)
{
return (long)Math.Round((datetime.ToUniversalTime() - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)).TotalMilliseconds);
}
/// <summary>
/// 获取标准时间戳 秒级
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public static long ToTimeStamp(this DateTime datetime)
{ return ToTimeStampSeconds(datetime); }
/// <summary>
/// 将时间转换为时间字符串编码 yyyyMMddHHmmssffff
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public static string ToTimeStr(this DateTime datetime)
{
return datetime.ToString("yyyyMMddHHmmssffff");
}
/// <summary>
/// 判断时间是否大于1970年的有效时间
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static bool IsValidTime(this DateTime dateTime)
{
if (dateTime.Date >= DateTime.Parse("1970-1-1"))
return true;
else return false;
}
/// <summary>
/// 获时间一天中的开始时间
/// </summary>
/// <param name="dateTime"></param>
public static DateTime GetDayStartTime(this DateTime dateTime)
{
return dateTime.Date;
}
/// <summary>
/// 获取时间一天的结束时间
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetDateEndTime(this DateTime dateTime)
{
return dateTime.Date.AddDays(1).AddSeconds(-1);
}
/// <summary>
/// 获取时间周的星期一的时间
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetWeekStartTime(this DateTime dateTime)
{
return dateTime.GetWeekOfDayTime(1);
}
/// <summary>
/// 获取时间周的周日
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetWeekEndTime(this DateTime dateTime)
{
return dateTime.GetWeekOfDayTime(7);
}
/// <summary>
/// 获取时间周的指定周几时间
/// </summary>
/// <param name="dateTime"></param>
/// <param name="Day">周几 1 2 3 4 5 6 7</param>
/// <returns></returns>
public static DateTime GetWeekOfDayTime(this DateTime dateTime, int Day)
{
if (Day < 1)
Day = 1;
if (Day > 7)
Day = (int)dateTime.DayOfWeek;
return dateTime.Subtract(new TimeSpan(dateTime.DayOfWeek - (DayOfWeek)Day, 0, 0, 0)).Date;
}
/// <summary>
/// 获取时间月开始时间
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetMonthStartTime(this DateTime dateTime)
{
return new DateTime(dateTime.Year, dateTime.Month, 1).Date;
}
/// <summary>
/// 获取一个月的结束时间
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime GetMonthEndTime(this DateTime dateTime)
{
return dateTime.GetMonthStartTime().AddMonths(1).AddDays(-1);
}
}
}

@ -0,0 +1,90 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DSWeb.Common
{
/// <summary>
/// 扩展Int32功能
/// </summary>
public static class Int32Extensions
{
/// <summary>
/// 向上整除
/// 1.当num能被divideBy整除时,结果即为num/divideBy;
/// 2.当num不能被divideBy整除时,结果为num/divideBy + 1;
/// </summary>
/// <param name="num">被除数,大于或者等于0</param>
/// <param name="divideBy">除数,大于0</param>
/// <returns>向上整除结果</returns>
public static int CeilingDivide(this int num, int divideBy)
{
if (num < 0 || divideBy <= 0)
{
return 0;
}
return (num + divideBy - 1) / divideBy;
}
/// <summary>
/// 向上整除
/// 1.当num能被divideBy整除时,结果即为num/divideBy;
/// 2.当num不能被divideBy整除时,结果为num/divideBy + 1;
/// </summary>
/// <param name="num">被除数,大于或者等于0</param>
/// <param name="divideBy">除数,大于0</param>
/// <returns>向上整除结果</returns>
public static long CeilingDivide(this long num, long divideBy)
{
if (num < 0 || divideBy <= 0)
{
return 0;
}
return (num + divideBy - 1) / divideBy;
}
/// <summary>
/// 将List<int> 转为间隔字符串
/// </summary>
/// <param name="strlist"></param>
public static string ListToString(this List<int> strlist, char Split = ',')
{
StringBuilder str = new StringBuilder();
foreach (var item in strlist)
{
str.Append(item.ToString() + Split);
}
return str.ToString();
}
/// <summary>
/// 拓展 将字符串抓换为int
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static int StrToInt(this string str)
{
if (str.Isint())
{ return Convert.ToInt32(str); }
else
{
return 0;
}
}
/// <summary>
/// 拓展 将字符串数组转换成int 数组
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static int[] strToIntArray(this string[] str)
{
return Array.ConvertAll(str, new Converter<string, int>(StrToInt));
}
}
}

@ -0,0 +1,134 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DSWeb.Common.Extentions
{
public static class JsonExtension
{
/// <summary>
/// 获取JObject
/// </summary>
/// <param name="jobj"></param>
/// <param name="prop"></param>
/// <returns></returns>
public static JObject GetJObjectValue(this JObject jobj, string prop)
{
var jt = jobj[prop];
if (jt == null)
{
return null;
}
return jt as JObject;
}
/// <summary>
/// 获取字符串值
/// </summary>
/// <param name="jobj"></param>
/// <param name="prop"></param>
/// <returns></returns>
public static string GetStringValue(this JObject jobj, string prop)
{
var jt = jobj[prop];
if (jt == null)
{
return string.Empty;
}
return jt.ToString();
}
/// <summary>
/// 获取int值
/// </summary>
/// <param name="jobj"></param>
/// <param name="prop"></param>
/// <returns></returns>
public static int GetIntValue(this JObject jobj, string prop)
{
var jt = jobj[prop];
if (jt == null)
{
return 0;
}
var strVal = jt.ToString();
int rtnVal = 0;
int.TryParse(strVal, out rtnVal);
return rtnVal;
}
/// <summary>
/// 获取decimal值
/// </summary>
/// <param name="jobj"></param>
/// <param name="prop"></param>
/// <returns></returns>
public static decimal GetDecimalValue(this JObject jobj, string prop)
{
var jt = jobj[prop];
if (jt == null)
{
return 0;
}
var strVal = jt.ToString();
decimal rtnVal = 0;
decimal.TryParse(strVal, out rtnVal);
return rtnVal;
}
/// <summary>
/// 获取datetime值
/// </summary>
/// <param name="jobj"></param>
/// <param name="prop"></param>
/// <returns></returns>
public static DateTime? GetDateTimeValue(this JObject jobj, string prop)
{
var jt = jobj[prop];
if (jt == null)
{
return null;
}
var strVal = jt.ToString();
DateTime rtnVal = DateTime.MinValue;
if (DateTime.TryParse(strVal, out rtnVal))
{
return rtnVal;
}
return null;
}
/// <summary>
/// 获取datetime值不带秒yyyy-MM-dd HH:mm
/// </summary>
/// <param name="jobj"></param>
/// <param name="prop"></param>
/// <returns></returns>
public static DateTime? GetDateTimeMinuteValue(this JObject jobj, string prop)
{
var jt = jobj[prop];
if (jt == null)
{
return null;
}
var strVal = jt.ToString() + ":00";
DateTime rtnVal = DateTime.MinValue;
if (DateTime.TryParse(strVal, out rtnVal))
{
return rtnVal;
}
return null;
}
}
}

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DSWeb.Common
{
/// <summary>
/// long数据拓展
/// </summary>
public static class LongExtension
{
/// <summary>
/// 将毫秒时间戳转换为普通时间
/// </summary>
/// <param name="timestamp">毫秒级别的时间戳</param>
/// <returns></returns>
public static DateTime ToDateTimeMilliseconds(this long timestamp)
{
System.DateTime time = System.DateTime.MinValue;
DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0);
time = startTime.AddMilliseconds(timestamp).Add(TimeZoneInfo.Local.BaseUtcOffset);
return time;
}
/// <summary>
/// 将秒级别时间戳转换为普通时间
/// </summary>
/// <param name="timestamp">秒级别的时间戳</param>
/// <returns></returns>
public static DateTime ToDateTimeSecoders(this long timestamp)
{
DateTime time = System.DateTime.MinValue;
DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0);
time = startTime.AddSeconds(timestamp).Add(TimeZoneInfo.Local.BaseUtcOffset);
return time;
}
/// <summary>
/// 讲标准时间戳(秒级)转换为时间格式
/// </summary>
/// <param name="timestamp"></param>
/// <returns></returns>
public static DateTime ToDataTime(this long timestamp)
{
return ToDateTimeSecoders(timestamp);
}
}
}

@ -0,0 +1,479 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace DSWeb.Common
{
/// <summary>
/// string 拓展
/// </summary>
public static class StringExtension
{
/// <summary>
/// 隐藏中间字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string GetHideCentre(this string str)
{
if (str.Length > 8)
{
return string.Format("{0}***{1}", str.Substring(0, 4), str.Substring(str.Length - 4, 4));
}
else if (str.Length > 5)
{
return string.Format("{0}***{1}", str.Substring(0, 2), str.Substring(str.Length - 2, 2));
}
else if (str.Length > 4)
{
return string.Format("{0}***{1}", str.Substring(0, 1), str.Substring(str.Length - 1, 1));
}
else
{
return GetHideHead(str);
}
}
/// <summary>
/// 隐藏头部
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string GetHideHead(this string str)
{
var length = 1;
length = length > str.Length ? str.Length : length;
if (str.Length < 4)
{
length = 1;
if (str.Length == 1)
{
return str;
}
return "**" + str.Substring(str.Length - length, length);
}
length = 4;
return "****" + str.Substring(str.Length - length, length);
}
/// <summary>
/// 用于判断是否为空字符
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsNull(this string s)
{
return s == null || (s.Trim().Length == 0);
}
/// <summary>
/// 用于判断是否为非空字符
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsNotNull(this string s)
{
return !s.IsNull();
}
#region 加密算法
/// <summary>
/// DES对称加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="key">加密密钥,要求为16位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string DESEncrypt(this string encryptString, string key)
{
try
{
byte[] rgbKey = Encoding.UTF8.GetBytes(key);
//用于对称算法的初始化向量(默认值)。
byte[] rgbIV = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
Aes dCSP = Aes.Create();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// DES对称解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="key">解密密钥要求16位</param>
/// <returns></returns>
public static string DESDecrypt(this string decryptString, string key)
{
try
{
//用于对称算法的初始化向量(默认值)
byte[] Keys = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F };
byte[] rgbKey = Encoding.UTF8.GetBytes(key);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
Aes DCSP = Aes.Create();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return decryptString;
}
}
/// <summary>
/// 将字符串转换成MD5加密字符串
/// </summary>
/// <param name="orgStr"></param>
/// <returns></returns>
public static string ToMd5(this string orgStr)
{
using (var md5 = MD5.Create())
{
var encoding = Encoding.UTF8;
var encryptedBytes = md5.ComputeHash(encoding.GetBytes(orgStr));
var sb = new StringBuilder(32);
foreach (var bt in encryptedBytes)
{
sb.Append(bt.ToString("x").PadLeft(2, '0'));
}
return sb.ToString().ToLower();
}
}
#endregion
/// <summary>
/// 获取扩展名
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string GetExt(this string s)
{
var ret = string.Empty;
if (!s.Contains('.')) return ret;
var temp = s.Split('.');
ret = temp[temp.Length - 1];
return ret;
}
/// <summary>
/// 验证QQ格式
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsQq(this string s)
{
return s.IsNull() || Regex.IsMatch(s, @"^[1-9]\d{4,15}$");
}
/// <summary>
/// 将字符串根据分隔符转换我List<string>
/// </summary>
/// <param name="str"></param>
/// <param name="split">分隔符</param>
/// <returns></returns>
public static List<string> ToListString(this string str, char split)
{
return new List<string>(str.Split(split));
}
/// <summary>
/// 判断是否为有效的Email地址
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsEmail(this string s)
{
if (!s.IsNull())
{
//return Regex.IsMatch(s,
// @"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" +
// @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$");
const string pattern = @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$";
return Regex.IsMatch(s, pattern);
}
return false;
}
/// <summary>
/// 判断是否是url
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsUrl(this string s)
{
if (!s.IsNull())
{
const string pattern = @"^(http://|https://)?((?:[A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\.)+([A-Za-z]+)[/\?\:]?.*$";
return Regex.IsMatch(s, pattern);
}
return false;
}
/// <summary>
/// 验证是否是合法的电话号码
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsPhone(this string s)
{
if (!s.IsNull())
{
return Regex.IsMatch(s, @"^\+?((\d{2,4}(-)?)|(\(\d{2,4}\)))*(\d{0,16})*$");
}
return true;
}
/// <summary>
/// 验证是否是合法的手机号码
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsMobile(this string s)
{
if (!s.IsNull())
{
return Regex.IsMatch(s, @"^\+?\d{0,4}?[1][3-8]\d{9}$");
}
return false;
}
/// <summary>
/// 验证是否是合法的邮编
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsZipCode(this string s)
{
if (!s.IsNull())
{
return Regex.IsMatch(s, @"[1-9]\d{5}(?!\d)");
}
return true;
}
/// <summary>
/// 验证是否是合法的传真
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static bool IsFax(this string s)
{
if (!s.IsNull())
{
return Regex.IsMatch(s, @"(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)");
}
return true;
}
/// <summary>
/// 检查字符串是否为有效的int数字
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static bool Isint(this string val)
{
if (IsNull(val))
return false;
int k;
return int.TryParse(val, out k);
}
/// <summary>
/// 字符串转数字未转换成功返回0
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static int ToInt(this string val)
{
if (IsNull(val))
return 0;
int k;
return int.TryParse(val, out k) ? k : 0;
}
/// <summary>
/// 将int间隔字符串抓换为list<int>
/// </summary>
/// <param name="str"></param>
/// <param name="Split"></param>
/// <returns></returns>
public static List<int> ToIntList(this string str, char Split = ',')
{
return str.Split(Split).strToIntArray().ToList();
}
/// <summary>
/// 判断是否是json字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsJson(this string str)
{
try
{
if (str.IsNull())
return false;
JsonConvert.DeserializeObject(str);
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 检查字符串是否为有效的INT64数字
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static bool IsInt64(this string val)
{
if (IsNull(val))
return false;
long k;
return long.TryParse(val, out k);
}
/// <summary>
/// 验证是否是身份证
/// </summary>
/// <param name="ID"></param>
/// <returns></returns>
public static bool IsCardId(this string ID)
{
var r = false;
if (IsNull(ID))
r = false;
if (ID.Length == 15)
{
var date = $"19{ID.Substring(6, 2)}-{ID.Substring(8, 2)}-{ID.Substring(10, 2)}";
DateTime dt;
return DateTime.TryParse(date, out dt);
}
else if (ID.Length == 18)
{
var date = $"{ID.Substring(6, 4)}-{ID.Substring(10, 2)}-{ID.Substring(12, 2)}";
DateTime dt;
return DateTime.TryParse(date, out dt);
}
else { r = false; }
return r;
}
/// <summary>
/// 检查字符串是否为有效的double
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static bool IsDecimal(this string val)
{
if (IsNull(val))
return false;
double d;
return double.TryParse(val, out d);
}
/// <summary>
///检测字符串是否是时间类型
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static bool IsDateTime(this string val)
{
if (IsNull(val))
return false;
DateTime d;
return DateTime.TryParse(val, out d);
}
/// <summary>
/// 字符串转时间 非时间返回空
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static DateTime? ToDateTime(this string val)
{
if (val.IsDateTime())
{
return DateTime.Parse(val);
}
else
{
return null;
}
}
/// <summary>
/// 将时间类型字符转时间戳
/// </summary>
/// <param name="Val"></param>
/// <returns></returns>
public static long ToTimestamp(this string Val)
{
var time = Val.ToDateTime();
return time != null ? ((DateTime)time).ToTimeStamp() : 0;
}
/// <summary>
/// 从左边截取N个字符
/// </summary>
/// <param name="val"></param>
/// <returns></returns>
public static string GetLeftStr(this string val, int count = 0)
{
if (count > val.Length)
return null;
return val.Substring(0, count);
}
/// <summary>
///从右边截取N个字符
/// </summary>
/// <param name="val"></param>
/// <param name="count"></param>
/// <returns></returns>
public static string GetRightStr(this string val, int count = 0)
{
if (count > val.Length)
return null;
return val.Substring(val.Length - count, count);
}
}
}

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<appSettings>
<!-- 服务的名称、显示名称 -->
<add key="ServiceName" value="MyshppingCangdanOutputService" />
<add key="ServiceDisplayName" value="荣圣达泛微审核结果回写DS7服务" />
<!-- 服务器地址 -->
<add key="DS7connStr" value="Data Source=60.209.125.238,26600;Initial Catalog=shippingwebTEST;Persist Security Info=True;User ID=sa;Password=Ds20040201" />
<add key="OAconnStr" value="Data Source=117.78.44.211,1433;Initial Catalog=ecology;Persist Security Info=True;User ID=OA01;Password=oa123456@" />
<add key="DS7URL" value="http://localhost:10202/Account/Chfee_payapplication/AuditListAcceptOA" />
</appSettings>
<connectionStrings>
<!--本地开发
<add name="DongShengDB" connectionString="Data Source=192.168.0.80;Initial Catalog=myshipping;Persist Security Info=True;User ID=sa;Password=sa123" providerName="System.Data.SqlClient" />
-->
<!--大简云 正式库-->
<add name="DongShengDB" connectionString="Data Source=47.104.73.97,6761;Initial Catalog=DsPingTai;Persist Security Info=True;User ID=sa;Password=QDdjy#2020*" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<quartz>
<add key="quartz.scheduler.instanceName" value="ServerScheduler" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="50" />
<add key="quartz.threadPool.threadPriority" value="2" />
<add key="quartz.plugin.xml.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz" />
<add key="quartz.plugin.xml.fileNames" value="~/quartz_jobs.xml" />
<add key="quartz.jobStore.misfireThreshold" value="30000" />
<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
</quartz>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>DSWeb.Service.Output</RootNamespace>
<AssemblyName>DSWeb.Service.Output</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="AutoMapper, Version=6.2.2.0, Culture=neutral, PublicKeyToken=be96cd2c38ef1005, processorArchitecture=MSIL">
<HintPath>..\packages\AutoMapper.6.2.2\lib\net45\AutoMapper.dll</HintPath>
</Reference>
<Reference Include="BouncyCastle.Crypto, Version=1.8.10.0, Culture=neutral, PublicKeyToken=0e99375e54769942, processorArchitecture=MSIL">
<HintPath>..\packages\Portable.BouncyCastle.1.8.10\lib\net40\BouncyCastle.Crypto.dll</HintPath>
</Reference>
<Reference Include="Common.Logging, Version=3.3.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<HintPath>..\packages\Common.Logging.3.3.1\lib\net40\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="Common.Logging.Core, Version=3.3.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<HintPath>..\packages\Common.Logging.Core.3.3.1\lib\net40\Common.Logging.Core.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.1.2.10\lib\2.0\log4net.dll</HintPath>
</Reference>
<Reference Include="MailKit, Version=2.15.0.0, Culture=neutral, PublicKeyToken=4e064fe7c44a8f1b, processorArchitecture=MSIL">
<HintPath>..\packages\MailKit.2.15.0\lib\net47\MailKit.dll</HintPath>
</Reference>
<Reference Include="MimeKit, Version=2.15.0.0, Culture=neutral, PublicKeyToken=bede1c8a46c66814, processorArchitecture=MSIL">
<HintPath>..\packages\MimeKit.2.15.0\lib\net47\MimeKit.dll</HintPath>
</Reference>
<Reference Include="MySql.Data, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.6.10.9\lib\net452\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<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>
</Reference>
<Reference Include="RabbitMQ.Client, Version=6.0.0.0, Culture=neutral, PublicKeyToken=89e7d7c5feba84ce, processorArchitecture=MSIL">
<HintPath>..\packages\RabbitMQ.Client.6.2.2\lib\net461\RabbitMQ.Client.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Drawing.Design" />
<Reference Include="System.Management" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Threading.Channels, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Channels.4.7.1\lib\net461\System.Threading.Channels.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="Topshelf, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b800c4cfcdeea87b, processorArchitecture=MSIL">
<HintPath>..\packages\Topshelf.4.3.0\lib\net452\Topshelf.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="JobFanWeiToDS7.cs" />
<Compile Include="JobListener.cs" />
<Compile Include="OutputJobService.cs" />
<Compile Include="Models.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config">
<SubType>Designer</SubType>
</None>
<Content Include="log4net.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<SubType>Designer</SubType>
</Content>
<None Include="packages.config">
<SubType>Designer</SubType>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="quartz_jobs.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<SubType>Designer</SubType>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DSWeb.Common\DSWeb.Common.csproj">
<Project>{a0ab3d23-0dad-49ba-9d23-107faa1c369e}</Project>
<Name>DSWeb.Common</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
</Project>

@ -0,0 +1,99 @@
using DSWeb.Common;
using DSWeb.Common.DB;
using DSWeb.Common.Helper;
using log4net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Quartz;
using RabbitMQ.Client;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Runtime.Caching;
using System.Runtime.Remoting.Contexts;
using System.Text;
using System.Threading.Tasks;
namespace DSWeb.Service.Output
{
//配置了舱单数据输出到ds7的公司自动将舱单数据发送到消息队列
public class JobFanWeiToDS7 : IJob
{
private const string ExchangeName = "output";
private const string QueuePrefix = "djy.output.cangdan.ds7.";
private ILog log = LogManager.GetLogger(typeof(JobFanWeiToDS7));
private string rabbitUri = ConfigurationManager.AppSettings["OutputDS7MQUri"];
string OAconnStr = ConfigurationManager.AppSettings["OAconnStr"];
string DS7connStr = ConfigurationManager.AppSettings["DS7connStr"];
string DS7URL = ConfigurationManager.AppSettings["DS7URL"];
public void Execute(IJobExecutionContext context)
{
try
{
int reqTimeout = Convert.ToInt32(context.JobDetail.JobDataMap.GetString("RequestTimeout"));
var dc1 = new OtherDB(OAconnStr);
var cdc = new CommonDataContext(DS7connStr);
//从cdc中寻找待读取审核结果的业务
var List = cdc.ch_fee_payapplication.Where(x => x.BILLSTATUS == 2 && x.PAYAPPID != null && x.PAYAPPID != "").ToList();
if (List == null || List.Count <= 0) return;
var idList = List.Select(s => s.PAYAPPID).ToList();
//从dc1中寻找这些id的业务的审核结果
var List = dc1.view_pjrequestbas.Where(x => x.workflowid == 79 && x.currentnodetype == "3" && idList.Contains(x.requestid.ToString())).ToList();
var AuditGidlistStr = "";
foreach (var item in List)
{
SetAudit(dc1, cdc, DS7URL, item);
}
//将审核完成的更新至cdc中的业务中
//update ch_fee_payapplication set BILLSTATUS=0,AUDITUSER='" + USERID + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where BILLNO=@BILLNO");
}
catch (Exception ex)
{
log.Debug($"catch{ex.Message}");
log.Error(ex.Message);
log.Error(ex.StackTrace);
}
}
private void SetAudit(OtherDB dc1, CommonDataContext cdc, string DS7URL, view_pjrequestbas_md Audititem)
{
//根据oa系统的userid查找ds7系统的userid
var OAUser = dc1.view_hrmresource.FirstOrDefault(x => x.id == Audititem.lastoperator);
var ds7user = cdc.VW_user.Where(x => x.SHOWNAME == OAUser.lastname).ToList();
//var ds7user = cdc.VW_user.Where(x => x.SHOWNAME == "系统管理员").ToList();
if (ds7user != null && ds7user.Count > 0)
{
var userid = ds7user[0].USERID;
var dic = new Dictionary<string, string> {
{ "requestid",Audititem.requestid.ToString()},
{ "userid",userid}
};
string rtn = WebRequestHelper.DoPost(DS7URL, dic, 12000);
log.Debug("rtn=" + rtn);
}
}
}
}

@ -0,0 +1,126 @@
using log4net;
using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DSWeb.Service.Output
{
public class JobListener : ISchedulerListener
{
private ILog logger = LogManager.GetLogger("JobListener");
public void JobAdded(IJobDetail jobDetail)
{
logger.Debug($"Job被添加{jobDetail.JobType}");
}
public void JobDeleted(JobKey jobKey)
{
}
public void JobPaused(JobKey jobKey)
{
}
public void JobResumed(JobKey jobKey)
{
}
public void JobScheduled(ITrigger trigger)
{
}
public void JobsPaused(string jobGroup)
{
}
public void JobsResumed(string jobGroup)
{
}
public void JobUnscheduled(TriggerKey triggerKey)
{
}
public void SchedulerError(string msg, SchedulerException cause)
{
logger.Error(msg);
var excep = cause as Exception;
while (true)
{
logger.Error(excep.Message);
logger.Error(excep.StackTrace);
excep = excep.InnerException;
}
}
public void SchedulerInStandbyMode()
{
}
public void SchedulerShutdown()
{
logger.Debug($"SchedulerShutdown");
}
public void SchedulerShuttingdown()
{
}
public void SchedulerStarted()
{
logger.Debug($"SchedulerStarted");
}
public void SchedulerStarting()
{
}
public void SchedulingDataCleared()
{
}
public void TriggerFinalized(ITrigger trigger)
{
}
public void TriggerPaused(TriggerKey triggerKey)
{
}
public void TriggerResumed(TriggerKey triggerKey)
{
}
public void TriggersPaused(string triggerGroup)
{
}
public void TriggersResumed(string triggerGroup)
{
}
}
}

@ -0,0 +1,14 @@
using AutoMapper;
using DSWeb.Common.DB;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DSWeb.Service.Output
{
}

@ -0,0 +1,49 @@
using AutoMapper;
using DSWeb.Common.DB;
using log4net;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Topshelf;
namespace DSWeb.Service.Output
{
public class OutputJobService : ServiceControl
{
private static ILog logger = LogManager.GetLogger("MailJobService");
public bool Start(HostControl hostControl)
{
// 开始具体的业务逻辑
logger.Debug("开始运行");
try
{
var scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.ListenerManager.AddSchedulerListener(new JobListener());
scheduler.Start();
}
catch (Exception ex)
{
logger.Error("启动出错:");
logger.Error(ex.Message);
logger.Error(ex.StackTrace);
}
return true;
}
public bool Stop(HostControl hostControl)
{
// 结束
logger.Debug("停止运行");
StdSchedulerFactory.GetDefaultScheduler().Shutdown();
return true;
}
}
}

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Topshelf;
namespace DSWeb.Service.Output
{
class Program
{
static void Main(string[] args)
{
var serviceName = ConfigurationManager.AppSettings["ServiceName"];
var serviceDisplayName = ConfigurationManager.AppSettings["ServiceDisplayName"];
if (Environment.UserInteractive)
{
Console.Title = serviceDisplayName;
}
Host host = HostFactory.New(x =>
{
// 基本的配置
x.RunAsLocalSystem();
x.SetServiceName(serviceName);
x.SetDisplayName(serviceDisplayName);
x.StartAutomaticallyDelayed();
x.EnableShutdown();
// 注册服务
x.Service(hostSettings => new OutputJobService());
// 设置服务失败后的操作,分别对应第一次、第二次、后续
x.EnableServiceRecovery(t =>
{
t.RestartService(0);
t.RestartService(0);
t.RestartService(0);
t.OnCrashOnly();
});
});
host.Run();
}
}
}

@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("JobPingTaiWork")]
[assembly: AssemblyTitle("DSWeb.Service.Output")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("JobPingTaiWork")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2019")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DSWeb.Service.Output")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("EA1E3ADD-AA08-407D-BA25-8AE15AAAFFF4")]
[assembly: Guid("49ee0ebf-550c-4259-afcc-fc8da6627f84")]
// 程序集的版本信息由下列四个值组成:
//
@ -30,7 +30,7 @@ using System.Runtime.InteropServices;
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" requirePermission="false" />
</configSections>
<log4net>
<root>
<!-- Value of priority may be ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF -->
<level value="DEBUG" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="ErrorAppender" />
<!--<appender-ref ref="AdoNetAppender_MySql" />-->
</root>
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<!-- debug log: 记录 DEBUG, INFO 级别的日志 -->
<file value="App_Data\\Logs\\debug.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<maxSizeRollBackups value="100" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout" >
<param name="ConversionPattern" value="%date [%p] [%logger] [%thread] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="INFO" />
</filter>
</appender>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!-- error log: 记录 WARN,ERROR,FATAL 级别的日志 -->
<file value="App_Data\\Logs\\error.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout" >
<param name="ConversionPattern" value="%date [%p] [%logger] [%thread] - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="WARN" />
</filter>
</appender>
<appender name="AdoNetAppender_MySql" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1"/>
<param name="ConnectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"/>
<param name="ConnectionString" value="server=101.42.137.198;port=12306;database=log_test;Uid=root;Pwd=123456;"/>
<commandText value="INSERT INTO log4net(log_datetime,log_thread,log_level,log_logger,log_message,Exception) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"/>
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
<!--<layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss}" />-->
</parameter>
<parameter>
<parameterName value="@thread"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread"/>
</layout>
</parameter>
<parameter>
<parameterName value="@log_level"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level"/>
</layout>
</parameter>
<parameter>
<parameterName value="@logger"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger"/>
</layout>
</parameter>
<parameter>
<parameterName value="@message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message"/>
</layout>
</parameter>
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="2000"/>
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
</appender>
</log4net>
</configuration>

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AutoMapper" version="6.2.2" targetFramework="net472" />
<package id="Common.Logging" version="3.3.1" targetFramework="net472" />
<package id="Common.Logging.Core" version="3.3.1" targetFramework="net472" />
<package id="EntityFramework" version="6.4.4" targetFramework="net472" />
<package id="log4net" version="1.2.10" targetFramework="net472" />
<package id="MailKit" version="2.15.0" targetFramework="net472" />
<package id="MimeKit" version="2.15.0" targetFramework="net472" />
<package id="MySql.Data" version="6.10.9" targetFramework="net472" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
<package id="Portable.BouncyCastle" version="1.8.10" targetFramework="net472" />
<package id="Quartz" version="2.6.2" targetFramework="net472" />
<package id="RabbitMQ.Client" version="6.2.2" targetFramework="net472" />
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
<package id="System.Memory" version="4.5.4" targetFramework="net472" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net472" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net472" />
<package id="System.Threading.Channels" version="4.7.1" targetFramework="net472" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
<package id="Topshelf" version="4.3.0" targetFramework="net472" />
</packages>

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8" ?>
<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData">
<processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives>
<schedule>
<job>
<name>JobFanWeiToDS7</name>
<group>System</group>
<description>舱单数据推送DS7消息队列</description>
<job-type>DSWeb.Service.Output.JobFanWeiToDS7,DSWeb.Service.Output</job-type>
<durable>true</durable>
<recover>false</recover>
</job>
<!--<trigger>-->
<trigger>
<simple>
<name>TriggerJobFanWeiToDS7</name>
<group>System</group>
<description>舱单数据推送DS7消息队列触发器</description>
<job-name>JobFanWeiToDS7</job-name>
<job-group>System</job-group>
<repeat-count>0</repeat-count>
<repeat-interval>1000</repeat-interval>
</simple>
</trigger>
<!--
<trigger>
<cron>
<name>TriggerCangdanDataToDS7</name>
<group>System</group>
<job-name>JobCangdanDataToDS7</job-name>
<job-group>System</job-group>
<cron-expression>0 0/10 * * * ? *</cron-expression>
</cron>
</trigger>
-->
</schedule>
</job-scheduling-data>

@ -60,10 +60,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D7MqClient", "D7MqClient\D7
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JobSendAgentMail", "JobSendAgentMail\JobSendAgentMail.csproj", "{A6656568-5C05-4E6C-856B-3FBE6367EA62}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Job_Get_FanWeiDeE9", "Job_Get_FanWeiDeE9\Job_Get_FanWeiDeE9.csproj", "{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestForm", "ToolProject\TestForm\TestForm\TestForm.csproj", "{3570606E-7E54-4ECD-ABF2-5EC946A966D9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DSWeb.Service.Output", "DSWeb.Service.Output\DSWeb.Service.Output.csproj", "{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -460,22 +460,6 @@ Global
{A6656568-5C05-4E6C-856B-3FBE6367EA62}.Release|x64.Build.0 = Release|Any CPU
{A6656568-5C05-4E6C-856B-3FBE6367EA62}.Release|x86.ActiveCfg = Release|Any CPU
{A6656568-5C05-4E6C-856B-3FBE6367EA62}.Release|x86.Build.0 = Release|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Debug|x64.ActiveCfg = Debug|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Debug|x64.Build.0 = Debug|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Debug|x86.ActiveCfg = Debug|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Debug|x86.Build.0 = Debug|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Release|Any CPU.Build.0 = Release|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Release|x64.ActiveCfg = Release|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Release|x64.Build.0 = Release|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Release|x86.ActiveCfg = Release|Any CPU
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}.Release|x86.Build.0 = Release|Any CPU
{3570606E-7E54-4ECD-ABF2-5EC946A966D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3570606E-7E54-4ECD-ABF2-5EC946A966D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3570606E-7E54-4ECD-ABF2-5EC946A966D9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@ -492,6 +476,22 @@ Global
{3570606E-7E54-4ECD-ABF2-5EC946A966D9}.Release|x64.Build.0 = Release|Any CPU
{3570606E-7E54-4ECD-ABF2-5EC946A966D9}.Release|x86.ActiveCfg = Release|Any CPU
{3570606E-7E54-4ECD-ABF2-5EC946A966D9}.Release|x86.Build.0 = Release|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Debug|x64.ActiveCfg = Debug|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Debug|x64.Build.0 = Debug|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Debug|x86.ActiveCfg = Debug|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Debug|x86.Build.0 = Debug|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Release|Any CPU.Build.0 = Release|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Release|x64.ActiveCfg = Release|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Release|x64.Build.0 = Release|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Release|x86.ActiveCfg = Release|Any CPU
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -507,8 +507,8 @@ Global
{47E487B5-6E44-4707-AA53-8FE6D2C55EB3} = {BDEA1978-203B-4DF0-923B-A409DFBF6175}
{2EB17591-A35A-4F0B-B399-1414BC7AED89} = {BDEA1978-203B-4DF0-923B-A409DFBF6175}
{A6656568-5C05-4E6C-856B-3FBE6367EA62} = {BDEA1978-203B-4DF0-923B-A409DFBF6175}
{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF} = {BDEA1978-203B-4DF0-923B-A409DFBF6175}
{3570606E-7E54-4ECD-ABF2-5EC946A966D9} = {22E177EA-11F5-4A7A-A923-5A5641083E38}
{FB5F0A53-8AA0-4993-8FB9-2B6C5FAC0482} = {BDEA1978-203B-4DF0-923B-A409DFBF6175}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F5A6A77B-B278-4804-92CF-AD222ACB93E0}

@ -672,11 +672,11 @@ namespace DSWeb.Areas.Account.Controllers
public ContentResult AuditList(string data)
{
{
var bodyList = JsonConvert.Deserialize<List<ChPayapplication>>(data);
var bodyList = JsonConvert.Deserialize<List<ChPayapplication>>(data);
DBResult result = ChpayapplicationDAL.AuditList(bodyList, Convert.ToString(Session["USERID"]));
DBResult result = ChpayapplicationDAL.AuditList(bodyList, Convert.ToString(Session["USERID"]));
if (result.Message2 == "1")
{
var PAYAUDITAUTOCLOSEDR = MsSysParamSetDAL.GetData("PARAMNAME='PAYAUDITAUTOCLOSEDR'");
@ -707,10 +707,51 @@ namespace DSWeb.Areas.Account.Controllers
}
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult AuditListAcceptOA(string requestid,string userid)
{
//var gidlist = GidList.Split(',').ToList();
//var gidstr="'"+string.Join("','", gidlist)+ "'";
var bodyList = ChpayapplicationDAL.GetDataList(0, 9999, " cm.payappid in("+ requestid + ")", userid);
DBResult result = ChpayapplicationDAL.AuditList(bodyList, Convert.ToString(Session["USERID"]));
if (result.Message2 == "1")
{
var PAYAUDITAUTOCLOSEDR = MsSysParamSetDAL.GetData("PARAMNAME='PAYAUDITAUTOCLOSEDR'");
if (PAYAUDITAUTOCLOSEDR.PARAMVALUE == "1")
{
var bsnolist = new List<BSNOLB>();
foreach (var bill in bodyList)
{
var dataList = ChpayapplicationDAL.GetBodyAllList("BILLNO='" + bill.BILLNO + "'");
if (dataList != null)
{
foreach (var enumValue in dataList)
{
if (bsnolist.FindAll(x => x.BSNO == enumValue.BSNO).Count == 0)
{
var bsnoitem = new BSNOLB();
bsnoitem.BSNO = enumValue.BSNO;
bsnolist.Add(bsnoitem);
}
}
}
}
ChpayapplicationDAL.SelBsLock(bsnolist, "应收");
}
}
var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message };
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult AuditBackList(string data,string reason)
public ContentResult AuditBackList(string data,string reason)
{
var bodyList = JsonConvert.Deserialize<List<ChPayapplication>>(data);
@ -722,7 +763,7 @@ namespace DSWeb.Areas.Account.Controllers
}
public ContentResult AllAudit(string condition)
public ContentResult AllAudit(string condition)
{
var dataList = ChpayapplicationDAL.GetAuditDataList(condition, Convert.ToString(Session["USERID"]),"3", CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]));

@ -2819,6 +2819,22 @@ namespace DSWeb.Areas.Account.DAL.Chfee_Payapplication
{
var result = new DBResult();
try
{
if (ConfigurationManager.AppSettings["FanWeiOAAPI"] == "true")
{
result = new DBResult();
result.Success = false;
result.Message = "现行逻辑不允许执行撤回提交!";
return result;
}
}
catch (Exception e)
{
}
finally { }
var billList = bills.Split(',');
Database db = DatabaseFactory.CreateDatabase();

@ -1,50 +0,0 @@
using DSWeb.Common.DB;
using log4net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Quartz;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
namespace JobReqWebData
{
public class JobFanWeiOAGet : IJob
{
private ILog log = LogManager.GetLogger(typeof(JobFanWeiOAGet));
public void Execute(IJobExecutionContext context)
{
try
{
string OAconnStr = context.JobDetail.JobDataMap.GetString("ConnectString");
string DS7connStr = context.JobDetail.JobDataMap.GetString("DS7ConnectString");
int reqTimeout = Convert.ToInt32(context.JobDetail.JobDataMap.GetString("RequestTimeout"));
var dc1 = new OtherDB(OAconnStr);
var cdc = new CommonDataContext(DS7connStr);
//从cdc中寻找待读取审核结果的业务
//var 待审核付费申请List = cdc.ch_fee_p
//从dc1中寻找这些id的业务的审核结果
//将审核完成的更新至cdc中的业务中
//update ch_fee_payapplication set BILLSTATUS=0,AUDITUSER='" + USERID + "',AUDITTIME='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where BILLNO=@BILLNO");
}
catch (Exception ex)
{
log.Debug($"catch{ex.Message}");
log.Error(ex.Message);
log.Error(ex.StackTrace);
}
}
}
}

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="AspNetPager" publicKeyToken="fb0a0fe055d40fd4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.2.0" newVersion="7.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="BouncyCastle.Crypto" publicKeyToken="0e99375e54769942" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.8.5.0" newVersion="1.8.5.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

@ -1,220 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>捷丰邮件</title>
</head>
<body>
<table width="1000" cellspacing="0" cellpadding="0" style="margin:0 auto;">
<tbody>
<tr>
<td colspan="4" style="height:50px;border:1px solid #333;padding-right:20px;font-weight:bold;font-size:20px;text-align:right;">$CUSTNO$</td>
</tr>
<tr>
<td colspan="2" style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size: 16px;line-height: 24px;">
<span style="font-size:15px;">Shipper(complete name and adress)</span><br />
$SHIPPER$
</td>
<td colspan="2" rowspan="2" style="padding:10px;border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333;text-align:center;font-size:16px;">
B/L NO<b style="margin-left:20px;">$MBLNO$</b><br />
<span style="color:#001c41;font-size: 24px;font-family: '方正综艺简体';display:block;line-height:290px;">山东捷丰国际储运有限公司</span>
</td>
</tr>
<tr>
<td colspan="2" style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size: 16px;ine-height: 24px;">
<span style="font-size:15px;">Consignee(complete name and adress)</span><br />
$CONSIGNEE$
</td>
</tr>
<tr>
<td colspan="2" rowspan="2" style="padding:10px;border-bottom:1px solid #333;border-left:1px solid #333;font-size:16px;ine-height: 24px;">
<span style="font-size:15px;">Notify party(complete name and adress)</span><br />
$NOTIFYPARTY$
</td>
<td rowspan="2" style="padding:10px;border-bottom:1px solid #333;border-left:1px solid #333;font-size:14px;">
<b>Service Type<b><br />
<b>$SERVICE$</b>
</td>
<td style="padding:10px;border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
<b>Sea Freight</b><br />
<b>$BLFRT$</b>
</td>
</tr>
<tr>
<td style="padding:10px;border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
<b>issueplace</b><br />
<b>$ISSUEPLACE$</b>
</td>
</tr>
<tr>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
Ocean Vessel /voy.<br />
<b>$VESSEL$/$VOYNO$</b>
</td>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
Port of load<br />
<b>$PORTLOAD$</b>
</td>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
No.of original B(s)/L<br />
<b>$NOBILL$</b>
</td>
<td rowspan="2" style="padding:10px;border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333;font-size:14px;line-height:22px;">
Final Destination for<br />
information only
</td>
</tr>
<tr>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
Port of discharge<br />
<b>$PORTDISCHARGE$)</b>
</td>
<td colspan="2" style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
Place of delive<br />
<b>$PLACEDELIVERY$</b>
</td>
</tr>
</tbody>
</table>
<table width="1000" cellspacing="0" cellpadding="0" style="margin:0 auto;">
<tbody>
<tr>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
Marks and numbers
</td>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
No. of Ctns/pkgs
</td>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
Kind of packages; description of goods
</td>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
Gross Weight(Kgs)
</td>
<td style="padding:10px;border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
Measurement(CBM)
</td>
</tr>
<tr>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
$MARKS$
</td>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
<b>$PKGS$$KINDPKGS$</b>
</td>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;line-height:22px;">
$DESCRIPTION$
</td>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;">
<b>$KGS$KGS</b>
</td>
<td style="padding:10px;border:1px solid #333;border-top:none;font-size:14px;">
<b>$CBM$CBM</b>
</td>
</tr>
<tr>
<td colspan="2" style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;font-size:14px;line-height:22px;">
船公司:$CARRIER$<br />
<span style="width:60px;display: block;float:left;">From</span>$CUSTATTN$<br />
<span style="width:60px;display: block;float:left;">Tel</span>$CUSTTEL$<br />
<span style="width:60px;height:20px;display: block;float:left;"></span><br />
<span style="width:60px;height:20px;display: block;float:left;"></span><br />
危险品等级:$DCLASS$<br />
危险品编号:$DUNNO$<br />
运费协议号:$SERVICECONTRACTNO$<br />
</td>
<td colspan="3" style="padding:10px;border-right:1px solid #333;border-bottom:1px solid #333;font-size:14px;line-height:22px;">
<span style="width:75px;display: block;float:left;">签单方式</span>$ISSUETYPE$<br />
<span style="width:75px;display: block;float:left;">船 期:</span>$ETD$<br />
<span style="width:75px;display: block;float:left;">最低温度:</span>$TEMPMIN$<br />
<span style="width:75px;display: block;float:left;">最高温度:</span>$TEMPMAX$<br />
<span style="width:135px;display: block;float:left;">危险品联系人:</span><br />
<span style="width:135px;display: block;float:left;">危险品联系人电话:</span>
</td>
</tr>
<tr>
<td colspan="5" style="padding:10px;border-left:1px solid #333;border-right:1px solid #333;border-bottom:1px solid #333;font-size: 16px;ine-height: 24px;">
<span style="font-size:15px;">备注</span><br />
$REMARK$
</td>
</tr>
</tbody>
</table>
<table width="1000" cellspacing="0" cellpadding="0" style="margin:30px auto 0;">
<thead style="background: #f3f3f3;border-bottom:1px solid #333;">
<tr>
<th style="padding:10px;border-top:1px solid #333;border-bottom:1px solid #333;border-left:1px solid #333;font-size:15px;">箱号</th>
<th style="padding:10px;border-top:1px solid #333;border-bottom:1px solid #333;font-size:15px;">封号</th>
<th style="padding:10px;border-top:1px solid #333;border-bottom:1px solid #333;font-size:15px;">集装箱</th>
<th style="padding:10px;border-top:1px solid #333;border-bottom:1px solid #333;width: 85px;font-size:15px;">件数包装</th>
<th style="padding:10px;border-top:1px solid #333;border-bottom:1px solid #333;font-size:15px;">重量</th>
<th style="padding:10px;border-top:1px solid #333;border-bottom:1px solid #333;font-size:15px;">尺码</th>
<th style="padding:10px;border-top:1px solid #333;border-bottom:1px solid #333;font-size:15px;">hscode</th>
<th style="padding:10px;border-top:1px solid #333;border-bottom:1px solid #333;border-right:1px solid #333;font-size:15px;">品名</th>
</tr>
</thead>
<tbody id="tbCtnDataList">
<tr>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;text-align:center;font-size:14px;">
CXDU1113316
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
KL3479121
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
KL3479121
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
1000CT
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
15000KGS
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
20CBM
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
070320
</td>
<td style="padding:10px;border-right:1px solid #333;border-bottom:1px solid #333;font-size:14px;line-height:22px;">
GARLIC cargo level<br />
TEMP13'<br />
VENTCLOSED<br />
MBL special instruction XXXXXXXX
</td>
</tr>
<tr>
<td style="padding:10px;border-left:1px solid #333;border-bottom:1px solid #333;text-align:center;font-size:14px;">
CSNU6317395
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
KL3478966
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
40'RH
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
2000CT
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
20000KGS
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
50CBM
</td>
<td style="padding:10px;border-bottom:1px solid #333;text-align:center;font-size:14px;">
070320
</td>
<td style="padding:10px;border-right:1px solid #333;border-bottom:1px solid #333;font-size:14px;line-height:22px;">
GARLIC CONTAINER level<br />
TEMP13'<br />
VENTCLOSED<br />
MBL special instruction XXXXXXXX
</td>
</tr>
</tbody>
</table>
</body>
</html>

@ -1,101 +0,0 @@
using log4net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Quartz;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using HtmlAgilityPack;
using HcUtility.Core;
using HcUtility.Comm;
using System.Data.Entity;
using System.Text.RegularExpressions;
using DSWeb.Common.DB;
using Terminal_CDMA;
using DSWeb.MvcShipping.Models.MsOpApply;
using DSWeb.SoftMng.Controllers;
using DSWeb.SoftMng.DAL;
using DSWeb.Areas.Mobile.DAL;
using Renci.SshNet;
namespace Job_Get_FanWeiDeE9
{
public class Job_Get_FanWeiDeE9 : IJob
{
private ILog log = LogManager.GetLogger(typeof(Job_Get_FanWeiDeE9));
//private string connStr { get; set; }
private const string admin_userid = "1BEC90E1-9780-472F-90C2-0C6390C044A4";
private const string admin_username = "系统管理员";
private string connStr = "";
private string EDINAME = "";
private string LocalDS7 = "";
public void Execute(IJobExecutionContext context)
{
log.Debug($"Execute开始");
connStr = context.JobDetail.JobDataMap.GetString("ConnectString");
EDINAME = context.JobDetail.JobDataMap.GetString("EDINAME");
//1连接ds7库查询
//2连接到数据库 查找泛微的指定表 当中 状态值为
//
try
{
CommonDataContext cdc = new CommonDataContext(connStr);
var ftpinfo = new code_FtpSet_md();
var ftpinfoList = cdc.code_FtpSet.Where(x => x.EDINAME == EDINAME).ToList();
if (ftpinfoList == null || ftpinfoList.Count == 0)
{
log.Error("没有找到BOSCH的FTP信息");
return;
}
else
{
ftpinfo = ftpinfoList[0];
}
var localpath = AppDomain.CurrentDomain.BaseDirectory + @"\XMLFILE\" + DateTime.Now.ToString("yyyy-MM-dd") + @"\";
if (Directory.Exists(localpath) == false)
{
Directory.CreateDirectory(localpath);
log.Debug($"服务器本地建立文件夹:{localpath}");
}
var remoatPath = ftpinfo.TMPFOLDERNAME.Replace(@"\", "/").EndsWith("/") ? ftpinfo.TMPFOLDERNAME : ftpinfo.TMPFOLDERNAME + "/";
}
catch (Exception ex) {
log.Error("错误中断0:" + ex.Message);
}
}
private void DoSendMessage(string mblno) {
}
}
}

@ -1,147 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1D7DA24F-AF80-4DB7-B55A-F1B52B1F1BAF}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Job_BoschEdi_FTP</RootNamespace>
<AssemblyName>Job_BoschEdi_FTP</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
</PropertyGroup>
<ItemGroup>
<Reference Include="BouncyCastle.Crypto, Version=1.8.5.0, Culture=neutral, PublicKeyToken=0e99375e54769942, processorArchitecture=MSIL">
<HintPath>..\packages\Portable.BouncyCastle.1.8.5\lib\net40\BouncyCastle.Crypto.dll</HintPath>
</Reference>
<Reference Include="Common.Logging, Version=3.3.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<HintPath>..\packages\Common.Logging.3.3.1\lib\net40\Common.Logging.dll</HintPath>
</Reference>
<Reference Include="Common.Logging.Core, Version=3.3.1.0, Culture=neutral, PublicKeyToken=af08829b84f0328e, processorArchitecture=MSIL">
<HintPath>..\packages\Common.Logging.Core.3.3.1\lib\net40\Common.Logging.Core.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.11.29.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
<HintPath>..\packages\HtmlAgilityPack.1.11.29\lib\Net45\HtmlAgilityPack.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net40-full\log4net.dll</HintPath>
</Reference>
<Reference Include="MailKit">
<HintPath>..\packages\MailKit.2.8.0\lib\net45\MailKit.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=e44a2bc38ed2c13c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DSWeb\bin\Microsoft.Practices.EnterpriseLibrary.Common.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DSWeb\bin\Microsoft.Practices.EnterpriseLibrary.Data.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=e44a2bc38ed2c13c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DSWeb\bin\Microsoft.Practices.EnterpriseLibrary.Logging.dll</HintPath>
</Reference>
<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>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DSWeb\bin\Newtonsoft.Json.dll</HintPath>
</Reference>
<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>
</Reference>
<Reference Include="Renci.SshNet, Version=2020.0.2.0, Culture=neutral, PublicKeyToken=1cee9f8bde3db106, processorArchitecture=MSIL">
<HintPath>..\packages\SSH.NET.2020.0.2\lib\net40\Renci.SshNet.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<Reference Include="System.Data.Entity" />
<Reference Include="System.Data.Entity.Design" />
<Reference Include="System.Data.Linq" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Security" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
</ItemGroup>
<ItemGroup>
<Compile Include="Job_Get_FanWeiDeE9.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="JFMailTemplate.html" />
<Content Include="quartz_jobs.xml">
<SubType>Designer</SubType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DSWeb.Common\DSWeb.Common.csproj">
<Project>{a0ab3d23-0dad-49ba-9d23-107faa1c369e}</Project>
<Name>DSWeb.Common</Name>
</ProjectReference>
<ProjectReference Include="..\DSWeb\DSWeb.csproj">
<Project>{a91be74b-0e69-433d-8622-a5d9cca76e93}</Project>
<Name>DSWeb</Name>
</ProjectReference>
<ProjectReference Include="..\HcDBUtility\HcDBUtility.csproj">
<Project>{3251626D-7409-42C5-9BB6-2BF6BD6C285B}</Project>
<Name>HcDBUtility</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
</Project>

@ -1,25 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31229.75
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Job_Get_FanWeiDeE9", "Job_Get_FanWeiDeE9.csproj", "{47E487B5-6E44-4707-AA53-8FE6D2C55EB3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{47E487B5-6E44-4707-AA53-8FE6D2C55EB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{47E487B5-6E44-4707-AA53-8FE6D2C55EB3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{47E487B5-6E44-4707-AA53-8FE6D2C55EB3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{47E487B5-6E44-4707-AA53-8FE6D2C55EB3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {039D678E-F123-4ECB-93DC-CD4F586BE647}
EndGlobalSection
EndGlobal

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.4.4" targetFramework="net45" />
<package id="HtmlAgilityPack" version="1.11.29" targetFramework="net45" />
<package id="MailKit" version="2.9.0" targetFramework="net45" />
<package id="MimeKit" version="2.9.2" targetFramework="net45" />
<package id="Portable.BouncyCastle" version="1.8.5" targetFramework="net45" />
<package id="SSH.NET" version="2020.0.2" targetFramework="net45" />
</packages>

@ -1,109 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData">
<processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives>
<schedule>
<!--
<job>
<name>Job_Bosch_FTP</name>
<group>Job_Bosch_FTP</group>
<description>博世Edi报文下载解析</description>
<job-type>Job_BoschEdi_FTP.Job_Bosch_FTP,Job_BoschEdi_FTP</job-type>
<durable>true</durable>
<recover>false</recover>
<job-data-map>
<entry>
<key>ConnectString</key>
<value>Data Source=118.190.38.160,1433;Initial Catalog=Shippingweb_BTKR;Persist Security Info=True;User ID=sa;Password=Ds20040201</value>
</entry>
<entry>
<key>EDINAME</key>
<value>TESTBOSHFTP</value>
</entry>
</job-data-map>
</job>
<trigger>
-->
<!--
<cron>
<name>TriggerJob_BoschFTP</name>
<group>Job_Bosch_FTP</group>
<description>博世Edi报文下载解析_触发器</description>
<job-name>Job_Bosch_FTP</job-name>
<job-group>Job_Bosch_FTP</job-group>
<cron-expression>0 0/1 * * * ? *</cron-expression>
</cron>
-->
<!--
<simple>
<name>TriggerJob_BoschFTP</name>
<group>Job_Bosch_FTP</group>
<description>报文下载解析</description>
<job-name>Job_Bosch_FTP</job-name>
<job-group>Job_Bosch_FTP</job-group>
<repeat-count>1</repeat-count>
<repeat-interval>3000000</repeat-interval>
</simple>
</trigger>
-->
<job>
<name>Job_SFTP_Upload</name>
<group>Job_SFTP_Upload</group>
<description>SFTP定时上传</description>
<job-type>Job_BoschEdi_FTP.Job_SFTP_Upload,Job_BoschEdi_FTP</job-type>
<durable>true</durable>
<recover>false</recover>
<job-data-map>
<entry>
<key>LocalPath</key>
<value>C:\FTP</value>
</entry>
<entry>
<key>RemotePath</key>
<value>/TEST/VGM</value>
</entry>
<entry>
<key>FTPADDRESS</key>
<value>27.223.100.75</value>
</entry>
<entry>
<key>FTPPORT</key>
<value>22</value>
</entry>
<entry>
<key>FTPUSERNAME</key>
<value>smartcma</value>
</entry>
<entry>
<key>FTPPASSWORD</key>
<value>rHtMbF2r</value>
</entry>
</job-data-map>
</job>
<trigger>
<simple>
<name>TriggerJob_SFTPUpload</name>
<group>Job_SFTP_Upload</group>
<description>SFTP定时上传</description>
<job-name>Job_SFTP_Upload</job-name>
<job-group>Job_SFTP_Upload</job-group>
<repeat-count>1</repeat-count>
<repeat-interval>3000</repeat-interval>
</simple>
</trigger>
</schedule>
</job-scheduling-data>
Loading…
Cancel
Save