public BaseResponse <TaskRecordModel> ChangeTask(TaskRecordFilter filter) { var result = new BaseResponse <TaskRecordModel>(); try { bool isAudit = false; unitOfWork.BeginTransaction(); var TaskModel = base.Get <DC_Task, TaskModel>((q) => q.TaskID == filter.TaskID); if (TaskModel != null) { //pc端管理员改签,直接审核通过 //app端如果改签时间超过了一天,则需要审核 TimeSpan?ts = filter.AppointmentTime - TaskModel.Data.AppointmentTime; if (filter.IsAudit || (ts.HasValue && System.Math.Abs(ts.Value.TotalSeconds) <= 24 * 60 * 60)) { isAudit = true; TaskModel.Data.AppointmentTime = filter.AppointmentTime; TaskModel.Data.IsChange = true; base.Save <DC_Task, TaskModel>(TaskModel.Data, (q) => q.TaskID == filter.TaskID); var taskDispatchRecord = unitOfWork.GetRepository <DC_DispathTaskRecord>().dbSet.Where(a => a.OrderID == TaskModel.Data.ServiceOrderID).FirstOrDefault(); if (taskDispatchRecord == null) { taskDispatchRecord = new DC_DispathTaskRecord(); taskDispatchRecord.EmployeeID = TaskModel.Data.EmployeeId; taskDispatchRecord.WorkTime = TaskModel.Data.AppointmentTime; taskDispatchRecord.ClientName = TaskModel.Data.PersonName; taskDispatchRecord.OrderID = TaskModel.Data.ServiceOrderID; unitOfWork.GetRepository <DC_DispathTaskRecord>().Insert(taskDispatchRecord); } else { taskDispatchRecord.EmployeeID = TaskModel.Data.EmployeeId; taskDispatchRecord.WorkTime = TaskModel.Data.AppointmentTime; taskDispatchRecord.ClientName = TaskModel.Data.PersonName; unitOfWork.GetRepository <DC_DispathTaskRecord>().Update(taskDispatchRecord); } } TaskRecordModel TaskRecordModel = new TaskRecordModel(); TaskRecordModel.ServiceTime = filter.AppointmentTime; TaskRecordModel.ChangeTime = DateTime.Now; TaskRecordModel.CreatedBy = 0; TaskRecordModel.CreatedTime = DateTime.Now; TaskRecordModel.IsAudit = isAudit; TaskRecordModel.IsDeleted = false; TaskRecordModel.ModifiedBy = 0; TaskRecordModel.ModifiedTime = DateTime.Now; TaskRecordModel.TaskID = filter.TaskID; TaskRecordModel.Reason = filter.Result; base.Save <DC_TaskChangeRecord, TaskRecordModel>(TaskRecordModel, (q) => false); result.Data = TaskRecordModel; } unitOfWork.Commit(); result.IsSuccess = true; } catch (Exception ex) { result.IsSuccess = false; result.ResultCode = 500; result.ResultMessage = ex.Message; } return(result); }
public BaseResponse <TaskModel> SaveTask(TaskModel request) { BaseResponse <TaskModel> response = new BaseResponse <TaskModel>(); if (request.Status == Enum.GetName(typeof(TaskStatus), TaskStatus.Execution) || request.Status == Enum.GetName(typeof(TaskStatus), TaskStatus.Finish)) { var status = Enum.GetName(typeof(RefundStatus), RefundStatus.Wait); //查看是否存在退款中 var refund = unitOfWork.GetRepository <DC_RefundRecord>().dbSet.FirstOrDefault(a => a.ServiceOrderID == request.ServiceOrderID && a.Status == status); if (refund != null) { response.IsSuccess = false; response.ResultMessage = "此订单用户已申请退款。"; return(response); } } response = base.Save <DC_Task, TaskModel>(request, (q) => q.TaskID == request.TaskID); if (response.IsSuccess) { if (response.Data.Status == Enum.GetName(typeof(TaskStatus), TaskStatus.Assign) || response.Data.Status == Enum.GetName(typeof(TaskStatus), TaskStatus.Finish)) { var serviceOrderRepository = unitOfWork.GetRepository <DC_ServiceOrder>(); var serviceOrder = serviceOrderRepository.dbSet.Where(a => a.ServiceOrderID == response.Data.ServiceOrderID).FirstOrDefault(); var orderStatus = Enum.GetName(typeof(OrderStatus), OrderStatus.Delivered); if (response.Data.Status == Enum.GetName(typeof(TaskStatus), TaskStatus.Finish)) { orderStatus = Enum.GetName(typeof(OrderStatus), OrderStatus.Finish); serviceOrder.PaymentStatus = Enum.GetName(typeof(PaymentStatus), PaymentStatus.Paid); if (serviceOrder.Payment == Enum.GetName(typeof(Payment), Payment.Cash)) { var feeDetail = new DC_FeeDetail(); feeDetail.FeeNo = base.GenerateCode(EnumCodeKey.FeeDetailCode, EnumCodeRule.YearMonthDay, "F", 6, response.Data.OrganizationID); feeDetail.ServiceOrderID = serviceOrder.ServiceOrderID; feeDetail.FeeName = serviceOrder.OrderTitle; feeDetail.TotalPrice = -1 * serviceOrder.Price; feeDetail.FeeDate = DateTime.Now; feeDetail.ResidentID = serviceOrder.ResidentID; unitOfWork.GetRepository <DC_FeeDetail>().Insert(feeDetail); } } if (response.Data.Status == Enum.GetName(typeof(TaskStatus), TaskStatus.Assign)) { serviceOrder.SelEmployeeID = response.Data.EmployeeId; } serviceOrder.OrderStatus = orderStatus; serviceOrder.ModifiedTime = DateTime.Now; serviceOrderRepository.Update(serviceOrder); if (response.Data.Status == Enum.GetName(typeof(TaskStatus), TaskStatus.Assign)) { var taskDispatchRecord = unitOfWork.GetRepository <DC_DispathTaskRecord>().dbSet.Where(a => a.OrderID == serviceOrder.ServiceOrderID).FirstOrDefault(); if (taskDispatchRecord == null) { taskDispatchRecord = new DC_DispathTaskRecord(); taskDispatchRecord.EmployeeID = response.Data.EmployeeId; taskDispatchRecord.WorkTime = response.Data.AppointmentTime; taskDispatchRecord.ClientName = response.Data.PersonName; taskDispatchRecord.OrderID = serviceOrder.ServiceOrderID; unitOfWork.GetRepository <DC_DispathTaskRecord>().Insert(taskDispatchRecord); } else { taskDispatchRecord.EmployeeID = response.Data.EmployeeId; taskDispatchRecord.WorkTime = response.Data.AppointmentTime; taskDispatchRecord.ClientName = response.Data.PersonName; unitOfWork.GetRepository <DC_DispathTaskRecord>().Update(taskDispatchRecord); } } unitOfWork.Save(); } } return(response); }