移动端注塑挤出任务管理相关接口

This commit is contained in:
2023-08-30 16:51:31 +08:00
parent 52b0eb1762
commit 2d6e2a56fc
5 changed files with 189 additions and 5 deletions

View File

@@ -142,7 +142,7 @@ namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
}
public class PrdMoReverseFromMaterialput
public class PrdMoReverseFromMaterialoutput
{
/// <summary>
/// 物料ID
@@ -153,6 +153,14 @@ namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
/// </summary>
public string material_code { get; set; }
/// <summary>
/// 物料名称
/// </summary>
public string material_name { get; set; }
/// <summary>
/// 物料规格
/// </summary>
public string material_standard { get; set; }
/// <summary>
/// 批次
/// </summary>
public string code_batch { get; set;}
@@ -208,6 +216,12 @@ namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
/// 已投数量
/// </summary>
public decimal feeding_num { get; set; }
/// <summary>
/// 使用状态
/// </summary>
public string use_status { get; set; }
public string supplier_name { get; set; }
public string unit_name { get; set; }
}
/// <summary>
@@ -234,6 +248,7 @@ namespace Tnb.ProductionMgr.Entities.Dto.PrdManage
/// 投料子表id
/// </summary>
public string feeding_detail_id { get; set; }
public string mo_task_code { get; set; }
public string feeding_time { get; set; }
public decimal num { get; set; }
public string check_conclusion { get; set; }

View File

@@ -0,0 +1,26 @@
namespace Tnb.ProductionMgr.Entities
{
public class AppPrdMoTaskOneListOutput
{
public string id { get; set; }
public string mo_task_code { get; set; }
public string mo_task_status { get; set; }
public string material_id { get; set; }
public string material_id_id { get; set; }
public string material_code { get; set; }
public string material_name { get; set; }
public string mold_id { get; set; }
public string mold_id_id { get; set; }
public string mold_code { get; set; }
public string eqp_id { get; set; }
public string eqp_id_id { get; set; }
public string equip_code { get; set; }
public int? scheduled_qty { get; set; }
public int? reported_work_qty { get; set; }
public int? scrap_qty { get; set; }
public string plan_start_date { get; set; }
public string plan_end_date { get; set; }
}
}

View File

@@ -0,0 +1,97 @@
using COSXML.Model.Tag;
using JNPF.Common.Core.Manager;
using JNPF.Common.Filter;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.Systems.Entitys.System;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using JNPF.VisualDev.Interfaces;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.ProductionMgr.Entities;
using Tnb.BasicData.Entities;
using Tnb.EquipMgr.Entities;
using Tnb.BasicData;
namespace Tnb.ProductionMgr.APP
{
/// <summary>
/// 移动端注塑挤出任务管理
/// </summary>
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)]
[Route("api/[area]/[controller]/[action]")]
[OverideVisualDev(ModuleId)]
public class AppPrdMoTaskOneService : IOverideVisualDevService, IDynamicApiController, ITransient
{
private const string ModuleId = "27890354204949";
private readonly ISqlSugarRepository<PrdMoTask> _repository;
private readonly IUserManager _userManager;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
private readonly ISqlSugarClient _db;
private readonly IBillRullService _billRuleService;
public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
public AppPrdMoTaskOneService(
ISqlSugarRepository<PrdMoTask> repository,
IUserManager userManager,
IDictionaryDataService dictionaryDataService,
IRunService runService,
IBillRullService billRullService,
IVisualDevService visualDevService
)
{
_repository = repository;
_userManager = userManager;
_runService = runService;
_visualDevService = visualDevService;
_db = _repository.AsSugarClient();
OverideFuncs.GetListAsync = GetList;
_billRuleService = billRullService;
}
private async Task<dynamic> GetList(VisualDevModelListQueryInput input)
{
var db = _repository.AsSugarClient();
Dictionary<string, string> queryJson = !string.IsNullOrEmpty(input.queryJson) ? Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(input.queryJson) : new Dictionary<string, string>();
string mo_task_code = queryJson.ContainsKey("mo_task_code") ? queryJson["mo_task_code"].ToString() : "";
string material_code = queryJson.ContainsKey("material_id") ? queryJson["material_id"].ToString() : "";
string equip_code = queryJson.ContainsKey("eqp_id") ? queryJson["eqp_id"].ToString() : "";
var result = await db.Queryable<PrdMoTask>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.LeftJoin<ToolMolds>((a, b, c) => a.mold_id == c.id)
.LeftJoin<EqpEquipment>((a, b, c, d) => a.eqp_id == d.id)
.LeftJoin<DictionaryDataEntity>((a, b, c, d, e) => e.EnCode == a.mo_task_status && e.DictionaryTypeId == DictConst.PrdTaskStatusTypeId)
.WhereIF(!string.IsNullOrEmpty(mo_task_code), (a, b, c, d, e) => a.mo_task_code.Contains(mo_task_code))
.WhereIF(!string.IsNullOrEmpty(material_code), (a, b, c, d, e) => b.code.Contains(material_code) || b.name.Contains(material_code))
.WhereIF(!string.IsNullOrEmpty(equip_code), (a, b, c, d, e) => d.code.Contains(equip_code) || d.name.Contains(equip_code))
.Where(a => a.schedule_type == 1)
.Where(a => (a.mo_task_status==DictConst.ToBeStartedEnCode || a.mo_task_status==DictConst.InProgressEnCode || a.mo_task_status==DictConst.MoStatusExceptionCode || a.mo_task_status==DictConst.MoStatusPauseCode || a.mo_task_status==DictConst.ComplatedEnCode))
.OrderByDescending(a => a.create_time)
.Select((a, b, c, d, e) => new AppPrdMoTaskOneListOutput
{
id = a.id,
mo_task_code = a.mo_task_code,
mo_task_status = e.FullName,
material_id_id = a.material_id,
material_id = b.code,
material_code = b.code,
material_name = b.name,
mold_id_id = a.mold_id,
mold_id = c.mold_code,
mold_code = c.mold_code,
eqp_id_id = a.eqp_id,
eqp_id = d.code,
equip_code = d.code,
scheduled_qty = a.scheduled_qty,
reported_work_qty = a.reported_work_qty,
scrap_qty = a.scrap_qty,
plan_start_date = a.estimated_start_date==null ? "" : a.estimated_start_date.Value.ToString("yyyy-MM-dd"),
plan_end_date = a.plan_end_date==null ? "" : a.plan_end_date.Value.ToString("yyyy-MM-dd"),
}).ToPagedListAsync(input.currentPage, input.pageSize);
return PageResult<AppPrdMoTaskOneListOutput>.SqlSugarPageResult(result);
}
}
}

View File

@@ -873,12 +873,24 @@ namespace Tnb.ProductionMgr
}
else
{
PageResult<PrdMoReverseFromMaterialput> output = JsonConvert.DeserializeObject<PageResult<PrdMoReverseFromMaterialput>>(authResponse.data.ToString(),new Tnb.Common.Utils.DateTimeJsonConverter());
PageResult<PrdMoReverseFromMaterialoutput> output = JsonConvert.DeserializeObject<PageResult<PrdMoReverseFromMaterialoutput>>(authResponse.data.ToString(),new Tnb.Common.Utils.DateTimeJsonConverter());
if (output.list != null && output.list.Count > 0)
{
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().SingleAsync(x=>x.id==output.list[0].material_id);
BasSupplier basSupplier = await _db.Queryable<BasSupplier>().SingleAsync(x=>x.id==output.list[0].supplier_id);
DictionaryDataEntity unit = await _db.Queryable<DictionaryTypeEntity>()
.LeftJoin<DictionaryDataEntity>((a,b)=>a.Id==b.DictionaryTypeId)
.Where((a,b)=>a.EnCode==DictConst.MeasurementUnit && b.EnCode==output.list[0].unit_id)
.Select((a,b)=>b)
.FirstAsync();
output.list[0].feeding_num = await _db.Queryable<PrdMaterialReceiptD>()
.LeftJoin<PrdFeedingD>((a, b) => a.id == b.material_receipt_detail_id)
.Where((a, b) => a.barcode == barcode).SumAsync((a, b) => b.num);
output.list[0].material_name = basMaterial.name;
output.list[0].material_standard = basMaterial.material_standard;
output.list[0].supplier_name = basSupplier.supplier_name;
output.list[0].unit_name = unit.FullName;
return output.list[0];
}
}

View File

@@ -2062,7 +2062,7 @@ namespace Tnb.ProductionMgr
});
if (!result.IsSuccess) throw Oops.Bah(result.ErrorMessage);
return result.IsSuccess ? "延期成功" : result.ErrorMessage;
return result.IsSuccess ? "更换成功" : result.ErrorMessage;
}
@@ -2109,7 +2109,7 @@ namespace Tnb.ProductionMgr
});
if (!result.IsSuccess) throw Oops.Bah(result.ErrorMessage);
return result.IsSuccess ? "延期成功" : result.ErrorMessage;
return result.IsSuccess ? "更换成功" : result.ErrorMessage;
}
@@ -2156,9 +2156,43 @@ namespace Tnb.ProductionMgr
});
if (!result.IsSuccess) throw Oops.Bah(result.ErrorMessage);
return result.IsSuccess ? "延期成功" : result.ErrorMessage;
return result.IsSuccess ? "更换成功" : result.ErrorMessage;
}
/// <summary>
/// 根据id获取任务单相关信息
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task<dynamic> GetPrdMoTaskInfoById(Dictionary<string,string> dic)
{
string id = dic.ContainsKey("id") ? dic["id"] : "";
if (string.IsNullOrEmpty(id)) return null;
var db = _repository.AsSugarClient();
return await db.Queryable<PrdMoTask>()
.LeftJoin<BasMaterial>((a, b) => a.material_id == b.id)
.LeftJoin<ToolMolds>((a, b, c) => a.mold_id == c.id)
.LeftJoin<EqpEquipment>((a, b, c, d) => a.eqp_id == d.id)
.LeftJoin<DictionaryDataEntity>((a,b,c,d,e)=>e.EnCode==a.mo_task_status && e.DictionaryTypeId==DictConst.PrdTaskStatusTypeId)
.Where((a, b, c, d) => a.id == id)
.Select((a, b, c, d,e) => new
{
id = a.id,
mo_task_code = a.mo_task_code,
mo_task_status = e.FullName,
material_id = a.material_id,
material_code = b.code,
material_name = b.name,
mold_id = a.mold_id,
mold_code = c.mold_code,
equip_code = d.code,
scheduled_qty = a.scheduled_qty,
reported_work_qty = a.reported_work_qty,
scrap_qty = a.scrap_qty,
}).FirstAsync();
}
}
}