TaskBookBehavior_63001.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using DbCommon.BusinessCore.BaseCore;
  2. using DbCommon.Enties.DbModels;
  3. using ProjectManagementSystem.Common.Core;
  4. using ProjectManagementSystem.Common.Extenions;
  5. using ProjectManagementSystem.Common.Logger;
  6. using ProjectManagementSystem.Common.Models.Crms;
  7. using ProjectManagementSystem.Common.Service;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace ProjectManagementSystem.Common.TaskBookEvent
  14. {
  15. public class TaskBookBehavior_63001 : BaseTaskBookBehaviorV2
  16. {
  17. LocationPropertyManager locationManager = new LocationPropertyManager();
  18. public TaskBookBehavior_63001() : base(63001, "库位置满")
  19. {
  20. }
  21. public override bool TaskBookOperator(TaskData taskDetailInfo, StepData stepInfo)
  22. {
  23. try
  24. {
  25. if (Crms.PmsTaskService is PmsTaskServiceSWms)
  26. {
  27. return SWMS(taskDetailInfo, stepInfo);
  28. }
  29. else
  30. {
  31. return WMS(taskDetailInfo, stepInfo);
  32. }
  33. }
  34. catch (Exception ex)
  35. {
  36. LogException(ex);
  37. }
  38. return false;
  39. }
  40. private bool SWMS(TaskData taskData, StepData stepData)
  41. {
  42. var data = Crms.SWmsApi.GetLocationStockByLocationId(stepData.WareHouseID);
  43. if (data == null)
  44. {
  45. Log(taskData, stepData, $"获取库位信息失败");
  46. return false;
  47. }
  48. var result = Crms.SWmsApi.UpdateLocationLockMark(stepData.WareHouseID, data.Location.lockMark, null, out var content);
  49. if (!result)
  50. {
  51. Log(taskData, stepData, $"任务占用解除失败 {(result ? null : content)}");
  52. return false;
  53. }
  54. var stock = new SWmsStock();
  55. stock.recordType = SWmsERecordType.AutoIn;
  56. stock.supporterType = SWmsESupporterType.Location;
  57. stock.supporterId = stepData.WareHouseID;
  58. stock.goodsCode = "默认货物";
  59. stock.goodsNumber = 1;
  60. stock.taskId = taskData.TaskID;
  61. stock.operationSource = "pms";
  62. result = Crms.SWmsApi.StockSave(stock, out content);
  63. Log(taskData, stepData, $"{Remark}{result.ToChineseString()} {(result ? null : content)}");
  64. return result;
  65. }
  66. private bool WMS(TaskData taskDetailInfo, StepData stepInfo)
  67. {
  68. var data = locationManager.GetById(stepInfo.WareHouseID);
  69. if (data == null)
  70. {
  71. Log(taskDetailInfo, stepInfo, $"获取库位信息失败");
  72. return false;
  73. }
  74. data.Status = LocationStatus.Filled;
  75. data.CurrentTaskID = string.Empty;
  76. data.ModifyTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  77. bool result = locationManager.Update(data);
  78. Log(taskDetailInfo, stepInfo, $"库位置满,操作结果:{result}");
  79. return result;
  80. }
  81. }
  82. }