生产提报代码提交
This commit is contained in:
@@ -21,6 +21,8 @@ using Tnb.ProductionMgr.Interfaces;
|
||||
using Aspose.Cells.Drawing;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using DbModels;
|
||||
using JNPF.Common.Extension;
|
||||
using Tnb.ProductionMgr.Entities.Dto.PrdManage;
|
||||
|
||||
namespace Tnb.ProductionMgr
|
||||
{
|
||||
@@ -60,6 +62,12 @@ namespace Tnb.ProductionMgr
|
||||
var data = await _runService.GetListResult(templateEntity, input);
|
||||
if (data?.list?.Count > 0)
|
||||
{
|
||||
var statusField = "mo_task_status";
|
||||
var scheduledTypeField = nameof(PrdMoTask.schedule_type);
|
||||
data.list = data.list.Where(it => it.ContainsKey(statusField) &&
|
||||
it[statusField].IsNotEmptyOrNull() && it[statusField].ToString() != "待下发" &&
|
||||
it[scheduledTypeField].IsNotEmptyOrNull() && it[scheduledTypeField].ParseToInt() == 1
|
||||
).ToList();
|
||||
foreach (var row in data.list)
|
||||
{
|
||||
var dic = row.ToDictionary(x => x.Key, x => x.Value);
|
||||
@@ -98,6 +106,70 @@ namespace Tnb.ProductionMgr
|
||||
}
|
||||
return data!;
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据任务单号获取提报记录明细
|
||||
/// </summary>
|
||||
/// <param name="icmoCode">任务单号</param>
|
||||
/// <remarks>
|
||||
/// returns:
|
||||
///<br/> {
|
||||
///<br/> icmo_qty:任务计划数量
|
||||
///<br/> reported_work_qty:已报工数量
|
||||
///<br/> reported_qty:报工数量
|
||||
///<br/> prd_qty:生产数量
|
||||
///<br/> }
|
||||
/// </remarks>
|
||||
[HttpGet]
|
||||
public async Task<dynamic> GetPrdReportByIcmoCode([FromRoute] string mo_task_code)
|
||||
{
|
||||
var db = _repository.AsSugarClient();
|
||||
var prdTask = await db.Queryable<PrdMoTask>().FirstAsync(it => it.mo_task_code == mo_task_code);
|
||||
var eqpCode = "";
|
||||
var moldCode = "";
|
||||
var materialCode = "";
|
||||
var materialName = "";
|
||||
var materialProp = "";
|
||||
if (prdTask != null)
|
||||
{
|
||||
var eqp = await db.Queryable<EqpEquipment>().FirstAsync(it => it.id == prdTask.eqp_id);
|
||||
var mold = await db.Queryable<ToolMolds>().FirstAsync(it => it.id == prdTask.mold_id);
|
||||
var material = await db.Queryable<BasMaterial>().FirstAsync(it => it.id == prdTask.material_id);
|
||||
eqpCode = eqp != null ? eqp.code : "";
|
||||
moldCode = mold != null ? mold.mold_code : "";
|
||||
materialCode = material != null ? material.code : "";
|
||||
materialName = material != null ? material.name : "";
|
||||
materialProp = material != null ? material.material_property : "";
|
||||
|
||||
}
|
||||
var res = await db.Queryable<PrdReport>().Where(it => it.mo_task_code == mo_task_code)
|
||||
.Select(it => new PrdReportOutput
|
||||
{
|
||||
icmo_qty = it.icmo_qty,
|
||||
reported_work_qty = it.reported_work_qty,
|
||||
reported_qty = it.reported_qty,
|
||||
prd_qty = it.prd_qty,
|
||||
scrap_qty = SqlFunc.Subqueryable<PrdMoTaskDefect>().Where(pmtd => pmtd.mo_task_id == it.mo_task_id).Select(pmtd => pmtd.scrap_qty),
|
||||
})
|
||||
.Mapper(it =>
|
||||
{
|
||||
it.icmo_qty = it.icmo_qty ?? (db.Queryable<PrdTask>().First(it => it.icmo_code == mo_task_code)?.scheduled_qty < 1 ? 0 : it.icmo_qty ?? db.Queryable<PrdTask>().First(it => it.icmo_code == mo_task_code).scheduled_qty);
|
||||
it.reported_work_qty = it.reported_work_qty ?? 0;
|
||||
it.reported_qty = it.reported_qty ?? 0;
|
||||
it.prd_qty = it.prd_qty ?? 0;
|
||||
it.scrap_qty = it.scrap_qty ?? 0;
|
||||
})
|
||||
.FirstAsync();
|
||||
prdTask.eqp_code = eqpCode;
|
||||
prdTask.mold_code = moldCode;
|
||||
prdTask.material_code = materialCode;
|
||||
prdTask.material_name = materialName;
|
||||
prdTask.icmo_qty = res?.icmo_qty;
|
||||
prdTask.reported_work_qty = res?.reported_work_qty ?? 0;
|
||||
prdTask.reported_qty = res?.reported_qty ?? 0;
|
||||
prdTask.prd_qty = res?.prd_qty ?? 0;
|
||||
|
||||
return prdTask;
|
||||
}
|
||||
|
||||
//public async Task<dynamic> GetPrdMoTaskList()
|
||||
//{
|
||||
|
||||
Reference in New Issue
Block a user