齐套出库
This commit is contained in:
@@ -34,6 +34,7 @@ using Microsoft.Extensions.Logging;
|
||||
using JNPF.Systems.Entitys.System;
|
||||
using JNPF.Systems.Entitys.Permission;
|
||||
using Aop.Api.Domain;
|
||||
using Senparc.Weixin.Work.AdvancedAPIs.OaDataOpen;
|
||||
|
||||
namespace Tnb.WarehouseMgr
|
||||
{
|
||||
@@ -497,42 +498,42 @@ namespace Tnb.WarehouseMgr
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> CallRackToProductionLine(MaterialTransferCallRackToProductionLineInput input)
|
||||
{
|
||||
WmsCarryH wmsCarryH = _db.Queryable<WmsCarryH>().Where(r => r.carry_code == input.carry_code).First();
|
||||
if (wmsCarryH == null)
|
||||
{
|
||||
Logger.LogWarning($"不存在编码为{input.carry_code}的料架号!");
|
||||
throw new AppFriendlyException($"不存在编码为{input.carry_code}的料架号!", 500);
|
||||
}
|
||||
if (string.IsNullOrEmpty(wmsCarryH.work_station))
|
||||
{
|
||||
Logger.LogWarning($"此料架目标工位为空!{input.carry_code}");
|
||||
throw new AppFriendlyException($"此料架目标工位为空!{input.carry_code}!", 500);
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(wmsCarryH.location_id))
|
||||
{
|
||||
Logger.LogWarning($"此料架的库位为空!{input.carry_code}");
|
||||
throw new AppFriendlyException($"此料架的库位为空!{input.carry_code}", 500);
|
||||
}
|
||||
|
||||
BasLocation endlocation = _db.Queryable<BasLocation>().Where(r => r.location_code == wmsCarryH.work_station).First();
|
||||
|
||||
WmsDistaskH wmsDistaskH = _db.Queryable<WmsDistaskH>().Where(r => r.carry_code == wmsCarryH.carry_code && r.status != WmsWareHouseConst.TASK_BILL_STATUS_COMPLE_ID).First();
|
||||
if (wmsDistaskH != null)
|
||||
{
|
||||
Logger.LogWarning($"此料架{input.carry_code}存在未完成的任务{wmsDistaskH.bill_code}!");
|
||||
throw new AppFriendlyException($"此料架{input.carry_code}存在未完成的任务{wmsDistaskH.bill_code}!", 500);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
WmsCarryH wmsCarryH = _db.Queryable<WmsCarryH>().Where(r => r.carry_code == input.carry_code).First();
|
||||
if (wmsCarryH == null)
|
||||
{
|
||||
Logger.LogWarning($"【CallRackToProductionLine】不存在编码为{input.carry_code}的料架号!");
|
||||
throw new AppFriendlyException($"不存在编码为{input.carry_code}的料架号!", 500);
|
||||
}
|
||||
if (string.IsNullOrEmpty(wmsCarryH.work_station))
|
||||
{
|
||||
Logger.LogWarning($"【CallRackToProductionLine】此料架目标工位为空!{input.carry_code}");
|
||||
throw new AppFriendlyException($"此料架目标工位为空!{input.carry_code}!", 500);
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(wmsCarryH.location_id))
|
||||
{
|
||||
Logger.LogWarning($"【CallRackToProductionLine】此料架的库位为空!{input.carry_code}");
|
||||
throw new AppFriendlyException($"此料架的库位为空!{input.carry_code}", 500);
|
||||
}
|
||||
|
||||
BasLocation endlocation = _db.Queryable<BasLocation>().Where(r => r.location_code == wmsCarryH.work_station).First();
|
||||
|
||||
WmsPretaskH wmsPretaskH = _db.Queryable<WmsPretaskH>().Where(r => r.carry_code == wmsCarryH.carry_code && r.status != WmsWareHouseConst.PRETASK_BILL_STATUS_COMPLE_ID).First();
|
||||
if (wmsPretaskH != null)
|
||||
{
|
||||
Logger.LogWarning($"【CallRackToProductionLine】此料架{input.carry_code}存在未完成的预任务{wmsPretaskH.bill_code}!");
|
||||
throw new AppFriendlyException($"此料架{input.carry_code}存在未完成的预任务{wmsPretaskH.bill_code}!", 500);
|
||||
}
|
||||
|
||||
CommonCreatePretaskInput commonCreatePretaskInput = new CommonCreatePretaskInput();
|
||||
commonCreatePretaskInput.startlocation_id = wmsCarryH.location_id;
|
||||
commonCreatePretaskInput.endlocation_id = endlocation.id;
|
||||
commonCreatePretaskInput.carry_id = wmsCarryH.id;
|
||||
commonCreatePretaskInput.carry_code = wmsCarryH.carry_code;
|
||||
commonCreatePretaskInput.task_type = "";
|
||||
commonCreatePretaskInput.biz_type = "";
|
||||
commonCreatePretaskInput.biz_type = "FloorCallMaterial";
|
||||
|
||||
var res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput);
|
||||
if (res.code != JNPF.Common.Enums.HttpStatusCode.OK)
|
||||
@@ -550,5 +551,75 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从暂存仓呼叫料架到产线
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> RackAndMatByWorkstation(MaterialTransferGetRackAndMatByWorkStationInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<WmsCarryH> wmsCarryHs = _db.Queryable<WmsCarryH>().Where(r => r.work_station == input.work_station).ToList();
|
||||
if (string.IsNullOrEmpty(input.work_station))
|
||||
{
|
||||
Logger.LogWarning($"【RackAndMatByWorkstation】工位不能为空!");
|
||||
throw new AppFriendlyException($"工位不能为空!", 500);
|
||||
}
|
||||
if (wmsCarryHs.Count == 0)
|
||||
{
|
||||
Logger.LogWarning($"【RackAndMatByWorkstation】工位{input.work_station}未绑定料架!");
|
||||
throw new AppFriendlyException($"工位{input.work_station}未绑定料架!", 500);
|
||||
}
|
||||
|
||||
JObject keyValuePairs = new JObject();
|
||||
JArray jArray = new JArray();
|
||||
foreach (WmsCarryH wmsCarryH in wmsCarryHs)
|
||||
{
|
||||
if (wmsCarryH.carrystd_id != "26037267399717")
|
||||
{
|
||||
Logger.LogWarning($"【RackAndMatByWorkstation】工位{input.work_station}绑定的{wmsCarryH.carry_code}载具不是料架类型!请检查");
|
||||
continue;
|
||||
}
|
||||
|
||||
var matCodes = _db.Queryable<WmsCarryD>()
|
||||
.InnerJoin<WmsCarryCode>((a, b) => a.membercarry_id == b.carry_id)
|
||||
.InnerJoin<BasMaterial>((a, b, c) => b.material_id == c.id)
|
||||
.Where((a, b, c) => a.carry_id == wmsCarryH.id)
|
||||
.Select((a, b, c) => new
|
||||
{
|
||||
b.org_id,
|
||||
a.membercarry_id,
|
||||
a.membercarry_code,
|
||||
b.material_id,
|
||||
b.material_code,
|
||||
material_name = c.name,
|
||||
c.material_specification,
|
||||
b.unit_id,
|
||||
b.barcode,
|
||||
b.code_batch,
|
||||
b.codeqty,
|
||||
b.create_id,
|
||||
b.create_time
|
||||
}).ToList();
|
||||
|
||||
JObject pairs = new JObject();
|
||||
pairs["carry_id"] = wmsCarryH.id;
|
||||
pairs["carry_code"] = wmsCarryH.carry_code;
|
||||
pairs["details"] = JArray.Parse(JsonConvert.SerializeObject(matCodes));
|
||||
jArray.Add(pairs);
|
||||
}
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功", jArray);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.LogError("【RackAndMatByWorkstation】" + ex.Message);
|
||||
Logger.LogError("【RackAndMatByWorkstation】" + ex.StackTrace);
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user