165 lines
6.9 KiB
C#
165 lines
6.9 KiB
C#
using JNPF.Common.Core.Manager;
|
|
using JNPF.Common.Dtos.VisualDev;
|
|
using JNPF.Common.Enums;
|
|
using JNPF.Common.Filter;
|
|
using JNPF.DependencyInjection;
|
|
using JNPF.DynamicApiController;
|
|
using JNPF.FriendlyException;
|
|
using JNPF.Systems.Entitys.Permission;
|
|
using JNPF.VisualDev;
|
|
using JNPF.VisualDev.Entitys;
|
|
using JNPF.VisualDev.Interfaces;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Newtonsoft.Json;
|
|
using SqlSugar;
|
|
using Tnb.EquipMgr.Entities;
|
|
using Tnb.EquipMgr.Entities.Dto;
|
|
using Tnb.EquipMgr.Interfaces;
|
|
|
|
namespace Tnb.EquipMgr
|
|
{
|
|
/// <summary>
|
|
/// 点巡检执行管理
|
|
/// </summary>
|
|
[ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)]
|
|
[Route("api/[area]/[controller]/[action]")]
|
|
[OverideVisualDev(ModuleId)]
|
|
public class EquSpotInsRecordService : IOverideVisualDevService, IEquSpotInsRecordService, IDynamicApiController, ITransient
|
|
{
|
|
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
|
|
private const string ModuleId = "26123080740885";
|
|
private readonly ISqlSugarRepository<EqpSpotInsRecordH> _repository;
|
|
private readonly IVisualDevService _visualDevService;
|
|
private readonly IRunService _runService;
|
|
private readonly IUserManager _userManager;
|
|
|
|
public EquSpotInsRecordService(ISqlSugarRepository<EqpSpotInsRecordH> repository,
|
|
IRunService runService,
|
|
IUserManager userManager,
|
|
IVisualDevService visualDevService)
|
|
{
|
|
_repository = repository;
|
|
_visualDevService = visualDevService;
|
|
_runService = runService;
|
|
_userManager = userManager;
|
|
// OverideFuncs.UpdateAsync = ExecuteSpotIns;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行点巡检
|
|
/// </summary>
|
|
/// <param name="pageInput"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<dynamic> ExecuteSpotIns(SpotInsRecordExecuteInput input)
|
|
{
|
|
DbResult<bool> result = await _repository.AsSugarClient().Ado.UseTranAsync(async () =>
|
|
{
|
|
EqpSpotInsRecordH eqpSpotInsRecordH = _repository.GetSingle(x=>x.id==input.id);
|
|
string status = "";
|
|
if (eqpSpotInsRecordH.is_repeat == "1")
|
|
{
|
|
status = SpotInsRecordExecutionStatus.TOBECHECK;
|
|
}
|
|
else
|
|
{
|
|
status = SpotInsRecordExecutionStatus.COMPLETED;
|
|
}
|
|
await _repository.UpdateAsync(x => new EqpSpotInsRecordH()
|
|
{
|
|
result = input.result,
|
|
attachment = input.attachment,
|
|
result_remark = input.result_remark,
|
|
status = status,
|
|
spot_record_date_time = DateTime.Now,
|
|
spot_record_user_id = _userManager.UserId
|
|
}, x => x.id == input.id);
|
|
|
|
foreach (var item in input.details)
|
|
{
|
|
await _repository.AsSugarClient().Updateable<EqpSpotInsRecordD>().
|
|
SetColumns(x=>x.result==item["result"])
|
|
.SetColumnsIF(item["judge_type"]=="1",x=>x.real_value==Convert.ToDouble(item["real_value"]))
|
|
.Where(x=>x.id==item["id"])
|
|
.ExecuteCommandAsync();
|
|
}
|
|
|
|
|
|
});
|
|
|
|
if(!result.IsSuccess) throw Oops.Oh(ErrorCode.COM1008);
|
|
return result.IsSuccess ? "执行成功" : result.ErrorMessage;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取点巡检复核信息
|
|
/// </summary>
|
|
/// <param name="dic"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<SpotInsRecordRepeatOutput> GetSpotInsRecordRepeatInfo(Dictionary<string, string> dic)
|
|
{
|
|
string id = dic["id"];
|
|
EqpSpotInsRecordH eqpSpotInsRecordH = await _repository.GetSingleAsync(x => x.id == id);
|
|
List<EqpSpotInsRecordD> eqpSpotInsRecordDs = await _repository.AsSugarClient().Queryable<EqpSpotInsRecordD>()
|
|
.Where(x => x.spot_ins_record_id == id).ToListAsync();
|
|
SpotInsRecordRepeatOutput output = new SpotInsRecordRepeatOutput()
|
|
{
|
|
model = eqpSpotInsRecordH,
|
|
details = eqpSpotInsRecordDs,
|
|
};
|
|
return output;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 复核点巡检
|
|
/// </summary>
|
|
/// <param name="pageInput"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task RepeatSpotIns(SpotInsRecordRepeatInput input)
|
|
{
|
|
await _repository.UpdateAsync(x => new EqpSpotInsRecordH()
|
|
{
|
|
repeat_result = input.repeat_result,
|
|
repeat_remark = input.repeat_remark,
|
|
repeat_user_id = _userManager.UserId,
|
|
repeat_time = DateTime.Now,
|
|
status = SpotInsRecordExecutionStatus.COMPLETED
|
|
}, x => x.id == input.id);
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<dynamic> GetSpotInsRecordList(EquipQueryInput input)
|
|
{
|
|
var db = _repository.AsSugarClient();
|
|
Dictionary<string, string> queryJson = new Dictionary<string, string>();
|
|
if (!string.IsNullOrEmpty(input.queryJson))
|
|
{
|
|
queryJson = JsonConvert.DeserializeObject<Dictionary<string, string>>(input.queryJson);
|
|
}
|
|
var result = await db.Queryable<EqpSpotInsRecordH>()
|
|
.LeftJoin<UserEntity>((a,b)=>a.repeat_user_id==b.Id)
|
|
.Where(a=>a.equip_id==input.equip_id)
|
|
.Select((a,b) => new EquipSpotInsRecordQueryOutput
|
|
{
|
|
id = a.id,
|
|
attachment = a.attachment,
|
|
create_time = a.create_time.Value.ToString("yyyy-MM-dd HH:mm"),
|
|
equip_id = a.equip_id,
|
|
repeat_remark = a.repeat_remark,
|
|
repeat_result = a.repeat_result=="1"?"合格":"不合格",
|
|
repeat_time = a.repeat_time.Value.ToString("yyyy-MM-dd HH:mm"),
|
|
repeat_user_id = b.RealName,
|
|
result = a.result=="1"?"合格":"不合格",
|
|
result_remark = a.result_remark,
|
|
spot_ins_tem_equip_id = a.spot_ins_tem_equip_id,
|
|
spot_record_date_time = a.spot_record_date_time.Value.ToString("yyyy-MM-dd HH:mm"),
|
|
spot_record_user_id = a.spot_record_user_id,
|
|
status = SqlFunc.IF(a.status.Equals("1")).Return("待执行").ElseIF(a.status.Equals("2")).Return("待复核").ElseIF(a.status.Equals("3")).Return("已完成").End("")
|
|
}).ToPagedListAsync(input.currentPage, input.pageSize);
|
|
|
|
return PageResult<EquipSpotInsRecordQueryOutput>.SqlSugarPageResult(result);
|
|
}
|
|
}
|
|
} |