diff --git a/ZR.Admin.WebApi/Controllers/mes/pro/ProWorkorderV2Controller.cs b/ZR.Admin.WebApi/Controllers/mes/pro/ProWorkorderV2Controller.cs index 3676c8c2..6707adde 100644 --- a/ZR.Admin.WebApi/Controllers/mes/pro/ProWorkorderV2Controller.cs +++ b/ZR.Admin.WebApi/Controllers/mes/pro/ProWorkorderV2Controller.cs @@ -382,6 +382,16 @@ namespace ZR.Admin.WebApi.Controllers.mes.pro return ToResponse(new ApiResult(200, "success", data)); } + /// + /// 获取1000条工单的状态工单列表 + /// + [HttpGet("getWorkoderStates")] + public ApiResult getWorkoderStates(int pageNum, int pageSize, int year = -1, int week = -1, int date = -1) + { + ApiResult apiResult = proWorkorderService.getWorkoderStates(pageNum, pageSize, year, week, date, 0); + + return apiResult; + } } diff --git a/ZR.Admin.WebApi/wwwroot/export/2025年51周5日计划-12-18-141250.xlsx b/ZR.Admin.WebApi/wwwroot/export/2025年51周5日计划-12-18-141250.xlsx new file mode 100644 index 00000000..d5adef2c Binary files /dev/null and b/ZR.Admin.WebApi/wwwroot/export/2025年51周5日计划-12-18-141250.xlsx differ diff --git a/ZR.Model/MES/pro/DTO/ProWorkorderV2Dto.cs b/ZR.Model/MES/pro/DTO/ProWorkorderV2Dto.cs index f17e3ceb..5848e9db 100644 --- a/ZR.Model/MES/pro/DTO/ProWorkorderV2Dto.cs +++ b/ZR.Model/MES/pro/DTO/ProWorkorderV2Dto.cs @@ -146,4 +146,21 @@ namespace ZR.Model.DTO.MES.pro /// public DateTime UpdatedTime { get; set; } } + + public class ProWorkorderV2Dto_stateCount + { + public int total { get; set; } = 0; + //正常 + public int state0 { get; set; } + //物料不存在 + public int state1 { get; set; } + //毛坯号异常 + public int state2 { get; set; } + //颜色异常 + public int state3 { get; set; } + //规格异常 + public int state4 { get; set; } + //物料不包含此描述 + public int state5 { get; set; } + } } \ No newline at end of file diff --git a/ZR.Service/mes/pro/IService/IProWorkorderServiceV2.cs b/ZR.Service/mes/pro/IService/IProWorkorderServiceV2.cs index 65c3e750..46884d52 100644 --- a/ZR.Service/mes/pro/IService/IProWorkorderServiceV2.cs +++ b/ZR.Service/mes/pro/IService/IProWorkorderServiceV2.cs @@ -1,4 +1,5 @@ -using ZR.Model.MES.pro; +using Infrastructure.Model; +using ZR.Model.MES.pro; using ZR.Model.MES.pro.DTO; namespace ZR.Service.mes.pro.IService @@ -10,6 +11,7 @@ namespace ZR.Service.mes.pro.IService public (List, int) GetWorkorderList(int pageNum, int pageSize, int year, int week, int date, int isSchedule); public (List, int) GetWorkorderList_Piliang(int pageNum, int pageSize, int year, int week, int date, int isSchedule); + public ApiResult getWorkoderStates(int pageNum, int pageSize, int year, int week, int date, int isSchedule); public string ImportExceldata(List proWorklplans); diff --git a/ZR.Service/mes/pro/ProWorkorderServiceV2.cs b/ZR.Service/mes/pro/ProWorkorderServiceV2.cs index 42839e5a..16f00f70 100644 --- a/ZR.Service/mes/pro/ProWorkorderServiceV2.cs +++ b/ZR.Service/mes/pro/ProWorkorderServiceV2.cs @@ -1,11 +1,14 @@ -using System; -using System.IO; -using Infrastructure; +using Infrastructure; using Infrastructure.Attribute; +using Infrastructure.Model; using Microsoft.AspNetCore.Hosting; using MiniExcelLibs; using Model.DBModel; using SqlSugar; +using System; +using System.IO; +using ZR.Model.DTO.MES.pro; +using ZR.Model.mes.pro; using ZR.Model.MES.pro; using ZR.Model.MES.pro.DTO; using ZR.Model.MES.wms; @@ -106,6 +109,64 @@ namespace ZR.Service.mes.pro return (proWorkorderList, totalCount); } + /// + /// 获取1000条数据生产计划状态 + /// + /// + /// + /// + /// + /// + /// + /// + public ApiResult getWorkoderStates(int pageNum, int pageSize, int year, int week, int date, int isSchedule) + { + try + { + ApiResult result = new ApiResult(); + var predicate = Expressionable + .Create() + .AndIF(year > 0, it => it.Year == year) + .AndIF(week > 0, it => it.Week == week) + .AndIF(date > 0, it => it.Date == date) + .ToExpression(); + + int totalCount = 0; + List proWorkorderList = Context + .Queryable() + .Where(predicate) + .OrderBy(it => it.Sort) + .ToPageList(pageNum, pageSize, ref totalCount); + ProWorkorderV2Dto_stateCount pcount = new ProWorkorderV2Dto_stateCount(); + if (proWorkorderList != null) + { + foreach (var item in proWorkorderList) + { + int State = CheckWorkOrder(item); + pcount.total++; + switch (State) + { + case 0: pcount.state0++; break; + case 1: pcount.state1++; break; + case 2: pcount.state2++; break; + case 3: pcount.state3++; break; + case 4: pcount.state4++; break; + case 5: pcount.state5++; break; + } + } + } + result.Success().Data = pcount; + return result; + } + catch (Exception ex) + { + ApiResult result = new ApiResult(); + result.Code = 101; + result.Msg = ex.Message; + return result; + } + } + /// /// 获取生产计划id ///