You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb.Common/Helper/EnumHelper.cs

225 lines
6.8 KiB
C#

2 years ago
using DSWeb.Common.DB;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data.Entity.Migrations;
2 years ago
using System.Linq;
using System.Text;
using System.Threading;
2 years ago
using System.Threading.Tasks;
namespace DSWeb.Common.Helper
{
public static class EnumHelper
{
/// <summary>
/// 获取枚举值的description文本
/// </summary>
/// <param name="type"></param>
/// <param name="strVal"></param>
/// <returns></returns>
public static string GetDescription(Type type, string strVal)
{
System.Reflection.FieldInfo field = type.GetField(strVal);
if (field != null)
{
var attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute;
if (attribute != null)
{
return attribute.Description;
}
}
return string.Empty;
}
/// <summary>
/// 获取枚举所有项的名称name和显示文本description
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
public static Dictionary<string, string> GetEnumList(Type type)
{
Dictionary<string, string> dic = new Dictionary<string, string>();
foreach (int val in Enum.GetValues(type))
{
string strName = Enum.GetName(type, val);//获取名称
string desp = GetDescription(type, strName);
dic.Add(strName, desp);
}
return dic;
}
}
public static class ModelHelper
{
public static ch_fee_md getchfeeHelper() {
var feeShou = new ch_fee_md();
//2021-12-31要求下列字段不能为空填写0或false
feeShou.COMMISSIONRATE = 0;
feeShou.AUDITSTATUS = 0;
feeShou.LINENUM = 0;
feeShou.ISDEBIT = false;
feeShou.ISOPEN = false;
feeShou.ACCTAXRATE = 0;
feeShou.ISVOU = false;
feeShou.TAX = 0;
feeShou.PREAMOUNT = 0;
feeShou.ISACC = false;
feeShou.CUSTDUI = false;
feeShou.SETTLEMENT = 0;
feeShou.ORDERAMOUNT = 0;
feeShou.ORDERINVOICE = 0;
feeShou.ORDERINVSETTLEMENT = 0;
feeShou.ORDERSETTLEMENT = 0;
feeShou.INVOICE = 0;
feeShou.TAXRATE = 0;
feeShou.ISADVANCEDPAY = false;
feeShou.ISINVOICE = false;
feeShou.ISCRMORDERFEE = false;
feeShou.TAXUNITPRICE = 0;//2021-12-29于菲同样赋值单价和金额
feeShou.NOTAXAMOUNT = 0;//2021-12-29于菲同样赋值单价和金额
return feeShou;
}
}
public static class LogHelper
{
public static void SaveLog(string NAME, string LOGTYPE, string LOGCONTENT, string createuser = "")
{
var sys_log = new sys_log_md(NAME, LOGTYPE, LOGCONTENT, createuser);
var cdc = new CommonDataContext();
cdc.sys_log.AddOrUpdate(sys_log);
cdc.SaveChanges();
}
}
public static class DJY_SYNC_BC_Helper
{
private static List<string> WorkingBSNOList = new List<string>();
private static bool addworking(string BSNO)
{
if (WorkingBSNOList.Exists(x => x == BSNO))
{
return false;
}
else
{
return true;
}
}
private static void delworking(string BSNO)
{
if (WorkingBSNOList.Exists(x => x == BSNO))
{
WorkingBSNOList.RemoveAll(x => x == BSNO);
}
}
public static void Add(DJY_SYNC_BC_md addrec)
{
var cando = addworking(addrec.BSNO);
if (!cando)
{
Thread.Sleep(500);
Add(addrec);
}
try
{
var cdc = new CommonDataContext();
var currlist = cdc.DJY_SYNC_BC.Where(x => x.BSNO == addrec.BSNO).ToList();
if (currlist == null || currlist.Count == 0)
{
cdc.DJY_SYNC_BC.Add(addrec);
cdc.SaveChanges();
}
else
{
if (currlist.Exists(x => x.USED == false))
{
var updrec = currlist.First(x => x.USED == false);
updrec.MBLNO = addrec.MBLNO;
updrec.EDI_TIME = addrec.EDI_TIME;
updrec.VGM_TIME = addrec.VGM_TIME;
updrec.VESSEL = addrec.VESSEL;
updrec.VOYNO = addrec.VOYNO;
updrec.ATD = addrec.ATD;
updrec.CARRIER = addrec.CARRIER;
updrec.TRANSNO = addrec.TRANSNO;
//updrec.MBLNO = addrec.MBLNO;
updrec.CREATETIME = addrec.CREATETIME;
cdc.DJY_SYNC_BC.AddOrUpdate(updrec);
cdc.SaveChanges();
}
else
{
cdc.DJY_SYNC_BC.Add(addrec);
cdc.SaveChanges();
}
}
}
catch (Exception ex)
{
LogHelper.SaveLog("接收大简云订舱同步信息", "错误", ex.Message, "DS7");
}
finally
{
delworking(addrec.BSNO);
}
}
public static void UseRecord(DJY_SYNC_BC_md usedRec)
{
var cando = addworking(usedRec.BSNO);
if (!cando)
{
Thread.Sleep(500);
UseRecord(usedRec);
}
try
{
var cdc = new CommonDataContext();
var currlist = cdc.DJY_SYNC_BC.Where(x => x.GID == usedRec.GID).ToList();
if (currlist == null || currlist.Count == 0)
{
LogHelper.SaveLog("BC同步操作", "错误", $"未找到GID{usedRec.GID}");
return;
}
else
{
var updrec = currlist.First(x => x.USED == false);
updrec.USED = true;
cdc.DJY_SYNC_BC.AddOrUpdate(updrec);
cdc.SaveChanges();
}
}
catch (Exception ex)
{
LogHelper.SaveLog("BC同步操作", "错误", ex.Message, "DS7");
}
finally
{
delworking(usedRec.BSNO);
}
}
}
2 years ago
}