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, 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 palletCodeInfos = new List(); // int serialNo = 0; // DateTime now = DateTime.Now; // Dt_PalletCodeInfo palletCodeInfo = BaseDal.QueryFirst(x => x.WarehouseId == warehouseId, new Dictionary { { 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 palletCodeInfos = new List(); int serialNo = 0; DateTime now = DateTime.Now; Dt_PalletCodeInfo palletCodeInfo = BaseDal.QueryFirst(x => x.WarehouseId == warehouseId && x.PalletTypeId==palletTypeId && x.CreateDate.Year == now.Year && x.CreateDate.Month == now.Month && x.CreateDate.Day == now.Day, new Dictionary { { 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 = palletTypeId, 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; } } }