<%@ WebHandler Language="C#" Class="GetAllDefectDeduction_WCF" %> using System.Web; using System.Web.SessionState; using System.Web.Configuration; using System.Collections; using Newtonsoft.Json.Linq; using Curtain.DataAccess; using Curtain.Log; using DK.XuWei.WebMes; /// /// 从WCF接口获取 缺陷扣除 /// xuwei 2019-11-11 /// public class GetAllDefectDeduction_WCF : IHttpHandler, IReadOnlySessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string defectId = context.Request["defectid"].ToString(); WCF wcf = new WCF(); wcf.Para = wcf.LoadParaBySession(); string defectStr = wcf.Post("/DKService/PDAModuleService/GetAllDefectDeduction"); string relationStr = wcf.Post("/DKService/PDAModuleService/GetAllDefectDeductionRelation"); JArray defectArray = JArray.Parse(defectStr); JArray relationArray = JArray.Parse(relationStr); ArrayList jsonList = new ArrayList(); //两个返回结果共有的才有效 并且缺陷关系的ID与缺陷ID相等 for (int i = 0; i < defectArray.Count; i++) { if(relationStr!="") { //如果配置扣罚关系 for (int j = 0; j < relationArray.Count; j++) { if (relationArray[j]["DefectDeductionNum"].ToString().IndexOf(defectArray[i]["DEFECTDEDUCTIONNUM"].ToString() + "-") == 0 && relationArray[j]["DefectID"].ToString() == defectId) { JObject o = new JObject( new JProperty("DEFECTDEDUCTIONID", defectArray[i]["DEFECTDEDUCTIONID"].ToString()), new JProperty("DEFECTDEDUCTIONNUM", defectArray[i]["DEFECTDEDUCTIONNUM"].ToString()) ); jsonList.Add(o); break; } } } else { //如果没有配置扣罚关系 for (int j = 0; j < relationArray.Count; j++) { JObject o = new JObject( new JProperty("DEFECTDEDUCTIONID", defectArray[i]["DEFECTDEDUCTIONID"].ToString()), new JProperty("DEFECTDEDUCTIONNUM", defectArray[i]["DEFECTDEDUCTIONNUM"].ToString()) ); jsonList.Add(o); } } } JArray jsonArray = new JArray(); for (int i = 0; i < jsonList.Count; i++) jsonArray.Add((JObject)jsonList[i]); string jsonStr = jsonArray.ToString(); jsonStr = ("{'success':true,'message':'操作成功!','rows':" + jsonStr + "}").Replace("'","\""); context.Response.Write(jsonStr); } public bool IsReusable { get { return false; } } }