|
|
using EasyBL.WebApi.Message; using Entity.Sugar; using Entity.ViewModels; using Newtonsoft.Json.Linq; using SqlSugar; using SqlSugar.Base; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using EasyBL; using Newtonsoft.Json; using System.Linq;
namespace EasyBL.WEBAPP.OPM { public class ExhibitionExport_QryService : ServiceBase { #region 出口分頁查詢
/// <summary>
/// 出口分頁查詢
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public ResponseMessage QueryPage(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; var db = SugarBase.GetIntance(); try { do { var pml = new PageModel { PageIndex = _fetchInt(i_crm, @"pageIndex"), PageSize = _fetchInt(i_crm, @"pageSize") }; var iPageCount = 0; var sSortField = _fetchString(i_crm, @"sortField"); var sSortOrder = _fetchString(i_crm, @"sortOrder");
var sRefNumber = _fetchString(i_crm, @"RefNumber"); var sExportBillName = _fetchString(i_crm, @"ExportBillName"); var sBillNO = _fetchString(i_crm, @"BillNO"); var sExhibitionDateStart = _fetchString(i_crm, @"ExhibitionDateStart"); var sExhibitionDateEnd = _fetchString(i_crm, @"ExhibitionDateEnd"); var sAgent = _fetchString(i_crm, @"Agent"); var sResponsiblePerson = _fetchString(i_crm, @"ResponsiblePerson"); var sBillLadNO = _fetchString(i_crm, @"BillLadNO"); var sJobTracking = _fetchString(i_crm, @"JobTracking"); var sIsIncludeVoid = _fetchString(i_crm, @"IsIncludeVoid"); var sSupplier = _fetchString(i_crm, @"Supplier"); var sREF = _fetchString(i_crm, @"REF"); var sDepartmentID = _fetchString(i_crm, @"DepartmentID"); var sFlow_Status = _fetchString(i_crm, @"Flow_Status"); var bExcel = _fetchBool(i_crm, @"Excel"); var sExcelType = _fetchString(i_crm, @"ExcelType");
string[] saJobTracking = null; string[] saIsIncludeVoid = null;
var rExhibitionDateStart = new DateTime(); var rExhibitionDateEnd = new DateTime(); if (!string.IsNullOrEmpty(sExhibitionDateStart)) { rExhibitionDateStart = SqlFunc.ToDate(sExhibitionDateStart); } if (!string.IsNullOrEmpty(sExhibitionDateEnd)) { rExhibitionDateEnd = SqlFunc.ToDate(sExhibitionDateEnd).AddDays(1); } if (!string.IsNullOrEmpty(sJobTracking)) { saJobTracking = sJobTracking.Split(','); } if (!string.IsNullOrEmpty(sIsIncludeVoid)) { saIsIncludeVoid = sIsIncludeVoid.Split(','); }
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID); var spUserID = new SugarParameter("@UserID", i_crm.USERID); var spDepartmentID = new SugarParameter("@DepartmentID", sDepartmentID);
var saRoles = db.Queryable<OTB_SYS_MembersToRule>().Where(x => x.OrgID == i_crm.ORIGID && x.MemberID == i_crm.USERID).Select(x => x.RuleID).ToList().ToArray(); var saChildDeptIds = db.Ado.SqlQuery<string>("select DepartmentId from [dbo].[OFN_SYS_GetChilDepartmentIdByDepartmentId](@OrgID,@DepartmentID)", spOrgID, spDepartmentID).ToArray(); var saDeptIdsByUser = db.Ado.SqlQuery<string>("SELECT DepartmentId FROM [dbo].[OFN_SYS_GetChilDepartmentIdByUserID](@OrgID,@UserID)", spOrgID, spUserID).ToArray(); var saChildUserIds = db.Ado.SqlQuery<string>("SELECT MemberID FROM [dbo].[OFN_SYS_GetMemberIDDownByChief](@OrgID,@UserID)", spOrgID, spUserID).ToArray();
pml.DataList = db.Queryable<OTB_OPM_ExportExhibition, OTB_SYS_Members, OTB_OPM_Exhibition, OTB_CRM_Customers, OTB_CRM_Customers> ((t1, t2, t3, t5, t6) => new object[] { JoinType.Inner, t1.OrgID == t2.OrgID && t1.ResponsiblePerson == t2.MemberID, JoinType.Left, t1.OrgID == t3.OrgID && t1.ExhibitionNO == t3.SN.ToString(), JoinType.Left, t1.OrgID == t5.OrgID && t1.Agent == t5.guid, JoinType.Left, t1.OrgID == t6.OrgID && t1.Organizer == t6.guid } ) .Where((t1) => t1.OrgID == i_crm.ORIGID) .WhereIF(!string.IsNullOrEmpty(sRefNumber), (t1) => (t1.RefNumber + t1.Exhibitors).Contains(sRefNumber)) .WhereIF(!string.IsNullOrEmpty(sExportBillName), (t1, t2, t3) => (t3.Exhibitioname_TW + t3.Exhibitioname_EN + t3.ExhibitioShotName_TW).Contains(sExportBillName)) .WhereIF(!string.IsNullOrEmpty(sResponsiblePerson), (t1) => t1.ResponsiblePerson == sResponsiblePerson) .WhereIF(!string.IsNullOrEmpty(sAgent), (t1, t2, t3, t4, t5) => (t5.CustomerCName + t5.CustomerEName).Contains(sAgent)) .WhereIF(!string.IsNullOrEmpty(sSupplier), (t1, t2, t3, t5, t6) => (t6.CustomerCName + t6.CustomerEName).Contains(sSupplier)) .WhereIF(!string.IsNullOrEmpty(sBillLadNO), (t1) => (t1.BillLadNO + t1.Exhibitors).Contains(sBillLadNO)) .WhereIF(!string.IsNullOrEmpty(sFlow_Status), (t1) => t1.Flow_Status == sFlow_Status) .WhereIF(!string.IsNullOrEmpty(sBillNO), (t1) => (t1.Bills + t1.ReturnBills).Contains("\"BillNO\":%\"" + sBillNO)) .WhereIF(!string.IsNullOrEmpty(sREF), (t1) => t1.REF.Contains(sREF)) .WhereIF(!string.IsNullOrEmpty(sDepartmentID), (t1) => SqlFunc.ContainsArray(saChildDeptIds, t1.DepartmentID)) .WhereIF(!string.IsNullOrEmpty(sJobTracking), (t1) => SqlFunc.ContainsArray(saJobTracking, t1.Release)) .WhereIF(!string.IsNullOrEmpty(sIsIncludeVoid), (t1) => SqlFunc.ContainsArray(saIsIncludeVoid, t1.IsVoid)) .WhereIF(!string.IsNullOrEmpty(sExhibitionDateStart), (t1) => t1.ExhibitionDateStart >= rExhibitionDateStart.Date) .WhereIF(!string.IsNullOrEmpty(sExhibitionDateEnd), (t1) => t1.ExhibitionDateEnd <= rExhibitionDateEnd.Date) .Where((t1) => t1.CreateUser == i_crm.USERID || t1.ResponsiblePerson == i_crm.USERID || SqlFunc.ContainsArray(saDeptIdsByUser, t1.DepartmentID) || SqlFunc.Subqueryable<OTB_SYS_Members>().Where(c => c.MemberID == t1.CreateUser && c.OrgID == t1.OrgID).Select(c => c.ImmediateSupervisor) == i_crm.USERID || SqlFunc.Subqueryable<OTB_SYS_Members>().Where(p => p.MemberID == t1.ResponsiblePerson && p.OrgID == t1.OrgID).Select(c => c.ImmediateSupervisor) == i_crm.USERID || SqlFunc.ContainsArray(saChildUserIds, t1.CreateUser) || SqlFunc.ContainsArray(saChildUserIds, t1.ResponsiblePerson) || SqlFunc.ContainsArray(saRoles, "Account") || SqlFunc.ContainsArray(saRoles, "CDD") || SqlFunc.ContainsArray(saRoles, "Admin") || SqlFunc.ContainsArray(saRoles, "Manager")) .Select((t1, t2, t3, t5) => new View_OPM_ExportExhibition { OrgID = t1.OrgID, ExportBillNO = t1.ExportBillNO, RefNumber = t1.RefNumber, ExportBillName = t3.Exhibitioname_TW, ExportBillEName = t3.Exhibitioname_EN, ExhibitionDateStart = t1.ExhibitionDateStart, ExhibitionDateEnd = t1.ExhibitionDateEnd, BillLadNO = t1.BillLadNO, IsVoid = t1.IsVoid, Flow_Status = t1.Flow_Status, Bills = t1.Bills, ReturnBills = t1.ReturnBills, REF = t1.REF, IsAlert = SqlFunc.MappingColumn(t1.ImportBillNO, "[dbo].[OFN_OPM_CheckDate](t1.Release,t1.ExhibitionDateStart,5)"), AgentName = SqlFunc.IIF(SqlFunc.HasValue(t5.CustomerCName), t5.CustomerCName, t5.CustomerEName), ResponsiblePersonName = t2.MemberName, }) .MergeTable() .OrderByIF(string.IsNullOrEmpty(sSortField), "IsAlert desc,ExhibitionDateStart desc,ExportBillName,RefNumber desc") .OrderByIF(!string.IsNullOrEmpty(sSortField), sSortField + " " + sSortOrder) .ToPageList(pml.PageIndex, bExcel ? 100000 : pml.PageSize, ref iPageCount); pml.Total = iPageCount;
rm = new SuccessResponseMessage(null, i_crm); if (bExcel) { } else { rm.DATA.Add(BLWording.REL, pml); } } while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + "Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, "EasyBL.WEBAPP.OPM.ImportExhibition_QryService", "", "QueryPage(出口分頁查詢)", "", "", ""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 出口分頁查詢
#region 出口分頁查詢
/// <summary>
/// 出口分頁查詢
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public ResponseMessage GetExcel(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; var db = SugarBase.GetIntance(); try { do { var pml = new PageModel { PageIndex = _fetchInt(i_crm, @"pageIndex"), PageSize = _fetchInt(i_crm, @"pageSize") }; var iPageCount = 0; var sSortField = _fetchString(i_crm, @"sortField"); var sSortOrder = _fetchString(i_crm, @"sortOrder");
var sRefNumber = _fetchString(i_crm, @"RefNumber"); var sExportBillName = _fetchString(i_crm, @"ExportBillName"); var sBillNO = _fetchString(i_crm, @"BillNO"); var sExhibitionDateStart = _fetchString(i_crm, @"ExhibitionDateStart"); var sExhibitionDateEnd = _fetchString(i_crm, @"ExhibitionDateEnd"); var sAgent = _fetchString(i_crm, @"Agent"); var sResponsiblePerson = _fetchString(i_crm, @"ResponsiblePerson"); var sBillLadNO = _fetchString(i_crm, @"BillLadNO"); var sJobTracking = _fetchString(i_crm, @"JobTracking"); var sIsIncludeVoid = _fetchString(i_crm, @"IsIncludeVoid"); var sSupplier = _fetchString(i_crm, @"Supplier"); var sREF = _fetchString(i_crm, @"REF"); var sDepartmentID = _fetchString(i_crm, @"DepartmentID"); var sFlow_Status = _fetchString(i_crm, @"Flow_Status"); var bExcel = _fetchBool(i_crm, @"Excel"); var sExcelType = _fetchString(i_crm, @"ExcelType");
string[] saJobTracking = null; string[] saIsIncludeVoid = null;
var rExhibitionDateStart = new DateTime(); var rExhibitionDateEnd = new DateTime(); if (!string.IsNullOrEmpty(sExhibitionDateStart)) { rExhibitionDateStart = SqlFunc.ToDate(sExhibitionDateStart); } if (!string.IsNullOrEmpty(sExhibitionDateEnd)) { rExhibitionDateEnd = SqlFunc.ToDate(sExhibitionDateEnd).AddDays(1); } if (!string.IsNullOrEmpty(sJobTracking)) { saJobTracking = sJobTracking.Split(','); } if (!string.IsNullOrEmpty(sIsIncludeVoid)) { saIsIncludeVoid = sIsIncludeVoid.Split(','); }
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID); var spUserID = new SugarParameter("@UserID", i_crm.USERID); var spDepartmentID = new SugarParameter("@DepartmentID", sDepartmentID);
var saRoles = db.Queryable<OTB_SYS_MembersToRule>().Where(x => x.OrgID == i_crm.ORIGID && x.MemberID == i_crm.USERID).Select(x => x.RuleID).ToList().ToArray(); var saChildDeptIds = db.Ado.SqlQuery<string>("select DepartmentId from [dbo].[OFN_SYS_GetChilDepartmentIdByDepartmentId](@OrgID,@DepartmentID)", spOrgID, spDepartmentID).ToArray(); var saDeptIdsByUser = db.Ado.SqlQuery<string>("SELECT DepartmentId FROM [dbo].[OFN_SYS_GetChilDepartmentIdByUserID](@OrgID,@UserID)", spOrgID, spUserID).ToArray(); var saChildUserIds = db.Ado.SqlQuery<string>("SELECT MemberID FROM [dbo].[OFN_SYS_GetMemberIDDownByChief](@OrgID,@UserID)", spOrgID, spUserID).ToArray();
pml.DataList = db.Queryable<OTB_OPM_ExportExhibition, OTB_SYS_Members, OTB_OPM_Exhibition, OTB_SYS_Arguments, OTB_CRM_Customers, OTB_CRM_Customers> ((t1, t2, t3, t4, t5, t6) => new object[] { JoinType.Inner, t1.OrgID == t2.OrgID && t1.ResponsiblePerson == t2.MemberID, JoinType.Left, t1.OrgID == t3.OrgID && t1.ExhibitionNO == t3.SN.ToString(), JoinType.Left, t1.OrgID == t4.OrgID && t1.TransportationMode == t4.ArgumentID && t4.ArgumentClassID == "Transport", JoinType.Left, t1.OrgID == t5.OrgID && t1.Agent == t5.guid, JoinType.Left, t1.OrgID == t6.OrgID && t1.Organizer == t6.guid } ) .Where((t1) => t1.OrgID == i_crm.ORIGID) .WhereIF(!string.IsNullOrEmpty(sRefNumber), (t1) => (t1.RefNumber + t1.Exhibitors).Contains(sRefNumber)) .WhereIF(!string.IsNullOrEmpty(sExportBillName), (t1, t2, t3) => (t3.Exhibitioname_TW + t3.Exhibitioname_EN + t3.ExhibitioShotName_TW).Contains(sExportBillName)) .WhereIF(!string.IsNullOrEmpty(sResponsiblePerson), (t1) => t1.ResponsiblePerson == sResponsiblePerson) .WhereIF(!string.IsNullOrEmpty(sAgent), (t1, t2, t3, t4, t5) => (t5.CustomerCName + t5.CustomerEName).Contains(sAgent)) .WhereIF(!string.IsNullOrEmpty(sSupplier), (t1, t2, t3, t4, t5, t6) => (t6.CustomerCName + t6.CustomerEName).Contains(sSupplier)) .WhereIF(!string.IsNullOrEmpty(sBillLadNO), (t1) => (t1.BillLadNO + t1.Exhibitors).Contains(sBillLadNO)) .WhereIF(!string.IsNullOrEmpty(sFlow_Status), (t1) => t1.Flow_Status == sFlow_Status) .WhereIF(!string.IsNullOrEmpty(sBillNO), (t1) => (t1.Bills + t1.ReturnBills).Contains(sBillNO)) .WhereIF(!string.IsNullOrEmpty(sREF), (t1) => t1.REF.Contains(sREF)) .WhereIF(!string.IsNullOrEmpty(sDepartmentID), (t1) => SqlFunc.ContainsArray(saChildDeptIds, t1.DepartmentID)) .WhereIF(!string.IsNullOrEmpty(sJobTracking), (t1) => SqlFunc.ContainsArray(saJobTracking, t1.Release)) .WhereIF(!string.IsNullOrEmpty(sIsIncludeVoid), (t1) => SqlFunc.ContainsArray(saIsIncludeVoid, t1.IsVoid)) .WhereIF(!string.IsNullOrEmpty(sExhibitionDateStart), (t1) => t1.ExhibitionDateStart >= rExhibitionDateStart.Date) .WhereIF(!string.IsNullOrEmpty(sExhibitionDateEnd), (t1) => t1.ExhibitionDateEnd <= rExhibitionDateEnd.Date) .Where((t1) => t1.CreateUser == i_crm.USERID || t1.ResponsiblePerson == i_crm.USERID || SqlFunc.ContainsArray(saDeptIdsByUser, t1.DepartmentID) || SqlFunc.Subqueryable<OTB_SYS_Members>().Where(c => c.MemberID == t1.CreateUser && c.OrgID == t1.OrgID).Select(c => c.ImmediateSupervisor) == i_crm.USERID || SqlFunc.Subqueryable<OTB_SYS_Members>().Where(p => p.MemberID == t1.ResponsiblePerson && p.OrgID == t1.OrgID).Select(c => c.ImmediateSupervisor) == i_crm.USERID || SqlFunc.ContainsArray(saChildUserIds, t1.CreateUser) || SqlFunc.ContainsArray(saChildUserIds, t1.ResponsiblePerson) || SqlFunc.ContainsArray(saRoles, "Account") || SqlFunc.ContainsArray(saRoles, "CDD") || SqlFunc.ContainsArray(saRoles, "Admin") || SqlFunc.ContainsArray(saRoles, "Manager")) .Select((t1, t2, t3, t4, t5, t6) => new View_OPM_ExportExhibition { OrgID = t1.OrgID, ExportBillNO = t1.ExportBillNO, ExhibitionNO = t1.ExhibitionNO, RefNumber = t1.RefNumber, ExportDeclarationNO = t1.ExportDeclarationNO, ImportBillNO = t1.ImportBillNO, ExportBillName = t3.Exhibitioname_TW, ExportBillEName = t3.Exhibitioname_EN, ExhibitioShotName_TW = t3.ExhibitioShotName_TW, ExhibitionDateStart = t1.ExhibitionDateStart, ExhibitionDateEnd = t1.ExhibitionDateEnd, CarriersNumber = t1.CarriersNumber, ResponsiblePerson = t1.ResponsiblePerson, BillLadNO = t1.BillLadNO, BillLadNOSub = t1.BillLadNOSub, ContainerNumber = t1.ContainerNumber, ShipmentPort = t1.ShipmentPort, Destination = t1.Destination, ShippingCompany = t1.ShippingCompany, Suppliers = t1.Suppliers, Release = t1.Release, Exhibitors = t1.Exhibitors, IsVoid = t1.IsVoid, Flow_Status = t1.Flow_Status, Bills = t1.Bills, ReturnBills = t1.ReturnBills, REF = t1.REF, DepartmentID = t1.DepartmentID, Memo = t1.Memo, IsAlert = SqlFunc.MappingColumn(t1.ImportBillNO, "[dbo].[OFN_OPM_CheckDate](t1.Release,t1.ExhibitionDateStart,5)"), ExhibitionDate = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(varchar(100),t1.ExhibitionDateStart, 111)+'~'+CONVERT(VARCHAR(100),t1.ExhibitionDateEnd, 111)"), OrganizerName = SqlFunc.IIF(SqlFunc.HasValue(t6.CustomerCName), t6.CustomerCName, t6.CustomerEName), AgentName = SqlFunc.IIF(SqlFunc.HasValue(t5.CustomerCName), t5.CustomerCName, t5.CustomerEName), ResponsiblePersonName = t2.MemberName, TransportationModeName = t4.ArgumentValue, _DocumentDeadline = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(VARCHAR(100),DocumentDeadline, 111)"), _ClosingDate = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(VARCHAR(100),ClosingDate, 111)"), _ETC = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(VARCHAR(100),ETC, 111)"), _ETD = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(VARCHAR(100),ETD, 111)"), _ETA = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(VARCHAR(100),ETA, 111)"), _ReminderAgentExecutionDate = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(VARCHAR(100),ReminderAgentExecutionDate, 111)"), _PreExhibitionDate = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(VARCHAR(100),PreExhibitionDate, 111)"), _ExitDate = SqlFunc.MappingColumn(t1.ImportBillNO, "CONVERT(VARCHAR(100),ExitDate, 111)"), }) .MergeTable() .OrderByIF(string.IsNullOrEmpty(sSortField), "IsAlert desc,ExhibitionDateStart desc,ExportBillName,RefNumber desc") .OrderByIF(!string.IsNullOrEmpty(sSortField), sSortField + " " + sSortOrder) .ToPageList(pml.PageIndex, bExcel ? 100000 : pml.PageSize, ref iPageCount); pml.Total = iPageCount;
rm = new SuccessResponseMessage(null, i_crm); if (bExcel) { var sFileName = ""; var oHeader_Last = new object(); var oHeader = new Dictionary<string, string>(); var listMerge = new List<Dictionary<string, int>>(); var dicAlain = new Dictionary<string, string>(); var dt_new = new DataTable(); var saCustomers1 = pml.DataList; var saBasicInformation = pml.DataList as List<View_OPM_ExportExhibition>; switch (sExcelType) { case "Export_BasicInformation": { dt_new = saBasicInformation.ListToDataTable<View_OPM_ExportExhibition>(); sFileName = "出口基本資料"; oHeader = new Dictionary<string, string> { { "RowIndex", "項次" }, { "RefNumber", "查詢號碼" }, { "ResponsiblePersonName", "負責業務" }, { "ExportBillName", "展覽名稱" }, { "ExportBillEName", "英文展名" }, { "ExhibitionDate", "展覽日期起訖" }, { "OrganizerName", "主辦單位" }, { "AgentName", "國外代理" }, { "CarriersNumber", "承運家數" }, { "ShipmentPort", "起運地" }, { "Destination", "目的地" }, { "BillLadNO", "提單號碼" }, { "BillLadNOSub", "分提單號碼" }, { "ContainerNumber", "貨櫃號碼" }, { "ExportDeclarationNO", "出口報單號碼" }, { "TransportationModeName", "運送方式" }, { "ShippingCompany", "船公司" }, { "_DocumentDeadline", "文件截止日" }, { "_ClosingDate", "收貨截止日" }, { "_ETC", "ETC" }, { "_ETD", "ETD" }, { "_ETA", "ETA" }, { "_ReminderAgentExecutionDate", "提醒代理執行日" }, { "_PreExhibitionDate", "佈展日期" }, { "_ExitDate", "退場日期" }, { "Memo", "特別注意事項" } }; dicAlain = ExcelService.GetExportAlain(oHeader, "RefNumber,_ClosingDate,_ClosingDate,_ETC,_ETD,_ETA,_ReminderAgentExecutionDate,_PreExhibitionDate,_ExitDate"); oHeader_Last = oHeader; } break;
case "Export_BusinessTrackingSchedule": { var Export_BusinessTrackingSchedule_List = new List<Dictionary<string, object>>(); var Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>(); var dt = saBasicInformation.ListToDataTable<View_OPM_ExportExhibition>(); sFileName = "業務追蹤進度表"; oHeader = new Dictionary<string, string> { { "RowIndex", "項次" }, { "RefNumber", "查詢號碼" }, { "ResponsiblePersonName", "負責業務" }, { "ExportBillName", "展覽名稱" }, { "ExportBillEName", "英文展名" }, { "ExhibitionDate", "展覽日期起訖" }, { "OrganizerName", "主辦單位" }, { "AgentName", "國外代理" }, { "CarriersNumber", "承運家數" }, { "ShipmentPort", "起運地" }, { "Destination", "目的地" }, { "BillLadNO", "提單號碼" }, { "BillLadNOSub", "分提單號碼" }, { "ContainerNumber", "貨櫃號碼" }, { "ExportDeclarationNO", "出口報單號碼" }, { "TransportationModeName", "運送方式" }, { "ShippingCompany", "船公司" }, { "DocumentDeadline", "文件截止日" }, { "ClosingDate", "收貨截止日" }, { "ETC", " ETC " }, { "ETD", " ETD " }, { "ETA", " ETA " }, { "ReminderAgentExecutionDate", "提醒代理執行日" }, { "PreExhibitionDate", "佈展日期" }, { "ExitDate", "退場日期" }, { "Memo", "特別注意事項" } }; dicAlain = ExcelService.GetExportAlain(oHeader, new string[] { "Email", "Contactor", "ContactorEmail" });
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "基本資料"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.Chocolate); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
oHeader.Add("Exhibitors_CustomerCode", "廠商代碼"); oHeader.Add("Exhibitors_SupplierName", "廠商名稱"); oHeader.Add("Exhibitors_RefSupplierNo", "廠商查詢號碼"); oHeader.Add("Exhibitors_ExportBillNO", "帳單號碼");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "參展商資料"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.Aqua); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
oHeader.Add("ExportData_Intowarehouse_Date", "貨物進倉"); oHeader.Add("ExportData_Intowarehouse_Number", "到貨件數"); oHeader.Add("ExportData_CustomsDeclaration_Date", "報關作業"); oHeader.Add("ExportData_ExportRelease_Date", "出口放行");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "貨物出口"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.HotPink); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
oHeader.Add("ClearanceData_GoodsArrival_Date", "貨物抵達"); oHeader.Add("ClearanceData_CargoRelease_Date", "貨物放行"); oHeader.Add("ClearanceData_WaitingApproach_Date", "等待進場"); oHeader.Add("ClearanceData_ServiceBooth_Date", "送達攤位");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "目的地清關作業"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.Yellow); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new = new DataTable(); foreach (DataColumn col in dt.Columns) { dt_new.Columns.Add(col.ToString()); }
dt_new.Columns.Add("Exhibitors_CustomerCode"); dt_new.Columns.Add("Exhibitors_SupplierName"); dt_new.Columns.Add("Exhibitors_RefSupplierNo"); dt_new.Columns.Add("Exhibitors_ExportBillNO");
dt_new.Columns.Add("ExportData_Intowarehouse_Date"); dt_new.Columns.Add("ExportData_Intowarehouse_Number"); dt_new.Columns.Add("ExportData_CustomsDeclaration_Date"); dt_new.Columns.Add("ExportData_ExportRelease_Date");
dt_new.Columns.Add("ClearanceData_GoodsArrival_Date"); dt_new.Columns.Add("ClearanceData_CargoRelease_Date"); dt_new.Columns.Add("ClearanceData_WaitingApproach_Date"); dt_new.Columns.Add("ClearanceData_ServiceBooth_Date");
//添加Header
var dicHeaderKeys = new Dictionary<string, int>(); foreach (DataRow row in dt.Rows) { var JExhibitors = (JArray)JsonConvert.DeserializeObject(row["Exhibitors"].ToString()); if (JExhibitors.Count > 0) { //廠商資料
foreach (JObject Exhibitor in JExhibitors) { if (!dicHeaderKeys.Keys.Contains("ReImport") && Exhibitor["ReImport"] != null) { oHeader.Add("ReImport_CargoCollection_Date", "貨物收取"); oHeader.Add("ReImport_Number", "退運件數"); oHeader.Add("ReImport_Unit", "單位"); oHeader.Add("ReImport_FileValidation_Date", "文件確認"); oHeader.Add("ReImport_TransportationMode", "運送方式"); oHeader.Add("ReImport_GoodsType", "貨型"); oHeader.Add("ReImport_HuiYun_Date", "回運中"); oHeader.Add("ReImport_GoodsArrival_Date", "貨物抵達"); oHeader.Add("ReImport_CustomsDeclaration_Date", "報關作業"); oHeader.Add("ReImport_CargoRelease_Date", "貨物放行"); oHeader.Add("ReImport_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "展貨退運"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.LightSalmon); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("ReImport_CargoCollection_Date"); dt_new.Columns.Add("ReImport_Number"); dt_new.Columns.Add("ReImport_Unit"); dt_new.Columns.Add("ReImport_FileValidation_Date"); dt_new.Columns.Add("ReImport_TransportationMode"); dt_new.Columns.Add("ReImport_GoodsType"); dt_new.Columns.Add("ReImport_HuiYun_Date"); dt_new.Columns.Add("ReImport_GoodsArrival_Date"); dt_new.Columns.Add("ReImport_CustomsDeclaration_Date"); dt_new.Columns.Add("ReImport_CargoRelease_Date"); dt_new.Columns.Add("ReImport_Sign_Date");
dicHeaderKeys.Add("ReImport", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("TranserThird") && Exhibitor["TranserThird"] != null) { oHeader.Add("TranserThird_CargoCollection_Date", "貨物收取"); oHeader.Add("TranserThird_Number", "件數"); oHeader.Add("TranserThird_Unit", "單位"); oHeader.Add("TranserThird_FileValidation_Date", "文件確認"); oHeader.Add("TranserThird_TransportationMode", "運送方式"); oHeader.Add("TranserThird_GoodsType", "貨型"); oHeader.Add("TranserThird_Destination", "目的地"); oHeader.Add("TranserThird_InTransit_Date", "回運中"); oHeader.Add("TranserThird_GoodsArrival_Date", "貨物抵達"); oHeader.Add("TranserThird_CargoRelease_Date", "貨物放行"); oHeader.Add("TranserThird_ServiceBooth_Date", "送達攤位");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "轉運其他地區"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.Bisque); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("TranserThird_CargoCollection_Date"); dt_new.Columns.Add("TranserThird_Number"); dt_new.Columns.Add("TranserThird_Unit"); dt_new.Columns.Add("TranserThird_FileValidation_Date"); dt_new.Columns.Add("TranserThird_TransportationMode"); dt_new.Columns.Add("TranserThird_GoodsType"); dt_new.Columns.Add("TranserThird_Destination"); dt_new.Columns.Add("TranserThird_InTransit_Date"); dt_new.Columns.Add("TranserThird_GoodsArrival_Date"); dt_new.Columns.Add("TranserThird_CargoRelease_Date"); dt_new.Columns.Add("TranserThird_ServiceBooth_Date");
dicHeaderKeys.Add("TranserThird", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("PartThird") && Exhibitor["PartThird"] != null) { oHeader.Add("PartThird_CargoCollection_Date", "貨物收取"); oHeader.Add("PartThird_Number", "件數"); oHeader.Add("PartThird_Unit", "單位"); oHeader.Add("PartThird_FileValidation_Date", "文件確認"); oHeader.Add("PartThird_TransportationMode", "運送方式"); oHeader.Add("PartThird_GoodsType", "貨型"); oHeader.Add("PartThird_Destination", "目的地"); oHeader.Add("PartThird_InTransit_Date", "回運中"); oHeader.Add("PartThird_GoodsArrival_Date", "貨物抵達"); oHeader.Add("PartThird_CargoRelease_Date", "貨物放行"); oHeader.Add("PartThird_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "轉運其他地區(部份轉運其他地區;部份退運回台)"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.LightCoral); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("PartThird_CargoCollection_Date"); dt_new.Columns.Add("PartThird_Number"); dt_new.Columns.Add("PartThird_Unit"); dt_new.Columns.Add("PartThird_FileValidation_Date"); dt_new.Columns.Add("PartThird_TransportationMode"); dt_new.Columns.Add("PartThird_GoodsType"); dt_new.Columns.Add("PartThird_Destination"); dt_new.Columns.Add("PartThird_InTransit_Date"); dt_new.Columns.Add("PartThird_GoodsArrival_Date"); dt_new.Columns.Add("PartThird_CargoRelease_Date"); dt_new.Columns.Add("PartThird_Sign_Date");
dicHeaderKeys.Add("PartThird", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("PartReImport") && Exhibitor["PartReImport"] != null) { oHeader.Add("PartReImport_CargoCollection_Date", "貨物收取"); oHeader.Add("PartReImport_Number", "退運件數"); oHeader.Add("PartReImport_Unit", "單位"); oHeader.Add("PartReImport_FileValidation_Date", "文件確認"); oHeader.Add("PartReImport_GoodsType", "貨型"); oHeader.Add("PartReImport_HuiYun_Date", "回運中"); oHeader.Add("PartReImport_GoodsArrival_Date", "貨物抵達"); oHeader.Add("PartReImport_CustomsDeclaration_Date", "報關作業"); oHeader.Add("PartReImport_CargoRelease_Date", "貨物放行"); oHeader.Add("PartReImport_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "展後回運(部份轉運其他地區;部份退運回台)"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.LightSalmon); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("PartReImport_CargoCollection_Date"); dt_new.Columns.Add("PartReImport_Number"); dt_new.Columns.Add("PartReImport_Unit"); dt_new.Columns.Add("PartReImport_FileValidation_Date"); dt_new.Columns.Add("PartReImport_GoodsType"); dt_new.Columns.Add("PartReImport_HuiYun_Date"); dt_new.Columns.Add("PartReImport_GoodsArrival_Date"); dt_new.Columns.Add("PartReImport_CustomsDeclaration_Date"); dt_new.Columns.Add("PartReImport_CargoRelease_Date"); dt_new.Columns.Add("PartReImport_Sign_Date");
dicHeaderKeys.Add("PartReImport", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("ReImportFour") && Exhibitor["ReImportFour"] != null) { oHeader.Add("ReImportFour_CargoCollection_Date", "貨物收取"); oHeader.Add("ReImportFour_Number", "退運件數"); oHeader.Add("ReImportFour_Unit", "單位"); oHeader.Add("ReImportFour_FileValidation_Date", "文件確認"); oHeader.Add("ReImportFour_TransportationMode", "運送方式"); oHeader.Add("ReImportFour_GoodsType", "貨型"); oHeader.Add("ReImportFour_HuiYun_Date", "回運中"); oHeader.Add("ReImportFour_GoodsArrival_Date", "貨物抵達"); oHeader.Add("ReImportFour_CustomsDeclaration_Date", "報關作業"); oHeader.Add("ReImportFour_CargoRelease_Date", "貨物放行"); oHeader.Add("ReImportFour_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "展後回運(出貨至第第三地後)"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.LightSalmon); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("ReImportFour_CargoCollection_Date"); dt_new.Columns.Add("ReImportFour_Number"); dt_new.Columns.Add("ReImportFour_Unit"); dt_new.Columns.Add("ReImportFour_FileValidation_Date"); dt_new.Columns.Add("ReImportFour_TransportationMode"); dt_new.Columns.Add("ReImportFour_GoodsType"); dt_new.Columns.Add("ReImportFour_HuiYun_Date"); dt_new.Columns.Add("ReImportFour_GoodsArrival_Date"); dt_new.Columns.Add("ReImportFour_CustomsDeclaration_Date"); dt_new.Columns.Add("ReImportFour_CargoRelease_Date"); dt_new.Columns.Add("ReImportFour_Sign_Date");
dicHeaderKeys.Add("ReImportFour", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("TransferFour") && Exhibitor["TransferFour"] != null) { oHeader.Add("TransferFour_CargoCollection_Date", "貨物收取"); oHeader.Add("TransferFour_Number", "件數"); oHeader.Add("TransferFour_Unit", "單位"); oHeader.Add("TransferFour_FileValidation_Date", "文件確認"); oHeader.Add("TransferFour_TransportationMode", "運送方式"); oHeader.Add("TransferFour_GoodsType", "貨型"); oHeader.Add("TransferFour_Destination", "目的地"); oHeader.Add("TransferFour_InTransit_Date", "回運中"); oHeader.Add("TransferFour_GoodsArrival_Date", "貨物抵達"); oHeader.Add("TransferFour_CargoRelease_Date", "貨物放行"); oHeader.Add("TransferFour_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "出貨至第四地"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.PaleGreen); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("TransferFour_CargoCollection_Date"); dt_new.Columns.Add("TransferFour_Number"); dt_new.Columns.Add("TransferFour_Unit"); dt_new.Columns.Add("TransferFour_FileValidation_Date"); dt_new.Columns.Add("TransferFour_TransportationMode"); dt_new.Columns.Add("TransferFour_GoodsType"); dt_new.Columns.Add("TransferFour_Destination"); dt_new.Columns.Add("TransferFour_InTransit_Date"); dt_new.Columns.Add("TransferFour_GoodsArrival_Date"); dt_new.Columns.Add("TransferFour_CargoRelease_Date"); dt_new.Columns.Add("TransferFour_Sign_Date");
dicHeaderKeys.Add("TransferFour", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("ReImportFive") && Exhibitor["ReImportFive"] != null) { oHeader.Add("ReImportFive_CargoCollection_Date", "貨物收取"); oHeader.Add("ReImportFive_Number", "退運件數"); oHeader.Add("ReImportFive_Unit", "單位"); oHeader.Add("ReImportFive_FileValidation_Date", "文件確認"); oHeader.Add("ReImportFive_TransportationMode", "運送方式"); oHeader.Add("ReImportFive_GoodsType", "貨型"); oHeader.Add("ReImportFive_HuiYun_Date", "回運中"); oHeader.Add("ReImportFive_GoodsArrival_Date", "貨物抵達"); oHeader.Add("ReImportFive_CustomsDeclaration_Date", "報關作業"); oHeader.Add("ReImportFive_CargoRelease_Date", "貨物放行"); oHeader.Add("ReImportFive_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "展後回運(出貨至第四地後)"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.CornflowerBlue); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("ReImportFive_CargoCollection_Date"); dt_new.Columns.Add("ReImportFive_Number"); dt_new.Columns.Add("ReImportFive_Unit"); dt_new.Columns.Add("ReImportFive_FileValidation_Date"); dt_new.Columns.Add("ReImportFive_TransportationMode"); dt_new.Columns.Add("ReImportFive_GoodsType"); dt_new.Columns.Add("ReImportFive_HuiYun_Date"); dt_new.Columns.Add("ReImportFive_GoodsArrival_Date"); dt_new.Columns.Add("ReImportFive_CustomsDeclaration_Date"); dt_new.Columns.Add("ReImportFive_CargoRelease_Date"); dt_new.Columns.Add("ReImportFive_Sign_Date");
dicHeaderKeys.Add("ReImportFive", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("TransferFive") && Exhibitor["TransferFive"] != null) { oHeader.Add("TransferFive_CargoCollection_Date", "貨物收取"); oHeader.Add("TransferFive_Number", "件數"); oHeader.Add("TransferFive_Unit", "單位"); oHeader.Add("TransferFive_FileValidation_Date", "文件確認"); oHeader.Add("TransferFive_TransportationMode", "運送方式"); oHeader.Add("TransferFive_GoodsType", "貨型"); oHeader.Add("TransferFive_Destination", "目的地"); oHeader.Add("TransferFive_InTransit_Date", "回運中"); oHeader.Add("TransferFive_GoodsArrival_Date", "貨物抵達"); oHeader.Add("TransferFive_CargoRelease_Date", "貨物放行"); oHeader.Add("TransferFive_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "出貨至第五地"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.ForestGreen); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("TransferFive_CargoCollection_Date"); dt_new.Columns.Add("TransferFive_Number"); dt_new.Columns.Add("TransferFive_Unit"); dt_new.Columns.Add("TransferFive_FileValidation_Date"); dt_new.Columns.Add("TransferFive_TransportationMode"); dt_new.Columns.Add("TransferFive_GoodsType"); dt_new.Columns.Add("TransferFive_Destination"); dt_new.Columns.Add("TransferFive_InTransit_Date"); dt_new.Columns.Add("TransferFive_GoodsArrival_Date"); dt_new.Columns.Add("TransferFive_CargoRelease_Date"); dt_new.Columns.Add("TransferFive_Sign_Date");
dicHeaderKeys.Add("TransferFive", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("ReImportSix") && Exhibitor["ReImportSix"] != null) { oHeader.Add("ReImportSix_CargoCollection_Date", "貨物收取"); oHeader.Add("ReImportSix_Number", "退運件數"); oHeader.Add("ReImportSix_Unit", "單位"); oHeader.Add("ReImportSix_FileValidation_Date", "文件確認"); oHeader.Add("ReImportSix_TransportationMode", "運送方式"); oHeader.Add("ReImportSix_GoodsType", "貨型"); oHeader.Add("ReImportSix_HuiYun_Date", "回運中"); oHeader.Add("ReImportSix_GoodsArrival_Date", "貨物抵達"); oHeader.Add("ReImportSix_CustomsDeclaration_Date", "報關作業"); oHeader.Add("ReImportSix_CustomsDeclaration_CustomsClearance", "通關方式"); oHeader.Add("ReImportSix_CargoRelease_Date", "貨物放行"); oHeader.Add("ReImportSix_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "展後回運(出貨至第五地後)"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.DimGray); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("ReImportSix_CargoCollection_Date"); dt_new.Columns.Add("ReImportSix_Number"); dt_new.Columns.Add("ReImportSix_Unit"); dt_new.Columns.Add("ReImportSix_FileValidation_Date"); dt_new.Columns.Add("ReImportSix_TransportationMode"); dt_new.Columns.Add("ReImportSix_GoodsType"); dt_new.Columns.Add("ReImportSix_HuiYun_Date"); dt_new.Columns.Add("ReImportSix_GoodsArrival_Date"); dt_new.Columns.Add("ReImportSix_CustomsDeclaration_Date"); dt_new.Columns.Add("ReImportSix_CustomsDeclaration_CustomsClearance"); dt_new.Columns.Add("ReImportSix_CargoRelease_Date"); dt_new.Columns.Add("ReImportSix_Sign_Date");
dicHeaderKeys.Add("ReImportSix", dicHeaderKeys.Keys.Count + 1); } if (!dicHeaderKeys.Keys.Contains("TransferSix") && Exhibitor["TransferSix"] != null) { oHeader.Add("TransferSix_CargoCollection_Date", "貨物收取"); oHeader.Add("TransferSix_Number", "件數"); oHeader.Add("TransferSix_Unit", "單位"); oHeader.Add("TransferSix_FileValidation_Date", "文件確認"); oHeader.Add("TransferSix_TransportationMode", "運送方式"); oHeader.Add("TransferSix_GoodsType", "貨型"); oHeader.Add("TransferSix_Destination", "目的地"); oHeader.Add("TransferSix_InTransit_Date", "回運中"); oHeader.Add("TransferSix_GoodsArrival_Date", "貨物抵達"); oHeader.Add("TransferSix_CargoRelease_Date", "貨物放行"); oHeader.Add("TransferSix_Sign_Date", "客戶簽收");
Export_BusinessTrackingSchedule_Group.Add("Header", oHeader); Export_BusinessTrackingSchedule_Group.Add("HeaderName", "出貨至第六地"); Export_BusinessTrackingSchedule_Group.Add("Color", Color.SlateGray); Export_BusinessTrackingSchedule_List.Add(Export_BusinessTrackingSchedule_Group); oHeader = new Dictionary<string, string>(); Export_BusinessTrackingSchedule_Group = new Dictionary<string, object>();
dt_new.Columns.Add("TransferSix_CargoCollection_Date"); dt_new.Columns.Add("TransferSix_Number"); dt_new.Columns.Add("TransferSix_Unit"); dt_new.Columns.Add("TransferSix_FileValidation_Date"); dt_new.Columns.Add("TransferSix_TransportationMode"); dt_new.Columns.Add("TransferSix_GoodsType"); dt_new.Columns.Add("TransferSix_Destination"); dt_new.Columns.Add("TransferSix_InTransit_Date"); dt_new.Columns.Add("TransferSix_GoodsArrival_Date"); dt_new.Columns.Add("TransferSix_CargoRelease_Date"); dt_new.Columns.Add("TransferSix_Sign_Date");
dicHeaderKeys.Add("TransferSix", dicHeaderKeys.Keys.Count + 1); } } } }
var iFirstRow = 4; foreach (DataRow row in dt.Rows) { var row_new = dt_new.NewRow();//
var JExhibitors = (JArray)JsonConvert.DeserializeObject(row["Exhibitors"].ToString()); if (JExhibitors.Count > 0) { //合併基本資料
var iMergeColCount = ((Dictionary<string, string>)Export_BusinessTrackingSchedule_List[0]["Header"]).Keys.Count; for (var iFirstCol = 0; iFirstCol < iMergeColCount; iFirstCol++) { var dicMerge = new Dictionary<string, int> { { "FirstRow", iFirstRow }, { "FirstCol", iFirstCol }, { "RowCount", JExhibitors.Count }, { "ColCount", 1 } }; listMerge.Add(dicMerge); } //廠商資料
foreach (JObject Exhibitor in JExhibitors) { row_new = dt_new.NewRow(); foreach (DataColumn col in dt.Columns) { row_new[col.ToString()] = row[col.ToString()]; } var jExportData = (JObject)Exhibitor["ExportData"]; var jClearanceData = (JObject)Exhibitor["ClearanceData"]; var jReImport = (JObject)Exhibitor["ReImport"]; var jTranserThird = (JObject)Exhibitor["TranserThird"]; var jPartThird = (JObject)Exhibitor["PartThird"]; var jPartReImport = (JObject)Exhibitor["PartReImport"]; var jReImportFour = (JObject)Exhibitor["ReImportFour"]; var jTransferFour = (JObject)Exhibitor["TransferFour"]; var jReImportFive = (JObject)Exhibitor["ReImportFive"]; var jTransferFive = (JObject)Exhibitor["TransferFive"]; var jReImportSix = (JObject)Exhibitor["ReImportSix"]; var jTransferSix = (JObject)Exhibitor["TransferSix"];
row_new["Exhibitors_CustomerCode"] = Exhibitor["CustomerCode"]; row_new["Exhibitors_SupplierName"] = Exhibitor["SupplierName"]; row_new["Exhibitors_RefSupplierNo"] = Exhibitor["RefSupplierNo"]; row_new["Exhibitors_ExportBillNO"] = Exhibitor["BillNO"] ?? ""; if (jExportData != null) { row_new["ExportData_Intowarehouse_Date"] = ((JObject)jExportData["Intowarehouse"])["Date"]; row_new["ExportData_Intowarehouse_Number"] = ((JObject)jExportData["Intowarehouse"])["Number"]; row_new["ExportData_CustomsDeclaration_Date"] = ((JObject)jExportData["CustomsDeclaration"])["Date"]; row_new["ExportData_ExportRelease_Date"] = ((JObject)jExportData["ExportRelease"])["Date"]; }
if (jClearanceData != null) { row_new["ClearanceData_GoodsArrival_Date"] = ((JObject)jClearanceData["GoodsArrival"])["Date"]; row_new["ClearanceData_CargoRelease_Date"] = ((JObject)jClearanceData["CargoRelease"])["Date"]; row_new["ClearanceData_WaitingApproach_Date"] = jClearanceData["WaitingApproach"] == null ? "" : ((JObject)jClearanceData["WaitingApproach"])["Date"]; row_new["ClearanceData_ServiceBooth_Date"] = ((JObject)jClearanceData["ServiceBooth"])["Date"]; }
if (jReImport != null) { row_new["ReImport_CargoCollection_Date"] = ((JObject)jReImport["CargoCollection"])["Date"]; row_new["ReImport_Number"] = jReImport["Number"]; row_new["ReImport_Unit"] = jReImport["Unit"]; row_new["ReImport_FileValidation_Date"] = ((JObject)jReImport["FileValidation"])["Date"]; var sTransportationMode = jReImport["TransportationMode"] == null ? "" : jReImport["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["ReImport_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["ReImport_GoodsType"] = jReImport["GoodsType"]; row_new["ReImport_HuiYun_Date"] = ((JObject)jReImport["HuiYun"])["Date"]; row_new["ReImport_GoodsArrival_Date"] = ((JObject)jReImport["GoodsArrival"])["Date"]; row_new["ReImport_CustomsDeclaration_Date"] = ((JObject)jReImport["CustomsDeclaration"])["Date"]; row_new["ReImport_CargoRelease_Date"] = ((JObject)jReImport["CargoRelease"])["Date"]; row_new["ReImport_Sign_Date"] = ((JObject)jReImport["Sign"])["Date"]; }
if (jTranserThird != null) { row_new["TranserThird_CargoCollection_Date"] = ((JObject)jTranserThird["CargoCollection"])["Date"]; row_new["TranserThird_Number"] = jTranserThird["Number"]; row_new["TranserThird_Unit"] = jTranserThird["Number"]; row_new["TranserThird_FileValidation_Date"] = ((JObject)jTranserThird["FileValidation"])["Date"]; var sTransportationMode = jTranserThird["TransportationMode"] == null ? "" : jTranserThird["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["TranserThird_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["TranserThird_GoodsType"] = jTranserThird["GoodsType"]; row_new["TranserThird_Destination"] = jTranserThird["Destination"]; row_new["TranserThird_InTransit_Date"] = ((JObject)jTranserThird["InTransit"])["Date"]; row_new["TranserThird_GoodsArrival_Date"] = ((JObject)jTranserThird["GoodsArrival"])["Date"]; row_new["TranserThird_CargoRelease_Date"] = ((JObject)jTranserThird["CargoRelease"])["Date"]; row_new["TranserThird_ServiceBooth_Date"] = ((JObject)jTranserThird["ServiceBooth"])["Date"]; } if (jPartThird != null) { row_new["PartThird_CargoCollection_Date"] = ((JObject)jPartThird["CargoCollection"])["Date"]; row_new["PartThird_Number"] = jPartThird["Number"]; row_new["PartThird_Unit"] = jPartThird["Unit"]; row_new["PartThird_FileValidation_Date"] = ((JObject)jPartThird["FileValidation"])["Date"]; var sTransportationMode = jPartThird["TransportationMode"] == null ? "" : jPartThird["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["PartThird_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["PartThird_GoodsType"] = jPartThird["GoodsType"]; row_new["PartThird_Destination"] = jPartThird["Destination"]; row_new["PartThird_InTransit_Date"] = ((JObject)jPartThird["InTransit"])["Date"]; row_new["PartThird_GoodsArrival_Date"] = ((JObject)jPartThird["GoodsArrival"])["Date"]; row_new["PartThird_CargoRelease_Date"] = ((JObject)jPartThird["CargoRelease"])["Date"]; row_new["PartThird_Sign_Date"] = ((JObject)jPartThird["Sign"])["Date"]; } if (jPartReImport != null) { row_new["PartReImport_CargoCollection_Date"] = ((JObject)jPartReImport["CargoCollection"])["Date"]; row_new["PartReImport_Number"] = jPartReImport["Number"]; row_new["PartReImport_Unit"] = jPartReImport["Unit"]; row_new["PartReImport_FileValidation_Date"] = ((JObject)jPartReImport["FileValidation"])["Date"]; row_new["PartReImport_GoodsType"] = jPartReImport["GoodsType"]; row_new["PartReImport_HuiYun_Date"] = ((JObject)jPartReImport["HuiYun"])["Date"]; row_new["PartReImport_GoodsArrival_Date"] = ((JObject)jPartReImport["GoodsArrival"])["Date"]; row_new["PartReImport_CustomsDeclaration_Date"] = ((JObject)jPartReImport["CustomsDeclaration"])["Date"]; row_new["PartReImport_CargoRelease_Date"] = ((JObject)jPartReImport["CargoRelease"])["Date"]; row_new["PartReImport_Sign_Date"] = ((JObject)jPartReImport["Sign"])["Date"]; } if (jReImportFour != null) { row_new["ReImportFour_CargoCollection_Date"] = ((JObject)jReImportFour["CargoCollection"])["Date"]; row_new["ReImportFour_Number"] = jReImportFour["Number"]; row_new["ReImportFour_Unit"] = jReImportFour["Unit"]; row_new["ReImportFour_FileValidation_Date"] = ((JObject)jReImportFour["FileValidation"])["Date"]; var sTransportationMode = jReImportFour["TransportationMode"] == null ? "" : jReImportFour["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["ReImportFour_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["ReImportFour_GoodsType"] = jReImportFour["GoodsType"]; row_new["ReImportFour_HuiYun_Date"] = ((JObject)jReImportFour["HuiYun"])["Date"]; row_new["ReImportFour_GoodsArrival_Date"] = ((JObject)jReImportFour["GoodsArrival"])["Date"]; row_new["ReImportFour_CustomsDeclaration_Date"] = ((JObject)jReImportFour["CustomsDeclaration"])["Date"]; row_new["ReImportFour_CargoRelease_Date"] = ((JObject)jReImportFour["CargoRelease"])["Date"]; row_new["ReImportFour_Sign_Date"] = ((JObject)jReImportFour["Sign"])["Date"]; } if (jTransferFour != null) { row_new["TransferFour_CargoCollection_Date"] = ((JObject)jTransferFour["CargoCollection"])["Date"]; row_new["TransferFour_Number"] = jTransferFour["Number"]; row_new["TransferFour_Unit"] = jTransferFour["Unit"]; row_new["TransferFour_FileValidation_Date"] = ((JObject)jTransferFour["FileValidation"])["Date"]; var sTransportationMode = jTransferFour["TransportationMode"] == null ? "" : jTransferFour["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["TransferFour_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["TransferFour_GoodsType"] = jTransferFour["GoodsType"]; row_new["TransferFour_Destination"] = jTransferFour["Destination"]; row_new["TransferFour_InTransit_Date"] = ((JObject)jTransferFour["InTransit"])["Date"]; row_new["TransferFour_GoodsArrival_Date"] = ((JObject)jTransferFour["GoodsArrival"])["Date"]; row_new["TransferFour_CargoRelease_Date"] = ((JObject)jTransferFour["CargoRelease"])["Date"]; row_new["TransferFour_Sign_Date"] = ((JObject)jTransferFour["Sign"])["Date"]; } if (jReImportFive != null) { row_new["ReImportFive_CargoCollection_Date"] = ((JObject)jReImportFive["CargoCollection"])["Date"]; row_new["ReImportFive_Number"] = jReImportFive["Number"]; row_new["ReImportFive_Unit"] = jReImportFive["Unit"]; row_new["ReImportFive_FileValidation_Date"] = ((JObject)jReImportFive["FileValidation"])["Date"]; var sTransportationMode = jReImportFive["TransportationMode"] == null ? "" : jReImportFive["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["ReImportFive_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["ReImportFive_GoodsType"] = jReImportFive["GoodsType"]; row_new["ReImportFive_HuiYun_Date"] = ((JObject)jReImportFive["HuiYun"])["Date"]; row_new["ReImportFive_GoodsArrival_Date"] = ((JObject)jReImportFive["GoodsArrival"])["Date"]; row_new["ReImportFive_CustomsDeclaration_Date"] = ((JObject)jReImportFive["CustomsDeclaration"])["Date"]; row_new["ReImportFive_CargoRelease_Date"] = ((JObject)jReImportFive["CargoRelease"])["Date"]; row_new["ReImportFive_Sign_Date"] = ((JObject)jReImportFive["Sign"])["Date"]; } if (jTransferFive != null) { row_new["TransferFive_CargoCollection_Date"] = ((JObject)jTransferFive["CargoCollection"])["Date"]; row_new["TransferFive_Number"] = jTransferFive["Number"]; row_new["TransferFive_Unit"] = jTransferFive["Unit"]; row_new["TransferFive_FileValidation_Date"] = ((JObject)jTransferFive["FileValidation"])["Date"]; var sTransportationMode = jTransferFive["TransportationMode"] == null ? "" : jTransferFive["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["TransferFive_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["TransferFive_GoodsType"] = jTransferFive["GoodsType"]; row_new["TransferFive_Destination"] = jTransferFive["Destination"]; row_new["TransferFive_InTransit_Date"] = ((JObject)jTransferFive["InTransit"])["Date"]; row_new["TransferFive_GoodsArrival_Date"] = ((JObject)jTransferFive["GoodsArrival"])["Date"]; row_new["TransferFive_CargoRelease_Date"] = ((JObject)jTransferFive["CargoRelease"])["Date"]; row_new["TransferFive_Sign_Date"] = ((JObject)jTransferFive["Sign"])["Date"]; } if (jReImportSix != null) { row_new["ReImportSix_CargoCollection_Date"] = ((JObject)jReImportSix["CargoCollection"])["Date"]; row_new["ReImportSix_Number"] = jReImportSix["Number"]; row_new["ReImportSix_Unit"] = jReImportSix["Unit"]; row_new["ReImportSix_FileValidation_Date"] = ((JObject)jReImportSix["FileValidation"])["Date"]; var sTransportationMode = jReImportSix["TransportationMode"] == null ? "" : jReImportSix["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["ReImportSix_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["ReImportSix_GoodsType"] = jReImportSix["GoodsType"]; row_new["ReImportSix_HuiYun_Date"] = ((JObject)jReImportSix["HuiYun"])["Date"]; row_new["ReImportSix_GoodsArrival_Date"] = ((JObject)jReImportSix["GoodsArrival"])["Date"]; row_new["ReImportSix_CustomsDeclaration_Date"] = ((JObject)jReImportSix["CustomsDeclaration"])["Date"]; var sCustomsClearance = ((JObject)jReImportSix["CustomsDeclaration"])["CustomsClearance"].ToString(); if (sCustomsClearance != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Clearance" && it.ArgumentID == sCustomsClearance); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["ReImportSix_CustomsDeclaration_CustomsClearance"] = oArgument.ArgumentValue ?? ""; } row_new["ReImportSix_CargoRelease_Date"] = ((JObject)jReImportSix["CargoRelease"])["Date"]; row_new["ReImportSix_Sign_Date"] = ((JObject)jReImportSix["Sign"])["Date"]; } if (jTransferSix != null) { row_new["TransferSix_CargoCollection_Date"] = ((JObject)jTransferSix["CargoCollection"])["Date"]; row_new["TransferSix_Number"] = jTransferSix["Number"]; row_new["TransferSix_Unit"] = jTransferSix["Unit"]; row_new["TransferSix_FileValidation_Date"] = ((JObject)jTransferSix["FileValidation"])["Date"]; var sTransportationMode = jTransferSix["TransportationMode"] == null ? "" : jTransferSix["TransportationMode"].ToString(); if (sTransportationMode != "") { var oArgument = db.Queryable<OTB_SYS_Arguments>() .Single(it => it.OrgID == i_crm.ORIGID && it.ArgumentClassID == "Transport" && it.ArgumentID == sTransportationMode); if (oArgument == null) { oArgument = new OTB_SYS_Arguments(); } row_new["TransferSi_TransportationMode"] = oArgument.ArgumentValue ?? ""; } row_new["TransferSix_GoodsType"] = jTransferSix["GoodsType"]; row_new["TransferSix_Destination"] = jTransferSix["Destination"]; row_new["TransferSix_InTransit_Date"] = ((JObject)jTransferSix["InTransit"])["Date"]; row_new["TransferSix_GoodsArrival_Date"] = ((JObject)jTransferSix["GoodsArrival"])["Date"]; row_new["TransferSix_CargoRelease_Date"] = ((JObject)jTransferSix["CargoRelease"])["Date"]; row_new["TransferSix_Sign_Date"] = ((JObject)jTransferSix["Sign"])["Date"]; }
dt_new.Rows.Add(row_new); iFirstRow++; } } else { foreach (DataColumn col in dt.Columns) { row_new[col.ToString()] = row[col.ToString()]; } dt_new.Rows.Add(row_new); iFirstRow++; } }
oHeader_Last = Export_BusinessTrackingSchedule_List; } break;
default: { break; } } var bOk = new ExcelService().CreateExcelByTb(dt_new, out string sPath, oHeader_Last, dicAlain, listMerge, sFileName);
rm.DATA.Add(BLWording.REL, sPath); } else { rm.DATA.Add(BLWording.REL, pml); } } while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + "Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, "EasyBL.WEBAPP.OPM.ImportExhibition_QryService", "", "QueryPage(出口分頁查詢)", "", "", ""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 出口分頁查詢
#region 出口單筆查詢
/// <summary>
/// 出口單筆查詢
/// </summary>
/// <param name="i_crm"></param>
/// <returns></returns>
public ResponseMessage QueryOne(RequestMessage i_crm) { ResponseMessage rm = null; string sMsg = null; var db = SugarBase.GetIntance(); try { do { var sId = _fetchString(i_crm, @"Guid");
var oExportExhibition = db.Queryable<OTB_OPM_ExportExhibition, OTB_CRM_Customers, OTB_OPM_Exhibition> ((t1, t2, t3) => new object[] { JoinType.Left, t1.OrgID == t2.OrgID && t1.Agent == t2.guid, JoinType.Left, t1.OrgID == t3.OrgID && t1.ExhibitionNO == t3.SN.ToString() } ) .Where((t1, t2, t3) => t1.OrgID == i_crm.ORIGID && t1.ExportBillNO == sId) .Select((t1, t2, t3) => new View_OPM_ExportExhibition { ExportBillNO = SqlFunc.GetSelfAndAutoFill(t1.ExportBillNO), Exhibitioname_TW = t3.Exhibitioname_TW, Exhibitioname_EN = t3.Exhibitioname_EN, AgentName = SqlFunc.IIF(SqlFunc.HasValue(t2.CustomerCName), t2.CustomerCName, t2.CustomerEName) }).Single();
rm = new SuccessResponseMessage(null, i_crm); rm.DATA.Add(BLWording.REL, oExportExhibition); } while (false); } catch (Exception ex) { sMsg = Util.GetLastExceptionMsg(ex); LogAndSendEmail(sMsg + "Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, "EasyBL.WEBAPP.OPM.ImportExhibition_QryService", "", "QueryOne(出口單筆查詢)", "", "", ""); } finally { if (null != sMsg) { rm = new ErrorResponseMessage(sMsg, i_crm); } } return rm; }
#endregion 出口單筆查詢
} }
|