111
yanjinhui
2025-03-26 da2e87c2a05debbcc7dac5efb5d13c92d533782f
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/SerialPortService/PutakeServer.cs
@@ -10,6 +10,7 @@
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_Core.HttpContextUser;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
@@ -20,18 +21,22 @@
    {
        private IUnitOfWorkManage _uniUnitOfWorkManage;
        private INjTaskRepository _iNjTaskRepository;
        public PutakeServer(IPutakeRepository BaseDal, IUnitOfWorkManage uniUnitOfWorkManage, INjTaskRepository iNjTaskRepository) : base(BaseDal)
        public PutakeServer(IPutakeRepository BaseDal, IUnitOfWorkManage uniUnitOfWorkManage, INjTaskRepository iNjTaskRepository ) : base(BaseDal)
        {
            _uniUnitOfWorkManage = uniUnitOfWorkManage;//数据库事务
            _iNjTaskRepository= iNjTaskRepository;
        }
        public override PageGridData<Dt_Putake> GetPageData(PageDataOptions options)
        {
            OrderByParameters = new Dictionary<string, SqlSugar.OrderByType> {
                {
                    nameof(Dt_Putake.ID),SqlSugar.OrderByType.Asc
                } };
            OrderByParameters = new Dictionary<string, SqlSugar.OrderByType>
            {
                   { nameof(Dt_Putake.Pustatus),SqlSugar.OrderByType.Asc },
                  // { nameof(Dt_Putake.CreateDate),SqlSugar.OrderByType.Asc }//按状态和创建时间升序排序
            };
            return base.GetPageData(options);
        }
@@ -50,7 +55,8 @@
        {
            try
            {
                var putake = BaseDal.QueryData(i => i.Njtakeid == id&&i.Grouptype==gruops).FirstOrDefault();
                var putakeList = BaseDal.QueryData(i => i.Grouptype == gruops && i.Pustatus != (int)cond.已完成).ToList();
                var putake = putakeList.Where(i => i.Njtakeid == id).FirstOrDefault();
                var nj = _iNjTaskRepository.QueryData(i => i.NJtaskID == id).FirstOrDefault();
                if (putake == null)
                {
@@ -69,6 +75,10 @@
                {
                    
                    case cond.待领筒: //
                        if(putakeList.Where(a=>a.Pustatus== (int)cond.待作业).Count() > 0)
                        {
                            return new WebResponseContent { Status = false, Message = "当前有作业未完成,请先完成正在执行的作业" };
                        }
                        putake.Pustatus = (int)cond.待作业; // æžšä¸¾è½¬ int
                        if (gruops=="机械")
                        {
@@ -88,14 +98,17 @@
                        if (gruops == "机械")
                        {
                            nj.startTime_LC = DateTime.Now;//开始时间
                            nj.createTime = DateTime.Now;
                        }
                        if (gruops == "电气")
                        {
                            nj!.startTime_DQ = DateTime.Now;
                            nj.createTime = DateTime.Now;
                        }
                        if (gruops == "地沟")
                        {
                            nj!.startTime_DG = DateTime.Now;
                            nj.createTime = DateTime.Now;
                        }
                        break;
                    case cond.待归筒://确认归还,完成时间
@@ -103,38 +116,48 @@
                        if (gruops == "机械")
                        {
                            nj.endTime_LC = DateTime.Now;
                            nj.createTime = DateTime.Now;
                        }
                        if (gruops == "电气")
                        {
                            nj.endTime_DQ = DateTime.Now;
                            nj.createTime = DateTime.Now;
                        }
                        if (gruops == "地沟")
                        {
                            nj.endTime_DG = DateTime.Now;
                            nj.createTime = DateTime.Now;
                        }
                        break;
                    case cond.待质检: // å®Œæˆè´¨æ£€æ—¶é—´
                        putake.Pustatus = (int)cond.已完成;
                        DateTime latestTime = new DateTime(1900, 1, 1, 0, 0, 0);
                        //DateTime latestTime = new DateTime(1900, 1, 1, 0, 0, 0);
                        if (gruops == "机械")
                        {
                            nj!.confirmTime_LC = DateTime.Now;
                            nj.createTime = DateTime.Now;
                        }
                        if (gruops == "电气")
                        {
                            nj!.confirmTime_DQ = DateTime.Now;
                            nj.createTime = DateTime.Now;
                        }
                        if (gruops == "地沟")
                        {
                            nj!.confirmTime_DG = DateTime.Now;
                            nj.createTime = DateTime.Now;
                        }
                        // èŽ·å–æœ€åŽä¸€æ¬¡å®Œæˆçš„æ—¶é—´
                        latestTime = new[] { nj.confirmTime_LC, nj.confirmTime_DQ, nj.confirmTime_DG }
                                        .Max(); // å–最新的时间
                        // latestTime = (DateTime)new[] { nj.confirmTime_LC, nj.confirmTime_DQ, nj.confirmTime_DG }.Max(); // å–最新的时间
                        DateTime? latestTime = new[] { nj.confirmTime_LC, nj.confirmTime_DQ, nj.confirmTime_DG }
                                .Where(t => t.HasValue)  // è¿‡æ»¤æŽ‰ null
                                .Select(t => t.Value)    // å–出非空的值
                                .DefaultIfEmpty(DateTime.Now) // è‹¥æ•°ç»„为空,使用当前时间
                                .Max();  // å–最大时间
                        nj.endTime = latestTime; // èµ‹å€¼æœ€æ–°æ—¶é—´
                        putake.Finishedtime = DateTime.Now;
                        break;
@@ -161,27 +184,21 @@
        {
            try
            {
                var dg = BaseDal.QueryData(i=>i.Grouptype== group);
                return new WebResponseContent { Status = true, Data = dg };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = $"查看失败:{ex}" };
            }
        }
        //查看这个下发任务的中任务表中的详情数据(和njtaskServe中一样)
        public WebResponseContent GetNjtake(string njid)
        {
            try
            {
                var Nj = _iNjTaskRepository.QueryData(i => i.NJtaskID == njid).FirstOrDefault();
                if (Nj != null)
@@ -204,50 +221,8 @@
            }
        }
        ////更具任务状态查询
        //public WebResponseContent seletTaskeStatus(string status)
        //{
        //    try
        //    {
        //        var Nj = BaseDal.QueryData(i => i.Pustatus == status);
        //        if (Nj != null)
        //        {
        //            return new WebResponseContent { Status = true, Data = Nj };
        //        }
        //        else
        //        {
        //            return new WebResponseContent { Status = false, Message = "没有找到" };
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        return new WebResponseContent { Status = false, Message = "更新失败:" + ex.Message };
        //    }
        //}
        public WebResponseContent GetNJandPu()
        {
            try
            {
                var nj = _iNjTaskRepository.QueryData();
                return new WebResponseContent { Status = true, Data = nj };
            }
            catch (Exception)
            {
                throw;
            }
        }
    }
}