1509 lines
		
	
	
		
			91 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			1509 lines
		
	
	
		
			91 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using APT.BaseData.Domain.ApiModel;
 | 
						|
using APT.BaseData.Domain.Entities;
 | 
						|
using APT.BaseData.Domain.Entities.FM;
 | 
						|
using APT.BaseData.Domain.Enums;
 | 
						|
using APT.BaseData.Domain.Enums.PF;
 | 
						|
using APT.BaseData.Domain.IServices.FM;
 | 
						|
using APT.Infrastructure.Core;
 | 
						|
using APT.MS.Domain.Entities.DM;
 | 
						|
using APT.MS.Domain.Entities.SC.DM;
 | 
						|
using APT.MS.Domain.Entities.SC.PT;
 | 
						|
using APT.MS.Domain.Enums;
 | 
						|
using APT.Utility;
 | 
						|
using APT.WebApi.Models;
 | 
						|
using InfluxData.Net.InfluxDb.Models.Responses;
 | 
						|
using Microsoft.AspNetCore.Mvc;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
 | 
						|
namespace APT.PP.WebApi.Controllers.Api.PP
 | 
						|
{
 | 
						|
    [Route("api/PP/DM")]
 | 
						|
    [TypeFilter(typeof(CustomActionFilterAttribute))]
 | 
						|
    public partial class DMController : AuthorizeApiController<T_DM_DEVICE_MAINTENANCE_PLAN>
 | 
						|
    {
 | 
						|
 | 
						|
        IFMNotificationTaskService NotificationTaskService { get; set; }
 | 
						|
        IFMUserService UserService { get; set; }
 | 
						|
        IPFSysLogService SysLogService { get; set; }
 | 
						|
        IFMSyncLogDetailService SyncLogDetailService { get; set; }
 | 
						|
        public DMController(IFMNotificationTaskService notificationTaskService, IPFSysLogService sysLogService, IFMUserService userService, IFMSyncLogDetailService syncLogDetailService)
 | 
						|
        {
 | 
						|
            NotificationTaskService = notificationTaskService;
 | 
						|
            SysLogService = sysLogService;
 | 
						|
            UserService = userService;
 | 
						|
            SyncLogDetailService = syncLogDetailService;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 判断跑批时间是否符合
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="RUNSETTIME"></param>
 | 
						|
        /// <param name="dtNow"></param>
 | 
						|
        /// <param name="minAdvance"></param>
 | 
						|
        /// <param name="minLaster"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        private bool ISTimeOK(DateTime? RUNSETTIME, DateTime dtNow, int minAdvance, int minLaster)
 | 
						|
        {
 | 
						|
            if (RUNSETTIME == null)
 | 
						|
            {
 | 
						|
                return false;
 | 
						|
            }
 | 
						|
 | 
						|
            if (RUNSETTIME != null)
 | 
						|
            {
 | 
						|
                if (minAdvance != 0 || minLaster != 0)
 | 
						|
                {
 | 
						|
                    DateTime dtSetTime = Convert.ToDateTime(dtNow.ToString("yyyy-MM-dd") + RUNSETTIME.Value.ToString(" HH:mm:ss"));
 | 
						|
                    if (minAdvance > 0 && minLaster > 0)
 | 
						|
                    {
 | 
						|
                        if (dtNow.AddMinutes(-1 * minAdvance) <= dtSetTime && dtSetTime <= dtNow.AddMinutes(minLaster))
 | 
						|
                        {
 | 
						|
                            return true;
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    else if (minAdvance > 0)
 | 
						|
                    {
 | 
						|
                        if (dtNow.AddMinutes(-1 * minAdvance) <= dtSetTime && dtSetTime <= dtNow)
 | 
						|
                        {
 | 
						|
                            //如果设置时间小于当前时间  并且 设置使劲按大于 当前时间大于当前时间往前偏移分钟数
 | 
						|
                            return true;
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        if (dtNow <= dtSetTime && dtSetTime <= dtNow.AddMinutes(minLaster))
 | 
						|
                        {
 | 
						|
                            //如果 设置时间大于当前时间 并且设置时间小于当前时间往后偏移分钟数
 | 
						|
                            return true;
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    if (RUNSETTIME.Value.ToString("HH:mm") == dtNow.ToString("HH:mm"))
 | 
						|
                    {
 | 
						|
                        return true;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 机电管理 每天触发
 | 
						|
        /// 数据逻辑自己控制
 | 
						|
        /// 如果要写入此方法 每个人的代码用代码块包起来 以免冲突
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="filter"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        //[HttpPost, Route("DailyRun")]
 | 
						|
        //public JsonActionResult<bool> DailyRun([FromBody] KeywordFilter filter)
 | 
						|
        //{
 | 
						|
        //    return SafeExecute<bool>(() =>
 | 
						|
        //    {
 | 
						|
        //        try
 | 
						|
        //        {
 | 
						|
        //            DateTime dtNow = DateTime.Now;
 | 
						|
        //            if (!string.IsNullOrEmpty(filter.Parameter1))
 | 
						|
        //            {
 | 
						|
        //                try
 | 
						|
        //                {
 | 
						|
        //                    dtNow = Convert.ToDateTime(filter.Parameter1);
 | 
						|
        //                }
 | 
						|
        //                catch
 | 
						|
        //                {
 | 
						|
        //                    dtNow = DateTime.Now;
 | 
						|
        //                }
 | 
						|
        //            }
 | 
						|
 | 
						|
        //            bool isCheck = true;//点检 巡检
 | 
						|
        //            bool isPlan = true; //设备维保
 | 
						|
        //            int min = 5;//按设置时间 可以提前5分钟执行跑批生成代办任务
 | 
						|
 | 
						|
        //            #region    wyw  维保计划录入
 | 
						|
 | 
						|
        //            var listDMPlan = GetEntities<T_DM_DEVICE_MAINTENANCE_PLAN>(e => e.PLANCHECKFREQUENCY != BSPLANCHECKFREQUENCYEnum.None && e.DEVICEBASE_ID.HasValue && e.ENABLE_STATUS == FMEnableStatusEnum.启用 && e.STATUS_APPROVE == PFStandardStatus.Archived && !e.IS_DELETED, null, "Nav_ListUser.Nav_User");
 | 
						|
 | 
						|
        //            List<T_DM_DEVICE_MAINTENANCE_PLAN> listPlan = new List<T_DM_DEVICE_MAINTENANCE_PLAN>();
 | 
						|
        //            if (listDMPlan != null && listDMPlan.Any())
 | 
						|
        //            {
 | 
						|
 | 
						|
        //                foreach (var item in listDMPlan)
 | 
						|
        //                {
 | 
						|
        //                    if (ISTimeOK(item.RUNSETTIME, dtNow, min, min))//设置时间往前后各偏移 5 分钟 判断跑批
 | 
						|
        //                    {
 | 
						|
        //                        switch (item.PLANCHECKFREQUENCY)
 | 
						|
        //                        {
 | 
						|
        //                            case BSPLANCHECKFREQUENCYEnum.None:
 | 
						|
        //                                break;
 | 
						|
        //                            //case BSPLANCHECKFREQUENCYEnum.OneTime:
 | 
						|
        //                            case BSPLANCHECKFREQUENCYEnum.Year:
 | 
						|
        //                                if (!string.IsNullOrEmpty(item.RUNDATA))//05-01,10-01
 | 
						|
        //                                {
 | 
						|
        //                                    List<string> listMMdd = item.RUNDATA.Split(",").ToList();
 | 
						|
        //                                    if (item.RUNDATA.Contains("-"))
 | 
						|
        //                                    {
 | 
						|
        //                                        for (int j = 0; j < listMMdd.Count; j++)
 | 
						|
        //                                        {
 | 
						|
        //                                            try
 | 
						|
        //                                            {
 | 
						|
        //                                                if (!string.IsNullOrEmpty(listMMdd[j]) && (listMMdd[j] == dtNow.ToString("MM-dd") || listMMdd[j] == dtNow.ToString("M-d")))
 | 
						|
        //                                                {
 | 
						|
        //                                                    listPlan.Add(item);
 | 
						|
        //                                                    break;
 | 
						|
        //                                                }
 | 
						|
        //                                            }
 | 
						|
        //                                            catch { }
 | 
						|
        //                                        }
 | 
						|
        //                                    }
 | 
						|
        //                                    else if (item.RUNDATA.Contains("/"))
 | 
						|
        //                                    {
 | 
						|
        //                                        for (int j = 0; j < listMMdd.Count; j++)
 | 
						|
        //                                        {
 | 
						|
        //                                            try
 | 
						|
        //                                            {
 | 
						|
        //                                                if (!string.IsNullOrEmpty(listMMdd[j]) && (listMMdd[j] == dtNow.ToString("MM/dd") || listMMdd[j] == dtNow.ToString("M/d")))
 | 
						|
        //                                                {
 | 
						|
        //                                                    listPlan.Add(item);
 | 
						|
        //                                                    break;
 | 
						|
        //                                                }
 | 
						|
        //                                            }
 | 
						|
        //                                            catch { }
 | 
						|
        //                                        }
 | 
						|
        //                                    }
 | 
						|
        //                                }
 | 
						|
        //                                break;
 | 
						|
        //                            case BSPLANCHECKFREQUENCYEnum.Date:
 | 
						|
        //                                listPlan.Add(item);
 | 
						|
        //                                break;
 | 
						|
        //                            case BSPLANCHECKFREQUENCYEnum.Week:
 | 
						|
        //                                if (item.WEEKDATA != null && (int)dtNow.DayOfWeek == (int)item.WEEKDATA.Value)
 | 
						|
        //                                {
 | 
						|
        //                                    //星期匹配   DateTime.Now.DayOfWeek Thursday    (int)DateTime.Now.DayOfWeek 4
 | 
						|
        //                                    listPlan.Add(item);
 | 
						|
        //                                }
 | 
						|
        //                                break;
 | 
						|
        //                            case BSPLANCHECKFREQUENCYEnum.Month:
 | 
						|
        //                            case BSPLANCHECKFREQUENCYEnum.Quarter:
 | 
						|
        //                                if (item.DATA != null && item.DATA.Value == dtNow.Day)
 | 
						|
        //                                {
 | 
						|
        //                                    listPlan.Add(item); //日匹配  (季度是季度第一月的某日 刚好也符合)
 | 
						|
        //                                }
 | 
						|
        //                                break;
 | 
						|
        //                            default:
 | 
						|
        //                                break;
 | 
						|
        //                        }
 | 
						|
        //                    }
 | 
						|
        //                }
 | 
						|
        //            }
 | 
						|
 | 
						|
        //            #endregion
 | 
						|
 | 
						|
        //            DateTime dtNowEdit = DateTime.Now;
 | 
						|
 | 
						|
 | 
						|
        //            if (listPlan.Count < 1)
 | 
						|
        //            {
 | 
						|
        //                isPlan = false;
 | 
						|
        //            }
 | 
						|
        //            var listPlanID = listPlan.Select(e => e.ID);
 | 
						|
        //            var listDateCheck = GetEntities<T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL>(e => e.CREATE_TIME.Value.Date == dtNowEdit.Date && listPlanID.Contains(e.ID), null, null);
 | 
						|
        //            if (listDateCheck != null && listDateCheck.Any())
 | 
						|
        //            {
 | 
						|
        //                for (int i = listPlan.Count(); i > -1; i--)
 | 
						|
        //                {
 | 
						|
        //                    var checkDate = listDateCheck.FirstOrDefault(e => e.ID == listPlan[i].ID);
 | 
						|
        //                    if (checkDate != null)
 | 
						|
        //                    {
 | 
						|
        //                        listPlan.RemoveAt(i);
 | 
						|
        //                    }
 | 
						|
        //                }
 | 
						|
        //            }
 | 
						|
        //            if (listPlan.Count < 1)
 | 
						|
        //            {
 | 
						|
        //                isPlan = false;
 | 
						|
        //            }
 | 
						|
 | 
						|
 | 
						|
        //            #region     点检 巡检
 | 
						|
 | 
						|
        //            List<T_DM_DEVICE_BASE> listDeviceBase = null;  //点检 巡检 结果
 | 
						|
        //            var listDeviceBaseT = GetEntities<T_DM_DEVICE_BASE>(e => !e.IS_DELETED && e.Nav_ListCheck != null && e.Nav_ListCheck.Any(), null, "Nav_ListCheck.Nav_ListUser.Nav_User");//&& e.QTY > 0
 | 
						|
        //            if (listDeviceBaseT == null || !listDeviceBaseT.Any())
 | 
						|
        //            {
 | 
						|
        //                isCheck = false;
 | 
						|
        //            }
 | 
						|
        //            else
 | 
						|
        //            {
 | 
						|
 | 
						|
        //                //今天
 | 
						|
        //                var ListDetail = GetEntities<T_DM_DEVICE_CHECK_DETAIL>(e => e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Date == dtNowEdit.Date, null, null);//listBaseCheckID.Contains(e.BASECHECK_ID) &&
 | 
						|
 | 
						|
        //                listDeviceBase = listDeviceBaseT.ToList();
 | 
						|
        //                List<T_DM_DEVICE_BASE_CHECK> listBaseCheck = null;
 | 
						|
        //                foreach (var item in listDeviceBaseT)
 | 
						|
        //                {
 | 
						|
        //                    var listBaseCheckT = item.Nav_ListCheck;
 | 
						|
        //                    if (listBaseCheckT != null && listBaseCheckT.Any())
 | 
						|
        //                    {
 | 
						|
        //                        listBaseCheck = listBaseCheckT.ToList();
 | 
						|
        //                        for (int i = listBaseCheck.Count - 1; i > -1; i--)
 | 
						|
        //                        {
 | 
						|
        //                            if (listBaseCheck[i].IS_DELETED)
 | 
						|
        //                            {
 | 
						|
        //                                listBaseCheck.RemoveAt(i);
 | 
						|
        //                                continue;
 | 
						|
        //                            }
 | 
						|
        //                            if (ListDetail != null && ListDetail.Any())
 | 
						|
        //                            {
 | 
						|
        //                                //var detail = ListDetail.FirstOrDefault(e => e.BASECHECK_ID == listBaseCheck[i].ID);
 | 
						|
        //                                var detail = ListDetail.FirstOrDefault(e => e.BASECHECK_ID == listBaseCheck[i].ID);
 | 
						|
        //                                if (detail != null)
 | 
						|
        //                                {
 | 
						|
        //                                    listBaseCheck.RemoveAt(i);
 | 
						|
        //                                    continue;
 | 
						|
        //                                }
 | 
						|
        //                            }
 | 
						|
        //                            if (ISTimeOK(listBaseCheck[i].CHECKTIME, dtNow, min, min))//设置时间往前后各偏移 5 分钟 判断跑批
 | 
						|
        //                            {
 | 
						|
        //                                switch (listBaseCheck[i].PLANCHECKFREQUENCY)
 | 
						|
        //                                {
 | 
						|
        //                                    case BSPLANCHECKFREQUENCYEnum.None:
 | 
						|
        //                                        break;
 | 
						|
        //                                    //TODO 0525
 | 
						|
        //                                    //case BSPLANCHECKFREQUENCYEnum.OneTime:
 | 
						|
        //                                    case BSPLANCHECKFREQUENCYEnum.Year:
 | 
						|
        //                                        if (!string.IsNullOrEmpty(listBaseCheck[i].RUNDATA))//05-01,10-01
 | 
						|
        //                                        {
 | 
						|
        //                                            List<string> listMMdd = listBaseCheck[i].RUNDATA.Split(",").ToList();
 | 
						|
        //                                            if (!listMMdd.Contains(dtNow.ToString("MM-dd")) && !listMMdd.Contains(dtNow.ToString("M-d")) && !listMMdd.Contains(dtNow.ToString("MM/dd")) && !listMMdd.Contains(dtNow.ToString("M/d")))
 | 
						|
        //                                            {
 | 
						|
        //                                                listBaseCheck.RemoveAt(i);
 | 
						|
        //                                            }
 | 
						|
        //                                        }
 | 
						|
        //                                        break;
 | 
						|
        //                                    case BSPLANCHECKFREQUENCYEnum.Date:
 | 
						|
        //                                        //listPlan.Add(listBaseCheck[i]);
 | 
						|
        //                                        break;
 | 
						|
        //                                    case BSPLANCHECKFREQUENCYEnum.Week:
 | 
						|
        //                                        if (listBaseCheck[i].WEEKDATA == null || (int)dtNow.DayOfWeek != (int)listBaseCheck[i].WEEKDATA.Value)
 | 
						|
        //                                        {
 | 
						|
        //                                            listBaseCheck.RemoveAt(i);
 | 
						|
        //                                        }
 | 
						|
        //                                        break;
 | 
						|
        //                                    case BSPLANCHECKFREQUENCYEnum.Month:
 | 
						|
        //                                    case BSPLANCHECKFREQUENCYEnum.Quarter:
 | 
						|
        //                                        if (listBaseCheck[i].DATA == null || listBaseCheck[i].DATA.Value != dtNow.Day)
 | 
						|
        //                                        {
 | 
						|
        //                                            listBaseCheck.RemoveAt(i);
 | 
						|
        //                                        }
 | 
						|
        //                                        break;
 | 
						|
        //                                    default:
 | 
						|
        //                                        break;
 | 
						|
        //                                }
 | 
						|
        //                            }
 | 
						|
        //                            else
 | 
						|
        //                            {
 | 
						|
        //                                listBaseCheck.RemoveAt(i);
 | 
						|
        //                            }
 | 
						|
        //                        }
 | 
						|
        //                        item.Nav_ListCheck = listBaseCheck;
 | 
						|
        //                    }
 | 
						|
        //                }
 | 
						|
 | 
						|
        //                for (int i = listDeviceBase.Count - 1; i > -1; i--)
 | 
						|
        //                {
 | 
						|
        //                    if (listDeviceBase[i].Nav_ListCheck == null || listDeviceBase[i].Nav_ListCheck.Count() == 0)
 | 
						|
        //                    {
 | 
						|
        //                        listDeviceBase.RemoveAt(i);
 | 
						|
        //                    }
 | 
						|
        //                }
 | 
						|
        //            }
 | 
						|
        //            if (listDeviceBase == null || listDeviceBase.Count < 1)
 | 
						|
        //            {
 | 
						|
        //                isCheck = false;
 | 
						|
        //            }
 | 
						|
 | 
						|
        //            #endregion
 | 
						|
 | 
						|
        //            if (!isPlan && !isCheck)//没有 维保计划  和点检、巡检
 | 
						|
        //            {
 | 
						|
        //                return true;
 | 
						|
        //            }
 | 
						|
 | 
						|
        //            List<T_DM_DEVICE_MAINTENANCE_CHECK> listCheck = new List<T_DM_DEVICE_MAINTENANCE_CHECK>();
 | 
						|
        //            List<T_DM_DEVICE_MAINTENANCE_CHECK_USER> listCheckUser = new List<T_DM_DEVICE_MAINTENANCE_CHECK_USER>();
 | 
						|
        //            List<T_DM_DEVICE_MAINTENANCE_CHECK_USER> listCheckUserTemp = null;
 | 
						|
        //            List<T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL> listCheckDetail = new List<T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL>();
 | 
						|
        //            List<T_FM_NOTIFICATION_TASK> listTaskMaintCheck = new List<T_FM_NOTIFICATION_TASK>();
 | 
						|
 | 
						|
        //            var listBaseID = listPlan.Select(e => e.DEVICEBASE_ID.Value);
 | 
						|
 | 
						|
        //            var listBase = GetEntities<T_DM_DEVICE_BASE>(e => listBaseID.Contains(e.ID), null, "Nav_ListCheck.Nav_ListUser.Nav_User", "Nav_User");
 | 
						|
 | 
						|
 | 
						|
        //            if (listBase == null || !listBase.Any())
 | 
						|
        //            {
 | 
						|
        //                isPlan = false;
 | 
						|
        //            }
 | 
						|
        //            else
 | 
						|
        //            {
 | 
						|
        //                foreach (var item in listPlan)
 | 
						|
        //                {
 | 
						|
        //                    var DeviceBase = listBase.FirstOrDefault(e => e.ID == item.DEVICEBASE_ID.Value);
 | 
						|
        //                    if (DeviceBase != null)
 | 
						|
        //                        item.Nav_DeviceBase = DeviceBase;
 | 
						|
        //                }
 | 
						|
        //            }
 | 
						|
 | 
						|
        //            if (isPlan)//维保计划
 | 
						|
        //            {
 | 
						|
        //                Guid CheckID = Guid.Empty;
 | 
						|
        //                Guid UserID = Guid.Empty;
 | 
						|
        //                string UserName = string.Empty;
 | 
						|
        //                bool isHave = false;
 | 
						|
        //                for (int i = 0; i < listPlan.Count; i++)
 | 
						|
        //                {
 | 
						|
        //                    //所有 维保 计划  如果维保人员 维保设备负责人 完全一致 合并单
 | 
						|
        //                    foreach (var item in listCheck)
 | 
						|
        //                    {
 | 
						|
        //                        if (item.Nav_ListUser.Count() == listPlan[i].Nav_ListUser.Count() && listPlan[i].Nav_DeviceBase != null && item.USER_ID == listPlan[i].Nav_DeviceBase.USER_ID)
 | 
						|
        //                        {
 | 
						|
        //                            isHave = true;
 | 
						|
        //                            //查找 维保人员 如果一致
 | 
						|
        //                            foreach (var itemUser in item.Nav_ListUser)
 | 
						|
        //                            {
 | 
						|
        //                                var userCheck = listPlan[i].Nav_ListUser.FirstOrDefault(e => e.USER_ID == itemUser.USER_ID && e.ISMAIN == itemUser.ISMAIN);
 | 
						|
        //                                if (userCheck == null)
 | 
						|
        //                                {
 | 
						|
        //                                    //没找到 
 | 
						|
        //                                    isHave = false;
 | 
						|
        //                                    CheckID = Guid.Empty;
 | 
						|
        //                                    break;
 | 
						|
        //                                }
 | 
						|
        //                            }
 | 
						|
 | 
						|
        //                            if (!isHave)
 | 
						|
        //                            {
 | 
						|
        //                                continue;
 | 
						|
        //                            }
 | 
						|
 | 
						|
        //                            CheckID = item.ID;
 | 
						|
        //                            break;
 | 
						|
        //                        }
 | 
						|
        //                    }
 | 
						|
 | 
						|
        //                    //如果 没有找到之前 一致的 维保ID 
 | 
						|
        //                    if (CheckID == Guid.Empty)
 | 
						|
        //                    {
 | 
						|
        //                        CheckID = Guid.NewGuid();
 | 
						|
 | 
						|
        //                        listCheck.Add(new T_DM_DEVICE_MAINTENANCE_CHECK()
 | 
						|
        //                        {
 | 
						|
        //                            ID = CheckID,
 | 
						|
        //                            CODE = "WB" + dtNowEdit.ToString("yyyyMMddHHmmss"),
 | 
						|
        //                            NAME = "设备设施维保" + dtNowEdit.ToString("MMdd"),
 | 
						|
        //                            CHECKDATETIME = dtNowEdit,
 | 
						|
        //                            STATUS_APPROVE = PFStandardStatus.Draft,
 | 
						|
        //                            //APPROVE_ID = ,
 | 
						|
        //                            IS_DELETED = false,
 | 
						|
        //                            ORG_ID = listPlan[i].ORG_ID,
 | 
						|
        //                            //ENTITY_ORG_TPYE = ,
 | 
						|
        //                            //FORM_ID = ,
 | 
						|
        //                            //FLOW_STATUS = ,
 | 
						|
        //                            //FLOW_SEND_STATUS = ,
 | 
						|
        //                            //FLOW_ID = ,
 | 
						|
        //                            CREATE_TIME = dtNowEdit,
 | 
						|
        //                            MODIFY_TIME = dtNowEdit,
 | 
						|
        //                            //CREATER_ID = ,
 | 
						|
        //                            //MODIFIER_ID = ,
 | 
						|
        //                            USER_ID = listPlan[i].Nav_DeviceBase.USER_ID
 | 
						|
        //                        });
 | 
						|
        //                        listCheckUserTemp = new List<T_DM_DEVICE_MAINTENANCE_CHECK_USER>();
 | 
						|
        //                        foreach (var item in listPlan[i].Nav_ListUser)
 | 
						|
        //                        {
 | 
						|
        //                            if (item.ISMAIN)
 | 
						|
        //                            {
 | 
						|
        //                                UserID = item.USER_ID;
 | 
						|
        //                                UserName = item.Nav_User.NAME;
 | 
						|
        //                            }
 | 
						|
        //                            listCheckUserTemp.Add(new T_DM_DEVICE_MAINTENANCE_CHECK_USER()
 | 
						|
        //                            {
 | 
						|
        //                                ID = Guid.NewGuid(),
 | 
						|
        //                                CHECK_ID = CheckID,
 | 
						|
        //                                USER_ID = item.USER_ID,
 | 
						|
        //                                ISMAIN = item.ISMAIN,
 | 
						|
        //                                ISCHECK = item.ISMAIN,
 | 
						|
        //                                //CHECKTIME = ,
 | 
						|
        //                                IS_DELETED = false,
 | 
						|
        //                                ORG_ID = item.ORG_ID,
 | 
						|
        //                                //ENTITY_ORG_TPYE = ,
 | 
						|
        //                                //FORM_ID = ,
 | 
						|
        //                                //FLOW_STATUS = ,
 | 
						|
        //                                //FLOW_SEND_STATUS = ,
 | 
						|
        //                                //FLOW_ID = ,
 | 
						|
        //                                CREATE_TIME = dtNowEdit,
 | 
						|
        //                                MODIFY_TIME = dtNowEdit,
 | 
						|
        //                                //CREATER_ID = ,
 | 
						|
        //                                //MODIFIER_ID = ,
 | 
						|
        //                            });
 | 
						|
        //                        }
 | 
						|
 | 
						|
        //                        //维保人员赋值 容易查找 
 | 
						|
        //                        listCheck[listCheck.Count - 1].Nav_ListUser = listCheckUserTemp;
 | 
						|
        //                        listCheckUser.AddRange(listCheckUserTemp);
 | 
						|
 | 
						|
        //                        //待办 
 | 
						|
        //                        listTaskMaintCheck.Add(NotificationTaskService.InsertUserNoticeTaskModel("设备设施维保", CheckID, listCheck[0].ORG_ID, UserID, UserName, dtNowEdit, dtNowEdit.AddDays(1), 1, "DM030"));
 | 
						|
 | 
						|
        //                    }
 | 
						|
 | 
						|
 | 
						|
        //                    //检查明细
 | 
						|
        //                    listCheckDetail.Add(new T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL()
 | 
						|
        //                    {
 | 
						|
        //                        ID = Guid.NewGuid(),
 | 
						|
        //                        PLANID = listPlan[i].ID,
 | 
						|
        //                        CHECK_ID = CheckID,
 | 
						|
        //                        DEVICEBASE_ID = listPlan[i].DEVICEBASE_ID,
 | 
						|
        //                        MACHINE_NAME = listPlan[i].MACHINE_NAME,
 | 
						|
        //                        SPEC = listPlan[i].SPEC,
 | 
						|
        //                        COUNT = listPlan[i].COUNT,
 | 
						|
        //                        POSITION = listPlan[i].POSITION,
 | 
						|
        //                        CONTENT = listPlan[i].CONTENT,
 | 
						|
        //                        //Result = ,
 | 
						|
        //                        IS_DELETED = false,
 | 
						|
        //                        ORG_ID = listPlan[i].ORG_ID,
 | 
						|
        //                        //ENTITY_ORG_TPYE = ,
 | 
						|
        //                        //FORM_ID = ,
 | 
						|
        //                        //FLOW_STATUS = ,
 | 
						|
        //                        //FLOW_SEND_STATUS = ,
 | 
						|
        //                        //FLOW_ID = ,
 | 
						|
        //                        CREATE_TIME = dtNowEdit,
 | 
						|
        //                        MODIFY_TIME = dtNowEdit,
 | 
						|
        //                        //CREATER_ID = ,
 | 
						|
        //                        //MODIFIER_ID = ,
 | 
						|
        //                    });
 | 
						|
        //                }
 | 
						|
        //            }
 | 
						|
 | 
						|
 | 
						|
        //            //符合 条件的 计划 做设备点检、巡检
 | 
						|
        //            //var listBaseID = listPlan.Select(e => e.DEVICEBASE_ID.Value);
 | 
						|
 | 
						|
        //            //var listBase = GetEntities<T_DM_DEVICE_BASE>(e => listBaseID.Contains(e.ID), null, "Nav_ListCheck.Nav_ListUser.Nav_User");
 | 
						|
        //            //if (listBase == null || !listBase.Any())
 | 
						|
        //            //{
 | 
						|
        //            //    return true;
 | 
						|
        //            //}
 | 
						|
 | 
						|
        //            //给 符合条件的 计划 对应 设备设施库  中 点检、巡检 发送 点检 巡检 待办 给 第一个 巡检人员
 | 
						|
 | 
						|
        //            List<T_DM_DEVICE_CHECK> listCheckSend = new List<T_DM_DEVICE_CHECK>();
 | 
						|
        //            List<T_DM_DEVICE_CHECK_DETAIL> listCheckDetailSend = new List<T_DM_DEVICE_CHECK_DETAIL>();
 | 
						|
        //            List<T_DM_DEVICE_CHECK_USER> listCheckUserSend = new List<T_DM_DEVICE_CHECK_USER>();
 | 
						|
        //            List<T_FM_NOTIFICATION_TASK> listTask = new List<T_FM_NOTIFICATION_TASK>();
 | 
						|
 | 
						|
        //            if (isCheck)//点检 巡检
 | 
						|
        //            {
 | 
						|
        //                int RowIndex = 1;
 | 
						|
        //                Guid UserId = Guid.Empty;
 | 
						|
        //                Guid CheckId = Guid.Empty;
 | 
						|
        //                string userName = String.Empty;
 | 
						|
        //                T_DM_DEVICE_BASE_CHECK_USER UserMain = null;
 | 
						|
        //                T_DM_DEVICE_CHECK_DETAIL CheckDetail = null;
 | 
						|
        //                CheckType? lastCheckType = null;
 | 
						|
        //                foreach (var item in listDeviceBase)// listBase
 | 
						|
        //                {
 | 
						|
        //                    if (item.Nav_ListCheck == null || !item.Nav_ListCheck.Any())
 | 
						|
        //                    {
 | 
						|
        //                        continue;
 | 
						|
        //                    }
 | 
						|
 | 
						|
        //                    //var listCheckCircle = item.Nav_ListCheck.Where(e => e.Nav_ListUser != null && e.Nav_ListUser.Any() && e.CHECKTYPE == CheckType.CheckCircuit);
 | 
						|
        //                    //var listCheck = item.Nav_ListCheck.Where(e => e.Nav_ListUser != null && e.Nav_ListUser.Any() && e.CHECKTYPE == CheckType.Check);
 | 
						|
 | 
						|
        //                    var listCheckBase = item.Nav_ListCheck.Where(e => e.Nav_ListUser != null && e.Nav_ListUser.Any()).OrderBy(e => e.CHECKTYPE);
 | 
						|
 | 
						|
        //                    if (listCheckBase != null && listCheckBase.Any())
 | 
						|
        //                    {
 | 
						|
        //                        RowIndex = 1;
 | 
						|
        //                        //巡检单
 | 
						|
        //                        foreach (var itemDetail in listCheckBase)
 | 
						|
        //                        {
 | 
						|
        //                            //检查人员
 | 
						|
        //                            UserMain = itemDetail.Nav_ListUser.FirstOrDefault(e => e.ISMAIN);
 | 
						|
 | 
						|
        //                            if (UserId == Guid.Empty || UserMain.USER_ID != UserId || (lastCheckType != null && lastCheckType != itemDetail.CHECKTYPE))
 | 
						|
        //                            {
 | 
						|
        //                                UserId = UserMain.USER_ID;
 | 
						|
        //                                userName = UserMain.Nav_User.NAME;
 | 
						|
 | 
						|
        //                                T_DM_DEVICE_CHECK checkCircle = new T_DM_DEVICE_CHECK();
 | 
						|
 | 
						|
        //                                #region    点检 巡检 单
 | 
						|
 | 
						|
        //                                checkCircle.ID = Guid.NewGuid();
 | 
						|
        //                                checkCircle.DEVICEBASE_ID = item.ID;
 | 
						|
        //                                checkCircle.CHECKTYPE = itemDetail.CHECKTYPE;
 | 
						|
 | 
						|
        //                                //checkCircle.PLANID = listPlan.Find(e => e.DEVICEBASE_ID == item.ID).ID;// null;
 | 
						|
        //                                checkCircle.CODE = dtNowEdit.ToString("yyyyMMddHHmmss") + RowIndex.ToString();
 | 
						|
        //                                checkCircle.NAME = (itemDetail.CHECKTYPE == CheckType.Check ? "点检" : "巡检") + dtNowEdit.ToString("MMdd");
 | 
						|
 | 
						|
        //                                checkCircle.RECORD_DATE = dtNowEdit;
 | 
						|
 | 
						|
 | 
						|
        //                                //checkCircle.START_TIME =  ;
 | 
						|
        //                                //checkCircle.END_TIME =  ;
 | 
						|
        //                                //checkCircle.TEAM_NAME =  ;
 | 
						|
        //                                //checkCircle.TEAM_ID =  ;
 | 
						|
        //                                //checkCircle.SCHEDULIN_ID =  ;
 | 
						|
 | 
						|
        //                                checkCircle.MACHINE_NAME = item.NAME;
 | 
						|
        //                                checkCircle.SPEC = item.SPEC;
 | 
						|
        //                                checkCircle.MACHINE_CODE = item.CODE;
 | 
						|
        //                                checkCircle.POSITION_NAME = item.POSITION;
 | 
						|
        //                                checkCircle.STATUS = PFStandardStatus.Draft;
 | 
						|
        //                                checkCircle.IS_DELETED = false;
 | 
						|
        //                                checkCircle.ORG_ID = item.ORG_ID;
 | 
						|
        //                                //checkCircle.ENTITY_ORG_TPYE =  ;
 | 
						|
        //                                //checkCircle.FORM_ID =  ;
 | 
						|
        //                                //checkCircle.FLOW_STATUS =  ;
 | 
						|
        //                                //checkCircle.FLOW_SEND_STATUS =  ;
 | 
						|
        //                                //checkCircle.FLOW_ID =  ;
 | 
						|
        //                                checkCircle.CREATE_TIME = dtNowEdit;
 | 
						|
        //                                checkCircle.MODIFY_TIME = dtNowEdit;
 | 
						|
        //                                //checkCircle.CREATER_ID =  ;
 | 
						|
        //                                //checkCircle.MODIFIER_ID =  ; 
 | 
						|
        //                                #endregion
 | 
						|
 | 
						|
        //                                CheckId = checkCircle.ID;
 | 
						|
        //                                listCheckSend.Add(checkCircle);
 | 
						|
 | 
						|
 | 
						|
        //                                //添加待办
 | 
						|
        //                                listTask.Add(NotificationTaskService.InsertUserNoticeTaskModel("设备设施" + (itemDetail.CHECKTYPE == CheckType.Check ? "点检" : "巡检"), checkCircle.ID, checkCircle.ORG_ID, UserId, userName, dtNowEdit, dtNowEdit.AddDays(1), 1, (itemDetail.CHECKTYPE == CheckType.Check ? "DM010" : "DM032")));
 | 
						|
 | 
						|
        //                                #region   检查明细 检查人员
 | 
						|
 | 
						|
        //                                foreach (var itemDetailUser in itemDetail.Nav_ListUser)
 | 
						|
        //                                {
 | 
						|
        //                                    listCheckUserSend.Add(new T_DM_DEVICE_CHECK_USER()
 | 
						|
        //                                    {
 | 
						|
        //                                        ID = Guid.NewGuid(),
 | 
						|
        //                                        CHECK_ID = CheckId,// CheckDetail.ID,
 | 
						|
        //                                        USER_ID = itemDetailUser.USER_ID,
 | 
						|
        //                                        ISMAIN = itemDetailUser.ISMAIN,
 | 
						|
        //                                        ISCHECK = itemDetailUser.ISMAIN ? true : false,//记录人 默认 确认过
 | 
						|
        //                                        IS_DELETED = false,
 | 
						|
        //                                        ORG_ID = itemDetailUser.ORG_ID,
 | 
						|
        //                                        //ENTITY_ORG_TPYE = ,
 | 
						|
        //                                        //FORM_ID = ,
 | 
						|
        //                                        //FLOW_STATUS = ,
 | 
						|
        //                                        //FLOW_SEND_STATUS = ,
 | 
						|
        //                                        //FLOW_ID = ,
 | 
						|
        //                                        CREATE_TIME = dtNowEdit,
 | 
						|
        //                                        MODIFY_TIME = dtNowEdit,
 | 
						|
        //                                        //CREATER_ID = ,
 | 
						|
        //                                        //MODIFIER_ID = ,
 | 
						|
        //                                    });
 | 
						|
        //                                }
 | 
						|
 | 
						|
        //                                #endregion
 | 
						|
 | 
						|
        //                            }
 | 
						|
 | 
						|
        //                            #region 点检、巡检 检查明细
 | 
						|
 | 
						|
        //                            CheckDetail = new T_DM_DEVICE_CHECK_DETAIL()
 | 
						|
        //                            {
 | 
						|
        //                                ID = Guid.NewGuid(),
 | 
						|
        //                                DEVICE_CHECK_ID = CheckId,
 | 
						|
        //                                ROW_NO = RowIndex,
 | 
						|
        //                                DEVICEBASE_ID = item.ID,
 | 
						|
        //                                ITEM1 = itemDetail.ITEM1,
 | 
						|
        //                                ITEM2 = itemDetail.ITEM2,
 | 
						|
        //                                ITEM3 = itemDetail.ITEM3,
 | 
						|
        //                                //CHECK_VALUE = ,
 | 
						|
        //                                ////DESCRIPTION = ,
 | 
						|
        //                                IS_DELETED = false,
 | 
						|
        //                                ORG_ID = itemDetail.ORG_ID,
 | 
						|
        //                                //ENTITY_ORG_TPYE = ,
 | 
						|
        //                                //FORM_ID = ,
 | 
						|
        //                                //FLOW_STATUS = ,
 | 
						|
        //                                //FLOW_SEND_STATUS = ,
 | 
						|
        //                                //FLOW_ID = ,
 | 
						|
        //                                CREATE_TIME = dtNowEdit,
 | 
						|
        //                                MODIFY_TIME = dtNowEdit,
 | 
						|
        //                                //CREATER_ID = ,
 | 
						|
        //                                //MODIFIER_ID = ,
 | 
						|
        //                                BASECHECK_ID = itemDetail.ID,
 | 
						|
        //                            };
 | 
						|
        //                            listCheckDetailSend.Add(CheckDetail);
 | 
						|
 | 
						|
        //                            #endregion
 | 
						|
 | 
						|
        //                            RowIndex++;
 | 
						|
        //                            lastCheckType = itemDetail.CHECKTYPE;//检查类型赋值 
 | 
						|
        //                        }
 | 
						|
        //                    }
 | 
						|
        //                }
 | 
						|
        //            }
 | 
						|
 | 
						|
        //            #region      跑批信息修改
 | 
						|
 | 
						|
        //            T_FM_SYNC_TASK task = null;
 | 
						|
        //            task = GetEntity<T_FM_SYNC_TASK>(filter.Keyword);
 | 
						|
        //            if (task != null)
 | 
						|
        //            {
 | 
						|
        //                task.UPDATE_SUCCES_TIME = DateTime.Now;//上次同步结束时间
 | 
						|
        //                task.SYNC_PARAM = "";//清空参数
 | 
						|
        //            }
 | 
						|
 | 
						|
        //            #endregion
 | 
						|
 | 
						|
        //            this.UnifiedCommit(() =>
 | 
						|
        //            {
 | 
						|
        //                if (task != null)
 | 
						|
        //                    UpdateEntityNoCommit(task);//跑批信息
 | 
						|
 | 
						|
        //                //点检 巡检
 | 
						|
        //                if (listCheckSend != null && listCheckSend.Any())
 | 
						|
        //                    BantchSaveEntityNoCommit(listCheckSend);
 | 
						|
        //                if (listCheckDetailSend != null && listCheckDetailSend.Any())
 | 
						|
        //                    BantchSaveEntityNoCommit(listCheckDetailSend);
 | 
						|
        //                if (listCheckUserSend != null && listCheckUserSend.Any())
 | 
						|
        //                    BantchSaveEntityNoCommit(listCheckUserSend);
 | 
						|
        //                if (listTask != null && listTask.Any())
 | 
						|
        //                    BantchSaveEntityNoCommit(listTask);
 | 
						|
 | 
						|
        //                //维保
 | 
						|
        //                if (listCheckUser != null && listCheckUser.Any())
 | 
						|
        //                    BantchSaveEntityNoCommit(listCheckUser);
 | 
						|
        //                if (listCheck != null && listCheck.Any())
 | 
						|
        //                    BantchSaveEntityNoCommit(listCheck);
 | 
						|
        //                if (listCheckDetail != null && listCheckDetail.Any())
 | 
						|
        //                    BantchSaveEntityNoCommit(listCheckDetail);
 | 
						|
        //                if (listTaskMaintCheck != null && listTaskMaintCheck.Any())
 | 
						|
        //                    BantchSaveEntityNoCommit(listTaskMaintCheck);
 | 
						|
        //            });
 | 
						|
 | 
						|
        //            int Count = ((listCheckSend != null && listCheckSend.Any()) ? listCheckSend.Count : 0) + ((listCheckDetailSend != null && listCheckDetailSend.Any()) ? listCheckDetailSend.Count : 0) + ((listCheckUserSend != null && listCheckUserSend.Any()) ? listCheckUserSend.Count : 0) + ((listTask != null && listTask.Any()) ? listTask.Count : 0) + ((listCheckUser != null && listCheckUser.Any()) ? listCheckUser.Count : 0) + ((listCheck != null && listCheck.Any()) ? listCheck.Count : 0) + ((listCheckDetail != null && listCheckDetail.Any()) ? listCheckDetail.Count : 0) + ((listTaskMaintCheck != null && listTaskMaintCheck.Any()) ? listTaskMaintCheck.Count : 0);
 | 
						|
        //            SyncLogDetailService.InsertSyncLogDetail(HttpContext.Items, HttpContext.TraceIdentifier, filter.OrgId, Count, filter.Parameter1, SyncLogType.BSCreateCheckPlanSet);
 | 
						|
 | 
						|
        //        }
 | 
						|
        //        catch (Exception ex)
 | 
						|
        //        {
 | 
						|
        //            if (!string.IsNullOrEmpty(ex.StackTrace))
 | 
						|
        //                throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
 | 
						|
        //            else
 | 
						|
        //                throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
 | 
						|
        //        }
 | 
						|
        //        return true;
 | 
						|
        //    });
 | 
						|
        //}
 | 
						|
 | 
						|
        #region HMR
 | 
						|
        /// <summary>
 | 
						|
        /// 触发设备设施检测检验
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        [HttpPost, Route("InspectionSync")]
 | 
						|
        public JsonActionResult<bool> InspectionSync([FromBody] KeywordFilter filter)
 | 
						|
        {
 | 
						|
            return SafeExecute<bool>(() =>
 | 
						|
            {
 | 
						|
                try
 | 
						|
                {
 | 
						|
                    var dtNow = DateTime.Now;
 | 
						|
                    var month = dtNow.Month;
 | 
						|
                    var day = dtNow.Day;
 | 
						|
                    var time = dtNow.TimeOfDay;
 | 
						|
                    var week = dtNow.DayOfWeek;
 | 
						|
                    List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
 | 
						|
                    List<T_PT_TIME_SET> timeSetLists = new List<T_PT_TIME_SET>();
 | 
						|
                    T_DM_DETECTION_INSPECTION_RECORD record = null;
 | 
						|
                    var newFilter = new BaseFilter(filter.OrgId);
 | 
						|
                    newFilter.SelectField = new List<string> { "PLANCHECKFREQUENCY", "MONTH", "DATA", "WEEKDATA", "RUNSETTIME", "DEVICE_BASE_ID", "MineType", "POST_ID", "DEPARTMENT_ID", "DEVICE_ID" };
 | 
						|
                    var timeSets = GetEntities<T_PT_TIME_SET>(i => i.SET_TYPE == PTSetTypeEnum.Inspection, newFilter);
 | 
						|
                    if (timeSets != null && timeSets.Any())
 | 
						|
                    {
 | 
						|
                        foreach (var timeSet in timeSets)
 | 
						|
                        {
 | 
						|
                            switch (timeSet.PLANCHECKFREQUENCY)
 | 
						|
                            {
 | 
						|
                                //case BSPLANCHECKFREQUENCYEnum.OneTime:
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Year:
 | 
						|
                                    if (timeSet.MONTH == month && timeSet.DATA == day)
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.HalfYear:
 | 
						|
                                    if ((timeSet.MONTH == month && timeSet.DATA == day) || ((timeSet.MONTH + 6) == month && (timeSet.DATA + 183) == day))
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Date:
 | 
						|
                                    timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Week:
 | 
						|
                                    if (timeSet.WEEKDATA != null && (int)timeSet.WEEKDATA.Value == (int)week)
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Month:
 | 
						|
                                    if (timeSet.DATA == day)
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Quarter:
 | 
						|
                                    if (timeSet.MONTH == 1)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 1 || month == 4 || month == 7 || month == 10) && timeSet.DATA == day)
 | 
						|
                                            timeSetLists.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    if (timeSet.MONTH == 2)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 2 || month == 5 || month == 8 || month == 11) && timeSet.DATA == day)
 | 
						|
                                            timeSetLists.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    if (timeSet.MONTH == 3)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 3 || month == 6 || month == 9 || month == 12) && timeSet.DATA == day)
 | 
						|
                                            timeSetLists.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    break;
 | 
						|
                                default:
 | 
						|
                                    break;
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    
 | 
						|
                    if (timeSetLists!=null && timeSetLists.Any())
 | 
						|
                    {
 | 
						|
                        var deviceIds = timeSetLists.Select(t => t.DEVICE_ID).Distinct().ToList();
 | 
						|
                        var deviceBases = this.GetEntities<T_DM_DEVICE_BASE>(t => deviceIds.Contains(t.DEVICE_ID), new BaseFilter(filter.OrgId));
 | 
						|
                        var deviceBaseIds = deviceBases.Select(t => t.ID).ToList();
 | 
						|
                        var records = this.GetEntities<T_DM_DETECTION_INSPECTION_RECORD>(t => deviceBaseIds.Contains((Guid)t.DEVICE_BASE_ID) && t.CREATE_TIME >= dtNow.Date, new BaseFilter(filter.OrgId));
 | 
						|
                        var departIds = timeSetLists.Select(t => t.DEPARTMENT_ID).Distinct().ToList();
 | 
						|
                        var postIds = timeSetLists.Select(t => t.POST_ID).Distinct().ToList();
 | 
						|
                        var users = this.GetEntities<T_FM_USER>(t => departIds.Contains(t.ID) || (t.Nav_Person != null && postIds.Contains(t.Nav_Person.POST_ID)), new BaseFilter(filter.OrgId), "Nav_Person");
 | 
						|
                        foreach (var item in timeSetLists)
 | 
						|
                        {
 | 
						|
                            var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.Nav_Person.POST_ID == item.POST_ID);
 | 
						|
                            var devices = deviceBases.Where(t => t.DEVICE_ID == item.DEVICE_ID).ToList();
 | 
						|
                            foreach (var device in devices)
 | 
						|
                            {
 | 
						|
                                var recordExist = records.FirstOrDefault(t => t.DEVICE_BASE_ID == device.ID);
 | 
						|
                                if (userInfo != null && recordExist == null)
 | 
						|
                                {
 | 
						|
                                    var deviceBase = deviceBases.FirstOrDefault(t => t.ID == device.ID);
 | 
						|
                                    record = new T_DM_DETECTION_INSPECTION_RECORD();
 | 
						|
                                    record.ORG_ID = filter.OrgId;
 | 
						|
                                    record.STATUS = PFStandardStatus.Draft;
 | 
						|
                                    record.TIME = DateTime.Now;
 | 
						|
                                    record.RESULT = DMInspectionResultEnum.不合格;
 | 
						|
                                    record.USER_ID = userInfo?.ID;
 | 
						|
                                    record.DEPARTMENT_ID = item.DEPARTMENT_ID;
 | 
						|
                                    record.PLANCHECKFREQUENCY = item.PLANCHECKFREQUENCY;
 | 
						|
                                    record.MineType = item.MineType;
 | 
						|
                                    record.DEVICE_BASE_ID = deviceBase.ID;
 | 
						|
                                    record.MACHINE_CODE = deviceBase?.MACHINE_CODE;
 | 
						|
                                    record.SPEC = deviceBase?.SPEC;
 | 
						|
                                    record.POSITION = deviceBase?.POSITION;
 | 
						|
                                    sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("设备设施检测检验记录", record.ID, filter.GetOrgId(), userInfo.ID, userInfo.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum.消息, "DM012"));
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    UnifiedCommit(() =>
 | 
						|
                    {
 | 
						|
                        if (record != null)
 | 
						|
                            UpdateEntityNoCommit(record);
 | 
						|
                        if (sendNotices != null && sendNotices.Any())
 | 
						|
                            BantchSaveEntityNoCommit(sendNotices);
 | 
						|
                    });
 | 
						|
                }
 | 
						|
                catch (Exception ex)
 | 
						|
                {
 | 
						|
                    if (!string.IsNullOrEmpty(ex.StackTrace))
 | 
						|
                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
 | 
						|
                    else
 | 
						|
                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
 | 
						|
                }
 | 
						|
                return true;
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 触发设备设施归还记录
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        [HttpPost, Route("DeviceReturnSync")]
 | 
						|
        public JsonActionResult<bool> DeviceReturnSync([FromBody] KeywordFilter filter)
 | 
						|
        {
 | 
						|
            return SafeExecute<bool>(() =>
 | 
						|
            {
 | 
						|
                try
 | 
						|
                {
 | 
						|
                    var dtNow = DateTime.Now;
 | 
						|
                    List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
 | 
						|
                    var details = GetEntities<T_DM_DEVICE_ISSUE_DETAIL>(i => i.RETURN_STATUS == DMIsReturnEnum.NG && i.RETURN_TIME.Value.Date == dtNow.Date, new BaseFilter(filter.OrgId), "Nav_User", "Nav_DeviceBase");
 | 
						|
                    if (details != null && details.Any())
 | 
						|
                    {
 | 
						|
                        foreach (var item in details)
 | 
						|
                        {
 | 
						|
                            sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("设备" + item.Nav_DeviceBase.NAME + "归还记录", item.ID, filter.GetOrgId(), item.USER_ID.Value, item.Nav_User.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum.消息, "DM026"));
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    UnifiedCommit(() =>
 | 
						|
                    {
 | 
						|
                        if (sendNotices != null && sendNotices.Any())
 | 
						|
                            BantchSaveEntityNoCommit(sendNotices);
 | 
						|
                    });
 | 
						|
                }
 | 
						|
                catch (Exception ex)
 | 
						|
                {
 | 
						|
                    if (!string.IsNullOrEmpty(ex.StackTrace))
 | 
						|
                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
 | 
						|
                    else
 | 
						|
                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
 | 
						|
                }
 | 
						|
                return true;
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 触发设备设施点检/巡检
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        [HttpPost, Route("DeviceCheckSync")]
 | 
						|
        public JsonActionResult<bool> DeviceCheckSync([FromBody] KeywordFilter filter)
 | 
						|
        {
 | 
						|
            return SafeExecute<bool>(() =>
 | 
						|
            {
 | 
						|
                try
 | 
						|
                {
 | 
						|
                    var dtNow = DateTime.Now;
 | 
						|
                    var month = dtNow.Month;
 | 
						|
                    var day = dtNow.Day;
 | 
						|
                    var time = dtNow.TimeOfDay;
 | 
						|
                    var week = dtNow.DayOfWeek;
 | 
						|
                    List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
 | 
						|
                    List<T_DM_DEVICE_CHECK> checks = new List<T_DM_DEVICE_CHECK>();
 | 
						|
                    List<T_DM_DEVICE_CHECK_DETAIL> details = new List<T_DM_DEVICE_CHECK_DETAIL>();
 | 
						|
                    List<T_DM_DEVICE_CHECK_USER> checkUsers = new List<T_DM_DEVICE_CHECK_USER>();
 | 
						|
                    List<T_DM_TIME_RUN> sets = new List<T_DM_TIME_RUN>();
 | 
						|
                    List<T_FM_DEPARTMENT_SCHEDULING> shiftClassList = new List<T_FM_DEPARTMENT_SCHEDULING>();
 | 
						|
                    var timeSets = GetEntities<T_DM_TIME_RUN>(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_Contents", "Nav_DeviceBase");
 | 
						|
                    if (timeSets != null && timeSets.Any())
 | 
						|
                    {
 | 
						|
                        foreach (var timeSet in timeSets)
 | 
						|
                        {
 | 
						|
                            switch (timeSet.PLANCHECKFREQUENCY)
 | 
						|
                            {
 | 
						|
                                //case BSPLANCHECKFREQUENCYEnum.OneTime:
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Year:
 | 
						|
                                    if (timeSet.MONTH == month && timeSet.DATA == day)
 | 
						|
                                        sets.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.HalfYear:
 | 
						|
                                    if ((timeSet.MONTH == month && timeSet.DATA == day) || ((timeSet.MONTH + 6) == month && (timeSet.DATA + 183) == day))
 | 
						|
                                        sets.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Date:
 | 
						|
                                        sets.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Week:
 | 
						|
                                    if (timeSet.WEEKDATA != null && (int)timeSet.WEEKDATA.Value == (int)week)
 | 
						|
                                        sets.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Month:
 | 
						|
                                    if (timeSet.DATA == day)
 | 
						|
                                        sets.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Quarter:
 | 
						|
                                    if (timeSet.MONTH == 1)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 1 || month == 4 || month == 7 || month == 10) && timeSet.DATA == day)
 | 
						|
                                            sets.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    if (timeSet.MONTH == 2)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 2 || month == 5 || month == 8 || month == 11) && timeSet.DATA == day)
 | 
						|
                                            sets.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    if (timeSet.MONTH == 3)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 3 || month == 6 || month == 9 || month == 12) && timeSet.DATA == day)
 | 
						|
                                            sets.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    break;
 | 
						|
                                default:
 | 
						|
                                    break;
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if (sets!=null && sets.Any())
 | 
						|
                    {
 | 
						|
                        var deviceIds = timeSets.Select(t => t.DEVICE_ID).Distinct().ToList();
 | 
						|
                        var deviceBases = this.GetEntities<T_DM_DEVICE_BASE>(t => deviceIds.Contains(t.DEVICE_ID) && t.DEVICE_STATUS == DMDeviceStatusEnum.使用中, new BaseFilter(filter.OrgId));
 | 
						|
                        var userInfos = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_Person");
 | 
						|
                        TimeSpan halfHour = TimeSpan.FromHours(0.5); // 半小时的时间间隔
 | 
						|
                        var departmentIds = deviceBases.Select(t => t.DEPARTMENT_ID).Distinct().ToList();
 | 
						|
                        var teamInfos = this.GetEntities<T_FM_TEAM>(t => departmentIds.Contains(t.DEPARTMENT_ID), new BaseFilter(filter.OrgId));
 | 
						|
                        var teamIds = teamInfos.Select(t => t.ID).ToList();
 | 
						|
                        //查排班
 | 
						|
                        shiftClassList = this.GetEntities<T_FM_DEPARTMENT_SCHEDULING>(s => s.DATE_TIME.Date == dtNow.Date && s.START_TIME != s.END_TIME && s.TEAM_ID != null && teamIds.Contains((Guid)s.TEAM_ID) && s.RUN_CHECKRECORD == 0, new BaseFilter(filter.OrgId), "Nav_DepartmentSchedulingDetail.Nav_Person").ToList();
 | 
						|
                        //点检按排班触发
 | 
						|
                        var checkSets = sets.Where(t => t.SET_TYPE == DMSetTypeEnum.Check).ToList();
 | 
						|
                        if (checkSets != null && checkSets.Any())
 | 
						|
                        {
 | 
						|
                            foreach (var item in checkSets)
 | 
						|
                            {
 | 
						|
                                var devices = deviceBases.Where(t => t.DEVICE_ID == item.DEVICE_ID).ToList();
 | 
						|
                                foreach (var device in devices)
 | 
						|
                                {
 | 
						|
                                    if (device != null && device.USER_ID != null)
 | 
						|
                                    {
 | 
						|
                                        var user = userInfos.FirstOrDefault(t => t.ID == device.USER_ID);
 | 
						|
                                        var currentTeamId = teamInfos.FirstOrDefault(t => t.DEPARTMENT_ID == device.DEPARTMENT_ID)?.ID;
 | 
						|
                                        var currentShift = shiftClassList.FirstOrDefault(t => t.TEAM_ID == currentTeamId);
 | 
						|
                                        if (currentShift != null)
 | 
						|
                                        {
 | 
						|
                                            DateTime start = currentShift.START_TIME - halfHour;//排班开始时间的前半小时
 | 
						|
                                            if (dtNow > start && dtNow < currentShift.START_TIME)//跑批半小时一次,在开始时间前半小时到开始时间之间就触发
 | 
						|
                                            {
 | 
						|
                                                //找到排班里面该岗位的人
 | 
						|
                                                var personInfo = currentShift.Nav_DepartmentSchedulingDetail.FirstOrDefault(t => t.PERSON_ID  == user?.PERSON_ID);
 | 
						|
                                                if (personInfo != null)
 | 
						|
                                                {
 | 
						|
                                                    T_DM_DEVICE_CHECK check = new T_DM_DEVICE_CHECK();
 | 
						|
                                                    check.MineType = item.MineType;
 | 
						|
                                                    check.ORG_ID = filter.OrgId;
 | 
						|
                                                    check.DEVICEBASE_ID = device.ID;
 | 
						|
                                                    check.CHECKTYPE = CheckType.Check;
 | 
						|
                                                    check.CODE = dtNow.ToString("yyyyMMddHHmmss") + new Random().Next().ToString();
 | 
						|
                                                    check.NAME = device?.NAME + ("点检") + dtNow.ToString("MMdd");
 | 
						|
                                                    check.RECORD_DATE = dtNow;
 | 
						|
                                                    check.MACHINE_NAME = device?.NAME;
 | 
						|
                                                    check.SPEC = device?.SPEC;
 | 
						|
                                                    check.MACHINE_CODE = device?.MACHINE_CODE;
 | 
						|
                                                    check.POSITION_NAME = device?.POSITION;
 | 
						|
                                                    check.STATUS = PFStandardStatus.Draft;
 | 
						|
                                                    checks.Add(check);
 | 
						|
                                                    T_DM_DEVICE_CHECK_USER checkuser = new T_DM_DEVICE_CHECK_USER();
 | 
						|
                                                    checkuser.ORG_ID = filter.OrgId;
 | 
						|
                                                    checkuser.CHECK_ID = check.ID;
 | 
						|
                                                    checkuser.USER_ID = user.ID;
 | 
						|
                                                    checkuser.ISMAIN = true;
 | 
						|
                                                    checkUsers.Add(checkuser);
 | 
						|
                                                    if (item.Nav_Contents.Any())
 | 
						|
                                                    {
 | 
						|
                                                        var i = 0;
 | 
						|
                                                        foreach (var content in item.Nav_Contents)
 | 
						|
                                                        {
 | 
						|
                                                            T_DM_DEVICE_CHECK_DETAIL detail = new T_DM_DEVICE_CHECK_DETAIL();
 | 
						|
                                                            detail.ORG_ID = filter.OrgId;
 | 
						|
                                                            detail.DEVICE_CHECK_ID = check.ID;
 | 
						|
                                                            detail.DEVICEBASE_ID = device.ID;
 | 
						|
                                                            detail.ROW_NO = i + 1;
 | 
						|
                                                            detail.ITEM1 = content.POSITION;
 | 
						|
                                                            detail.ITEM2 = content.CONTENT;
 | 
						|
                                                            detail.ITEM3 = content.STANDARD;
 | 
						|
                                                            details.Add(detail);
 | 
						|
                                                            i++;
 | 
						|
                                                        }
 | 
						|
                                                    }
 | 
						|
                                                    sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("设备设施点检", check.ID, check.ORG_ID, user.ID, user.NAME, dtNow, dtNow.AddDays(4), 1, "DM010"));
 | 
						|
                                                    currentShift.RUN_CHECKRECORD = FMTureOrFalse.是;
 | 
						|
                                                }
 | 
						|
                                            }
 | 
						|
                                        }
 | 
						|
                                    }
 | 
						|
                                    //if (device.USE_DEPARTMENT_ID != null)
 | 
						|
                                    //{
 | 
						|
                                    //    var currentTeamId = teamInfos.FirstOrDefault(t => t.DEPARTMENT_ID == device.USE_DEPARTMENT_ID).ID;
 | 
						|
                                    //    var currentShift = shiftClassList.FirstOrDefault(t => t.TEAM_ID == currentTeamId);
 | 
						|
                                    //    if (currentShift != null)
 | 
						|
                                    //    {
 | 
						|
                                    //        DateTime start = currentShift.START_TIME - halfHour;//排班开始时间的前半小时
 | 
						|
                                    //        if (dtNow > start && dtNow < currentShift.START_TIME)//跑批半小时一次,在开始时间前半小时到开始时间之间就触发
 | 
						|
                                    //        {
 | 
						|
                                    //            //找到排班里面该岗位的人
 | 
						|
                                    //            var personInfo = currentShift.Nav_DepartmentSchedulingDetail.Where(t => t.Nav_Person != null && t.Nav_Person.POST_ID == device.USE_USER_POST_ID).ToList();
 | 
						|
                                    //            if (personInfo != null && personInfo.Any())
 | 
						|
                                    //            {
 | 
						|
                                    //                var personIds = personInfo.Select(t => t.PERSON_ID).ToList();
 | 
						|
                                    //                var users = userInfos.Where(t => personIds.Contains((Guid)t.PERSON_ID)).ToList();
 | 
						|
                                    //                var userIds = users.Select(t => t.ID).ToList();
 | 
						|
                                    //                var userNames = users.Select(t => t.NAME).ToList();
 | 
						|
                                    //                T_DM_DEVICE_CHECK check = new T_DM_DEVICE_CHECK();
 | 
						|
                                    //                check.MineType = item.MineType;
 | 
						|
                                    //                check.ORG_ID = filter.OrgId;
 | 
						|
                                    //                check.DEVICEBASE_ID = device.ID;
 | 
						|
                                    //                check.CHECKTYPE = CheckType.Check;
 | 
						|
                                    //                check.CODE = dtNow.ToString("yyyyMMddHHmmss") + new Random().Next().ToString();
 | 
						|
                                    //                check.NAME = device?.NAME + ("点检") + dtNow.ToString("MMdd");
 | 
						|
                                    //                check.RECORD_DATE = dtNow;
 | 
						|
                                    //                check.MACHINE_NAME = device?.NAME;
 | 
						|
                                    //                check.SPEC = device?.SPEC;
 | 
						|
                                    //                check.MACHINE_CODE = device?.CODE;
 | 
						|
                                    //                check.POSITION_NAME = device?.POSITION;
 | 
						|
                                    //                check.STATUS = PFStandardStatus.Draft;
 | 
						|
                                    //                checks.Add(check);
 | 
						|
                                    //                if (item.Nav_Contents.Any())
 | 
						|
                                    //                {
 | 
						|
                                    //                    var i = 0;
 | 
						|
                                    //                    foreach (var content in item.Nav_Contents)
 | 
						|
                                    //                    {
 | 
						|
                                    //                        T_DM_DEVICE_CHECK_DETAIL detail = new T_DM_DEVICE_CHECK_DETAIL();
 | 
						|
                                    //                        detail.ORG_ID = filter.OrgId;
 | 
						|
                                    //                        detail.DEVICE_CHECK_ID = check.ID;
 | 
						|
                                    //                        detail.DEVICEBASE_ID = device.ID;
 | 
						|
                                    //                        detail.ROW_NO = i + 1;
 | 
						|
                                    //                        detail.ITEM1 = content.POSITION;
 | 
						|
                                    //                        detail.ITEM2 = content.CONTENT;
 | 
						|
                                    //                        detail.ITEM3 = content.STANDARD;
 | 
						|
                                    //                        details.Add(detail);
 | 
						|
                                    //                        i++;
 | 
						|
                                    //                    }
 | 
						|
                                    //                }
 | 
						|
                                    //                sendNotices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("设备设施点检", check.ID, check.ORG_ID, userIds, userNames, dtNow, dtNow.AddDays(1), 1, "DM010"));
 | 
						|
                                    //                currentShift.RUN_CHECKRECORD = FMTureOrFalse.是;
 | 
						|
                                    //            }
 | 
						|
                                    //        }
 | 
						|
                                    //    }
 | 
						|
                                    //}
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                        //巡检按排班触发
 | 
						|
                        var checkCircuitSets = sets.Where(t => t.SET_TYPE == DMSetTypeEnum.CheckCircuit).ToList();
 | 
						|
                        if (checkCircuitSets != null && checkCircuitSets.Any())
 | 
						|
                        {
 | 
						|
                            var departments = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0 && t.USER_ID != null, new BaseFilter(filter.OrgId));
 | 
						|
                            foreach (var item in checkCircuitSets)
 | 
						|
                            {
 | 
						|
                                var devices = deviceBases.Where(t => t.DEVICE_ID == item.DEVICE_ID).ToList();
 | 
						|
                                foreach (var device in devices)
 | 
						|
                                {
 | 
						|
                                    if (device != null && device.DEPARTMENT_ID != null)
 | 
						|
                                    {
 | 
						|
                                        var currentTeamId = teamInfos.FirstOrDefault(t => t.DEPARTMENT_ID == device.DEPARTMENT_ID)?.ID;
 | 
						|
                                        var currentShift = shiftClassList.FirstOrDefault(t => t.TEAM_ID == currentTeamId);
 | 
						|
                                        if (currentShift != null)
 | 
						|
                                        {
 | 
						|
                                            DateTime start = currentShift.START_TIME - halfHour;//排班开始时间的前半小时
 | 
						|
                                            if (dtNow > start && dtNow < currentShift.START_TIME)//跑批半小时一次,在开始时间前半小时到开始时间之间就触发
 | 
						|
                                            {
 | 
						|
                                                //找到排班里面该岗位的人,触发给当前层级负责人
 | 
						|
                                                var deparId = (Guid)device.DEPARTMENT_ID;
 | 
						|
                                                var userInfo = departments.FirstOrDefault(t => t.ID == deparId);
 | 
						|
                                                if (userInfo != null)
 | 
						|
                                                {
 | 
						|
                                                    var user = userInfos.FirstOrDefault(t => t.ID == userInfo.USER_ID);
 | 
						|
                                                    T_DM_DEVICE_CHECK check = new T_DM_DEVICE_CHECK();
 | 
						|
                                                    check.MineType = item.MineType;
 | 
						|
                                                    check.ORG_ID = filter.OrgId;
 | 
						|
                                                    check.DEVICEBASE_ID = device.ID;
 | 
						|
                                                    check.CHECKTYPE = CheckType.CheckCircuit;
 | 
						|
                                                    check.CODE = dtNow.ToString("yyyyMMddHHmmss") + new Random().Next().ToString();
 | 
						|
                                                    check.NAME = device?.NAME + ("巡检") + dtNow.ToString("MMdd");
 | 
						|
                                                    check.RECORD_DATE = dtNow;
 | 
						|
                                                    check.MACHINE_NAME = device?.NAME;
 | 
						|
                                                    check.SPEC = device?.SPEC;
 | 
						|
                                                    check.MACHINE_CODE = device?.MACHINE_CODE;
 | 
						|
                                                    check.POSITION_NAME = device?.POSITION;
 | 
						|
                                                    check.STATUS = PFStandardStatus.Draft;
 | 
						|
                                                    checks.Add(check);
 | 
						|
                                                    T_DM_DEVICE_CHECK_USER checkuser = new T_DM_DEVICE_CHECK_USER();
 | 
						|
                                                    checkuser.ORG_ID = filter.OrgId;
 | 
						|
                                                    checkuser.CHECK_ID = check.ID;
 | 
						|
                                                    checkuser.USER_ID = user.ID;
 | 
						|
                                                    checkuser.ISMAIN = true;
 | 
						|
                                                    checkUsers.Add(checkuser);
 | 
						|
                                                    if (item.Nav_Contents.Any())
 | 
						|
                                                    {
 | 
						|
                                                        var i = 0;
 | 
						|
                                                        foreach (var content in item.Nav_Contents)
 | 
						|
                                                        {
 | 
						|
                                                            T_DM_DEVICE_CHECK_DETAIL detail = new T_DM_DEVICE_CHECK_DETAIL();
 | 
						|
                                                            detail.ORG_ID = filter.OrgId;
 | 
						|
                                                            detail.DEVICE_CHECK_ID = check.ID;
 | 
						|
                                                            detail.DEVICEBASE_ID = device.ID;
 | 
						|
                                                            detail.ROW_NO = i + 1;
 | 
						|
                                                            detail.ITEM1 = content.POSITION;
 | 
						|
                                                            detail.ITEM2 = content.CONTENT;
 | 
						|
                                                            detail.ITEM3 = content.STANDARD;
 | 
						|
                                                            details.Add(detail);
 | 
						|
                                                            i++;
 | 
						|
                                                        }
 | 
						|
                                                    }
 | 
						|
                                                    sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("设备设施巡检", check.ID, check.ORG_ID, user.ID, user?.NAME, dtNow, dtNow.AddDays(4), 1, "DM032"));
 | 
						|
                                                    currentShift.RUN_CHECKRECORD = FMTureOrFalse.是;
 | 
						|
                                                }
 | 
						|
                                            }
 | 
						|
                                        }
 | 
						|
                                    }
 | 
						|
                                } 
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    UnifiedCommit(() =>
 | 
						|
                    {
 | 
						|
                        if (checks != null && checks.Any())
 | 
						|
                            BantchSaveEntityNoCommit(checks);
 | 
						|
                        if (details != null && details.Any())
 | 
						|
                            BantchSaveEntityNoCommit(details);
 | 
						|
                        if (checkUsers != null && checkUsers.Any())
 | 
						|
                            BantchSaveEntityNoCommit(checkUsers);
 | 
						|
                        if (sendNotices != null && sendNotices.Any())
 | 
						|
                            BantchSaveEntityNoCommit(sendNotices);
 | 
						|
                        if (shiftClassList != null && shiftClassList.Any())
 | 
						|
                            BantchSaveEntityNoCommit(shiftClassList);
 | 
						|
                    });
 | 
						|
                }
 | 
						|
                catch (Exception ex)
 | 
						|
                {
 | 
						|
                    if (!string.IsNullOrEmpty(ex.StackTrace))
 | 
						|
                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
 | 
						|
                    else
 | 
						|
                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
 | 
						|
                }
 | 
						|
                return true;
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 触发设备设施维保计划
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        [HttpPost, Route("MaintenancePlanSync")]
 | 
						|
        public JsonActionResult<bool> MaintenancePlanSync([FromBody] KeywordFilter filter)
 | 
						|
        {
 | 
						|
            return SafeExecute<bool>(() =>
 | 
						|
            {
 | 
						|
                try
 | 
						|
                {
 | 
						|
                    var dtNow = DateTime.Now;
 | 
						|
                    var month = dtNow.Month;
 | 
						|
                    var day = dtNow.Day;
 | 
						|
                    var time = dtNow.TimeOfDay;
 | 
						|
                    var week = dtNow.DayOfWeek;
 | 
						|
                    List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
 | 
						|
                    List<T_DM_DEVICE_MAINTENANCE_PLAN> plans = new List<T_DM_DEVICE_MAINTENANCE_PLAN>();
 | 
						|
                    List<T_DM_DEVICE_MAINTENANCE_PLAN_DETAIL> details = new List<T_DM_DEVICE_MAINTENANCE_PLAN_DETAIL>();
 | 
						|
                    List<T_PT_TIME_SET> timeSetLists = new List<T_PT_TIME_SET>();
 | 
						|
                    var timeSets = GetEntities<T_PT_TIME_SET>(i => i.ENABLE_STATUS == 0 && i.SET_TYPE == PTSetTypeEnum.MaintenancePlan,new BaseFilter(filter.OrgId));
 | 
						|
                    if (timeSets != null && timeSets.Any())
 | 
						|
                    {
 | 
						|
                        foreach (var timeSet in timeSets)
 | 
						|
                        {
 | 
						|
                            switch (timeSet.PLANCHECKFREQUENCY)
 | 
						|
                            {
 | 
						|
                                //case BSPLANCHECKFREQUENCYEnum.OneTime:
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Year:
 | 
						|
                                    if (timeSet.MONTH == month && timeSet.DATA == day)
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.HalfYear:
 | 
						|
                                    if ((timeSet.MONTH == month && timeSet.DATA == day) || ((timeSet.MONTH + 6) == month && (timeSet.DATA + 183) == day))
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Date:
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Week:
 | 
						|
                                    if (timeSet.WEEKDATA != null && (int)timeSet.WEEKDATA.Value == (int)week)
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Month:
 | 
						|
                                    if (timeSet.DATA == day)
 | 
						|
                                        timeSetLists.Add(timeSet);
 | 
						|
                                    break;
 | 
						|
                                case BSPLANCHECKFREQUENCYEnum.Quarter:
 | 
						|
                                    if (timeSet.MONTH == 1)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 1 || month == 4 || month == 7 || month == 10) && timeSet.DATA == day)
 | 
						|
                                            timeSetLists.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    if (timeSet.MONTH == 2)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 2 || month == 5 || month == 8 || month == 11) && timeSet.DATA == day)
 | 
						|
                                            timeSetLists.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    if (timeSet.MONTH == 3)
 | 
						|
                                    {
 | 
						|
                                        if ((month == 3 || month == 6 || month == 9 || month == 12) && timeSet.DATA == day)
 | 
						|
                                            timeSetLists.Add(timeSet);
 | 
						|
                                    }
 | 
						|
                                    break;
 | 
						|
                                default:
 | 
						|
                                    break;
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if (timeSetLists != null && timeSetLists.Any())
 | 
						|
                    {
 | 
						|
                        var minetypes = timeSetLists.Select(t => t.MineType).Distinct().ToList();
 | 
						|
                        var departmentIds = timeSetLists.Select(t => t.DEPARTMENT_ID).Distinct().ToList();
 | 
						|
                        //设备设施库
 | 
						|
                        var deviceBases = this.GetEntities<T_DM_DEVICE_BASE>(t => minetypes.Contains(t.MineType) && t.DEVICE_STATUS == DMDeviceStatusEnum.使用中, new BaseFilter(filter.OrgId));
 | 
						|
                        var userInfos = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && departmentIds.Contains(t.DEPARTMENT_ID), new BaseFilter(filter.OrgId),"Nav_Person");
 | 
						|
                        //判断是否今天已经触发过
 | 
						|
                        var planExists = this.GetEntities<T_DM_DEVICE_MAINTENANCE_PLAN>(t => minetypes.Contains(t.MineType) && t.CREATE_TIME >= dtNow.Date, new BaseFilter(filter.OrgId));
 | 
						|
                        var sync = Guid.NewGuid();
 | 
						|
                        foreach (var item in timeSetLists)
 | 
						|
                        {
 | 
						|
                            var user = userInfos.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.Nav_Person!=null && t.Nav_Person.POST_ID == item.POST_ID);
 | 
						|
                            var planExist = planExists.FirstOrDefault(t => t.MineType == item.MineType);
 | 
						|
                            if (user != null && planExist == null)
 | 
						|
                            {
 | 
						|
                                //触发维保计划表
 | 
						|
                                T_DM_DEVICE_MAINTENANCE_PLAN plan = new T_DM_DEVICE_MAINTENANCE_PLAN();
 | 
						|
                                plan.ID = Guid.NewGuid();
 | 
						|
                                plan.SYNC_ID = sync;
 | 
						|
                                plan.ORG_ID = filter.OrgId;
 | 
						|
                                plan.YEARPLAN = DateTime.Now.Year;
 | 
						|
                                plan.DEPARTMENT_ID = user?.DEPARTMENT_ID;
 | 
						|
                                plan.USER_ID = user?.ID;
 | 
						|
                                plan.MineType = item.MineType;
 | 
						|
                                plan.IS_RUN = 0;
 | 
						|
                                plans.Add(plan);
 | 
						|
                                //设备子表
 | 
						|
                                var devices = deviceBases.Where(t => t.MineType == item.MineType).ToList();
 | 
						|
                                if (devices != null && devices.Any())
 | 
						|
                                {
 | 
						|
                                    foreach (var device in devices)
 | 
						|
                                    {
 | 
						|
                                        T_DM_DEVICE_MAINTENANCE_PLAN_DETAIL detail = new T_DM_DEVICE_MAINTENANCE_PLAN_DETAIL();
 | 
						|
                                        detail.ORG_ID = filter.OrgId;
 | 
						|
                                        detail.DEVICE_MAINTENANCE_PLAN_ID = plan.ID;
 | 
						|
                                        detail.DEVICEBASE_ID = device.ID;
 | 
						|
                                        detail.COUNT = device.QTY;
 | 
						|
                                        detail.SPEC = device.SPEC;
 | 
						|
                                        detail.POSITION = device.POSITION;
 | 
						|
                                        detail.DEPARTMENT_ID = plan.DEPARTMENT_ID;
 | 
						|
                                        detail.USER_ID = plan.USER_ID;
 | 
						|
                                        detail.RUNSETTIME = DateTime.Now.Date;
 | 
						|
                                        detail.PLANCHECKFREQUENCY = item.PLANCHECKFREQUENCY;
 | 
						|
                                        details.Add(detail);
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                                //触发待办
 | 
						|
                                sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("设备设施维保年度计划表", plan.ID, plan.ORG_ID, user.ID, user.NAME, dtNow, dtNow.AddDays(1), 1, "DM008"));
 | 
						|
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    UnifiedCommit(() =>
 | 
						|
                    {
 | 
						|
                        if (plans != null && plans.Any())
 | 
						|
                            BantchSaveEntityNoCommit(plans);
 | 
						|
                        if (details != null && details.Any())
 | 
						|
                            BantchSaveEntityNoCommit(details);
 | 
						|
                        if (sendNotices != null && sendNotices.Any())
 | 
						|
                            BantchSaveEntityNoCommit(sendNotices);
 | 
						|
                    });
 | 
						|
                }
 | 
						|
                catch (Exception ex)
 | 
						|
                {
 | 
						|
                    if (!string.IsNullOrEmpty(ex.StackTrace))
 | 
						|
                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
 | 
						|
                    else
 | 
						|
                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
 | 
						|
                }
 | 
						|
                return true;
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 触发设备设施维保记录
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        [HttpPost, Route("MaintenanceRecordSync")]
 | 
						|
        public JsonActionResult<bool> MaintenanceRecordSync([FromBody] KeywordFilter filter)
 | 
						|
        {
 | 
						|
            return SafeExecute<bool>(() =>
 | 
						|
            {
 | 
						|
                try
 | 
						|
                {
 | 
						|
                    var dtNow = DateTime.Now;
 | 
						|
                    if (filter.Parameter1 != null)
 | 
						|
                    {
 | 
						|
                        dtNow = DateTime.Parse(filter.Parameter1);
 | 
						|
                    }
 | 
						|
                    var month = dtNow.Month;
 | 
						|
                    var day = dtNow.Day;
 | 
						|
                    var time = dtNow.TimeOfDay;
 | 
						|
                    var week = dtNow.DayOfWeek;
 | 
						|
                    List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
 | 
						|
                    List<T_DM_DEVICE_MAINTENANCE_CHECK> records = new List<T_DM_DEVICE_MAINTENANCE_CHECK>();
 | 
						|
                    List<T_DM_DEVICE_MAINTENANCE_PLAN_DETAIL> planDetails = new List<T_DM_DEVICE_MAINTENANCE_PLAN_DETAIL>();
 | 
						|
                    List<T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL> details = new List<T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL>();
 | 
						|
                    List<T_DM_DEVICE_MAINTENANCE_CHECK_FILE> files = new List<T_DM_DEVICE_MAINTENANCE_CHECK_FILE>();
 | 
						|
                    var classFilter = new BaseFilter(filter.GetOrgId());
 | 
						|
                    classFilter.IgnoreDataRule = true;
 | 
						|
                    var plans = GetEntities<T_DM_DEVICE_MAINTENANCE_PLAN>(i => i.YEARPLAN == DateTime.Now.Year && i.STATUS_APPROVE == PFStandardStatus.Archived && i.IS_RUN == 0, classFilter, "Nav_PlanDetails", "Nav_PlanDetails.Nav_DeviceBase", "Nav_Files");
 | 
						|
                    if (plans != null && dtNow.Hour == 8)
 | 
						|
                    {
 | 
						|
                        foreach (var item in plans)
 | 
						|
                        {
 | 
						|
                            if (item.Nav_PlanDetails != null && item.Nav_PlanDetails.Any())
 | 
						|
                            {
 | 
						|
                                foreach (var item2 in item.Nav_PlanDetails)
 | 
						|
                                {
 | 
						|
                                    var checkTime = dtNow;
 | 
						|
                                    if (item2.RUNSETTIME == DateTime.Parse("0001-01-01 00:00:00"))
 | 
						|
                                    {
 | 
						|
                                        checkTime = item2.RUNSETTIME;
 | 
						|
                                    }
 | 
						|
                                    else
 | 
						|
                                    {
 | 
						|
                                        checkTime = item2.RUNSETTIME.AddDays(-3);
 | 
						|
                                    }
 | 
						|
                                    switch (item2.PLANCHECKFREQUENCY)
 | 
						|
                                    {
 | 
						|
                                        //case BSPLANCHECKFREQUENCYEnum.OneTime:
 | 
						|
                                        case BSPLANCHECKFREQUENCYEnum.Year:
 | 
						|
                                            if (checkTime.Month == month && checkTime.Day == day)
 | 
						|
                                            {
 | 
						|
                                                planDetails.Add(item2);
 | 
						|
                                            }
 | 
						|
                                            break;
 | 
						|
                                        case BSPLANCHECKFREQUENCYEnum.HalfYear:
 | 
						|
                                            if ((checkTime.Month == month && checkTime.Day == day) || ((checkTime.Month + 6) == month && (checkTime.Day + 183) == day))
 | 
						|
                                            {
 | 
						|
                                                planDetails.Add(item2);
 | 
						|
                                            }
 | 
						|
                                            break;
 | 
						|
                                        case BSPLANCHECKFREQUENCYEnum.Date:
 | 
						|
                                                planDetails.Add(item2);
 | 
						|
                                            break;
 | 
						|
                                        case BSPLANCHECKFREQUENCYEnum.Week:
 | 
						|
                                            if (checkTime.DayOfWeek == week)
 | 
						|
                                            {
 | 
						|
                                                planDetails.Add(item2);
 | 
						|
                                            }
 | 
						|
                                            break;
 | 
						|
                                        case BSPLANCHECKFREQUENCYEnum.Month:
 | 
						|
                                            if (checkTime.Day == day)
 | 
						|
                                            {
 | 
						|
                                                planDetails.Add(item2);
 | 
						|
                                            }
 | 
						|
                                            break;
 | 
						|
                                        case BSPLANCHECKFREQUENCYEnum.Quarter:
 | 
						|
                                            if (checkTime.Month == 1)
 | 
						|
                                            {
 | 
						|
                                                if ((month == 1 || month == 4 || month == 7 || month == 10) && checkTime.Day == day)
 | 
						|
                                                {
 | 
						|
                                                    planDetails.Add(item2);
 | 
						|
                                                }
 | 
						|
                                            }
 | 
						|
                                            if (checkTime.Month == 2)
 | 
						|
                                            {
 | 
						|
                                                if ((month == 2 || month == 5 || month == 8 || month == 11) && checkTime.Day == day)
 | 
						|
                                                {
 | 
						|
                                                    planDetails.Add(item2);
 | 
						|
                                                }
 | 
						|
                                            }
 | 
						|
                                            if (checkTime.Month == 3)
 | 
						|
                                            {
 | 
						|
                                                if ((month == 3 || month == 6 || month == 9 || month == 12) && checkTime.Day == day)
 | 
						|
                                                {
 | 
						|
                                                    planDetails.Add(item2);
 | 
						|
                                                }
 | 
						|
                                            }
 | 
						|
                                            break;
 | 
						|
                                        default:
 | 
						|
                                            break;
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if (planDetails!=null && planDetails.Any())
 | 
						|
                    {
 | 
						|
                        var planIds = planDetails.Select(t => t.DEVICE_MAINTENANCE_PLAN_ID).Distinct().ToList();
 | 
						|
                        var planUserIds = planDetails.Select(t => t.USER_ID).Distinct().ToList();
 | 
						|
                        var userInfos = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && planUserIds.Contains(t.ID), new BaseFilter(filter.OrgId));
 | 
						|
                        if (planIds != null && planIds.Any())
 | 
						|
                        {
 | 
						|
                            foreach (var item in planIds)
 | 
						|
                            {
 | 
						|
                                //触发维保记录表
 | 
						|
                                T_DM_DEVICE_MAINTENANCE_CHECK check = new T_DM_DEVICE_MAINTENANCE_CHECK();
 | 
						|
                                check.ID = Guid.NewGuid();
 | 
						|
                                check.ORG_ID = filter.OrgId;
 | 
						|
                                check.CHECKDATETIME = dtNow;
 | 
						|
                                check.CODE = "WB" + dtNow.ToString("yyyyMMddHHmmss");
 | 
						|
                                check.NAME = "设备设施维保" + dtNow.ToString("MMdd");
 | 
						|
                                check.STATUS_APPROVE = PFStandardStatus.Draft;
 | 
						|
                                check.USER_ID = plans.FirstOrDefault(t=>t.ID == item)?.USER_ID;
 | 
						|
                                check.DEVICE_MAINTENANCE_PLAN_ID = item;
 | 
						|
                                records.Add(check);
 | 
						|
                                var planFiles = plans.FirstOrDefault(t => t.ID == item);
 | 
						|
                                if (planFiles!= null && planFiles.Nav_Files != null && planFiles.Nav_Files.Any())
 | 
						|
                                {
 | 
						|
                                    foreach (var file in planFiles.Nav_Files)
 | 
						|
                                    {
 | 
						|
                                        T_DM_DEVICE_MAINTENANCE_CHECK_FILE tempFile = new T_DM_DEVICE_MAINTENANCE_CHECK_FILE();
 | 
						|
                                        tempFile.ORG_ID = filter.OrgId;
 | 
						|
                                        tempFile.IMG_FILE_ID = file.IMG_FILE_ID;
 | 
						|
                                        tempFile.DEVICE_MAINTENANCE_CHECK_ID = check.ID;
 | 
						|
                                        files.Add(tempFile);
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                                //设备维保记录子表
 | 
						|
                                var planTemps = planDetails.Where(t => t.DEVICE_MAINTENANCE_PLAN_ID == item).ToList();
 | 
						|
                                if (planTemps != null && planTemps.Any())
 | 
						|
                                {
 | 
						|
                                    foreach (var device in planTemps)
 | 
						|
                                    {
 | 
						|
                                        T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL detail = new T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL();
 | 
						|
                                        detail.ORG_ID = filter.OrgId;
 | 
						|
                                        detail.PLANID = (Guid)item;
 | 
						|
                                        detail.CHECK_ID = check.ID;
 | 
						|
                                        detail.DEVICEBASE_ID = device.DEVICEBASE_ID;
 | 
						|
                                        detail.MACHINE_NAME = device?.Nav_DeviceBase?.NAME;
 | 
						|
                                        detail.SPEC = device.SPEC;
 | 
						|
                                        detail.POSITION = device.POSITION;
 | 
						|
                                        detail.COUNT = device.COUNT;
 | 
						|
                                        details.Add(detail);
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                                //触发待办
 | 
						|
                                var userName = userInfos.FirstOrDefault(t => t.ID == check.USER_ID)?.NAME;
 | 
						|
                                sendNotices.Add(NotificationTaskService.InsertUserNoticeTaskModel("设备设施维保记录表", check.ID, check.ORG_ID, check.USER_ID.Value, userName, dtNow, dtNow.AddDays(1), 1, "DM030"));
 | 
						|
                            }
 | 
						|
                            plans.Where(m => planIds.Contains(m.ID)).ForEach(o => { o.IS_RUN = 1; });
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    UnifiedCommit(() =>
 | 
						|
                    {
 | 
						|
                        if (records != null && records.Any())
 | 
						|
                            BantchSaveEntityNoCommit(records);
 | 
						|
                        if (details != null && details.Any())
 | 
						|
                            BantchSaveEntityNoCommit(details);
 | 
						|
                        if (sendNotices != null && sendNotices.Any())
 | 
						|
                            BantchSaveEntityNoCommit(sendNotices);
 | 
						|
                        if (plans != null && plans.Any())
 | 
						|
                            BantchSaveEntityNoCommit(plans);
 | 
						|
                        if (files != null && files.Any())
 | 
						|
                            BantchSaveEntityNoCommit(files);
 | 
						|
                    });
 | 
						|
                }
 | 
						|
                catch (Exception ex)
 | 
						|
                {
 | 
						|
                    if (!string.IsNullOrEmpty(ex.StackTrace))
 | 
						|
                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
 | 
						|
                    else
 | 
						|
                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
 | 
						|
                }
 | 
						|
                return true;
 | 
						|
            });
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 |