WorkRequestService.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IdentityModel.Tokens.Jwt;
  4. using System.Linq;
  5. using System.Security.Claims;
  6. using System.Text;
  7. using FMSAdmin.Data;
  8. using FMSAdmin.Helpers;
  9. using FMSAdmin.Entities;
  10. using Microsoft.EntityFrameworkCore;
  11. using Microsoft.Extensions.Logging;
  12. using Microsoft.Extensions.Options;
  13. using Microsoft.IdentityModel.Tokens;
  14. using FMSAdmin.Models;
  15. using System.Transactions;
  16. using FMSApp.Repositories;
  17. namespace FMSApp.Services {
  18. public class WorkRequestService {
  19. private readonly ILogger<WorkRequestService> _logger;
  20. private readonly FMSContext _context;
  21. private readonly AppSettings _appSettings;
  22. private readonly StorageHelper _storage;
  23. private readonly WorkRequestRepository _workRequestRepository;
  24. private readonly WorkConfigRepository _workConfigRepository;
  25. public WorkRequestService(
  26. ILogger<WorkRequestService> logger,
  27. FMSContext context,
  28. IOptions<AppSettings> appSettings,
  29. StorageHelper storage,
  30. WorkRequestRepository workRequestRepository,
  31. WorkConfigRepository workConfigRepository
  32. ) {
  33. _logger = logger;
  34. _context = context;
  35. _appSettings = appSettings.Value;
  36. _storage = storage;
  37. _workRequestRepository = workRequestRepository;
  38. _workConfigRepository = workConfigRepository;
  39. }
  40. /// <summary>
  41. /// 저장(작업이력추가 이전까지 수정가능)
  42. /// 신규프로세스 / Schedule미사용
  43. /// Schedule 미사용시 계획에 대한 모든 작업이 한번에 일괄등록된다.
  44. /// 일괄등록된 데이터가 작업지시돼고, 작업진행이 됐을때... 작업진행 화면에서 수정이 가능해 져야한다.
  45. /// 그래서, 작업계획, 작업대기, 작업진행 상태의 데이터 모두 수정가능해야 한다.
  46. /// </summary>
  47. /// <param name="data"></param>
  48. /// <returns></returns>
  49. public void SaveBeforeAddHistory(FmsWorkRequest data) {
  50. using (var trans = new TransactionScope()) {
  51. var persist = _context.FmsWorkRequest.FirstOrDefault(
  52. x => x.SiteId == data.SiteId
  53. && x.WorkRequestId == data.WorkRequestId
  54. );
  55. if (persist == null) {
  56. if (data.WorkTypeId == 0) {
  57. throw new ServiceException("업무구분이 입력되지 않았습니다.");
  58. }
  59. var detailType = _context.FmsWorkCodeDetailType.FirstOrDefault(x => x.WorkDetailTypeId == data.WorkDetailTypeId);
  60. if (data.WorkTypeId == 5 || data.WorkTypeId == 6) {
  61. if (detailType == null) {
  62. throw new ServiceException("작업구분이 입력되지 않았습니다.");
  63. }
  64. }
  65. // 설비 기본정보 생성되지 않도록 처리
  66. foreach (var facility in data.FmsWorkRequestToFacility) {
  67. facility.CmFacility = null;
  68. }
  69. // 사고가 아닐때 사고목록 초기화
  70. if (Util.V(detailType, x => x.Code) != "ACCIDENT") {
  71. data.FmsWorkRequestToAccident = new List<FmsWorkRequestToAccident>();
  72. }
  73. // 사고 기본정보 생성되지 않도록 처리
  74. foreach (var accident in data.FmsWorkRequestToAccident) {
  75. accident.FmsAccident = null;
  76. }
  77. // 민원이 아닐때 민원목록 초기화
  78. if (Util.V(detailType, x => x.Code) != "COMPLAINT") {
  79. data.FmsWorkRequestToComplaint = new List<FmsWorkRequestToComplaint>();
  80. }
  81. // 민원 기본정보 생성되지 않도록 처리
  82. foreach (var complaint in data.FmsWorkRequestToComplaint) {
  83. complaint.FmsComplaints = null;
  84. }
  85. if (data.CmFile != null && data.CmFile.IsUpload) {
  86. data.CmFile.SiteId = data.SiteId;
  87. var category = _context.CmFileCategory.First(x => x.Name == "workrequest");
  88. data.CmFile.FileCategory = category;
  89. data.CmFile.CreatedDate = DateTime.Now;
  90. } else {
  91. data.CmFile = null;
  92. }
  93. data.WorkProgressId = 1;
  94. data.WorkScheduleId = null;
  95. data.FmsWorkSchedule = null;
  96. data.RequestDate = DateTime.Now;
  97. _context.FmsWorkRequest.Add(data);
  98. _context.SaveChanges();
  99. if (data.CmFile != null && data.CmFile.IsUpload) {
  100. _storage.CopyEntity(data.CmFile.Path, data.CmFile);
  101. }
  102. } else {
  103. if (_workConfigRepository.IsAutoResult(true)) {
  104. // 자동지시, 자동실행 일 경우
  105. // 작업이력이 등록된 데이터를 진행중으로 본다.
  106. if (persist.FmsWorkResult != null
  107. && persist.FmsWorkResult.FmsWorkResultCheckItem != null
  108. && persist.FmsWorkResult.FmsWorkResultCheckItem.Count > 0) {
  109. throw new ServiceException("진행중인 작업은 계획 변경이 불가능합니다.");
  110. }
  111. } else if (_workConfigRepository.IsAutoOrder(true)) {
  112. // 자동지시일 경우
  113. // 작업계획, 작업대기의 데이터만 변경가능하다.
  114. if (persist.WorkProgressId != 1 && persist.WorkProgressId != 3) {
  115. throw new ServiceException("진행중인 작업은 계획 변경이 불가능합니다.");
  116. }
  117. } else {
  118. // 그외
  119. // 작업계획일때만 변경가능하다.
  120. if (persist.WorkProgressId != 1) {
  121. throw new ServiceException("진행중인 작업은 계획 변경이 불가능합니다.");
  122. }
  123. }
  124. // 작업계획의 일자 변경
  125. if (persist.FmsWorkSchedule != null && Util.V(persist, x => x.FmsWorkSchedule.WorkDueDate.Date) != Util.V(data, x => x.StartWorkDate.Date)) {
  126. persist.FmsWorkSchedule.WorkDueDate = data.StartWorkDate.Date;
  127. }
  128. // 파일 Entity 처리
  129. if (data.CmFile != null && data.CmFile.IsDelete) {
  130. persist.CmFile = null;
  131. persist.FileId = null;
  132. } else if (data.CmFile != null && data.CmFile.IsUpload) {
  133. var category = _context.CmFileCategory.First(x => x.Name == "workrequest");
  134. persist.CmFile = new CmFile {
  135. SiteId = data.SiteId,
  136. FileCategory = category,
  137. CreatedDate = DateTime.Now,
  138. Name = data.CmFile.Name,
  139. FileSize = data.CmFile.FileSize,
  140. ContentType = data.CmFile.ContentType,
  141. };
  142. }
  143. // 입력 데이터 반영
  144. persist.BusinessFieldId = data.BusinessFieldId;
  145. persist.StartWorkDate = data.StartWorkDate;
  146. persist.Title = data.Title;
  147. persist.Content = data.Content;
  148. persist.WorkDetailTypeId = data.WorkDetailTypeId;
  149. persist.WorkPartnerId = data.WorkPartnerId;
  150. persist.WorkPrice = data.WorkPrice;
  151. //persist.WorkItem = data.WorkItem;
  152. persist.WorkEndDate = data.WorkEndDate;
  153. // 설비 전체 제거
  154. persist.FmsWorkRequestToFacility.Clear();
  155. // 추가된 설비 생성
  156. foreach (var facility in data.FmsWorkRequestToFacility) {
  157. persist.FmsWorkRequestToFacility.Add(new FmsWorkRequestToFacility() {
  158. SiteId = persist.SiteId,
  159. WorkRequestId = persist.WorkRequestId,
  160. FacilityCode = facility.FacilityCode,
  161. });
  162. }
  163. // 사고 전체 제거
  164. persist.FmsWorkRequestToAccident.Clear();
  165. // 추가된 사고 생성
  166. foreach (var accident in data.FmsWorkRequestToAccident) {
  167. persist.FmsWorkRequestToAccident.Add(new FmsWorkRequestToAccident() {
  168. SiteId = persist.SiteId,
  169. WorkRequestId = persist.WorkRequestId,
  170. AccidentId = accident.AccidentId,
  171. });
  172. }
  173. // 민원 전체 제거
  174. persist.FmsWorkRequestToComplaint.Clear();
  175. // 추가된 민원 생성
  176. foreach (var complaint in data.FmsWorkRequestToComplaint) {
  177. persist.FmsWorkRequestToComplaint.Add(new FmsWorkRequestToComplaint() {
  178. SiteId = persist.SiteId,
  179. WorkRequestId = persist.WorkRequestId,
  180. ComplaintId = complaint.ComplaintId,
  181. });
  182. }
  183. _context.FmsWorkRequest.Update(persist);
  184. _context.SaveChanges();
  185. // FmsWorkOrder 업데이트
  186. var order = persist.FmsWorkOrder;
  187. if (order != null) {
  188. order.BusinessFieldId = data.BusinessFieldId;
  189. order.StartWorkDate = data.StartWorkDate;
  190. order.Title = data.Title;
  191. order.Content = data.Content;
  192. order.FmsWorkOrderToFacility.Clear();
  193. foreach (var facility in data.FmsWorkRequestToFacility) {
  194. order.FmsWorkOrderToFacility.Add(new FmsWorkOrderToFacility() {
  195. SiteId = persist.SiteId,
  196. WorkRequestId = persist.WorkRequestId,
  197. FacilityCode = facility.FacilityCode,
  198. });
  199. }
  200. _context.FmsWorkOrder.Update(order);
  201. _context.SaveChanges();
  202. }
  203. // FmsWorkResult 업데이트
  204. var result = persist.FmsWorkResult;
  205. if (result != null) {
  206. result.StartDate = data.StartWorkDate.Date;
  207. result.EndDate = data.StartWorkDate.Date;
  208. result.FmsWorkResultToFacility.Clear();
  209. foreach (var facility in data.FmsWorkRequestToFacility) {
  210. result.FmsWorkResultToFacility.Add(new FmsWorkResultToFacility() {
  211. SiteId = persist.SiteId,
  212. WorkRequestId = persist.WorkRequestId,
  213. FacilityCode = facility.FacilityCode,
  214. });
  215. }
  216. _context.FmsWorkResult.Update(result);
  217. _context.SaveChanges();
  218. }
  219. // 파일복사
  220. if (data.CmFile != null && data.CmFile.IsUpload) {
  221. _storage.CopyEntity(data.CmFile.Path, persist.CmFile);
  222. if (persist.CmFile != null) {
  223. // 파일 삭제시 진짜 DB삭제?
  224. }
  225. }
  226. }
  227. // 자동지시 설정되어있을 경우 작업예정일이 오늘 포함 이전일자의 계획을 자동지시처리
  228. if (_workConfigRepository.IsAutoOrder()) {
  229. persist = _context.FmsWorkRequest.FirstOrDefault(
  230. x => x.SiteId == data.SiteId
  231. && x.WorkRequestId == data.WorkRequestId
  232. );
  233. if (persist.StartWorkDate.Date <= DateTime.Now.Date && persist.WorkProgressId == 1) {
  234. _workRequestRepository.WorkToOrder(persist.SiteId, persist.WorkRequestId, persist.RequestUserId, "", false);
  235. }
  236. }
  237. trans.Complete();
  238. }
  239. }
  240. /// <summary>
  241. /// 민원 저장
  242. /// </summary>
  243. /// <param name="data"></param>
  244. /// <returns></returns>
  245. public void SaveComplaints(FmsWorkRequest data) {
  246. using (var trans = new TransactionScope()) {
  247. var persist = _context.FmsWorkRequest.FirstOrDefault(
  248. x => x.SiteId == data.SiteId
  249. && x.WorkRequestId == data.WorkRequestId
  250. );
  251. if (persist == null) throw new ServiceException("존재하지 않는 데이터입니다.");
  252. // 사고 전체 제거
  253. persist.FmsWorkRequestToComplaint.Clear();
  254. // 추가된 사고 생성
  255. foreach (var complaint in data.FmsWorkRequestToComplaint) {
  256. persist.FmsWorkRequestToComplaint.Add(new FmsWorkRequestToComplaint() {
  257. SiteId = persist.SiteId,
  258. WorkRequestId = persist.WorkRequestId,
  259. ComplaintId = complaint.ComplaintId,
  260. });
  261. }
  262. _context.FmsWorkRequest.Update(persist);
  263. _context.SaveChanges();
  264. trans.Complete();
  265. }
  266. }
  267. /// <summary>
  268. /// 사고 저장
  269. /// </summary>
  270. /// <param name="data"></param>
  271. /// <returns></returns>
  272. public void SaveAccidents(FmsWorkRequest data) {
  273. using (var trans = new TransactionScope()) {
  274. var persist = _context.FmsWorkRequest.FirstOrDefault(
  275. x => x.SiteId == data.SiteId
  276. && x.WorkRequestId == data.WorkRequestId
  277. );
  278. if (persist == null) throw new ServiceException("존재하지 않는 데이터입니다.");
  279. // 사고 전체 제거
  280. persist.FmsWorkRequestToAccident.Clear();
  281. // 추가된 사고 생성
  282. foreach (var accident in data.FmsWorkRequestToAccident) {
  283. persist.FmsWorkRequestToAccident.Add(new FmsWorkRequestToAccident() {
  284. SiteId = persist.SiteId,
  285. WorkRequestId = persist.WorkRequestId,
  286. AccidentId = accident.AccidentId,
  287. });
  288. }
  289. _context.FmsWorkRequest.Update(persist);
  290. _context.SaveChanges();
  291. trans.Complete();
  292. }
  293. }
  294. /// <summary>
  295. /// 저장
  296. /// 기존프로세스 / Schedule사용
  297. /// Schedule 사용시 Schedule 테이블의 데이터가 수정돼고 Schedule 당 하나의 Request 만 살아있으므로,
  298. /// 진행중인 Request 에 대해 수정이 가해질 필요가 없으므로
  299. /// 기초계획등록 화면에서만 사용하며, 작업계획 상태의 데이터만 변경 가능하다.
  300. /// </summary>
  301. /// <param name="data"></param>
  302. /// <returns></returns>
  303. public void Save(FmsWorkRequest data) {
  304. using (var trans = new TransactionScope()) {
  305. var persist = _context.FmsWorkRequest.FirstOrDefault(
  306. x => x.SiteId == data.SiteId
  307. && x.WorkRequestId == data.WorkRequestId
  308. );
  309. if (persist == null) {
  310. if (data.WorkTypeId == 0) {
  311. throw new ServiceException("업무구분이 입력되지 않았습니다.");
  312. }
  313. var detailType = _context.FmsWorkCodeDetailType.FirstOrDefault(x => x.WorkDetailTypeId == data.WorkDetailTypeId);
  314. if (data.WorkTypeId == 5 || data.WorkTypeId == 6) {
  315. if (detailType == null) {
  316. throw new ServiceException("작업구분이 입력되지 않았습니다.");
  317. }
  318. }
  319. // 설비 기본정보 생성되지 않도록 처리
  320. foreach (var facility in data.FmsWorkRequestToFacility) {
  321. facility.CmFacility = null;
  322. }
  323. // 사고가 아닐때 사고목록 초기화
  324. if (Util.V(detailType, x => x.Code) != "ACCIDENT") {
  325. data.FmsWorkRequestToAccident = new List<FmsWorkRequestToAccident>();
  326. }
  327. // 사고 기본정보 생성되지 않도록 처리
  328. foreach (var accident in data.FmsWorkRequestToAccident) {
  329. accident.FmsAccident = null;
  330. }
  331. // 민원이 아닐때 민원목록 초기화
  332. if (Util.V(detailType, x => x.Code) != "COMPLAINT") {
  333. data.FmsWorkRequestToComplaint = new List<FmsWorkRequestToComplaint>();
  334. }
  335. // 민원 기본정보 생성되지 않도록 처리
  336. foreach (var complaint in data.FmsWorkRequestToComplaint) {
  337. complaint.FmsComplaints = null;
  338. }
  339. data.WorkProgressId = 1;
  340. data.WorkScheduleId = null;
  341. data.FmsWorkSchedule = null;
  342. data.RequestDate = DateTime.Now;
  343. _context.FmsWorkRequest.Add(data);
  344. _context.SaveChanges();
  345. } else {
  346. if (persist.WorkProgressId != 1) {
  347. throw new ServiceException("진행중인 작업은 계획 변경이 불가능합니다.");
  348. }
  349. // 작업계획의 일자 변경
  350. if (persist.FmsWorkSchedule != null && Util.V(persist, x => x.FmsWorkSchedule.WorkDueDate.Date) != Util.V(data, x => x.StartWorkDate.Date)) {
  351. persist.FmsWorkSchedule.WorkDueDate = data.StartWorkDate.Date;
  352. }
  353. // 입력 데이터 반영
  354. persist.BusinessFieldId = data.BusinessFieldId;
  355. persist.StartWorkDate = data.StartWorkDate;
  356. persist.Title = data.Title;
  357. persist.Content = data.Content;
  358. persist.WorkDetailTypeId = data.WorkDetailTypeId;
  359. persist.WorkPartnerName = data.WorkPartnerName;
  360. persist.WorkPrice = data.WorkPrice;
  361. //persist.WorkItem = data.WorkItem;
  362. // 설비 전체 제거
  363. persist.FmsWorkRequestToFacility.Clear();
  364. // 추가된 설비 생성
  365. foreach (var facility in data.FmsWorkRequestToFacility) {
  366. persist.FmsWorkRequestToFacility.Add(new FmsWorkRequestToFacility() {
  367. SiteId = persist.SiteId,
  368. WorkRequestId = persist.WorkRequestId,
  369. FacilityCode = facility.FacilityCode,
  370. });
  371. }
  372. // 사고 전체 제거
  373. persist.FmsWorkRequestToAccident.Clear();
  374. // 추가된 사고 생성
  375. foreach (var accident in data.FmsWorkRequestToAccident) {
  376. persist.FmsWorkRequestToAccident.Add(new FmsWorkRequestToAccident() {
  377. SiteId = persist.SiteId,
  378. WorkRequestId = persist.WorkRequestId,
  379. AccidentId = accident.AccidentId,
  380. });
  381. }
  382. // 민원 전체 제거
  383. persist.FmsWorkRequestToComplaint.Clear();
  384. // 추가된 민원 생성
  385. foreach (var complaint in data.FmsWorkRequestToComplaint) {
  386. persist.FmsWorkRequestToComplaint.Add(new FmsWorkRequestToComplaint() {
  387. SiteId = persist.SiteId,
  388. WorkRequestId = persist.WorkRequestId,
  389. ComplaintId = complaint.ComplaintId,
  390. });
  391. }
  392. _context.FmsWorkRequest.Update(persist);
  393. _context.SaveChanges();
  394. }
  395. // 자동지시 설정되어있을 경우 작업예정일이 오늘 포함 이전일자의 계획을 자동지시처리
  396. if (_workConfigRepository.IsAutoOrder()) {
  397. persist = _context.FmsWorkRequest.FirstOrDefault(
  398. x => x.SiteId == data.SiteId
  399. && x.WorkRequestId == data.WorkRequestId
  400. );
  401. if (persist.StartWorkDate.Date <= DateTime.Now.Date) {
  402. _workRequestRepository.WorkToOrder(persist.SiteId, persist.WorkRequestId, persist.RequestUserId, "", false);
  403. }
  404. }
  405. trans.Complete();
  406. }
  407. }
  408. public void Delete(int siteId, int workRequestId) {
  409. using (var trans = new TransactionScope()) {
  410. var workRequestToFacilities = _context.FmsWorkRequestToFacility.Where(
  411. x => x.SiteId == siteId
  412. && x.WorkRequestId == workRequestId
  413. ).ToList();
  414. foreach (var item in workRequestToFacilities) {
  415. _context.FmsWorkRequestToFacility.Remove(item);
  416. }
  417. _context.SaveChanges();
  418. var workRequestToAccidents = _context.FmsWorkRequestToAccident.Where(
  419. x => x.SiteId == siteId
  420. && x.WorkRequestId == workRequestId
  421. ).ToList();
  422. foreach (var item in workRequestToAccidents) {
  423. _context.FmsWorkRequestToAccident.Remove(item);
  424. }
  425. _context.SaveChanges();
  426. //민원 삭제 추가
  427. var workRequestToComplaints = _context.FmsWorkRequestToComplaint.Where(
  428. x => x.SiteId == siteId
  429. && x.WorkRequestId == workRequestId
  430. ).ToList();
  431. foreach (var item in workRequestToComplaints) {
  432. _context.FmsWorkRequestToComplaint.Remove(item);
  433. }
  434. _context.SaveChanges();
  435. var workRequest = _context.FmsWorkRequest.Where(
  436. x => x.SiteId == siteId
  437. && x.WorkRequestId == workRequestId
  438. ).ToList();
  439. foreach (var item in workRequest) {
  440. if (item.WorkScheduleId != null) {
  441. throw new ServiceException("정기점검, 법정검사는 삭제가 불가능합니다.");
  442. }
  443. if (item.WorkProgressId != 1) {
  444. throw new ServiceException("작업계획 단계의 데이터만 삭제 가능합니다.");
  445. }
  446. _context.FmsWorkRequest.Remove(item);
  447. }
  448. _context.SaveChanges();
  449. trans.Complete();
  450. }
  451. }
  452. // 반려 (실행계획 화면에서 빠지고 작업진행관리 화면에서 반려하도록 변경됨)
  453. public void Reject(FmsWorkRequest data, bool useSchedule, DateTime? confirmDate) {
  454. using (var trans = new TransactionScope()) {
  455. var persist = _context.FmsWorkRequest.FirstOrDefault(
  456. x => x.SiteId == data.SiteId
  457. && x.WorkRequestId == data.WorkRequestId
  458. );
  459. if (persist == null) throw new ServiceException("존재하지 않는 데이터 입니다.");
  460. persist.WorkProgressId = 2; // 반려
  461. persist.RejectUserId = data.RejectUserId;
  462. persist.RejectReason = data.RejectReason;
  463. persist.RejectDate = DateTime.Now;
  464. _context.FmsWorkRequest.Update(persist);
  465. _context.SaveChanges();
  466. // 작업계획 처리
  467. if (persist.WorkScheduleId != null && persist.WorkScheduleId != 0) {
  468. var schedule = _context.FmsWorkSchedule.FirstOrDefault(
  469. x => x.SiteId == data.SiteId
  470. && x.WorkScheduleId == persist.WorkScheduleId
  471. );
  472. if (useSchedule) {
  473. if (confirmDate == null) throw new Exception("반복작업 반려시 확정일자는 필수입력사항입니다.");
  474. // 차기작업 확정일자 저장
  475. schedule.IsUse = useSchedule;
  476. schedule.WorkDueDate = confirmDate.Value;
  477. _context.FmsWorkSchedule.Update(schedule);
  478. _context.SaveChanges();
  479. // 실행계획(Request) 생성
  480. if (!_workRequestRepository.IsCreatedRequest(schedule)) {
  481. _workRequestRepository.CreateFromWorkSchedule(schedule);
  482. }
  483. } else {
  484. schedule.IsUse = useSchedule;
  485. _context.FmsWorkSchedule.Update(schedule);
  486. _context.SaveChanges();
  487. }
  488. }
  489. trans.Complete();
  490. }
  491. }
  492. // 작업대기로 넘김
  493. public void Order(FmsWorkOrder data) {
  494. _workRequestRepository.WorkToOrder(data.SiteId, data.WorkRequestId, data.OrderUserId, data.Content, true);
  495. }
  496. public IQueryable<FmsWorkRequest> GetAll() {
  497. var query = _context.FmsWorkRequest;
  498. return query;
  499. }
  500. }
  501. }