PmsController.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using MaxCommunication.DataBase.Document;
  2. using Newtonsoft.Json;
  3. using PmsSecondaryPackaging.Interface.Service;
  4. using ProjectManagementSystem.Model.DataCache;
  5. using ProjectManagementSystem.Model.Models;
  6. using System.Web.Http;
  7. using System.Web.Http.Results;
  8. namespace ProjectManagementSystem.WebApi.Controller
  9. {
  10. public class PmsController : ApiController
  11. {
  12. public TextDocument textDocument { get; set; } = new TextDocument(@"PMS\Log", "WebApiLog_");
  13. public InterfaceService interfaceService { get; set; } = new InterfaceService();
  14. //[HttpGet, HttpPost]
  15. //public JsonResult<int> Test([FromBody] int B)
  16. //{
  17. // return Json(0);
  18. //}
  19. [HttpPost]
  20. public JsonResult<ScaleResponse> SyncScaleData([FromBody] ScaleWeightData weightData)
  21. {
  22. textDocument.WriteFile($"SyncScaleData:{JsonConvert.SerializeObject(weightData)}");
  23. weightData.LastUpdateTime = System.DateTime.Now;
  24. CacheScaleWeightData.CacheInstance.AddOrUpdate(weightData.scaleName, weightData, (key, value) => weightData);
  25. bool result = false;
  26. for (int i = 0; i < 50; i++)
  27. {
  28. if(CacheScaleWeightData.CacheInstance[weightData.scaleName].Status > 0)
  29. {
  30. result = CacheScaleWeightData.CacheInstance.TryRemove(weightData.scaleName, out ScaleWeightData scaleWeightData);
  31. break;
  32. }
  33. System.Threading.Thread.Sleep(100);
  34. }
  35. ScaleResponse scaleReturn = new ScaleResponse();
  36. if (result)
  37. {
  38. scaleReturn.CODE = "0000";
  39. scaleReturn.MSG = "发送成功";
  40. scaleReturn.DATA = weightData.scaleName;
  41. }
  42. else
  43. {
  44. scaleReturn.CODE = "0001";
  45. scaleReturn.MSG = "发送失败";
  46. scaleReturn.DATA = weightData.scaleName;
  47. }
  48. return Json(scaleReturn);
  49. }
  50. }
  51. }