GetCheckBarCode_WCF.ashx 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <%@ WebHandler Language="C#" Class="GetCheckBarCode_WCF" %>
  2. using System;
  3. using System.Web;
  4. using System.Web.SessionState;
  5. using System.Data;
  6. using System.Web.Configuration;
  7. using Newtonsoft.Json.Linq;
  8. using Curtain.DataAccess;
  9. using Curtain.Log;
  10. using DK.XuWei.WebMes;
  11. using System.Configuration;
  12. using System.Collections.Generic;
  13. /// <summary>
  14. /// 从WCF接口获取 产品信息
  15. /// xuwei 2019-10-26
  16. /// </summary>
  17. public class GetCheckBarCode_WCF : IHttpHandler, IRequiresSessionState
  18. {
  19. public void ProcessRequest(HttpContext context)
  20. {
  21. context.Response.ContentType = "text/plain";
  22. if (context.Request["procedureid"].ToString() != "")
  23. {
  24. string sqlString = string.Empty;
  25. List<CDAParameter> sqlPara = new List<CDAParameter>();
  26. using (IDataAccess conn = DataAccess.Create())
  27. {
  28. //如果是1#存瓷库(入)、卸窑、重烧卸窑、1#卸窑、质量登记、重烧质量登记、成检交接、重烧成检交接不需要进行条码校验
  29. if (Convert.ToInt32(context.Request["procedureID"]) != 8 && Convert.ToInt32(context.Request["procedureID"]) != 46
  30. && Convert.ToInt32(context.Request["procedureID"]) != 9 && Convert.ToInt32(context.Request["procedureID"]) != 15
  31. && Convert.ToInt32(context.Request["procedureID"]) != 10 && Convert.ToInt32(context.Request["procedureID"]) != 16
  32. && Convert.ToInt32(context.Request["procedureID"]) != 14 && Convert.ToInt32(context.Request["procedureID"]) != 47)
  33. {
  34. WCF wcf = new WCF();
  35. wcf.Para = wcf.LoadParaBySession();
  36. wcf.Para.Add(new JProperty("barcode", context.Request["barcode"]));
  37. wcf.Para.Add(new JProperty("procedureID", 9));//当前页面质量登记工序ID为10,不能到达该工序。添加成检交接,需要写死。
  38. string jsonStr = wcf.Post("/DKService/PDAModuleService/CheckBarcode");
  39. if (jsonStr != "")
  40. {
  41. jsonStr = ("{'success':true,'message':'操作成功!','rows':" + jsonStr + "}").Replace("'", "\"");
  42. //如果指定了自动重烧工序处理
  43. bool ProductCheckAutoRefire = Convert.ToBoolean(ConfigurationManager.AppSettings["ProductCheckAutoRefire"]);
  44. string ProductCheckRefireProcedureId = ConfigurationManager.AppSettings["ProductCheckRefireProcedureId"].ToString();
  45. //如果成检出错,并且配置自动重烧
  46. if ((jsonStr.IndexOf("不能到达该工序") > 0) && ProductCheckAutoRefire)
  47. {
  48. //使用重烧节点进行成检
  49. wcf.Para["procedureID"] = ProductCheckRefireProcedureId;
  50. string jsonStr2 = wcf.Post("/DKService/PDAModuleService/CheckBarcode");
  51. JArray jsonArray = JArray.Parse(jsonStr2);
  52. if (jsonArray[0]["out_errMsg"].ToString() == "")
  53. jsonStr = ("{'success':true,'message':'操作成功!','rows':" + jsonStr2 + "}").Replace("'", "\"");
  54. }
  55. }
  56. else
  57. {
  58. jsonStr = ("{'success':false,'message':'操作失败!','rows':''}").Replace("'", "\"");
  59. context.Response.Write(jsonStr);
  60. }
  61. }
  62. else
  63. {
  64. sqlPara.Add(new CDAParameter("barcode", Convert.ToString(context.Request["barcode"])));
  65. sqlString = @"SELECT
  66. TP_PM_InProduction.GroutingUserCode,
  67. TP_PM_InProduction.GroutingNum,
  68. TP_PM_InProduction.GroutingMouldCode AS MouldCode,
  69. TP_PM_InProduction.ispublicbody,
  70. ( SELECT tp_pm_inproductiontrash.ispublicbody FROM tp_pm_inproductiontrash WHERE tp_pm_inproductiontrash.BarCode ={barcode}) AS ispublicbodyTrach,
  71. TP_PM_InProduction.Groutingdate,
  72. TP_PM_InProduction.SpecialRepairFlag,
  73. TP_PM_InProduction.IsReFire,
  74. tp_mst_logo.logoid,
  75. g.goodsid,
  76. g.goodscode AS out_goodsCode,
  77. g.goodsname AS out_goodsName,
  78. g.PlateLimitNum,
  79. --nvl(g.MaterialCode,g.GoodsCode) as GOODSMODELforCheck, -- 用物料编码验证产品型号是否一致
  80. nvl( gdd.MaterialCode, nvl( g.MaterialCode, g.GoodsCode ) ) AS GOODSMODELforCheck,-- 用物料编码验证产品型号是否一致
  81. --nvl(gdd.MaterialCode, g.GoodsCode) as GOODSMODELforCheck, -- 用物料编码验证产品型号是否一致
  82. tp_mst_logo.logocode,
  83. tp_mst_logo.logoname AS out_logoName,
  84. glaze.DICTIONARYVALUE AS out_glazeName,
  85. 999 AS out_errMsg
  86. FROM
  87. TP_PM_InProduction
  88. LEFT JOIN TP_PM_GroutingDailyDetail gdd ON gdd.GroutingDailyDetailID = tp_pm_inproduction.GroutingDailyDetailID
  89. LEFT JOIN tp_mst_logo ON gdd.logoid = tp_mst_logo.logoid
  90. LEFT JOIN TP_MST_GOODS G ON G.GoodsID = tp_pm_inproduction.goodsid
  91. LEFT JOIN TP_MST_DataDictionary glaze ON glaze.DICTIONARYID = gdd.GLAZETYPEID
  92. WHERE
  93. TP_PM_InProduction.BarCode = {barcode}"
  94. .Replace("{barcode}", Convert.ToString(context.Request["barcode"]));
  95. //直接获取不分页数据
  96. //获取数据
  97. DataTable dt = conn.ExecuteDatatable(sqlString);
  98. string jsonStr = new JsonResult(dt).ToJson();
  99. context.Response.Write(jsonStr);
  100. //JsonResult jsonresult = Easyui.ExecuteJsonResult(conn, sqlString, sqlPara);
  101. //context.Response.Write(jsonresult.ToJson());
  102. }
  103. }
  104. }
  105. else
  106. {
  107. string jsonStr = "";
  108. jsonStr = ("{'success':false,'message':'请指定成检工序的procedureID!','rows':''}").Replace("'", "\"");
  109. context.Response.Write(jsonStr);
  110. }
  111. }
  112. public bool IsReusable
  113. {
  114. get
  115. {
  116. return false;
  117. }
  118. }
  119. }