WareaoffGetBLL.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using SqlSugar;
  8. using WMS.Util;
  9. using WMS.Info;
  10. namespace WMS.Core
  11. {
  12. public class WareaOffGetBLL : IBLL
  13. {
  14. public string InJsonData { get; set; }
  15. public object OutObjData { get; set; }
  16. public string SuccessMsg { get; set; } = "获取离线未锁定区域成功。";
  17. public LoginUserInfo LoginUser { get; set; }
  18. public string BLLDesc { get; private set; } = "获取离线未锁定区域";
  19. public void Exec()
  20. {
  21. try
  22. {
  23. var Ctx = SysDbCore.GetDbCtx();
  24. var wwlist = Ctx.Queryable<BASE_WAREHOUSE, BASE_WAREA>((w, wa) => new object[] { JoinType.Left, w.F_NO == wa.F_WAREHOUSENO })
  25. .Where((w, wa) => w.F_TYPENUM == (int)EWarehouseType.OfflineRFWarehouse && w.F_ISSTOP <= 0 && w.F_ISDELETE <= 0 && wa.F_ISSTOP <= 0 && wa.F_ISDELETE <= 0)
  26. .Select((w, wa) => new WareaOffInfo
  27. {
  28. WareaName = wa.F_NAME,
  29. WareaNo = wa.F_NO,
  30. WarehouseName = w.F_NAME,
  31. WarehouseNo = w.F_NO,
  32. WarehouseTypeNum = w.F_TYPENUM
  33. }).ToList();
  34. var waslist = Ctx.Queryable<ACL_USERTOKEN>().Where(it => it.F_APPTYPENUM == (int)EAppType.OffLineRF).ToList();
  35. if (waslist != null && waslist.Count > 0)
  36. {
  37. foreach (var w in waslist)
  38. {
  39. if (string.IsNullOrWhiteSpace(w.F_WAREANOLIST))
  40. continue;
  41. List<string> wlist = w.F_WAREANOLIST.ToObject<List<string>>();
  42. wwlist.RemoveAll(a => wlist.Contains(a.WareaNo));
  43. }
  44. }
  45. OutObjData = wwlist;
  46. }
  47. catch (Exception ex)
  48. {
  49. throw ex;
  50. }
  51. }
  52. }
  53. }