From 9fe266f1956ac01a7ab446d3c84a046ac4ea90af Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周五, 13 12月 2024 09:33:31 +0800
Subject: [PATCH] 1
---
LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs | 395 +++-----------------------------------------------------
1 files changed, 23 insertions(+), 372 deletions(-)
diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
index 0b104e6..a397772 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsStockQuan/WmsStockQuan/WmsStockQuanService.cs
@@ -4,9 +4,6 @@
using System.Data;
using System.Web;
using System.Text;
-using System;
-using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto;
-
namespace Admin.NET.Application;
/// <summary>
/// 搴撳瓨淇℃伅鏈嶅姟
@@ -15,16 +12,9 @@
public class WmsStockQuanService : IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<WmsStockQuan> _rep;
- private readonly SqlSugarRepository<Mes_BatchOrderUPI_New> _Mes_BatchOrderUPI_New_Rep;
- private readonly SqlSugarRepository<V_Station_Quan> _V_Station_Quan_Rep;
-
- public WmsStockQuanService(SqlSugarRepository<WmsStockQuan> rep,
- SqlSugarRepository<Mes_BatchOrderUPI_New> Mes_BatchOrderUPI_New_Rep,
- SqlSugarRepository<V_Station_Quan> v_Station_Quan_Rep)
+ public WmsStockQuanService(SqlSugarRepository<WmsStockQuan> rep)
{
_rep = rep;
- _Mes_BatchOrderUPI_New_Rep = Mes_BatchOrderUPI_New_Rep;
- _V_Station_Quan_Rep = v_Station_Quan_Rep;
}
/// <summary>
@@ -168,12 +158,12 @@
.Select<WmsStockQuanOutput>();
if(input.InTimeRange != null && input.InTimeRange.Count >0)
{
- DateTime? start= input.InTimeRange[0].Value.AddDays(-1);
- query = query.WhereIF(start.HasValue, u => u.InTime > start);
+ DateTime? start= input.InTimeRange[0].Value;
+ query = query.WhereIF(start.HasValue, u => u.InTime >= start);
if (input.InTimeRange.Count >1 && input.InTimeRange[1].HasValue)
{
- var end = input.InTimeRange[1].Value.AddDays(1);
- query = query.Where(u => u.InTime < end);
+ var end = input.InTimeRange[1].Value;
+ query = query.Where(u => u.InTime <= end);
}
}
if(input.OperTimeRange != null && input.OperTimeRange.Count >0)
@@ -199,13 +189,13 @@
return query;
}
- /// <summary>
- /// 閲嶅鎬ч獙璇�
- /// </summary>
- /// <param name="input">楠岃瘉瀵硅薄</param>
- /// <param name="isEdit">鏄惁鏄紪杈�</param>
- /// <returns></returns>
- private async Task CheckExist( WmsStockQuan input,bool isEdit=false)
+ /// <summary>
+ /// 閲嶅鎬ч獙璇�
+ /// </summary>
+ /// <param name="input">楠岃瘉瀵硅薄</param>
+ /// <param name="isEdit">鏄惁鏄紪杈�</param>
+ /// <returns></returns>
+ private async Task CheckExist( WmsStockQuan input,bool isEdit=false)
{
@@ -228,359 +218,20 @@
throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
}
//鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
+
+
+
+
+
+
+
+
//鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
+
+
}
- #endregion
-
-
- /// <summary>
- /// 涓嶅垎椤垫煡璇㈢紦瀛樺矝榻愬寘绠$悊
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpGet]
- [ApiDescriptionSettings(Name = "packList")]
- [Description("WmsStockQuan/packList")]
- public async Task<List<WmsPackListOutput>> PackList([FromQuery] PackListInput input)
- {
- // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曪紝骞舵彁鍙栨墍闇�淇℃伅
- var list = await _rep.AsQueryable()
- .WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode.Contains(input.PackageCode.Trim()))
- .Select(x => new { x.PackageCode })
- .ToListAsync();
-
- // 鍒涘缓涓�涓垪琛ㄤ互瀛樺偍 WmsPackListOutput
- var resultList = new List<WmsPackListOutput>();
-
- // 鍒嗙粍骞惰绠楁瘡缁勪俊鎭�
- var groupedResult = list.GroupBy(x => x.PackageCode);
-
- foreach (var g in groupedResult)
- {
- // 鍦ㄨ繖閲岃绠楁瘡缁勭殑鎬绘暟
- var count = g.Count();
- var mesTotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == g.Key);
-
- resultList.Add(new WmsPackListOutput
- {
- PackageCode = g.Key,
- Count = count,
- MesTotalCount = mesTotalCount,
- IsPack = count >= mesTotalCount, // 妫�鏌ユ槸鍚︽墦鍖�
- LackCount = mesTotalCount - count
- });
- }
-
- // 杩囨护銆佹帓搴忓苟杩斿洖鏈�缁堢粨鏋�
- var finalResult = resultList
- .WhereIF(input.IsPack.HasValue, u => u.IsPack == input.IsPack)
- .OrderBy(g => g.PackageCode)
- .ToList();
-
- return finalResult;
- }
-
-
-
- /// <summary>
- /// 涓嶅垎椤垫煡璇㈤綈濂楃鐞�
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpGet]
- [ApiDescriptionSettings(Name = "KittingList")]
- [Description("WmsStockQuan/KittingList")]
- public async Task<List<WmsKittingListOutput>> KittingList([FromQuery] KittingListInput input)
- {
- var list = await _rep.AsQueryable()
- .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim()))
- .Select(x => new WmsKittingListOutput
- {
- OrderId = x.OrderId
- })
- .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List
-
- // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭�
- var groupedResult = list
- .GroupBy(x => x.OrderId) // 鎸� PackageCode 鍒嗙粍
- .Select(g => new WmsKittingListOutput
- {
- OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭
- Count = g.Count(), // 缁熻姣忕粍鐨勬暟閲�
- IsKitting = 1 == 1? true : false // 濡傛灉 Count 涓� 5 鍒� IsKitting 涓� 1锛屽惁鍒欎负 0
- })
- .WhereIF(input.IsKitting.HasValue, u => u.IsKitting == input.IsKitting)
- .OrderBy(g => g.OrderId) // 鏍规嵁 PackageCode 鎺掑簭
- .ToList(); // 杞崲涓� List
- return groupedResult; // 杩斿洖鍒嗙粍缁撴灉
- }
-
-
-
-
-
-
- /// <summary>
- /// 涓嶅垎椤垫煡璇㈡壒娆$己鏂欐竻鍗� 涓嶉綈鍖�
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- /// [HttpGet]
- [ApiDescriptionSettings(Name = "ShortageList")]
- [Description("WmsStockQuan/ShortageList")]
- public async Task<WmsShortageListOutput> ShortageList(KittingListInput input)
- {
- var listRes = await GetShortageListCore(input);
- var resJson = new WmsShortageListOutput();
- if (!string.IsNullOrWhiteSpace(input.UPI))
- {
- resJson = listRes.FirstOrDefault(u => u.UPI == input.UPI);
- //var filteredResult = listRes.FirstOrDefault(u => u.UPI == input.UPI);
- }
-
- return resJson;
- }
-
- /// <summary>
- /// 鍒嗛〉鏌ヨ鎵规缂烘枡娓呭崟 涓嶉綈鍖�
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost]
- [ApiDescriptionSettings(Name = "ShortagePage")]
- [Description("WmsStockQuan/ShortagePage")]
- public async Task<SqlSugarPagedList<WmsShortageListOutput>> ShortagePage(KittingListInput input)
- {
- var listRes = await GetShortageListCore(input);
- // 杩涜鍒嗛〉澶勭悊
- var totalCount = listRes.Count; // 鑾峰彇鎬绘暟
- var pagedList = listRes
- //.OrderBy(x => x.Id) // 鏍规嵁闇�瑕佽繘琛屾帓搴�
- .Skip((input.Page - 1) * input.PageSize)
- .Take(input.PageSize)
- .ToList();
-
- // 鏋勯�犲苟杩斿洖鍒嗛〉缁撴灉
- return new SqlSugarPagedList<WmsShortageListOutput>
- {
- Page = input.Page,
- PageSize = input.PageSize,
- Total = totalCount,
- TotalPages = (int)Math.Ceiling((double)totalCount / input.PageSize),
- Items = pagedList,
- HasPrevPage = input.Page > 1,
- HasNextPage = input.Page < ((int)Math.Ceiling((double)totalCount / input.PageSize))
- };
- }
-
-
- /// <summary>
- /// 鍒嗛〉鏌ヨ缂烘枡娓呭崟 涓嶉綈鍖� -鎸夌収鐢熶骇鍗曞彿鍒嗙粍
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost]
- [ApiDescriptionSettings(Name = "ShortagePageGroupByInfo5")]
- [Description("WmsStockQuan/ShortagePageGroupByInfo5")]
- public async Task<SqlSugarPagedList<WmsShortageListOutput>> ShortagePageGroupByInfo5(KittingListInput input)
- {
- var listRes = await GetShortageListCore(input);
-
- // 鎸夌収瀛楁 Info5 鍒嗙粍
- var groupedList = listRes
- .GroupBy(x => x.Info5) // 鏍规嵁 Info5 瀛楁杩涜鍒嗙粍
- .Select(g => new WmsShortageListOutput // 鍋囪鎮ㄥ皢鍒嗙粍鍚庣殑缁撴灉杞崲涓� WmsShortageListOutput
- {
- Info5 = g.Key,
- ShortageCount = g.Count(),
- })
- .ToList();
-
- // 杩涜鍒嗛〉澶勭悊
- var totalCount = groupedList.Count; // 鑾峰彇鎬绘暟
- var pagedList = groupedList
- //.OrderBy(x => x.Id) // 鏍规嵁闇�瑕佽繘琛屾帓搴�
- .Skip((input.Page - 1) * input.PageSize)
- .Take(input.PageSize)
- .ToList();
-
- // 鏋勯�犲苟杩斿洖鍒嗛〉缁撴灉
- return new SqlSugarPagedList<WmsShortageListOutput>
- {
- Page = input.Page,
- PageSize = input.PageSize,
- Total = totalCount,
- TotalPages = (int)Math.Ceiling((double)totalCount / input.PageSize),
- Items = pagedList,
- HasPrevPage = input.Page > 1,
- HasNextPage = input.Page < ((int)Math.Ceiling((double)totalCount / input.PageSize))
- };
- }
-
-
-
- /// <summary>
- /// 缂哄寘鏁版嵁
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- private async Task<List<WmsShortageListOutput>> GetShortageListCore(KittingListInput input)
- {
- var listRes = new List<WmsShortageListOutput>();
- // 缂撳瓨宀涙暟鎹�
- var queryHcdList = _rep.AsQueryable().WhereIF(!string.IsNullOrWhiteSpace(input.PackageCode), u => u.PackageCode == input.PackageCode);
-
- var listDao = await queryHcdList.ToListAsync();
- var packageCodes = listDao.Select(x => x.PackageCode).ToList();
- // 鑾峰彇 mes 鎵�鏈夌浉鍏宠褰�
- var allRecords = await _Mes_BatchOrderUPI_New_Rep.AsQueryable()
- .Where(m => packageCodes.Contains(m.PackageCode))
- .ToListAsync();
- // 閬嶅巻璁板綍锛屽姣� listDao
- var listDaoUbi = listDao.Select(u => u.Upi).ToHashSet(); // 灏� UPI 杞崲涓� HashSet锛屾彁楂樻煡鎵炬晥鐜�
- foreach (var item in allRecords)
- {
- if (!listDaoUbi.Contains(item.UPI)) // 浣跨敤 HashSet 杩涜鏌ユ壘
- {
- listRes.Add(new WmsShortageListOutput
- {
- UPI = item.UPI,
- PackageCode = item.PackageCode,
- DetailName = item.DetailName,
- OrderId = item.OrderId,
- PlanNo = item.PlanNo,
- Info5 = item.Info5,
- Info4 = item.Info4,
- Info10 = item.Info10,
- Info11 = item.Info11,
- Info12= item.Info12,
- Info13 = item.Info13,
- //Info14 = item.Info14,
- Info15 = item.Info15,
- Info16 = item.Info16,
- Info18 = item.Info18,
- Length = item.Length,
- Width = item.Width,
- Thk = item.Thk
- });
- }
- }
-
- return listRes;
- }
-
- /// <summary>
- /// 鍒嗛〉鏌ヨ鎵规缂烘枡娓呭崟 涓嶉綈鍖� -鏆傛椂涓嶇敤
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpPost]
- [ApiDescriptionSettings(Name = "ShortagePage2")]
- [Description("WmsStockQuan/ShortagePage2")]
- public async Task<SqlSugarPagedList<WmsShortageListOutput>> ShortagePage2(KittingListInput input)
- {
- // 鑾峰彇鍩虹鏁版嵁
- var list = await _rep.AsQueryable()
- .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim()))
- .Select(x => new WmsShortageListOutput
- {
- OrderId = x.OrderId,
- PlanNo = x.PlanNo,
- PackageCode = x.PackageCode
- })
- .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List
-
- // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭�
- var groupedResult = list
- .GroupBy(x => x.OrderId) // 鎸� OrderId 鍒嗙粍
- .Select(g => new WmsShortageListOutput
- {
- OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭
- PlanNo = g.FirstOrDefault().PlanNo, // 鑾峰彇缁勫唴鐨勭涓�涓� PlanNo
- PackageCode = g.FirstOrDefault().PackageCode, // 鑾峰彇缁勫唴鐨勭涓�涓� PackageCode
- HasCount = g.Count(), // 缁熻姣忕粍鐨勬暟閲�
- TotalCount = 0, // 鍒濆鍖� TotalCount
- ShortageCount = 0 // 鍒濆鍖� ShortageCount
- })
- .OrderBy(g => g.OrderId) // 鏍规嵁 OrderId 鎺掑簭
- .ToList(); // 杞崲涓� List
-
- // 寰幆 groupedResult 缁欐瘡涓�鏉″姞涓婃�绘暟閲� TotalCount
- foreach (var item in groupedResult)
- {
- item.TotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == item.PackageCode); // 鏍规嵁 PackageCode 缁熻鎬绘潯鏁�
- item.ShortageCount = item.TotalCount - item.HasCount > 0 ? item.TotalCount - item.HasCount : 0;
- }
-
- // 鍒嗛〉澶勭悊
- var pagedResult = groupedResult.AsQueryable() // 灏嗗垎缁勭粨鏋滆浆鎹负鍙煡璇㈢殑闆嗗悎
- .OrderBy(g => g.OrderId) // 杩涜鎺掑簭
- .Skip((input.Page - 1) * input.PageSize) // 璺宠繃鍓嶉潰鐨勯〉鏁�
- .Take(input.PageSize) // 鍙栧嚭褰撳墠椤电殑鏁版嵁
- .ToList(); // 杞崲涓� List
-
- var totalCount = groupedResult.Count; // 鑾峰彇鎬绘暟
- var totalPages = (int)Math.Ceiling((double)totalCount / input.PageSize); // 璁$畻鎬婚〉鏁�
-
- // 鏋勯�犲苟杩斿洖鍒嗛〉缁撴灉
- return new SqlSugarPagedList<WmsShortageListOutput>
- {
- Page = input.Page,
- PageSize = input.PageSize,
- Total = totalCount,
- TotalPages = totalPages,
- Items = pagedResult,
- HasPrevPage = input.Page > 1,
- HasNextPage = input.Page < totalPages
- };
- }
-
-
- /// <summary>
- /// 涓嶅垎椤垫煡璇㈡壒娆$己鏂欐竻鍗� 涓嶉綈鍖�-鏆傛椂涓嶇敤
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- [HttpGet]
- [ApiDescriptionSettings(Name = "ShortageList2")]
- [Description("WmsStockQuan/ShortageList2")]
- public async Task<List<WmsShortageListOutput>> ShortageList2([FromQuery] KittingListInput input)
- {
- var list = await _rep.AsQueryable()
- .WhereIF(!string.IsNullOrWhiteSpace(input.DetailName), u => u.PlaceCode.Contains(input.DetailName.Trim()))
- .Select(x => new WmsShortageListOutput
- {
- OrderId = x.OrderId,
- PlanNo = x.PlanNo,
- PackageCode = x.PackageCode
- })
- .ToListAsync(); // 纭繚鑾峰彇缁撴灉涓� List
-
- // 鍒嗙粍骞惰繑鍥炲垎缁勪俊鎭�
- var groupedResult = list
- .GroupBy(x => x.OrderId) // 鎸� OrderId 鍒嗙粍
- .Select(g => new WmsShortageListOutput
- {
- OrderId = g.Key, // 鑾峰彇鍒嗙粍鐨勯敭
- PlanNo = g.FirstOrDefault().PlanNo, // 鑾峰彇缁勫唴鐨勭涓�涓� PlanNo
- PackageCode = g.FirstOrDefault().PackageCode, // 鑾峰彇缁勫唴鐨勭涓�涓� PackageCode
- HasCount = g.Count(), // 缁熻姣忕粍鐨勬暟閲�
- TotalCount = 0, // 鍒濆鍖� TotalCount
- ShortageCount = 0 // 鍒濆鍖� ShortageCount
- })
- .OrderBy(g => g.OrderId) // 鏍规嵁 OrderId 鎺掑簭
- .ToList(); // 杞崲涓� List
-
- // 寰幆 groupedResult 缁欐瘡涓�鏉″姞涓婃�绘暟閲� CountTotal
- foreach (var item in groupedResult)
- {
- item.TotalCount = await _Mes_BatchOrderUPI_New_Rep.AsQueryable().CountAsync(m => m.PackageCode == item.PackageCode); // 鏍规嵁 PackageCode 缁熻鎬绘潯鏁�
- item.ShortageCount = item.TotalCount - item.HasCount > 0 ? item.TotalCount - item.HasCount : 0;
- }
-
- return groupedResult; // 杩斿洖鍒嗙粍缁撴灉
- }
+ #endregion
}
--
Gitblit v1.9.3