diff --git a/DOAN.Admin.WebApi/Controllers/MES/product/ProPlanAchievementrateController.cs b/DOAN.Admin.WebApi/Controllers/MES/product/ProPlanAchievementrateController.cs
new file mode 100644
index 0000000..4c9536f
--- /dev/null
+++ b/DOAN.Admin.WebApi/Controllers/MES/product/ProPlanAchievementrateController.cs
@@ -0,0 +1,110 @@
+using Microsoft.AspNetCore.Mvc;
+using DOAN.Model.Dto;
+using DOAN.Service.MES.product.IService;
+using DOAN.Service.MES.product;
+using DOAN.Admin.WebApi.Filters;
+using DOAN.Model.MES.product.Dto;
+using DOAN.Model.MES.product;
+
+//创建时间:2025-10-16
+namespace DOAN.Admin.WebApi.Controllers
+{
+ ///
+ /// 日计划达成率
+ ///
+ [Verify]
+ [Route("mes/productManagement/ProPlanAchievementrate")]
+ public class ProPlanAchievementrateController : BaseController
+ {
+ ///
+ /// 日计划达成率接口
+ ///
+ private readonly IProPlanAchievementrateService _ProPlanAchievementrateService;
+
+ public ProPlanAchievementrateController(IProPlanAchievementrateService ProPlanAchievementrateService)
+ {
+ _ProPlanAchievementrateService = ProPlanAchievementrateService;
+ }
+
+ ///
+ /// 查询日计划达成率列表
+ ///
+ ///
+ ///
+ [HttpGet("list")]
+ [ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:list")]
+ public IActionResult QueryProPlanAchievementrate([FromQuery] ProPlanAchievementrateQueryDto parm)
+ {
+ var response = _ProPlanAchievementrateService.GetList(parm);
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 查询日计划达成率详情
+ ///
+ ///
+ ///
+ [HttpGet("{Id}")]
+ [ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:query")]
+ public IActionResult GetProPlanAchievementrate(int Id)
+ {
+ var response = _ProPlanAchievementrateService.GetInfo(Id);
+
+ var info = response.Adapt();
+ return SUCCESS(info);
+ }
+
+ ///
+ /// 添加日计划达成率
+ ///
+ ///
+ [HttpPost]
+ [ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:add")]
+ [Log(Title = "日计划达成率", BusinessType = BusinessType.INSERT)]
+ public IActionResult AddProPlanAchievementrate([FromBody] ProPlanAchievementrateDto parm)
+ {
+ var modal = parm.Adapt().ToCreate(HttpContext);
+
+ var response = _ProPlanAchievementrateService.AddProPlanAchievementrate(modal);
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 更新日计划达成率
+ ///
+ ///
+ [HttpPut]
+ [ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:edit")]
+ [Log(Title = "日计划达成率", BusinessType = BusinessType.UPDATE)]
+ public IActionResult UpdateProPlanAchievementrate([FromBody] ProPlanAchievementrateDto parm)
+ {
+ var modal = parm.Adapt().ToUpdate(HttpContext);
+ var response = _ProPlanAchievementrateService.UpdateProPlanAchievementrate(modal);
+
+ return ToResponse(response);
+ }
+
+ ///
+ /// 删除日计划达成率
+ ///
+ ///
+ [HttpDelete("{ids}")]
+ [ActionPermissionFilter(Permission = "productManagement:proplanachievementrate:delete")]
+ [Log(Title = "日计划达成率", BusinessType = BusinessType.DELETE)]
+ public IActionResult DeleteProPlanAchievementrate(string ids)
+ {
+ int[] idsArr = Tools.SpitIntArrary(ids);
+ if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
+
+ var response = _ProPlanAchievementrateService.Delete(idsArr);
+
+ return ToResponse(response);
+ }
+
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Admin.WebApi/wwwroot/Generatecode/DOANAdmin.NET-工艺路线表-0919171640.zip b/DOAN.Admin.WebApi/wwwroot/Generatecode/DOANAdmin.NET-工艺路线表-0919171640.zip
deleted file mode 100644
index 2bccfb7..0000000
Binary files a/DOAN.Admin.WebApi/wwwroot/Generatecode/DOANAdmin.NET-工艺路线表-0919171640.zip and /dev/null differ
diff --git a/DOAN.Admin.WebApi/wwwroot/Generatecode/DOANAdmin.NET-工艺路线表-0919171714.zip b/DOAN.Admin.WebApi/wwwroot/Generatecode/DOANAdmin.NET-工艺路线表-0919171714.zip
deleted file mode 100644
index a880acf..0000000
Binary files a/DOAN.Admin.WebApi/wwwroot/Generatecode/DOANAdmin.NET-工艺路线表-0919171714.zip and /dev/null differ
diff --git a/DOAN.Model/MES/product/Dto/ProPlanAchievementrateDto.cs b/DOAN.Model/MES/product/Dto/ProPlanAchievementrateDto.cs
new file mode 100644
index 0000000..62fccdb
--- /dev/null
+++ b/DOAN.Model/MES/product/Dto/ProPlanAchievementrateDto.cs
@@ -0,0 +1,88 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace DOAN.Model.MES.product.Dto
+{
+ ///
+ /// 日计划达成率查询对象
+ ///
+ public class ProPlanAchievementrateQueryDto : PagerInfo
+ {
+ public string Project { get; set; }
+ }
+
+ ///
+ /// 日计划达成率输入输出对象
+ ///
+ public class ProPlanAchievementrateDto
+ {
+ [Required(ErrorMessage = "自增主键不能为空")]
+ public int Id { get; set; }
+
+ public string Project { get; set; }
+
+ public string AgroupMonitor { get; set; }
+
+ public int? AgroupProductNum { get; set; }
+
+ public int? AgroupStandardYield { get; set; }
+
+ public int? AgroupPlanNum { get; set; }
+
+ public decimal AgroupCompletionRate { get; set; }
+
+ public string BgroupMonitor { get; set; }
+
+ public int? BgroupProductNum { get; set; }
+
+ public int? BgroupStandardYield { get; set; }
+
+ public int? BgroupPlanNum { get; set; }
+
+ public decimal BgroupCompletionRate { get; set; }
+
+ public int? SummaryActualNum { get; set; }
+
+ public int? SummaryPlanNum { get; set; }
+
+ public decimal SummaryPlanAchievementRate { get; set; }
+
+ public int? DownQuality { get; set; }
+
+ public int? DownSuppler { get; set; }
+
+ public int? DownDeviceFailure { get; set; }
+
+ public int? DownDeviceDebug { get; set; }
+
+ public int? DownLogisticsWaitMaterial { get; set; }
+
+ public int? DownLackMaterial { get; set; }
+
+ public int? DownProject { get; set; }
+
+ public int? DownInjection { get; set; }
+
+ public int? DownAssembly { get; set; }
+
+ public int? AllLineStopTime { get; set; }
+
+ public string MainProblemDescription { get; set; }
+
+ public string Strategy { get; set; }
+
+ public string ResponsiblePerson { get; set; }
+
+ public DateTime? RecordDate { get; set; }
+
+ public string CreatedBy { get; set; }
+
+ public DateTime? CreatedTime { get; set; }
+
+ public string UpdatedBy { get; set; }
+
+ public DateTime? UpdatedTime { get; set; }
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/DOAN.Model/MES/product/ProPlanAchievementrate.cs b/DOAN.Model/MES/product/ProPlanAchievementrate.cs
new file mode 100644
index 0000000..69f8f2e
--- /dev/null
+++ b/DOAN.Model/MES/product/ProPlanAchievementrate.cs
@@ -0,0 +1,207 @@
+
+namespace DOAN.Model.MES.product
+{
+ ///
+ /// 日计划达成率
+ ///
+ [SugarTable("pro_plan_achievementrate")]
+ public class ProPlanAchievementrate
+ {
+ ///
+ /// 自增主键
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = false)]
+ public int Id { get; set; }
+
+ ///
+ /// 项目号(线别)
+ ///
+ public string Project { get; set; }
+
+ ///
+ /// A班组长
+ ///
+ [SugarColumn(ColumnName = "agroup_monitor")]
+ public string AgroupMonitor { get; set; }
+
+ ///
+ /// A班生产数量
+ ///
+ [SugarColumn(ColumnName = "agroup_product_num")]
+ public int? AgroupProductNum { get; set; }
+
+ ///
+ /// A班标准班产
+ ///
+ [SugarColumn(ColumnName = "agroup_standard_yield")]
+ public int? AgroupStandardYield { get; set; }
+
+ ///
+ /// A班计划数量
+ ///
+ [SugarColumn(ColumnName = "agroup_plan_num")]
+ public int? AgroupPlanNum { get; set; }
+
+ ///
+ /// A班完成率
+ ///
+ [SugarColumn(ColumnName = "agroup_completion_rate")]
+ public decimal AgroupCompletionRate { get; set; }
+
+ ///
+ /// B班组长
+ ///
+ [SugarColumn(ColumnName = "bgroup_monitor")]
+ public string BgroupMonitor { get; set; }
+
+ ///
+ /// B班生产数量
+ ///
+ [SugarColumn(ColumnName = "bgroup_product_num")]
+ public int? BgroupProductNum { get; set; }
+
+ ///
+ /// B班标准班产
+ ///
+ [SugarColumn(ColumnName = "bgroup_standard_yield")]
+ public int? BgroupStandardYield { get; set; }
+
+ ///
+ /// B班计划数量
+ ///
+ [SugarColumn(ColumnName = "bgroup_plan_num")]
+ public int? BgroupPlanNum { get; set; }
+
+ ///
+ /// B班完成率
+ ///
+ [SugarColumn(ColumnName = "bgroup_completion_rate")]
+ public decimal BgroupCompletionRate { get; set; }
+
+ ///
+ /// 日汇总-实际数
+ ///
+ [SugarColumn(ColumnName = "summary_actual_num")]
+ public int? SummaryActualNum { get; set; }
+
+ ///
+ /// 日汇总-计划数
+ ///
+ [SugarColumn(ColumnName = "summary_plan_num")]
+ public int? SummaryPlanNum { get; set; }
+
+ ///
+ /// 日汇总-计划达成率
+ ///
+ [SugarColumn(ColumnName = "summary_plan_achievement_rate")]
+ public decimal SummaryPlanAchievementRate { get; set; }
+
+ ///
+ /// 质量问题
+ ///
+ [SugarColumn(ColumnName = "down_quality")]
+ public int? DownQuality { get; set; }
+
+ ///
+ /// 供应商问题
+ ///
+ [SugarColumn(ColumnName = "down_suppler")]
+ public int? DownSuppler { get; set; }
+
+ ///
+ /// 设备故障
+ ///
+ [SugarColumn(ColumnName = "down_device_failure")]
+ public int? DownDeviceFailure { get; set; }
+
+ ///
+ /// 设备调试
+ ///
+ [SugarColumn(ColumnName = "down_device_debug")]
+ public int? DownDeviceDebug { get; set; }
+
+ ///
+ /// 物流待料
+ ///
+ [SugarColumn(ColumnName = "down_logistics_wait_material")]
+ public int? DownLogisticsWaitMaterial { get; set; }
+
+ ///
+ /// 缺货待料
+ ///
+ [SugarColumn(ColumnName = "down_lack_material")]
+ public int? DownLackMaterial { get; set; }
+
+ ///
+ /// 项目
+ ///
+ [SugarColumn(ColumnName = "down_project")]
+ public int? DownProject { get; set; }
+
+ ///
+ /// 注塑
+ ///
+ [SugarColumn(ColumnName = "down_injection")]
+ public int? DownInjection { get; set; }
+
+ ///
+ /// 装配
+ ///
+ [SugarColumn(ColumnName = "down_assembly")]
+ public int? DownAssembly { get; set; }
+
+ ///
+ /// 总停线时间
+ ///
+ [SugarColumn(ColumnName = "all_line_stop_time")]
+ public int? AllLineStopTime { get; set; }
+
+ ///
+ /// 主要问题描述
+ ///
+ [SugarColumn(ColumnName = "main_problem_description")]
+ public string MainProblemDescription { get; set; }
+
+ ///
+ /// 策略
+ ///
+ public string Strategy { get; set; }
+
+ ///
+ /// 责任人
+ ///
+ [SugarColumn(ColumnName = "responsible_person")]
+ public string ResponsiblePerson { get; set; }
+
+ ///
+ /// 记录日期
+ ///
+ [SugarColumn(ColumnName = "record_date")]
+ public DateTime? RecordDate { 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/MES/product/IService/IProPlanAchievementrateService.cs b/DOAN.Service/MES/product/IService/IProPlanAchievementrateService.cs
new file mode 100644
index 0000000..d6f7dbe
--- /dev/null
+++ b/DOAN.Service/MES/product/IService/IProPlanAchievementrateService.cs
@@ -0,0 +1,24 @@
+using System;
+using DOAN.Model;
+using DOAN.Model.Dto;
+using DOAN.Model.MES.product;
+using DOAN.Model.MES.product.Dto;
+using System.Collections.Generic;
+
+namespace DOAN.Service.MES.product.IService
+{
+ ///
+ /// 日计划达成率service接口
+ ///
+ public interface IProPlanAchievementrateService : IBaseService
+ {
+ PagedInfo GetList(ProPlanAchievementrateQueryDto parm);
+
+ ProPlanAchievementrate GetInfo(int Id);
+
+ ProPlanAchievementrate AddProPlanAchievementrate(ProPlanAchievementrate parm);
+
+ int UpdateProPlanAchievementrate(ProPlanAchievementrate parm);
+
+ }
+}
diff --git a/DOAN.Service/MES/product/ProPlanAchievementrateService.cs b/DOAN.Service/MES/product/ProPlanAchievementrateService.cs
new file mode 100644
index 0000000..0ac32bb
--- /dev/null
+++ b/DOAN.Service/MES/product/ProPlanAchievementrateService.cs
@@ -0,0 +1,111 @@
+using System;
+using SqlSugar;
+using Infrastructure.Attribute;
+using Infrastructure.Extensions;
+using DOAN.Model;
+using DOAN.Model.Dto;
+using DOAN.Model.MES.product;
+using DOAN.Model.MES.product.Dto;
+using DOAN.Repository;
+using DOAN.Service.MES.product.IService;
+using System.Linq;
+namespace DOAN.Service.MES.product
+{
+ ///
+ /// 日计划达成率Service业务层处理
+ ///
+ [AppService(ServiceType = typeof(IProPlanAchievementrateService), ServiceLifetime = LifeTime.Transient)]
+ public class ProPlanAchievementrateService : BaseService, IProPlanAchievementrateService
+ {
+ ///
+ /// 查询日计划达成率列表
+ ///
+ ///
+ ///
+ public PagedInfo GetList(ProPlanAchievementrateQueryDto parm)
+ {
+ var predicate = Expressionable.Create()
+ .AndIF(!string.IsNullOrEmpty(parm.Project), it => it.Project.Contains(parm.Project))
+
+ ;
+
+ var response = Queryable()
+ .Where(predicate.ToExpression())
+ .ToPage(parm);
+
+ return response;
+ }
+
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ public ProPlanAchievementrate GetInfo(int Id)
+ {
+ var response = Queryable()
+ .Where(x => x.Id == Id)
+ .First();
+
+ return response;
+ }
+
+ ///
+ /// 添加日计划达成率
+ ///
+ ///
+ ///
+ public ProPlanAchievementrate AddProPlanAchievementrate(ProPlanAchievementrate model)
+ {
+ return Context.Insertable(model).ExecuteReturnEntity();
+ }
+
+ ///
+ /// 修改日计划达成率
+ ///
+ ///
+ ///
+ public int UpdateProPlanAchievementrate(ProPlanAchievementrate model)
+ {
+ //var response = Update(w => w.Id == model.Id, it => new ProPlanAchievementrate()
+ //{
+ // Project = model.Project,
+ // AgroupMonitor = model.AgroupMonitor,
+ // AgroupProductNum = model.AgroupProductNum,
+ // AgroupStandardYield = model.AgroupStandardYield,
+ // AgroupPlanNum = model.AgroupPlanNum,
+ // AgroupCompletionRate = model.AgroupCompletionRate,
+ // BgroupMonitor = model.BgroupMonitor,
+ // BgroupProductNum = model.BgroupProductNum,
+ // BgroupStandardYield = model.BgroupStandardYield,
+ // BgroupPlanNum = model.BgroupPlanNum,
+ // BgroupCompletionRate = model.BgroupCompletionRate,
+ // SummaryActualNum = model.SummaryActualNum,
+ // SummaryPlanNum = model.SummaryPlanNum,
+ // SummaryPlanAchievementRate = model.SummaryPlanAchievementRate,
+ // DownQuality = model.DownQuality,
+ // DownSuppler = model.DownSuppler,
+ // DownDeviceFailure = model.DownDeviceFailure,
+ // DownDeviceDebug = model.DownDeviceDebug,
+ // DownLogisticsWaitMaterial = model.DownLogisticsWaitMaterial,
+ // DownLackMaterial = model.DownLackMaterial,
+ // DownProject = model.DownProject,
+ // DownInjection = model.DownInjection,
+ // DownAssembly = model.DownAssembly,
+ // AllLineStopTime = model.AllLineStopTime,
+ // MainProblemDescription = model.MainProblemDescription,
+ // Strategy = model.Strategy,
+ // ResponsiblePerson = model.ResponsiblePerson,
+ // RecordDate = model.RecordDate,
+ // CreatedBy = model.CreatedBy,
+ // CreatedTime = model.CreatedTime,
+ // UpdatedBy = model.UpdatedBy,
+ // UpdatedTime = model.UpdatedTime,
+ //});
+ //return response;
+ return Update(model, true);
+ }
+
+ }
+}
\ No newline at end of file