• WMS仓库信息系统仓库信息Service模块


    1. using Infrastructure.App;
    2. using Infrastructure.Attribute;
    3. using Model.Dto.WarehouseManagement;
    4. using Model.Page;
    5. using Model.WarehouseManagement;
    6. using Repository;
    7. using Service.Interface.WarehouseManagement;
    8. using Microsoft.AspNetCore.Hosting;
    9. using SqlSugar;
    10. namespace Service.WarehouseManagement
    11. {
    12. [AppService(ServiceType = typeof(IWarehouseService), ServiceLifetime = LifeTime.Transient)]
    13. public class WarehouseService : BaseService<Warehouse>, IWarehouseService
    14. {
    15. public long AddWarehouse(Warehouse warehouse, string userName)
    16. {
    17. warehouse.Create_by = userName;
    18. warehouse.Create_time = DateTime.Now;
    19. return InsertReturnBigIdentity(warehouse);
    20. }
    21. public long DeleteWarehouse(long warehouseId)
    22. {
    23. return Delete(warehouseId);
    24. }
    25. public (string, string) DownloadImportTemplate()
    26. {
    27. IWebHostEnvironment webHostEnvironment = (IWebHostEnvironment)App.ServiceProvider.GetService(typeof(IWebHostEnvironment));
    28. string sFileName = "仓库信息.xlsx";
    29. string fullPath = Path.Combine(webHostEnvironment.WebRootPath, "ImportTemplate", sFileName);
    30. return (sFileName, fullPath);
    31. }
    32. public long EidtWarehouse(Warehouse warehouse, string userName)
    33. {
    34. warehouse.Update_by = userName;
    35. warehouse.Update_time = DateTime.Now;
    36. return Update(warehouse);
    37. }
    38. public PagedInfo GetAllWarehouses(WarehouseQueryDto warehouseQueryDto)
    39. {
    40. var expression = Expressionable.Create()
    41. .AndIF(!string.IsNullOrEmpty(warehouseQueryDto.WarehouseName), warehouse => warehouse.WarehouseName.Contains(warehouseQueryDto.WarehouseName))
    42. .AndIF(!string.IsNullOrEmpty(warehouseQueryDto.City), warehouse => warehouse.City.Contains(warehouseQueryDto.City))
    43. .AndIF(!string.IsNullOrEmpty(warehouseQueryDto.Manager), warehouse => warehouse.Manager.Contains(warehouseQueryDto.Manager))
    44. .AndIF(warehouseQueryDto.BeginTime != DateTime.MinValue && warehouseQueryDto.BeginTime != null, exp => exp.Create_time >= warehouseQueryDto.BeginTime)
    45. .AndIF(warehouseQueryDto.EndTime != DateTime.MaxValue && warehouseQueryDto.EndTime != null, exp => exp.Create_time <= warehouseQueryDto.EndTime);
    46. return Queryable()
    47. .Where(expression.ToExpression())
    48. .ToPage(warehouseQueryDto);
    49. }
    50. public List GetAllWarehouses()
    51. {
    52. return Queryable()
    53. .ToList();
    54. }
    55. public Warehouse GetWarehouse(long warehouseId)
    56. {
    57. return Queryable()
    58. .Where(it => it.WarehouseId == warehouseId)
    59. .First();
    60. }
    61. public (string, object) ImportWarehouses(List warehouse)
    62. {
    63. var storage = Context.Storageable(warehouse)
    64. .SplitUpdate(it => it.Any()) //存在更新
    65. .SplitInsert(it => true) //否则插入(更新优先级大于插入)
    66. .SplitError(it => string.IsNullOrEmpty(it.Item.WarehouseName), "仓库名称不能为空")
    67. .SplitError(it => string.IsNullOrEmpty(it.Item.Manager), "负责人不能为空")
    68. .SplitError(it => string.IsNullOrEmpty(it.Item.ContactTel), "联系方式不能为空")
    69. .WhereColumns(it => it.WarehouseName) //如果不是主键可以这样实现(多字段it=>new{it.x1,it.x2})
    70. .ToStorage();
    71. storage.AsInsertable.ExecuteCommand(); //执行插入
    72. storage.AsUpdateable.ExecuteCommand(); //执行更新
    73. //storage.AsDeleteable.ExecuteCommand(); //执行删除 
    74. string msg = string.Format(" 插入{0} 更新{1} 错误{2} 不计算{3} 删除{4} 总共{5}",
    75. storage.InsertList.Count,
    76. storage.UpdateList.Count,
    77. storage.ErrorList.Count,
    78. storage.IgnoreList.Count,
    79. storage.DeleteList.Count,
    80. storage.TotalList.Count);
    81. //输出统计
    82. Console.WriteLine(msg);
    83. //输出错误信息
    84. foreach (var item in storage.ErrorList)
    85. {
    86. Console.WriteLine("userName为" + item.Item.WarehouseName + " : " + item.StorageMessage);
    87. }
    88. return (msg, storage.ErrorList);
    89. }
    90. public bool IsOtherUse(long warehouseId)
    91. {
    92. var regionQuery = Context
    93. .Queryable()
    94. .Where(it => it.WarehouseId == warehouseId)
    95. .Select(it => (object)new { Name = it.RegionName });
    96. var locationQuery = Context
    97. .Queryable()
    98. .Where(it => it.WarehouseId == warehouseId)
    99. .Select(it => (object)new { Name = it.LocationCode });
    100. var result = Context
    101. .UnionAll(regionQuery, locationQuery)
    102. .ToList();
    103. return result.Count > 0;
    104. }
    105. }
    106. }

  • 相关阅读:
    kafka脚本总结
    4 另一种图片颜色表示:YUV
    linux驱动之阻塞与非阻塞I/O
    Python知识点17---包
    河北工业大学数据挖掘实验二 数据立方体与联机分析处理构建
    数据分析实战应用案例精讲-【概念篇】用户画像(最终篇)(附实战案例)
    Nginx安装与配置
    Linux----Ubuntu系统官网下载iso镜像文件
    二叉树的基本认识(三)
    unity笔记
  • 原文地址:https://blog.csdn.net/softshow1026/article/details/134492528