validTareTime.cs 4.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using Common;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using com.hnshituo.core.webapp.vo;
  8. namespace MeterConditionLibrary
  9. {
  10. /// <summary>
  11. /// 验证回皮时间,必须是先毛后皮的流程才验证回皮时间
  12. /// </summary>
  13. public class validTareTime
  14. {
  15. /// <summary>
  16. /// 验证回皮时间,必须是先毛后皮的流程才验证回皮时间
  17. /// </summary>
  18. /// <param name="scale">预报信息</param>
  19. /// <param name="sMeterType">计量类型,1过毛重,2过皮重,3结净</param>
  20. /// <param name="fristMeter">一次计量信息,若为结净状态才有值</param>
  21. public void ValidMethod(PreTrackScale scale, string sMeterType, MeterWorkCarActualFirst fristMeter)
  22. {
  23. //未锁定的情况下
  24. //if (!PbCache.isLockFrm)
  25. {
  26. if (sMeterType == "3")
  27. {
  28. //验证回皮时间
  29. if (PbCache.monitor.validTareTime == "1" && !PbCache.isNotValid)
  30. {
  31. MeterBaseTareService limitService = new MeterBaseTareService();
  32. RESTfulResult<List<MeterBaseTare>> rmL = limitService.doQueryWf(new MeterBaseTare { matterNo = scale.matterNo, meterTypeNo = scale.meterTypeNo });
  33. if (rmL.Succeed)
  34. {
  35. if (rmL.Data != null && rmL.Data.Count > 0)
  36. {
  37. string createTime = DateTime.Now.ToString("yyyy-MM-dd"); //fristMeter.createTime.Value.ToString("yyyy-MM-dd");
  38. if (rmL.Data[0].tareTypeNo == "001007001") //固定时间
  39. {
  40. if (DateTime.Compare(Convert.ToDateTime(createTime + " " + rmL.Data[0].tareTime), DateTime.Now) > 0)
  41. {
  42. PbCache.monitorResult.valid_tare_time = true;
  43. }
  44. else
  45. {
  46. PbCache.monitorResult.valid_tare_time = false;
  47. PbCache.ResultMessage = string.Format("计量回皮时间超出范围");
  48. }
  49. }
  50. else if (rmL.Data[0].tareTypeNo == "001007002") //时间间隔
  51. {
  52. if (DateTime.Compare(fristMeter.createTime.Value.AddSeconds(rmL.Data[0].tareSpaceTime == null ? 0 : (double)rmL.Data[0].tareSpaceTime), DateTime.Now) > 0)
  53. {
  54. PbCache.monitorResult.valid_tare_time = true;
  55. }
  56. else
  57. {
  58. PbCache.monitorResult.valid_tare_time = false;
  59. PbCache.ResultMessage = string.Format("计量回皮时间超出范围");
  60. }
  61. }
  62. else
  63. {
  64. PbCache.monitorResult.valid_tare_time = false;
  65. PbCache.ResultMessage = "未找到回皮时间配置";
  66. //PbCache.ResultMessage = string.Format("未找到回皮类型[{0}]配置的验证计量回皮时间逻辑信息", rmL.Data[0].tare_type_no);
  67. }
  68. }
  69. else
  70. {
  71. PbCache.monitorResult.valid_tare_time = true;
  72. //PbCache.ResultMessage = string.Format("未找到计量类型[{0}]对应的物料[{1}]配置的计量回皮时间信息", scale.meterTypeName, scale.matterName);
  73. //PbCache.ResultMessage = "未找到回皮时间配置";
  74. }
  75. }
  76. else
  77. {
  78. PbCache.monitorResult.valid_tare_time = false;
  79. PbCache.ResultMessage = "未找到回皮时间配置";
  80. //PbCache.ResultMessage = string.Format("未找到计量类型[{0}]对应的物料[{1}]配置的计量回皮时间信息", scale.meterTypeName, scale.matterName);
  81. }
  82. }
  83. else
  84. {
  85. PbCache.monitorResult.valid_tare_time = true;
  86. }
  87. }
  88. else
  89. {
  90. PbCache.monitorResult.valid_tare_time = true;
  91. }
  92. }
  93. }
  94. }
  95. }