GetComputeMattressByIdExcutor.cs 3.8 KB

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