using SqlSugar; 
 | 
using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Linq; 
 | 
using System.Text; 
 | 
using System.Threading.Tasks; 
 | 
using WIDESEA_Common.CommonEnum; 
 | 
using WIDESEA_Common.WareHouseEnum; 
 | 
using WIDESEA_Core; 
 | 
using WIDESEA_Core.BaseServices; 
 | 
using WIDESEA_Core.Helper; 
 | 
using WIDESEA_IBasicRepository; 
 | 
using WIDESEA_IBasicService; 
 | 
using WIDESEA_Model.Models; 
 | 
  
 | 
namespace WIDESEA_BasicService 
 | 
{ 
 | 
    public class PalletCodeInfoService : ServiceBase<Dt_PalletCodeInfo, IPalletCodeInfoRepository>, IPalletCodeInfoService 
 | 
    { 
 | 
        private readonly IWarehouseRepository _warehouseRepository; 
 | 
        private readonly IPalletTypeInfoRepository _palletTypeInfoRepository; 
 | 
  
 | 
        public PalletCodeInfoService(IPalletCodeInfoRepository BaseDal, IWarehouseRepository warehouseRepository, IPalletTypeInfoRepository palletTypeInfoRepository) : base(BaseDal) 
 | 
        { 
 | 
            _warehouseRepository = warehouseRepository; 
 | 
            _palletTypeInfoRepository = palletTypeInfoRepository; 
 | 
        } 
 | 
  
 | 
        static object locker = new object(); 
 | 
        //public override WebResponseContent AddData(SaveModel saveModel) 
 | 
        //{ 
 | 
        //    int warehouseId = 0; 
 | 
        //    int count = 0; 
 | 
        //    if (saveModel.MainData.TryGetValue("warehouseId", out object? warehouse) && warehouse != null) 
 | 
        //    { 
 | 
        //        warehouseId = warehouse.ObjToInt(); 
 | 
        //    } 
 | 
        //    if (saveModel.MainData.TryGetValue("count", out object? countValue) && countValue != null) 
 | 
        //    { 
 | 
        //        count = countValue.ObjToInt(); 
 | 
        //    } 
 | 
        //    lock (locker) 
 | 
        //    { 
 | 
        //        List<Dt_PalletCodeInfo> palletCodeInfos = new List<Dt_PalletCodeInfo>(); 
 | 
        //        int serialNo = 0; 
 | 
        //        DateTime now = DateTime.Now; 
 | 
        //        Dt_PalletCodeInfo palletCodeInfo = BaseDal.QueryFirst(x => x.WarehouseId == warehouseId, new Dictionary<string, OrderByType> { { nameof(Dt_PalletCodeInfo.SerialNo), OrderByType.Desc } }); 
 | 
        //        if (palletCodeInfo != null && palletCodeInfo.CreateDate.Year == now.Year && palletCodeInfo.CreateDate.Month == now.Month && palletCodeInfo.CreateDate.Day == now.Day) 
 | 
        //        { 
 | 
        //            serialNo = palletCodeInfo.SerialNo + 1; 
 | 
  
 | 
        //        } 
 | 
        //        else 
 | 
        //        { 
 | 
        //            serialNo = 1; 
 | 
        //        } 
 | 
        //        Dt_Warehouse _Warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId); 
 | 
        //        string uplen = ""; 
 | 
        //        uplen = _Warehouse.WarehouseCode switch 
 | 
        //        { 
 | 
        //            "HA57" => "B", 
 | 
        //            "HA58" => "P", 
 | 
        //            "HA152" => "G", 
 | 
        //            "HA64" => "S", 
 | 
        //            "阻焊仓" => "Z", 
 | 
        //            "HA153" => "Y", 
 | 
        //            "HA71" => "C", 
 | 
        //            "HA60" => "F", 
 | 
        //            _ => "N" 
 | 
        //        }; 
 | 
        //        for (int i = 0; i < count; i++) 
 | 
        //        { 
 | 
  
 | 
        //            palletCodeInfos.Add(new Dt_PalletCodeInfo 
 | 
        //            { 
 | 
        //                SerialNo = serialNo, 
 | 
        //                PalletCode = uplen + now.ToString("yyyyMMdd") + serialNo.ToString().PadLeft(3, '0'), 
 | 
        //                PalletType = 1, 
 | 
        //                PalletTypeId = 0, 
 | 
        //                WarehouseId = warehouseId, 
 | 
        //                Status = 0, 
 | 
        //                Size = 0 
 | 
        //            }); 
 | 
  
 | 
        //            serialNo = serialNo + 1; 
 | 
        //        } 
 | 
        //        return base.AddData(palletCodeInfos); 
 | 
        //    } 
 | 
        //    } 
 | 
        //} 
 | 
  
 | 
  
 | 
        public WebResponseContent AddData(int warehouseId, int count, int palletTypeId) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.Id == palletTypeId && x.WarehouseId == warehouseId); 
 | 
                if (palletTypeInfo == null) 
 | 
                { 
 | 
                    return WebResponseContent.Instance.Error($"未找到托盘类型配置信息"); 
 | 
                } 
 | 
                lock (locker) 
 | 
                { 
 | 
                    List<Dt_PalletCodeInfo> palletCodeInfos = new List<Dt_PalletCodeInfo>(); 
 | 
                    int serialNo = 0; 
 | 
                    DateTime now = DateTime.Now; 
 | 
                    Dt_PalletCodeInfo palletCodeInfo = BaseDal.QueryFirst(x => x.WarehouseId == warehouseId, new Dictionary<string, OrderByType> { { nameof(Dt_PalletCodeInfo.SerialNo), OrderByType.Desc } }); 
 | 
                    if (palletCodeInfo != null && palletCodeInfo.CreateDate.Year == now.Year && palletCodeInfo.CreateDate.Month == now.Month && palletCodeInfo.CreateDate.Day == now.Day) 
 | 
                    { 
 | 
                        serialNo = palletCodeInfo.SerialNo + 1; 
 | 
  
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        serialNo = 1; 
 | 
                    } 
 | 
  
 | 
                    for (int i = 0; i < count; i++) 
 | 
                    { 
 | 
  
 | 
                        palletCodeInfos.Add(new Dt_PalletCodeInfo 
 | 
                        { 
 | 
                            SerialNo = serialNo, 
 | 
                            PalletCode = palletTypeInfo.CodeStartStr + now.ToString("yyyyMMdd") + serialNo.ToString().PadLeft(3, '0'), 
 | 
                            PalletType = 1, 
 | 
                            PalletTypeId = 0, 
 | 
                            WarehouseId = warehouseId, 
 | 
                            Status = 0, 
 | 
                            Size = 0 
 | 
                        }); 
 | 
  
 | 
                        serialNo = serialNo + 1; 
 | 
                    } 
 | 
                    BaseDal.AddData(palletCodeInfos); 
 | 
                } 
 | 
                return WebResponseContent.Instance.OK(); 
 | 
            } 
 | 
            catch (Exception ex) 
 | 
            { 
 | 
                return WebResponseContent.Instance.Error(ex.Message); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public WebResponseContent PrintStatusUp(string printCode) 
 | 
        { 
 | 
            WebResponseContent content = new WebResponseContent(); 
 | 
            try 
 | 
            { 
 | 
                Dt_PalletCodeInfo palletCodeInfo = BaseDal.QueryFirst(x => x.PalletCode == printCode); 
 | 
                if (palletCodeInfo == null) 
 | 
                { 
 | 
                    return content.Error("打印的托盘码不存在"); 
 | 
                } 
 | 
                palletCodeInfo.Status = PrintStatusEnum.Printed.ObjToInt(); 
 | 
                BaseDal.UpdateData(palletCodeInfo); 
 | 
                return content.OK(); 
 | 
            } 
 | 
            catch (Exception ex) 
 | 
            { 
 | 
                content.Error("错误:" + ex.Message); 
 | 
            } 
 | 
            return content; 
 | 
        } 
 | 
    } 
 | 
} 
 |