diff --git a/DOAN.Admin.WebApi/Controllers/MES/process/ProcessmodelOperationController.cs b/DOAN.Admin.WebApi/Controllers/MES/process/ProcessmodelOperationController.cs new file mode 100644 index 0000000..a9633ed --- /dev/null +++ b/DOAN.Admin.WebApi/Controllers/MES/process/ProcessmodelOperationController.cs @@ -0,0 +1,126 @@ +using Microsoft.AspNetCore.Mvc; +using DOAN.Model.Dto; +using DOAN.Admin.WebApi.Filters; +using DOAN.Service.MES.process.IService; +using DOAN.Model.MES.process; +using DOAN.Model.MES.process.Dto; +using DOAN.Service.Business; + +//创建时间:2025-09-20 +namespace DOAN.Admin.WebApi.Controllers +{ + /// + /// 工序表 + /// + [Verify] + [Route("mes/process/ProcessmodelOperation")] + public class ProcessmodelOperationController : BaseController + { + /// + /// 工序表接口 + /// + private readonly IProcessmodelOperationService _ProcessmodelOperationService; + + public ProcessmodelOperationController(IProcessmodelOperationService ProcessmodelOperationService) + { + _ProcessmodelOperationService = ProcessmodelOperationService; + } + + + /// + /// 查询工艺路线父子表 + /// + /// + /// + [HttpGet("list_parent")] + [ActionPermissionFilter(Permission = "process:processmodelrouting:list")] + public IActionResult QueryProcessmodelRouting([FromQuery] ProcessmodelRoutingQueryDto parm) + { + var response = _ProcessmodelOperationService.GetList(parm); + return SUCCESS(response); + } + + + + /// + /// 查询工序表列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "process:processmodeloperation:list")] + public IActionResult QueryProcessmodelOperation([FromQuery] ProcessmodelOperationQueryDto parm) + { + var response = _ProcessmodelOperationService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询工序表详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "process:processmodeloperation:query")] + public IActionResult GetProcessmodelOperation(int Id) + { + var response = _ProcessmodelOperationService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加工序表 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "process:processmodeloperation:add")] + [Log(Title = "工序表", BusinessType = BusinessType.INSERT)] + public IActionResult AddProcessmodelOperation([FromBody] ProcessmodelOperationDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _ProcessmodelOperationService.AddProcessmodelOperation(modal); + + return SUCCESS(response); + } + + /// + /// 更新工序表 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "process:processmodeloperation:edit")] + [Log(Title = "工序表", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateProcessmodelOperation([FromBody] ProcessmodelOperationDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _ProcessmodelOperationService.UpdateProcessmodelOperation(modal); + + return ToResponse(response); + } + + /// + /// 删除工序表 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "process:processmodeloperation:delete")] + [Log(Title = "工序表", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteProcessmodelOperation(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _ProcessmodelOperationService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/DOAN.Admin.WebApi/Controllers/MES/process/ProcessmodelRoutingController.cs b/DOAN.Admin.WebApi/Controllers/MES/process/ProcessmodelRoutingController.cs index 76f9800..50bb3e3 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/process/ProcessmodelRoutingController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/process/ProcessmodelRoutingController.cs @@ -1,8 +1,10 @@ using Microsoft.AspNetCore.Mvc; using DOAN.Model.Dto; -using DOAN.Model.Business; -using DOAN.Service.Business.IBusinessService; + using DOAN.Admin.WebApi.Filters; +using DOAN.Service.MES.process.IService; +using DOAN.Model.MES.process; +using DOAN.Model.MES.process.Dto; //创建时间:2025-09-19 namespace DOAN.Admin.WebApi.Controllers diff --git a/DOAN.Model/MES/process/Dto/ProcessmodelOperationDto.cs b/DOAN.Model/MES/process/Dto/ProcessmodelOperationDto.cs new file mode 100644 index 0000000..3a5bad1 --- /dev/null +++ b/DOAN.Model/MES/process/Dto/ProcessmodelOperationDto.cs @@ -0,0 +1,55 @@ +using System.ComponentModel.DataAnnotations; + +namespace DOAN.Model.MES.process.Dto +{ + /// + /// 工序表查询对象 + /// + public class ProcessmodelOperationQueryDto : PagerInfo + { + } + + /// + /// 工序表输入输出对象 + /// + public class ProcessmodelOperationDto + { + [Required(ErrorMessage = "主键ID不能为空")] + public int Id { get; set; } + + [Required(ErrorMessage = "工序编码不能为空")] + public string OperationCode { get; set; } + + [Required(ErrorMessage = "工序名称不能为空")] + public string OperationName { get; set; } + + [Required(ErrorMessage = "所属工艺路线ID不能为空")] + public int RoutingId { get; set; } + + [Required(ErrorMessage = "工序顺序号不能为空")] + public int OperationSeq { get; set; } + + public string WorkCenter { get; set; } + + public decimal StandardTime { get; set; } + + public string Description { get; set; } + + [Required(ErrorMessage = "创建时间不能为空")] + public DateTime? CreateTime { get; set; } + + public DateTime? UpdateTime { get; set; } + + [Required(ErrorMessage = "是否有效:1=有效,0=无效不能为空")] + public string IsActive { get; set; } + + + + } + + + public class ProcessmodelRouteParentDto :ProcessmodelRouting + { + public int parentId { get; set; } + } +} \ No newline at end of file diff --git a/DOAN.Model/MES/process/Dto/ProcessmodelRoutingDto.cs b/DOAN.Model/MES/process/Dto/ProcessmodelRoutingDto.cs index e67d7b5..0c99c78 100644 --- a/DOAN.Model/MES/process/Dto/ProcessmodelRoutingDto.cs +++ b/DOAN.Model/MES/process/Dto/ProcessmodelRoutingDto.cs @@ -1,6 +1,6 @@ using System.ComponentModel.DataAnnotations; -namespace DOAN.Model.Dto +namespace DOAN.Model.MES.process.Dto { /// /// 工艺路线表查询对象 diff --git a/DOAN.Model/MES/process/ProcessmodelOperation.cs b/DOAN.Model/MES/process/ProcessmodelOperation.cs new file mode 100644 index 0000000..4724651 --- /dev/null +++ b/DOAN.Model/MES/process/ProcessmodelOperation.cs @@ -0,0 +1,76 @@ + +namespace DOAN.Model.MES.process +{ + /// + /// 工序表 + /// + [SugarTable("processmodel_operation")] + public class ProcessmodelOperation + { + /// + /// 主键ID + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 工序编码 + /// + [SugarColumn(ColumnName = "operation_code")] + public string OperationCode { get; set; } + + /// + /// 工序名称 + /// + [SugarColumn(ColumnName = "operation_name")] + public string OperationName { get; set; } + + /// + /// 所属工艺路线ID + /// + [SugarColumn(ColumnName = "routing_id")] + public int RoutingId { get; set; } + + /// + /// 工序顺序号 + /// + [SugarColumn(ColumnName = "operation_seq")] + public int OperationSeq { get; set; } + + /// + /// 工作中心/设备/车间 + /// + [SugarColumn(ColumnName = "work_center")] + public string WorkCenter { get; set; } + + /// + /// 标准工时(单位:分钟) + /// + [SugarColumn(ColumnName = "standard_time")] + public decimal StandardTime { get; set; } + + /// + /// 工序描述 + /// + public string Description { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "create_time")] + public DateTime? CreateTime { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "update_time")] + public DateTime? UpdateTime { get; set; } + + /// + /// 是否有效:1=有效,0=无效 + /// + [SugarColumn(ColumnName = "is_active")] + public string IsActive { get; set; } + + } +} \ No newline at end of file diff --git a/DOAN.Model/MES/process/ProcessmodelRouting.cs b/DOAN.Model/MES/process/ProcessmodelRouting.cs index 33920f7..d057d10 100644 --- a/DOAN.Model/MES/process/ProcessmodelRouting.cs +++ b/DOAN.Model/MES/process/ProcessmodelRouting.cs @@ -1,5 +1,5 @@ -namespace DOAN.Model.Business +namespace DOAN.Model.MES.process { /// /// 工艺路线表 diff --git a/DOAN.Service/MES/process/IService/IProcessmodelOperationService.cs b/DOAN.Service/MES/process/IService/IProcessmodelOperationService.cs new file mode 100644 index 0000000..addab35 --- /dev/null +++ b/DOAN.Service/MES/process/IService/IProcessmodelOperationService.cs @@ -0,0 +1,26 @@ + +using DOAN.Model; +using DOAN.Model.Dto; +using System.Collections.Generic; +using DOAN.Model.MES.process.Dto; +using DOAN.Model.MES.process; +using Aliyun.OSS; + +namespace DOAN.Service.MES.process.IService +{ + /// + /// 工序表service接口 + /// + public interface IProcessmodelOperationService : IBaseService + { + List GetList(ProcessmodelRoutingQueryDto parm); + PagedInfo GetList(ProcessmodelOperationQueryDto parm); + + ProcessmodelOperation GetInfo(int Id); + + ProcessmodelOperation AddProcessmodelOperation(ProcessmodelOperation parm); + + int UpdateProcessmodelOperation(ProcessmodelOperation parm); + + } +} diff --git a/DOAN.Service/MES/process/IService/IProcessmodelRoutingService.cs b/DOAN.Service/MES/process/IService/IProcessmodelRoutingService.cs index 0d8c7d9..fb38fd3 100644 --- a/DOAN.Service/MES/process/IService/IProcessmodelRoutingService.cs +++ b/DOAN.Service/MES/process/IService/IProcessmodelRoutingService.cs @@ -1,10 +1,12 @@ using System; using DOAN.Model; using DOAN.Model.Dto; -using DOAN.Model.Business; -using System.Collections.Generic; -namespace DOAN.Service.Business.IBusinessService +using System.Collections.Generic; +using DOAN.Model.MES.process.Dto; +using DOAN.Model.MES.process; + +namespace DOAN.Service.MES.process.IService { /// /// 工艺路线表service接口 diff --git a/DOAN.Service/MES/process/ProcessmodelOperationService.cs b/DOAN.Service/MES/process/ProcessmodelOperationService.cs new file mode 100644 index 0000000..2dbd355 --- /dev/null +++ b/DOAN.Service/MES/process/ProcessmodelOperationService.cs @@ -0,0 +1,114 @@ +using System; +using SqlSugar; +using Infrastructure.Attribute; +using Infrastructure.Extensions; +using DOAN.Model; +using DOAN.Model.Dto; + +using DOAN.Repository; + +using System.Linq; +using DOAN.Model.MES.process.Dto; +using DOAN.Service.MES.process.IService; +using DOAN.Model.MES.process; + +namespace DOAN.Service.Business +{ + /// + /// 工序表Service业务层处理 + /// + [AppService(ServiceType = typeof(IProcessmodelOperationService), ServiceLifetime = LifeTime.Transient)] + public class ProcessmodelOperationService : BaseService, IProcessmodelOperationService + { + + public List GetList(ProcessmodelRoutingQueryDto parm) + { + var predicate = Expressionable.Create() + .AndIF(!string.IsNullOrEmpty(parm.RoutingCode), p => parm.RoutingCode.Contains(p.RoutingCode)) + .AndIF(!string.IsNullOrEmpty(parm.RoutingName), p => parm.RoutingName.Contains(p.RoutingName)) + .AndIF(!string.IsNullOrEmpty(parm.Version), p => parm.Version.Contains(p.Version)); + + var response = Context.Queryable() + .Where(predicate.ToExpression()) + .Select(p => new ProcessmodelRouteParentDto() + { + RoutingCode = p.RoutingCode, + RoutingName = p.RoutingName, + Version = p.Version, + ProductCode = p.ProductCode, + Description = p.Description, + parentId = 0 + + }); + return response.ToList(); + + + } + + + + /// + /// 查询工序表列表 + /// + /// + /// + public PagedInfo GetList(ProcessmodelOperationQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public ProcessmodelOperation GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加工序表 + /// + /// + /// + public ProcessmodelOperation AddProcessmodelOperation(ProcessmodelOperation model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改工序表 + /// + /// + /// + public int UpdateProcessmodelOperation(ProcessmodelOperation model) + { + //var response = Update(w => w.Id == model.Id, it => new ProcessmodelOperation() + //{ + // OperationCode = model.OperationCode, + // OperationName = model.OperationName, + // OperationSeq = model.OperationSeq, + // WorkCenter = model.WorkCenter, + // StandardTime = model.StandardTime, + // Description = model.Description, + // UpdateTime = model.UpdateTime, + // IsActive = model.IsActive, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/DOAN.Service/MES/process/ProcessmodelRoutingService.cs b/DOAN.Service/MES/process/ProcessmodelRoutingService.cs index ac9f2b6..629005a 100644 --- a/DOAN.Service/MES/process/ProcessmodelRoutingService.cs +++ b/DOAN.Service/MES/process/ProcessmodelRoutingService.cs @@ -4,10 +4,13 @@ using Infrastructure.Attribute; using Infrastructure.Extensions; using DOAN.Model; using DOAN.Model.Dto; -using DOAN.Model.Business; + using DOAN.Repository; using DOAN.Service.Business.IBusinessService; using System.Linq; +using DOAN.Service.MES.process.IService; +using DOAN.Model.MES.process; +using DOAN.Model.MES.process.Dto; namespace DOAN.Service.Business {