123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- using iBemsDataService.Model;
- using Quartz;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Transactions;
- using System.Web;
- namespace iBemsDataService.Controllers.Fms.WorkManagement.ScheduledTask
- {
- public class WorkExecutionPlanJob : IJob
- {
- private iBemsEntities db = new iBemsEntities();
- public void Execute(IJobExecutionContext context)
- {
- var today = DateTime.Now.Date;
- var time = today.AddDays(-31);
-
- using (var transaction = new TransactionScope())
- {
-
-
- var query =
- from s in db.FmsWorkSchedule
- where s.IsUse == true
-
- && (s.WorkDueDate >= time)
- && db.FmsWorkRequest
- .Where(x => x.SiteId == s.SiteId
- && x.WorkScheduleId == s.WorkScheduleId
-
- && x.StartWorkDate == s.WorkDueDate
- )
- .Any() == false
- select s;
- foreach (var s in query)
- {
- var workRequest = new FmsWorkRequest
- {
- SiteId = s.SiteId,
- WorkScheduleId = s.WorkScheduleId,
- WorkTypeId = s.WorkTypeId,
- BusinessFieldId = s.BusinessFieldId,
- WorkProgressId = (short)WorkProgress.WORK_PLAN,
-
- Title = s.Name,
- Content = s.Content,
- RequestDate = today,
- StartWorkDate = s.WorkDueDate,
- RequestUserId = s.UpdateUserId,
- InspectionAgencyId = s.InspectionAgencyId
- };
- workRequest = db.FmsWorkRequest.Add(workRequest);
- db.SaveChanges();
-
- var facilitiesQuery = from f in db.FmsWorkScheduleToFacility
- where f.SiteId == s.SiteId &&
- f.WorkScheduleId == s.WorkScheduleId
- select f;
- var facilities = facilitiesQuery.ToList();
- foreach (var f in facilities)
- {
- db.FmsWorkRequestToFacility.Add(new FmsWorkRequestToFacility
- {
- SiteId = f.SiteId,
- WorkRequestId = workRequest.WorkRequestId,
- FacilityCode = f.FacilityCode
- });
- }
- db.SaveChanges();
-
-
-
-
-
-
- }
-
- var query_auto =
- from s in db.FmsWorkSchedule
- join w in db.FmsWorkRequest on s.WorkScheduleId equals w.WorkScheduleId
- where s.IsUse == true
- && s.IsAutoOrder == true
- && (w.StartWorkDate <= today)
- && db.FmsWorkOrder
- .Where(x => x.SiteId == w.SiteId
- && x.WorkRequestId == w.WorkRequestId
- && x.Title == w.Title
- )
- .Any() == false
- select w;
- foreach (var w in query_auto)
- {
-
- var update_WorkProgressId = (from d in db.FmsWorkRequest
- where d.WorkRequestId == w.WorkRequestId
- select d).Single();
- update_WorkProgressId.WorkProgressId = (short)WorkProgress.WORK_STANDBY;
- db.SaveChanges();
- var workRequest = new FmsWorkRequest
- {
- SiteId = w.SiteId,
- WorkRequestId = w.WorkRequestId,
- BusinessFieldId = w.BusinessFieldId,
- Title = w.Title,
- RequestUserId = w.RequestUserId,
- StartWorkDate = w.StartWorkDate
- };
-
- var facilitiesQuery = from f in db.FmsWorkScheduleToFacility
- where f.SiteId == w.SiteId &&
- f.WorkScheduleId == w.WorkScheduleId
- select f;
- var facilities = facilitiesQuery.ToList();
- InsertWorkOrder(workRequest, facilities);
- }
- transaction.Complete();
- }
- }
- private void InsertWorkOrder(FmsWorkRequest workRequest, List<FmsWorkScheduleToFacility> facilities)
- {
- var workOrder = new FmsWorkOrder
- {
- SiteId = workRequest.SiteId,
- WorkRequestId = workRequest.WorkRequestId,
- BusinessFieldId = workRequest.BusinessFieldId,
- OrderUserId = workRequest.RequestUserId,
- OrderDate = DateTime.Now.Date,
- Title = workRequest.Title,
- Content = workRequest.Content,
- StartWorkDate = workRequest.StartWorkDate
- };
- workOrder = db.FmsWorkOrder.Add(workOrder);
- foreach (var f in facilities)
- {
- db.FmsWorkOrderToFacility.Add(new FmsWorkOrderToFacility
- {
- SiteId = f.SiteId,
- WorkRequestId = workOrder.WorkRequestId,
- FacilityCode = f.FacilityCode
- });
- }
-
- db.SaveChanges();
- }
- }
- }
|