JLH_FetchPriceExcutor.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.SqlClient;
  4. using JLHHJSvr.Com;
  5. using JLHHJSvr.Com.Model;
  6. using LJLib.Net.SPI.Server;
  7. namespace JLHHJSvr.Excutor
  8. {
  9. internal sealed class JLH_FetchPriceExcutor:ExcutorBase<JLH_FetchPriceRequest, JLH_FetchPriceResponse>
  10. {
  11. protected override void ExcuteInternal(JLH_FetchPriceRequest request, object state, JLH_FetchPriceResponse rslt)
  12. {
  13. if (request.token != "7DEA6FF3-3E81-4EDA-8A02-1F56073A45FD")
  14. {
  15. rslt.ErrMsg = "会话已经中断,请重新登录";
  16. return;
  17. }
  18. using (var con = new SqlConnection(GlobalVar.ConnectionString))
  19. using (var cmd = con.CreateCommand())
  20. {
  21. con.Open();
  22. rslt.list = new List<u_configure_codemx>();
  23. cmd.CommandText = @"SELECT
  24. MAX(
  25. CASE WHEN u_mattress_interface_qd.erp_mtrlid > 0 and u_mattress_interface_qd.useqty > 0
  26. THEN u_mattress_mx_mtrl.costamt / u_mattress_interface_qd.useqty
  27. ELSE 0 END
  28. ) AS price
  29. ,MAX(u_mattress_interface_qd.useqty) AS useqty
  30. , u_mattress.erp_mtrlcode
  31. , u_mtrldef.mtrlcode
  32. , u_mattress_interface_qd.wrkgrpcode2
  33. from u_mattress_interface_qd
  34. INNER JOIN u_mattress_mx_mtrl on u_mattress_mx_mtrl.mattressid = u_mattress_interface_qd.mattressid
  35. and u_mattress_mx_mtrl.mtrlid = u_mattress_interface_qd.mtrlid
  36. INNER JOIN u_mtrldef on u_mtrldef.mtrlid = u_mattress_interface_qd.erp_mtrlid
  37. INNER JOIN u_mattress on u_mattress.mattressid = u_mattress_interface_qd.mattressid
  38. WHERE
  39. u_mattress_interface_qd.erp_mtrlid > 0
  40. and u_mattress_interface_qd.actual_useqty > 0
  41. and u_mattress_interface_qd.mtrlid > 0
  42. GROUP BY u_mtrldef.mtrlcode, u_mattress.erp_mtrlcode, u_mattress_interface_qd.wrkgrpcode2
  43. ";
  44. cmd.Parameters.Clear();
  45. using (var reader = cmd.ExecuteReader())
  46. {
  47. while (reader.Read())
  48. {
  49. rslt.list.Add(new u_configure_codemx()
  50. {
  51. mtrlcode = Convert.ToString(reader["mtrlcode"]).Trim(),
  52. price = Convert.ToDecimal(reader["price"]),
  53. useqty = Convert.ToDecimal(reader["useqty"]),
  54. erp_mtrlcode = Convert.ToString(reader["erp_mtrlcode"]).Trim(),
  55. wrkgrpcode2 = Convert.ToString(reader["wrkgrpcode2"]).Trim(),
  56. });
  57. }
  58. }
  59. }
  60. }
  61. }
  62. }