From 4a88b242bb1bf594ecddb8959da4aa6e53a13e04 Mon Sep 17 00:00:00 2001
From: zhou keda <1315948824@qq.com>
Date: Mon, 12 Aug 2024 11:50:34 +0800
Subject: [PATCH] =?UTF-8?q?=E9=9B=B6=E9=83=A8=E4=BB=B6=E6=9C=80=E7=BB=88?=
=?UTF-8?q?=E6=A3=80=E9=AA=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IPrdMoTaskService.cs | 2 +-
.../Tnb.ProductionMgr/PrdMoTaskService.cs | 93 +++++++++----------
.../Tnb.ProductionMgr/TimeWorkService.cs | 6 +-
.../Enums/EnumTriggerType.cs | 4 +-
QcMgr/Tnb.QcMgr/QcCheckPlanService.cs | 8 ++
.../Entity/WmsCarryH.cs | 2 +-
6 files changed, 62 insertions(+), 53 deletions(-)
diff --git a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs
index dba4f2aa..af11e706 100644
--- a/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr.Interfaces/IPrdMoTaskService.cs
@@ -51,7 +51,7 @@ namespace Tnb.ProductionMgr.Interfaces
///
Task GetLabelInfoByStationId(MarkingLabelInput input);
- Task PrdReport(PrdReportCrInput input);
+ Task PrdReport(PrdReportCrInput input);
}
}
diff --git a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
index fc82ab0c..19bb52d2 100644
--- a/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/PrdMoTaskService.cs
@@ -1621,7 +1621,7 @@ namespace Tnb.ProductionMgr
///
}
///
[HttpPost]
- public async Task PrdReport(PrdReportCrInput input)
+ public async Task PrdReport(PrdReportCrInput input)
{
await prdreportSemaphore.WaitAsync();
try
@@ -1723,21 +1723,8 @@ namespace Tnb.ProductionMgr
report.material_box_code = input.material_box_code;
if (prdMoTask.schedule_type == 2)
{
- // if (dic.TryGetValue(prdMoTask.workline_id, out string value))
- // {
- // materialBoxCode = await _redisData.GetHash("value", "WBZX_x1_take_tp");
- // if (materialBoxCode == null || materialBoxCode.IsEmpty())
- // {
- // throw Oops.Bah("托盘条码信息未空");
- // }
- report.material_box_code = input.material_box_code;
- // }
- // else
- // {
- // throw Oops.Bah("未找到对应产线");
- // }
+ report.material_box_code = input.material_box_code;
- // report.warehouse_id = WmsWareHouseConst.WAREHOUSE_JXK_ID;
report.warehouse_id = WmsWareHouseConst.WAREHOUSE_DMJC_ID;
Dictionary worklineWarehouseDic = new Dictionary()
{
@@ -1804,22 +1791,52 @@ namespace Tnb.ProductionMgr
report.unit_id = prdMoTask.unit_id;
report.process_id = mbomProcess?.process_id ?? "";
- row = await db.Insertable(report).ExecuteCommandAsync();
+
+ WmsCarryH wmsCarryH = await db.Queryable().SingleAsync((x => x.carry_code == materialBoxCode));
+ if (wmsCarryH == null)
+ throw Oops.Bah($"未找到{materialBoxCode}载具");
+ if (wmsCarryH.carry_status == ((int)EnumCarryStatus.占用).ToString())
+ {
+ throw Oops.Bah($"提报失败,载具已绑定");
+ }
+ List wmsCarryCodes = await db.Queryable().Where(x=>x.carry_id==wmsCarryH.id).ToListAsync();
+ if (wmsCarryCodes != null && wmsCarryCodes.Count > 0)
+ {
+ Log.Error($"载具{materialBoxCode}状态为{wmsCarryH.carry_status},但有条码{JsonConvert.SerializeObject(wmsCarryCodes)}");
+ throw Oops.Bah($"提报失败,载具异常");
+ }
+
+
#region 质检模块
//质检模块
- // TriggerPlanEntity entity = new()
- // {
- // materialid = prdMoTask.material_id,
- // processid = prdMoTask.process_id,
- // workid = prdMoTask.workstation_id
- // };
- // int? reported = prdMoTask.reported_work_qty == null ? 0 : prdMoTask.reported_work_qty;
- // int? scrap = prdMoTask.scrap_qty == null ? 0 : prdMoTask.scrap_qty;
- // entity.oldpronum = reported + scrap;
- // entity.newpronum = input.reported_qty;
- // entity.triggerevent = EnumTriggerEvent.生产检定量;
- // await _qcCheckPlanService.CreateTask(entity);
+
+ if (wmsCarryH.is_check == 0)
+ {
+ TriggerPlanEntity entity = new()
+ {
+ materialid = prdMoTask.material_id,
+ processid = prdMoTask.process_id,
+ workid = prdMoTask.workstation_id
+ };
+ int? reported = prdMoTask.reported_work_qty == null ? 0 : prdMoTask.reported_work_qty;
+ int? scrap = prdMoTask.scrap_qty == null ? 0 : prdMoTask.scrap_qty;
+ entity.oldpronum = reported + scrap;
+ entity.newpronum = input.reported_qty;
+ // entity.triggerevent = EnumTriggerEvent.生产检定量;
+ entity.triggerevent = EnumTriggerEvent.零部件最终检验事件;
+ await _qcCheckPlanService.CreateTask(entity);
+ await _db.Ado.CommitTranAsync();
+ return "生成质检任务";
+ }else if (wmsCarryH.is_check==1)
+ {
+ return "检验中,请稍后提报";
+ }
+ else
+ {
+ row = await db.Insertable(report).ExecuteCommandAsync();
+ }
+
#endregion
_ = prdMoTask.reported_work_qty == null
? await db.Updateable()
@@ -2012,24 +2029,6 @@ namespace Tnb.ProductionMgr
- // Dictionary header = new()
- // {
- // ["Authorization"] = App.HttpContext != null ? App.HttpContext.Request.Headers["Authorization"] : ""
- // };
- // BasFactoryConfig config = await _repository.AsSugarClient().Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.DOMAIN);
- WmsCarryH wmsCarryH = await db.Queryable().SingleAsync((x => x.carry_code == materialBoxCode));
- if (wmsCarryH == null)
- throw Oops.Bah($"未找到{materialBoxCode}载具");
- if (wmsCarryH.carry_status == ((int)EnumCarryStatus.占用).ToString())
- {
- throw Oops.Bah($"提报失败,载具已绑定");
- }
- List wmsCarryCodes = await db.Queryable().Where(x=>x.carry_id==wmsCarryH.id).ToListAsync();
- if (wmsCarryCodes != null && wmsCarryCodes.Count > 0)
- {
- Log.Error($"载具{materialBoxCode}状态为{wmsCarryH.carry_status},但有条码{JsonConvert.SerializeObject(wmsCarryCodes)}");
- throw Oops.Bah($"提报失败,载具异常");
- }
BindCarryCodeInput bindCarryCodeInput = new BindCarryCodeInput();
bindCarryCodeInput.carry_id = wmsCarryH.id;
@@ -2299,7 +2298,7 @@ namespace Tnb.ProductionMgr
//
// }
- return true;
+ return "提报成功";
}
///
diff --git a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
index ed2785ba..1b90dc6a 100644
--- a/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
+++ b/ProductionMgr/Tnb.ProductionMgr/TimeWorkService.cs
@@ -675,8 +675,8 @@ namespace Tnb.ProductionMgr
input.reported_qty = num;
input.station = "";
input.material_box_code = carryCode;
- await _prdMoTaskService.PrdReport(input);
- return "true";
+
+ return await _prdMoTaskService.PrdReport(input);
}
[HttpGet]
@@ -704,7 +704,7 @@ namespace Tnb.ProductionMgr
input.station = "";
input.material_box_code = carryCode;
await _prdMoTaskService.PrdReport(input);
- return "true";
+ return await _prdMoTaskService.PrdReport(input);
}
[HttpGet]
diff --git a/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs b/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs
index 33a749e2..103670f4 100644
--- a/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs
+++ b/QcMgr/Tnb.QcMgr.Entities/Enums/EnumTriggerType.cs
@@ -35,7 +35,9 @@ namespace Tnb.QcMgr.Entities.Enums
[Remark("生产检", "固定次数")]
生产检固定次数 = 12,
[Remark("生产检", "按流转卡")]
- 生产检按流转卡 = 13
+ 生产检按流转卡 = 13,
+ [Remark("零部件最终检验", "零部件最终检验事件")]
+ 零部件最终检验事件 = 14
}
public class RemarkAttribute : Attribute
{
diff --git a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs
index 283da28c..df2c6565 100644
--- a/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs
+++ b/QcMgr/Tnb.QcMgr/QcCheckPlanService.cs
@@ -512,6 +512,14 @@ namespace Tnb.QcMgr
removePlanHs.Add(plan);
}
}
+ if (enumTriggerEvent == EnumTriggerEvent.零部件最终检验事件)
+ {
+ int? number = _repository.AsSugarClient().Queryable().Where(p => p.mainid == plan.id).First().number;
+ if ((entity.newpronum + (entity.oldpronum / number)) <= (entity.oldpronum / number))
+ {
+ removePlanHs.Add(plan);
+ }
+ }
if (enumTriggerEvent == EnumTriggerEvent.生产检定码)
{
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsCarryH.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsCarryH.cs
index be1aaa56..73f2b7b5 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsCarryH.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsCarryH.cs
@@ -72,7 +72,7 @@ public partial class WmsCarryH : BaseEntity
public string out_status { get; set; }
///
- /// 是否检验
+ /// 检验状态 0 未检验 1 检验中 2 合格 3 不合格
///
public int is_check { get; set; }