From f30ca7871715152a0f3af9def7ae27e58eba4107 Mon Sep 17 00:00:00 2001 From: quowingwang Date: Wed, 26 Nov 2025 14:11:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=AB=E7=A0=81=E5=B7=A5=E5=8D=95=E4=B8=BB?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Mes/WorkOrderInfo/WorkOrderController.cs | 6 +- .../WorkOrderInfo/WorkOrderItemController.cs | 4 +- .../Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs | 1 + .../WorkOrderInfo/IWorkOrderItemService.cs | 2 +- .../WorkOrderInfo/IWorkOrderService.cs | 3 +- .../Mes/WorkOrderInfo/WorkOrderItemService.cs | 7 +- .../Mes/WorkOrderInfo/WorkOrderService.cs | 80 +++++++------------ RIZO.Service/RIZO.Service.csproj | 1 + 8 files changed, 47 insertions(+), 57 deletions(-) diff --git a/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderController.cs b/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderController.cs index 16fc360..b00f90d 100644 --- a/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderController.cs +++ b/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderController.cs @@ -105,10 +105,10 @@ namespace RIZO.Admin.WebApi.Controllers.Mes.WorkOrderInfo /// [HttpPost("createWorkOrderBySacnCode")] [Log(Title = "扫码新增工单主表", BusinessType = BusinessType.INSERT)] - public IActionResult CreateWorkOrderBySacnCode([FromBody] FlowCard flowCard) + public ApiResult CreateWorkOrderBySacnCode([FromBody] string json) { - var response = _WorkOrderService.CreateWorkOrderBySacnCode(flowCard); - return SUCCESS(response); + var response = _WorkOrderService.CreateWorkOrderBySacnCode(json); + return response; } /// diff --git a/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderItemController.cs b/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderItemController.cs index cda5077..876a2e2 100644 --- a/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderItemController.cs +++ b/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderItemController.cs @@ -131,9 +131,9 @@ namespace RIZO.Admin.WebApi.Controllers.Mes.WorkOrderInfo /// [HttpPost("createWorkOrderItemBySacnCode")] [Log(Title = "扫码新增工单主表", BusinessType = BusinessType.INSERT)] - public IActionResult CreateWorkOrderItemBySacnCode([FromBody] PartsBasketCard partsBasketCard) + public IActionResult CreateWorkOrderItemBySacnCode(string json) { - var response = _WorkOrderItemService.CreateWorkOrderItemBySacnCode(partsBasketCard); + var response = _WorkOrderItemService.CreateWorkOrderItemBySacnCode(json); return SUCCESS(response); } } diff --git a/RIZO.Model/Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs b/RIZO.Model/Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs index 796db83..cef2376 100644 --- a/RIZO.Model/Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs +++ b/RIZO.Model/Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs @@ -6,6 +6,7 @@ namespace RIZO.Model.Mes.Dto.WorkOrderInfo /// public class WorkOrderItemQueryDto : PagerInfo { + public string WorkOrderCode { get; set; } public string ProcessCode { get; set; } public string ProcessName { get; set; } diff --git a/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderItemService.cs b/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderItemService.cs index 19da7d4..a900301 100644 --- a/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderItemService.cs +++ b/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderItemService.cs @@ -20,7 +20,7 @@ namespace RIZO.Service.Mes.IMesService.WorkOrderInfo WorkOrderItem AddWorkOrderItem(WorkOrderItem parm); int UpdateWorkOrderItem(WorkOrderItem parm); - WorkOrderItem CreateWorkOrderItemBySacnCode(PartsBasketCard partsBasketCard); + WorkOrderItem CreateWorkOrderItemBySacnCode(string json); } diff --git a/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderService.cs b/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderService.cs index 6684176..8ce8848 100644 --- a/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderService.cs +++ b/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderService.cs @@ -1,3 +1,4 @@ +using Infrastructure.Model; using RIZO.Model.Mes.Dto.GatherData; using RIZO.Model.Mes.Dto.WorkOrderInfo; using RIZO.Model.Mes.WorkOrderInfo; @@ -19,7 +20,7 @@ namespace RIZO.Service.Mes.IMesService.WorkOrderInfo WorkOrder AddWorkOrder(WorkOrder parm); int UpdateWorkOrder(WorkOrder parm); - WorkOrder CreateWorkOrderBySacnCode(FlowCard flowCard); + ApiResult CreateWorkOrderBySacnCode(string json); int ChangeWorkOrderState(WorkOrderState parm); diff --git a/RIZO.Service/Mes/WorkOrderInfo/WorkOrderItemService.cs b/RIZO.Service/Mes/WorkOrderInfo/WorkOrderItemService.cs index 4205b55..0d65330 100644 --- a/RIZO.Service/Mes/WorkOrderInfo/WorkOrderItemService.cs +++ b/RIZO.Service/Mes/WorkOrderInfo/WorkOrderItemService.cs @@ -93,6 +93,10 @@ namespace RIZO.Service.Mes.WorkOrderInfo { predicate.And(it => it.ProcessCode.Contains(parm.ProcessCode)); } + if (!string.IsNullOrWhiteSpace(parm.WorkOrderCode)) + { + predicate.And(it => it.ProcessCode.Contains(parm.WorkOrderCode)); + } return predicate; } @@ -116,8 +120,9 @@ namespace RIZO.Service.Mes.WorkOrderInfo return predicate; } - public WorkOrderItem CreateWorkOrderItemBySacnCode(PartsBasketCard partsBasketCard) + public WorkOrderItem CreateWorkOrderItemBySacnCode(string json) { + PartsBasketCard partsBasketCard = JsonConvert.DeserializeObject(json); string plcCode = ""; PlcFirstCode plcFirstCode = plcFirstCodeService.Queryable() .Where(it => it.Character == partsBasketCard.Character).First(); diff --git a/RIZO.Service/Mes/WorkOrderInfo/WorkOrderService.cs b/RIZO.Service/Mes/WorkOrderInfo/WorkOrderService.cs index 5597485..62ca20b 100644 --- a/RIZO.Service/Mes/WorkOrderInfo/WorkOrderService.cs +++ b/RIZO.Service/Mes/WorkOrderInfo/WorkOrderService.cs @@ -1,6 +1,7 @@ using Aliyun.OSS; using Infrastructure.Attribute; using Infrastructure.Extensions; +using Infrastructure.Model; using Microsoft.Data.SqlClient; using RIZO.Model.Mes.Dto.GatherData; using RIZO.Model.Mes.Dto.WorkOrderInfo; @@ -10,6 +11,7 @@ using RIZO.Repository; using RIZO.Service.Mes.IMesService.MasterData; using RIZO.Service.Mes.IMesService.WorkOrderInfo; using RIZO.Service.Mes.MasterData; +using MDM.Services.Material; using SqlSugar; using SqlSugar.Extensions; using static System.Runtime.InteropServices.JavaScript.JSType; @@ -23,6 +25,7 @@ namespace RIZO.Service.Mes.WorkOrderInfo public class WorkOrderService : BaseService, IWorkOrderService { private WorkOrderItemService workOrderItemService = new WorkOrderItemService(); + private MaterialListService materialListService = new MaterialListService(); /// /// 查询工单主表列表 @@ -128,11 +131,16 @@ namespace RIZO.Service.Mes.WorkOrderInfo } - public WorkOrder CreateWorkOrderBySacnCode(FlowCard flowCard) + public ApiResult CreateWorkOrderBySacnCode(string json) { + try { WorkOrder orderInfoNew = new WorkOrder(); + if (string.IsNullOrWhiteSpace(json)) + { + return ApiResult.Error(400,"扫码数据为空,请重新扫码"); + } //扫码信息转成FlowCard对象 //假设扫码结果是json形式 //{ @@ -145,12 +153,25 @@ namespace RIZO.Service.Mes.WorkOrderInfo // "TotalQty": 100 //} //字符串转对象 - //FlowCard flowCard = JsonConvert.DeserializeObject(ScanCode); + FlowCard flowCard = new FlowCard(); + try + { + flowCard = JsonConvert.DeserializeObject(json); + } + catch (Exception ex) + { + return ApiResult.Error(400, "扫码数据格式错误,无法解析"); + } //根据IDCode解析的数据去检索物料档案 - //var material = materialInfoService.Queryable().Where(it => it.MaterialCode == flowCard.MaterialCode).First(); + //var material = materialListService.Queryable().Where(it => it.Code == flowCard.MaterialCode).First(); //if (material != null) //{ - + // //工艺路线防错 + // //目前情况是工艺路线与物料未绑定 + //} + //else + //{ + // return ApiResult.Error(400, "零件编码:"+flowCard.MaterialCode+"不存在,请添加"); //} string strDay = DateTime.Now.ToString("yyyyMMdd"); //检验流卡二维码生成的工单是否重复生成 @@ -178,57 +199,18 @@ namespace RIZO.Service.Mes.WorkOrderInfo orderInfoNew.UpdateTime = DateTime.Now; int iFlag = Update(orderInfoNew); } - return orderInfoNew; + else + { + orderInfoNew = WorkOrder; + } + return ApiResult.Success(orderInfoNew); } catch (Exception ex) { - return null; + return ApiResult.Error("工单创建失败"); } } - //根据工单主表号去创建工单从表数据 - //private WorkOrderItem createWorkOrderItem(string strWorkOrderCode, string strMaterialCode, string strLineCode, string strLineName, string strProcessCode, string strProcessName, string strIdCode, MaterialInfo material,string strUserId,string strUserName) - //{ - // string plcCode = ""; - // string materialCode = material.MaterialCode; - // string strFeature = material.Feature; - // List plcFirstCodes = plcFirstCodeService.Queryable() - // .Where(it => it.LineCode == strLineCode && (it.Feature == "ALL" || it.Feature == strFeature)).ToList(); - // string strPlcFirstCode = ""; - // if (plcFirstCodes != null && plcFirstCodes.Any()) - // { - // strPlcFirstCode = plcFirstCodes[0].FirstCode; - // } - // int Sequcence = 1; - // WorkOrderItem workOrderItem = workOrderItemService.Queryable() - // .Where(it => it.WorkOrderCode == strWorkOrderCode).OrderByDescending(it => it.Sequcence).First(); - // if (workOrderItem != null) - // { - // Sequcence = workOrderItem.Sequcence; - // Sequcence += 1; - // } - // string formattedSequence = Sequcence.ToString("D4"); - // string strWorkOrderItemCode = strWorkOrderCode + formattedSequence; - // plcCode = strPlcFirstCode + materialCode + strWorkOrderItemCode; - // WorkOrderItem workOrderItem1 = new WorkOrderItem(); - // workOrderItem1.WorkOrderCode = strWorkOrderCode; - // workOrderItem1.WorkOrderItemCode = strWorkOrderItemCode; - // workOrderItem1.PlcCode = plcCode; - // workOrderItem1.ProcessCode = strProcessCode; - // workOrderItem1.ProcessName = strProcessName; - // workOrderItem1.MaterialCode = materialCode; - // workOrderItem1.MaterialName = material.MaterialName; - // workOrderItem1.CreateBy = strUserId; - // workOrderItem1.CreateName = strUserName; - // workOrderItem1.UpdateBy = strUserId; - // workOrderItem1.UpdateName = strUserName; - // workOrderItem1.CreateTime = DateTime.Now; - // workOrderItem1.UpdateTime = DateTime.Now; - // workOrderItem1.Qty = 1; - // workOrderItem1.Sequcence = Sequcence; - // int iFlag = workOrderItemService.Insert(workOrderItem1); - // return workOrderItem1; - //} /// /// OrderStatus 1执行中,2已完成 /// diff --git a/RIZO.Service/RIZO.Service.csproj b/RIZO.Service/RIZO.Service.csproj index 7d78d55..107685d 100644 --- a/RIZO.Service/RIZO.Service.csproj +++ b/RIZO.Service/RIZO.Service.csproj @@ -21,6 +21,7 @@ +