From aa63e0401cea4e367c9d9fd620d996a688c0a01f Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 21 五月 2025 15:18:51 +0800
Subject: [PATCH] 添加PDA人工入库功能
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs | 79 +++++++++++++++++++++++++++------------
1 files changed, 54 insertions(+), 25 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs"
index b5ce69c..2eef9c2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs"
@@ -1,22 +1,26 @@
锘縰sing AutoMapper;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core;
+using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Core.Utilities;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.Outbound;
+using WIDESEA_IBasicRepository;
using WIDESEA_IBasicService;
using WIDESEA_IOutboundRepository;
using WIDESEA_IOutboundService;
using WIDESEA_IStockService;
+using WIDESEA_ITaskInfoRepository;
using WIDESEA_Model.Models;
namespace WIDESEA_OutboundService
@@ -25,30 +29,43 @@
{
private readonly IMapper _mapper;
private readonly IMaterielInfoService _materielInfoService;
- private readonly IStockInfoService _stockService;
+ private readonly IStockInfoService _stockService;
private readonly IStockInfoDetailService _stockDetailService;
+ private readonly IUnitOfWorkManage _unitOfWorkManage;
+ private readonly IBasicRepository _basicRepository;
+ private readonly ITaskRepository _taskRepository;
+ private readonly IOutboundOrderDetailRepository _outboundOrderDetailRepository;
+ private readonly SqlSugarClient _dbBase;
public IOutboundOrderRepository Repository => BaseDal;
- public OutboundOrderService(IOutboundOrderRepository BaseDal, IMapper mapper, IMaterielInfoService materielInfoService, IStockInfoDetailService stockDetailService, IStockInfoService stockInfoService) : base(BaseDal)
+ public OutboundOrderService(IOutboundOrderRepository BaseDal, IBasicRepository basicRepository, IMapper mapper, IMaterielInfoService materielInfoService, IStockInfoDetailService stockDetailService, IStockInfoService stockInfoService, IUnitOfWorkManage unitOfWorkManage, ITaskRepository taskRepository, IOutboundOrderDetailRepository outboundOrderDetailRepository) : base(BaseDal)
{
_mapper = mapper;
_materielInfoService = materielInfoService;
_stockDetailService = stockDetailService;
- _stockService = stockInfoService;
+ _basicRepository = basicRepository;
+ _stockService = stockInfoService;
+ _dbBase = unitOfWorkManage.GetDbClient();
+ _taskRepository = taskRepository;
+ _outboundOrderDetailRepository = outboundOrderDetailRepository;
}
public override WebResponseContent AddData(SaveModel saveModel)
{
OutboundOrderAddDTO outboundOrder = saveModel.MainData.DicToModel<OutboundOrderAddDTO>();
List<OutboundOrderDetailAddDTO> orderDetailAddDTOs = saveModel.DetailData.DicToIEnumerable<OutboundOrderDetailAddDTO>();
- outboundOrder.Details = orderDetailAddDTOs.GroupBy(x => x.MaterielCode).Select(x => new OutboundOrderDetailAddDTO
- {
- BatchNo = x.FirstOrDefault()?.BatchNo ?? "",
- MaterielCode = x.Key,
- OrderQuantity = x.Sum(x => x.OrderQuantity),
- Remark = x.FirstOrDefault(v => !string.IsNullOrEmpty(v.Remark))?.Remark ?? ""
- }).ToList();
+ #region 鏍规嵁鐗╂枡缂栧彿鍚堝苟鍑哄簱鏁伴噺
+ //outboundOrder.Details = orderDetailAddDTOs.GroupBy(x => x.MaterielCode).Select(x => new OutboundOrderDetailAddDTO
+ //{
+ // BatchNo = x.FirstOrDefault()?.BatchNo ?? "",
+ // MaterielCode = x.Key,
+ // OrderQuantity = x.Sum(x => x.OrderQuantity),
+ // Remark = x.FirstOrDefault(v => !string.IsNullOrEmpty(v.Remark))?.Remark ?? ""
+ //}).ToList();
+ #endregion
+ outboundOrder.Details = new List<OutboundOrderDetailAddDTO>();
+ outboundOrder.Details.AddRange(orderDetailAddDTOs);
return AddOutboundOrder(outboundOrder);
}
@@ -60,7 +77,7 @@
return WebResponseContent.Instance.Error("鐗╂枡閲嶅");
}
outboundOrderDetails = outboundOrderDetails.Where(x => (x.Id > 0 && x.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) || x.Id == 0).ToList();
-
+
List<Dictionary<string, object>> dics = new List<Dictionary<string, object>>();
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
@@ -75,6 +92,31 @@
return base.UpdateData(saveModel);
}
+ public override WebResponseContent DeleteData(object[] keys)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ List<Dt_OutboundOrder> _OutboundOrders = BaseDal.Db.Queryable<Dt_OutboundOrder>().Includes(x => x.Details).Where(x => keys.Contains(x.Id)).ToList();
+ if (_OutboundOrders.Count < 1) throw new Exception("鏈壘鍒板嚭搴撳崟");
+ List<Dt_OutboundOrderDetail> orderDetails = new List<Dt_OutboundOrderDetail>();
+ foreach (var item in _OutboundOrders)
+ {
+ if (item.Details.Where(x => x.LockQuantity != x.OverOutQuantity).Any())
+ throw new Exception("瀛樺湪鏈嚭搴撳畬鎴愭墭鐩�");
+ orderDetails.AddRange(item.Details);
+ item.Details = null;
+ }
+ BaseDal.DeleteAndMoveIntoHty(_OutboundOrders, OperateType.浜哄伐鍒犻櫎);
+ content.Status = _outboundOrderDetailRepository.DeleteAndMoveIntoHty(orderDetails, OperateType.浜哄伐鍒犻櫎);
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+
public WebResponseContent AddOutboundOrder(OutboundOrderAddDTO orderAddDTO)
{
WebResponseContent content = new();
@@ -86,6 +128,7 @@
#endregion
Dt_OutboundOrder outboundOrder = _mapper.Map<Dt_OutboundOrder>(orderAddDTO);
+ outboundOrder.OrderNo = DateTime.Now.ToString("yyMMddHHmmss");
outboundOrder.OrderStatus = InboundStatusEnum.鏈紑濮�.ObjToInt();
bool a = BaseDal.Db.InsertNav(outboundOrder).Include(x => x.Details).ExecuteCommand();
content = WebResponseContent.Instance.OK();
@@ -126,20 +169,6 @@
return (false, "鍗曟嵁宸插瓨鍦�", outboundOrderAddDTO);
}
return (true, "鎴愬姛", outboundOrderAddDTO);
- }
-
- public WebResponseContent ReleaseOutOrder(int orderId)
- {
- WebResponseContent content = new WebResponseContent();
- try
- {
-
- }
- catch (Exception ex)
- {
-
- }
- return content;
}
}
}
--
Gitblit v1.9.3