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)