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#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using DSWeb.Common.DB;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data.Entity.Migrations;
using System.Linq;
using System.Text;
using System.Threading;
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);
}
}
}
}