111
yanjinhui
2025-03-26 da2e87c2a05debbcc7dac5efb5d13c92d533782f
ÏîÄ¿´úÂë/WIDESEAWCS_Server Õýʽ/SerialPortService/NjTaskServer.cs
@@ -5,6 +5,8 @@
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
using SqlSugar;
using StackExchange.Profiling.Internal;
using WIDESEA_ISerialPortRepository;
using WIDESEA_SerialPortRepository;
@@ -23,87 +25,79 @@
        private readonly ITemplateRepository _templateRepository;
        private readonly INJtakeHistoryRepository _nJtakeHistoryRepository;
        private readonly IPutakeRepository _putakeRepository;
        private IUnitOfWorkManage _unitOfWorkManage;
        public NjTaskServer(INjTaskRepository BaseDal, ITemplateRepository templateRepository, INJtakeHistoryRepository nJtakeHistoryRepository,
            IPutakeRepository putakeRepository , IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
            IPutakeRepository putakeRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
        {
            _templateRepository = templateRepository;
            _nJtakeHistoryRepository = nJtakeHistoryRepository;
            _putakeRepository = putakeRepository;
            _unitOfWorkManage = unitOfWorkManage;//数据库事务
        }
        //模糊查询
        public WebResponseContent Fuzzyquery(MhuNjtakeTDO mhuNjtakeTDO)
        public override PageGridData<Dt_NjTask> GetPageData(PageDataOptions options)
        {
            try
            {
                var query = BaseDal.QueryData();
                // ç”Ÿæˆ OR æŸ¥è¯¢æ¡ä»¶ å³ä»»æ„å­—段都可以查看
                if (!string.IsNullOrEmpty(mhuNjtakeTDO.trainkind) || !string.IsNullOrEmpty(mhuNjtakeTDO.trainnum) ||
                    !string.IsNullOrEmpty(mhuNjtakeTDO.track) || !string.IsNullOrEmpty(mhuNjtakeTDO.coachnum) ||
                    !string.IsNullOrEmpty(mhuNjtakeTDO.bogie) || !string.IsNullOrEmpty(mhuNjtakeTDO.processdept)||
                    !string.IsNullOrEmpty(mhuNjtakeTDO.taskstatus) || !string.IsNullOrEmpty(mhuNjtakeTDO.createtime))
            OrderByParameters = new Dictionary<string, SqlSugar.OrderByType> {
                {
                    BaseDal.QueryData(x =>
                        (!string.IsNullOrEmpty(mhuNjtakeTDO.trainkind) && x.trainKind.Contains(mhuNjtakeTDO.trainkind)) ||
                        (!string.IsNullOrEmpty(mhuNjtakeTDO.trainnum) && x.trainNum.Contains(mhuNjtakeTDO.trainnum)) ||
                        (!string.IsNullOrEmpty(mhuNjtakeTDO.track) && x.track.Contains(mhuNjtakeTDO.track)) ||
                        (!string.IsNullOrEmpty(mhuNjtakeTDO.coachnum) && x.coachNum.Contains(mhuNjtakeTDO.coachnum)) ||
                        (!string.IsNullOrEmpty(mhuNjtakeTDO.bogie) && x.bogie.Contains(mhuNjtakeTDO.bogie)) ||
                        (!string.IsNullOrEmpty(mhuNjtakeTDO.processdept) && x.processDept.Contains(mhuNjtakeTDO.processdept))||
                        (!string.IsNullOrEmpty(mhuNjtakeTDO.taskstatus) && x.processDept.Contains(mhuNjtakeTDO.taskstatus))||
                        (!string.IsNullOrEmpty(mhuNjtakeTDO.createtime) && x.processDept.Contains(mhuNjtakeTDO.createtime))
                    );
                }
                var result = query.ToList(); // æ‰§è¡ŒæŸ¥è¯¢ .ToList()查询列表, .InSingle(1); // æ ¹æ®æŸ¥è¯¢å•个实体
                return new WebResponseContent { Status = true, Data = result };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = "查看失败:" + ex.Message };
            }
                    nameof(Dt_NjTask.trainKind),SqlSugar.OrderByType.Asc
                } };
            return base.GetPageData(options);
        }
        //保存模板
        /// <summary>
        /// ä¿å­˜æ¨¡æ¿å¹¶æäº¤
        /// æœ‰æ¨¡æ¿id的时候就返回模板的值,更新或选择模板的值并将任务派发下去
        /// æ²¡æœ‰æ¨¡æ¿id的时候,就创建一个模板,共下次使用
        /// </summary>
        /// <param name="njtakeDTO"></param>
        /// <returns></returns>
        public WebResponseContent Submtandsave(NjtakeDTO njtakeDTO)
        {
            try
            {
                //更具模板id来查询是否存在该条数据
            {
                // 1. æŸ¥è¯¢æ¨¡æ¿è¡¨ & ä»»åŠ¡è¡¨
                var existtepm = _templateRepository.QueryFirst(i => i.TemplateID == njtakeDTO.Tpid);
                var Temp = new Dt_Template(); //如果你要更新那么要先找到,否则你这样是创建一个新的对象
                //如果没有模板id那么就之间创建模板
                var task = BaseDal.QueryFirst(i => i.NJtaskID == njtakeDTO.Njtakeid);
                if (task == null)
                {
                    return new WebResponseContent { Status = false, Message = "没有找到任务" };
                }
                //2.确定是新建模板还是更新已有模板
                bool isNewTemplate = existtepm == null;
                if (existtepm == null)
                {
                        Temp.TemplateName = njtakeDTO.takename;
                        Temp.TakeName = njtakeDTO.takename;
                        Temp.jiShuYuan = njtakeDTO.jishuyuan;
                        Temp.gongZhang = njtakeDTO.gongzhang;
                        Temp.zhiJianYuan_Dq = njtakeDTO.zhijianyuan_dq;
                        Temp.zhiJianYuan_Lc = njtakeDTO.zhijianyuan_lc;
                        Temp.zhiJianYuan_Dg = njtakeDTO.zhijianyuan_dg;
                        Temp.liJu_Dg = njtakeDTO.liju_dg;
                        Temp.liJu_Dq = njtakeDTO.liju_dq;
                        Temp.liJu_Lc = njtakeDTO.liju_lc;
                        Temp.fuZhu_Dg = njtakeDTO.fuzhu_dg;
                        Temp.fuZhu_Dq = njtakeDTO.fuzhu_dq;
                        Temp.fuZhu_Lc = njtakeDTO.fuzhu_lc;
                    existtepm = new Dt_Template
                    {
                        TemplateName = njtakeDTO.takename,
                        TakeName = njtakeDTO.takename,
                        jiShuYuan = njtakeDTO.jishuyuan,
                        gongZhang = njtakeDTO.gongzhang,
                        zhiJianYuan_Dq = njtakeDTO.zhijianyuan_dq,
                        zhiJianYuan_Lc = njtakeDTO.zhijianyuan_lc,
                        zhiJianYuan_Dg = njtakeDTO.zhijianyuan_dg,
                        liJu_Dg = njtakeDTO.liju_dg,
                        liJu_Dq = njtakeDTO.liju_dq,
                        liJu_Lc = njtakeDTO.liju_lc,
                        fuZhu_Dg = njtakeDTO.fuzhu_dg,
                        fuZhu_Dq = njtakeDTO.fuzhu_dq,
                        fuZhu_Lc = njtakeDTO.fuzhu_lc,
                        Creater = "admin",
                        CreateDate = DateTime.Now
                    };
                }
                //如果有就在模板上进行更改
                else
                {
                    existtepm.TakeName = njtakeDTO.takename;
                    existtepm.jiShuYuan = njtakeDTO.jishuyuan;
                    existtepm.gongZhang = njtakeDTO.gongzhang;
                    existtepm.zhiJianYuan_Dq = njtakeDTO.zhijianyuan_dq;
                    existtepm.zhiJianYuan_Lc = njtakeDTO.zhijianyuan_lc;
                    existtepm.zhiJianYuan_Dg = njtakeDTO.zhijianyuan_dg;
@@ -113,176 +107,116 @@
                    existtepm.fuZhu_Dg = njtakeDTO.fuzhu_dg;
                    existtepm.fuZhu_Dq = njtakeDTO.fuzhu_dq;
                    existtepm.fuZhu_Lc = njtakeDTO.fuzhu_lc;
                }
                //先根据id判断是否有该任务
                var task = BaseDal.QueryFirst(i => i.NJtaskID == njtakeDTO.Njtakeid);
                if (task == null)
                {
                    return new WebResponseContent { Status = false, Message = "没有找到" };
                    existtepm.ModifyDate = DateTime.Now;
                }
                task.Taskstatus = 1;//已派工
                // 3. æ›´æ–°ä»»åŠ¡è¡¨
                task.Taskstatus = 1; // å·²æ´¾å·¥
                task.dispatchTime = DateTime.Now;
                task.startTime = DateTime.Now;
                ApplyTemplateToTask(task, existtepm, isNewTemplate, njtakeDTO);
                if (existtepm == null)
                //// 4. æ’入历史记录
                //var history = new Dt_NJtakeHistory
                //{
                //    taskID = task.id,
                //    trainKind = task.trainKind,
                //    TakeName = task.TakeName,
                //    trainNum = task.trainNum,
                //    track = task.track,
                //    coachNum = task.coachNum,
                //    bogie = task.bogie,
                //    processDept = task.processDept,
                //    jiShuYuan = task.jiShuYuan,
                //    zhiJianYuan_LC = task.zhiJianYuan_LC,
                //    zhiJianYuan_DG = task.zhiJianYuan_DG,
                //    zhiJianYuan_DQ = task.zhiJianYuan_DQ,
                //    gongZhang = task.gongZhang,
                //    liJu_LC = task.liJu_LC,
                //    liJu_DG = task.liJu_DG,
                //    liJu_DQ = task.liJu_DQ,
                //    fuZhu_LC = task.fuZhu_LC,
                //    fuZhu_DQ = task.fuZhu_DQ,
                //    fuZhu_DG = task.fuZhu_DG,
                //    createTime = (DateTime)task.createTime,
                //    dispatchTime = (DateTime)task.dispatchTime,
                //    startTime = (DateTime)task.startTime,
                //    startTime_LC = (DateTime)task.startTime_LC,
                //    endTime_LC = (DateTime)task.endTime_LC,
                //    startTime_DG = (DateTime)task.startTime_DG,
                //    endTime_DG = (DateTime)task.endTime_DG,
                //    startTime_DQ = (DateTime)task.startTime_DQ,
                //    endTime_DQ = (DateTime)task.endTime_DQ,
                //    endTime = (DateTime)task.endTime,
                //    confirmTime_JS = (DateTime)task.confirmTime_JS,
                //    confirmTime_GZ = (DateTime)task.confirmTime_GZ,
                //    confirmTime_LC = (DateTime)task.confirmTime_LC,
                //    confirmTime_DG = (DateTime)task.confirmTime_DG,
                //    confirmTime_DQ = (DateTime)task.confirmTime_DQ
                //};
                // 5. æ’入任务分解数据
                var listp = new List<Dt_Putake>
        {
            new Dt_Putake { Njtakeid = task.NJtaskID, takename = task.TakeName, jishuyuan = task.jiShuYuan, gonzhang = task.gongZhang, Grouptype = "电气", Pustatus = 0, zhijianyuan = task.zhiJianYuan_DQ, lijuzouyeyuan = task.liJu_DQ, fuzyuan = task.fuZhu_DQ, Dispatchtime = task.dispatchTime },
            new Dt_Putake { Njtakeid = task.NJtaskID, takename = task.TakeName, jishuyuan = task.jiShuYuan, gonzhang = task.gongZhang, Grouptype = "机械", Pustatus = 0, zhijianyuan = task.zhiJianYuan_LC, lijuzouyeyuan = task.liJu_LC, fuzyuan = task.fuZhu_LC, Dispatchtime = task.dispatchTime },
            new Dt_Putake { Njtakeid = task.NJtaskID, takename = task.TakeName, jishuyuan = task.jiShuYuan, gonzhang = task.gongZhang, Grouptype = "地沟", Pustatus = 0, zhijianyuan = task.zhiJianYuan_DG, lijuzouyeyuan = task.liJu_DG, fuzyuan = task.fuZhu_DG, Dispatchtime = task.dispatchTime }
        };
                // 6. äº‹åŠ¡æäº¤
                _unitOfWorkManage.BeginTran();
                if (isNewTemplate)
                {
                    task.TakeName = njtakeDTO.takename;
                    task.jiShuYuan = njtakeDTO.jishuyuan;
                    task.zhiJianYuan_DG = njtakeDTO.zhijianyuan_dg;
                    task.zhiJianYuan_DQ = njtakeDTO.zhijianyuan_dq;
                    task.zhiJianYuan_LC = njtakeDTO.zhijianyuan_lc;
                    task.gongZhang = njtakeDTO.gongzhang;
                    task.liJu_DG = njtakeDTO.liju_dg;
                    task.liJu_DQ = njtakeDTO.liju_dq;
                    task.liJu_LC = njtakeDTO.liju_lc;
                    task.fuZhu_DG = njtakeDTO.fuzhu_dg;
                    task.fuZhu_DQ = njtakeDTO.fuzhu_dq;
                    task.fuZhu_LC = njtakeDTO.fuzhu_lc;
                    task.dispatchTime = DateTime.Now;
                    task.startTime = DateTime.Now;
                    _templateRepository.AddData(existtepm);
                }
                else
                {
                    task.TakeName = existtepm.TakeName; //从模板中拿值
                    task.jiShuYuan = existtepm.jiShuYuan;
                    task.zhiJianYuan_DG = njtakeDTO.zhijianyuan_dg;
                    task.zhiJianYuan_DQ = njtakeDTO.zhijianyuan_dq;
                    task.zhiJianYuan_LC = njtakeDTO.zhijianyuan_lc;
                    task.gongZhang = existtepm.gongZhang;
                    task.liJu_DG = njtakeDTO.liju_dg;
                    task.liJu_DQ = njtakeDTO.liju_dq;
                    task.liJu_LC = njtakeDTO.liju_lc;
                    task.fuZhu_DG = njtakeDTO.fuzhu_dg;
                    task.fuZhu_DQ = njtakeDTO.fuzhu_dq;
                    task.fuZhu_LC = njtakeDTO.fuzhu_lc;
                    task.dispatchTime = DateTime.Now;
                    task.startTime = DateTime.Now;
                }
                // æ’入到任务历史表
                var history = new Dt_NJtakeHistory
                {
                    taskID = task.id,
                    trainKind = task.trainKind,
                    TakeName = task.TakeName,
                    trainNum = task.trainNum,
                    track = task.track,
                    coachNum = task.coachNum,
                    bogie = task.bogie,
                    processDept = task.processDept,
                    jiShuYuan = task.jiShuYuan,
                    zhiJianYuan_LC = task.zhiJianYuan_LC,
                    zhiJianYuan_DG = task.zhiJianYuan_DG,
                    zhiJianYuan_DQ = task.zhiJianYuan_DQ,
                    gongZhang = task.gongZhang,
                    liJu_LC = task.liJu_LC,
                    liJu_DG = task.liJu_DG,
                    liJu_DQ = task.liJu_DQ,
                    fuZhu_LC = task.fuZhu_LC,
                    fuZhu_DQ = task.fuZhu_DQ,
                    fuZhu_DG=task.fuZhu_DG,
                    createTime = task.createTime,
                    dispatchTime = task.dispatchTime,
                    startTime = task.startTime,
                    startTime_LC = task.startTime_LC,
                    endTime_LC = task.endTime_LC,
                    startTime_DG = task.startTime_DG,
                    endTime_DG = task.endTime_DG,
                    startTime_DQ = task.startTime_DQ,
                    endTime_DQ = task.endTime_DQ,
                    endTime = task.endTime,
                    confirmTime_JS = task.confirmTime_JS,
                    confirmTime_GZ = task.confirmTime_GZ,
                    confirmTime_LC = task.confirmTime_LC,
                    confirmTime_DG = task.confirmTime_DG,
                    confirmTime_DQ = task.confirmTime_DQ
                };
                List<Dt_Putake> listp = new List<Dt_Putake>();
                // å®šä¹‰ä»»åŠ¡æ‹†è§£çš„ç»„ä¿¡æ¯
                var groups = new[]
                {
                    new { Grouptype= "电气",Pustatus=0,Zhijianyuan = task.zhiJianYuan_DQ, Lijuzouyeyuan = task.liJu_DQ, Fuzyuan = task.fuZhu_DQ },
                    new { Grouptype = "机械",Pustatus=0, Zhijianyuan = task.zhiJianYuan_LC, Lijuzouyeyuan = task.liJu_LC, Fuzyuan = task.fuZhu_LC },
                    new { Grouptype = "地沟",Pustatus=0, Zhijianyuan = task.zhiJianYuan_DG, Lijuzouyeyuan = task.liJu_DG, Fuzyuan = task.fuZhu_DG }
                 };
                // é€šè¿‡å¾ªçŽ¯åˆ›å»ºå¯¹è±¡
                foreach (var g in groups)
                {
                    listp.Add(new Dt_Putake
                    {
                        Njtakeid = task.NJtaskID,
                        takename = task.TakeName,
                        jishuyuan = task.jiShuYuan,
                        gonzhang = task.gongZhang,
                        zhijianyuan = g.Zhijianyuan,
                        lijuzouyeyuan = g.Lijuzouyeyuan,
                        fuzyuan = g.Fuzyuan,
                       Grouptype=g.Grouptype,
                       Pustatus=g.Pustatus,
                       Dispatchtime=task.dispatchTime,
                    });
                }
                _unitOfWorkManage.BeginTran();//开启事务(在增删改查前,业务后)
                if (existtepm == null)//如果不存在id
                {
                    _templateRepository.AddData(Temp);//添加模板
                    //db.Insertable(task).ExecuteCommand();
                    BaseDal.UpdateData(task);//将模板表中修改的插入进任务表中
                    // db.Insertable(history).ExecuteCommand();
                    _nJtakeHistoryRepository.AddData(history);// æ’入历史记录
                    _putakeRepository.AddData(listp);//下发三条任务分解表数据
                  //  return new WebResponseContent { Status = true, Message = "下发了任务并保存了模板"};
                }
                else
                {
                    //获取并返回插入记录的自增主键值,该值被存储在 templatID å˜é‡ä¸­
                    //int templatID = _templateRepository.Db.Insertable(Temp).ExecuteReturnIdentity();
                    //task.tempID = templatID;
                    //修改模板表
                    _templateRepository.UpdateData(existtepm);
                    //将模板号插入这条任务表中
                    task.tempID = existtepm.TemplateID;
                    BaseDal.UpdateData(task);//将任务表中的人员插入进任务表中
                    _nJtakeHistoryRepository.AddData(history);// æ’入历史记录
                    _putakeRepository.AddData(listp);//下发三条任务分解表数据
                }
                _unitOfWorkManage.CommitTran();//提交事务
                BaseDal.UpdateData(task);
                //_nJtakeHistoryRepository.AddData(history);
                _putakeRepository.AddData(listp);
                _unitOfWorkManage.CommitTran();
                return new WebResponseContent { Status = true, Data = task };
            }
            catch (Exception ex)
            {
                //db.Ado.RollbackTran(); // å›žæ»šäº‹åŠ¡
                _unitOfWorkManage.RollbackTran();
                return new WebResponseContent { Status = false, Message = "添加失败:" + ex.Message };
            }
        }
        /// <summary>
        /// ä»»åŠ¡è¡¨åº”ç”¨æ¨¡æ¿ä¿¡æ¯
        /// </summary>
        private void ApplyTemplateToTask(Dt_NjTask task, Dt_Template template, bool isNewTemplate, NjtakeDTO njtakeDTO)
        {
            if (isNewTemplate) //模板id是否有,默认为null
            {
                task.TakeName = njtakeDTO.takename;
                task.gongZhang = njtakeDTO.gongzhang;
            }
            else
            {
                task.TakeName = template.TakeName;
                task.gongZhang = template.gongZhang;
            }
            task.jiShuYuan = template.jiShuYuan;
            task.zhiJianYuan_DG = njtakeDTO.zhijianyuan_dg;
            task.zhiJianYuan_DQ = njtakeDTO.zhijianyuan_dq;
            task.zhiJianYuan_LC = njtakeDTO.zhijianyuan_lc;
            task.liJu_DG = njtakeDTO.liju_dg;
            task.liJu_DQ = njtakeDTO.liju_dq;
            task.liJu_LC = njtakeDTO.liju_lc;
            task.fuZhu_DG = njtakeDTO.fuzhu_dg;
            task.fuZhu_DQ = njtakeDTO.fuzhu_dq;
            task.fuZhu_LC = njtakeDTO.fuzhu_lc;
        }
        //不保存模板
@@ -290,7 +224,7 @@
        {
            try
            {
                //先根据id判断是否有该任务
@@ -304,60 +238,61 @@
                task.TakeName = notempDTO.takename;
                    task.jiShuYuan = notempDTO.jishuyuan;
                    task.zhiJianYuan_DG = notempDTO.zhijianyuan_dg;
                    task.zhiJianYuan_DQ = notempDTO.zhijianyuan_dq;
                    task.zhiJianYuan_LC = notempDTO.zhijianyuan_lc;
                    task.gongZhang = notempDTO.gongzhang;
                    task.liJu_DG = notempDTO.liju_dg;
                    task.liJu_DQ = notempDTO.liju_dq;
                    task.liJu_LC = notempDTO.liju_lc;
                    task.fuZhu_DG = notempDTO.fuzhu_dg;
                    task.fuZhu_DQ = notempDTO.fuzhu_dq;
                    task.fuZhu_LC = notempDTO.fuzhu_lc;
                    task.dispatchTime=DateTime.Now;
                    task.startTime = DateTime.Now;
                task.jiShuYuan = notempDTO.jishuyuan;
                task.zhiJianYuan_DG = notempDTO.zhijianyuan_dg;
                task.zhiJianYuan_DQ = notempDTO.zhijianyuan_dq;
                task.zhiJianYuan_LC = notempDTO.zhijianyuan_lc;
                task.gongZhang = notempDTO.gongzhang;
                task.liJu_DG = notempDTO.liju_dg;
                task.liJu_DQ = notempDTO.liju_dq;
                task.liJu_LC = notempDTO.liju_lc;
                task.fuZhu_DG = notempDTO.fuzhu_dg;
                task.fuZhu_DQ = notempDTO.fuzhu_dq;
                task.fuZhu_LC = notempDTO.fuzhu_lc;
                task.dispatchTime = DateTime.Now;
                task.startTime = DateTime.Now;
                // æ’入到任务历史表
                var history = new Dt_NJtakeHistory
                {
                    taskID = task.id,
                    trainKind = task.trainKind,
                    TakeName = task.TakeName,
                    trainNum = task.trainNum,
                    track = task.track,
                    coachNum = task.coachNum,
                    bogie = task.bogie,
                    processDept = task.processDept,
                    jiShuYuan = task.jiShuYuan,
                    zhiJianYuan_LC = task.zhiJianYuan_LC,
                    zhiJianYuan_DG = task.zhiJianYuan_DG,
                    zhiJianYuan_DQ = task.zhiJianYuan_DQ,
                    gongZhang = task.gongZhang,
                    liJu_LC = task.liJu_LC,
                    liJu_DG = task.liJu_DG,
                    liJu_DQ = task.liJu_DQ,
                    fuZhu_LC = task.fuZhu_LC,
                    fuZhu_DQ = task.fuZhu_DQ,
                    fuZhu_DG = task.fuZhu_DG,
                    createTime = task.createTime,
                    dispatchTime = task.dispatchTime,
                    startTime = task.startTime,
                    startTime_LC = task.startTime_LC,
                    endTime_LC = task.endTime_LC,
                    startTime_DG = task.startTime_DG,
                    endTime_DG = task.endTime_DG,
                    startTime_DQ = task.startTime_DQ,
                    endTime_DQ = task.endTime_DQ,
                    endTime = task.endTime,
                    confirmTime_JS = task.confirmTime_JS,
                    confirmTime_GZ = task.confirmTime_GZ,
                    confirmTime_LC = task.confirmTime_LC,
                    confirmTime_DG = task.confirmTime_DG,
                    confirmTime_DQ = task.confirmTime_DQ
                };
                //var history = new Dt_NJtakeHistory
                //{
                //    taskID = task.id,
                //    trainKind = task.trainKind,
                //    TakeName = task.TakeName,
                //    trainNum = task.trainNum,
                //    track = task.track,
                //    coachNum = task.coachNum,
                //    bogie = task.bogie,
                //    processDept = task.processDept,
                //    jiShuYuan = task.jiShuYuan,
                //    zhiJianYuan_LC = task.zhiJianYuan_LC,
                //    zhiJianYuan_DG = task.zhiJianYuan_DG,
                //    zhiJianYuan_DQ = task.zhiJianYuan_DQ,
                //    gongZhang = task.gongZhang,
                //    liJu_LC = task.liJu_LC,
                //    liJu_DG = task.liJu_DG,
                //    liJu_DQ = task.liJu_DQ,
                //    fuZhu_LC = task.fuZhu_LC,
                //    fuZhu_DQ = task.fuZhu_DQ,
                //    fuZhu_DG = task.fuZhu_DG,
                //    createTime = (DateTime)task.createTime,
                //    dispatchTime = (DateTime)task.dispatchTime,
                //    startTime = (DateTime)task.startTime,
                //    startTime_LC = (DateTime)task.startTime_LC,
                //    endTime_LC = (DateTime)task.endTime_LC,
                //    startTime_DG = (DateTime)task.startTime_DG,
                //    endTime_DG = (DateTime)task.endTime_DG,
                //    startTime_DQ = (DateTime)task.startTime_DQ,
                //    endTime_DQ = (DateTime)task.endTime_DQ,
                //    endTime = (DateTime)task.endTime,
                //    confirmTime_JS = (DateTime)task.confirmTime_JS,
                //    confirmTime_GZ = (DateTime)task.confirmTime_GZ,
                //    confirmTime_LC = (DateTime)task.confirmTime_LC,
                //    confirmTime_DG = (DateTime)task.confirmTime_DG,
                //    confirmTime_DQ = (DateTime)task.confirmTime_DQ
                //};
@@ -387,21 +322,22 @@
                        Grouptype = g.Grouptype,
                        Pustatus = g.Pustatus,
                        Dispatchtime = task.dispatchTime,
                        Creater="",
                        CreateDate=new DateTime()
                    });
                }
                _unitOfWorkManage.BeginTran();//开启事务(在增删改查前,业务后)
                    BaseDal.UpdateData(task);//将模板表中修改的插入进任务表中
                BaseDal.UpdateData(task);//将模板表中修改的插入进任务表中
                    // db.Insertable(history).ExecuteCommand();
                    _nJtakeHistoryRepository.AddData(history);// æ’入历史记录
                // db.Insertable(history).ExecuteCommand();
                //_nJtakeHistoryRepository.AddData(history);// æ’入历史记录
                    _putakeRepository.AddData(listp);//下发三条任务分解表数据
                                                     //  return new WebResponseContent { Status = true, Message = "下发了任务并保存了模板"};
                _putakeRepository.AddData(listp);//下发三条任务分解表数据
                                                 //  return new WebResponseContent { Status = true, Message = "下发了任务并保存了模板"};
                _unitOfWorkManage.CommitTran();//提交事务(增删改查后)
                return new WebResponseContent { Status = true, Data = task };
            }
@@ -415,111 +351,139 @@
        }
        //添加信息
        public WebResponseContent AddNJinfom(AddNjtDTO addNjtDTO)
        public WebResponseContent AddNjtake(AddNjtDTO addNjtDTO)
        {
            try
            {
                #region è‡ªå®šä¹‰å‘½åç»™Njtaskid
                // èŽ·å–ä»Šå¤©çš„æ—¥æœŸéƒ¨åˆ†ï¼Œå¦‚ "KH0306"
                string todayPrefix = $"KH{DateTime.Now:MMdd}";
                // æŸ¥è¯¢æ•°æ®åº“,找出当天最大的 NJtaskID
                var lastTask = BaseDal.QueryData(i => i.NJtaskID.StartsWith(todayPrefix))
                                      .OrderByDescending(i => i.NJtaskID)
                                      .FirstOrDefault();
                int nextNumber = 1; // é»˜è®¤ç¼–号
                if (lastTask != null)
                string CustomizeID = "";
                if (addNjtDTO.NJtaskID == 0)
                {
                    // èŽ·å–åŽä¸¤ä½åˆ†é’Ÿç¼–å·
                    string lastNumberPart = lastTask.NJtaskID.Substring(6, 2);
                    if (int.TryParse(lastNumberPart, out int lastNumber))
                    {
                        nextNumber = lastNumber + 1;
                    }
                }
                    // èŽ·å–ä»Šå¤©çš„æ—¥æœŸéƒ¨åˆ†ï¼Œå¦‚ "K20250306"
                    string todayPrefix = $"K{DateTime.Now:yyyyMMdd}";
                // ç”Ÿæˆ NJtaskID,例如 KH0306001, KH0306002...
                string CustomizeID = $"{todayPrefix}{nextNumber:D3}";//D3表示 3位数,不足补0
                    // æŸ¥è¯¢æ•°æ®åº“,找出当天最大的 NJtaskID
                    var lastTask = BaseDal.QueryData(i => i.NJtaskID.StartsWith(todayPrefix))
                                          .OrderByDescending(i => i.NJtaskID)
                                          .FirstOrDefault();
                    int nextNumber = 1; // é»˜è®¤ç¼–号
                    if (lastTask != null)
                    {
                        // èŽ·å–åŽä¸¤ä½åˆ†é’Ÿç¼–å·
                        string lastNumberPart = lastTask.NJtaskID.Substring(6, 2);
                        if (int.TryParse(lastNumberPart, out int lastNumber))
                        {
                            nextNumber = lastNumber + 1;
                        }
                    }
                    // ç”Ÿæˆ NJtaskID,例如 KH0306001, KH0306002...
                    CustomizeID = $"{todayPrefix}{nextNumber:D3}";//D3表示 3位数,不足补0
                }
                else
                {
                    CustomizeID = addNjtDTO.NJtaskID.ToString();
                }
                if (addNjtDTO.Creater == "")
                {
                    addNjtDTO.Creater = "admin";
                }
                #endregion
                var addnj = new Dt_NjTask ()
                var addnj = new Dt_NjTask()
                {
                    NJtaskID= CustomizeID,
                    trainKind=addNjtDTO.trainkind,
                    trainNum=addNjtDTO.trainNum,
                    track=addNjtDTO.track,
                    coachNum=addNjtDTO.coachnum,
                    bogie=addNjtDTO.bogie,
                   processDept=addNjtDTO.processdept,
                   Taskstatus=0,
                    createTime=DateTime.Now,
                    NJtaskID = CustomizeID,
                    TakeName=addNjtDTO.TakeName,
                    trainKind = addNjtDTO.trainKind,
                    trainNum = addNjtDTO.trainNum,
                    track = addNjtDTO.track,
                    coachNum = addNjtDTO.coachNum,
                    bogie = addNjtDTO.bogie,
                    processDept = addNjtDTO.processDept,
                    jiShuYuan = addNjtDTO.jiShuYuan,
                    zhiJianYuan_LC = addNjtDTO.zhiJianYuan_LC,
                    zhiJianYuan_DG = addNjtDTO.zhiJianYuan_DG,
                    zhiJianYuan_DQ = addNjtDTO.zhiJianYuan_DQ,
                    gongZhang = addNjtDTO.gongZhang,
                    liJu_LC = addNjtDTO.liJu_LC,
                    liJu_DG = addNjtDTO.liJu_DG,
                    liJu_DQ = addNjtDTO.liJu_DQ,
                    fuZhu_LC = addNjtDTO.fuZhu_LC,
                    fuZhu_DG = addNjtDTO.fuZhu_DG,
                    fuZhu_DQ = addNjtDTO.fuZhu_DQ,
                    Taskstatus = 0,
                    createTime = DateTime.Now,
                };
                _unitOfWorkManage.BeginTran();
                BaseDal.AddData(addnj);
                _unitOfWorkManage.CommitTran();
                return new WebResponseContent { Status = true, Data = addnj };
                return new WebResponseContent { Status = true, Message = "成功", Code = 200, Data = addnj };
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return new WebResponseContent { Status = false, Message = "失败" + ex.Message };
                return new WebResponseContent { Status = false, Message = "失败" + ex.Message, Code = 400 };
            }
        }
        //查看详情 è¿”回整个表的数据(更具id)
        public WebResponseContent GetNjdetail(string  njtaskID)
        public WebResponseContent GetNjdetail(string njtaskID)
        {
            try
            {
                _unitOfWorkManage.BeginTran();
                var datatail = BaseDal.QueryData(x => x.NJtaskID == njtaskID).FirstOrDefault();
                if (datatail == null)
                {
                    return new WebResponseContent { Status = false, Message = "没有找到" };
                }
                _unitOfWorkManage.CommitTran();
                return new WebResponseContent { Status = true,Data = datatail };
                return new WebResponseContent { Status = true, Data = datatail };
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return new WebResponseContent() { Status = false, Message ="失败"+ ex.Message };
                return new WebResponseContent() { Status = false, Message = "失败" + ex.Message };
            }
        }
        //更具id更新
        //根据id更新
        public WebResponseContent PuNjtake(PutNjtDTO putNjtDTO)
        {
            try
            {
                var putake = BaseDal.QueryData(x => x.id==putNjtDTO.id).FirstOrDefault();
                var putake = BaseDal.QueryData(x => x.id == putNjtDTO.id).FirstOrDefault();
                if (putake == null)
                {
                    return new WebResponseContent { Status = false, Message = "没有找到" };
                }
                putake.trainKind= putNjtDTO.trainkind;
                putake.trainNum= putNjtDTO.trainNum;
                putake.track=putNjtDTO.track;
                putake.coachNum=putake.coachNum;
                putake.bogie=putNjtDTO.bogie;
                putake.processDept=putake.processDept;
                _unitOfWorkManage.BeginTran();
                putake.trainKind = putNjtDTO.trainkind;
                putake.trainNum = putNjtDTO.trainNum;
                putake.track = putNjtDTO.track;
                putake.coachNum = putake.coachNum;
                putake.bogie = putNjtDTO.bogie;
                putake.processDept = putake.processDept;
                BaseDal.UpdateData(putake);
                _unitOfWorkManage.CommitTran();
                return new WebResponseContent { Status = true, Data = putake };
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return new WebResponseContent { Status = false, Message = "查询失败:" + ex.Message };
            }
        }
    }
}