TispSpotService.cs 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718
  1. using AutoMapper;
  2. using LinqKit;
  3. using Ropin.Inspection.Common.Accessor.Interface;
  4. using Ropin.Inspection.Model;
  5. using Ropin.Inspection.Model.Entities;
  6. using Ropin.Inspection.Model.SearchModel;
  7. using Ropin.Inspection.Model.ViewModel;
  8. using Ropin.Inspection.Repository;
  9. using Ropin.Inspection.Repository.Interface;
  10. using Ropin.Inspection.Service.Interface;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Linq;
  14. using System.Linq.Expressions;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. namespace Ropin.Inspection.Service
  18. {
  19. public class TispSpotService : ITispSpotService
  20. {
  21. private readonly ITispSpotRepository _repository;
  22. private readonly ITispSpotContentRepository _tispSpotContentRepository;
  23. private readonly ITispContentRepository _tispContentRepository;
  24. private readonly ITmtnSpotDevOpsContentRepository _tmtnSpotDevOpsContentRepository;
  25. private readonly ITmtnDevOpsContentRepository _tmtnDevOpsContentRepository;
  26. private readonly ITispSpotUserRepository _tispSpotUserRepository;
  27. private readonly ITprdProductService _tprdProductService;
  28. private readonly IUnitOfWork _unitOfWork;
  29. private readonly ITdevDevSpotRepository _tdevDevSpotRepository;
  30. private readonly IMapper _mapper;
  31. private readonly IClaimsAccessor _claims;
  32. private readonly ITispRecordItemRepository _tispRecordItemRepository;
  33. public TispSpotService(
  34. ITispRecordItemRepository tispRecordItemRepository,
  35. IClaimsAccessor claims,
  36. ITprdProductService tprdProductService,
  37. ITispSpotRepository repository,
  38. ITispSpotContentRepository tispSpotContentRepository,
  39. ITispSpotUserRepository tispSpotUserRepository,
  40. ITmtnSpotDevOpsContentRepository tmtnSpotDevOpsContentRepository,
  41. ITmtnDevOpsContentRepository tmtnDevOpsContentRepository,
  42. ITispContentRepository tispContentRepository,
  43. ITdevDevSpotRepository tdevDevSpotRepository,
  44. IUnitOfWork unitOfWork,
  45. IMapper mapper)
  46. {
  47. _claims = claims;
  48. _repository = repository;
  49. _tispSpotContentRepository = tispSpotContentRepository;
  50. _tispSpotUserRepository = tispSpotUserRepository;
  51. _tprdProductService = tprdProductService;
  52. _tispRecordItemRepository = tispRecordItemRepository;
  53. _tispContentRepository = tispContentRepository;
  54. _tmtnDevOpsContentRepository = tmtnDevOpsContentRepository;
  55. _tdevDevSpotRepository = tdevDevSpotRepository;
  56. _unitOfWork = unitOfWork;
  57. _mapper = mapper;
  58. _tmtnSpotDevOpsContentRepository = tmtnSpotDevOpsContentRepository;
  59. }
  60. public async Task CreateOneAsync(TispSpotViewModel viewModel)
  61. {
  62. var spot = _mapper.Map<TISP_Spot>(viewModel);
  63. spot.C_CreateBy = _claims.ApiUserId;
  64. spot.D_CreateOn = DateTime.Now;
  65. spot.C_LastUpdatedBy = _claims.ApiUserId;
  66. spot.D_LastUpdatedOn = DateTime.Now;
  67. _repository.Create(spot);
  68. var result = await _repository.SaveAsync();
  69. if (!result)
  70. {
  71. throw new Exception("创建失败");
  72. }
  73. }
  74. public async Task CreateOneAsync(TispSpotCreateViewModel viewModel)
  75. {
  76. var spot = _mapper.Map<TISP_Spot>(viewModel);
  77. spot.C_CreateBy = _claims.ApiUserId;
  78. spot.D_CreateOn = DateTime.Now;
  79. spot.C_LastUpdatedBy = _claims.ApiUserId;
  80. spot.D_LastUpdatedOn = DateTime.Now;
  81. spot.C_Status = "1";
  82. _repository.Create(spot);
  83. var result = await _repository.SaveAsync();
  84. if (!result)
  85. {
  86. throw new Exception("创建失败");
  87. }
  88. if (null != viewModel.contentIdList)
  89. {
  90. foreach (Guid contentId in viewModel.contentIdList)
  91. {
  92. TISP_SpotContent spotContent = new TISP_SpotContent();
  93. spotContent.C_SpotCode = spot.C_Code;
  94. spotContent.C_ContentCode = contentId;
  95. spotContent.C_CreateBy = _claims.ApiUserId;
  96. spotContent.D_CreateOn = DateTime.Now;
  97. //spotContent.C_LastUpdatedBy = _claims.ApiUserId;
  98. //spotContent.D_LastUpdatedOn = DateTime.Now;
  99. //spotContent.C_Status = '1';
  100. _tispSpotContentRepository.Create(spotContent);
  101. var resultSpotContent = await _repository.SaveAsync();
  102. if (!resultSpotContent)
  103. {
  104. throw new Exception("创建失败");
  105. }
  106. }
  107. }
  108. if (null != viewModel.devOpsContentIdList)
  109. {
  110. foreach (string contentId in viewModel.devOpsContentIdList)
  111. {
  112. TMTN_SpotDevOpsContent spotContent = new TMTN_SpotDevOpsContent();
  113. spotContent.C_SpotCode = spot.C_Code.ToString();
  114. spotContent.C_ID = Guid.NewGuid().ToString();
  115. spotContent.C_DevOpsContentCode = contentId;
  116. spotContent.C_CreateBy = _claims.ApiUserId;
  117. spotContent.D_CreateOn = DateTime.Now;
  118. spotContent.C_Status ="1";
  119. _tmtnSpotDevOpsContentRepository.Create(spotContent);
  120. var resultSpotContent = await _tmtnSpotDevOpsContentRepository.SaveAsync();
  121. if (!resultSpotContent)
  122. {
  123. throw new Exception("创建失败");
  124. }
  125. }
  126. }
  127. }
  128. public async Task CreateOneByDevAsync(TispSpotByDevCreateViewModel viewModel)
  129. {
  130. var result = false;
  131. _unitOfWork.BeginTransaction();
  132. try
  133. {
  134. var spot = _mapper.Map<TISP_Spot>(viewModel);
  135. spot.C_CreateBy = _claims.ApiUserId;
  136. spot.D_CreateOn = DateTime.Now;
  137. spot.C_LastUpdatedBy = _claims.ApiUserId;
  138. spot.D_LastUpdatedOn = DateTime.Now;
  139. spot.C_Status = "1";
  140. result = await _unitOfWork.RegisterNew(spot);
  141. //_repository.Create(spot);
  142. //result = await _repository.SaveAsync();
  143. if (!result)
  144. {
  145. throw new Exception("创建失败");
  146. }
  147. var devSpot = new TDEV_DevSpot();
  148. devSpot.C_ID = Guid.NewGuid().ToString();
  149. devSpot.C_SpotCode = spot.C_Code.ToString();
  150. devSpot.C_DevStoreCode = viewModel.C_DevStoreCode;
  151. devSpot.C_CreateBy = _claims.ApiUserId;
  152. devSpot.D_CreateOn = DateTime.Now;
  153. //content.C_Status = "1";
  154. result = await _unitOfWork.RegisterNew(devSpot);
  155. //result = await _tdevDevSpotRepository.SaveAsync();
  156. if (!result)
  157. {
  158. throw new Exception("创建失败");
  159. }
  160. string storeCode = string.Empty;
  161. List<TISP_Content> contentList=null;
  162. List<TMTN_DevOpsContent> devOpsContentList=null;
  163. if (null != viewModel.contentList)
  164. {
  165. contentList = _mapper.Map<List<TISP_Content>>(viewModel.contentList);
  166. foreach (var item in contentList)
  167. {
  168. item.C_ID = Guid.NewGuid();
  169. item.C_CreateBy = _claims.ApiUserId;
  170. item.D_CreateOn = DateTime.Now;
  171. item.C_Status = "1";
  172. item.I_Sort = item.I_Sort;
  173. storeCode = item.C_StoreCode;
  174. }
  175. //result = await _unitOfWork.RegisterRangeNew(contentList);
  176. }
  177. if (null != viewModel.devOpsContentList)
  178. {
  179. devOpsContentList = _mapper.Map<List<TMTN_DevOpsContent>>(viewModel.devOpsContentList);
  180. foreach (var item in devOpsContentList)
  181. {
  182. item.C_ID = item.C_ID;
  183. item.C_CreateBy = _claims.ApiUserId;
  184. item.D_CreateOn = DateTime.Now;
  185. item.C_Status = "1";
  186. storeCode = item.C_StoreCode;
  187. }
  188. //result = await _unitOfWork.RegisterRangeNew(devOpsContentList);
  189. }
  190. if (!storeCode.Equals(string.Empty))
  191. {
  192. if (contentList != null)
  193. {
  194. List<TISP_Content> haveContentList = _mapper.Map<List<TISP_Content>>(contentList);
  195. IEnumerable<TISP_Content> allContentList = await _tispContentRepository.GetByConditionAsync(x => x.C_StoreCode == storeCode);
  196. var allList = allContentList.ToList();
  197. List<TISP_Content> otherContentList = new List<TISP_Content>();
  198. if (allList.Any())
  199. {
  200. foreach (var content in contentList)
  201. {
  202. var item = allList.Where(x => x.C_Name == content.C_Name).FirstOrDefault();
  203. if(item != null)
  204. otherContentList.Add(item);
  205. }
  206. }
  207. //otherContentList = allList.Where(x=>x.C_Name == )
  208. //haveContentList?.RemoveAll(x => contentList.Select(y => y.C_Name).Contains(x.C_Name));
  209. //otherContentList = allList.Intersect(contentList).ToList();
  210. //contentList?.RemoveAll(x => allContentList.ToList().Select(y => y.C_ID).Contains(x.C_ID));
  211. contentList?.RemoveAll(x => allList.Select(y => y.C_Name).Contains(x.C_Name));
  212. await _unitOfWork.RegisterRangeNew(contentList.ToList());
  213. foreach (var content in contentList)
  214. {
  215. TISP_SpotContent spotContent = new TISP_SpotContent();
  216. spotContent.C_SpotCode = spot.C_Code;
  217. spotContent.C_ContentCode = content.C_ID;
  218. spotContent.C_CreateBy = _claims.ApiUserId;
  219. spotContent.D_CreateOn = DateTime.Now;
  220. result = await _unitOfWork.RegisterNew<TISP_SpotContent>(spotContent);
  221. if (!result)
  222. {
  223. throw new Exception("创建失败");
  224. }
  225. }
  226. foreach (var content in otherContentList)
  227. {
  228. TISP_SpotContent spotContent = new TISP_SpotContent();
  229. spotContent.C_SpotCode = spot.C_Code;
  230. spotContent.C_ContentCode = content.C_ID;
  231. spotContent.C_CreateBy = _claims.ApiUserId;
  232. spotContent.D_CreateOn = DateTime.Now;
  233. result = await _unitOfWork.RegisterNew<TISP_SpotContent>(spotContent);
  234. if (!result)
  235. {
  236. throw new Exception("创建失败");
  237. }
  238. }
  239. }
  240. if (devOpsContentList != null)
  241. {
  242. foreach (var content in devOpsContentList)
  243. {
  244. TMTN_SpotDevOpsContent spotContent = new TMTN_SpotDevOpsContent();
  245. spotContent.C_SpotCode = spot.C_Code.ToString();
  246. spotContent.C_ID = Guid.NewGuid().ToString();
  247. spotContent.C_DevOpsContentCode = content.C_ID;
  248. spotContent.C_CreateBy = _claims.ApiUserId;
  249. spotContent.D_CreateOn = DateTime.Now;
  250. spotContent.C_Status = "1";
  251. result = await _unitOfWork.RegisterNew<TMTN_SpotDevOpsContent>(spotContent);
  252. if (!result)
  253. {
  254. throw new Exception("创建失败");
  255. }
  256. }
  257. IEnumerable<TMTN_DevOpsContent> allContentList = await _tmtnDevOpsContentRepository.GetByConditionAsync(x => x.C_StoreCode == storeCode);
  258. devOpsContentList?.RemoveAll(x => allContentList.ToList().Select(y => y.C_ID).Contains(x.C_ID));
  259. await _unitOfWork.RegisterRangeNew(devOpsContentList);
  260. }
  261. //var allInContentList = contentList == null ? null:contentList?.Union(devOpsContentList).ToList();
  262. //IEnumerable<TISP_Content> allContentList = await _tispContentRepository.GetByConditionAsync(x => x.C_StoreCode == storeCode);
  263. ////var isexsist = allContentList.ToList()?.Except(allInContentList).Distinct().ToList();
  264. //allInContentList?.RemoveAll(x => allContentList.ToList().Select(y => y.C_ID).Contains(x.C_ID));
  265. //result = await _unitOfWork.RegisterRangeNew(allInContentList);
  266. }
  267. }
  268. catch (Exception ex)
  269. {
  270. result = false;
  271. throw new Exception("创建失败");
  272. }
  273. finally
  274. {
  275. if (result)
  276. await _unitOfWork.CommitAsync();
  277. else
  278. _unitOfWork.Rollback();
  279. }
  280. //var result = false;
  281. //_unitOfWork.BeginTransaction();
  282. //try
  283. //{
  284. // var spot = _mapper.Map<TISP_Spot>(viewModel);
  285. // spot.C_CreateBy = _claims.ApiUserId;
  286. // spot.D_CreateOn = DateTime.Now;
  287. // spot.C_LastUpdatedBy = _claims.ApiUserId;
  288. // spot.D_LastUpdatedOn = DateTime.Now;
  289. // spot.C_Status = "1";
  290. // _repository.Create(spot);
  291. // result = await _repository.SaveAsync();
  292. // if (!result)
  293. // {
  294. // throw new Exception("创建失败");
  295. // }
  296. // var devSpot = new TDEV_DevSpot();
  297. // devSpot.C_ID = Guid.NewGuid().ToString();
  298. // devSpot.C_SpotCode = spot.C_Code.ToString();
  299. // devSpot.C_DevStoreCode = viewModel.C_DevStoreCode;
  300. // devSpot.C_CreateBy = _claims.ApiUserId;
  301. // devSpot.D_CreateOn = DateTime.Now;
  302. // //content.C_Status = "1";
  303. // _tdevDevSpotRepository.Create(devSpot);
  304. // result = await _tdevDevSpotRepository.SaveAsync();
  305. // if (!result)
  306. // {
  307. // throw new Exception("创建失败");
  308. // }
  309. // if (null != viewModel.contentList)
  310. // {
  311. // IList<TISP_Content> contentList = _mapper.Map<List<TISP_Content>>(viewModel.contentList);
  312. // foreach (var item in contentList)
  313. // {
  314. // item.C_ID = item.C_ID;
  315. // item.C_CreateBy = _claims.ApiUserId;
  316. // item.D_CreateOn = DateTime.Now;
  317. // item.C_Status = "1";
  318. // }
  319. // await _tispContentRepository.CreateRangeAsync(contentList);
  320. // }
  321. // if (null != viewModel.devOpsContentList)
  322. // {
  323. // IList<TISP_Content> devOpsContentList = _mapper.Map<List<TISP_Content>>(viewModel.devOpsContentList);
  324. // foreach (var item in devOpsContentList)
  325. // {
  326. // item.C_ID = item.C_ID;
  327. // item.C_CreateBy = _claims.ApiUserId;
  328. // item.D_CreateOn = DateTime.Now;
  329. // item.C_Status = "1";
  330. // }
  331. // await _tispContentRepository.CreateRangeAsync(devOpsContentList);
  332. // }
  333. //}
  334. //catch (Exception ex)
  335. //{
  336. // throw new Exception("创建失败");
  337. //}
  338. //finally
  339. //{
  340. // if (result)
  341. // await _unitOfWork.CommitAsync();
  342. // else
  343. // _unitOfWork.Rollback();
  344. //}
  345. }
  346. public async Task DeleteAsync(Guid id)
  347. {
  348. var spot = await _repository.GetByIdAsync(id);
  349. if (spot == null)
  350. {
  351. throw new Exception("没有此数据");
  352. }
  353. spot.C_Status = "0";
  354. spot.C_LastUpdatedBy = _claims.ApiUserId;
  355. spot.D_LastUpdatedOn = DateTime.Now;
  356. _repository.Update(spot);
  357. var result = await _repository.SaveAsync();
  358. if (!result)
  359. {
  360. throw new Exception("删除失败");
  361. }
  362. }
  363. public async Task<IEnumerable<TispSpotViewModel>> GetAllAsync()
  364. {
  365. var pagedList = await _repository.GetAllAsync();
  366. var spotDtoList = _mapper.Map<IEnumerable<TispSpotViewModel>>(pagedList);
  367. return spotDtoList.ToList();
  368. }
  369. public async Task<TispSpotViewModel> GetSpotByQRCodeAsync(string qRCode, string storeCode)
  370. {
  371. TispSpotViewModel spotDto = await _repository.GetSpotByQRCodeAsync(qRCode, storeCode);
  372. if (null == spotDto)
  373. {
  374. return null;
  375. }
  376. //int iResult = await _tispSpotUserRepository.GetBySpotIdAndUserIdAsync(spotDto.C_Code, _claims.ApiUserId);
  377. //if (iResult <= 0 && _claims.RoleIds.Contains("巡检员"))
  378. //{
  379. // throw new Exception("此巡检点没有分配给您!");
  380. //}
  381. var spotContent = _tispSpotContentRepository.GetBySpotCodeAsync(spotDto.C_Code);
  382. List<TispContentViewModel> spotContentDtoList = _mapper.Map<IEnumerable<TispContentViewModel>>(spotContent.Where(x=>x.C_StoreCode == storeCode).ToList()).ToList();
  383. var devOpsContent = _tmtnSpotDevOpsContentRepository.GetBySpotCodeAsync(spotDto.C_Code.ToString());
  384. List<TmtnDevOpsContentViewModel> devOpsContentList = _mapper.Map<IEnumerable<TmtnDevOpsContentViewModel>>(devOpsContent.Where(x => x.C_StoreCode == storeCode).ToList()).ToList();
  385. for (int i= spotContentDtoList.Count-1; i>=0 ;i--)
  386. {
  387. var iCount = await _tispRecordItemRepository.GetContentAlarmCout(spotContentDtoList[i].C_ID, spotDto.C_Code);
  388. if (iCount > 0 )
  389. {
  390. spotContentDtoList.Remove(spotContentDtoList[i]);
  391. }
  392. }
  393. spotDto.ContentList = spotContentDtoList;
  394. spotDto.DevOpsContentList = devOpsContentList;
  395. return spotDto;
  396. //var spot = await _repository.GetSpotContentsByQRCodeAsync(qRCode);
  397. //return spot.FirstOrDefault();
  398. }
  399. public async Task<TispSpotViewModel> GetSpotProductByQRCodeTAsync(string qRCode, string storeCode)
  400. {
  401. TispSpotViewModel spotDto = await _repository.GetSpotByQRCodeAsync(qRCode, storeCode);
  402. IEnumerable<TprdProductViewModel> products;
  403. if (null == spotDto)
  404. {
  405. products = await _tprdProductService.GetConditionAsync(new TprdProductSearchModel { C_QRCode = qRCode,C_StoreCode = storeCode });
  406. }else
  407. {
  408. products = await _tprdProductService.GetConditionAsync(new TprdProductSearchModel { C_SpotCode =spotDto.C_Code.ToString() });
  409. }
  410. spotDto.ProductList = products;
  411. return spotDto;
  412. }
  413. public async Task<TispSpotDevStoreViewModel> GetDevStoreByQRCodeAsync(string qRCode, string storeCode)
  414. {
  415. TispSpotDevStoreViewModel spotDto = await _repository.GetDevStoreByQRCodeAsync(qRCode, storeCode);
  416. return spotDto;
  417. }
  418. public Task<IEnumerable<TispSpotViewModel>> GetByConditionAsync(Expression<Func<TispSpotViewModel, bool>> expression)
  419. {
  420. throw new NotImplementedException();
  421. }
  422. public async Task<IEnumerable<TispSpotViewModel>> GetSpotsConditionAsync(TispSpotSearchModel searchModel)
  423. {
  424. var predicate = PredicateBuilder.New<TISP_Spot>(true);//查询条件,推荐后台使用这种方式灵活筛选
  425. #region 添加条件查询
  426. //predicate = predicate.And(i => i.C_Status.Equals("1"));
  427. predicate.And(i => i.C_StoreCode.Equals(searchModel.C_StoreCode));
  428. if (!string.IsNullOrEmpty(searchModel.C_Name))
  429. {
  430. predicate = predicate.And(i => i.C_Name.Contains(searchModel.C_Name));
  431. }
  432. if (!string.IsNullOrEmpty(searchModel.C_Status))
  433. {
  434. predicate = predicate.And(i => i.C_Status.Equals(searchModel.C_Status));
  435. }
  436. if (!string.IsNullOrEmpty(searchModel.C_Number))
  437. {
  438. predicate = predicate.And(i => i.C_Number.Equals(searchModel.C_Number));
  439. }
  440. if (!string.IsNullOrEmpty(searchModel.C_Position))
  441. {
  442. predicate = predicate.And(i => i.C_Position.Equals(searchModel.C_Position));
  443. }
  444. if (!string.IsNullOrEmpty(searchModel.C_QRCode))
  445. {
  446. predicate = predicate.And(i => i.C_QRCode.Equals(searchModel.C_QRCode));
  447. }
  448. if (!string.IsNullOrEmpty(searchModel.C_AreaCode))
  449. {
  450. predicate = predicate.And(i => i.C_AreaCode.Equals(searchModel.C_AreaCode));
  451. }
  452. #endregion
  453. var list = await _repository.GetPageAsync(predicate, "-D_CreateOn", searchModel.IsPagination, searchModel.PageIndex, searchModel.PageSize);
  454. searchModel.TotalCount = list.Totals;
  455. var dtoList = _mapper.Map<List<TISP_Spot>, List<TispSpotViewModel>>(list.Rows);
  456. return dtoList;
  457. }
  458. public async Task<IEnumerable<TispSpotViewModel>> GetSpotsConditionNoDevSpotRepeatAsync(TispSpotSearchModel searchModel)
  459. {
  460. // _tdevDevSpotRepository---------
  461. var predicate = PredicateBuilder.New<TISP_Spot>(true);//查询条件,推荐后台使用这种方式灵活筛选
  462. var devSpotList = _tdevDevSpotRepository.GetAll();
  463. var SpotCode = devSpotList.Select(t=>t.C_SpotCode);
  464. #region 添加条件查询
  465. //predicate = predicate.And(i => i.C_Status.Equals("1"));
  466. predicate.And(i => i.C_StoreCode.Equals(searchModel.C_StoreCode));
  467. if (!string.IsNullOrEmpty(searchModel.C_Name))
  468. {
  469. predicate = predicate.And(i => i.C_Name.Contains(searchModel.C_Name));
  470. }
  471. if (!string.IsNullOrEmpty(searchModel.C_Status))
  472. {
  473. predicate = predicate.And(i => i.C_Status.Equals(searchModel.C_Status));
  474. }
  475. if (!string.IsNullOrEmpty(searchModel.C_Number))
  476. {
  477. predicate = predicate.And(i => i.C_Number.Equals(searchModel.C_Number));
  478. }
  479. if (!string.IsNullOrEmpty(searchModel.C_Position))
  480. {
  481. predicate = predicate.And(i => i.C_Position.Equals(searchModel.C_Position));
  482. }
  483. if (!string.IsNullOrEmpty(searchModel.C_QRCode))
  484. {
  485. predicate = predicate.And(i => i.C_QRCode.Equals(searchModel.C_QRCode));
  486. }
  487. if (!string.IsNullOrEmpty(searchModel.C_AreaCode))
  488. {
  489. predicate = predicate.And(i => i.C_AreaCode.Equals(searchModel.C_AreaCode));
  490. }
  491. #endregion
  492. predicate=predicate.And(i=> !SpotCode.Contains(i.C_Code.ToString()));
  493. var list = await _repository.GetPageAsync(predicate, "-D_CreateOn", searchModel.IsPagination, searchModel.PageIndex, searchModel.PageSize);
  494. searchModel.TotalCount = list.Totals;
  495. var dtoList = _mapper.Map<List<TISP_Spot>, List<TispSpotViewModel>>(list.Rows);
  496. return dtoList;
  497. }
  498. public async Task<TispSpotViewModel> GetByIdAsync(Guid id)
  499. {
  500. var spot = await _repository.GetByIdAsync(id);
  501. if (null == spot)
  502. {
  503. return null;
  504. }
  505. var spotDto = _mapper.Map<TispSpotViewModel>(spot);
  506. var spotContent = _tispSpotContentRepository.GetBySpotCodeAsync(id);
  507. IEnumerable<TispContentViewModel> spotContentDtoList = _mapper.Map<IEnumerable<TispContentViewModel>>(spotContent.Where(x=>x.C_StoreCode ==spot.C_StoreCode).ToList());
  508. spotDto.ContentList = spotContentDtoList;
  509. var spotDevOpsContent = _tmtnSpotDevOpsContentRepository.GetBySpotCodeAsync(id.ToString());
  510. IEnumerable<TmtnDevOpsContentViewModel> spotDevOpsContentList = _mapper.Map<IEnumerable<TmtnDevOpsContentViewModel>>(spotDevOpsContent.Where(x => x.C_StoreCode == spot.C_StoreCode).ToList());
  511. spotDto.DevOpsContentList = spotDevOpsContentList;
  512. return spotDto;
  513. }
  514. public Task<bool> IsExistAsync(Guid id)
  515. {
  516. throw new NotImplementedException();
  517. }
  518. public async Task UpdateAsync(Guid id, TispSpotUpdateViewModel updateModel)
  519. {
  520. var spot = await _repository.GetByIdAsync(id);
  521. if (spot == null)
  522. {
  523. throw new Exception("没有此点");
  524. }
  525. spot.C_LastUpdatedBy = _claims.ApiUserId;
  526. spot.D_LastUpdatedOn = DateTime.Now;
  527. _mapper.Map(updateModel, spot, typeof(TispSpotUpdateViewModel), typeof(TISP_Spot));
  528. _repository.Update(spot);
  529. var result = await _repository.SaveAsync();
  530. if (!result)
  531. {
  532. throw new Exception("更新失败");
  533. }
  534. if (null != updateModel.contentIdList)
  535. {
  536. //删除
  537. await _tispSpotContentRepository.DeleteBySpotIdAsync(id);
  538. foreach (Guid contentId in updateModel.contentIdList)
  539. {
  540. TISP_SpotContent spotContent = new TISP_SpotContent();
  541. spotContent.C_SpotCode = id;
  542. spotContent.C_ContentCode = contentId;
  543. spotContent.C_CreateBy = _claims.ApiUserId;
  544. spotContent.D_CreateOn = DateTime.Now;
  545. //spotContent.C_LastUpdatedBy = _claims.ApiUserId;
  546. //spotContent.D_LastUpdatedOn = DateTime.Now;
  547. //spotContent.C_Status = '1';
  548. _tispSpotContentRepository.Create(spotContent);
  549. var resultSpotContent = await _repository.SaveAsync();
  550. if (!resultSpotContent)
  551. {
  552. throw new Exception("创建失败");
  553. }
  554. }
  555. }
  556. if (null != updateModel.devOpsContentIdList)
  557. {
  558. await _tmtnSpotDevOpsContentRepository.DeleteBySpotIdAsync(id.ToString());
  559. foreach (string contentId in updateModel.devOpsContentIdList)
  560. {
  561. TMTN_SpotDevOpsContent spotContent = new TMTN_SpotDevOpsContent();
  562. spotContent.C_SpotCode = id.ToString();
  563. spotContent.C_ID = Guid.NewGuid().ToString();
  564. spotContent.C_DevOpsContentCode = contentId;
  565. spotContent.C_CreateBy = _claims.ApiUserId;
  566. spotContent.D_CreateOn = DateTime.Now;
  567. spotContent.C_Status = "1";
  568. _tmtnSpotDevOpsContentRepository.Create(spotContent);
  569. var resultSpotContent = await _tmtnSpotDevOpsContentRepository.SaveAsync();
  570. if (!resultSpotContent)
  571. {
  572. throw new Exception("创建失败");
  573. }
  574. }
  575. }
  576. }
  577. public async Task UpdateConfigureSpotAsync(Guid id, TispSpotConfigureUpdateViewModel updateModel)
  578. {
  579. var spot = await _repository.GetByIdAsync(id);
  580. if (spot == null)
  581. {
  582. throw new Exception("没有此巡检点");
  583. }
  584. //if(!string.IsNullOrEmpty(spot.C_QRCode) && !spot.C_QRCode.Equals(updateModel.C_QRCode))
  585. //{
  586. // var spotTwo = await GetSpotsConditionAsync(new TispSpotSearchModel { C_QRCode = updateModel.C_QRCode, C_StoreCode = spot.C_StoreCode });
  587. // if (spotTwo != null)
  588. // {
  589. // throw new Exception("此二维码已经分配给了巡检点");
  590. // }
  591. //}
  592. if (!string.IsNullOrEmpty(spot.C_QRCode) && spot.C_QRCode.Equals(updateModel.C_QRCode))
  593. {
  594. }
  595. else
  596. {
  597. //if(!string.IsNullOrEmpty(spot.C_QRCode) && !spot.C_QRCode.Equals(updateModel.C_QRCode))
  598. //{
  599. var spotTwo = await GetSpotsConditionAsync(new TispSpotSearchModel { C_QRCode = updateModel.C_QRCode, C_StoreCode = spot.C_StoreCode });
  600. if (spotTwo.Any())
  601. {
  602. throw new Exception("此二维码已经分配给了巡检点");
  603. }
  604. //}
  605. }
  606. spot.C_LastUpdatedBy = _claims.ApiUserId;
  607. spot.D_LastUpdatedOn = DateTime.Now;
  608. if(!string.IsNullOrEmpty(updateModel.C_ImageUrl))
  609. spot.C_ImageUrl = updateModel.C_ImageUrl;
  610. if (updateModel.IsUpdateGPS)
  611. {
  612. spot.C_GPS = updateModel.C_GPS;
  613. }
  614. spot.C_QRCode = updateModel.C_QRCode;
  615. spot.I_Offset = updateModel.I_Offset;
  616. _repository.Update(spot);
  617. var result = await _repository.SaveAsync();
  618. if (!result)
  619. {
  620. throw new Exception("更新失败");
  621. }
  622. }
  623. public async Task UpdateSpotImageAsync(Guid id, string imageUrl)
  624. {
  625. var spot = await _repository.GetByIdAsync(id);
  626. if (spot == null)
  627. {
  628. throw new Exception("没有此巡检点");
  629. }
  630. spot.C_LastUpdatedBy = _claims.ApiUserId;
  631. spot.D_LastUpdatedOn = DateTime.Now;
  632. if (!string.IsNullOrEmpty(imageUrl))
  633. spot.C_ImageUrl = imageUrl;
  634. _repository.Update(spot);
  635. var result = await _repository.SaveAsync();
  636. if (!result)
  637. {
  638. throw new Exception("更新失败");
  639. }
  640. }
  641. public Task<int> UpdateOneAsync(TispSpotViewModel viewModel, params string[] fields)
  642. {
  643. throw new NotImplementedException();
  644. }
  645. //public async Task<int> UpdateOneAsync(TispSpotViewModel viewModel, params string[] fields)
  646. //{
  647. // var user = await _repository.GetByIdAsync(id);
  648. // if (user == null)
  649. // {
  650. // throw new Exception("没有此用户");
  651. // }
  652. // user.C_LastUpdatedBy = new Guid("62D5B5F5-3008-49B7-B0D6-CC337F1A3330");
  653. // user.D_LastUpdatedOn = DateTime.Now;
  654. // _mapper.Map(updateUser, user, typeof(TsysUserUpdateViewModel), typeof(TSYS_User));
  655. // _repository.Update(user);
  656. // var result = await _repository.SaveAsync();
  657. // if (!result)
  658. // {
  659. // throw new Exception("更新用户失败");
  660. // }
  661. //}
  662. public Task UpdateUserAsync(Guid id, TispSpotUpdateViewModel updateUser)
  663. {
  664. throw new NotImplementedException();
  665. }
  666. }
  667. }