TispRecordItemRepository.cs 71 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093
  1. using Ropin.Inspection.Common.Helper;
  2. using Ropin.Inspection.Model.Entities;
  3. using Ropin.Inspection.Model.SearchModel;
  4. using Ropin.Inspection.Model.ViewModel;
  5. using Ropin.Inspection.Repository.Interface;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace Ropin.Inspection.Repository
  12. {
  13. public class TispRecordItemRepository : RepositoryBase<TISP_RecordItem, Guid>, ITispRecordItemRepository
  14. {
  15. public TispRecordItemRepository(InspectionDbContext dbContext) : base(dbContext)
  16. {
  17. }
  18. public Task<int> GetContentAlarmCout(Guid contentId, Guid spotId)
  19. {
  20. //var query = from a in DbContext.TISP_Record
  21. // join b in DbContext.TISP_RecordItem
  22. // on a.C_ID equals b.C_RecordCode
  23. // where a.C_SpotCode == spotId && b.C_ContentCode == contentId && b.C_Status == "3"
  24. // select b.C_ID;
  25. ////var lambda = query.OrderByDescending(p => p)
  26. //var v = query.ToList();
  27. MySqlConnector.MySqlParameter[] parameters = new[] {
  28. new MySqlConnector.MySqlParameter("contentId", contentId),
  29. new MySqlConnector.MySqlParameter("spotId", spotId)};
  30. string sql = @"SELECT B.* FROM TISP_Record A
  31. INNER JOIN TISP_RecordItem B
  32. ON A.C_ID = B.C_RecordCode
  33. WHERE A.C_SpotCode =@spotId AND B.C_ContentCode =@contentId
  34. ORDER BY B.D_CreateOn DESC
  35. ";
  36. IEnumerable<TISP_RecordItem> recordItemlist = EntityFrameworkCoreExtensions.GetList<TISP_RecordItem>(DbContext.Database, sql, parameters);
  37. TISP_RecordItem item = recordItemlist.FirstOrDefault();
  38. if (item != null && (item.C_Status == "0" || item.C_Status == "3"))
  39. {
  40. return Task.FromResult(1);
  41. }
  42. return Task.FromResult(0);
  43. }
  44. public Task<IEnumerable<TispRecordItemDetailViewModel>> GetRecordsConditionAsync(Guid recordId)
  45. {
  46. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("recordId", recordId) };
  47. string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID WHERE A.C_RecordCode = @recordId";
  48. sql = @"SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,D.C_Name AS ReportUserName
  49. FROM TISP_RecordItem A
  50. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  51. LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  52. LEFT JOIN TSYS_User D ON D.C_UserID = A.C_CreateBy
  53. WHERE A.C_RecordCode = @recordId";
  54. IEnumerable<TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  55. if (null == recordItemlist || recordItemlist.First() == null)
  56. {
  57. IEnumerable<TispRecordItemDetailViewModel> recordItemDetail = null;
  58. return Task.FromResult(recordItemDetail);
  59. }
  60. var q = from b in recordItemlist
  61. group b by b.C_ID into g
  62. select new TispRecordItemDetailViewModel
  63. {
  64. C_ID = g.Key,
  65. C_RecordCode = g.First().C_RecordCode,
  66. C_ContentCode = g.First().C_ContentCode,
  67. C_SpotContentCode = g.First().C_SpotContentCode,
  68. C_InspectionContent = g.First().C_InspectionContent,
  69. D_CreateOn = g.First().D_CreateOn,
  70. C_Remark = g.First().C_Remark,
  71. C_Status = g.First().C_Status,
  72. C_AlarmLevel = g.First().C_AlarmLevel,
  73. C_Name = g.First().C_Name,
  74. ReportUserName = g.First().ReportUserName,
  75. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  76. };
  77. return Task.FromResult(q);
  78. }
  79. public Task<List<List<TispRecordItemDetailViewModel>>> GetRecordItemsByRecordIdAsync(Guid recordId)
  80. {
  81. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("recordId", recordId) };
  82. string sql = @"SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,D.C_Name AS ReportUserName
  83. FROM TISP_RecordItem A
  84. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  85. LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  86. LEFT JOIN TSYS_User D ON D.C_UserID = A.C_CreateBy
  87. WHERE A.C_RecordCode = @recordId ORDER BY A.D_CreateOn ASC ";
  88. IEnumerable<TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  89. if (null == recordItemlist || recordItemlist.First() == null)
  90. {
  91. List<List<TispRecordItemDetailViewModel>> recordItemDetail = null;
  92. return Task.FromResult(recordItemDetail);
  93. }
  94. var recordContentItemlist = from s in recordItemlist
  95. group s by s.C_ContentCode into g
  96. select g;
  97. List<List<TispRecordItemDetailViewModel>> recordContentItems = new List<List<TispRecordItemDetailViewModel>>() { };
  98. foreach (var item in recordContentItemlist)
  99. {
  100. var q = from b in item
  101. group b by new { b.C_ID} into g
  102. select new TispRecordItemDetailViewModel
  103. {
  104. C_ID = g.Key.C_ID,
  105. C_RecordCode = g.First().C_RecordCode,
  106. C_ContentCode = g.First().C_ContentCode,
  107. C_SpotContentCode = g.First().C_SpotContentCode,
  108. C_InspectionContent = g.First().C_InspectionContent,
  109. D_CreateOn = g.First().D_CreateOn,
  110. C_Remark = g.First().C_Remark,
  111. C_Status = g.First().C_Status,
  112. C_AlarmLevel = g.First().C_AlarmLevel,
  113. C_Name = g.First().C_Name,
  114. ReportUserName = g.First().ReportUserName,
  115. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  116. };
  117. recordContentItems.Add(q.ToList());
  118. }
  119. return Task.FromResult(recordContentItems);
  120. }
  121. /// <summary>
  122. /// 异常报警记录
  123. /// </summary>
  124. /// <param name="searchModel"></param>
  125. /// <returns></returns>
  126. public Task<PageData<TispRecordItemDetailViewModel>> GetAlarmRecordsAsync(TispRecordAlarmSearchModel searchModel)
  127. {
  128. MySqlConnector.MySqlParameter[] parameters = new[] {
  129. new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
  130. new MySqlConnector.MySqlParameter("AreaCode", searchModel.C_AreaCode),
  131. new MySqlConnector.MySqlParameter("start", searchModel.Start),
  132. new MySqlConnector.MySqlParameter("end", searchModel.End),
  133. new MySqlConnector.MySqlParameter("spotId", searchModel.SpotId),
  134. new MySqlConnector.MySqlParameter("createUserId ", searchModel.CreateUserId)};
  135. string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,F.C_Name AS ReportUserName FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy WHERE (A.C_Status = '0' or A.C_Status = '3') AND E.C_Status = '1' AND E.C_StoreCode = @StoreCode ";
  136. sql = @"SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,F.C_Name AS ReportUserName
  137. FROM TISP_RecordItem A
  138. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  139. LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  140. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  141. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  142. LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy WHERE A.C_Status = '0' AND A.C_LastUpdatedBy IS NULL AND E.C_Status = '1' AND E.C_StoreCode = @StoreCode ";
  143. if (!string.IsNullOrEmpty(searchModel.C_AreaCode))
  144. {
  145. sql += " AND E.C_AreaCode =@AreaCode ";
  146. }
  147. if (!string.IsNullOrEmpty(searchModel.SpotId))
  148. {
  149. sql += " AND D.C_SpotCode =@spotId ";
  150. }
  151. if (!string.IsNullOrEmpty(searchModel.CreateUserId))
  152. {
  153. sql += " AND D.C_CreateBy =@createUserId ";
  154. }
  155. //if (!string.IsNullOrEmpty(searchModel.UpdateUserId))
  156. //{
  157. // sql += " AND D.C_LastUpdatedBy =@updateUserId ";
  158. //}
  159. if (searchModel.Start!= Convert.ToDateTime("0001-01-01 00:00:00")&& searchModel.End != Convert.ToDateTime("0001-01-01 00:00:00"))
  160. {
  161. sql += " AND D.D_CreateOn between @start and @end";
  162. }
  163. sql += " ORDER BY A.D_CreateOn DESC";
  164. IEnumerable<TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  165. if (null == recordItemlist || recordItemlist.First() == null)
  166. {
  167. PageData<TispRecordItemDetailViewModel> recordItemDetail = null;
  168. return Task.FromResult(recordItemDetail);
  169. }
  170. var q = from b in recordItemlist
  171. group b by b.C_ID into g
  172. select new TispRecordItemDetailViewModel
  173. {
  174. C_ID = g.Key,
  175. C_RecordCode = g.First().C_RecordCode,
  176. C_ContentCode = g.First().C_ContentCode,
  177. C_SpotContentCode = g.First().C_SpotContentCode,
  178. C_InspectionContent = g.First().C_InspectionContent,
  179. C_Remark = g.First().C_Remark,
  180. C_Status = g.First().C_Status,
  181. C_AlarmLevel = g.First().C_AlarmLevel,
  182. C_Name = g.First().C_Name,
  183. SpotName = g.First().SpotName,
  184. SpotNumber = g.First().SpotNumber,
  185. ReportUserName = g.First().ReportUserName,
  186. D_CreateOn = g.First().D_CreateOn,
  187. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  188. };
  189. PageData<TispRecordItemDetailViewModel> pageData = new PageData<TispRecordItemDetailViewModel>
  190. {
  191. Totals = q.ToList().Count,
  192. Rows = searchModel.IsPagination ? q.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize).ToList() : q.ToList()
  193. };
  194. return Task.FromResult(pageData);
  195. }
  196. /// <summary>
  197. /// 为后台管理显示所有异常上报记录
  198. /// </summary>
  199. /// <param name="searchModel"></param>
  200. /// <returns></returns>
  201. public Task<PageData<TispRecordItemDetailViewModel>> GetAlarmRecordListAsync(TispRecordAlarmSearchModel searchModel)
  202. {
  203. MySqlConnector.MySqlParameter[] parameters = new[] {
  204. new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
  205. new MySqlConnector.MySqlParameter("AreaCode", searchModel.C_AreaCode),
  206. new MySqlConnector.MySqlParameter("start", searchModel.Start),
  207. new MySqlConnector.MySqlParameter("end", searchModel.End),
  208. new MySqlConnector.MySqlParameter("spotId", searchModel.SpotId),
  209. new MySqlConnector.MySqlParameter("createUserId ", searchModel.CreateUserId)};
  210. string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,F.C_Name AS ReportUserName FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy WHERE (A.C_Status = '0' or A.C_Status = '3') AND E.C_Status = '1' AND E.C_StoreCode = @StoreCode ";
  211. sql = @"SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,G.C_Name AS SpotAreaName,F.C_Name AS ReportUserName
  212. FROM TISP_RecordItem A
  213. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  214. LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  215. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  216. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  217. LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy
  218. LEFT JOIN TPNT_Area G ON G.C_Code = E.C_AreaCode
  219. WHERE A.C_Status = '0' AND E.C_Status = '1' AND E.C_StoreCode = @StoreCode ";
  220. if (!string.IsNullOrEmpty(searchModel.C_AreaCode))
  221. {
  222. sql += " AND E.C_AreaCode =@AreaCode ";
  223. }
  224. if (!string.IsNullOrEmpty(searchModel.SpotId))
  225. {
  226. sql += " AND D.C_SpotCode =@spotId ";
  227. }
  228. if (!string.IsNullOrEmpty(searchModel.CreateUserId))
  229. {
  230. sql += " AND D.C_CreateBy =@createUserId ";
  231. }
  232. //if (!string.IsNullOrEmpty(searchModel.UpdateUserId))
  233. //{
  234. // sql += " AND D.C_LastUpdatedBy =@updateUserId ";
  235. //}
  236. if (searchModel.Start != Convert.ToDateTime("0001-01-01 00:00:00") && searchModel.End != Convert.ToDateTime("0001-01-01 00:00:00"))
  237. {
  238. sql += " AND D.D_CreateOn between @start and @end";
  239. }
  240. sql += " ORDER BY A.D_CreateOn DESC";
  241. IEnumerable<TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  242. if (null == recordItemlist || recordItemlist.First() == null)
  243. {
  244. PageData<TispRecordItemDetailViewModel> recordItemDetail = null;
  245. return Task.FromResult(recordItemDetail);
  246. }
  247. var q = from b in recordItemlist
  248. group b by b.C_ID into g
  249. select new TispRecordItemDetailViewModel
  250. {
  251. C_ID = g.Key,
  252. C_RecordCode = g.First().C_RecordCode,
  253. C_ContentCode = g.First().C_ContentCode,
  254. C_SpotContentCode = g.First().C_SpotContentCode,
  255. C_InspectionContent = g.First().C_InspectionContent,
  256. C_Remark = g.First().C_Remark,
  257. C_Status = g.First().C_Status,
  258. C_AlarmLevel = g.First().C_AlarmLevel,
  259. C_Name = g.First().C_Name,
  260. SpotName = g.First().SpotName,
  261. SpotNumber = g.First().SpotNumber,
  262. ReportUserName = g.First().ReportUserName,
  263. D_CreateOn = g.First().D_CreateOn,
  264. SpotAreaName = g.First().SpotAreaName,
  265. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  266. };
  267. PageData<TispRecordItemDetailViewModel> pageData = new PageData<TispRecordItemDetailViewModel>
  268. {
  269. Totals = q.ToList().Count,
  270. Rows = searchModel.IsPagination ? q.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize).ToList() : q.ToList()
  271. };
  272. return Task.FromResult(pageData);
  273. }
  274. /// <summary>
  275. /// 异常报警恢复记录
  276. /// </summary>
  277. /// <param name="searchModel"></param>
  278. /// <returns></returns>
  279. public Task<PageData<TispRecordItemDetailViewModel>> GetAlarmRecoveryRecordsAsync(TispRecordAlarmSearchModel searchModel)
  280. {
  281. MySqlConnector.MySqlParameter[] parameters = new[] {
  282. new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
  283. new MySqlConnector.MySqlParameter("AreaCode", searchModel.C_AreaCode),
  284. new MySqlConnector.MySqlParameter("start", searchModel.Start),
  285. new MySqlConnector.MySqlParameter("end", searchModel.End),
  286. new MySqlConnector.MySqlParameter("spotId", searchModel.SpotId),
  287. new MySqlConnector.MySqlParameter("createUserId ", searchModel.CreateUserId),
  288. new MySqlConnector.MySqlParameter("updateUserId ", searchModel.UpdateUserId )};
  289. //string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID WHERE A.C_Status = '2'";
  290. string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,F.C_Name AS ReportUserName ,G.C_Name AS RecordUserName FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy LEFT JOIN TSYS_User G ON G.C_UserID = A.C_LastUpdatedBy WHERE A.C_Status = '2' AND E.C_Status = '1' AND E.C_StoreCode =@StoreCode ";
  291. sql = @"SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,E.C_AreaCode AS SpotAreaCode,H.C_Name AS SpotAreaName,F.C_Name AS ReportUserName ,G.C_Name AS RecordUserName
  292. FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  293. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy
  294. LEFT JOIN TSYS_User G ON G.C_UserID = A.C_CreateBy
  295. LEFT JOIN TPNT_Area H ON H.C_Code = E.C_AreaCode
  296. WHERE (A.C_Status = '2' || A.C_Status = '3' || A.C_Status = '4') AND E.C_Status = '1' AND E.C_StoreCode =@StoreCode ";
  297. if (!string.IsNullOrEmpty(searchModel.SpotId))
  298. {
  299. sql += " AND D.C_SpotCode =@spotId ";
  300. }
  301. if (!string.IsNullOrEmpty(searchModel.C_AreaCode))
  302. {
  303. sql += " AND E.C_AreaCode =@AreaCode ";
  304. }
  305. if (!string.IsNullOrEmpty(searchModel.CreateUserId))
  306. {
  307. sql += " AND A.C_CreateBy =@createUserId ";
  308. }
  309. if (!string.IsNullOrEmpty(searchModel.UpdateUserId))
  310. {
  311. sql += " AND A.C_CreateBy =@updateUserId ";
  312. }
  313. if (searchModel.Start != DateTime.MinValue && searchModel.End != DateTime.MinValue)
  314. {
  315. sql += " AND A.D_CreateOn between @start and @end";
  316. }
  317. sql += " ORDER BY A.D_CreateOn DESC";
  318. IEnumerable <TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  319. if (null == recordItemlist || recordItemlist.First() == null)
  320. {
  321. PageData<TispRecordItemDetailViewModel> recordItemDetail = null;
  322. return Task.FromResult(recordItemDetail);
  323. }
  324. var q = from b in recordItemlist
  325. group b by b.C_ID into g
  326. select new TispRecordItemDetailViewModel
  327. {
  328. C_ID = g.Key,
  329. C_RecordCode = g.First().C_RecordCode,
  330. C_ContentCode = g.First().C_ContentCode,
  331. C_SpotContentCode = g.First().C_SpotContentCode,
  332. C_InspectionContent = g.First().C_InspectionContent,
  333. C_Remark = g.First().C_Remark,
  334. C_Status = g.First().C_Status,
  335. C_AlarmLevel = g.First().C_AlarmLevel,
  336. C_Name = g.First().C_Name,
  337. D_CreateOn = g.First().D_CreateOn,
  338. D_LastUpdatedOn = g.First().D_LastUpdatedOn,
  339. C_CreateBy = g.First().C_CreateBy,
  340. C_LastUpdatedBy = g.First().C_LastUpdatedBy,
  341. SpotName = g.First().SpotName,
  342. SpotNumber = g.First().SpotNumber,
  343. ReportUserName = g.First().ReportUserName,
  344. RecordUserName = g.First().RecordUserName,
  345. SpotAreaName = g.First().SpotAreaName,
  346. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  347. };
  348. PageData<TispRecordItemDetailViewModel> pageData = new PageData<TispRecordItemDetailViewModel>
  349. {
  350. Totals = q.ToList().Count,
  351. Rows = searchModel.IsPagination ? q.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize).ToList() : q.ToList()
  352. };
  353. return Task.FromResult(pageData);
  354. }
  355. public Task<int> GetAlarmRecordsCountAsync(TispRecordAlarmSearchModel searchModel)
  356. {
  357. MySqlConnector.MySqlParameter[] parameters = new[] {
  358. new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
  359. new MySqlConnector.MySqlParameter("AreaCode", searchModel.C_AreaCode),
  360. new MySqlConnector.MySqlParameter("start", searchModel.Start),
  361. new MySqlConnector.MySqlParameter("end", searchModel.End),
  362. new MySqlConnector.MySqlParameter("spotId", searchModel.SpotId),
  363. new MySqlConnector.MySqlParameter("createUserId ", searchModel.CreateUserId)};
  364. string sql = "SELECT COUNT(C_ID) FROM TISP_RecordItem WHERE C_Status = '0' or C_Status = '3'";
  365. sql = @"SELECT COUNT(A.C_ID) FROM TISP_RecordItem A
  366. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  367. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  368. WHERE (A.C_Status = '0' or A.C_Status = '3') AND E.C_Status = '1' AND E.C_StoreCode =@StoreCode";
  369. sql = @"SELECT count(A.C_ID)
  370. FROM TISP_RecordItem A
  371. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  372. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  373. LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy WHERE A.C_Status = '0' AND A.C_LastUpdatedBy IS NULL AND E.C_Status = '1'";
  374. if (!string.IsNullOrEmpty(searchModel.C_StoreCode))
  375. {
  376. sql += " AND E.C_StoreCode =@StoreCode ";
  377. }
  378. if (!string.IsNullOrEmpty(searchModel.C_AreaCode))
  379. {
  380. sql += " AND E.C_AreaCode =@AreaCode ";
  381. }
  382. if (!string.IsNullOrEmpty(searchModel.SpotId))
  383. {
  384. sql += " AND D.C_SpotCode =@spotId ";
  385. }
  386. if (!string.IsNullOrEmpty(searchModel.CreateUserId))
  387. {
  388. sql += " AND D.C_CreateBy =@createUserId ";
  389. }
  390. //if (!string.IsNullOrEmpty(searchModel.UpdateUserId))
  391. //{
  392. // sql += " AND D.C_LastUpdatedBy =@updateUserId ";
  393. //}
  394. if (searchModel.Start != Convert.ToDateTime("0001-01-01 00:00:00") && searchModel.End != Convert.ToDateTime("0001-01-01 00:00:00"))
  395. {
  396. sql += " AND D.D_CreateOn between @start and @end";
  397. }
  398. object result = EntityFrameworkCoreExtensions.SqlQuery(DbContext.Database, sql, parameters).Rows[0][0];
  399. return Task.FromResult(int.Parse(result.ToString()));
  400. }
  401. public Task<int> GetAlarmRecoveryRecordsCountAsync(TispRecordAlarmSearchModel searchModel)
  402. {
  403. // MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode) };
  404. // string sql = "SELECT COUNT(C_ID) FROM TISP_RecordItem WHERE C_Status = '2'";
  405. // sql = @"SELECT COUNT(A.C_ID)
  406. //FROM TISP_RecordItem A
  407. //LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  408. //LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  409. //WHERE A.C_Status = '2' AND E.C_Status = '1' AND E.C_StoreCode =@StoreCode";
  410. MySqlConnector.MySqlParameter[] parameters = new[] {
  411. new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
  412. new MySqlConnector.MySqlParameter("AreaCode", searchModel.C_AreaCode),
  413. new MySqlConnector.MySqlParameter("start", searchModel.Start),
  414. new MySqlConnector.MySqlParameter("end", searchModel.End),
  415. new MySqlConnector.MySqlParameter("spotId", searchModel.SpotId),
  416. new MySqlConnector.MySqlParameter("createUserId ", searchModel.CreateUserId),
  417. new MySqlConnector.MySqlParameter("updateUserId ", searchModel.UpdateUserId )};
  418. //string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID WHERE A.C_Status = '2'";
  419. string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,F.C_Name AS ReportUserName ,G.C_Name AS RecordUserName FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy LEFT JOIN TSYS_User G ON G.C_UserID = A.C_LastUpdatedBy WHERE A.C_Status = '2' AND E.C_Status = '1' AND E.C_StoreCode =@StoreCode ";
  420. sql = @"SELECT COUNT(A.C_ID)
  421. FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  422. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy
  423. LEFT JOIN TSYS_User G ON G.C_UserID = A.C_CreateBy
  424. WHERE (A.C_Status = '2' || A.C_Status = '3' || A.C_Status = '4') AND E.C_Status = '1' AND E.C_StoreCode =@StoreCode ";
  425. if (!string.IsNullOrEmpty(searchModel.SpotId))
  426. {
  427. sql += " AND D.C_SpotCode =@spotId ";
  428. }
  429. if (!string.IsNullOrEmpty(searchModel.C_AreaCode))
  430. {
  431. sql += " AND E.C_AreaCode =@AreaCode ";
  432. }
  433. if (!string.IsNullOrEmpty(searchModel.CreateUserId))
  434. {
  435. sql += " AND A.C_CreateBy =@createUserId ";
  436. }
  437. if (!string.IsNullOrEmpty(searchModel.UpdateUserId))
  438. {
  439. sql += " AND A.C_CreateBy =@updateUserId ";
  440. }
  441. if (searchModel.Start != DateTime.MinValue && searchModel.End != DateTime.MinValue)
  442. {
  443. sql += " AND A.D_CreateOn between @start and @end";
  444. }
  445. object result = EntityFrameworkCoreExtensions.SqlQuery(DbContext.Database, sql, parameters).Rows[0][0];
  446. return Task.FromResult(int.Parse(result.ToString()));
  447. }
  448. public Task<IEnumerable<TispRecordItemDetailViewModel>> GetRecordItemByIdAsync(Guid id)
  449. {
  450. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("id", id) };
  451. string sql = @"SELECT A.*,S.C_Name as SpotName,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus FROM TISP_RecordItem A
  452. LEFT JOIN TISP_Record R on (A.C_RecordCode=R.C_ID)
  453. LEFT JOIN TISP_Spot S on (R.C_SpotCode=S.C_Code)
  454. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  455. LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  456. WHERE A.C_ID = @id";
  457. IEnumerable<TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  458. if (null == recordItemlist || recordItemlist.First() == null)
  459. {
  460. IEnumerable<TispRecordItemDetailViewModel> recordItemDetail = null;
  461. return Task.FromResult(recordItemDetail);
  462. }
  463. var q = from b in recordItemlist
  464. group b by b.C_ID into g
  465. select new TispRecordItemDetailViewModel
  466. {
  467. C_ID = g.Key,
  468. C_RecordCode = g.First().C_RecordCode,
  469. SpotName=g.First().SpotName,
  470. C_ContentCode = g.First().C_ContentCode,
  471. C_SpotContentCode = g.First().C_SpotContentCode,
  472. C_InspectionContent = g.First().C_InspectionContent,
  473. C_Remark = g.First().C_Remark,
  474. C_Status = g.First().C_Status,
  475. C_AlarmLevel = g.First().C_AlarmLevel,
  476. C_Name = g.First().C_Name,
  477. D_CreateOn = g.First().D_CreateOn,
  478. D_LastUpdatedOn = g.First().D_LastUpdatedOn,
  479. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  480. };
  481. return Task.FromResult(q);
  482. }
  483. public Task<IEnumerable<TispRecordItemAlarmDetailViewModel>> GetAlarmRecordsByQRCodeAsync(string QRCode, string storeCode)
  484. {
  485. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("QRCode", QRCode), new MySqlConnector.MySqlParameter("storeCode", storeCode) };
  486. string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,E.C_Position AS SpotPosition ,F.C_Name AS ReportUserName FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy WHERE A.C_Status = '0' AND E.C_QRCode = @QRCode AND E.C_StoreCode =@storeCode ORDER BY A.D_CreateOn ASC";
  487. sql = @"SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,E.C_Position AS SpotPosition ,F.C_Name AS ReportUserName
  488. FROM TISP_RecordItem A
  489. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  490. LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  491. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  492. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  493. LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy
  494. WHERE A.C_Status = '0' AND A.C_LastUpdatedBy IS NULL AND E.C_QRCode = @QRCode AND E.C_StoreCode =@storeCode ORDER BY A.D_CreateOn ASC";
  495. sql = @"SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,E.C_Position AS SpotPosition ,F.C_Name AS ReportUserName
  496. FROM TISP_RecordItem A
  497. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  498. LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID
  499. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  500. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  501. LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy
  502. WHERE A.C_Status = '3' AND A.C_LastUpdatedBy IS NULL AND E.C_QRCode = @QRCode AND E.C_StoreCode =@storeCode ORDER BY A.D_CreateOn ASC";
  503. IEnumerable<TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  504. if (null == recordItemlist || recordItemlist.First() == null)
  505. {
  506. IEnumerable<TispRecordItemAlarmDetailViewModel> recordItemDetail = null;
  507. return Task.FromResult(recordItemDetail);
  508. }
  509. var q = from b in recordItemlist
  510. group b by b.C_ID into g
  511. select new TispRecordItemAlarmDetailViewModel
  512. {
  513. C_ID = g.Key,
  514. C_RecordCode = g.First().C_RecordCode,
  515. C_ContentCode = g.First().C_ContentCode,
  516. C_SpotContentCode = g.First().C_SpotContentCode,
  517. C_InspectionContent = g.First().C_InspectionContent,
  518. C_Remark = g.First().C_Remark,
  519. C_Status = g.First().C_Status,
  520. C_AlarmLevel = g.First().C_AlarmLevel,
  521. C_Name = g.First().C_Name,
  522. D_CreateOn = g.First().D_CreateOn,
  523. SpotName = g.First().SpotName,
  524. SpotNumber = g.First().SpotNumber,
  525. SpotPosition = g.First().SpotPosition,
  526. ReportUserName = g.First().ReportUserName,
  527. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  528. };
  529. return Task.FromResult(q);
  530. }
  531. public Task<IEnumerable<TispRecordItemAlarmDetailViewModel>> GetAlarmRecordsByRecordItemIdAsync(Guid itemId)
  532. {
  533. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("ItemId", itemId) };
  534. string sql = "SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_StoreCode,E.C_QRCode,E.C_Number AS SpotNumber,E.C_Position AS SpotPosition ,F.C_Name AS ReportUserName,F.C_Mobile AS ReportUserMobile FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy WHERE A.C_ID = @ItemId ";
  535. IEnumerable<TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  536. if (null == recordItemlist || recordItemlist.First() == null)
  537. {
  538. IEnumerable<TispRecordItemAlarmDetailViewModel> recordItemDetail = null;
  539. return Task.FromResult(recordItemDetail);
  540. }
  541. var q = from b in recordItemlist
  542. group b by b.C_ID into g
  543. select new TispRecordItemAlarmDetailViewModel
  544. {
  545. C_ID = g.Key,
  546. C_RecordCode = g.First().C_RecordCode,
  547. C_ContentCode = g.First().C_ContentCode,
  548. C_SpotContentCode = g.First().C_SpotContentCode,
  549. C_InspectionContent = g.First().C_InspectionContent,
  550. C_Remark = g.First().C_Remark,
  551. C_Status = g.First().C_Status,
  552. C_AlarmLevel = g.First().C_AlarmLevel,
  553. C_Name = g.First().C_Name,
  554. D_CreateOn = g.First().D_CreateOn,
  555. SpotName = g.First().SpotName,
  556. C_StoreCode = g.First().C_StoreCode,
  557. C_QRCode= g.First().C_QRCode,
  558. SpotNumber = g.First().SpotNumber,
  559. SpotPosition = g.First().SpotPosition,
  560. ReportUserName = g.First().ReportUserName,
  561. ReportUserMobile = g.First().ReportUserMobile,
  562. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  563. };
  564. return Task.FromResult(q);
  565. }
  566. public Task<IEnumerable<TispRecordItemAlarmDetailViewModel>> GetNewRecordByQRCodeAsync(string QRCode, string storeCode)
  567. {
  568. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("QRCode", QRCode), new MySqlConnector.MySqlParameter("storeCode", storeCode) };
  569. //string sql = "SELECT * From (SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,E.C_Position AS SpotPosition ,F.C_Name AS ReportUserName,D.D_CreateOn AS ReportCreateOn,G.C_Status AS SecurityStatus FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy LEFT JOIN TSEC_RecordItem G ON G.C_RecordItemCode = A.C_ID WHERE E.C_QRCode = @QRCode order by D.D_CreateOn desc )R GROUP BY R.C_RecordCode";
  570. //string sql = "SELECT * FROM (SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,E.C_Position AS SpotPosition ,F.C_Name AS ReportUserName,D.D_CreateOn AS ReportCreateOn,G.C_Status AS SecurityStatus FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID LEFT JOIN (SELECT * From TISP_Record ORDER BY D_CreateOn DESC limit 1) D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy LEFT JOIN TSEC_RecordItem G ON G.C_RecordItemCode = A.C_ID WHERE E.C_QRCode = @QRCode ORDER BY A.D_CreateOn DESC )AA ";
  571. string sql = "SELECT * FROM (SELECT (@i:=@i+1) as pm , A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,E.C_Position AS SpotPosition ,F.C_Name AS ReportUserName,D.D_CreateOn AS ReportCreateOn,G.C_Status AS SecurityStatus FROM (SELECT @i:=0) AS i, TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID INNER JOIN (SELECT A.* FROM TISP_Record A,(SELECT C_SpotCode, max(D_CreateOn) maxTime FROM TISP_Record GROUP BY C_SpotCode) B WHERE A.C_SpotCode = B.C_SpotCode AND A.D_CreateOn = B.maxTime)D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy LEFT JOIN TISP_SecurityItem G ON G.C_RecordItemCode = A.C_ID WHERE E.C_QRCode =@QRCode AND E.C_StoreCode =@storeCode )AA GROUP BY IFNULL(AA.C_RecordImageId,UUID())";
  572. //string sql = "SELECT * FROM (SELECT A.*,B.C_AlarmLevel,B.C_Name,C.C_ID AS C_RecordImageId ,C.C_ImageURL,C.C_Status AS RecordImageStatus,E.C_Name AS SpotName,E.C_Number AS SpotNumber,E.C_Position AS SpotPosition ,F.C_Name AS ReportUserName,D.D_CreateOn AS ReportCreateOn,G.C_Status AS SecurityStatus FROM TISP_RecordItem A LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID LEFT JOIN TISP_RecordImage C ON C.C_RecordItemCode = A.C_ID INNER JOIN (SELECT A.* FROM TISP_Record A,(SELECT C_SpotCode, max(D_CreateOn) maxTime FROM TISP_Record GROUP BY C_SpotCode) B WHERE A.C_SpotCode = B.C_SpotCode AND A.D_CreateOn = B.maxTime)D ON D.C_ID = A.C_RecordCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = A.C_CreateBy LEFT JOIN TSEC_RecordItem G ON G.C_RecordItemCode = A.C_ID WHERE E.C_QRCode =@QRCode)AA";
  573. IEnumerable<TispRecordItemWithImageViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TispRecordItemWithImageViewModel>(DbContext.Database, sql, parameters);
  574. if (null == recordItemlist || recordItemlist.First() == null)
  575. {
  576. IEnumerable<TispRecordItemAlarmDetailViewModel> recordItemDetail = new List<TispRecordItemAlarmDetailViewModel>() { };
  577. return Task.FromResult(recordItemDetail);
  578. }
  579. var q = from b in recordItemlist
  580. group b by b.C_ID into g
  581. select new TispRecordItemAlarmDetailViewModel
  582. {
  583. C_ID = g.First().C_ID,
  584. C_RecordCode = g.First().C_RecordCode,
  585. C_ContentCode = g.First().C_ContentCode,
  586. C_SpotContentCode = g.First().C_SpotContentCode,
  587. C_InspectionContent = g.First().C_InspectionContent,
  588. C_Remark = g.First().C_Remark,
  589. C_Status = g.First().C_Status,
  590. C_AlarmLevel = g.First().C_AlarmLevel,
  591. C_Name = g.First().C_Name,
  592. D_CreateOn = g.First().D_CreateOn,
  593. D_LastUpdatedOn = g.First().D_LastUpdatedOn,
  594. C_CreateBy = g.First().C_CreateBy,
  595. C_LastUpdatedBy = g.First().C_LastUpdatedBy,
  596. SpotName = g.First().SpotName,
  597. SpotNumber = g.First().SpotNumber,
  598. SpotPosition = g.First().SpotPosition,
  599. ReportUserName = g.First().ReportUserName,
  600. SecurityStatus = g.First().SecurityStatus,
  601. RecordImageList = (from c in g select new RecordImage { C_RecordImageId = c.C_RecordImageId, C_ImageURL = c.C_ImageURL, RecordImageStatus = c.RecordImageStatus }).ToList<RecordImage>(),
  602. };
  603. return Task.FromResult(q);
  604. }
  605. /// <summary>
  606. /// 防火检查记录表(周)
  607. /// </summary>
  608. /// <param name="start"></param>
  609. /// <param name="end"></param>
  610. /// <returns></returns>
  611. public Task<IEnumerable<FirePreventionWeekRecordViewModel>> GetFirePreventionWeekRecordAsync(DateTime start,DateTime end, string storeCode)
  612. {
  613. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("start", start), new MySqlConnector.MySqlParameter("end", end), new MySqlConnector.MySqlParameter("storeCode", storeCode) };
  614. //string sql = "SELECT A.G_ID,group_concat(C.C_Status) AS CheckSituation, group_concat(CASE C.C_Status when '3' THEN CONCAT(E.C_Number ,':', E.C_Name,'异常未处理',C.C_InspectionContent) WHEN '2' THEN CONCAT(E.C_Number ,':', E.C_Name,'已处理',C.C_InspectionContent) END) AS Result ,A.C_Name FROM TISP_ContentGroup A LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID LEFT JOIN TISP_RecordItem C ON C.C_ContentCode = B.G_ContentCode LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ContentCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode WHERE A.C_Status = '1' AND E.C_Number is NOT NULL AND E.C_Name IS NOT NULL AND C.D_CreateOn BETWEEN @start and @end GROUP BY IFNULL(A.G_ID,UUID())";
  615. //string sql = "SELECT A.G_ID , C.C_Status ,E.C_Number ,E.C_Name AS SpotName,C.C_InspectionContent,A.C_Name FROM TISP_ContentGroup A LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID LEFT JOIN TISP_RecordItem C ON C.C_ContentCode = B.G_ContentCode LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ContentCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode WHERE A.C_Status = '1' AND E.C_Number is NOT NULL AND E.C_Name IS NOT NULL AND C.D_CreateOn BETWEEN @start and @end ";
  616. string sql = @"SELECT A.G_ID,A.C_Name, G.C_Status ,E.C_Number ,E.C_Name AS SpotName,C.C_Name AS C_InspectionContent FROM TISP_ContentGroup A
  617. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  618. LEFT JOIN TISP_Content C ON C.C_ID = B.G_ContentCode
  619. LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ID
  620. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  621. LEFT JOIN TISP_Record F ON F.C_SpotCode = E.C_Code
  622. LEFT JOIN TISP_RecordItem G ON G.C_RecordCode = F.C_ID
  623. WHERE A.C_Status = '1' AND A.I_Type = 1 AND (G.D_CreateOn BETWEEN @start and @end OR G.C_Status IS NULL)
  624. ";
  625. sql = @"SELECT A.G_ID,A.C_Name, G.C_Status ,E.C_Number ,E.C_Name AS SpotName,C.C_Name AS C_InspectionContent FROM TISP_ContentGroup A
  626. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  627. LEFT JOIN TISP_Content C ON C.C_ID = B.G_ContentCode
  628. LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ID
  629. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  630. LEFT JOIN TISP_Record F ON F.C_SpotCode = E.C_Code
  631. LEFT JOIN TISP_RecordItem G ON G.C_RecordCode = F.C_ID
  632. WHERE A.C_Status = '1' AND A.I_Type = 1 AND (G.D_CreateOn BETWEEN @start and @end)
  633. ";
  634. sql = @"SELECT A.G_ID,A.C_Name, M.C_Status ,M.C_Number , SpotName,H.C_Name AS C_InspectionContent
  635. FROM TISP_ContentGroup A
  636. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  637. LEFT JOIN TISP_Content H ON H.C_ID = B.G_ContentCode
  638. LEFT JOIN
  639. (
  640. SELECT B.C_ID,A.C_Status ,A.D_CreateOn,A.C_InspectionContent AS AbnormalContent,A.C_Remark,E.C_Number ,E.C_Name AS SpotName,H.C_Name AS UserName
  641. FROM TISP_RecordItem A
  642. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  643. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  644. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  645. LEFT JOIN TSYS_User H ON H.C_UserID = A.C_CreateBy
  646. WHERE A.D_CreateOn BETWEEN @start and @end AND E.C_StoreCode =@storeCode
  647. )M
  648. ON M.C_ID = H.C_ID
  649. WHERE A.C_Status = '1' AND A.I_Type = 1 AND A.C_StoreCode =@storeCode ";
  650. IEnumerable <FirePreventionWeekRecordDto> recordItemlist = EntityFrameworkCoreExtensions.GetList2<FirePreventionWeekRecordDto>(DbContext.Database, sql, parameters);
  651. if (null == recordItemlist || recordItemlist.First() == null)
  652. {
  653. IEnumerable<FirePreventionWeekRecordViewModel> recordItemDetail = new List<FirePreventionWeekRecordViewModel>() { };
  654. return Task.FromResult(recordItemDetail);
  655. }
  656. else
  657. {
  658. var q = from b in recordItemlist
  659. group b by b.G_ID into g
  660. select new FirePreventionWeekRecordViewModel
  661. {
  662. G_ID = g.First().G_ID,
  663. CheckSituation = g.Any(i=>i.C_Status =="3" || i.C_Status == "2" ) ?"异常":"正常",
  664. C_Name = g.First().C_Name,
  665. Result = MergeExcResult(from c in g where (c.C_Status == "3" || c.C_Status == "2") select c),
  666. };
  667. return Task.FromResult(q);
  668. }
  669. }
  670. private string MergeExcResult(IEnumerable<FirePreventionWeekRecordDto> iArray)
  671. {
  672. //StringBuilder sb = new StringBuilder();
  673. string sb = string.Empty;
  674. foreach (var v in iArray)
  675. {
  676. //sb.Append(v.C_Number);
  677. //sb.Append(":");
  678. //sb.Append(v.C_Name);
  679. //sb.Append(v.C_InspectionContent);
  680. //sb.Append(" ");
  681. if (v.C_Status == "3")
  682. {
  683. sb = "未处理";
  684. break;
  685. }
  686. else if(v.C_Status == "2")
  687. {
  688. sb = "已处理";
  689. }
  690. }
  691. return sb;
  692. }
  693. /// <summary>
  694. /// 消防设施每周检查记录
  695. /// </summary>
  696. /// <param name="start"></param>
  697. /// <param name="end"></param>
  698. /// <returns></returns>
  699. public Task<IEnumerable<FireFightingFacilitiesWeekRecordViewModel>> GetFireFightingFacilitiesAsync(DateTime start, DateTime end, string storeCode)
  700. {
  701. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("start", start), new MySqlConnector.MySqlParameter("end", end), new MySqlConnector.MySqlParameter("storeCode", storeCode) };
  702. //string sql = "SELECT A.G_ID , A.C_PatrolItem,A.C_Name, C.C_Status ,E.C_Number ,E.C_Name AS SpotName,C.C_InspectionContent,C.C_Remark FROM TISP_ContentGroup A LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID LEFT JOIN TISP_RecordItem C ON C.C_ContentCode = B.G_ContentCode LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ContentCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode WHERE A.C_Status = '1' AND A.I_Type = 3 AND C.D_CreateOn BETWEEN @start and @end ";
  703. string sql = @"SELECT A.G_ID,A.C_PatrolItem,A.C_Name, G.C_Status ,E.C_Number ,E.C_Name AS SpotName,C.C_Name AS C_InspectionContent,C.C_Remark FROM TISP_ContentGroup A
  704. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  705. LEFT JOIN TISP_Content C ON C.C_ID = B.G_ContentCode
  706. LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ID
  707. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  708. LEFT JOIN TISP_Record F ON F.C_SpotCode = E.C_Code
  709. LEFT JOIN TISP_RecordItem G ON G.C_RecordCode = F.C_ID
  710. WHERE A.C_Status = '1' AND A.I_Type = 3 AND (G.D_CreateOn BETWEEN @start and @end OR G.C_Status IS NULL)
  711. ";
  712. sql = @"SELECT A.G_ID,A.C_PatrolItem,A.C_Name, G.C_Status ,E.C_Number ,E.C_Name AS SpotName,C.C_Name AS C_InspectionContent,C.C_Remark FROM TISP_ContentGroup A
  713. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  714. LEFT JOIN TISP_Content C ON C.C_ID = B.G_ContentCode
  715. LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ID
  716. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  717. LEFT JOIN TISP_Record F ON F.C_SpotCode = E.C_Code
  718. LEFT JOIN TISP_RecordItem G ON G.C_RecordCode = F.C_ID
  719. WHERE A.C_Status = '1' AND A.I_Type = 3 AND (G.D_CreateOn BETWEEN @start and @end)
  720. ";
  721. sql = @"SELECT A.G_ID,A.C_PatrolItem,A.C_Name, M.C_Status ,M.C_Number ,M.SpotName,H.C_Name AS C_InspectionContent,H.C_Remark
  722. FROM TISP_ContentGroup A
  723. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  724. LEFT JOIN TISP_Content H ON H.C_ID = B.G_ContentCode
  725. LEFT JOIN
  726. (
  727. SELECT B.C_ID,A.C_Status,E.C_Number ,E.C_Name AS SpotName
  728. FROM TISP_RecordItem A
  729. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  730. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  731. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  732. WHERE (A.C_Status = '2' OR A.C_Status = '3') AND E.C_Status = '1' AND E.C_StoreCode =@storeCode AND (A.D_CreateOn BETWEEN @start and @end )
  733. )M
  734. ON M.C_ID = H.C_ID
  735. WHERE A.C_Status = '1' AND A.I_Type = 3 AND A.C_StoreCode = @storeCode ";
  736. IEnumerable<FireFightingFacilitiesWeekRecordDto> recordItemlist = EntityFrameworkCoreExtensions.GetList2<FireFightingFacilitiesWeekRecordDto>(DbContext.Database, sql, parameters);
  737. if (null == recordItemlist || recordItemlist.First() == null)
  738. {
  739. IEnumerable<FireFightingFacilitiesWeekRecordViewModel> recordItemDetail = new List<FireFightingFacilitiesWeekRecordViewModel>() { };
  740. return Task.FromResult(recordItemDetail);
  741. }
  742. else
  743. {
  744. //var q = from b in recordItemlist
  745. // group b by b.G_ID into g
  746. // select new FireFightingFacilitiesWeekRecordViewModel
  747. // {
  748. // C_PatrolItem = g.First().C_PatrolItem,
  749. // FireFightingFacilitiesItem = from d in g group d by d.C_PatrolItem into f select new FireFightingFacilitiesItem
  750. // {
  751. // G_ID = f.First().G_ID,
  752. // CheckSituation = f.Any(i => i.C_Status == "3") ? "异常" : "正常",
  753. // C_Name = f.First().C_Name,
  754. // C_PatrolItem = f.First().C_PatrolItem,
  755. // Result = MergeExcResult(from c in f where c.C_Status == "3" select c),
  756. // }
  757. // };
  758. var q = from b in recordItemlist
  759. group b by b.C_PatrolItem into g
  760. select new FireFightingFacilitiesWeekRecordViewModel
  761. {
  762. C_PatrolItem = g.First().C_PatrolItem,
  763. FireFightingFacilitiesItem = from d in g
  764. group d by d.G_ID into f
  765. select new FireFightingFacilitiesItem
  766. {
  767. G_ID = f.First().G_ID,
  768. CheckSituation = f.Any(i => i.C_Status == "3") ? "异常" : "正常",
  769. C_Name = f.First().C_Name,
  770. C_PatrolItem = f.First().C_PatrolItem,
  771. Result = MergeExcResult(from c in f where (c.C_Status == "3" || c.C_Status == "2") select c),
  772. }
  773. };
  774. return Task.FromResult(q);
  775. }
  776. }
  777. private string MergeExcResult(IEnumerable<FireFightingFacilitiesWeekRecordDto> iArray)
  778. {
  779. StringBuilder sb = new StringBuilder();
  780. foreach (var v in iArray)
  781. {
  782. if (v.C_Status == "3")
  783. {
  784. sb.Append(v.C_Number);
  785. sb.Append(":");
  786. sb.Append(v.C_Name);
  787. sb.Append(v.C_InspectionContent);
  788. sb.Append(v.C_Remark);
  789. sb.Append(",未处理");
  790. sb.Append("; \r\n");
  791. }
  792. if (v.C_Status == "2")
  793. {
  794. sb.Append(v.C_Number);
  795. sb.Append(":");
  796. sb.Append(v.C_Name);
  797. sb.Append(v.C_InspectionContent);
  798. sb.Append(v.C_Remark);
  799. sb.Append(",已处理");
  800. sb.Append("; \r\n");
  801. }
  802. }
  803. return sb.ToString();
  804. }
  805. /// <summary>
  806. /// 防火巡查记录表
  807. /// </summary>
  808. /// <param name="start"></param>
  809. /// <param name="end"></param>
  810. /// <returns></returns>
  811. public Task<IEnumerable<FireInspectionRecordViewModel>> GetFireInspectionRecordAsync(DateTime start, DateTime end, string storeCode)
  812. {
  813. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("start", start), new MySqlConnector.MySqlParameter("end", end), new MySqlConnector.MySqlParameter("storeCode", storeCode) };
  814. //string sql = "SELECT A.G_ID , A.C_PatrolItem,A.C_Name, C.C_Status ,C.D_CreateOn,E.C_Number ,E.C_Name AS SpotName,C.C_InspectionContent,C.C_Remark,F.C_Name AS UserName FROM TISP_ContentGroup A LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID LEFT JOIN TISP_RecordItem C ON C.C_ContentCode = B.G_ContentCode LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ContentCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = C.C_CreateBy WHERE A.C_Status = '1' AND A.I_Type = 4 AND C.D_CreateOn BETWEEN @start and @end ORDER BY C.D_CreateOn ASC ";
  815. // string sql = @"SELECT
  816. //C_Name,D_CreateOn,UserName,sx AS CreateDate,group_concat(C_InspectionContent,',') AS GroupInspectionContent,group_concat(C_Remark,',') AS GroupRemark,
  817. //GROUP_CONCAT(fhm) as 'Fhm',
  818. //GROUP_CONCAT(fhmZt) as 'FhmZt',
  819. //GROUP_CONCAT(bzbs) as 'Bzbs',
  820. //GROUP_CONCAT(bzbsZt) as 'BzbsZt',
  821. //GROUP_CONCAT(zdbw) as 'Zdbw',
  822. //GROUP_CONCAT(zdbwZt) as 'ZdbwZt',
  823. //GROUP_CONCAT(sdwz) as 'Sdwz',
  824. //GROUP_CONCAT(sdwzZt) as 'SdwzZt',
  825. //GROUP_CONCAT(sstd) as 'Sstd',
  826. //GROUP_CONCAT(sstdZt) as 'SstdZt',
  827. //GROUP_CONCAT(xfqc) as 'Xfqc',
  828. //GROUP_CONCAT(xfqcZt) as 'XfqcZt',
  829. //GROUP_CONCAT(aqck) as 'Aqck',
  830. //GROUP_CONCAT(aqckZt) as 'AqckZt'
  831. //FROM
  832. //(
  833. //SELECT
  834. // C_Name,C_Status,D_CreateOn,UserName,C_InspectionContent,C_Remark,
  835. //LOWER(DATE_FORMAT(D_CreateOn,'%Y-%m-%d %p')) as sx,
  836. //CASE WHEN C_Name ='防火门' THEN C_Name ELSE NULL END AS fhm,
  837. //CASE WHEN C_Name ='防火门' THEN C_Status ELSE NULL END AS fhmZt,
  838. //CASE WHEN C_Name ='标识标志' THEN C_Name ELSE NULL END AS bzbs,
  839. //CASE WHEN C_Name ='标识标志' THEN C_Status ELSE NULL END AS bzbsZt,
  840. //CASE WHEN C_Name ='重点部位' THEN C_Name ELSE NULL END AS zdbw,
  841. //CASE WHEN C_Name ='重点部位' THEN C_Status ELSE NULL END AS zdbwZt,
  842. //CASE WHEN C_Name ='水电违章' THEN C_Name ELSE NULL END AS sdwz,
  843. //CASE WHEN C_Name ='水电违章' THEN C_Status ELSE NULL END AS sdwzZt,
  844. //CASE WHEN C_Name ='安全出口' THEN C_Name ELSE NULL END AS aqck,
  845. //CASE WHEN C_Name ='安全出口' THEN C_Status ELSE NULL END AS aqckZt,
  846. //CASE WHEN C_Name ='疏散通道' THEN C_Name ELSE NULL END AS sstd,
  847. //CASE WHEN C_Name ='疏散通道' THEN C_Status ELSE NULL END AS sstdZt,
  848. //CASE WHEN C_Name ='消防器材' THEN C_Name ELSE NULL END AS xfqc,
  849. //CASE WHEN C_Name ='消防器材' THEN C_Status ELSE NULL END AS xfqcZt
  850. //from
  851. //(
  852. //SELECT A.G_ID , A.C_PatrolItem,A.C_Name, C.C_Status ,C.D_CreateOn,E.C_Number ,E.C_Name AS SpotName,C.C_InspectionContent,C.C_Remark,F.C_Name AS UserName FROM TISP_ContentGroup A LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID LEFT JOIN TISP_RecordItem C ON C.C_ContentCode = B.G_ContentCode LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ContentCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = C.C_CreateBy WHERE A.C_Status = '1' AND A.I_Type = 4
  853. //)TableA GROUP BY LOWER(DATE_FORMAT(D_CreateOn,'%Y-%m-%d %p')),C_Name ORDER BY D_CreateOn DESC
  854. //) TableB GROUP BY sx";
  855. string sql = @"SELECT
  856. C_Name,D_CreateOn,UserName,sx AS CreateDate,group_concat(C_InspectionContent,',') AS GroupInspectionContent,group_concat(C_Remark,',') AS GroupRemark,
  857. GROUP_CONCAT(fhm) as 'Fhm',
  858. GROUP_CONCAT(fhmZt) as 'FhmZt',
  859. GROUP_CONCAT(bzbs) as 'Bzbs',
  860. GROUP_CONCAT(bzbsZt) as 'BzbsZt',
  861. GROUP_CONCAT(zdbw) as 'Zdbw',
  862. GROUP_CONCAT(zdbwZt) as 'ZdbwZt',
  863. GROUP_CONCAT(sdwz) as 'Sdwz',
  864. GROUP_CONCAT(sdwzZt) as 'SdwzZt',
  865. GROUP_CONCAT(sstd) as 'Sstd',
  866. GROUP_CONCAT(sstdZt) as 'SstdZt',
  867. GROUP_CONCAT(xfqc) as 'Xfqc',
  868. GROUP_CONCAT(xfqcZt) as 'XfqcZt',
  869. GROUP_CONCAT(aqck) as 'Aqck',
  870. GROUP_CONCAT(aqckZt) as 'AqckZt'
  871. FROM
  872. (
  873. SELECT
  874. C_Name,C_Status,D_CreateOn,UserName,C_InspectionContent,C_Remark,
  875. LOWER(DATE_FORMAT(D_CreateOn,'%Y-%m-%d %p')) as sx,
  876. CASE WHEN C_Name ='防火门' THEN C_Name ELSE NULL END AS fhm,
  877. CASE WHEN C_Name ='防火门' THEN C_Status ELSE NULL END AS fhmZt,
  878. CASE WHEN C_Name ='标识标志' THEN C_Name ELSE NULL END AS bzbs,
  879. CASE WHEN C_Name ='标识标志' THEN C_Status ELSE NULL END AS bzbsZt,
  880. CASE WHEN C_Name ='重点部位' THEN C_Name ELSE NULL END AS zdbw,
  881. CASE WHEN C_Name ='重点部位' THEN C_Status ELSE NULL END AS zdbwZt,
  882. CASE WHEN C_Name ='水电违章' THEN C_Name ELSE NULL END AS sdwz,
  883. CASE WHEN C_Name ='水电违章' THEN C_Status ELSE NULL END AS sdwzZt,
  884. CASE WHEN C_Name ='安全出口' THEN C_Name ELSE NULL END AS aqck,
  885. CASE WHEN C_Name ='安全出口' THEN C_Status ELSE NULL END AS aqckZt,
  886. CASE WHEN C_Name ='疏散通道' THEN C_Name ELSE NULL END AS sstd,
  887. CASE WHEN C_Name ='疏散通道' THEN C_Status ELSE NULL END AS sstdZt,
  888. CASE WHEN C_Name ='消防器材' THEN C_Name ELSE NULL END AS xfqc,
  889. CASE WHEN C_Name ='消防器材' THEN C_Status ELSE NULL END AS xfqcZt
  890. from
  891. (
  892. SELECT A.G_ID,A.C_PatrolItem,A.C_Name, G.C_Status ,G.D_CreateOn,E.C_Number ,E.C_Name AS SpotName,C.C_Name AS C_InspectionContent,C.C_Remark,H.C_Name AS UserName FROM TISP_ContentGroup A
  893. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  894. LEFT JOIN TISP_Content C ON C.C_ID = B.G_ContentCode
  895. LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ID
  896. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  897. LEFT JOIN TISP_Record F ON F.C_SpotCode = E.C_Code
  898. LEFT JOIN TISP_RecordItem G ON G.C_RecordCode = F.C_ID
  899. LEFT JOIN TSYS_User H ON H.C_UserID = G.C_CreateBy WHERE A.C_Status = '1' AND A.C_StoreCode =@storeCode AND A.I_Type = 4 AND G.D_CreateOn BETWEEN @start and @end
  900. )TableA GROUP BY LOWER(DATE_FORMAT(D_CreateOn,'%Y-%m-%d %p')),C_Name ORDER BY D_CreateOn DESC
  901. ) TableB GROUP BY sx";
  902. // sql = @"SELECT
  903. //C_Name,D_CreateOn,UserName,sx AS CreateDate,group_concat(C_InspectionContent, ',') AS GroupInspectionContent, group_concat(C_Remark, ',') AS GroupRemark, SpotNumber, SpotName,
  904. // GROUP_CONCAT(fhm) as 'Fhm',
  905. //GROUP_CONCAT(fhmZt) as 'FhmZt',
  906. //GROUP_CONCAT(bzbs) as 'Bzbs',
  907. //GROUP_CONCAT(bzbsZt) as 'BzbsZt',
  908. //GROUP_CONCAT(zdbw) as 'Zdbw',
  909. //GROUP_CONCAT(zdbwZt) as 'ZdbwZt',
  910. //GROUP_CONCAT(sdwz) as 'Sdwz',
  911. //GROUP_CONCAT(sdwzZt) as 'SdwzZt',
  912. //GROUP_CONCAT(sstd) as 'Sstd',
  913. //GROUP_CONCAT(sstdZt) as 'SstdZt',
  914. //GROUP_CONCAT(xfqc) as 'Xfqc',
  915. //GROUP_CONCAT(xfqcZt) as 'XfqcZt',
  916. //GROUP_CONCAT(aqck) as 'Aqck',
  917. //GROUP_CONCAT(aqckZt) as 'AqckZt'
  918. //FROM
  919. //(
  920. //SELECT
  921. // C_Name, C_Status, D_CreateOn, UserName, C_InspectionContent, C_Remark, SpotNumber, SpotName, SpotInspection, SpotRemark,
  922. //LOWER(DATE_FORMAT(D_CreateOn, '%Y-%m-%d %p')) as sx,
  923. //CASE WHEN C_Name = '防火门' THEN C_Name ELSE NULL END AS fhm,
  924. //CASE WHEN C_Name = '防火门' THEN C_Status ELSE NULL END AS fhmZt,
  925. //CASE WHEN C_Name = '标识标志' THEN C_Name ELSE NULL END AS bzbs,
  926. //CASE WHEN C_Name = '标识标志' THEN C_Status ELSE NULL END AS bzbsZt,
  927. //CASE WHEN C_Name = '重点部位' THEN C_Name ELSE NULL END AS zdbw,
  928. //CASE WHEN C_Name = '重点部位' THEN C_Status ELSE NULL END AS zdbwZt,
  929. //CASE WHEN C_Name = '水电违章' THEN C_Name ELSE NULL END AS sdwz,
  930. //CASE WHEN C_Name = '水电违章' THEN C_Status ELSE NULL END AS sdwzZt,
  931. //CASE WHEN C_Name = '安全出口' THEN C_Name ELSE NULL END AS aqck,
  932. //CASE WHEN C_Name = '安全出口' THEN C_Status ELSE NULL END AS aqckZt,
  933. //CASE WHEN C_Name = '疏散通道' THEN C_Name ELSE NULL END AS sstd,
  934. //CASE WHEN C_Name = '疏散通道' THEN C_Status ELSE NULL END AS sstdZt,
  935. //CASE WHEN C_Name = '消防器材' THEN C_Name ELSE NULL END AS xfqc,
  936. //CASE WHEN C_Name = '消防器材' THEN C_Status ELSE NULL END AS xfqcZt
  937. //from
  938. //(
  939. //SELECT A.G_ID, A.C_PatrolItem, A.C_Name, G.C_Status, G.D_CreateOn, E.C_Number, E.C_Number AS SpotNumber, E.C_Name AS SpotName, C.C_Name AS SpotInspection, G.C_Remark AS SpotRemark, C.C_Name AS C_InspectionContent, C.C_Remark, H.C_Name AS UserName FROM TISP_ContentGroup A
  940. //LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  941. //LEFT JOIN TISP_Content C ON C.C_ID = B.G_ContentCode
  942. //LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ID
  943. //LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  944. //LEFT JOIN TISP_Record F ON F.C_SpotCode = E.C_Code
  945. //LEFT JOIN TISP_RecordItem G ON G.C_RecordCode = F.C_ID
  946. //LEFT JOIN TSYS_User H ON H.C_UserID = G.C_CreateBy WHERE A.C_Status = '1' AND A.I_Type = 4 AND(G.C_Status = '2' OR G.C_Status = '3' OR G.C_Status = '1') AND G.D_CreateOn BETWEEN '2021-11-01' and '2021-12-11' AND H.C_UserID IN('6a3f5fbc-e568-4bd0-a1ff-2ad7f33c773d', '4447b5b0-6777-474b-9e6b-bf02af864829', 'dc81542d-1b98-4b94-836a-74167189fb5d', '6e4b713b-82cd-491e-8b80-bcdec08f33cb')
  947. //)TableA GROUP BY LOWER(DATE_FORMAT(D_CreateOn, '%Y-%m-%d %p')), C_Name ORDER BY D_CreateOn DESC
  948. //) TableB GROUP BY sx";
  949. IEnumerable<FireInspectionRecordViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<FireInspectionRecordViewModel>(DbContext.Database, sql, parameters);
  950. return Task.FromResult(recordItemlist);
  951. //IEnumerable<FireInspectionRecordDto> recordItemlist = EntityFrameworkCoreExtensions.GetList<FireInspectionRecordDto>(DbContext.Database, sql, parameters);
  952. //if (null == recordItemlist || recordItemlist.First() == null)
  953. //{
  954. // IEnumerable<FireInspectionRecordViewModel> recordItemDetail = new List<FireInspectionRecordViewModel>() { };
  955. // return Task.FromResult(recordItemDetail);
  956. //}
  957. //else
  958. //{
  959. // var q = from b in recordItemlist
  960. // group b by b.G_ID into g
  961. // select new FireInspectionRecordViewModel
  962. // {
  963. // G_ID = g.First().G_ID,
  964. // CheckSituation = g.Any(i => i.C_Status == "2") ? "异常" : "正常",
  965. // UserName = g.First().UserName,
  966. // D_CreateOn = g.First().D_CreateOn,
  967. // Result = MergeExcResult(from c in g where c.C_Status == "2" select c),
  968. // };
  969. // return Task.FromResult(q);
  970. //}
  971. }
  972. //private string MergeExcResult(IEnumerable<FireInspectionRecordDto> iArray)
  973. //{
  974. // StringBuilder sb = new StringBuilder();
  975. // foreach (var v in iArray)
  976. // {
  977. // sb.Append(v.C_Number);
  978. // sb.Append(":");
  979. // sb.Append(v.C_Name);
  980. // sb.Append(v.C_InspectionContent);
  981. // sb.Append(v.C_Remark);
  982. // sb.Append(" ");
  983. // }
  984. // return sb.ToString();
  985. //}
  986. /// <summary>
  987. /// 防患整改验收单
  988. /// </summary>
  989. /// <param name="start"></param>
  990. /// <param name="end"></param>
  991. /// <returns></returns>
  992. public Task<HiddenDangerRectificationAcceptanceFormViewModel> HiddenDangerRectificationAcceptanceForm(DateTime start, DateTime end, string storeCode)
  993. {
  994. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("start", start), new MySqlConnector.MySqlParameter("end", end), new MySqlConnector.MySqlParameter("storeCode", storeCode) };
  995. //string sql = "SELECT A.G_ID , A.C_PatrolItem,A.C_Name, C.C_Status ,C.D_CreateOn,E.C_Number ,E.C_Name AS SpotName,C.C_InspectionContent,C.C_Remark,F.C_Name AS UserName FROM TISP_ContentGroup A LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID LEFT JOIN TISP_RecordItem C ON C.C_ContentCode = B.G_ContentCode LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ContentCode LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode LEFT JOIN TSYS_User F ON F.C_UserID = C.C_CreateBy WHERE A.C_Status = '1' AND A.I_Type = 2 AND C.C_Status = '2' AND C.D_CreateOn BETWEEN @start and @end ";
  996. string sql = @"SELECT A.G_ID,A.C_PatrolItem,A.C_Name, G.C_Status ,G.D_CreateOn,E.C_Number ,E.C_Name AS SpotName,C.C_Name AS C_InspectionContent,G.C_InspectionContent AS AbnormalContent,G.C_Remark,H.C_Name AS UserName FROM TISP_ContentGroup A
  997. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  998. LEFT JOIN TISP_Content C ON C.C_ID = B.G_ContentCode
  999. LEFT JOIN TISP_SpotContent D ON D.C_ContentCode = C.C_ID
  1000. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  1001. LEFT JOIN TISP_Record F ON F.C_SpotCode = E.C_Code
  1002. LEFT JOIN TISP_RecordItem G ON G.C_RecordCode = F.C_ID
  1003. LEFT JOIN TSYS_User H ON H.C_UserID = G.C_CreateBy
  1004. WHERE A.C_Status = '1' AND A.I_Type = 2 AND G.C_Status = '2' OR G.C_Status = '3' AND (G.D_CreateOn BETWEEN @start and @end OR G.C_Status IS NULL)
  1005. ";
  1006. sql = @"SELECT A.G_ID,A.C_PatrolItem,A.C_Name, M.C_Status ,M.D_CreateOn,M.C_Number ,SpotName,H.C_Name AS C_InspectionContent,M.AbnormalContent,M.C_Remark,M.UserName
  1007. FROM TISP_ContentGroup A
  1008. LEFT JOIN TISP_ContentGroupItem B ON B.G_ContentGroupCode = A.G_ID
  1009. LEFT JOIN TISP_Content H ON H.C_ID = B.G_ContentCode
  1010. LEFT JOIN
  1011. (
  1012. SELECT B.C_ID,A.C_Status ,A.D_CreateOn,A.C_InspectionContent AS AbnormalContent,A.C_Remark,E.C_Number ,E.C_Name AS SpotName,H.C_Name AS UserName
  1013. FROM TISP_RecordItem A
  1014. LEFT JOIN TISP_Content B ON A.C_ContentCode = B.C_ID
  1015. LEFT JOIN TISP_Record D ON D.C_ID = A.C_RecordCode
  1016. LEFT JOIN TISP_Spot E ON E.C_Code = D.C_SpotCode
  1017. LEFT JOIN TSYS_User H ON H.C_UserID = A.C_CreateBy
  1018. WHERE A.C_Status = '2' OR A.C_Status = '3' AND (A.D_CreateOn BETWEEN @start and @end )AND B.C_StoreCode =@storeCode
  1019. )M
  1020. ON M.C_ID = H.C_ID
  1021. WHERE A.C_Status = '1' AND A.I_Type = 2 AND A.C_StoreCode =@storeCode";
  1022. IEnumerable<HiddenDangerRectificationAcceptanceFormDto> recordItemlist = EntityFrameworkCoreExtensions.GetList2<HiddenDangerRectificationAcceptanceFormDto>(DbContext.Database, sql, parameters);
  1023. HiddenDangerRectificationAcceptanceFormViewModel record = new HiddenDangerRectificationAcceptanceFormViewModel() { };
  1024. if (null == recordItemlist || recordItemlist.First() == null)
  1025. {
  1026. return Task.FromResult(record);
  1027. }
  1028. record.RectificationContent = new List<string>();
  1029. record.Implementation = new List<string>();
  1030. //record.RectificationContent = recordItemlist.Select (i => i.C_Number + " "+ i.SpotName + " " + i.C_InspectionContent + " " + i.AbnormalContent).ToArray();
  1031. //record.Implementation = recordItemlist.Select(i => i.C_Number + " " + i.SpotName + " " + i.C_InspectionContent + " " + i.C_Remark).ToArray();
  1032. //return Task.FromResult(record);
  1033. foreach (var item in recordItemlist)
  1034. {
  1035. if (item.C_Status == "3" || item.C_Status == "2")
  1036. {
  1037. string rectification = item.C_Number + " " + item.SpotName + " " + item.C_InspectionContent + " " + item.AbnormalContent;
  1038. record.RectificationContent.Add(rectification);
  1039. //IEnumerableExtensions.Add(record.RectificationContent, rectification);
  1040. string Implementation = rectification + " " + (item.C_Status == "2"?"已整改":"未整改");
  1041. //IEnumerableExtensions.Add(record.Implementation, Implementation);
  1042. record.Implementation.Add(Implementation);
  1043. }
  1044. }
  1045. return Task.FromResult(record);
  1046. }
  1047. }
  1048. }