模具保养计划执行模块代码提交
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Dynamic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -128,6 +129,54 @@ namespace Tnb.ProductionMgr
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取停机历史记录
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<dynamic> GetClosedownHistory([FromQuery] ClosedownHistoryQuery input)
|
||||
{
|
||||
var pagedList = await _db.Queryable<PrdCancelClosedownRecord>()
|
||||
.WhereIF(!string.IsNullOrEmpty(input.eqpName), it => it.eqp_name.Contains(input.eqpName))
|
||||
.WhereIF(input.beginTime.HasValue, it => it.closedown_start_time.Value == input.beginTime)
|
||||
.WhereIF(input.endTime.HasValue, it => it.closedown_end_time.Value == input.endTime)
|
||||
.Select(it => new ClosedownHistoryOutput
|
||||
{
|
||||
closedown_start_time = it.closedown_start_time,
|
||||
closedown_end_time = it.closedown_end_time,
|
||||
closedown_time = it.closedown_time,
|
||||
})
|
||||
.ToPagedListAsync(input.currentPage, input.pageSize);
|
||||
return pagedList;
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据设备id获取生产任务单信息,模具信息
|
||||
/// </summary>
|
||||
/// <param name="eqpId">设备Id</param>
|
||||
/// <remarks>
|
||||
/// returns:
|
||||
/// <br/>{
|
||||
/// <br/> mo_task_code:任务单编号
|
||||
/// <br/> mold_code:模具编号
|
||||
/// <br/> mold_name:模具名称
|
||||
/// <br/>}
|
||||
/// </remarks>
|
||||
[HttpGet]
|
||||
public async Task<dynamic> GetInfoFromEqpId([FromRoute] string eqpId)
|
||||
{
|
||||
dynamic info = new ExpandoObject();
|
||||
var moTask = await _db.Queryable<PrdMoTask>().Where(it => it.mo_task_status == DictConst.InProgressEnCode).FirstAsync(it => it.eqp_id == eqpId);
|
||||
if (moTask != null)
|
||||
{
|
||||
var mold = await _db.Queryable<ToolMolds>().FirstAsync(it => it.id == moTask.mo_id);
|
||||
info.mo_task_code = moTask.mo_task_code;
|
||||
info.mold_code = mold?.mold_code;
|
||||
info.mold_name = mold?.mold_name;
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 异常停机-开始
|
||||
@@ -145,7 +194,7 @@ namespace Tnb.ProductionMgr
|
||||
|
||||
var moTaskList = await _prdMoTaskService.GetListByEqpId(input.eqp_id);
|
||||
if (moTaskList?.Count > 1) throw new AppFriendlyException($"设备{input.eqp_id},目前有两条进行中的生产任务", 500);
|
||||
if (moTaskList.Count > 0)
|
||||
if (moTaskList?.Count > 0)
|
||||
{
|
||||
var cancelCloseDown = input.Adapt<PrdCancelClosedown>();
|
||||
cancelCloseDown.id = SnowflakeIdHelper.NextId();
|
||||
@@ -155,7 +204,10 @@ namespace Tnb.ProductionMgr
|
||||
cancelCloseDown.closedown_start_time = DateTime.Now;
|
||||
|
||||
await _db.Insertable(cancelCloseDown).ExecuteCommandAsync();
|
||||
var eqp = await _db.Queryable<EqpEquipment>().FirstAsync(it => it.id == input.eqp_id);
|
||||
var record = cancelCloseDown.Adapt<PrdCancelClosedownRecord>();
|
||||
record.eqp_code = eqp?.code;
|
||||
record.eqp_name = eqp?.name;
|
||||
await _db.Insertable(record).ExecuteCommandAsync();
|
||||
|
||||
var moldId = moTaskList.First().mold_id;
|
||||
@@ -179,13 +231,13 @@ namespace Tnb.ProductionMgr
|
||||
{
|
||||
Log.Error("停机开始失败", ex);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw ex;
|
||||
throw;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 停机结束
|
||||
/// </summary>
|
||||
/// <param name="maintainTaskId"></param>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task CloseDownEnd(CloseDownStartInput input)
|
||||
@@ -196,46 +248,29 @@ namespace Tnb.ProductionMgr
|
||||
{
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
var moTaskList = await _prdMoTaskService.GetListByEqpId(input.eqp_id);
|
||||
if (moTaskList?.Count > 1) throw new AppFriendlyException($"设备{input.eqp_id},目前有两条进行中的生产任务", 500);
|
||||
|
||||
var cancelCloseDown = input.Adapt<PrdCancelClosedown>();
|
||||
cancelCloseDown.id = SnowflakeIdHelper.NextId();
|
||||
cancelCloseDown.create_id = _userManager.UserId;
|
||||
cancelCloseDown.create_time = DateTime.Now;
|
||||
cancelCloseDown.closedown_start_time = DateTime.Now;
|
||||
|
||||
var row = await _db.Insertable(cancelCloseDown).ExecuteCommandAsync();
|
||||
|
||||
var moldId = moTaskList.First().mold_id;
|
||||
if (moldId.IsNullOrEmpty())
|
||||
var closeDown = await _db.Queryable<PrdCancelClosedown>().Where(it => it.eqp_id == input.eqp_id).OrderByDescending(it => it.closedown_start_time).FirstAsync();
|
||||
if (closeDown != null)
|
||||
{
|
||||
var mold = await _moldService.GetListById(moldId);
|
||||
var maintaindTask = new ToolMoldMaintainTask();
|
||||
maintaindTask.mold_id = moldId;
|
||||
maintaindTask.code = DictConst.MaintainStatusYWCCode;
|
||||
maintaindTask.create_id = _userManager.UserId;
|
||||
maintaindTask.create_time = DateTime.Now;
|
||||
closeDown.closedown_end_time = DateTime.Now;
|
||||
await _db.Updateable(closeDown).ExecuteCommandAsync();
|
||||
var record = closeDown.Adapt<PrdCancelClosedownRecord>();
|
||||
//计算停机时间间隔,以小时为单位
|
||||
if (record.closedown_start_time.HasValue && record.closedown_end_time.HasValue)
|
||||
{
|
||||
var interval = record.closedown_end_time.Value.Subtract(record.closedown_start_time.Value).TotalHours;
|
||||
record.closedown_time = Convert.ToDecimal(interval);
|
||||
}
|
||||
await _db.Updateable(record).ExecuteCommandAsync();
|
||||
|
||||
|
||||
await _maintainTaskService.Create(maintaindTask);
|
||||
await _db.Ado.CommitTranAsync();
|
||||
}
|
||||
|
||||
await _db.Ado.CommitTranAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error("停机开始失败", ex);
|
||||
Log.Error("停机结束失败", ex);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
throw;
|
||||
}
|
||||
//var row = await _db.Updateable<ToolMoldMaintainTask>().SetColumns(c => new ToolMoldMaintainTask
|
||||
//{
|
||||
// status = DictConst.MaintainStatusDWXCode,
|
||||
// modify_id = _userManager.UserId,
|
||||
// modify_end_time = DateTime.Now,
|
||||
//})
|
||||
// .ExecuteCommandAsync();
|
||||
//if (row < 1) throw Oops.Oh(ErrorCode.COM1001);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user