GetComputeMattressByIdExcutor.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.SqlClient;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Windows.Forms.VisualStyles;
  7. using DirectService.Tools;
  8. using JLHHJSvr.BLL;
  9. using JLHHJSvr.Com;
  10. using JLHHJSvr.Com.Model;
  11. using JLHHJSvr.Helper;
  12. using JLHHJSvr.LJException;
  13. using JLHHJSvr.Tools;
  14. using LJLib.DAL.SQL;
  15. using LJLib.Net.SPI.Server;
  16. using Newtonsoft.Json;
  17. using static JLHHJSvr.Helper.MattressHelper;
  18. namespace JLHHJSvr.Excutor
  19. {
  20. internal sealed class GetComputeMattressByIdExcutor : ExcutorBase<GetComputeMattressByIdRequest, GetComputeMattressByIdResponse>
  21. {
  22. protected override void ExcuteInternal(GetComputeMattressByIdRequest request, object state, GetComputeMattressByIdResponse rslt)
  23. {
  24. var tokendata = BllHelper.GetToken(request.token);
  25. if (tokendata == null)
  26. {
  27. rslt.ErrMsg = "会话已经中断,请重新登录";
  28. return;
  29. }
  30. if (request.mattressid == null || request.mattressid <= 0)
  31. {
  32. rslt.ErrMsg = "缺少床垫id信息";
  33. return;
  34. }
  35. using (var con = new SqlConnection(GlobalVar.ConnectionString))
  36. using (var cmd = con.CreateCommand())
  37. {
  38. con.Open();
  39. var mattressHelper = HelperBase.GetHelper<MattressHelper>(cmd, new HelperBase.Context() { tokendata = tokendata });
  40. var helperOld = HelperBase.GetHelper<MattressHelper>(cmd, new HelperBase.Context() { tokendata = tokendata });
  41. var mattress = mattressHelper.GetMattress(request.mattressid.Value);
  42. var mxList = mattressHelper.GetMattressMxMtrl(request.mattressid.Value);
  43. if (mattress.dannum_type == null || mattress.dannum_type.Value == 0)
  44. {
  45. mattress.dannum_type = 2; // 默认标准
  46. }
  47. var differArr = new List<u_mattress_computed>();
  48. foreach (DannumType value in Enum.GetValues(typeof(MattressHelper.DannumType)))
  49. {
  50. int dannum_type = (int)value;
  51. var differItem = new u_mattress_computed() { type = dannum_type };
  52. var _mattress = ObjectHelper.DeepCopy(mattress);
  53. if (mattress.dannum_type.Value == dannum_type)
  54. {
  55. mattressHelper.CalCulateFormula(_mattress, mxList, false);
  56. rslt.replace = ObjectHelper.DeepCopy(mattressHelper.Replacements);
  57. rslt.formulas = ObjectHelper.DeepCopy(mattressHelper.FormulaReplacements);
  58. rslt.formulas_bednet = ObjectHelper.DeepCopy(mattressHelper.BendetFormulasReplace);
  59. }
  60. else
  61. {
  62. _mattress.dannum_type = dannum_type;
  63. mattressHelper.CalCulateFormula(_mattress, mxList, false);
  64. }
  65. differItem.replace = mattressHelper.Replacements;
  66. differItem.replace_bednet = mattressHelper.BendetReplace;
  67. if (request.check_original == 1)
  68. {
  69. _mattress.dannum_type = dannum_type;
  70. helperOld.CalCulateFormula(_mattress, mxList, false, false);
  71. differItem.replace_origin = ObjectHelper.DeepCopy(mattressHelper.Replacements);
  72. rslt.formulas_origin = ObjectHelper.DeepCopy(mattressHelper.FormulaReplacements);
  73. }
  74. differArr.Add(differItem);
  75. }
  76. rslt.differ = differArr;
  77. rslt.mattress = mattress;
  78. rslt.mattressMx = mattressHelper.SortMxList(mxList);
  79. }
  80. }
  81. }
  82. }