diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmPolishRecordController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmPolishRecordController.cs index c4a06898..857281a2 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmPolishRecordController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmPolishRecordController.cs @@ -108,7 +108,7 @@ namespace ZR.Admin.WebApi.Controllers /// 根据日期获取抛光记录表数据 /// /// - [HttpPost] + [HttpPost("GetWmPolishRecordByDate")] public IActionResult GetWmPolishRecordByDate([FromBody] WmPolishRecordGenerateDto parm) { diff --git a/ZR.Service/mes/wms/WmPolishRecordService.cs b/ZR.Service/mes/wms/WmPolishRecordService.cs index 1ce9fd05..15b287e8 100644 --- a/ZR.Service/mes/wms/WmPolishRecordService.cs +++ b/ZR.Service/mes/wms/WmPolishRecordService.cs @@ -13,263 +13,284 @@ using ZR.Service.mes.wms.IService; namespace ZR.Service.mes.wms { - /// - /// 工艺路线-抛光 库存变动表Service业务层处理 - /// - [AppService(ServiceType = typeof(IWmPolishRecordService), ServiceLifetime = LifeTime.Transient)] - public class WmPolishRecordService : BaseService, IWmPolishRecordService - { - /// - /// 查询工艺路线-抛光 库存变动表列表 - /// - /// - /// - public PagedInfo GetList(WmPolishRecordQueryDto parm) - { - DateTime startTime = parm.StartActionTime ?? DateTime.MinValue; - DateTime endTime = parm.EndActionTime ?? DateTime.MinValue; - var predicate = Expressionable - .Create() - .AndIF( - !string.IsNullOrEmpty(parm.Partnumber), - it => it.Partnumber.Contains(parm.Partnumber) - ) - .AndIF( - !string.IsNullOrEmpty(parm.BlankNum), - it => it.BlankNum.Contains(parm.BlankNum) - ) - .AndIF( - !string.IsNullOrEmpty(parm.Remark), - it => it.Remark.Contains(parm.Remark) - ) - .AndIF(!string.IsNullOrEmpty(parm.Code), it => it.Code.Contains(parm.Code)) - .AndIF( - !string.IsNullOrEmpty(parm.FkInventoryId), - it => it.FkInventoryId == parm.FkInventoryId - ) - .AndIF(!string.IsNullOrEmpty(parm.Id), it => it.Id == parm.Id) - .AndIF(parm.ChangeType > -1, it => it.ChangeType == parm.ChangeType) - .AndIF( - startTime > DateTime.MinValue, - it => startTime <= it.ActionTime - ) - .AndIF( - endTime > DateTime.MinValue, - it => endTime >= it.ActionTime - ); + /// + /// 工艺路线-抛光 库存变动表Service业务层处理 + /// + [AppService(ServiceType = typeof(IWmPolishRecordService), ServiceLifetime = LifeTime.Transient)] + public class WmPolishRecordService : BaseService, IWmPolishRecordService + { + /// + /// 查询工艺路线-抛光 库存变动表列表 + /// + /// + /// + public PagedInfo GetList(WmPolishRecordQueryDto parm) + { + DateTime startTime = parm.StartActionTime ?? DateTime.MinValue; + DateTime endTime = parm.EndActionTime ?? DateTime.MinValue; + var predicate = Expressionable + .Create() + .AndIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.Partnumber.Contains(parm.Partnumber) + ) + .AndIF( + !string.IsNullOrEmpty(parm.BlankNum), + it => it.BlankNum.Contains(parm.BlankNum) + ) + .AndIF(!string.IsNullOrEmpty(parm.Remark), it => it.Remark.Contains(parm.Remark)) + .AndIF(!string.IsNullOrEmpty(parm.Code), it => it.Code.Contains(parm.Code)) + .AndIF( + !string.IsNullOrEmpty(parm.FkInventoryId), + it => it.FkInventoryId == parm.FkInventoryId + ) + .AndIF(!string.IsNullOrEmpty(parm.Id), it => it.Id == parm.Id) + .AndIF(parm.ChangeType > -1, it => it.ChangeType == parm.ChangeType) + .AndIF(startTime > DateTime.MinValue, it => startTime <= it.ActionTime) + .AndIF(endTime > DateTime.MinValue, it => endTime >= it.ActionTime); - var response = Queryable() - .Where(predicate.ToExpression()) - .OrderByDescending(it => it.ActionTime) - .ToPage(parm); + var response = Queryable() + .Where(predicate.ToExpression()) + .OrderByDescending(it => it.ActionTime) + .ToPage(parm); - return response; - } + return response; + } - /// - /// 获取详情 - /// - /// - /// - public WmPolishRecord GetInfo(string Id) - { - var response = Queryable().Where(x => x.Id == Id).First(); + /// + /// 获取详情 + /// + /// + /// + public WmPolishRecord GetInfo(string Id) + { + var response = Queryable().Where(x => x.Id == Id).First(); - return response; - } + return response; + } - /// - /// 添加工艺路线-抛光 库存变动表 - /// - /// - /// - public WmPolishRecord AddWmPolishRecord(WmPolishRecord model) - { - return Context.Insertable(model).ExecuteReturnEntity(); - } + /// + /// 添加工艺路线-抛光 库存变动表 + /// + /// + /// + public WmPolishRecord AddWmPolishRecord(WmPolishRecord model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } - /// - /// 修改工艺路线-抛光 库存变动表 - /// - /// - /// - public int UpdateWmPolishRecord(WmPolishRecord model) - { - //var response = Update(w => w.Id == model.Id, it => new WmPolishRecord() - //{ - // Code = model.Code, - // Partnumber = model.Partnumber, - // BlankNum = model.BlankNum, - // ChangeType = model.ChangeType, - // ChangeQuantity = model.ChangeQuantity, - // ActionTime = model.ActionTime, - // Status = model.Status, - // Remark = model.Remark, - // CreatedBy = model.CreatedBy, - // CreatedTime = model.CreatedTime, - // UpdatedBy = model.UpdatedBy, - // UpdatedTime = model.UpdatedTime, - //}); - //return response; - return Update(model, true); - } + /// + /// 修改工艺路线-抛光 库存变动表 + /// + /// + /// + public int UpdateWmPolishRecord(WmPolishRecord model) + { + //var response = Update(w => w.Id == model.Id, it => new WmPolishRecord() + //{ + // Code = model.Code, + // Partnumber = model.Partnumber, + // BlankNum = model.BlankNum, + // ChangeType = model.ChangeType, + // ChangeQuantity = model.ChangeQuantity, + // ActionTime = model.ActionTime, + // Status = model.Status, + // Remark = model.Remark, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } - /// - /// 根据日期获取抛光记录表数据 - /// - /// - /// - public int GenerateWmPolishRecord(WmPolishRecordGenerateDto parm) - { + /// + /// 根据日期获取抛光记录表数据 + /// + /// + /// + public int GenerateWmPolishRecord(WmPolishRecordGenerateDto parm) + { + if ( + parm == null + || parm.StartTime == null + || parm.EndTime == null + || parm.StartTime.Value == DateTime.MinValue + || parm.EndTime.Value == DateTime.MinValue + ) + { + return -1; + } + else + { + #region 查询需要的数据 + //三入 + // 产线报表 根据日期范围 去取产线抛光的数据 qc_quality_statistics_first + List qcQualityStatisticsFirsts = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.FinishedPartNumber == parm.Partnumber + ) + .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) + .ToList(); - if (parm == null || parm.StartTime == null || parm.EndTime == null || parm.StartTime.Value >= DateTime.MinValue || parm.EndTime.Value >= DateTime.MinValue) - { - return -1; - } - else - { - #region 查询需要的数据 - //三入 - // 产线报表 根据日期范围 去取产线抛光的数据 qc_quality_statistics_first - List qcQualityStatisticsFirsts = Context - .Queryable() - .WhereIF(!string.IsNullOrEmpty(parm.Partnumber), it => it.FinishedPartNumber == parm.Partnumber) - .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) - .ToList(); + // 后道报表 根据日期范围 去取后道反抛光的数据 wm_polish_quality_statistics + List wmPolishQualityStatistics = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.Partnumber == parm.Partnumber + ) + .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) + .ToList(); + + // GP12报表 根据日期范围 去取gp12反抛光的数据 qc_gp12_service_statistics GP12(new) wm_gp12_quality_statistics(old) + List qcGp12ServiceStatistics = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.PartNumber == parm.Partnumber + ) + .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) + .Where(it => it.GroupSort == 1) + .ToList(); + //qcGp12ServiceStatistics = qcGp12ServiceStatistics.DistinctBy(o => o.PartNumber).ToList(); + + List wmGp12QualityStatistics = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.Partnumber == parm.Partnumber + ) + .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) + .ToList(); + + //二出(同一张表)wm_polish_work_quality_statistics 根据日期范围 去取抛光操作出库的数据 + List wmPolishWorkQualityStatistics = Context + .Queryable() + .WhereIF( + !string.IsNullOrEmpty(parm.Partnumber), + it => it.Partnumber == parm.Partnumber + ) + .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) + .ToList(); + #endregion - // 后道报表 根据日期范围 去取后道反抛光的数据 wm_polish_quality_statistics - List wmPolishQualityStatistics = Context - .Queryable() - .WhereIF(!string.IsNullOrEmpty(parm.Partnumber), it => it.Partnumber == parm.Partnumber) - .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) - .ToList(); + #region 组装 WmPolishRecord 实体 + // 组装 WmPolishRecord 实体 + List wmPolishRecords = new List(); - // GP12报表 根据日期范围 去取gp12反抛光的数据 qc_gp12_service_statistics GP12(new) wm_gp12_quality_statistics(old) - List qcGp12ServiceStatistics = Context - .Queryable() - - .WhereIF(!string.IsNullOrEmpty(parm.Partnumber), it => it.PartNumber == parm.Partnumber) - .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) - .GroupBy(o => o.GroupCode) - .ToList(); - //qcGp12ServiceStatistics = qcGp12ServiceStatistics.DistinctBy(o => o.PartNumber).ToList(); + foreach (var item in qcQualityStatisticsFirsts) + { + wmPolishRecords.Add( + new WmPolishRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = SnowFlakeSingle.Instance.NextId().ToString(), + Code = "自动", + Partnumber = item.FinishedPartNumber, + ChangeType = 1, + ChangeQuantity = item.PaoguangTotal, + ActionTime = item.StartTime, + Status = 1, + Remark = "产线报表 根据日期范围 去取产线抛光的数据" + } + ); + } - List wmGp12QualityStatistics = Context - .Queryable() - .WhereIF(!string.IsNullOrEmpty(parm.Partnumber), it => it.Partnumber == parm.Partnumber) - .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) - .ToList(); + foreach (var item in wmPolishQualityStatistics) + { + wmPolishRecords.Add( + new WmPolishRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = SnowFlakeSingle.Instance.NextId().ToString(), + Code = "自动", + Partnumber = item.Partnumber, + ChangeType = 1, + ChangeQuantity = item.PaoguangTotal, + ActionTime = item.StartTime, + Status = 1, + Remark = "后道报表 根据日期范围 去取后道反抛光的数据" + } + ); + } - //二出(同一张表)wm_polish_work_quality_statistics 根据日期范围 去取抛光操作出库的数据 - List wmPolishWorkQualityStatistics = Context - .Queryable() - .WhereIF(!string.IsNullOrEmpty(parm.Partnumber) ,it => it.Partnumber == parm.Partnumber) - .Where(it => it.StartTime >= parm.StartTime && it.StartTime <= parm.EndTime) - .ToList(); - #endregion + foreach (var item in qcGp12ServiceStatistics) + { + wmPolishRecords.Add( + new WmPolishRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = SnowFlakeSingle.Instance.NextId().ToString(), + Code = "自动", + Partnumber = item.PartNumber, + ChangeType = 1, + ChangeQuantity = item.PolishNumber, + ActionTime = item.StartTime, + Status = 1, + Remark = " GP12报表(new) 根据日期范围 去取gp12反抛光的数据" + } + ); + } + + foreach (var item in wmGp12QualityStatistics) + { + wmPolishRecords.Add( + new WmPolishRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = SnowFlakeSingle.Instance.NextId().ToString(), + Code = "自动", + Partnumber = item.Partnumber, + ChangeType = 1, + ChangeQuantity = item.PaoguangTotal, + ActionTime = item.StartTime, + Status = 1, + Remark = " GP12报表(old) 根据日期范围 去取gp12反抛光的数据" + } + ); + } + + foreach (var item in wmPolishWorkQualityStatistics) + { + wmPolishRecords.Add( + new WmPolishRecord + { + Id = SnowFlakeSingle.Instance.NextId().ToString(), + FkInventoryId = SnowFlakeSingle.Instance.NextId().ToString(), + Code = "自动", + Partnumber = item.Partnumber, + ChangeType = 2, + ChangeQuantity = item.RequireNumber, + ActionTime = item.StartTime, + Status = 1, + Remark = " 根据日期范围 去取抛光操作出库的数据" + } + ); + } + #endregion - #region 组装 WmPolishRecord 实体 - // 组装 WmPolishRecord 实体 - List wmPolishRecords = new List(); + // 批量插入到 wm_polish_record 表 + //如果有这个时间段的数据,要删除 + List delwmPolishRecords = Context + .Queryable() + .Where(it => it.Code == "自动") + .Where(it => it.CreatedTime >= parm.StartTime && it.CreatedTime <= parm.EndTime) + .ToList(); + Context.Deleteable(delwmPolishRecords).ExecuteCommand(); - foreach (var item in qcQualityStatisticsFirsts) - { - wmPolishRecords.Add(new WmPolishRecord - { - Id = null, - Code= "自动", - Partnumber=item.FinishedPartNumber, - ChangeType=1, - ChangeQuantity=item.PaoguangTotal, - ActionTime=item.StartTime, - Status=1, - Remark= "产线报表 根据日期范围 去取产线抛光的数据" - }); - } + if (wmPolishRecords.Any()) + { + Context.Insertable(wmPolishRecords).ExecuteCommand(); + } - foreach (var item in wmPolishQualityStatistics) - { - wmPolishRecords.Add(new WmPolishRecord - { - Id = null, - Code = "自动", - Partnumber = item.Partnumber, - ChangeType = 1, - ChangeQuantity = item.PaoguangTotal, - ActionTime = item.StartTime, - Status = 1, - Remark = "后道报表 根据日期范围 去取后道反抛光的数据" - }); - } - - foreach (var item in qcGp12ServiceStatistics) - { - wmPolishRecords.Add(new WmPolishRecord - { - Id = null, - Code = "自动", - Partnumber = item.PartNumber, - ChangeType = 1, - ChangeQuantity = item.PolishNumber, - ActionTime = item.StartTime, - Status = 1, - Remark = " GP12报表(new) 根据日期范围 去取gp12反抛光的数据" - }); - } - - foreach (var item in wmGp12QualityStatistics) - { - wmPolishRecords.Add(new WmPolishRecord - { - Id = null, - Code = "自动", - Partnumber = item.Partnumber, - ChangeType = 1, - ChangeQuantity = item.PaoguangTotal, - ActionTime = item.StartTime, - Status = 1, - Remark = " GP12报表(old) 根据日期范围 去取gp12反抛光的数据" - }); - } - - foreach (var item in wmPolishWorkQualityStatistics) - { - wmPolishRecords.Add(new WmPolishRecord - { - Id = null, - Code = "自动", - Partnumber = item.Partnumber, - ChangeType = 2, - ChangeQuantity = item.RequireNumber, - ActionTime = item.StartTime, - Status = 1, - Remark = " 根据日期范围 去取抛光操作出库的数据" - }); - } - #endregion - - - // 批量插入到 wm_polish_record 表 - //如果有这个时间段的数据,要删除 - List delwmPolishRecords = Context - .Queryable() - .Where(it => it.Code =="自动") - .Where(it => it.CreatedTime >= parm.StartTime && it.CreatedTime <= parm.EndTime) - .ToList(); - Context.Deleteable(delwmPolishRecords).ExecuteCommand(); - - if (wmPolishRecords.Any()) - { - Context.Insertable(wmPolishRecords).ExecuteCommand(); - } - - return wmPolishRecords.Count; // 返回插入的记录数 - } - - - } - - } + return wmPolishRecords.Count; // 返回插入的记录数 + } + } + } }