using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; using WIDESEA_ISerialPortRepository; using WIDESEA_SerialPortRepository; using WIDESEAWCS_Core; 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; namespace WIDESEAWCS_TaskInfoService { public class PutakeServer : ServiceBase, IPutakeServer { private IUnitOfWorkManage _uniUnitOfWorkManage; private INjTaskRepository _iNjTaskRepository; public PutakeServer(IPutakeRepository BaseDal, IUnitOfWorkManage uniUnitOfWorkManage, INjTaskRepository iNjTaskRepository ) : base(BaseDal) { _uniUnitOfWorkManage = uniUnitOfWorkManage;//数据库事务 _iNjTaskRepository= iNjTaskRepository; } public override PageGridData GetPageData(PageDataOptions options) { OrderByParameters = new Dictionary { { nameof(Dt_Putake.ID),SqlSugar.OrderByType.Asc } }; return base.GetPageData(options); } private enum cond { 待领筒=0, 待作业=1, 待归筒=2, 待质检=3, 已完成=4 } //修改下发任务表的任务状态 public WebResponseContent ChangeStatus(string id,string gruops) { try { 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 = "未找到该任务" }; } //把数据库中的 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 = (int)cond.待作业; // 枚举转 int if (gruops=="机械") { } if (gruops == "电气") { } if (gruops == "地沟") { } break; case cond.待作业://开始作业,开始时间 putake.Pustatus = (int)cond.待归筒; 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.待归筒://确认归还,完成时间 putake.Pustatus = (int)cond.待质检; 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); 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(); // 取最新的时间 nj.endTime = latestTime; // 赋值最新时间 putake.Finishedtime = DateTime.Now; break; case cond.已完成: return new WebResponseContent { Status = false, Message = "当前状态已是最终状态,无法再更新" }; default: return new WebResponseContent { Status = false, Message = "未知状态,无法更新" }; } _iNjTaskRepository.UpdateData(nj); BaseDal.UpdateData(putake); return new WebResponseContent { Status = true, Data = putake }; } catch (Exception ex) { return new WebResponseContent { Status = false, Message = "更新失败:" + ex.Message }; } } //根据条件(组)展示下发任务表 public WebResponseContent ShowPutake(string group) { 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) { 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 }; } } } }