From 202cdf4c400f7b8507f129fab5766baac6bc7e45 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 11 三月 2025 17:40:20 +0800
Subject: [PATCH] 1
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs | 179 ++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 120 insertions(+), 59 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
index 6a69746..9bc3cd4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/StockInfoService.cs"
@@ -10,7 +10,9 @@
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
+using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.Stock;
+using WIDESEA_DTO.WCSInfo;
using WIDESEA_IBasicRepository;
using WIDESEA_IRecordRepository;
using WIDESEA_IRecordService;
@@ -30,6 +32,98 @@
stockInfo.Details = _stockRepository.StockInfoDetailRepository.QueryData(x => x.StockId == stockInfo.Id);
}
return stockInfo;
+ }
+ /// <summary>
+ /// 娣诲姞绌烘墭鐩樼粍鐩樹俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent AddStockEmpty(string palletCode)
+ {
+ try
+ {
+ Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == "Empty000");
+ if (materielInfo == null) throw new Exception($"鏈壘鍒扮┖鎵樼洏淇℃伅,鐗╂枡缂栧彿銆怑mpty000銆�");
+ Dt_StockInfo stockInfo = new Dt_StockInfo()
+ {
+ PalletCode = palletCode,
+ StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt(),
+ Creater = "System",
+ Details = new List<Dt_StockInfoDetail>()
+ };
+ Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
+ {
+ Status = StockStatusEmun.鍏ュ簱纭.ObjToInt(),
+ OrderNo = DateTime.Now.ToString("yyMMdd"),
+ StockId = stockInfo.Id != 0 ? stockInfo.Id : 0,
+ MaterielName = materielInfo.MaterielName,
+ MaterielCode = materielInfo.MaterielCode,
+ BatchNo = DateTime.Now.ToString("yyMMdd") + "E",
+ StockQuantity = 1,
+ SerialNumber = "",
+ Creater = "System"
+ };
+ stockInfo.Details.Add(stockInfoDetail);
+ AddMaterielGroup(stockInfo);
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+ /// <summary>
+ /// 娣诲姞缁勭洏/搴撳瓨淇℃伅
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent AddStockInfo(ref Dt_StockInfo stockInfo, ref Dt_InboundOrder inboundOrder, ProductionlineDTO productionlineDTO)
+ {
+ WebResponseContent content = new WebResponseContent().OK();
+ try
+ {
+ var materielCode = productionlineDTO.traytype.ToString();
+ var inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.BatchNo == productionlineDTO.batchNo);
+ materielCode = inboundOrderDetail.MaterielCode;
+ inboundOrderDetail.ReceiptQuantity++;
+ inboundOrderDetail.OrderDetailStatus = inboundOrderDetail.OverInQuantity == inboundOrderDetail.OrderQuantity ? OrderDetailStatusEnum.Over.ObjToInt() : OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
+
+ if (inboundOrder.Details.FirstOrDefault(x => x.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt()) == null)
+ {
+ inboundOrder.OrderStatus = InboundStatusEnum.鍏ュ簱瀹屾垚.ObjToInt();
+ }
+ else if (inboundOrder.OrderStatus == InboundStatusEnum.鏈紑濮�.ObjToInt())
+ {
+ inboundOrder.OrderStatus = InboundStatusEnum.鍏ュ簱涓�.ObjToInt();
+ }
+ var materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
+ if (materielInfo == null) throw new Exception($"鏈壘鍒扮墿鏂欎俊鎭�,鐗╂枡缂栫爜銆恵materielCode}銆�");
+ Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
+ {
+ Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
+ OrderNo = inboundOrder?.OrderNo,
+ StockId = stockInfo.Id != 0 ? stockInfo.Id : 0,
+ MaterielName = materielInfo.MaterielName,
+ MaterielCode = materielInfo.MaterielCode,
+ BatchNo = inboundOrderDetail.BatchNo,
+ StockQuantity = 1,// productionlineDTO.QtySum,
+ SerialNumber = "",
+ //SerialNumber = $"{inboundOrder.OrderNo} | {materielInfo.MaterielCode} | {pdaMaterielGroupDTO.BatchNo} | {pdaMaterielGroupDTO.ReceiptQuantity}",
+ Creater = "System"
+ };
+ if (stockInfo.Id == 0)
+ {
+ stockInfo.PalletCode = productionlineDTO.Barcode;
+ stockInfo.StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt();
+ stockInfo.Creater = "System";
+ stockInfo.Remark = productionlineDTO.productQty;
+ }
+ stockInfo.Details.Add(stockInfoDetail);
+
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
}
public void AddMaterielGroup(Dt_StockInfo stockInfo)
@@ -106,67 +200,34 @@
/// <returns></returns>
public List<StockSelectViewDTO> GetStockSelectViews(string materielCode)
{
- List<string> roadways = _basicRepository.RoadwayInfoRepository.CanOutRoadwayNos;
-
- List<int> warehouseIds = _basicRepository.WarehouseRepository.EnableWarehouseIds;
-
- List<int> areaIds = _basicRepository.AreaInfoRepository.GetEnableAreaIds(warehouseIds);
-
- List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(roadways, areaIds);
-
- #region 鎸夌墿鏂欐暟閲忔煡璇�
- //var StockSelectViewDTOs = BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId, (a, b) => new StockSelectViewDTO
- //{
- // LocationCode = a.LocationCode,
- // MaterielCode = b.MaterielCode,
- // MaterielName = b.MaterielName,
- // PalletCode = a.PalletCode,
- // UseableQuantity = b.StockQuantity - b.OutboundQuantity
- //}, a => locationCodes.Contains(a.LocationCode), b => b.StockQuantity > b.OutboundQuantity && b.Status == StockStatusEmun.宸插叆搴�.ObjToInt() && b.MaterielCode == materielCode, x => true).GroupBy(x => x.PalletCode).Select(x => new StockSelectViewDTO
- //{
- // LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
- // MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
- // MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
- // PalletCode = x.Key,
- // UseableQuantity = x.Sum(x => x.UseableQuantity)
- //}).ToList();
- #endregion
-
- #region 鎸夋壒鍙峰拰鎵樼洏鏁伴噺鏌ヨ
- //StockSelectViewDTOs = BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId, (a, b) => new StockSelectViewDTO
- //{
- // LocationCode = a.LocationCode,
- // MaterielCode = b.MaterielCode,
- // MaterielName = b.MaterielName,
- // PalletCode = a.PalletCode,
- // BatchNo = b.BatchNo,
- // UseableQuantity = 1
- //}, a => locationCodes.Contains(a.LocationCode), b => b.StockQuantity > b.OutboundQuantity && b.Status == StockStatusEmun.宸插叆搴�.ObjToInt() && b.MaterielCode == materielCode, x => true).GroupBy(x => x.PalletCode).Select(x => new StockSelectViewDTO
- //{
- // LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
- // MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
- // MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
- // BatchNo = x.FirstOrDefault()?.BatchNo ?? "",
- // PalletCode = x.Key,
- // UseableQuantity = x.Sum(x => x.UseableQuantity)
- //}).ToList();
- #endregion
-
- #region 鏌ヨ鐗╂枡搴撳瓨鎸夋壒鍙峰垎缁�
- var StockSelectViewDTOs = BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId, (a, b) => new StockSelectViewDTO
+ try
{
- MaterielCode = b.MaterielCode,
- MaterielName = b.MaterielName,
- BatchNo = b.BatchNo,
- }, a => locationCodes.Contains(a.LocationCode), b => b.StockQuantity > b.OutboundQuantity && b.Status == StockStatusEmun.宸插叆搴�.ObjToInt() && b.MaterielCode == materielCode, x => true).GroupBy(x => x.BatchNo).Select(x => new StockSelectViewDTO
+ //Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materielCode);
+ //if (materielInfo == null) throw new Exception($"鏈壘鍒扮墿鏂欎俊鎭�");
+ return BaseDal.QueryTabs<Dt_StockInfo, Dt_StockInfoDetail, StockSelectViewDTO>((a, b) => a.Id == b.StockId, (a, b) => new StockSelectViewDTO
+ {
+ LocationCode = a.LocationCode,
+ MaterielCode = b.MaterielCode,
+ MaterielName = b.MaterielName,
+ PalletCode = a.PalletCode,
+ //UseableQuantity = b.StockQuantity - b.OutboundQuantity
+ UseableQuantity = b.StockQuantity,
+ BatchNo = b.BatchNo,
+ }, a => a.StockStatus == StockStatusEmun.宸插叆搴�.ObjToInt(), b => b.Status == StockStatusEmun.宸插叆搴�.ObjToInt() && b.MaterielCode == materielCode, x => true).GroupBy(x => x.LocationCode).Select(x => new StockSelectViewDTO
+ {
+ LocationCode = x.FirstOrDefault()?.LocationCode ?? "",
+ MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
+ MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
+ PalletCode = string.Join(",", x.Select(x => x.PalletCode).ToList()),
+ //UseableQuantity = x.Sum(x => x.UseableQuantity)
+ UseableQuantity = x.Sum(x => x.UseableQuantity),
+ BatchNo = x.FirstOrDefault()?.BatchNo ?? ""
+ }).ToList();
+ }
+ catch (Exception ex)
{
- MaterielCode = x.FirstOrDefault()?.MaterielCode ?? "",
- MaterielName = x.FirstOrDefault()?.MaterielName ?? "",
- BatchNo = x.Key,
- UseableQuantity = x.Count()
- }).ToList();
- #endregion
- return StockSelectViewDTOs;
+ return null;
+ }
}
/// <summary>
/// 璁$畻搴撳瓨
--
Gitblit v1.9.3