diff --git a/DOAN.Admin.WebApi/Controllers/MES/product/ProWorkorderController.cs b/DOAN.Admin.WebApi/Controllers/MES/product/ProWorkorderController.cs
index 901d35f..3c05ed0 100644
--- a/DOAN.Admin.WebApi/Controllers/MES/product/ProWorkorderController.cs
+++ b/DOAN.Admin.WebApi/Controllers/MES/product/ProWorkorderController.cs
@@ -15,6 +15,7 @@ using DOAN.Model.MES.base_.Dto;
using Microsoft.AspNetCore.Http;
using Aliyun.OSS;
using System;
+using DOAN.Infrastructure;
//创建时间:2024-07-16
namespace DOAN.Admin.WebApi.Controllers
@@ -45,6 +46,8 @@ namespace DOAN.Admin.WebApi.Controllers
[ActionPermissionFilter(Permission = "productManagement:proworkorder:list")]
public IActionResult QueryProWorkorder([FromBody] ProWorkorderQueryDto parm)
{
+ parm.WorkorderDate[0]=ConvertDateTime.ConvertLocalDate(parm.WorkorderDate[0]);
+ parm.WorkorderDate[1]=ConvertDateTime.ConvertLocalDate(parm.WorkorderDate[1]);
var response = _ProWorkorderService.GetList(parm);
return SUCCESS(response);
}
@@ -326,6 +329,17 @@ namespace DOAN.Admin.WebApi.Controllers
return SUCCESS(response);
}
+ //TODO 获取工单进度追溯
+ [HttpPost("get_workorder_trace_progress")]
+ public IActionResult GetWorkorderTraceProgressList([FromBody]ProWorkorderQueryDto query)
+ {
+ query.WorkorderDate[0] = ConvertDateTime.ConvertLocalDate(query.WorkorderDate[0]);
+ query.WorkorderDate[1] = ConvertDateTime.ConvertLocalDate(query.WorkorderDate[1]);
+ if (query == null) { throw new Exception("query为空"); }
+ var response= _ProWorkorderService.GetWorkorderTraceProgressList(query);
+
+ return SUCCESS(response);
+ }
}
}
diff --git a/DOAN.Model/MES/product/Dto/ProWorkorderDto.cs b/DOAN.Model/MES/product/Dto/ProWorkorderDto.cs
index e1ca83a..4717b37 100644
--- a/DOAN.Model/MES/product/Dto/ProWorkorderDto.cs
+++ b/DOAN.Model/MES/product/Dto/ProWorkorderDto.cs
@@ -122,6 +122,18 @@ namespace DOAN.Model.MES.product.Dto
///
public int? Status { get; set; }
+
+ /////
+ ///// 工单开始时间
+ /////
+
+ //public DateTime? StartTime { get; set; }
+
+ /////
+ ///// 工单结束时间
+
+ //public DateTime? EndTime { get; set; }
+
///
/// 备注
///
@@ -281,6 +293,102 @@ namespace DOAN.Model.MES.product.Dto
}
+ ///
+ /// 工单进度追溯
+ ///
+ public class ProWorkorderTranceProgressDto
+ {
+
+ ///
+ /// 雪花id
+ ///
+ public string Id { get; set; }
+
+ ///
+ /// 工单号
+ ///
+ public string Workorder { get; set; }
+
+ ///
+ /// 存货编码
+ ///
+ public string ProductionCode { get; set; }
+
+ ///
+ /// 产品名称
+ ///
+ public string ProductionName { get; set; }
+
+ ///
+ /// 规格型号
+ ///
+ public string Specification { get; set; }
+
+
+ ///
+ /// 交货数量
+ ///
+ public int? DeliveryNum { get; set; }
+
+ ///
+ /// 组别
+ ///
+ public string GroupCode { get; set; }
+
+ ///
+ /// 线别
+ ///
+ public string LineCode { get; set; }
+
+ ///
+ /// 序号
+ ///
+ public int? Sort { get; set; }
+
+ ///
+ /// 工单日期
+ ///
+ public DateTime? WorkorderDate { get; set; }
+
+ ///
+ /// 优先级 1-100
+ ///
+ public int? Priority { get; set; }
+
+ ///
+ /// 工单状态
+ ///
+ public int? Status { get; set; }
+
+
+ ///
+ /// 工单开始时间
+ ///
+
+ public DateTime? StartTime { get; set; }
+
+ ///
+ /// 工单结束时间
+
+ public DateTime? EndTime { get; set; }
+
+
+
+ ///
+ /// 计划数量
+ ///
+ public int? PlanNum { get; set; }
+
+
+
+ ///
+ /// 实际数量
+ ///
+ public int? ActualNum { get; set; }
+
+
+
+ }
diff --git a/DOAN.Model/MES/product/ProWorkorder.cs b/DOAN.Model/MES/product/ProWorkorder.cs
index 2e59fde..10f36e7 100644
--- a/DOAN.Model/MES/product/ProWorkorder.cs
+++ b/DOAN.Model/MES/product/ProWorkorder.cs
@@ -106,6 +106,18 @@ namespace DOAN.Model.MES.product
///
public int? Status { get; set; }
+ ///
+ /// 工单开始时间
+ ///
+ [SugarColumn(ColumnName = "start_time")]
+ public DateTime? StartTime { get; set; }
+
+ ///
+ /// 工单结束时间
+ ///
+ [SugarColumn(ColumnName = "end_time")]
+ public DateTime? EndTime { get; set; }
+
///
/// 备注
///
diff --git a/DOAN.Repository/BaseRepository.cs b/DOAN.Repository/BaseRepository.cs
index 3794780..571203d 100644
--- a/DOAN.Repository/BaseRepository.cs
+++ b/DOAN.Repository/BaseRepository.cs
@@ -363,5 +363,30 @@ namespace DOAN.Repository
page.Result = result.Adapt>();
return page;
}
+ ///
+ /// 分页查询 不转
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static PagedInfo ToPage_NO_Convert(this ISugarQueryable source, PagerInfo parm)
+ {
+ var page = new PagedInfo();
+ var total = 0;
+ page.PageSize = parm.PageSize;
+ page.PageIndex = parm.PageNum;
+ if (parm.Sort.IsNotEmpty())
+ {
+ source.OrderByPropertyName(parm.Sort, parm.SortType.Contains("desc") ? OrderByType.Desc : OrderByType.Asc);
+ }
+ var result = source
+ //.OrderByIF(parm.Sort.IsNotEmpty(), $"{parm.Sort.ToSqlFilter()} {(!string.IsNullOrWhiteSpace(parm.SortType) && parm.SortType.Contains("desc") ? "desc" : "asc")}")
+ .ToPageList(parm.PageNum, parm.PageSize, ref total);
+
+ page.TotalNum = total;
+ page.Result = result;
+ return page;
+ }
}
}
diff --git a/DOAN.Service/JobKanban/WorkorderProgressService.cs b/DOAN.Service/JobKanban/WorkorderProgressService.cs
index 61c3367..6712947 100644
--- a/DOAN.Service/JobKanban/WorkorderProgressService.cs
+++ b/DOAN.Service/JobKanban/WorkorderProgressService.cs
@@ -175,23 +175,26 @@ namespace DOAN.Service.JobKanban
.ExecuteCommand();
- result= Context.Updateable().SetColumns(it => it.Status == 2)
- .Where(it => it.Workorder == workorder).ExecuteCommand();
+ result = Context.Updateable().SetColumns(it => it.Status == 2)
+ .SetColumns(it => it.StartTime == DateTime.Now)
+ .Where(it => it.Workorder == workorder).ExecuteCommand();
});
return result;
-
+
}
public int FinishWorkOrder(string workorder)
{
- return Context.Updateable().SetColumns(it => it.Status == 3)
+ return Context.Updateable()
+ .SetColumns(it => it.Status == 3)
+ .SetColumns(it=>it.EndTime == DateTime.Now)
.Where(it => it.Workorder == workorder).ExecuteCommand();
}
- public ProWorkorder GetProductingWorkorder( string line_code, DateTime handleDate)
+ public ProWorkorder GetProductingWorkorder(string line_code, DateTime handleDate)
{
//TODO 这个日期有问题??????
- if(handleDate.Kind==DateTimeKind.Utc)
+ if (handleDate.Kind == DateTimeKind.Utc)
{
handleDate = handleDate.ToLocalTime().Date;
@@ -200,7 +203,7 @@ namespace DOAN.Service.JobKanban
{
handleDate = handleDate.Date;
}
-
+
return Context.Queryable()
.Where(it => it.LineCode == line_code)
@@ -213,7 +216,7 @@ namespace DOAN.Service.JobKanban
public int AddLabelLog(string labelContext, string workOrder)
{
- ProLabelTraceLog log = new ProLabelTraceLog();
+ ProLabelTraceLog log = new ProLabelTraceLog();
log.Id = XueHua;
log.LabelContext = labelContext;
log.Workorder = workOrder;
@@ -221,7 +224,7 @@ namespace DOAN.Service.JobKanban
log.CreatedTime = DateTime.Now;
log.CreatedBy = "MES";
- return Context.Insertable(log).ExecuteCommand();
+ return Context.Insertable(log).ExecuteCommand();
}
@@ -235,7 +238,7 @@ namespace DOAN.Service.JobKanban
.ExecuteCommand();
}
-
+
public int FinishAndReportWorkorder(string workorder, int finish_num)
{
diff --git a/DOAN.Service/MES/product/IService/IProWorkorderService.cs b/DOAN.Service/MES/product/IService/IProWorkorderService.cs
index 243447e..35a443c 100644
--- a/DOAN.Service/MES/product/IService/IProWorkorderService.cs
+++ b/DOAN.Service/MES/product/IService/IProWorkorderService.cs
@@ -22,6 +22,8 @@ namespace DOAN.Service.MES.product.IService
{
PagedInfo GetList(ProWorkorderQueryDto parm);
+ PagedInfo GetWorkorderTraceProgressList(ProWorkorderQueryDto query);
+
ProWorkorder GetInfo(string Id);
ProWorkorder AddProWorkorder(ProWorkorder parm);
diff --git a/DOAN.Service/MES/product/ProWorkorderService.cs b/DOAN.Service/MES/product/ProWorkorderService.cs
index 06e8d3e..d0430fc 100644
--- a/DOAN.Service/MES/product/ProWorkorderService.cs
+++ b/DOAN.Service/MES/product/ProWorkorderService.cs
@@ -928,6 +928,36 @@ namespace DOAN.Service.MES.product
}
+ ///
+ /// 工单进度跟踪
+ ///
+ ///
+ ///
+ public PagedInfo GetWorkorderTraceProgressList(ProWorkorderQueryDto query)
+ {
+
+ var predicate = Expressionable.Create()
+ .AndIF(!string.IsNullOrEmpty(query.ProductionName), it => it.ProductionName.Contains(query.ProductionName))
+ .AndIF(!string.IsNullOrEmpty(query.ProductionCode), it => it.ProductionCode.Contains(query.ProductionCode))
+ .AndIF(!string.IsNullOrEmpty(query.LineCode), it => it.LineCode == query.LineCode)
+ .AndIF(!string.IsNullOrEmpty(query.GroupCode), it => it.GroupCode == query.GroupCode)
+ .AndIF(query.WorkorderDate != null && query.WorkorderDate[0] > DateTime.MinValue, it => it.WorkorderDate >= parm.WorkorderDate[0])
+ .AndIF(query.WorkorderDate != null && query.WorkorderDate[1] > DateTime.MinValue, it => it.WorkorderDate <= parm.WorkorderDate[1])
+
+ ;
+ var query2 = Queryable()
+ .Where(predicate.ToExpression());
+
+ return Context.Queryable(query2).LeftJoin((q, r) => q.Workorder == r.FkWorkorder)
+ .Select((q, r) => new ProWorkorderTranceProgressDto()
+ {
+ PlanNum = q.DeliveryNum,
+ ActualNum = r.FinishedNum,
+ }, true).ToPage_NO_Convert(query);
+
+
+ }
+
}