This commit is contained in:
2024-06-25 14:34:01 +08:00
4 changed files with 106 additions and 11 deletions

View File

@@ -13,5 +13,9 @@ namespace Tnb.ProductionMgr.Entities
public string result { get; set; } public string result { get; set; }
public int num { get; set; } public int num { get; set; }
public DateTime create_time { get; set; } public DateTime create_time { get; set; }
/// <summary>
/// 0 未入库 1 已入库
/// </summary>
public int status { get; set; }
} }
} }

View File

@@ -1,5 +1,6 @@
using Tnb.ProductionMgr.Entities; using Tnb.ProductionMgr.Entities;
using Tnb.ProductionMgr.Entities.Dto; using Tnb.ProductionMgr.Entities.Dto;
using Tnb.ProductionMgr.Entities.Dto.PrdManage;
namespace Tnb.ProductionMgr.Interfaces namespace Tnb.ProductionMgr.Interfaces
{ {
@@ -50,5 +51,7 @@ namespace Tnb.ProductionMgr.Interfaces
/// <returns></returns> /// <returns></returns>
Task<dynamic> GetLabelInfoByStationId(MarkingLabelInput input); Task<dynamic> GetLabelInfoByStationId(MarkingLabelInput input);
Task<dynamic> PrdReport(PrdReportCrInput input);
} }
} }

View File

@@ -1699,7 +1699,16 @@ namespace Tnb.ProductionMgr
} }
report.warehouse_id = WmsWareHouseConst.WAREHOUSE_JXK_ID; report.warehouse_id = WmsWareHouseConst.WAREHOUSE_JXK_ID;
report.location_code = "ZZ-01-01";//TODO 组装工单库位先写死 Dictionary<string, string> worklineWarehouseDic = new Dictionary<string, string>()
{
[WmsWareHouseConst.XUELUGUAN1XIAN] = "ZZ-01-01",
[WmsWareHouseConst.XUELUGUAN2XIAN] = "ZZ-01-02",
};
report.location_code = worklineWarehouseDic.GetOrDefault(prdMoTask.workline_id);
if (string.IsNullOrEmpty(report.location_code))
{
report.location_code = "ZZ-01-01";
}
} }
else else
{ {
@@ -1732,7 +1741,7 @@ namespace Tnb.ProductionMgr
// report.location_code = input.location_code; // report.location_code = input.location_code;
report.create_id = _userManager.UserId; report.create_id = _userManager?.UserId ?? WmsWareHouseConst.AdministratorUserId;
report.create_time = DateTime.Now; report.create_time = DateTime.Now;
report.batch = batch; report.batch = batch;
report.barcode = input.mo_task_code + DateTimeOffset.Now.ToUnixTimeSeconds().ToString(); report.barcode = input.mo_task_code + DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
@@ -1970,6 +1979,23 @@ namespace Tnb.ProductionMgr
{ {
throw Oops.Bah(x2ServerResult.Msg); throw Oops.Bah(x2ServerResult.Msg);
} }
Dictionary<string, string> dicCommand4 = new(StringComparer.OrdinalIgnoreCase)
{
["DevName"] = "外包装箱码垛线",
["token"] = _eleCtlCfg.token,
["TagName"] = "WBZX_x1_Enquantity",
["Value"] = "0",
};
Log.Information($"清除提报码垛数参数:{JsonConvert.SerializeObject(dicCommand4)}");
string responseresult2 = await HttpClientHelper.GetRequestAsync(_eleCtlCfg.WriteTagUrl, dicCommand4);
Log.Information($"清除提报码垛数成返回结果:{responseresult2}");
X2ServerResult x2ServerResult2 = JsonConvert.DeserializeObject<X2ServerResult>(responseresult2);
if (x2ServerResult2.Result != X2ServerResult.Ok)
{
throw Oops.Bah(x2ServerResult2.Msg);
}
} }
if (basMaterial.category_id.Contains("ZSJ") || basMaterial.category_id.Contains("DGJCJ")) if (basMaterial.category_id.Contains("ZSJ") || basMaterial.category_id.Contains("DGJCJ"))
@@ -2025,6 +2051,7 @@ namespace Tnb.ProductionMgr
bindCarryCodeInput.location_id = location.id; bindCarryCodeInput.location_id = location.id;
bindCarryCodeInput.location_code = location.location_code; bindCarryCodeInput.location_code = location.location_code;
bindCarryCodeInput.code_batch = prdMoTask.batch; bindCarryCodeInput.code_batch = prdMoTask.batch;
bindCarryCodeInput.create_id = _userManager?.UserId ?? WmsWareHouseConst.AdministratorUserId;
Log.Information($"载具绑定参数:${JsonConvert.SerializeObject(bindCarryCodeInput)}"); Log.Information($"载具绑定参数:${JsonConvert.SerializeObject(bindCarryCodeInput)}");
Tnb.WarehouseMgr.Entities.Dto.Outputs.Result result1 = await _wmsCarryService.BindCarryMaterial(bindCarryCodeInput); Tnb.WarehouseMgr.Entities.Dto.Outputs.Result result1 = await _wmsCarryService.BindCarryMaterial(bindCarryCodeInput);
@@ -2045,6 +2072,7 @@ namespace Tnb.ProductionMgr
wmsPrdInstockInput.type = prdMo.mo_type; wmsPrdInstockInput.type = prdMo.mo_type;
wmsPrdInstockInput.create_id = report.create_id; wmsPrdInstockInput.create_id = report.create_id;
wmsPrdInstockInput.prdInstockDs = new List<WmsPrdInstockDInput>(); wmsPrdInstockInput.prdInstockDs = new List<WmsPrdInstockDInput>();
wmsPrdInstockInput.prdInstockCodes = new List<WmsPrdInstockCodeInput>();
wmsPrdInstockInput.prdInstockDs.Add(new WmsPrdInstockDInput() wmsPrdInstockInput.prdInstockDs.Add(new WmsPrdInstockDInput()
{ {
task_bill_code = prdMoTask.mo_task_code, task_bill_code = prdMoTask.mo_task_code,
@@ -2052,16 +2080,43 @@ namespace Tnb.ProductionMgr
startlocation_id = location.id, startlocation_id = location.id,
carry_id = wmsCarryH.id, carry_id = wmsCarryH.id,
}); });
wmsPrdInstockInput.prdInstockCodes = new List<WmsPrdInstockCodeInput>();
wmsPrdInstockInput.prdInstockCodes.Add(new WmsPrdInstockCodeInput() if (prdMoTask.schedule_type == 1)
{ {
planqty = prdMoTask.scheduled_qty.Value, wmsPrdInstockInput.prdInstockCodes.Add(new WmsPrdInstockCodeInput()
pqty = input.reported_qty, {
code_batch = batch, planqty = prdMoTask.scheduled_qty.Value,
code = report.barcode, pqty = input.reported_qty,
unit_id = prdMoTask.unit_id, code_batch = batch,
carry_id = wmsCarryH.id, code = report.barcode,
}); unit_id = prdMoTask.unit_id,
carry_id = wmsCarryH.id,
});
}
else
{
List<PrdVisionResultRecord> prdVisionResultRecords = await _db.Queryable<PrdVisionResultRecord>()
.Where(x => x.status == 0 && x.result.ToUpper()=="OK").OrderByDescending(x => x.create_time).Take(report.reported_qty.Value).ToListAsync();
List<string> ids = prdVisionResultRecords.Select(x => x.id).ToList();
foreach (var record in prdVisionResultRecords)
{
wmsPrdInstockInput.prdInstockCodes.Add(new WmsPrdInstockCodeInput()
{
planqty = prdMoTask.scheduled_qty.Value,
pqty = 1,
code_batch = batch,
code = record.info,
unit_id = prdMoTask.unit_id,
carry_id = wmsCarryH.id,
});
}
await db.Updateable<PrdVisionResultRecord>()
.SetColumns(x => x.status == 1).Where(x => ids.Contains(x.id)).ExecuteCommandAsync();
}
Log.Information($"生产入库参数:${JsonConvert.SerializeObject(wmsPrdInstockInput)}"); Log.Information($"生产入库参数:${JsonConvert.SerializeObject(wmsPrdInstockInput)}");
Tnb.WarehouseMgr.Entities.Dto.Outputs.Result result2 = await _wmsPrdInstockHService.PrdInstock(wmsPrdInstockInput, _db); Tnb.WarehouseMgr.Entities.Dto.Outputs.Result result2 = await _wmsPrdInstockHService.PrdInstock(wmsPrdInstockInput, _db);
@@ -3399,6 +3454,7 @@ namespace Tnb.ProductionMgr
reocrd.result = input.result; reocrd.result = input.result;
reocrd.create_time = DateTime.Now; reocrd.create_time = DateTime.Now;
reocrd.num = int.Parse(input.station_id); reocrd.num = int.Parse(input.station_id);
reocrd.status = 0;
await _db.Insertable(reocrd).ExecuteCommandAsync(); await _db.Insertable(reocrd).ExecuteCommandAsync();
return $"接收到参数:{JsonConvert.SerializeObject(input)}"; return $"接收到参数:{JsonConvert.SerializeObject(input)}";
} }

View File

@@ -28,6 +28,9 @@ using Tnb.BasicData;
using Tnb.EquipMgr.Entities; using Tnb.EquipMgr.Entities;
using Tnb.WarehouseMgr; using Tnb.WarehouseMgr;
using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities;
using Tnb.ProductionMgr.Entities;
using Tnb.ProductionMgr.Interfaces;
using Tnb.ProductionMgr.Entities.Dto.PrdManage;
namespace Tnb.ProductionMgr namespace Tnb.ProductionMgr
{ {
@@ -42,6 +45,7 @@ namespace Tnb.ProductionMgr
private readonly RedisData _redisData; private readonly RedisData _redisData;
private readonly IWmsEmptyOutstockService _wmsEmptyOutstockService; private readonly IWmsEmptyOutstockService _wmsEmptyOutstockService;
private readonly IWareHouseService _wareHouseService; private readonly IWareHouseService _wareHouseService;
private readonly IPrdMoTaskService _prdMoTaskService;
public TimeWorkService( public TimeWorkService(
RedisData redisData, RedisData redisData,
@@ -49,6 +53,7 @@ namespace Tnb.ProductionMgr
IBillRullService billRullService, IBillRullService billRullService,
IOrganizeService organizeService, IOrganizeService organizeService,
IWmsEmptyOutstockService wmsEmptyOutstockService, IWmsEmptyOutstockService wmsEmptyOutstockService,
IPrdMoTaskService prdMoTaskService,
IWareHouseService wareHouseService IWareHouseService wareHouseService
) )
{ {
@@ -59,6 +64,7 @@ namespace Tnb.ProductionMgr
_billRullService = billRullService; _billRullService = billRullService;
_wmsEmptyOutstockService = wmsEmptyOutstockService; _wmsEmptyOutstockService = wmsEmptyOutstockService;
_wareHouseService = wareHouseService; _wareHouseService = wareHouseService;
_prdMoTaskService = prdMoTaskService;
} }
[HttpGet] [HttpGet]
@@ -334,5 +340,31 @@ namespace Tnb.ProductionMgr
return msg; return msg;
} }
[HttpGet]
[AllowAnonymous]
public async Task<String> AutoPrdReport()
{
string carryCode = await _redisData.TryGetValueByKeyField<string>("外包装箱码垛线", "WBZX_x1_take_tp");
int num = await _redisData.TryGetValueByKeyField<int>("外包装箱码垛线", "WBZX_x1_Enquantity");
if (string.IsNullOrEmpty(carryCode) || num<=0)
{
return "无载具或数量为0";
}
PrdMoTask prdMoTask = await _db.Queryable<PrdMoTask>().Where(x => x.workline_id == WmsWareHouseConst.XUELUGUAN1XIAN && x.mo_task_status == DictConst.InProgressEnCode && x.parent_id == null).FirstAsync();
if (prdMoTask == null)
{
return "血路管1线没有进行中的任务单";
}
PrdReportCrInput input = new PrdReportCrInput();
input.mo_task_code = prdMoTask.mo_task_code;
input.mo_task_id = prdMoTask.id;
input.reported_qty = num;
input.station = "";
input.material_box_code = carryCode;
await _prdMoTaskService.PrdReport(input);
return "true";
}
} }
} }