diff --git a/DOAN.Admin.WebApi/Controllers/JobKanban/WorkOrderProgressController.cs b/DOAN.Admin.WebApi/Controllers/JobKanban/WorkOrderProgressController.cs
index df86b09..516977b 100644
--- a/DOAN.Admin.WebApi/Controllers/JobKanban/WorkOrderProgressController.cs
+++ b/DOAN.Admin.WebApi/Controllers/JobKanban/WorkOrderProgressController.cs
@@ -123,7 +123,7 @@ namespace DOAN.WebApi.Controllers.JobKanban
return SUCCESS(response);
}
- //TODO 获取某条产线 某个日期,某个班组的生产中的工单 上位机接口
+ //TODO 获取某条产线 某个日期,某个班组的生产中的工单 上位机接口 (废弃)
[HttpGet("get_producting_workorder")]
public IActionResult GetProductingWorkorder(string line_code, DateTime handleDate)
{
@@ -138,7 +138,7 @@ namespace DOAN.WebApi.Controllers.JobKanban
}
return SUCCESS(response);
}
- //TODO 添加标签日志 上位机接口
+ //TODO 添加标签日志 上位机接口 (废弃)
[HttpGet("add_label_log")]
public IActionResult AddLabelLog(string labelContext, string workOrder)
{
@@ -152,7 +152,7 @@ namespace DOAN.WebApi.Controllers.JobKanban
}
- //TODO 扫码校验判断标签是否与当前工单匹配 0 不匹配 1匹配
+ //TODO 扫码校验判断标签是否与当前工单匹配 0 不匹配 1匹配 (废弃)
[HttpGet("label_workorder_match")]
public IActionResult LabelWorkOrderMatch(string LabelContext,string workOrder)
{
@@ -164,6 +164,26 @@ namespace DOAN.WebApi.Controllers.JobKanban
return SUCCESS(response);
}
+
+ //TODO 防错并且报工
+ ///
+ /// 防错并且报工
+ ///
+ ///
+ ///
+ ///
+ ///
+ [HttpGet("errorProofingAndReportingWork")]
+ public IActionResult ErrorProofingAndReportingWork(string workorder,string labelContext)
+ {
+ if (string.IsNullOrEmpty(labelContext) || string.IsNullOrEmpty(workorder))
+ {
+ throw new CustomException("workorder或者labelContext为空");
+ }
+
+ int response= workorderProgressService.ErrorProofingAndReportingWork(workorder, labelContext);
+ return SUCCESS(response);
+ }
///
/// TODO 完成 工单和报工 (启用)
diff --git a/DOAN.Model/MES/product/ProReportworkDetail.cs b/DOAN.Model/MES/product/ProReportworkDetail.cs
new file mode 100644
index 0000000..bfcaf18
--- /dev/null
+++ b/DOAN.Model/MES/product/ProReportworkDetail.cs
@@ -0,0 +1,52 @@
+namespace DOAN.Model.MES.product;
+///
+/// 报工表 详情
+///
+[SugarTable("pro_reportwork_detail")]
+public class ProReportworkDetail
+{
+ ///
+ /// 雪花
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = false)]
+ public string Id { get; set; }
+
+
+ ///
+ /// 工单号
+ ///
+ [SugarColumn(ColumnName = "workorder")]
+ public string Workorder { get; set; }
+
+ ///
+ /// 标签号
+ ///
+ [SugarColumn(ColumnName = "label_code")]
+ public string LabelCode { get; set; }
+
+
+ ///
+ /// 创建人
+ ///
+ [SugarColumn(ColumnName = "cREATED_BY")]
+ public string CreatedBy { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [SugarColumn(ColumnName = "cREATED_TIME")]
+ public DateTime? CreatedTime { get; set; }
+
+ ///
+ /// 更新人
+ ///
+ [SugarColumn(ColumnName = "uPDATED_BY")]
+ public string UpdatedBy { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ [SugarColumn(ColumnName = "uPDATED_TIME")]
+ public DateTime? UpdatedTime { get; set; }
+
+}
\ No newline at end of file
diff --git a/DOAN.Service/JobKanban/IService/IWorkorderProgressService.cs b/DOAN.Service/JobKanban/IService/IWorkorderProgressService.cs
index d7d7e31..c5d6dae 100644
--- a/DOAN.Service/JobKanban/IService/IWorkorderProgressService.cs
+++ b/DOAN.Service/JobKanban/IService/IWorkorderProgressService.cs
@@ -33,7 +33,7 @@ namespace DOAN.Service.JobKanban.IService
int LabelWorkOrderMatch(string LabelContext, string workOrder);
-
+ int ErrorProofingAndReportingWork(string workorder, string labelContext);
int FinishAndReportWorkorder(string workorder, int finish_num);
diff --git a/DOAN.Service/JobKanban/WorkorderProgressService.cs b/DOAN.Service/JobKanban/WorkorderProgressService.cs
index 6712947..df38c4b 100644
--- a/DOAN.Service/JobKanban/WorkorderProgressService.cs
+++ b/DOAN.Service/JobKanban/WorkorderProgressService.cs
@@ -238,6 +238,57 @@ namespace DOAN.Service.JobKanban
.ExecuteCommand();
}
+ ///
+ /// 防错并且报工
+ ///
+ ///
+ ///
+ ///
+ public int ErrorProofingAndReportingWork(string workorder, string labelContext)
+ {
+ ProWorkorder checked_workorder = Context.Queryable().Where(it => it.Workorder == workorder)
+ .First();
+ if (!labelContext.Contains(checked_workorder.Specification))
+ {
+ // 产品不属于这个工单里
+ return -1;
+ }
+ // 记录条码
+ ProReportworkDetail detail = new ProReportworkDetail();
+ detail.Id = XueHua;
+ detail.Workorder=workorder;
+ detail.LabelCode = labelContext;
+ detail.CreatedBy = "MES";
+ detail.CreatedTime = DateTime.Now;
+ Context.Insertable(detail).ExecuteCommand();
+
+ // 累加报工数
+ ProReportwork reportWork = new ProReportwork();
+ reportWork.Id = XueHua;
+ reportWork.FkWorkorder = workorder;
+ reportWork.DispatchNum = checked_workorder.DeliveryNum;
+ reportWork.FinishedNum = 1;
+ reportWork.GroupCode = checked_workorder.GroupCode;
+ reportWork.LineCode = checked_workorder.LineCode;
+ reportWork.CreatedTime = DateTime.Now;
+ reportWork.CreatedBy = "kanban";
+ reportWork.UpdatedBy = "kanban";
+ reportWork.UpdatedTime = DateTime.Now;
+ var x= Context.Storageable(reportWork).WhereColumns(it=>it.FkWorkorder).ToStorage();
+ int result= x.AsInsertable.ExecuteCommand();//不存在插入
+ result+= x.AsUpdateable
+ .IgnoreColumns("Id")
+ .IgnoreColumns("DispatchNum")
+ .IgnoreColumns("FinishedNum")
+ .IgnoreColumns("GroupCode")
+ .IgnoreColumns("CreatedTime")
+ .IgnoreColumns("LineCode")
+ .IgnoreColumns("CreatedBy")
+ .SetColumns(it => it.FinishedNum== it.FinishedNum+1)
+ .ExecuteCommand();//存在更新
+
+ return result;
+ }
public int FinishAndReportWorkorder(string workorder, int finish_num)