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 { /// /// 获取枚举值的description文本 /// /// /// /// 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; } /// /// 获取枚举所有项的名称(name)和显示文本(description) /// /// /// public static Dictionary GetEnumList(Type type) { Dictionary dic = new Dictionary(); 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 WorkingBSNOList = new List(); 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); } } } }