diff --git a/MDM/Controllers/Plant/PlantProductlinebodyController.cs b/MDM/Controllers/Plant/PlantProductlinebodyController.cs index 408eb2c..ce130cd 100644 --- a/MDM/Controllers/Plant/PlantProductlinebodyController.cs +++ b/MDM/Controllers/Plant/PlantProductlinebodyController.cs @@ -112,7 +112,18 @@ namespace MDM.Controllers.Plant return ToResponse(response); } - + /// + /// 查询所有产线信息下拉列表 + /// + /// + /// + [HttpGet("getAllLine")] + [ActionPermissionFilter(Permission = "business:plantproductlinebody:list")] + public IActionResult GetAllLine() + { + var response = _PlantProductlinebodyService.GetAllLine(); + return SUCCESS(response); + } } diff --git a/MDM/Models/Plant/Dto/PlantProductlinebodyDto.cs b/MDM/Models/Plant/Dto/PlantProductlinebodyDto.cs index b1b667a..cddda70 100644 --- a/MDM/Models/Plant/Dto/PlantProductlinebodyDto.cs +++ b/MDM/Models/Plant/Dto/PlantProductlinebodyDto.cs @@ -50,4 +50,15 @@ namespace MDM.Model.Plant.Dto } + + + //下拉列表用 + public class LinePullDownDto() + { + // 对应前端的value(建议用产线编码作为值) + public string value { get; set; } + + // 对应前端的label(显示产线名称) + public string label { get; set; } + } } \ No newline at end of file diff --git a/MDM/Services/Plant/IService/IPlantProductlinebodyService.cs b/MDM/Services/Plant/IService/IPlantProductlinebodyService.cs index 0a821c7..1dbad96 100644 --- a/MDM/Services/Plant/IService/IPlantProductlinebodyService.cs +++ b/MDM/Services/Plant/IService/IPlantProductlinebodyService.cs @@ -19,5 +19,7 @@ namespace MDM.Services.IPlantService int UpdatePlantProductlinebody(PlantProductlinebody parm); + List GetAllLine(); + } } diff --git a/MDM/Services/Plant/PlantProductlinebodyService.cs b/MDM/Services/Plant/PlantProductlinebodyService.cs index e7b2a04..4bf6f2d 100644 --- a/MDM/Services/Plant/PlantProductlinebodyService.cs +++ b/MDM/Services/Plant/PlantProductlinebodyService.cs @@ -87,5 +87,16 @@ namespace MDM.Services.Plant return Update(model, true); } + public List GetAllLine() + { + var lineOptions = Queryable() + .Select(it => new LinePullDownDto + { + value = it.LineCode, // value绑定产线编码(唯一标识) + label = it.LineName // label显示产线名称 + }) + .ToList(); // 执行查询并转换为列表 + return lineOptions; + } } } \ No newline at end of file diff --git a/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderController.cs b/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderController.cs index e35e4e2..b1c5f0f 100644 --- a/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderController.cs +++ b/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderController.cs @@ -100,7 +100,7 @@ namespace RIZO.Admin.WebApi.Controllers.Mes.WorkOrderInfo } /// - /// 扫码新增工单主表 + /// 扫流卡码新增工单主表 /// /// [HttpPost("createWorkOrderBySacnCode")] diff --git a/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderItemController.cs b/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderItemController.cs index 7133d13..cda5077 100644 --- a/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderItemController.cs +++ b/RIZO.Admin.WebApi/Controllers/Mes/WorkOrderInfo/WorkOrderItemController.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Mvc; using RIZO.Model.Mes.Dto.WorkOrderInfo; using RIZO.Model.Mes.WorkOrderInfo; using RIZO.Service.Mes.IMesService.WorkOrderInfo; +using RIZO.Service.Mes.WorkOrderInfo; //创建时间:2025-11-12 namespace RIZO.Admin.WebApi.Controllers.Mes.WorkOrderInfo @@ -122,5 +123,18 @@ namespace RIZO.Admin.WebApi.Controllers.Mes.WorkOrderInfo true ); } + + + /// + /// 扫零件筐码新增工单从表 + /// + /// + [HttpPost("createWorkOrderItemBySacnCode")] + [Log(Title = "扫码新增工单主表", BusinessType = BusinessType.INSERT)] + public IActionResult CreateWorkOrderItemBySacnCode([FromBody] PartsBasketCard partsBasketCard) + { + var response = _WorkOrderItemService.CreateWorkOrderItemBySacnCode(partsBasketCard); + return SUCCESS(response); + } } } \ No newline at end of file diff --git a/RIZO.Model/Mes/Dto/MasterData/PlcFirstCodeDto.cs b/RIZO.Model/Mes/Dto/MasterData/PlcFirstCodeDto.cs index ed43070..2b69fed 100644 --- a/RIZO.Model/Mes/Dto/MasterData/PlcFirstCodeDto.cs +++ b/RIZO.Model/Mes/Dto/MasterData/PlcFirstCodeDto.cs @@ -13,12 +13,7 @@ namespace RIZO.Model.Mes.Dto.MasterData /// public class PlcFirstCodeDto { - [Required(ErrorMessage = "Id不能为空")] - public long Id { get; set; } - - public string LineCode { get; set; } - - public string Feature { get; set; } + public string Character { get; set; } public string FirstCode { get; set; } diff --git a/RIZO.Model/Mes/Dto/WorkOrderInfo/FlowCard.cs b/RIZO.Model/Mes/Dto/WorkOrderInfo/FlowCard.cs index b69b814..37e771e 100644 --- a/RIZO.Model/Mes/Dto/WorkOrderInfo/FlowCard.cs +++ b/RIZO.Model/Mes/Dto/WorkOrderInfo/FlowCard.cs @@ -16,8 +16,6 @@ namespace RIZO.Model.Mes.Dto.WorkOrderInfo public int TotalQty { get; set; } //批次号 public string BatchNumber { get; set; } - public string LineCode { get; set; } - public string LineName { get; set; } public string UserId { get; set; } public string UserName { get; set; } diff --git a/RIZO.Model/Mes/Dto/WorkOrderInfo/PartsBasketCard.cs b/RIZO.Model/Mes/Dto/WorkOrderInfo/PartsBasketCard.cs new file mode 100644 index 0000000..ee78df8 --- /dev/null +++ b/RIZO.Model/Mes/Dto/WorkOrderInfo/PartsBasketCard.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RIZO.Model.Mes.Dto.WorkOrderInfo +{ + public class PartsBasketCard + { + //工单编码 + public string WorkOrderCode { get; set; } + //零件框码 + public string PartsBasketNo { get; set; } + //工艺特性(自乳化,后乳化四级、后乳化四级) + public string Character { get; set; } + //是否清洗 + public int IfClean { get; set; } + + public string UserId { get; set; } + public string UserName { get; set; } + } +} diff --git a/RIZO.Model/Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs b/RIZO.Model/Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs index 00a1e29..19c870b 100644 --- a/RIZO.Model/Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs +++ b/RIZO.Model/Mes/Dto/WorkOrderInfo/WorkOrderItemDto.cs @@ -52,6 +52,9 @@ namespace RIZO.Model.Mes.Dto.WorkOrderInfo public string UpdateName { get; set; } [ExcelColumn(Name = "更新时间")] public DateTime? UpdateTime { get; set; } - + [ExcelColumn(Name = "工艺特性")] + public string Character { get; set; } + [ExcelColumn(Name = "是否清洗")] + public int IfClean { get; set; } } } \ No newline at end of file diff --git a/RIZO.Model/Mes/MasterData/PlcFirstCode.cs b/RIZO.Model/Mes/MasterData/PlcFirstCode.cs index 004d354..6e68e24 100644 --- a/RIZO.Model/Mes/MasterData/PlcFirstCode.cs +++ b/RIZO.Model/Mes/MasterData/PlcFirstCode.cs @@ -14,15 +14,9 @@ namespace RIZO.Model.Mes.MasterData public long Id { get; set; } /// - /// 产线编码 + /// 工艺特性 /// - [SugarColumn(ColumnName = "line_code")] - public string LineCode { get; set; } - - /// - /// 灵敏度等级 - /// - public string Feature { get; set; } + public string Character { get; set; } /// /// PLC通讯首位编码 diff --git a/RIZO.Model/Mes/WorkOrderInfo/WorkOrderItem.cs b/RIZO.Model/Mes/WorkOrderInfo/WorkOrderItem.cs index 663c75f..d59dfff 100644 --- a/RIZO.Model/Mes/WorkOrderInfo/WorkOrderItem.cs +++ b/RIZO.Model/Mes/WorkOrderInfo/WorkOrderItem.cs @@ -115,5 +115,18 @@ namespace RIZO.Model.Mes.WorkOrderInfo /// [SugarColumn(ColumnName = "identification_code")] public string IdentificationCode { get; set; } + + /// + /// 工艺特性 + /// + [SugarColumn(ColumnName = "character")] + public string Character { get; set; } + + /// + /// 是否清洗(0否,1是) + /// + [SugarColumn(ColumnName = "ifClean")] + public int IfClean { get; set; } + } } \ No newline at end of file diff --git a/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderItemService.cs b/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderItemService.cs index 053c5cc..19da7d4 100644 --- a/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderItemService.cs +++ b/RIZO.Service/Mes/IMesService/WorkOrderInfo/IWorkOrderItemService.cs @@ -1,6 +1,7 @@ using Infrastructure.Model; using RIZO.Model.Mes.WorkOrderInfo; using RIZO.Model.Mes.Dto.WorkOrderInfo; +using Aliyun.OSS; namespace RIZO.Service.Mes.IMesService.WorkOrderInfo { @@ -19,6 +20,8 @@ namespace RIZO.Service.Mes.IMesService.WorkOrderInfo WorkOrderItem AddWorkOrderItem(WorkOrderItem parm); int UpdateWorkOrderItem(WorkOrderItem parm); + WorkOrderItem CreateWorkOrderItemBySacnCode(PartsBasketCard partsBasketCard); + } } diff --git a/RIZO.Service/Mes/WorkOrderInfo/WorkOrderItemService.cs b/RIZO.Service/Mes/WorkOrderInfo/WorkOrderItemService.cs index c556118..01cf056 100644 --- a/RIZO.Service/Mes/WorkOrderInfo/WorkOrderItemService.cs +++ b/RIZO.Service/Mes/WorkOrderInfo/WorkOrderItemService.cs @@ -1,6 +1,7 @@ using Infrastructure.Attribute; using Infrastructure.Extensions; using RIZO.Model.Mes.Dto.WorkOrderInfo; +using RIZO.Model.Mes.MasterData; using RIZO.Model.Mes.WorkOrderInfo; using RIZO.Repository; using RIZO.Service.Mes.IMesService.WorkOrderInfo; @@ -13,6 +14,7 @@ namespace RIZO.Service.Mes.WorkOrderInfo [AppService(ServiceType = typeof(IWorkOrderItemService), ServiceLifetime = LifeTime.Transient)] public class WorkOrderItemService : BaseService, IWorkOrderItemService { + private PlcFirstCodeService plcFirstCodeService = new PlcFirstCodeService(); /// /// 查询工单从表(存储工单所需物料明细及物料流转状态)列表 /// @@ -114,5 +116,43 @@ namespace RIZO.Service.Mes.WorkOrderInfo return predicate; } + public WorkOrderItem CreateWorkOrderItemBySacnCode(PartsBasketCard partsBasketCard) + { + string plcCode = ""; + PlcFirstCode plcFirstCode = plcFirstCodeService.Queryable() + .Where(it => it.Character == partsBasketCard.Character).First(); + string strPlcFirstCode = ""; + if (plcFirstCode != null) + { + strPlcFirstCode = plcFirstCode.FirstCode; + } + int Sequcence = 1; + WorkOrderItem workOrderItem = Queryable() + .Where(it => it.WorkOrderCode == partsBasketCard.WorkOrderCode).OrderByDescending(it => it.Sequcence).First(); + if (workOrderItem != null) + { + Sequcence = workOrderItem.Sequcence; + Sequcence += 1; + } + string formattedSequence = Sequcence.ToString("D2"); + string strWorkOrderItemCode = partsBasketCard.WorkOrderCode + formattedSequence; + plcCode = strPlcFirstCode + strWorkOrderItemCode; + WorkOrderItem workOrderItem1 = new WorkOrderItem(); + workOrderItem1.WorkOrderCode = partsBasketCard.WorkOrderCode; + workOrderItem1.WorkOrderItemCode = strWorkOrderItemCode; + workOrderItem1.PlcCode = plcCode; + workOrderItem1.Character = partsBasketCard.Character; + workOrderItem1.IfClean = partsBasketCard.IfClean; + workOrderItem1.CreateBy = partsBasketCard.UserId; + workOrderItem1.CreateName = partsBasketCard.UserName; + workOrderItem1.UpdateBy = partsBasketCard.UserId; + workOrderItem1.UpdateName = partsBasketCard.UserName; + workOrderItem1.CreateTime = DateTime.Now; + workOrderItem1.UpdateTime = DateTime.Now; + workOrderItem1.Sequcence = Sequcence; + int iFlag = Insert(workOrderItem1); + return workOrderItem1; + } + } } \ No newline at end of file diff --git a/RIZO.Service/Mes/WorkOrderInfo/WorkOrderService.cs b/RIZO.Service/Mes/WorkOrderInfo/WorkOrderService.cs index 5f7a351..8b63337 100644 --- a/RIZO.Service/Mes/WorkOrderInfo/WorkOrderService.cs +++ b/RIZO.Service/Mes/WorkOrderInfo/WorkOrderService.cs @@ -18,7 +18,6 @@ namespace RIZO.Service.Mes.WorkOrderInfo [AppService(ServiceType = typeof(IWorkOrderService), ServiceLifetime = LifeTime.Transient)] public class WorkOrderService : BaseService, IWorkOrderService { - private PlcFirstCodeService plcFirstCodeService = new PlcFirstCodeService(); private WorkOrderItemService workOrderItemService = new WorkOrderItemService(); ///