using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_ISerialPortRepository;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_Core.BaseRepository;
|
using WIDESEAWCS_Core.BaseServices;
|
using WIDESEAWCS_ITaskInfoRepository;
|
using WIDESEAWCS_ITaskInfoService;
|
using WIDESEAWCS_Model.Models;
|
|
namespace WIDESEAWCS_TaskInfoService
|
{
|
public class Putake : ServiceBase<Dt_Putake, IPutakeRepository>, IPutakeServer
|
{
|
private IUnitOfWorkManage _uniUnitOfWorkManage;
|
private INjTaskRepository _iNjTaskRepository;
|
|
public Putake(IPutakeRepository BaseDal, IUnitOfWorkManage uniUnitOfWorkManage, INjTaskRepository iNjTaskRepository) : base(BaseDal)
|
{
|
_uniUnitOfWorkManage = uniUnitOfWorkManage;//数据库事务
|
_iNjTaskRepository= iNjTaskRepository;
|
}
|
|
private enum cond
|
{
|
待领筒=1,
|
待作业=2,
|
待归筒=3,
|
待质检=4,
|
已完成=5
|
}
|
|
|
//修改下发任务表的任务状态
|
public WebResponseContent ChangeStatus(int id)
|
{
|
try
|
{
|
var putake = BaseDal.QueryData(i => i.ID == id).FirstOrDefault();
|
if (putake == null)
|
{
|
return new WebResponseContent { Status = false, Message = "未找到该任务" };
|
}
|
|
//putake.Pustatus是字符串,需要先转换成 cond 枚举:
|
if (!Enum.TryParse(putake.Pustatus, out cond currentStatus))
|
{
|
return new WebResponseContent { Status = false, Message = "当前状态不合法,无法更新" };
|
}
|
|
switch (currentStatus)
|
{
|
case cond.待领筒:
|
putake.Pustatus = cond.待作业.ToString();
|
//_iNjTaskRepository
|
break;
|
case cond.待作业:
|
putake.Pustatus = cond.待归筒.ToString();
|
break;
|
case cond.待归筒:
|
putake.Pustatus = cond.待质检.ToString();
|
break;
|
case cond.待质检:
|
putake.Pustatus=cond.已完成.ToString();
|
putake.Finishedtime = DateTime.Now;
|
break;
|
case cond.已完成:
|
return new WebResponseContent { Status = false, Message = "当前状态已是最终状态,无法再更新" };
|
default:
|
return new WebResponseContent { Status = false, Message = "未知状态,无法更新" };
|
}
|
//开启事务
|
_uniUnitOfWorkManage.BeginTran();
|
|
// 更新数据库
|
BaseDal.UpdateData(putake);
|
|
//提交事务
|
_uniUnitOfWorkManage.CommitTran();
|
return new WebResponseContent { Status = true,Data= putake };
|
}
|
catch (Exception ex)
|
{
|
//回滚事务
|
_uniUnitOfWorkManage.RollbackTran();
|
return new WebResponseContent { Status = false, Message = "更新失败:" + ex.Message };
|
}
|
}
|
|
//根据条件(组)展示下发任务表
|
public WebResponseContent ShowPutake(string group)
|
{
|
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}" };
|
}
|
}
|
|
|
//查看这个下发任务的中任务表中的详情数据
|
public WebResponseContent GetNjtake(string njid)
|
{
|
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 {
|
return new WebResponseContent { Status = false,Message="没有找到" };
|
}
|
|
|
|
}
|
catch (Exception ex)
|
{
|
|
//回滚事务
|
_uniUnitOfWorkManage.RollbackTran();
|
return new WebResponseContent { Status = false, Message = "更新失败:" + ex.Message };
|
}
|
}
|
}
|
}
|