You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

425 lines
20 KiB

3 years ago
  1. using EasyBL.WebApi.Message;
  2. using Entity.Sugar;
  3. using Newtonsoft.Json.Linq;
  4. using SqlSugar;
  5. using SqlSugar.Base;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. namespace EasyBL.WEBAPP
  10. {
  11. public class SysComService : ServiceBase
  12. {
  13. #region 查詢系統所有功能資料
  14. /// <summary>
  15. /// 查詢系統所有功能資料
  16. /// </summary>
  17. /// <param name="i_crm"></param>
  18. /// <returns></returns>
  19. public ResponseMessage GetSysFNList(RequestMessage i_crm)
  20. {
  21. ResponseMessage rm = null;
  22. string sMsg = null;
  23. var db = SugarBase.DB;
  24. try
  25. {
  26. do
  27. {
  28. var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
  29. var spUserID = new SugarParameter("@UserID", i_crm.USERID);
  30. var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetSysFnListByUserID", spOrgID, spUserID);
  31. rm = new SuccessResponseMessage(null, i_crm);
  32. rm.DATA.Add(BLWording.REL, dt);
  33. } while (false);
  34. }
  35. catch (Exception ex)
  36. {
  37. sMsg = Util.GetLastExceptionMsg(ex);
  38. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetSysFNList(查詢系統所有功能資料)", @"", @"", @"");
  39. }
  40. finally
  41. {
  42. if (null != sMsg)
  43. {
  44. rm = new ErrorResponseMessage(sMsg, i_crm);
  45. }
  46. }
  47. return rm;
  48. }
  49. #endregion 查詢系統所有功能資料
  50. #region 查詢系統所模組
  51. /// <summary>
  52. /// 查詢系統所模組
  53. /// </summary>
  54. /// <param name="i_crm"></param>
  55. /// <returns></returns>
  56. public ResponseMessage GetModuleList(RequestMessage i_crm)
  57. {
  58. ResponseMessage rm = null;
  59. string sMsg = null;
  60. var db = SugarBase.DB;
  61. try
  62. {
  63. do
  64. {
  65. var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
  66. var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetModuleList", spOrgID);
  67. rm = new SuccessResponseMessage(null, i_crm);
  68. rm.DATA.Add(BLWording.REL, dt);
  69. } while (false);
  70. }
  71. catch (Exception ex)
  72. {
  73. sMsg = Util.GetLastExceptionMsg(ex);
  74. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetModuleList(查詢系統所模組)", @"", @"", @"");
  75. }
  76. finally
  77. {
  78. if (null != sMsg)
  79. {
  80. rm = new ErrorResponseMessage(sMsg, i_crm);
  81. }
  82. }
  83. return rm;
  84. }
  85. #endregion 查詢系統所模組
  86. #region 查詢所有有效的正式客戶資料
  87. /// <summary>
  88. /// 查詢所有有效的正式客戶資料
  89. /// </summary>
  90. /// <param name="i_crm"></param>
  91. /// <returns></returns>
  92. public ResponseMessage GetCustomerlist(RequestMessage i_crm)
  93. {
  94. ResponseMessage rm = null;
  95. string sMsg = null;
  96. var db = SugarBase.DB;
  97. try
  98. {
  99. do
  100. {
  101. var spm = new SugarParameter(@"OrgID", i_crm.ORIGID);
  102. System.Data.DataTable saCustomerlist = new System.Data.DataTable();
  103. if (i_crm.ORIGID == "TG" || i_crm.ORIGID == "TE")
  104. {
  105. 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);
  106. } else
  107. {
  108. 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);
  109. }
  110. //else if(i_crm.ORIGID == "SG")
  111. //{
  112. // 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);
  113. //}
  114. //else if (i_crm.ORIGID == "SE")
  115. //{
  116. // 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);
  117. //}
  118. foreach (DataRow dr in saCustomerlist.Rows)
  119. {
  120. if (dr["Contactors"].ToString() != "")
  121. {
  122. dr["Contactors"] = dr["Contactors"].ToString().Replace("\r\n", " ").Replace("\t", " ");
  123. }
  124. }
  125. rm = new SuccessResponseMessage(null, i_crm);
  126. rm.DATA.Add(BLWording.REL, saCustomerlist);
  127. } while (false);
  128. }
  129. catch (Exception ex)
  130. {
  131. sMsg = Util.GetLastExceptionMsg(ex);
  132. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetCustomerlist(查詢所有有效的客戶資料)", @"", @"", @"");
  133. }
  134. finally
  135. {
  136. if (null != sMsg)
  137. {
  138. rm = new ErrorResponseMessage(sMsg, i_crm);
  139. }
  140. }
  141. return rm;
  142. }
  143. #endregion 查詢所有有效的正式客戶資料
  144. #region 查詢系統所有部門
  145. /// <summary>
  146. /// 查詢系統所有部門
  147. /// </summary>
  148. /// <param name="i_crm"></param>
  149. /// <returns></returns>
  150. public ResponseMessage GetDepartmentList(RequestMessage i_crm)
  151. {
  152. ResponseMessage rm = null;
  153. string sMsg = null;
  154. var db = SugarBase.DB;
  155. try
  156. {
  157. do
  158. {
  159. var sDeptID = _fetchString(i_crm, @"DeptID");
  160. var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
  161. var spDeptID = new SugarParameter("@DeptID", sDeptID);
  162. var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetDepartmentList", spOrgID, spDeptID);
  163. rm = new SuccessResponseMessage(null, i_crm);
  164. rm.DATA.Add(BLWording.REL, dt);
  165. } while (false);
  166. }
  167. catch (Exception ex)
  168. {
  169. sMsg = Util.GetLastExceptionMsg(ex);
  170. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetDepartmentList(查詢系統所有部門)", @"", @"", @"");
  171. }
  172. finally
  173. {
  174. if (null != sMsg)
  175. {
  176. rm = new ErrorResponseMessage(sMsg, i_crm);
  177. }
  178. }
  179. return rm;
  180. }
  181. #endregion 查詢系統所有部門
  182. public ResponseMessage GetDepartmentListNoVoid(RequestMessage i_crm)
  183. {
  184. ResponseMessage rm = null;
  185. string sMsg = null;
  186. var db = SugarBase.DB;
  187. try
  188. {
  189. do
  190. {
  191. var sDeptID = _fetchString(i_crm, @"DeptID");
  192. var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
  193. var spDeptID = new SugarParameter("@DeptID", sDeptID);
  194. var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetDepartmentListNoVoid", spOrgID, spDeptID);
  195. rm = new SuccessResponseMessage(null, i_crm);
  196. rm.DATA.Add(BLWording.REL, dt);
  197. } while (false);
  198. }
  199. catch (Exception ex)
  200. {
  201. sMsg = Util.GetLastExceptionMsg(ex);
  202. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetDepartmentList(查詢系統所有部門)", @"", @"", @"");
  203. }
  204. finally
  205. {
  206. if (null != sMsg)
  207. {
  208. rm = new ErrorResponseMessage(sMsg, i_crm);
  209. }
  210. }
  211. return rm;
  212. }
  213. #region 查詢系統所有人員
  214. /// <summary>
  215. /// 查詢系統所有人員
  216. /// </summary>
  217. /// <param name="i_crm"></param>
  218. /// <returns></returns>
  219. public ResponseMessage GetAllMembersByUserId(RequestMessage i_crm)
  220. {
  221. ResponseMessage rm = null;
  222. string sMsg = null;
  223. var db = SugarBase.DB;
  224. try
  225. {
  226. do
  227. {
  228. var spOrgID = new SugarParameter("@OrgID", i_crm.ORIGID);
  229. var spUserID = new SugarParameter("@UserID", i_crm.USERID);
  230. var dt = db.Ado.UseStoredProcedure().GetDataTable("OSP_Common_GetAllMemberListByUserID", spOrgID, spUserID);
  231. rm = new SuccessResponseMessage(null, i_crm);
  232. rm.DATA.Add(BLWording.REL, dt);
  233. } while (false);
  234. }
  235. catch (Exception ex)
  236. {
  237. sMsg = Util.GetLastExceptionMsg(ex);
  238. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetAllMembersByUserId(查詢系統所有人員)", @"", @"", @"");
  239. }
  240. finally
  241. {
  242. if (null != sMsg)
  243. {
  244. rm = new ErrorResponseMessage(sMsg, i_crm);
  245. }
  246. }
  247. return rm;
  248. }
  249. #endregion 查詢系統所有人員
  250. #region 查詢個人信息
  251. /// <summary>
  252. /// 查詢個人信息
  253. /// </summary>
  254. /// <param name="i_crm"></param>
  255. /// <returns></returns>
  256. public ResponseMessage GetUserInfo(RequestMessage i_crm)
  257. {
  258. ResponseMessage rm = null;
  259. string sMsg = null;
  260. var db = SugarBase.DB;
  261. try
  262. {
  263. do
  264. {
  265. var saSpm = new List<SugarParameter>();
  266. var spm1 = new SugarParameter(@"OrgID", i_crm.ORIGID);
  267. saSpm.Add(spm1);
  268. var spm2 = new SugarParameter(@"UserID", i_crm.USERID);
  269. saSpm.Add(spm2);
  270. var saUserInfo = db.Ado.GetDataTable(@"SELECT MemberID,MemberName,Email,j.JobtitleName,m.DepartmentID,d.DepartmentName,m.Effective,CalColor,MemberPic,SysShowMode,Country,ServiceCode,Address
  271. ,(SELECT RuleID+',' FROM dbo.OTB_SYS_MembersToRule WHERE MemberID=@UserID and OrgID=@OrgID FOR XML PATH('')) AS roles,
  272. ImmediateSupervisor+','+(select ISNULL(ChiefOfDepartmentID,'') from OTB_SYS_Departments where DepartmentID=m.DepartmentID and OrgID=m.OrgID) as Supervisors,
  273. 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,
  274. ISNULL((select MemberID+',' FROM OTB_SYS_Members c where c.ImmediateSupervisor=m.MemberID and c.OrgID=m.OrgID for xml path('')),'') as UsersBranch
  275. FROM OTB_SYS_Members m
  276. inner join OTB_SYS_Jobtitle j on m.JobTitle=j.JobtitleID and m.OrgID=j.OrgID
  277. inner join OTB_SYS_Departments d on m.DepartmentID=d.DepartmentID and m.OrgID=d.OrgID
  278. WHERE MemberID=@UserID and m.OrgID=@OrgID", saSpm);
  279. rm = new SuccessResponseMessage(null, i_crm);
  280. rm.DATA.Add(BLWording.REL, saUserInfo.Rows[0]);
  281. } while (false);
  282. }
  283. catch (Exception ex)
  284. {
  285. sMsg = Util.GetLastExceptionMsg(ex);
  286. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetUserInfo(查詢個人信息)", @"", @"", @"");
  287. }
  288. finally
  289. {
  290. if (null != sMsg)
  291. {
  292. rm = new ErrorResponseMessage(sMsg, i_crm);
  293. }
  294. }
  295. return rm;
  296. }
  297. #endregion 查詢個人信息
  298. #region 查詢所有有效的出口資料
  299. /// <summary>
  300. /// 查詢所有有效的出口資料
  301. /// </summary>
  302. /// <param name="i_crm"></param>
  303. /// <returns></returns>
  304. public ResponseMessage GetExhibitionExportlist(RequestMessage i_crm)
  305. {
  306. ResponseMessage rm = null;
  307. string sMsg = null;
  308. var db = SugarBase.DB;
  309. try
  310. {
  311. do
  312. {
  313. var spm = new SugarParameter(@"OrgID", i_crm.ORIGID);
  314. string strCommand = "";
  315. if (i_crm.ORIGID == "TE")
  316. {
  317. strCommand = @"select ExportBillNO id, ExportBillName + ' (' + RefNumber + ')' text, ExportBillName + ' (' + RefNumber + ')' texten from OTB_OPM_ExportExhibition where IsVoid = 'N'";
  318. } else if (i_crm.ORIGID == "TG")
  319. {
  320. strCommand = @"select Guid id, ImportBillName + '(' + CONVERT(VARCHAR, CreateDate, 111) + ')' text, ImportBillEName + '(' + CONVERT(VARCHAR, CreateDate, 111) + ')' texten from OTB_OPM_OtherExhibitionTG where IsVoid = 'N'";
  321. }
  322. var saCustomerlist = db.Ado.GetDataTable(strCommand, spm);
  323. rm = new SuccessResponseMessage(null, i_crm);
  324. rm.DATA.Add(BLWording.REL, saCustomerlist);
  325. } while (false);
  326. }
  327. catch (Exception ex)
  328. {
  329. sMsg = Util.GetLastExceptionMsg(ex);
  330. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetExhibitionExportlist(查詢所有有效的出口資料)", @"", @"", @"");
  331. }
  332. finally
  333. {
  334. if (null != sMsg)
  335. {
  336. rm = new ErrorResponseMessage(sMsg, i_crm);
  337. }
  338. }
  339. return rm;
  340. }
  341. #endregion 查詢所有有效的出口資料
  342. #region 查詢所有有效的客戶資料
  343. /// <summary>
  344. /// 查詢所有有效的客戶資料
  345. /// </summary>
  346. /// <param name="i_crm"></param>
  347. /// <returns></returns>
  348. public ResponseMessage GetAllCustomerlist(RequestMessage i_crm)
  349. {
  350. ResponseMessage rm = null;
  351. string sMsg = null;
  352. var db = SugarBase.DB;
  353. try
  354. {
  355. do
  356. {
  357. var spm = new SugarParameter(@"OrgID", i_crm.ORIGID);
  358. System.Data.DataTable saCustomerlist = new System.Data.DataTable();
  359. if (i_crm.ORIGID == "TG" || i_crm.ORIGID == "TE")
  360. {
  361. 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);
  362. } else
  363. {
  364. 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);
  365. }
  366. //else if (i_crm.ORIGID == "SG")
  367. //{
  368. // 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);
  369. //}
  370. //else if (i_crm.ORIGID == "SE")
  371. //{
  372. // 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);
  373. //}
  374. rm = new SuccessResponseMessage(null, i_crm);
  375. rm.DATA.Add(BLWording.REL, saCustomerlist);
  376. } while (false);
  377. }
  378. catch (Exception ex)
  379. {
  380. sMsg = Util.GetLastExceptionMsg(ex);
  381. LogAndSendEmail(sMsg + @"Params:" + JsonToString(i_crm), ex, i_crm.ORIGID, i_crm.USERID, nameof(SysComService), "", @"GetAuditCustomerlist(查詢所有有效的客戶資料)", @"", @"", @"");
  382. }
  383. finally
  384. {
  385. if (null != sMsg)
  386. {
  387. rm = new ErrorResponseMessage(sMsg, i_crm);
  388. }
  389. }
  390. return rm;
  391. }
  392. #endregion 查詢所有有效的客戶資料
  393. }
  394. }