From 70ff1350bbb60c5e5eff52f10e835e41f7c6a10f Mon Sep 17 00:00:00 2001
From: "754998852@qq.com" <754998852@qq.com>
Date: Wed, 20 Nov 2024 17:47:24 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=AC=E5=8F=B8=E7=BA=A7?=
=?UTF-8?q?=E5=9F=B9=E8=AE=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
DataBase/版本日志/SGGLDB_V2024-11-20.sql | 2 +
SGGL/BLL/API/HSSE/APITestPlanService.cs | 21 +-
SGGL/BLL/API/HSSE/APITestRecordService.cs | 243 +-
SGGL/BLL/API/HSSE/APITrainingTaskService.cs | 51 +-
SGGL/BLL/BLL.csproj | 44 +-
SGGL/BLL/Common/CodeRecordsService.cs | 130 ++
SGGL/BLL/Common/Redis/ICache.cs | 127 +
SGGL/BLL/Common/Redis/Redis.cs | 308 +++
SGGL/BLL/Common/Redis/RedisHelper.cs | 2077 +++++++++++++++++
SGGL/BLL/HSSE/EduTrain/TestRecordService.cs | 32 +
SGGL/BLL/HSSE/SitePerson/PersonService.cs | 18 +
SGGL/BLL/OpenService/GetDataService.cs | 28 +
SGGL/FineUIPro.Web/ErrLog.txt | 6 +
.../HSSE/EduTrain/CompanyTraining.aspx | 2 +-
.../EduTrain/CompanyTrainingItemSave.aspx | 6 +-
.../Person/EduTrain/TestRecord.aspx | 2 +-
.../Person/EduTrain/TestRecord.aspx.cs | 2 +-
SGGL/Model/APIItem/HSSE/TestPlanItem.cs | 13 +
SGGL/Model/APIItem/HSSE/TestRecordItem.cs | 16 +-
.../APIItem/HSSE/TrainingTaskItemItem.cs | 19 +-
SGGL/Model/Model.cs | 26 +-
.../Controllers/HSSE/TestPlanController.cs | 214 +-
.../Controllers/HSSE/TestRecordController.cs | 260 ++-
SGGL/WebAPI/Controllers/PersonController.cs | 5 +-
.../PublishProfiles/FolderProfile.pubxml | 2 +-
25 files changed, 3546 insertions(+), 108 deletions(-)
create mode 100644 DataBase/版本日志/SGGLDB_V2024-11-20.sql
create mode 100644 SGGL/BLL/Common/Redis/ICache.cs
create mode 100644 SGGL/BLL/Common/Redis/Redis.cs
create mode 100644 SGGL/BLL/Common/Redis/RedisHelper.cs
diff --git a/DataBase/版本日志/SGGLDB_V2024-11-20.sql b/DataBase/版本日志/SGGLDB_V2024-11-20.sql
new file mode 100644
index 0000000..655cfc4
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_V2024-11-20.sql
@@ -0,0 +1,2 @@
+alter table Training_TestRecord
+add CompanyTrainingItemId nvarchar(50) null;
\ No newline at end of file
diff --git a/SGGL/BLL/API/HSSE/APITestPlanService.cs b/SGGL/BLL/API/HSSE/APITestPlanService.cs
index 3b206c2..d72d0c5 100644
--- a/SGGL/BLL/API/HSSE/APITestPlanService.cs
+++ b/SGGL/BLL/API/HSSE/APITestPlanService.cs
@@ -109,9 +109,13 @@ namespace BLL
UnitNames = UnitService.getUnitNamesUnitIds(x.UnitIds),
WorkPostIds = x.WorkPostIds,
WorkPostNames = WorkPostService.getWorkPostNamesWorkPostIds(x.WorkPostIds),
+ DepartIds = x.DepartIds,
+ DepartNames = WorkPostService.getDepartNamesByIdsForApi(x.DepartIds),
States = x.States,
QRCodeUrl = x.QRCodeUrl.Replace('\\', '/'),
TrainingPlanId = x.PlanId,
+ TrainTypeId = x.TrainTypeId,
+ TrainTypeName = db.Base_TrainType.Where(xx => xx.TrainTypeId == x.TrainTypeId).Select(xx => xx.TrainTypeName).FirstOrDefault()
};
return getDataLists.FirstOrDefault();
}
@@ -259,8 +263,9 @@ namespace BLL
////新增考试人员明细
foreach (var item in getTestPlan.TestRecordItems)
{
- var person = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == item.TestManId);
- if (person != null)
+ var user = db.Sys_User.FirstOrDefault(e => e.UserId == item.TestManId);
+ var person = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == item.TestManId);
+ if (user != null || person != null)
{
Model.Training_TestRecord newTrainDetail = new Model.Training_TestRecord
{
@@ -383,15 +388,17 @@ namespace BLL
TestStartTime = DateTime.Now,
TestPalce = getTrainingPlan.TeachAddress,
UnitIds = getTrainingPlan.UnitIds,
- UnitNames = UnitService.getUnitNamesUnitIds(getTrainingPlan.UnitIds),
+ UnitNames = UnitService.getUnitNamesUnitIdsForApi(getTrainingPlan.UnitIds),
WorkPostIds = getTrainingPlan.WorkPostId,
- WorkPostNames = WorkPostService.getWorkPostNamesWorkPostIds(getTrainingPlan.WorkPostId),
+ WorkPostNames = WorkPostService.getWorkPostNamesWorkPostIdsForApi(getTrainingPlan.WorkPostId),
+ DepartIds = getTrainingPlan.DepartIds,
+ DepartNames = WorkPostService.getDepartNamesByIdsForApi(getTrainingPlan.DepartIds),
PlanId = getTrainingPlan.PlanId,
States = "0",
};
string unitId = string.Empty;
- var user = db.Sys_User.FirstOrDefault(e => e.UserId == userId);
+ var user = db.Sys_User.FirstOrDefault(e => e.UserId == userId);
if (user != null)
{
unitId = user.UnitId;
@@ -441,7 +448,7 @@ namespace BLL
{
db.Training_TestPlan.InsertOnSubmit(newTestPlan);
db.SubmitChanges();
- CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.ProjectTestPlanMenuId, newTestPlan.ProjectId, null, testPlanId, newTestPlan.PlanDate);
+ CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitIdForApi(Const.ProjectTestPlanMenuId, newTestPlan.ProjectId, null, testPlanId, newTestPlan.PlanDate);
///培训人员
var getTrainingTask = (from x in db.Training_Task where x.PlanId == trainingPlanId select x).ToList();
foreach (var itemTask in getTrainingTask)
@@ -452,7 +459,7 @@ namespace BLL
ProjectId = getTrainingPlan.ProjectId,
TestPlanId = testPlanId,
TestManId = itemTask.UserId,
- TestType= db.Base_TrainType.First(z=>z.TrainTypeId == getTrainingPlan.TrainTypeId).TrainTypeName,
+ TestType = db.Base_TrainType.First(z => z.TrainTypeId == getTrainingPlan.TrainTypeId).TrainTypeName,
};
db.Training_TestRecord.InsertOnSubmit(newTestRecord);
diff --git a/SGGL/BLL/API/HSSE/APITestRecordService.cs b/SGGL/BLL/API/HSSE/APITestRecordService.cs
index 84fc7bb..ac9e18a 100644
--- a/SGGL/BLL/API/HSSE/APITestRecordService.cs
+++ b/SGGL/BLL/API/HSSE/APITestRecordService.cs
@@ -29,7 +29,7 @@ namespace BLL
ProjectId = x.ProjectId,
TestPlanId = x.TestPlanId,
TestManId = x.TestManId,
- TestManName = db.SitePerson_Person.FirstOrDefault(p => p.PersonId == x.TestManId).PersonName,
+ TestManName = getPname(x.TestManId),
TestStartTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.TestStartTime),
TestEndTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.TestEndTime),
TestScores = x.TestScores ?? 0,
@@ -39,6 +39,26 @@ namespace BLL
return getDataLists;
}
}
+
+ private static string getPname(string TestManId) {
+ using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) {
+ var pname = "";
+ var personModel = db.SitePerson_Person.FirstOrDefault(p => p.PersonId == TestManId);
+ if (personModel==null)
+ {
+ var unameModel = db.Sys_User.FirstOrDefault(p=>p.UserId== TestManId);
+ if (unameModel!=null)
+ {
+ pname = unameModel.UserName;
+ }
+ }
+ else {
+ pname = personModel.PersonName;
+ }
+
+ return pname;
+ }
+ }
#endregion
#region 根据试卷ID获取试卷记录详细
@@ -81,7 +101,7 @@ namespace BLL
///
///
///
- public static string CreateTestRecordItem(Model.Training_TestPlan getTestPlan, string testRecordId, Model.SitePerson_Person person)
+ public static string CreateTestRecordItem(Model.Training_TestPlan getTestPlan, string testRecordId, Model.SitePerson_Person person, Model.Sys_User user)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
@@ -108,9 +128,22 @@ namespace BLL
int sumTestType3Count = testPlanTrainings.Sum(x => x.TestType3Count) ?? 0;
////获取类型下适合岗位试题集合
- var getTestTrainingItemALLs = from x in db.Training_TestTrainingItem
- where x.TrainingId != null && (x.WorkPostIds == null || (x.WorkPostIds.Contains(person.WorkPostId) && person.WorkPostId != null))
- select x;
+ List getTestTrainingItemALLs;
+ string WorkPostId = "";
+ string DepartId = "";
+ if (person != null)
+ {
+ WorkPostId = person.WorkPostId;
+ }
+ if (user != null)
+ {
+ DepartId = user.DepartId;
+ }
+
+ getTestTrainingItemALLs = (from x in db.Training_TestTrainingItem
+ where x.TrainingId != null && (x.WorkPostIds == null || string.IsNullOrEmpty(WorkPostId) || x.WorkPostIds.Contains(WorkPostId)) || (x.DepartIds == null || string.IsNullOrEmpty(DepartId) || x.DepartIds.Contains(DepartId))
+
+ select x).ToList();
foreach (var itemT in testPlanTrainings)
{
//// 获取类型下的题目
@@ -201,12 +234,170 @@ namespace BLL
db.Training_TestRecordItem.InsertAllOnSubmit(getItems);
db.SubmitChanges();
+ BLL.RedisHelper redis = new BLL.RedisHelper();
+ redis.SetObjString(testRecordId, getItems);
}
}
}
return testRecordId;
}
#endregion
+
+ public static string CreateTestRecordItem(Model.Training_CompanyTrainingItem getCompanyTraining, string testRecordId, Model.SitePerson_Person person, Model.Sys_User user)
+ {
+
+
+
+
+ using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
+ {
+ var trainingIds = getCompanyTraining.TestTrainingIds.Split(',');
+ var testTrainings = db.Training_TestTraining.Where(x => trainingIds.Contains(x.TrainingId));
+ var getTestRecord = db.Training_TestRecord.FirstOrDefault(x => x.TestRecordId == testRecordId);
+ if (getTestRecord != null && !getTestRecord.TestStartTime.HasValue)
+ {
+ ////考试时长
+ getTestRecord.Duration = 120;
+ getTestRecord.TestStartTime = DateTime.Now;
+ db.SubmitChanges();
+ }
+
+ ////当前人考试记录 未加入考试计划的 当考试开始扫码时 不允许再参与考试
+ var item = db.Training_TestRecordItem.FirstOrDefault(x => x.TestRecordId == getTestRecord.TestRecordId);
+ if (item == null)
+ {
+ List getTestTrainingItemList = new List();
+ //var testPlanTrainings = from x in db.Training_TestPlanTraining
+ // where x.TestPlanId == getTestPlan.TestPlanId
+ // select x;
+ //// 计划考试中单选、多选、判断题总数
+ var sysTestRule = Funs.DB.Sys_TestRule.FirstOrDefault();
+
+ int sumTestType1Count = 0;// testPlanTrainings.Sum(x => x.TestType1Count) ?? 0;
+ int sumTestType2Count = 0;//testPlanTrainings.Sum(x => x.TestType2Count) ?? 0;
+ int sumTestType3Count = 0;//testPlanTrainings.Sum(x => x.TestType3Count) ?? 0;
+ if (sysTestRule != null)
+ {
+
+ sumTestType1Count = sysTestRule.SCount;
+ sumTestType2Count = sysTestRule.MCount;
+ sumTestType3Count = sysTestRule.JCount;
+ }
+ ////获取类型下适合岗位试题集合
+ List getTestTrainingItemALLs;
+ string WorkPostId = "";
+ string DepartId = "";
+ if (person != null)
+ {
+ WorkPostId = person.WorkPostId;
+ }
+ if (user != null)
+ {
+ DepartId = user.DepartId;
+ }
+
+ getTestTrainingItemALLs = (from x in db.Training_TestTrainingItem
+ where x.TrainingId != null && (x.WorkPostIds == null || string.IsNullOrEmpty(WorkPostId) || x.WorkPostIds.Contains(WorkPostId)) || (x.DepartIds == null || string.IsNullOrEmpty(DepartId) || x.DepartIds.Contains(DepartId))
+ select x).ToList();
+ foreach (var itemT in testTrainings)
+ {
+ //// 获取类型下的题目
+ var getTestTrainingItems = getTestTrainingItemALLs.Where(x => x.TrainingId == itemT.TrainingId).ToList();
+ if (getTestTrainingItems.Count() > 0)
+ {
+ ////单选题
+ var getSItem = getTestTrainingItems.Where(x => x.TestType == "1").OrderBy(x => Guid.NewGuid()).Take(sumTestType1Count);
+ if (getSItem.Count() > 0)
+ {
+ getTestTrainingItemList.AddRange(getSItem);
+ }
+ ///多选题
+ var getMItem = getTestTrainingItems.Where(x => x.TestType == "2").OrderBy(x => Guid.NewGuid()).Take(sumTestType2Count);
+ if (getMItem.Count() > 0)
+ {
+ getTestTrainingItemList.AddRange(getMItem);
+ }
+ ///判断题
+ var getJItem = getTestTrainingItems.Where(x => x.TestType == "3").OrderBy(x => Guid.NewGuid()).Take(sumTestType3Count);
+ if (getJItem.Count() > 0)
+ {
+ getTestTrainingItemList.AddRange(getJItem);
+ }
+ }
+ }
+ //// 获取得到的单选题、多选题、判断题 数量
+ int getDiffTestType1Count = sumTestType1Count - getTestTrainingItemList.Where(x => x.TestType == "1").Count();
+ int getDiffTestType2Count = sumTestType2Count - getTestTrainingItemList.Where(x => x.TestType == "2").Count();
+ int getDiffTestType3Count = sumTestType3Count - getTestTrainingItemList.Where(x => x.TestType == "3").Count();
+ if (getDiffTestType1Count > 0 || getDiffTestType2Count > 0 || getDiffTestType3Count > 0)
+ {
+ var getTestTrainingItemNulls = getTestTrainingItemALLs.Where(x => x.WorkPostIds == null).ToList();
+ if (getTestTrainingItemNulls.Count() > 0)
+ {
+ /// 通用且未选择的题目
+ var getTestTrainingItemDiffs = getTestTrainingItemNulls.Except(getTestTrainingItemList).ToList();
+ ////单选题
+ if (getDiffTestType1Count > 0)
+ {
+ var getSItemD = getTestTrainingItemDiffs.Where(x => x.TestType == "1").OrderBy(x => Guid.NewGuid()).Take(getDiffTestType1Count);
+ if (getSItemD.Count() > 0)
+ {
+ getTestTrainingItemList.AddRange(getSItemD);
+ }
+ }
+ ///多选题
+ if (getDiffTestType2Count > 0)
+ {
+ var getMItemD = getTestTrainingItemDiffs.Where(x => x.TestType == "2").OrderBy(x => Guid.NewGuid()).Take(getDiffTestType2Count);
+ if (getMItemD.Count() > 0)
+ {
+ getTestTrainingItemList.AddRange(getMItemD);
+ }
+ }
+ ///判断题
+ if (getDiffTestType3Count > 0)
+ {
+ var getJItemD = getTestTrainingItemDiffs.Where(x => x.TestType == "3").OrderBy(x => Guid.NewGuid()).Take(getDiffTestType3Count);
+ if (getJItemD.Count() > 0)
+ {
+ getTestTrainingItemList.AddRange(getJItemD);
+ }
+ }
+ }
+ }
+
+ if (getTestTrainingItemList.Count() > 0)
+ {
+ var getItems = from x in getTestTrainingItemList
+ select new Model.Training_TestRecordItem
+ {
+ TestRecordItemId = SQLHelper.GetNewID(),
+ TestRecordId = getTestRecord.TestRecordId,
+ TrainingItemName = x.TrainingItemName,
+ TrainingItemCode = x.TrainingItemCode,
+ Abstracts = x.Abstracts,
+ AttachUrl = x.AttachUrl,
+ TestType = x.TestType,
+ AItem = x.AItem,
+ BItem = x.BItem,
+ CItem = x.CItem,
+ DItem = x.DItem,
+ EItem = x.EItem,
+ AnswerItems = x.AnswerItems,
+ Score = x.TestType == "1" ? sysTestRule.SValue : (x.TestType == "2" ? sysTestRule.MValue : sysTestRule.JValue),
+ };
+
+ db.Training_TestRecordItem.InsertAllOnSubmit(getItems);
+ db.SubmitChanges();
+ BLL.RedisHelper redis = new BLL.RedisHelper();
+ redis.SetObjString(testRecordId, getItems);
+ }
+ }
+ }
+ return testRecordId;
+ }
+
+
#region 根据PersonId、TestPlanId生成试卷 扫码生成试卷
///
/// 根据PersonId、TestPlanId生成试卷 扫码生成试卷
@@ -673,28 +864,32 @@ namespace BLL
///
public static string getResitTestRecord(Model.Training_TestRecord getTestRecord)
{
- Model.Training_TestRecord newTestRecord = new Model.Training_TestRecord
+ using (var db = new Model.SGGLDB(Funs.ConnString))
{
- TestRecordId = SQLHelper.GetNewID(),
- ProjectId = getTestRecord.ProjectId,
- TestPlanId = getTestRecord.TestPlanId,
- TestManId = getTestRecord.TestManId,
- TestType = getTestRecord.TestType,
- TemporaryUser = getTestRecord.TemporaryUser,
- Duration = getTestRecord.Duration,
- // TestStartTime = DateTime.Now,
- };
+ Model.Training_TestRecord newTestRecord = new Model.Training_TestRecord
+ {
+ TestRecordId = SQLHelper.GetNewID(),
+ ProjectId = getTestRecord.ProjectId,
+ TestPlanId = getTestRecord.TestPlanId,
+ TestManId = getTestRecord.TestManId,
+ TestType = getTestRecord.TestType,
+ TemporaryUser = getTestRecord.TemporaryUser,
+ Duration = getTestRecord.Duration,
+ // TestStartTime = DateTime.Now,
+ };
- Funs.DB.Training_TestRecord.InsertOnSubmit(newTestRecord);
- Funs.DB.SubmitChanges();
+ db.Training_TestRecord.InsertOnSubmit(newTestRecord);
+ db.SubmitChanges();
- var getTestPlan = Funs.DB.Training_TestPlan.FirstOrDefault(x => x.TestPlanId == newTestRecord.TestPlanId);
- var person = PersonService.GetPersonByUserId(newTestRecord.TestManId, getTestPlan.ProjectId);
- if (getTestPlan != null && person != null)
- {
- CreateTestRecordItem(getTestPlan, newTestRecord.TestRecordId, person);
+ var getTestPlan = db.Training_TestPlan.FirstOrDefault(x => x.TestPlanId == newTestRecord.TestPlanId);
+ var user = db.Sys_User.FirstOrDefault(x => x.UserId == newTestRecord.TestManId);
+ var person = PersonService.GetPersonByUserIdForApi(newTestRecord.TestManId, getTestPlan.ProjectId);
+ if (getTestPlan != null && person != null)
+ {
+ CreateTestRecordItem(getTestPlan, newTestRecord.TestRecordId, person, user);
+ }
+ return newTestRecord.TestRecordId;
}
- return newTestRecord.TestRecordId;
}
#endregion
@@ -765,5 +960,7 @@ namespace BLL
return getDataLists.ToList();
}
}
+
+
}
}
\ No newline at end of file
diff --git a/SGGL/BLL/API/HSSE/APITrainingTaskService.cs b/SGGL/BLL/API/HSSE/APITrainingTaskService.cs
index 1d06cef..190cdad 100644
--- a/SGGL/BLL/API/HSSE/APITrainingTaskService.cs
+++ b/SGGL/BLL/API/HSSE/APITrainingTaskService.cs
@@ -71,6 +71,8 @@ namespace BLL
GetDataService.CreateTrainingTaskItemByTaskId(taskId);
var getDataLists = (from x in db.Training_TaskItem
+ join y in db.Training_CompanyTrainingItem on x.TrainingItemCode equals y.CompanyTrainingItemCode into temp
+ from y in temp.DefaultIfEmpty()
where x.TaskId == taskId
orderby x.TrainingItemCode
select new Model.TrainingTaskItemItem
@@ -78,15 +80,16 @@ namespace BLL
TaskItemId = x.TaskItemId,
TaskId = x.TaskId,
PlanId = x.PlanId,
+ StartTime = x.StartTime,
+ EndTime = x.EndTime,
+ LearningTime = x.LearnTime,
+ AttachTime = y.LearningTime,
+ VideoProgress = x.VideoProgress,
PersonId = x.PersonId,
- StartTime = x.StartTime,
- EndTime = x.EndTime,
- LearnTime = x.LearnTime,
- VideoProgress = x.VideoProgress,
- TrainingItemCode = x.TrainingItemCode,
+ TrainingItemCode = x.TrainingItemCode,
TrainingItemName = x.TrainingItemName,
AttachUrl = x.AttachUrl.Replace('\\', '/'),
- }).ToList();
+ }).ToList();
return getDataLists;
}
}
@@ -273,19 +276,41 @@ namespace BLL
item.StartTime = startTime;
}
- if (!item.LearnTime.HasValue)
- {
- item.LearnTime = 0;
- }
+ //if (!item.LearnTime.HasValue)
+ //{
+ // item.LearnTime = 0;
+ //}
if (!string.IsNullOrEmpty(VideoProgress))
{
+ //if (!item.VideoProgress.HasValue)
+ //{
+ // item.VideoProgress = 0;
+ //}
item.VideoProgress = int.Parse(VideoProgress);
}
var span = endTime.Subtract(startTime);
- item.LearnTime = item.LearnTime.Value + (int)span.TotalMinutes;
- item.EndTime = endTime;
+ if (!item.LearnTime.HasValue)
+ {
+ item.LearnTime = 0;
+ }
+ item.LearnTime = item.LearnTime.Value + (int)span.TotalSeconds;
+ item.EndTime = endTime;
+
db.SubmitChanges();
- return item;
+
+ var companyTrainingItem = db.Training_CompanyTrainingItem.FirstOrDefault(x => x.CompanyTrainingItemCode == item.TrainingItemCode);
+ int companyTrainingItemLearnTime = companyTrainingItem?.LearningTime ?? 0; //培训教材时长(秒)
+
+
+ //如果学习时长大于培训教材时长,则关闭状态
+ if (item.LearnTime > companyTrainingItemLearnTime)
+ {
+ var taskModel = db.Training_Task.FirstOrDefault(x => x.TaskId == item.TaskId);
+ taskModel.States = "2";
+ db.SubmitChanges();
+ }
+
+ return item;
}
}
#endregion
diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj
index f14a9dc..68bb9dd 100644
--- a/SGGL/BLL/BLL.csproj
+++ b/SGGL/BLL/BLL.csproj
@@ -21,6 +21,8 @@
+
+
true
@@ -66,8 +68,11 @@
..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll
-
- ..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll
..\packages\Microsoft.Office.Interop.Excel.15.0.4795.1001\lib\net20\Microsoft.Office.Interop.Excel.dll
@@ -100,12 +105,18 @@
..\packages\MicrosoftOfficeCore.15.0.0\lib\net35\Office.dll
False
+
+ ..\packages\Pipelines.Sockets.Unofficial.2.2.8\lib\net461\Pipelines.Sockets.Unofficial.dll
+
..\packages\Quartz.3.7.0\lib\netstandard2.0\Quartz.dll
..\packages\RestSharp.106.15.0\lib\net452\RestSharp.dll
+
+ ..\packages\StackExchange.Redis.2.8.16\lib\net461\StackExchange.Redis.dll
+
..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
@@ -122,6 +133,14 @@
+
+ ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll
+ True
+ True
+
+
+ ..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll
+
..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll
@@ -138,6 +157,11 @@
..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+
+ ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+ True
+ True
+
@@ -151,6 +175,12 @@
+
+ ..\packages\System.Threading.Channels.5.0.0\lib\net461\System.Threading.Channels.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
+
@@ -269,6 +299,9 @@
+
+
+
@@ -1142,6 +1175,13 @@
+
+
+
+ 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。
+
+
+
- False
+ True
False
True
Release