426 lines
20 KiB
426 lines
20 KiB
using EasyBL.WebApi.Message;
|
|
using Entity.Sugar;
|
|
using Newtonsoft.Json.Linq;
|
|
using SqlSugar;
|
|
using SqlSugar.Base;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
|
|
namespace EasyBL.WEBAPP
|
|
{
|
|
public class SysComService : ServiceBase
|
|
{
|
|
#region 查詢系統所有功能資料
|
|
|
|
/// <summary>
|
|
/// 查詢系統所有功能資料
|
|
/// </summary>
|
|
/// <param name="i_crm"></param>
|
|
/// <returns></returns>
|
|
public ResponseMessage GetSysFNList(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
|
|
var spUserID = new SugarParameter("@UserID", i_crm.USERID);
|
|
var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetSysFnListByUserID", spOrgID, spUserID);
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, dt);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetSysFNList(查詢系統所有功能資料)", @"", @"", @"");
|
|
}
|
|
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 GetModuleList(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
|
|
var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetModuleList", spOrgID);
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, dt);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetModuleList(查詢系統所模組)", @"", @"", @"");
|
|
}
|
|
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 GetCustomerlist(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var spm = new SugarParameter(@"OrgID", i_crm.ORIGID);
|
|
System.Data.DataTable saCustomerlist = new System.Data.DataTable();
|
|
if (i_crm.ORIGID == "TG" || i_crm.ORIGID == "TE")
|
|
{
|
|
saCustomerlist = db.Ado.GetDataTable(@"select guid id,CustomerNO CusNO,case isnull(CustomerShotCName,'') when '' then (case CustomerCName when '' then CustomerEName else CustomerCName end) else '('+CustomerShotCName+')'+(case CustomerCName when '' then CustomerEName else CustomerCName end)+'('+OrgID+')' end text,CustomerCName textcn,CustomerEName texteg,UniCode,dbo.OFN_CRM_GetContactorByCustomerID(guid) Contactors,Email,Telephone,IsAudit,case Effective when 'Y' then 'N' else 'Y' end disabled from OTB_CRM_Customers where OrgID IN ('TE','TG') AND IsAudit <> 'Q' AND IsAudit <> 'N' AND (Effective = 'Y' OR NotPassReason = 'CustomerCombine') order by CustomerCName desc", spm);
|
|
} else
|
|
{
|
|
saCustomerlist = db.Ado.GetDataTable(@"select guid id,CustomerNO CusNO,case isnull(CustomerShotCName,'') when '' then (case CustomerCName when '' then CustomerEName else CustomerCName end) else '('+CustomerShotCName+')'+(case CustomerCName when '' then CustomerEName else CustomerCName end)+'('+OrgID+')' end text,CustomerCName textcn,CustomerEName texteg,UniCode,dbo.OFN_CRM_GetContactorByCustomerID(guid) Contactors,Email,Telephone,IsAudit from OTB_CRM_Customers where OrgID = '" + i_crm.ORIGID + "' AND Effective = 'Y' AND IsAudit <> 'Q' AND IsAudit <> 'N' order by CustomerCName desc", spm);
|
|
}
|
|
//else if(i_crm.ORIGID == "SG")
|
|
//{
|
|
// saCustomerlist = db.Ado.GetDataTable(@"select guid id,CustomerNO CusNO,case isnull(CustomerShotCName,'') when '' then (case CustomerCName when '' then CustomerEName else CustomerCName end) else '('+CustomerShotCName+')'+(case CustomerCName when '' then CustomerEName else CustomerCName end)+'('+OrgID+')' end text,CustomerCName textcn,CustomerEName texteg,UniCode,dbo.OFN_CRM_GetContactorByCustomerID(guid) Contactors,Email,Telephone,IsAudit from OTB_CRM_Customers where OrgID = 'SG' AND Effective = 'Y' AND IsAudit <> 'Q' AND IsAudit <> 'N' order by CustomerCName desc", spm);
|
|
//}
|
|
//else if (i_crm.ORIGID == "SE")
|
|
//{
|
|
// saCustomerlist = db.Ado.GetDataTable(@"select guid id,CustomerNO CusNO,case isnull(CustomerShotCName,'') when '' then (case CustomerCName when '' then CustomerEName else CustomerCName end) else '('+CustomerShotCName+')'+(case CustomerCName when '' then CustomerEName else CustomerCName end)+'('+OrgID+')' end text,CustomerCName textcn,CustomerEName texteg,UniCode,dbo.OFN_CRM_GetContactorByCustomerID(guid) Contactors,Email,Telephone,IsAudit from OTB_CRM_Customers where OrgID = 'SE' AND Effective = 'Y' AND IsAudit <> 'Q' AND IsAudit <> 'N' order by CustomerCName desc", spm);
|
|
//}
|
|
|
|
foreach (DataRow dr in saCustomerlist.Rows)
|
|
{
|
|
if (dr["Contactors"].ToString() != "")
|
|
{
|
|
dr["Contactors"] = dr["Contactors"].ToString().Replace("\r\n", " ").Replace("\t", " ");
|
|
}
|
|
}
|
|
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, saCustomerlist);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetCustomerlist(查詢所有有效的客戶資料)", @"", @"", @"");
|
|
}
|
|
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 GetDepartmentList(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var sDeptID = _fetchString(i_crm, @"DeptID");
|
|
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
|
|
var spDeptID = new SugarParameter("@DeptID", sDeptID);
|
|
var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetDepartmentList", spOrgID, spDeptID);
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, dt);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetDepartmentList(查詢系統所有部門)", @"", @"", @"");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
|
|
#endregion 查詢系統所有部門
|
|
|
|
public ResponseMessage GetDepartmentListNoVoid(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var sDeptID = _fetchString(i_crm, @"DeptID");
|
|
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
|
|
var spDeptID = new SugarParameter("@DeptID", sDeptID);
|
|
var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetDepartmentListNoVoid", spOrgID, spDeptID);
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, dt);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetDepartmentList(查詢系統所有部門)", @"", @"", @"");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
#region 查詢系統所有人員
|
|
|
|
/// <summary>
|
|
/// 查詢系統所有人員
|
|
/// </summary>
|
|
/// <param name="i_crm"></param>
|
|
/// <returns></returns>
|
|
public ResponseMessage GetAllMembersByUserId(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
|
|
var spUserID = new SugarParameter("@UserID", i_crm.USERID);
|
|
var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetAllMemberListByUserID", spOrgID, spUserID);
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, dt);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetAllMembersByUserId(查詢系統所有人員)", @"", @"", @"");
|
|
}
|
|
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 GetUserInfo(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var saSpm = new List<SugarParameter>();
|
|
var spm1 = new SugarParameter(@"OrgID", i_crm.ORIGID);
|
|
saSpm.Add(spm1);
|
|
var spm2 = new SugarParameter(@"UserID", i_crm.USERID);
|
|
saSpm.Add(spm2);
|
|
var saUserInfo = db.Ado.GetDataTable(@"SELECT MemberID,MemberName,Email,j.JobtitleName,m.DepartmentID,d.DepartmentName,m.Effective,CalColor,MemberPic,SysShowMode,Country,ServiceCode,Address
|
|
,(SELECT RuleID+',' FROM dbo.OTB_SYS_MembersToRule WHERE MemberID=@UserID and OrgID=@OrgID FOR XML PATH('')) AS roles,
|
|
ImmediateSupervisor+','+(select ISNULL(ChiefOfDepartmentID,'') from OTB_SYS_Departments where DepartmentID=m.DepartmentID and OrgID=m.OrgID) as Supervisors,
|
|
ISNULL((select MemberID+',' FROM OTB_SYS_Members where DepartmentID in (select DepartmentID from OTB_SYS_Departments where ChiefOfDepartmentID=m.MemberID and OrgID=m.OrgID) and OrgID=@OrgID for xml path('')),'') as UsersDown,
|
|
ISNULL((select MemberID+',' FROM OTB_SYS_Members c where c.ImmediateSupervisor=m.MemberID and c.OrgID=m.OrgID for xml path('')),'') as UsersBranch
|
|
FROM OTB_SYS_Members m
|
|
inner join OTB_SYS_Jobtitle j on m.JobTitle=j.JobtitleID and m.OrgID=j.OrgID
|
|
inner join OTB_SYS_Departments d on m.DepartmentID=d.DepartmentID and m.OrgID=d.OrgID
|
|
WHERE MemberID=@UserID and m.OrgID=@OrgID", saSpm);
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, saUserInfo.Rows[0]);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetUserInfo(查詢個人信息)", @"", @"", @"");
|
|
}
|
|
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 GetExhibitionExportlist(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var spm = new SugarParameter(@"OrgID", i_crm.ORIGID);
|
|
|
|
string strCommand = "";
|
|
|
|
if (i_crm.ORIGID == "TE")
|
|
{
|
|
strCommand = @"select ExportBillNO id, ExportBillName + ' (' + RefNumber + ')' text, ExportBillName + ' (' + RefNumber + ')' texten from OTB_OPM_ExportExhibition where IsVoid = 'N'";
|
|
} else if (i_crm.ORIGID == "TG")
|
|
{
|
|
strCommand = @"select Guid id, ImportBillName + '(' + CONVERT(VARCHAR, CreateDate, 111) + ')' text, ImportBillEName + '(' + CONVERT(VARCHAR, CreateDate, 111) + ')' texten from OTB_OPM_OtherExhibitionTG where IsVoid = 'N'";
|
|
}
|
|
|
|
var saCustomerlist = db.Ado.GetDataTable(strCommand, spm);
|
|
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, saCustomerlist);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetExhibitionExportlist(查詢所有有效的出口資料)", @"", @"", @"");
|
|
}
|
|
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 GetAllCustomerlist(RequestMessage i_crm)
|
|
{
|
|
ResponseMessage rm = null;
|
|
string sMsg = null;
|
|
var db = SugarBase.DB;
|
|
try
|
|
{
|
|
do
|
|
{
|
|
var spm = new SugarParameter(@"OrgID", i_crm.ORIGID);
|
|
System.Data.DataTable saCustomerlist = new System.Data.DataTable();
|
|
if (i_crm.ORIGID == "TG" || i_crm.ORIGID == "TE")
|
|
{
|
|
saCustomerlist = db.Ado.GetDataTable(@"select guid id,CustomerNO CusNO,case isnull(CustomerShotCName,'') when '' then (case CustomerCName when '' then CustomerEName else CustomerCName end) else '('+CustomerShotCName+')'+(case CustomerCName when '' then CustomerEName else CustomerCName end)+'('+OrgID+')' end text,CustomerCName textcn,CustomerEName texteg,UniCode,Email,Telephone,IsAudit,case Effective when 'Y' then 'N' else 'Y' end disabled from OTB_CRM_Customers where OrgID IN ('TE','TG') AND (Effective = 'Y' OR NotPassReason = 'CustomerCombine') order by CustomerCName desc", spm);
|
|
} else
|
|
{
|
|
saCustomerlist = db.Ado.GetDataTable(@"select guid id,CustomerNO CusNO,case isnull(CustomerShotCName,'') when '' then (case CustomerCName when '' then CustomerEName else CustomerCName end) else '('+CustomerShotCName+')'+(case CustomerCName when '' then CustomerEName else CustomerCName end)+'('+OrgID+')' end text,CustomerCName textcn,CustomerEName texteg,UniCode,Email,Telephone,IsAudit from OTB_CRM_Customers where OrgID = '" + i_crm.ORIGID + "' AND Effective = 'Y' order by CustomerCName desc", spm);
|
|
}
|
|
|
|
//else if (i_crm.ORIGID == "SG")
|
|
//{
|
|
// saCustomerlist = db.Ado.GetDataTable(@"select guid id,CustomerNO CusNO,case isnull(CustomerShotCName,'') when '' then (case CustomerCName when '' then CustomerEName else CustomerCName end) else '('+CustomerShotCName+')'+(case CustomerCName when '' then CustomerEName else CustomerCName end)+'('+OrgID+')' end text,CustomerCName textcn,CustomerEName texteg,UniCode,Email,Telephone,IsAudit from OTB_CRM_Customers where OrgID = 'SG' AND Effective = 'Y' order by CustomerCName desc", spm);
|
|
//}
|
|
//else if (i_crm.ORIGID == "SE")
|
|
//{
|
|
// saCustomerlist = db.Ado.GetDataTable(@"select guid id,CustomerNO CusNO,case isnull(CustomerShotCName,'') when '' then (case CustomerCName when '' then CustomerEName else CustomerCName end) else '('+CustomerShotCName+')'+(case CustomerCName when '' then CustomerEName else CustomerCName end)+'('+OrgID+')' end text,CustomerCName textcn,CustomerEName texteg,UniCode,Email,Telephone,IsAudit from OTB_CRM_Customers where OrgID = 'SE' AND Effective = 'Y' order by CustomerCName desc", spm);
|
|
//}
|
|
|
|
rm = new SuccessResponseMessage(null, i_crm);
|
|
rm.DATA.Add(BLWording.REL, saCustomerlist);
|
|
} while (false);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
sMsg = Util.GetLastExceptionMsg(ex);
|
|
LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetAuditCustomerlist(查詢所有有效的客戶資料)", @"", @"", @"");
|
|
}
|
|
finally
|
|
{
|
|
if (null != sMsg)
|
|
{
|
|
rm = new ErrorResponseMessage(sMsg, i_crm);
|
|
}
|
|
}
|
|
return rm;
|
|
}
|
|
|
|
#endregion 查詢所有有效的客戶資料
|
|
}
|
|
}
|