字典使用

public string GetTabName(string strCOSIDs, string strEID)
        {
            IDDatabase db = new IDDatabase();
            string strCOSID = "'" + strCOSIDs.Replace(",", "','") + "'";
            string strSql = @"SELECT B.EFName,A.EID,A.COSID,A.COSNo,A.COSName,A.COSPSCID,A.PSCName,A.EvaluationFormID
                                FROM TEvaluationSupplier A 
                                LEFT JOIN VEvaluationForm B ON A.EvaluationFormID=B.EFID 
                                WHERE EID=@EID";
            DataSet dsPSCIDs = db.GetDataSet(ConnectionName.KnowledgeDB, strSql,
                                            new string[] { "EID" },
                                            new DbType[] { DbType.String },
                                            new object[] { strEID });
            DataTable dtDetail = GetDetailData(strEID);
            List<Dictionary<string, object>> listPSCIDs = new List<Dictionary<string, object>>();
            if (dsPSCIDs != null && dsPSCIDs.Tables.Count > 0)
            {
                DataTable dtPSCIDs = dsPSCIDs.Tables[0];

                if (dtPSCIDs.Rows != null && dtPSCIDs.Rows.Count > 0)
                {
                    var listPSCID=dtPSCIDs.AsEnumerable().Select(r => new { COSPSCID = r.Field<string>("COSPSCID"), PSCName = r.Field<string>("PSCName") }).Distinct().ToList();

                    foreach (var PSCID in listPSCID)
                    {
                        Dictionary<string, object> COSIDs = new Dictionary<string, object>();
                        COSIDs.Add("PSCID", Converter.ToString(PSCID.COSPSCID));
                        COSIDs.Add("PSCName", Converter.ToString(PSCID.PSCName));

                        List<Dictionary<string, object>> listCOSDatas = new List<Dictionary<string, object>>();
                        Dictionary<string, object> COSDatas = new Dictionary<string, object>();
                        string strCosIDs = string.Join(",", dtPSCIDs.AsEnumerable().Where(r => r.Field<string>("COSPSCID") == Converter.ToString(PSCID.COSPSCID)).Select(r => r.Field<string>("COSID")).ToArray());
                        string strCOSNames = string.Join(",",dtPSCIDs.AsEnumerable().Where(r => r.Field<string>("COSPSCID") == Converter.ToString(PSCID.COSPSCID)).Select(r => r.Field<string>("COSName")).ToArray());
                        string strEFNames = string.Join(",", dtPSCIDs.AsEnumerable().Where(r => r.Field<string>("COSPSCID") == Converter.ToString(PSCID.COSPSCID)).Select(r => r.Field<string>("EFName")).Distinct().ToArray());
                        string strEvaluationStation = dtDetail.AsEnumerable().Where(r => r.Field<string>("PSCID") == Converter.ToString(PSCID.COSPSCID)).Select(r => r.Field<string>("EvaluationStation")).Distinct().FirstOrDefault();
                        string strEvaluationStationID = dtDetail.AsEnumerable().Where(r => r.Field<string>("PSCID") == Converter.ToString(PSCID.COSPSCID)).Select(r => r.Field<string>("EvaluationStationID")).Distinct().FirstOrDefault();
                        COSDatas.Add("COSID", Converter.ToString(strCosIDs));
                        COSDatas.Add("COSNames", Converter.ToString(strCOSNames));
                        COSDatas.Add("EvaluationFormBrow", Converter.ToString(strEFNames));
                        COSDatas.Add("EvaluationStation", Converter.ToString(strEvaluationStation));
                        COSDatas.Add("EvaluationStationID", Converter.ToString(strEvaluationStationID));
                        var listDetails = dtDetail.AsEnumerable().Where(r => r.Field<string>("PSCID") == Converter.ToString(PSCID.COSPSCID)).ToList();
                        List<Dictionary<string, object>> listDetail = new List<Dictionary<string, object>>();
                        foreach (DataRow Details in listDetails)
                        {
                            Dictionary<string, object> Detail = new Dictionary<string, object>();
                            Detail.Add("EFDID",Converter.ToString(Details["EDID"]));
                            Detail.Add("ParentEFDID", Converter.ToString(Details["ParentEDID"]));
                            Detail.Add("EBIID",Converter.ToString(Details["EBIID"]));
                            Detail.Add("EBIName", Converter.ToString(Details["EBIName"]));
                            Detail.Add("EvaluationItemName", Converter.ToString(Details["EvaluationItemName"]));
                            Detail.Add("ValueTypeName", Converter.ToString(Details["ValueTypeName"]));
                            Detail.Add("ValueType", Converter.ToString(Details["ValueType"]));
                            Detail.Add("IsKey",Converter.ToString(Details["IsKey"]));
                            Detail.Add("PassScore", Converter.ToString(Details["PassScore"]));
                            Detail.Add("Proportion", Converter.ToString(Details["Proportion"]));
                            Detail.Add("Target",Converter.ToString(Details["Target"]));
                            Detail.Add("Criterion",Converter.ToString(Details["Criterion"]));
                            Detail.Add("Remark", Converter.ToString(Details["Remark"]));
                            Detail.Add("EvaluationManID",Converter.ToString(Details["EvaluationManID"]));
                            Detail.Add("Score", Converter.ToString(Details["ScoreWeight"]));
                            Detail.Add("EvaluationMan", Converter.ToString(Details["EvaluationMan"]));
                            listDetail.Add(Detail);
                        }
                        COSDatas.Add("Detail", listDetail);
                        listCOSDatas.Add(COSDatas);
                        COSIDs.Add("COSDatas", listCOSDatas);
                        listPSCIDs.Add(COSIDs);
                    }
                }
            }
            string strTabName = JsonConvert.SerializeObject(listPSCIDs);
            return strTabName;
        }

[
  {
    "PSCID":"D2030E77-6AE9-4B1B-A59C-39DE29B5439F",
    "PSCName":"类型一子集",
    "COSDatas":[
      {
        "COSID":"133B1F67-2E9B-4A6D-A8FB-252660EE7747,3EBF08B6-E075-4590-8671-FE3B264C410E",
        "COSNames":"2018030201,张迈",
        "EvaluationFormBrow":"合格供应商认证模板一",
        "EvaluationStation":"成本部经理(王鹏)",
        "EvaluationStationID":"720ED5F3-E96E-42DD-BEB1-449DA9F32590",
        "Detail":[
          {
            "EFDID":"79102034-57BB-4EFF-A59D-DA447A2BA0D7",
            "ParentEFDID":"00000",
            "EBIID":"",
            "EBIName":"",
            "EvaluationItemName":"评分项1",
            "ValueTypeName":"分值",
            "ValueType":"0",
            "IsKey":"Y",
            "PassScore":"6",
            "Proportion":"1",
            "Target":"",
            "Criterion":"",
            "Remark":"",
            "EvaluationManID":"720ED5F3-E96E-42DD-BEB1-449DA9F32590",
            "Score":"1",
            "EvaluationMan":"成本部经理(王鹏)"
          },
          {
            "EFDID":"E2167337-FA4A-4E46-9208-4235B10E0552",
            "ParentEFDID":"00000",
            "EBIID":"",
            "EBIName":"",
            "EvaluationItemName":"评分2",
            "ValueTypeName":"分值",
            "ValueType":"0",
            "IsKey":"Y",
            "PassScore":"6",
            "Proportion":"1",
            "Target":"",
            "Criterion":"",
            "Remark":"",
            "EvaluationManID":"720ED5F3-E96E-42DD-BEB1-449DA9F32590",
            "Score":"1",
            "EvaluationMan":"成本部经理(王鹏)"
          }
        ]
      }
    ]
  },
  {
    "PSCID":"10402311-9407-4E86-9D85-A91AC7E47929",
    "PSCName":"类型二子集",
    "COSDatas":[
      {
        "COSID":"133B1F67-2E9B-4A6D-A8FB-252660EE7747",
        "COSNames":"2018030201",
        "EvaluationFormBrow":"模板二",
        "EvaluationStation":"赛普客服(请勿删除)(赛普客服),采购经理(李浩)",
        "EvaluationStationID":"41549AA6-896C-4A39-BD1D-BCA7C2F854CA,E3BE8736-AC86-44D1-9F4B-A4655BCD2521",
        "Detail":[
          {
            "EFDID":"A93F29DA-3430-4491-880E-3B07C048F347",
            "ParentEFDID":"00000",
            "EBIID":"",
            "EBIName":"",
            "EvaluationItemName":"1",
            "ValueTypeName":"分值",
            "ValueType":"0",
            "IsKey":"Y",
            "PassScore":"6",
            "Proportion":"1",
            "Target":"",
            "Criterion":"",
            "Remark":"",
            "EvaluationManID":"41549AA6-896C-4A39-BD1D-BCA7C2F854CA,E3BE8736-AC86-44D1-9F4B-A4655BCD2521",
            "Score":"1,1",
            "EvaluationMan":"赛普客服(请勿删除)(赛普客服),采购经理(李浩)"
          },
          {
            "EFDID":"991C26D5-EC6C-4797-B444-37F5E09D99A5",
            "ParentEFDID":"00000",
            "EBIID":"",
            "EBIName":"",
            "EvaluationItemName":"2",
            "ValueTypeName":"分值",
            "ValueType":"0",
            "IsKey":"Y",
            "PassScore":"6",
            "Proportion":"1",
            "Target":"",
            "Criterion":"",
            "Remark":"",
            "EvaluationManID":"41549AA6-896C-4A39-BD1D-BCA7C2F854CA,E3BE8736-AC86-44D1-9F4B-A4655BCD2521",
            "Score":"1,1",
            "EvaluationMan":"赛普客服(请勿删除)(赛普客服),采购经理(李浩)"
          }
        ]
      }
    ]
  }
]

猜你喜欢

转载自blog.csdn.net/weixin_41833670/article/details/79651835
今日推荐