yanjinhui
2025-03-11 cdd170dd9008d8124d63c76ba186e34cfe61a619
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/SerialPortService/PutakeServer.cs
@@ -9,18 +9,19 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_TaskInfoService
{
    public class Putake : ServiceBase<Dt_Putake, IPutakeRepository>, IPutakeServer
    public class PutakeServer : ServiceBase<Dt_Putake, IPutakeRepository>, IPutakeServer
    {
        private IUnitOfWorkManage _uniUnitOfWorkManage;
        private INjTaskRepository _iNjTaskRepository;
        public Putake(IPutakeRepository BaseDal, IUnitOfWorkManage uniUnitOfWorkManage, INjTaskRepository iNjTaskRepository) : base(BaseDal)
        public PutakeServer(IPutakeRepository BaseDal, IUnitOfWorkManage uniUnitOfWorkManage, INjTaskRepository iNjTaskRepository) : base(BaseDal)
        {
            _uniUnitOfWorkManage = uniUnitOfWorkManage;//数据库事务
            _iNjTaskRepository= iNjTaskRepository;
@@ -28,47 +29,105 @@
        private enum cond
        {
            å¾…领筒=1,
            å¾…作业=2,
            å¾…å½’ç­’=3,
            å¾…质检=4,
            å·²å®Œæˆ=5
            å¾…领筒=0,
            å¾…作业=1,
            å¾…å½’ç­’=2,
            å¾…质检=3,
            å·²å®Œæˆ=4
        }
        //修改下发任务表的任务状态
        public WebResponseContent ChangeStatus(int id)
        public WebResponseContent ChangeStatus(string id,string gruops)
        {
            try
            {
                var putake = BaseDal.QueryData(i => i.ID == id).FirstOrDefault();
                var putake = BaseDal.QueryData(i => i.Njtakeid == id&&i.Grouptype==gruops).FirstOrDefault();
                var nj = _iNjTaskRepository.QueryData(i => i.NJtaskID == id).FirstOrDefault();
                if (putake == null)
                {
                    return new WebResponseContent { Status = false, Message = "未找到该任务" };
                }
                //putake.Pustatus是字符串,需要先转换成 cond æžšä¸¾ï¼š
                if (!Enum.TryParse(putake.Pustatus, out cond currentStatus))
                //把数据库中的 int å€¼è½¬æ¢ä¸º `cond` æžšä¸¾ï¼š
                if (!Enum.IsDefined(typeof(cond), putake.Pustatus))
                {
                    return new WebResponseContent { Status = false, Message = "当前状态不合法,无法更新" };
                }
                cond currentStatus = (cond)putake.Pustatus;  // int -> æžšä¸¾è½¬æ¢
                switch (currentStatus)
                {
                    case cond.待领筒:
                        putake.Pustatus = cond.待作业.ToString();
                        //_iNjTaskRepository
                    case cond.待领筒: //
                        putake.Pustatus = (int)cond.待作业; // æžšä¸¾è½¬ int
                        if (gruops=="机械")
                        {
                        }
                        if (gruops == "电气")
                        {
                        }
                        if (gruops == "地沟")
                        {
                        }
                        break;
                    case cond.待作业:
                        putake.Pustatus = cond.待归筒.ToString();
                      //  _iNjTaskRepository.QueryData(x=>x.)
                    case cond.待作业://开始作业,开始时间
                        putake.Pustatus = (int)cond.待归筒;
                        if (gruops == "机械")
                        {
                            nj.startTime_LC = DateTime.Now;//开始时间
                        }
                        if (gruops == "电气")
                        {
                            nj!.startTime_DQ = DateTime.Now;
                        }
                        if (gruops == "地沟")
                        {
                            nj!.startTime_DG = DateTime.Now;
                        }
                        break;
                    case cond.待归筒:
                        putake.Pustatus = cond.待质检.ToString();
                    case cond.待归筒://确认归还,完成时间
                        putake.Pustatus = (int)cond.待质检;
                        if (gruops == "机械")
                        {
                            nj.endTime_LC = DateTime.Now;
                        }
                        if (gruops == "电气")
                        {
                            nj.endTime_DQ = DateTime.Now;
                        }
                        if (gruops == "地沟")
                        {
                            nj.endTime_DG = DateTime.Now;
                        }
                        break;
                    case cond.待质检:
                        putake.Pustatus=cond.已完成.ToString();
                    case cond.待质检: // å®Œæˆè´¨æ£€æ—¶é—´
                        putake.Pustatus = (int)cond.已完成;
                        DateTime latestTime = new DateTime(1900, 1, 1, 0, 0, 0);
                        if (gruops == "机械")
                        {
                            nj!.confirmTime_LC = DateTime.Now;
                        }
                        if (gruops == "电气")
                        {
                            nj!.confirmTime_DQ = DateTime.Now;
                        }
                        if (gruops == "地沟")
                        {
                            nj!.confirmTime_DG = DateTime.Now;
                        }
                        // èŽ·å–æœ€åŽä¸€æ¬¡å®Œæˆçš„æ—¶é—´
                        latestTime = new[] { nj.confirmTime_LC, nj.confirmTime_DQ, nj.confirmTime_DG }
                                        .Max(); // å–最新的时间
                        nj.endTime = latestTime; // èµ‹å€¼æœ€æ–°æ—¶é—´
                        putake.Finishedtime = DateTime.Now;
                        break;
                    case cond.已完成:
@@ -76,20 +135,15 @@
                    default:
                        return new WebResponseContent { Status = false, Message = "未知状态,无法更新" };
                }
                //开启事务
                _uniUnitOfWorkManage.BeginTran();
                // æ›´æ–°æ•°æ®åº“
                _iNjTaskRepository.UpdateData(nj);
                BaseDal.UpdateData(putake);
                //提交事务
                _uniUnitOfWorkManage.CommitTran();
                return new WebResponseContent { Status = true,Data= putake };
                return new WebResponseContent { Status = true, Data = putake };
            }
            catch (Exception ex)
            {
                //回滚事务
                _uniUnitOfWorkManage.RollbackTran();
                return new WebResponseContent { Status = false, Message = "更新失败:" + ex.Message };
            }
        }
@@ -99,19 +153,15 @@
        {
            try
            {
                //开启事务
                _uniUnitOfWorkManage.BeginTran();
                var dg = BaseDal.QueryData(i=>i.Grouptype== group);
                //提交事务
                _uniUnitOfWorkManage.CommitTran();
                return new WebResponseContent { Status = true, Data = dg };
            }
            catch (Exception ex)
            {
                // å›žæ»šäº‹åŠ¡
                _uniUnitOfWorkManage.RollbackTran();
                return new WebResponseContent { Status = false, Message = $"查看失败:{ex}" };
            }
        }
@@ -122,15 +172,13 @@
        {
            try
            {
                //开启事务
                _uniUnitOfWorkManage.BeginTran();
                var Nj = _iNjTaskRepository.QueryData(i => i.NJtaskID == njid).FirstOrDefault();
                if (Nj != null)
                {
                    //提交事务
                    _uniUnitOfWorkManage.CommitTran();
                    return new WebResponseContent { Status = true, Data = Nj };
                }
                else {
@@ -143,66 +191,44 @@
            catch (Exception ex)
            {
                //回滚事务
                _uniUnitOfWorkManage.RollbackTran();
                return new WebResponseContent { Status = false, Message = "更新失败:" + ex.Message };
            }
        }
        //更具任务状态查询
        public WebResponseContent seletTaskeStatus(string status)
        {
            try
            {
                //开启事务
                _uniUnitOfWorkManage.BeginTran();
        ////更具任务状态查询
        //public WebResponseContent seletTaskeStatus(string status)
        //{
        //    try
        //    {
                var Nj = BaseDal.QueryData(i => i.Pustatus == status);
        //        var Nj = BaseDal.QueryData(i => i.Pustatus == status);
                if (Nj != null)
                {
                    //提交事务
                    _uniUnitOfWorkManage.CommitTran();
                    return new WebResponseContent { Status = true, Data = Nj };
                }
                else
                {
                    return new WebResponseContent { Status = false, Message = "没有找到" };
                }
        //        if (Nj != null)
        //        {
        //            return new WebResponseContent { Status = true, Data = Nj };
        //        }
        //        else
        //        {
        //            return new WebResponseContent { Status = false, Message = "没有找到" };
        //        }
            }
            catch (Exception ex)
            {
        //    }
        //    catch (Exception ex)
        //    {
                //回滚事务
                _uniUnitOfWorkManage.RollbackTran();
                return new WebResponseContent { Status = false, Message = "更新失败:" + ex.Message };
            }
        }
        //        return new WebResponseContent { Status = false, Message = "更新失败:" + ex.Message };
        //    }
        //}
        public WebResponseContent GetNJandPu()
        {
            try
            {
                var nj = _iNjTaskRepository.QueryData();  // èŽ·å– NJ ä»»åŠ¡åˆ—è¡¨
                //var pu = BaseDal.QueryData();  // èŽ·å– PU ä»»åŠ¡åˆ—è¡¨
                //var result = nj.Join(
                //    pu,
                //    n => n.NJtaskID,  // å¤–é”® (主表)
                //    p => p.ID.ToString(),  // å†…é”® (从表)
                //    (n, p) => new  // è¿žæŽ¥åŽçš„结果
                //    {
                //        n.NJtaskID,
                //        n.trainKind,
                //        n.trainNum,
                //        n.track,
                //        n.coachNum,
                //        n.bogie,
                //        n.processDept,
                //        n.createTime,
                //        p.Pustatus,
                //    }).ToList();
                var nj = _iNjTaskRepository.QueryData();
               
                return new WebResponseContent { Status = true, Data = nj };