diff --git a/SlnMesnac.Model/domain/ProdPLanInfo.cs b/SlnMesnac.Model/domain/ProdPLanInfo.cs index f432b6f..ecbf709 100644 --- a/SlnMesnac.Model/domain/ProdPLanInfo.cs +++ b/SlnMesnac.Model/domain/ProdPLanInfo.cs @@ -68,7 +68,7 @@ namespace SlnMesnac.Model.domain /// 实际开始时间 /// [SugarColumn(ColumnName = "begin_time")] - public string BeginTIme { get; set; } + public string BeginTime { get; set; } /// /// 实际完成时间 @@ -111,5 +111,11 @@ namespace SlnMesnac.Model.domain /// [SugarColumn(ColumnName = "device_code")] public string DeviceCode { get; set; } + + /// + /// 工单状态 + /// + [SugarColumn(ColumnName = "plan_status")] + public string PlanStatus { get; set; } } } diff --git a/SlnMesnac.Model/domain/ProdPlanDetail.cs b/SlnMesnac.Model/domain/ProdPlanDetail.cs new file mode 100644 index 0000000..19390d2 --- /dev/null +++ b/SlnMesnac.Model/domain/ProdPlanDetail.cs @@ -0,0 +1,97 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.Text; + +namespace SlnMesnac.Model.domain +{ + [SugarTable("prod_plan_detail"), TenantAttribute("mes")] + [DataContract(Name = "ProdPLanDetail 员工信息")] + public class ProdPlanDetail + { + /// + /// + /// + [SugarColumn(ColumnName = "obj_id", IsPrimaryKey = true, IsIdentity = true)] + public int ObjId { get; set; } + + /// + /// 工单编号 + /// + [SugarColumn(ColumnName = "plan_code")] + public string PlanCode { get; set; } + + /// + /// 物料编号 + /// + [SugarColumn(ColumnName = "material_code")] + public string MaterialCode { get; set; } + + /// + /// 计划完成数 + /// + [SugarColumn(ColumnName = "plan_amount")] + public string PlanAmount { get; set; } + + /// + /// 实际完成数 + /// + [SugarColumn(ColumnName = "complete_amount")] + public string CompleteAmount { get; set; } + + /// + /// 开始时间 + /// + [SugarColumn(ColumnName = "begin_time")] + public string BeginTime { get; set; } + + /// + /// 结束时间 + /// + [SugarColumn(ColumnName = "end_time")] + public string EndTime { get; set; } + + /// + /// 当前班组长 + /// + [SugarColumn(ColumnName = "current_staff_id")] + public string CurrentStaffId { get; set; } + + /// + /// 下一班组长 + /// + [SugarColumn(ColumnName = "next_staff_id")] + public string NextStaffId { get; set; } + + /// + /// 结束标志 + /// + [SugarColumn(ColumnName = "end_flag")] + public string EndFlag { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "created_by")] + public string CreatedBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "created_time")] + public string CreatedTime { get; set; } + + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "updated_by")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "updated_time")] + public string UpdatedTime { get; set; } + } +} diff --git a/SlnMesnac.Repository/service/IRecordStaffAttendanceService.cs b/SlnMesnac.Repository/service/IRecordStaffAttendanceService.cs index 4fa93d6..e7de803 100644 --- a/SlnMesnac.Repository/service/IRecordStaffAttendanceService.cs +++ b/SlnMesnac.Repository/service/IRecordStaffAttendanceService.cs @@ -20,5 +20,17 @@ namespace SlnMesnac.Repository.service /// /// bool InsertRecordStaffAttendance(List recordStaffAttendances); + + /// + /// 获取最后的上班记录 + /// + /// + RecordStaffAttendance GetLastestOnRecord(); + + /// + /// 获取最后的下班记录 + /// + /// + RecordStaffAttendance GetLastestOffRecord(); } } diff --git a/SlnMesnac.Repository/service/Impl/ProdPlanDetailServiceImpl.cs b/SlnMesnac.Repository/service/Impl/ProdPlanDetailServiceImpl.cs new file mode 100644 index 0000000..062abce --- /dev/null +++ b/SlnMesnac.Repository/service/Impl/ProdPlanDetailServiceImpl.cs @@ -0,0 +1,56 @@ +using Microsoft.Extensions.Logging; +using SlnMesnac.Model.domain; +using SlnMesnac.Repository.service.@base; +using System; +using System.Collections.Generic; +using System.Text; + +namespace SlnMesnac.Repository.service.Impl +{ + public class ProdPlanDetailServiceImpl : BaseServiceImpl, ProdPlanDetailService + { + private ILogger _logger; + public ProdPlanDetailServiceImpl(Repository repository, ILogger logger) : base(repository) + { + _logger = logger; + } + + public List GetPlanDetails() + { + List pLanDetails = null; + try + { + pLanDetails = base._rep.GetList(); + pLanDetails.Reverse(); + } + catch (Exception ex) + { + _logger.LogError($"获取员工打卡信息异常{ex.Message}"); + } + return pLanDetails; + } + + public bool InsertPlanDetails(List planDetails) + { + bool result = false; + try + { + base._rep.AsTenant().BeginTran(); + result = base._rep.InsertRange(planDetails); + base._rep.AsTenant().CommitTran(); + } + catch (Exception ex) + { + base._rep.AsTenant().RollbackTran(); + _logger.LogError($"员工打卡信息添加异常:{ex.Message}"); + } + return result; + } + + public ProdPlanDetail GetPlanDetailsByPlanCode(string planCode) + { + ProdPlanDetail prodPlanDetail = _rep.AsQueryable().WhereIF(!string.IsNullOrEmpty(planCode),x=>x.PlanCode == planCode).First(); + return prodPlanDetail; + } + } +} diff --git a/SlnMesnac.Repository/service/Impl/ProdPlanInfoServiceImpl.cs b/SlnMesnac.Repository/service/Impl/ProdPlanInfoServiceImpl.cs index 89cb8a1..3fafdfc 100644 --- a/SlnMesnac.Repository/service/Impl/ProdPlanInfoServiceImpl.cs +++ b/SlnMesnac.Repository/service/Impl/ProdPlanInfoServiceImpl.cs @@ -26,13 +26,14 @@ namespace SlnMesnac.Repository.service.Impl /// /// /// - public List GetRecordStaffAttendancesByConditions(string? orderCode, string? planCode, string? materialCode, string? stationCode) + public List GetRecordStaffAttendancesByConditions(string? orderCode, string? planCode, string? materialCode, string? stationCode,string? planStatus) { List recordStaffAttendances = new List(); List planInfoList = _rep.AsQueryable().WhereIF(!string.IsNullOrEmpty(orderCode), x => x.OrderCode == orderCode) .WhereIF(!string.IsNullOrEmpty(planCode), x => x.PlanCode == planCode) .WhereIF(!string.IsNullOrEmpty(materialCode), x => x.MaterialCode == materialCode) .WhereIF(!string.IsNullOrEmpty(stationCode), x => x.StationCode == stationCode) + .WhereIF(!string.IsNullOrEmpty(planStatus),x => x.PlanStatus == planStatus) .ToList(); return planInfoList; } diff --git a/SlnMesnac.Repository/service/Impl/RecordStaffAttendanceServiceImpl.cs b/SlnMesnac.Repository/service/Impl/RecordStaffAttendanceServiceImpl.cs index 3340024..afd21bf 100644 --- a/SlnMesnac.Repository/service/Impl/RecordStaffAttendanceServiceImpl.cs +++ b/SlnMesnac.Repository/service/Impl/RecordStaffAttendanceServiceImpl.cs @@ -48,5 +48,17 @@ namespace SlnMesnac.Repository.service.Impl } return result; } + + public RecordStaffAttendance GetLastestOnRecord() + { + RecordStaffAttendance recordStaffAttendances = _rep.AsQueryable().Where(x => x.AttendanceType == "0").OrderByDescending(x => x.CreateTime).First(); + return recordStaffAttendances; + } + + public RecordStaffAttendance GetLastestOffRecord() + { + RecordStaffAttendance recordStaffAttendances = _rep.AsQueryable().Where(x => x.AttendanceType == "1").OrderByDescending(x => x.CreateTime).First(); + return recordStaffAttendances; + } } } diff --git a/SlnMesnac.Repository/service/ProdPlanDetailService.cs b/SlnMesnac.Repository/service/ProdPlanDetailService.cs new file mode 100644 index 0000000..33e568b --- /dev/null +++ b/SlnMesnac.Repository/service/ProdPlanDetailService.cs @@ -0,0 +1,32 @@ +using SlnMesnac.Model.domain; +using SlnMesnac.Repository.service.@base; +using System; +using System.Collections.Generic; +using System.Text; + +namespace SlnMesnac.Repository.service +{ + public interface ProdPlanDetailService : IBaseService + { + /// + /// 获取所有工单信息 + /// + /// + List GetPlanDetails(); + + /// + /// 验证添加员工打卡记录 + /// + /// + /// + bool InsertPlanDetails(List planDetails); + + /// + /// 根据工单号查询此工单所有明细 + /// + /// + /// + /// + ProdPlanDetail GetPlanDetailsByPlanCode(string planCode); + } +} diff --git a/SlnMesnac.Repository/service/ProdPlanInfoService.cs b/SlnMesnac.Repository/service/ProdPlanInfoService.cs index 42209e4..e54044b 100644 --- a/SlnMesnac.Repository/service/ProdPlanInfoService.cs +++ b/SlnMesnac.Repository/service/ProdPlanInfoService.cs @@ -18,6 +18,6 @@ namespace SlnMesnac.Repository.service /// 根据订单编号、工单编号、物料名称获取工单信息 /// /// - List GetRecordStaffAttendancesByConditions(string orderCode,string planCode,string materialCode, string stationCode); + List GetRecordStaffAttendancesByConditions(string orderCode,string planCode,string materialCode, string stationCode, string planStatus); } } diff --git a/SlnMesnac.WPF/UserControls/ExecutePage.xaml b/SlnMesnac.WPF/UserControls/ExecutePage.xaml index ff7acbe..4646b23 100644 --- a/SlnMesnac.WPF/UserControls/ExecutePage.xaml +++ b/SlnMesnac.WPF/UserControls/ExecutePage.xaml @@ -120,7 +120,7 @@ - + + + + + + + + + + + + + + + + + + + + + +