物料签收
This commit is contained in:
@@ -19,7 +19,11 @@ using Tnb.ProductionMgr.Entities.Dto;
|
||||
using Tnb.ProductionMgr.Interfaces;
|
||||
using Tnb.WarehouseMgr;
|
||||
using Tnb.WarehouseMgr.Entities;
|
||||
using Tnb.WarehouseMgr.Entities.Attributes;
|
||||
using Tnb.WarehouseMgr.Entities.Dto;
|
||||
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
|
||||
using Tnb.WarehouseMgr.Interfaces;
|
||||
using Tnb.WarehouseMgr.Entities.Dto.Outputs;
|
||||
|
||||
namespace Tnb.ProductionMgr
|
||||
{
|
||||
@@ -28,19 +32,23 @@ namespace Tnb.ProductionMgr
|
||||
/// </summary>
|
||||
[ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 700)]
|
||||
[Route("api/[area]/[controller]/[action]")]
|
||||
public class PrdMaterialReceiptService : IPrdMaterialReceiptService, IDynamicApiController, ITransient
|
||||
[ServiceModule(BizTypeId)]
|
||||
public class PrdMaterialReceiptService : BaseWareHouseService,IPrdMaterialReceiptService, IDynamicApiController, ITransient
|
||||
{
|
||||
private const string BizTypeId = "26786119531541";
|
||||
private readonly ISqlSugarRepository<PrdMaterialReceiptH> _repository;
|
||||
private readonly IUserManager _userManager;
|
||||
private readonly IOrganizeService _organizeService;
|
||||
private readonly IBillRullService _billRullService;
|
||||
private readonly IPrdMoTaskService _prdMoTaskService;
|
||||
private readonly IWmsCarryQueryService _wmsCarryQueryService;
|
||||
|
||||
public PrdMaterialReceiptService(
|
||||
ISqlSugarRepository<PrdMaterialReceiptH> repository,
|
||||
IBillRullService billRullService,
|
||||
IOrganizeService organizeService,
|
||||
IPrdMoTaskService prdMoTaskService,
|
||||
IWmsCarryQueryService wmsCarryQueryService,
|
||||
IUserManager userManager
|
||||
)
|
||||
{
|
||||
@@ -49,6 +57,7 @@ namespace Tnb.ProductionMgr
|
||||
_organizeService = organizeService;
|
||||
_billRullService = billRullService;
|
||||
_prdMoTaskService = prdMoTaskService;
|
||||
_wmsCarryQueryService = wmsCarryQueryService;
|
||||
}
|
||||
|
||||
|
||||
@@ -370,5 +379,93 @@ namespace Tnb.ProductionMgr
|
||||
? throw Oops.Bah(result.ErrorMessage)
|
||||
: !result2.IsSuccess ? throw Oops.Bah(result2.ErrorMessage) : (dynamic)"签收成功";
|
||||
}
|
||||
|
||||
public override async Task ModifyAsync(WareHouseUpInput input)
|
||||
{
|
||||
if (input == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(input));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(input.requireId))
|
||||
{
|
||||
throw Oops.Bah("来源id为空");
|
||||
}
|
||||
|
||||
var db = _repository.AsSugarClient();
|
||||
PrdMoTask moTask = await db.Queryable<PrdMoTask>().SingleAsync(x => x.id == input.requireId);
|
||||
if (moTask == null)
|
||||
{
|
||||
throw Oops.Bah($"未找到来源id为{input.requireId}的生产任务单");
|
||||
}
|
||||
string code = await _billRullService.GetBillNumber(Tnb.BasicData.CodeTemplateConst.MATERIAL_RECEIPT_CODE);
|
||||
OrganizeEntity workshop = await _organizeService.GetAnyParentByWorkstationId(moTask.workstation_id, DictConst.RegionCategoryWorkshopCode);
|
||||
List<PrdMaterialReceiptH> insertHList = new List<PrdMaterialReceiptH>();
|
||||
List<PrdMaterialReceiptD> insertDList = new List<PrdMaterialReceiptD>();
|
||||
string orgId = _userManager.GetUserInfo().Result.organizeId;
|
||||
foreach(string carryId in input.carryIds)
|
||||
{
|
||||
WmsCarryH carry = await db.Queryable<WmsCarryH>().SingleAsync(x => x.id == carryId);
|
||||
|
||||
PrdMaterialReceiptH prdMaterialReceiptH = new PrdMaterialReceiptH()
|
||||
{
|
||||
code = code,
|
||||
station_id = moTask.workstation_id,
|
||||
mo_task_id = moTask.id,
|
||||
process_id = moTask.process_id,
|
||||
equip_id = moTask.eqp_id,
|
||||
workshop_id = workshop?.Id ?? "",
|
||||
carry_id = carry.id,
|
||||
workline_id = moTask.workline_id,
|
||||
carry_code = carry.carry_code,
|
||||
mbom_process_id = moTask.mbom_process_id,
|
||||
create_id = _userManager.UserId,
|
||||
create_time = DateTime.Now,
|
||||
org_id = orgId
|
||||
};
|
||||
insertHList.Add(prdMaterialReceiptH);
|
||||
|
||||
CarryQueryOutput carryQueryOutput = await _wmsCarryQueryService.MESCarryQueryResult(new MESCarryQueryResultInput(){carry_code = carry.carry_code});
|
||||
if (carryQueryOutput.wmsCarryCodes != null && carryQueryOutput.wmsCarryCodes.Count > 0)
|
||||
{
|
||||
foreach (var item in carryQueryOutput.wmsCarryCodes)
|
||||
{
|
||||
|
||||
insertDList.Add(new PrdMaterialReceiptD
|
||||
{
|
||||
material_receipt_id = prdMaterialReceiptH.id,
|
||||
material_id = item.material_id,
|
||||
num = item.codeqty,
|
||||
batch = item.code_batch,
|
||||
unit_id = item.unit_id,
|
||||
carry_id = carry.id,
|
||||
barcode = item.barcode,
|
||||
is_all_feeding = 0,
|
||||
member_carry_id = item.member_carryid,
|
||||
member_carry_code = item.member_carrycode,
|
||||
feeding_num = 0,
|
||||
supplier_id = item.supplier_id,
|
||||
instock_time = item.instock_time,
|
||||
check_conclusion = item.check_conclusion,
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw Oops.Bah("未找到物料明细");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
DbResult<bool> result = await db.Ado.UseTranAsync(async () =>
|
||||
{
|
||||
await db.Insertable(insertHList).ExecuteCommandAsync();
|
||||
await db.Insertable(insertDList).ExecuteCommandAsync();
|
||||
});
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
throw Oops.Bah(result.ErrorMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2042,7 +2042,7 @@ namespace Tnb.ProductionMgr
|
||||
string responseresult = await HttpClientHelper.GetRequestAsync(_eleCtlCfg.WriteTagUrl, dicCommand2);
|
||||
Log.Information($"提拔确认完成参数成返回结果:{responseresult}");
|
||||
X2ServerResult x2ServerResult = JsonConvert.DeserializeObject<X2ServerResult>(responseresult);
|
||||
if (x2ServerResult.Result != "OK")
|
||||
if (x2ServerResult.Result != X2ServerResult.Ok)
|
||||
{
|
||||
throw Oops.Bah(x2ServerResult.Msg);
|
||||
}
|
||||
@@ -2071,7 +2071,7 @@ namespace Tnb.ProductionMgr
|
||||
string responseresult = await HttpClientHelper.GetRequestAsync(_eleCtlCfg.WriteTagUrl, dicCommand3,false);
|
||||
Log.Information($"{eqpDaq3.equip_code},{eqpDaq3.label_name}称重完成返回结果:{responseresult}");
|
||||
X2ServerResult x2ServerResult = JsonConvert.DeserializeObject<X2ServerResult>(responseresult);
|
||||
if (x2ServerResult.Result != "OK")
|
||||
if (x2ServerResult.Result != X2ServerResult.Ok)
|
||||
{
|
||||
throw Oops.Bah(x2ServerResult.Msg);
|
||||
}
|
||||
|
||||
@@ -13,8 +13,12 @@ namespace Tnb.Common.Utils
|
||||
public string Content { get; set; }
|
||||
}
|
||||
|
||||
public class X2ServerResult : Exception
|
||||
|
||||
|
||||
public class X2ServerResult
|
||||
{
|
||||
|
||||
public const string Ok = "Ok";
|
||||
public string Result { get; set; }
|
||||
|
||||
public string Msg { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user