GetComputeMattressByIdExcutor.cs 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 mattress = mattressHelper.GetMattress(request.mattressid.Value);
  41. var mxList = mattressHelper.GetMattressMxMtrl(request.mattressid.Value);
  42. if (mattress.dannum_type.Value == 0)
  43. {
  44. mattress.dannum_type = 2; // 默认标准
  45. }
  46. var differArr = new List<u_mattress_computed>();
  47. foreach (DannumType value in Enum.GetValues(typeof(MattressHelper.DannumType)))
  48. {
  49. int dannum_type = (int)value;
  50. var differItem = new u_mattress_computed() { type = dannum_type };
  51. var _mattress = ObjectHelper.DeepCopy(mattress);
  52. if (mattress.dannum_type.Value == dannum_type)
  53. {
  54. mattressHelper.CalCulateFormula(_mattress, mxList, false);
  55. rslt.replace = ObjectHelper.DeepCopy(mattressHelper.Replacements);
  56. rslt.formulas = ObjectHelper.DeepCopy(mattressHelper.FormulaReplacements);
  57. rslt.formulas_bednet = ObjectHelper.DeepCopy(mattressHelper.BendetFormulasReplace);
  58. }
  59. else
  60. {
  61. _mattress.dannum_type = dannum_type;
  62. mattressHelper.CalCulateFormula(_mattress, mxList, false);
  63. }
  64. differItem.replace = mattressHelper.Replacements;
  65. differItem.replace_bednet = mattressHelper.BendetReplace;
  66. if (request.check_original == 1)
  67. {
  68. _mattress.dannum_type = dannum_type;
  69. mattressHelper.CalCulateFormula(_mattress, mxList, false, false);
  70. differItem.replace_origin = ObjectHelper.DeepCopy(mattressHelper.Replacements);
  71. rslt.formulas_origin = ObjectHelper.DeepCopy(mattressHelper.FormulaReplacements);
  72. }
  73. differArr.Add(differItem);
  74. }
  75. rslt.differ = differArr;
  76. rslt.mattress = mattress;
  77. rslt.mattressMx = mattressHelper.SortMxList(mxList);
  78. }
  79. }
  80. }
  81. }