CrazyIter_Bin %!s(int64=2) %!d(string=hai) anos
pai
achega
3c6d2a6145

+ 2 - 0
TEAMModelOS.SDK/Models/Service/Third/ThirdApisService.cs

@@ -48,6 +48,8 @@ namespace TEAMModelOS.SDK
                 result = await response.Content.ReadAsStringAsync();
                 if (!result.Contains("操作失败"))
                 {
+                   
+
                     ScsResult scsResult = result.ToObject<ScsResult>();
                     if (scsResult.result)
                     {

+ 87 - 4
TEAMModelOS/Controllers/Third/Sc/ScDataPushController.cs

@@ -26,6 +26,7 @@ using System.Net.Http;
 using System;
 using System.Web;
 using System.Security.Policy;
+using TEAMModelOS.Controllers.Third.LePei;
 
 namespace TEAMModelOS.Controllers
 {
@@ -1085,8 +1086,8 @@ namespace TEAMModelOS.Controllers
             List<PushData> datas = new List<PushData>();
             Dictionary<string, object> parameterContent53123 = new Dictionary<string, object>();
             parameterContent53123.Add("TrainComID", config.trainComID);
-            parameterContent53123.Add("ProjectID", config.p.Where(x=>x.status==1).First().pd);
-            parameterContent53123.Add("ProjectItemID", config.p.Where(x => x.status == 1).First().pid);
+            parameterContent53123.Add("ProjectID", $"{sc.ProjectID}");
+            parameterContent53123.Add("ProjectItemID", $"{sc.ProjectItemID}");
             parameterContent53123.Add("PXID", $"{sc.PXID}");
             parameterContent53123.Add("TID", $"{sc.TID}");
             ScsResult GetDiagnosisResultByPXIDCommand = await ThirdApisService.Post(_httpClient.CreateClient(),config.url, "GetDiagnosisResultByPXIDCommand", config.passKey, config.privateKey, parameterContent53123);
@@ -1125,7 +1126,84 @@ namespace TEAMModelOS.Controllers
             List<string> schools = json.GetProperty("schools").ToObject<List<string>>();
             var client = _azureCosmos.GetCosmosClient();
             (List<dynamic> ycd, List<dynamic> okd, List<TeacherSc> teachers,List<PushData> datas)= await CheckScPush(pushTeachers, areaIdJson, schools, ProjectItemID);
-            return Ok(new { ycData = ycd, okData = okd , tmdid= teachers .Select(x=>x.tmdid), datas = datas });
+            List<string> pxids = json.GetProperty("pxids").ToObject<List<string>>();
+            List<PushData> ycData = new List<PushData>();
+            List<dynamic> ycds = new List<dynamic>();
+            if (pxids.IsNotEmpty()) {
+                var table = _azureStorage.GetCloudTableClient().GetTableReference("ScYxpt");
+                List<string> Codes = new List<string>();
+                pxids.ForEach(pxid => {
+                    Codes.Add($" {Constant.RowKey} {QueryComparisons.Equal} '{pxid}' ");
+                });
+                string tbqurey = $"PartitionKey {QueryComparisons.Equal} 'ScTeacher' and areaId {QueryComparisons.Equal} '{areaIdJson}'  and ( {string.Join(" or ", Codes)} )  ";
+                var result = await table.ExecuteQuerySegmentedAsync(new TableQuery<ScTeacher>().Where(tbqurey), null);
+               List<ScTeacher> scTeachers = result.Results;
+                AreaSetting areaSetting = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemAsync<AreaSetting>($"{areaIdJson}", new PartitionKey("AreaSetting"));
+                ScAccessConfig config = areaSetting.accessConfig.ToObject<ScAccessConfig>();
+                List<PushData> datass = new List<PushData>();
+                foreach (var item in scTeachers)
+                {
+                    datass.AddRange(await GetYxData(config, item));
+                }
+                var group = datass.GroupBy(x => x.teacherInfo.SchoolName);
+                foreach (var groupData in group)
+                {
+                    int joinCount = groupData.ToList().Count();
+                    //0、未认定  1、合格  2、优秀  3、不合格  4、其他
+                    int yxCount = groupData.ToList().Where(x => x.teacherInfo.ComPassed == 2).Count();
+                    int hgCount = groupData.ToList().Where(x => x.teacherInfo.ComPassed == 1).Count();
+                    var yc = groupData.ToList().Where(x => x.teacherInfo.ComPassed != 2 && x.teacherInfo.ComPassed != 1);
+                    int ycCount = yc.Count();
+                    okd.Add(new { schoolName = groupData.Key, joinCount, yxCount, hgCount, ycCount });
+                    if (yc.Any())
+                    {
+                        foreach (var bu in yc)
+                        {
+                            string ComPassed = "";
+                            switch (bu.teacherInfo.ComPassed)
+                            {
+                                //0、未认定  1、合格  2、优秀  3、不合格  4、其他
+                                case 0:
+                                    ComPassed = "未认定";
+                                    break;
+                                case 1:
+                                    ComPassed = "合格";
+                                    break;
+                                case 2:
+                                    ComPassed = "优秀";
+                                    break;
+                                case 3:
+                                    ComPassed = "不合格";
+                                    break;
+                                case 4:
+                                    ComPassed = "其他";
+                                    break;
+                                default:
+                                    ComPassed = "其他";
+                                    break;
+                            }
+                            bu.teacherInfo.com = ComPassed;
+                        }
+                        ycData.AddRange(yc);
+                    }
+                }
+                
+                ycData.ForEach(data => {
+                    ycds.Add(new
+                    {
+                        data.teacherInfo.TeacherName,
+                        data.teacherInfo.tmdid,
+                        data.teacherInfo.SchoolName,
+                        data.teacherInfo.schoolCode,
+                        data.teacherInfo.com,
+                        data.teacherInfo.ComPassed,
+                        data.teacherInfo.ComPassedTime,
+                        data.teacherInfo.PXID,
+                        data.teacherInfo.TID,
+                    });
+                });
+            }
+            return Ok(new { ycData = ycd, okData = okd , tmdid= teachers .Select(x=>x.tmdid), datas = datas, ycds });
         }
         private async Task<(List<dynamic> ycd ,List<dynamic> okd, List<TeacherSc> teachers, List<PushData> datas)> CheckScPush(List<string> pushTeachers,string areaIdJson,List<string> schools,string ProjectItemID) {
 
@@ -1162,7 +1240,12 @@ namespace TEAMModelOS.Controllers
                     schools.ForEach(school => {
                         Codes.Add($" schoolCode {QueryComparisons.Equal} '{school}' ");
                     });
-                    string tbqurey = $"PartitionKey {QueryComparisons.Equal} 'ScTeacher' and areaId {QueryComparisons.Equal} '{areaIdJson}' and ( {string.Join(" or ", Codes)} )  ";
+                    string itemqurey = "";
+                    if (!string.IsNullOrWhiteSpace(ProjectItemID))
+                    {
+                        itemqurey = $" and ProjectItemID {QueryComparisons.Equal} {ProjectItemID} ";
+                    }
+                    string tbqurey = $"PartitionKey {QueryComparisons.Equal} 'ScTeacher' and areaId {QueryComparisons.Equal} '{areaIdJson}'{itemqurey}  and ( {string.Join(" or ", Codes)} )  ";
                     var result = await table.ExecuteQuerySegmentedAsync(new TableQuery<ScTeacher>().Where(tbqurey), null);
                     scTeachers = result.Results;
                 }

+ 1 - 1
TEAMModelOS/Controllers/XTest/TestController.cs

@@ -507,7 +507,7 @@ namespace TEAMModelOS.Controllers
         {
             var table = _azureStorage.GetCloudTableClient().GetTableReference("ScYxpt");
           
-            List< ScTeacher > teachers = await table.FindListByDict<ScTeacher>(new Dictionary<string, object>() { { "PartitionKey", "ScTeacher" }, { "ProjectItemID", 1249 } });
+            List< ScTeacher > teachers = await table.FindListByDict<ScTeacher>(new Dictionary<string, object>() { { "PartitionKey", "ScTeacher" }, { "ProjectItemID", 1350 } });
             List<dynamic> unbind = new List<dynamic>();
             List<dynamic> unupload_rzcl = new List<dynamic>();
             List<dynamic> uploads_rzcl = new List<dynamic>();