Commit 3dc49591 by 徐建业

同步

parents 47604be9 c789de18
...@@ -59,15 +59,6 @@ ...@@ -59,15 +59,6 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\DLL\Newtonsoft.Json.dll</HintPath> <HintPath>..\DLL\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="Spire.Doc, Version=7.12.23.4046, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<HintPath>..\packages\Spire.Doc.7.12.23\lib\net46\Spire.Doc.dll</HintPath>
</Reference>
<Reference Include="Spire.License, Version=1.3.8.46, Culture=neutral, PublicKeyToken=b1144360237c8b3f, processorArchitecture=MSIL">
<HintPath>..\packages\Spire.Doc.7.12.23\lib\net46\Spire.License.dll</HintPath>
</Reference>
<Reference Include="Spire.Pdf, Version=5.12.16.18046, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<HintPath>..\packages\Spire.Doc.7.12.23\lib\net46\Spire.Pdf.dll</HintPath>
</Reference>
<Reference Include="StackExchange.Redis, Version=1.2.6.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="StackExchange.Redis, Version=1.2.6.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\StackExchange.Redis.1.2.6\lib\net46\StackExchange.Redis.dll</HintPath> <HintPath>..\packages\StackExchange.Redis.1.2.6\lib\net46\StackExchange.Redis.dll</HintPath>
</Reference> </Reference>
...@@ -85,12 +76,6 @@ ...@@ -85,12 +76,6 @@
<Reference Include="WorkFlow"> <Reference Include="WorkFlow">
<HintPath>..\DLL\WorkFlow.dll</HintPath> <HintPath>..\DLL\WorkFlow.dll</HintPath>
</Reference> </Reference>
<Reference Include="Xceed.Document.NET, Version=1.5.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\DocX.1.5.0\lib\net40\Xceed.Document.NET.dll</HintPath>
</Reference>
<Reference Include="Xceed.Words.NET, Version=1.5.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\DocX.1.5.0\lib\net40\Xceed.Words.NET.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Chloe.Extension\DbActionBag.cs" /> <Compile Include="Chloe.Extension\DbActionBag.cs" />
...@@ -146,7 +131,6 @@ ...@@ -146,7 +131,6 @@
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SqlHelper.cs" /> <Compile Include="SqlHelper.cs" />
<Compile Include="VerCodeHelp.cs" /> <Compile Include="VerCodeHelp.cs" />
<Compile Include="Word\CreateWordReport.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" /> <None Include="app.config" />
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Common.Unit.Word
{
public class CreateWordReport
{
}
}
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="DocX" version="1.5.0" targetFramework="net46" />
<package id="JWT" version="5.2.2" targetFramework="net46" /> <package id="JWT" version="5.2.2" targetFramework="net46" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net46" /> <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net46" />
<package id="Spire.Doc" version="7.12.23" targetFramework="net46" />
<package id="StackExchange.Redis" version="1.2.6" targetFramework="net46" /> <package id="StackExchange.Redis" version="1.2.6" targetFramework="net46" />
</packages> </packages>
\ No newline at end of file
using G.Buss.BaseInfo.Services.SummarySVC;
using G.MES.API.App_Start;
using G.MES.DataModel;
using G.MES.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
namespace G.MES.API.Controllers
{
/// <summary>
/// 检测结果汇总表
/// </summary>
public class SummaryController : BasicController
{
private readonly SummarySvc svc = new SummarySvc();
/// <summary>
/// 导入检测结果
/// </summary>
/// <returns></returns>
[HttpPost]
[NoAuthAttribute]
public bool ImportSummary()
{
try
{
//LoginInfo user = GetLoginUser();
HttpPostedFile file = HttpContext.Current.Request.Files["Excel"];
return svc.ImportSummary(file);
}
catch (Exception e)
{
throw new Exception("表格导入错误" + e.Message);
}
}
/// <summary>
/// 获取检测结果所有数据(未分页,此功能暂时可能不需要)
/// </summary>
/// <returns></returns>
[HttpGet]
[NoAuthAttribute]
public List<Summary> GetSummaries()
{
return svc.GetSummaries();
}
}
}
\ No newline at end of file
...@@ -260,6 +260,7 @@ ...@@ -260,6 +260,7 @@
<Compile Include="Controllers\ExportWordController.cs" /> <Compile Include="Controllers\ExportWordController.cs" />
<Compile Include="Controllers\SampleControlController.cs" /> <Compile Include="Controllers\SampleControlController.cs" />
<Compile Include="Controllers\SampleTypeController.cs" /> <Compile Include="Controllers\SampleTypeController.cs" />
<Compile Include="Controllers\SummaryController.cs" />
<Compile Include="Controllers\SystemController.cs" /> <Compile Include="Controllers\SystemController.cs" />
<Compile Include="Controllers\SystemLoggingController.cs" /> <Compile Include="Controllers\SystemLoggingController.cs" />
<Compile Include="Controllers\TargetedMedicineController.cs" /> <Compile Include="Controllers\TargetedMedicineController.cs" />
......
...@@ -30,10 +30,11 @@ ...@@ -30,10 +30,11 @@
<add key="ExportFilePath" value="E:\Export" /> <add key="ExportFilePath" value="E:\Export" />
<add key="ImportTemplelatePath" value="192.168.6.131:10122\Template\" /> <add key="ImportTemplelatePath" value="192.168.6.131:10122\Template\" />
<add key="EnablePassWordStrength" value="1" /> <add key="EnablePassWordStrength" value="1" />
<add key="TemplateDic" value="F:\Work\Project\报告系统\Git\ReportingSystemAPI\G.MES.API\Template\参考报告.docx" />
<add key="OutDic" value="F:\Work\Project\报告系统\Git\ReportingSystemAPI\G.MES.API\OutFile\" />
</appSettings> </appSettings>
<connectionStrings> <connectionStrings>
<add name="MainDB" connectionString="Data Source=.;Database=SYSMANAGE;User Id=sa;Password=123456" /> <add name="MainDB" connectionString="Data Source=47.96.124.15;Database=JCBB_MB;User Id=sa;Password=valtai" />
<add name="RedisExchangeHosts" connectionString="127.0.0.1:6379,allowadmin=true,password=123456" /> <add name="RedisExchangeHosts" connectionString="127.0.0.1:6379,allowadmin=true,password=123456" />
</connectionStrings> </connectionStrings>
<system.web> <system.web>
......
...@@ -22,3 +22,54 @@ CREATE TABLE [dbo].[Chemotherapy]( ...@@ -22,3 +22,54 @@ CREATE TABLE [dbo].[Chemotherapy](
``` ```
alter table GeneCorrelation alter column [Type] varchar(50) alter table GeneCorrelation alter column [Type] varchar(50)
``` ```
### 创建检查结果汇总表(Summary)表
```
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Summary](
[SummaryOID] [UNIQUEIDENTIFIER] NOT NULL,
[Gene] [VARCHAR](50) NULL,
[Position] [VARCHAR](50) NULL,
[Annotation] [TEXT] NULL,
[Abundance] [VARCHAR](50) NULL,
[Mutations] [VARCHAR](50) NULL,
[ParentOID] [UNIQUEIDENTIFIER] NOT NULL,
[SampleNumber] [VARCHAR](50) NULL,
[Sys_CreateBy] [UNIQUEIDENTIFIER] NULL,
[Sys_Create] [DATETIME] NULL,
CONSTRAINT [PK_Summary] PRIMARY KEY CLUSTERED
(
[SummaryOID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'基因' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Summary', @level2type=N'COLUMN',@level2name=N'Gene'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'突变位置及类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Summary', @level2type=N'COLUMN',@level2name=N'Position'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'结果注释' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Summary', @level2type=N'COLUMN',@level2name=N'Annotation'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'丰度' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Summary', @level2type=N'COLUMN',@level2name=N'Abundance'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'突变说明' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Summary', @level2type=N'COLUMN',@level2name=N'Mutations'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'样本编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Summary', @level2type=N'COLUMN',@level2name=N'SampleNumber'
GO
```
...@@ -106,6 +106,7 @@ ...@@ -106,6 +106,7 @@
<Compile Include="Services\PMIDSVC\PMIDSVC.cs" /> <Compile Include="Services\PMIDSVC\PMIDSVC.cs" />
<Compile Include="Services\SampleControlSVC\SampleControlSVC.cs" /> <Compile Include="Services\SampleControlSVC\SampleControlSVC.cs" />
<Compile Include="Services\SampleTypeSVC\SampleTypeSVC.cs" /> <Compile Include="Services\SampleTypeSVC\SampleTypeSVC.cs" />
<Compile Include="Services\SummarySVC\SummarySvc.cs" />
<Compile Include="Services\SystemLoggingAttribute\SystemLoggingAttribute.cs" /> <Compile Include="Services\SystemLoggingAttribute\SystemLoggingAttribute.cs" />
<Compile Include="Services\SystemLoggingAttribute\SystenLoggingTableSVC.cs" /> <Compile Include="Services\SystemLoggingAttribute\SystenLoggingTableSVC.cs" />
<Compile Include="Services\TargetedMedicineReferencesSVC\TargetedMedicineReferencesSVC.cs" /> <Compile Include="Services\TargetedMedicineReferencesSVC\TargetedMedicineReferencesSVC.cs" />
......
using Chloe; using Chloe;
using Chloe.SqlServer; using Chloe.SqlServer;
using Common.Unit;
using G.Buss.BaseInfo.ViewModel.ClientInfoModel; using G.Buss.BaseInfo.ViewModel.ClientInfoModel;
using G.Buss.BaseInfo.ViewModel.CodeTableModel; using G.Buss.BaseInfo.ViewModel.CodeTableModel;
using G.Buss.BaseInfo.ViewModel.GeneCorrelationModel; using G.Buss.BaseInfo.ViewModel.GeneCorrelationModel;
...@@ -10,6 +11,7 @@ using G.Buss.BaseInfo.ViewModel.TMBGradeRequestModel; ...@@ -10,6 +11,7 @@ using G.Buss.BaseInfo.ViewModel.TMBGradeRequestModel;
using G.MES.DataModel; using G.MES.DataModel;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
...@@ -24,27 +26,49 @@ namespace G.Buss.BaseInfo.Services.ExportWordSVC ...@@ -24,27 +26,49 @@ namespace G.Buss.BaseInfo.Services.ExportWordSVC
/// 获取需要导出的受试者集合 /// 获取需要导出的受试者集合
/// </summary> /// </summary>
/// <param name="ClientInfosOID"></param> /// <param name="ClientInfosOID"></param>
public List<ClientInfoDetailModel> GetClirntInfo(List<Guid> ClientInfosOID) public ClientInfoDetailModel GetClirntInfo(Guid requestModel)
{ {
return ClientInfo.DoGetClientInfoDetail(ClientInfosOID); using (var context = new MsSqlContext(sqlConn))
{
ClientInfoDetailModel thisQueryModel = context.Query<ClientInfo>().Where(a => requestModel == a.ClientInfoOID)
.Select(a => new ClientInfoDetailModel
{
ClientInfoOID = a.ClientInfoOID,
Name = a.Name,
Sex = a.Sex,
IDCard = a.IDCard,
Birth = a.Birth,
SampleCode = a.SampleCode,
SampleType = a.SampleType,
Phone = a.Phone,
SampleDetection = a.SampleDetection,
TechnologyDetection = a.TechnologyDetection,
TumorsType = a.TumorsType,
TBM = a.TBM,
IsEssential = a.IsEssential,
ClinicalDiagnosis = a.ClinicalDiagnosis,
FamilyHistory = a.FamilyHistory,
PersonalHistory = a.PersonalHistory,
SamplingTime = a.SamplingTime
}).FirstOrDefault();
return thisQueryModel;
}
} }
/// <summary> /// <summary>
/// 获取TMB等级说明 /// 获取TMB等级说明
/// </summary> /// </summary>
public List<TMBGradeQueryModel> GetTMBLevel() public List<TMBTable> GetTMBLevel()
{ {
using (var context = new MsSqlContext(sqlConn)) using (var context = new MsSqlContext(sqlConn))
{ {
List<TMBGradeQueryModel> TMBGradeQuery = context.JoinQuery<TMBGrade, Sys_Organize>((TMBGrade, org) => new object[] { List<TMBTable> TMBGradeQuery = context.JoinQuery<TMBGrade, Sys_Organize>((TMBGrade, org) => new object[] {
JoinType.LeftJoin,TMBGrade.SYS_ORG == org.Sys_OrganizeOID JoinType.LeftJoin,TMBGrade.SYS_ORG == org.Sys_OrganizeOID
}).Select((TMBGrade, org) => new TMBGradeQueryModel }).Select((TMBGrade, org) => new TMBTable
{ {
TMBGradeOID = TMBGrade.TMBGradeOID,
Grade = TMBGrade.Grade, Grade = TMBGrade.Grade,
Scope = TMBGrade.Scope, Scope = TMBGrade.Scope,
Remark = TMBGrade.Remark, Remark = TMBGrade.Remark
ClassCode = org.ClassCode
}).ToList(); }).ToList();
return TMBGradeQuery; return TMBGradeQuery;
} }
...@@ -66,7 +90,6 @@ namespace G.Buss.BaseInfo.Services.ExportWordSVC ...@@ -66,7 +90,6 @@ namespace G.Buss.BaseInfo.Services.ExportWordSVC
Remark = MISReport.Remark, Remark = MISReport.Remark,
ClassCode = org.ClassCode ClassCode = org.ClassCode
}).ToList(); }).ToList();
int TotalNum = MISReportQuery.Count(); int TotalNum = MISReportQuery.Count();
return MISReportQuery; return MISReportQuery;
} }
...@@ -74,9 +97,10 @@ namespace G.Buss.BaseInfo.Services.ExportWordSVC ...@@ -74,9 +97,10 @@ namespace G.Buss.BaseInfo.Services.ExportWordSVC
/// <summary> /// <summary>
/// 获取检测结果 /// 获取检测结果
/// </summary> /// </summary>
public void GetCheckResult() public DataTable GetCheckResult()
{ {
SqlHelper context = new SqlHelper();
return context.ExcuteDatatable("SELECT * FROM dbo.Summary ORDER BY CurrentIndex ASC", null);
} }
/// <summary> /// <summary>
/// 获取化疗药物 /// 获取化疗药物
...@@ -175,6 +199,28 @@ namespace G.Buss.BaseInfo.Services.ExportWordSVC ...@@ -175,6 +199,28 @@ namespace G.Buss.BaseInfo.Services.ExportWordSVC
return GeneCorrelationQuery; return GeneCorrelationQuery;
} }
} }
/// <summary>
/// 获取基因类型列表
/// </summary>
/// <returns></returns>
public List<SonCodeTableResponseModel> GetGeneTypeList()
{
using (var context = new MsSqlContext(sqlConn))
{
List<SonCodeTableResponseModel> AllSonDictionaryDirectory = context.Query<CodeValue>()
.Where(a => a.CodeTableID == "Code_GeneType")
.Select(a => new SonCodeTableResponseModel
{
CodeID = a.CodeID,
CodeName = a.CodeName,
OrderNo = a.OrderNo,
Reserved3 = a.Reserved3
}).ToList();
return AllSonDictionaryDirectory;
}
}
/// <summary> /// <summary>
/// 获取化药参考文献 /// 获取化药参考文献
/// </summary> /// </summary>
......
using G.MES.ViewModel;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using G.MES.DataModel;
using Chloe.SqlServer;
namespace G.Buss.BaseInfo.Services.SummarySVC
{
public class SummarySvc : BaseSvc
{
public List<Summary> GetSummaries()
{
using (var context = new MsSqlContext(sqlConn))
{
return context.Query<Summary>().ToList();
}
}
public bool ImportSummary(HttpPostedFile file)
{
try
{
DataTable table = RenderDataTableFromExcel(file.InputStream, 0, 0);
List<Summary> summaries = new List<Summary>();
List<string> SampleNumber = new List<string>();
Guid PreOID = Guid.Empty;
for (int i = 0; i < table.Rows.Count; i++)
{
Summary summary = new Summary();
Guid OID = Guid.NewGuid();
if (string.IsNullOrEmpty(table.Rows[i]["基因"].ToString()))
{
if (PreOID == Guid.Empty)
{
throw new Exception("excel第一行数据不能为空");
}
summary.ParentOID = PreOID;
summary.SummaryOID = OID;
summary.Gene = table.Rows[i]["基因"].ToString();
summary.Position = table.Rows[i]["突变位置及类型"].ToString();
summary.Annotation = table.Rows[i]["结果注释"].ToString();
summary.Abundance = table.Rows[i]["丰度"].ToString();
summary.Mutations = table.Rows[i]["突变说明"].ToString();
summary.SampleNumber = table.Rows[i]["样本编号"].ToString();
//summary.Sys_CreateBy = user.Sys_UserOID;
summary.Sys_Create = DateTime.Now;
summary.CurrentIndex = i;
}
else
{
summary.ParentOID = Guid.Empty;
summary.SummaryOID = OID;
summary.Gene = table.Rows[i]["基因"].ToString();
summary.Position = table.Rows[i]["突变位置及类型"].ToString();
summary.Annotation = table.Rows[i]["结果注释"].ToString();
summary.Abundance = table.Rows[i]["丰度"].ToString();
summary.Mutations = table.Rows[i]["突变说明"].ToString();
summary.SampleNumber = table.Rows[i]["样本编号"].ToString();
//summary.Sys_CreateBy = user.Sys_UserOID;
summary.Sys_Create = DateTime.Now;
summary.CurrentIndex = i;
PreOID = OID;
SampleNumber.Add(summary.SampleNumber);
}
summaries.Add(summary);
}
using (var context = new MsSqlContext(sqlConn))
{
List<Summary> summarie = context.Query<Summary>().Where(n => SampleNumber.Contains(n.SampleNumber)).ToList();
List<Guid> guids = summarie.Select(n => n.SummaryOID).ToList();
List<string> numbers = summarie.Select(n => n.SampleNumber).ToList();
//删除已存在的数据再重新插入
if (summarie.Any())
{
context.Delete<Summary>(m => numbers.Contains(m.SampleNumber) || guids.Contains(m.ParentOID));
}
context.InsertRange(summaries);
}
return true;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
private static DataTable RenderDataTableFromExcel(Stream ExcelFileStream, int SheetIndex, int HeaderRowIndex)
{
XSSFWorkbook workbook = new XSSFWorkbook(ExcelFileStream);
ISheet sheet = workbook.GetSheetAt(SheetIndex);
DataTable table = new DataTable();
IRow headerRow = sheet.GetRow(HeaderRowIndex);
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
}
table.Rows.Add(dataRow);
}
ExcelFileStream.Close();
workbook = null;
sheet = null;
return table;
}
}
}
...@@ -37,6 +37,22 @@ namespace G.Buss.BaseInfo.ViewModel.TMBGradeRequestModel ...@@ -37,6 +37,22 @@ namespace G.Buss.BaseInfo.ViewModel.TMBGradeRequestModel
} }
public class TMBTable
{
/// <summary>
/// 范围
/// </summary>
public string Grade { get; set; }
/// <summary>
/// 等级
/// </summary>
public string Scope { get; set; }
/// <summary>
/// 说明
/// </summary>
public string Remark { get; set; }
}
public class TMBGradeQueryModel public class TMBGradeQueryModel
{ {
/// <summary> /// <summary>
......
...@@ -115,6 +115,9 @@ ...@@ -115,6 +115,9 @@
<Compile Include="SampleType.cs"> <Compile Include="SampleType.cs">
<DependentUpon>DataTemplete.tt</DependentUpon> <DependentUpon>DataTemplete.tt</DependentUpon>
</Compile> </Compile>
<Compile Include="Summary.cs">
<DependentUpon>DataTemplete.tt</DependentUpon>
</Compile>
<Compile Include="SystemLogging.cs"> <Compile Include="SystemLogging.cs">
<DependentUpon>DataTemplete.tt</DependentUpon> <DependentUpon>DataTemplete.tt</DependentUpon>
</Compile> </Compile>
......
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码是根据模板生成的。
//
// 手动更改此文件可能会导致应用程序中发生异常行为。
// 如果重新生成代码,则将覆盖对此文件的手动更改。
// </auto-generated>
//------------------------------------------------------------------------------
namespace G.MES.DataModel
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Chloe.Annotations;
///<summary><summary>
[Serializable]
public partial class Summary : Core.BaseModel
{
///<summary><summary>
[ColumnAttribute(IsPrimaryKey = true)]
public virtual System.Guid SummaryOID { get;set; }
///<summary><summary>
public virtual string Gene { get;set; }
///<summary><summary>
public virtual string Position { get;set; }
///<summary><summary>
public virtual string Annotation { get;set; }
///<summary><summary>
public virtual string Abundance { get;set; }
///<summary><summary>
public virtual string Mutations { get;set; }
///<summary><summary>
public virtual System.Guid ParentOID { get;set; }
///<summary><summary>
public virtual string SampleNumber { get;set; }
///<summary><summary>
public virtual Nullable<System.Guid> Sys_CreateBy { get;set; }
///<summary><summary>
public virtual Nullable<System.DateTime> Sys_Create { get;set; }
///<summary><summary>
public virtual Nullable<int> CurrentIndex { get;set; }
}
}
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<!--是否启用token-->
<add key="EnableToken" value="1" />
<!--token的生成密匙-->
<add key="TokenSecret" value="gidea" />
<!--Redis的生成结构目录-->
<add key="RedisKey" value="ValTai:Common:" />
<add key="ApiPort" value="997" />
<!--终端补丁包的存放路径-->
<add key="ClientFilePath" value="F:\ClientFile" />
<!--导出问卷路径-->
<add key="ExportFilePath" value="E:\Export" />
<!--主网站的浏览文件的地址-->
<add key="MainWebSite" value="http://192.168.6.131:10222/" />
<!--录音文件路径-->
<add key="lywjurl" value="E:\GideaProject\TestUpLoadFile\ly" />
<!--回复图片路径-->
<add key="replyimage" value="D:\演示项目\新版万太云\Upload\img" />
<!--导出问卷路径-->
<add key="ExportFilePath" value="E:\Export" />
<add key="ImportTemplelatePath" value="192.168.6.131:10122\Template\" />
<add key="EnablePassWordStrength" value="1" />
<add key="TemplateDic" value="F:\Work\Project\报告系统\Git\ReportingSystemAPI\G.MES.API\Template\参考报告.docx" />
<add key="OutDic" value="F:\Work\Project\报告系统\Git\ReportingSystemAPI\G.MES.API\OutFile\" />
</appSettings>
<connectionStrings>
<add name="MainDB" connectionString="Data Source=47.96.124.15;Database=JCBB_MB;User Id=sa;Password=valtai" />
<add name="RedisExchangeHosts" connectionString="127.0.0.1:6379,allowadmin=true,password=123456" />
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NPOI" publicKeyToken="0df73ec7942b34e1" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.4.1.0" newVersion="2.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file
...@@ -10,8 +10,9 @@ namespace UnitTestWord ...@@ -10,8 +10,9 @@ namespace UnitTestWord
[TestMethod] [TestMethod]
public void TestMethod1() public void TestMethod1()
{ {
OperationFunc operation = new OperationFunc(); CreateWordReport report = new CreateWordReport();
operation.ReplaceText(); report.CreateWord();
//OperationFunc.GetExcel();
} }
} }
} }
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="App.config" />
<None Include="packages.config" /> <None Include="packages.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xceed.Words.NET;
namespace WordByDocx.Word
{
public class CreateWordReport
{
//public static readonly string BaseDic = ConfigurationManager.AppSettings["TemplateDic"];
//public static readonly string OutDic = ConfigurationManager.AppSettings["OutDic"];
public static readonly string BaseDic = @"F:\Work\Project\报告系统\Git\ReportingSystemAPI\UnitTestWord\bin\Debug\template\参考报告.docx";
public static readonly string OutDic = @"F:\Work\Project\报告系统\Git\ReportingSystemAPI\UnitTestWord\bin\Debug\template\";
public string CreateWord()
{
Spire.Doc.Document document = new Spire.Doc.Document();
document.LoadFromFile(BaseDic);
Guid guids = new Guid("7AFD11CC-259F-438B-B5DC-3469C891C5F0");
ReplaceText replaceText = new ReplaceText(document);
replaceText.ReplaceUserInfo(guids);
replaceText.ReplaceTMBTable();
replaceText.ReplaceMSITable();
replaceText.ReplaceTargetDrugReferences();
replaceText.ReplaceChemicalMedicineReferences();
replaceText.ReplaceGeneList();
replaceText.ReplaceSummary();
document.SaveToFile(OutDic + "out.docx");
using (var documentDocx = DocX.Load(OutDic + "out.docx"))
{
documentDocx.Paragraphs[0].ReplaceText("Evaluation Warning: The document was created with Spire.Doc for .NET.", "");
documentDocx.Save();
}
return "";
}
}
}
using G.Buss.BaseInfo.Services.ExportWordSVC;
using G.Buss.BaseInfo.ViewModel.ClientInfoModel;
using G.Buss.BaseInfo.ViewModel.CodeTableModel;
using G.Buss.BaseInfo.ViewModel.GeneCorrelationModel;
using G.Buss.BaseInfo.ViewModel.MISReportModel;
using G.Buss.BaseInfo.ViewModel.TMBGradeRequestModel;
using G.MES.DataModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WordByDocx.Word
{
/// <summary>
/// 自由操作固定的数据获取与释放
/// </summary>
public class GetData : IDisposable
{
private static readonly ReportDataSvc svc = new ReportDataSvc();
private static List<TMBTable> TMBs = null;
private static List<MISReportQueryModel> MSIs = null;
private static string TargetDrugReferences = string.Empty;
private static string ChemicalMedicineReferences = string.Empty;
/// <summary>
/// 获取受试者信息
/// </summary>
/// <param name="guid"></param>
/// <returns></returns>
public static ClientInfoDetailModel GetUserInfo(Guid guid)
{
return svc.GetClirntInfo(guid);
}
/// <summary>
/// 获取检测结果
/// </summary>
/// <returns></returns>
public static DataTable GetSummary()
{
return svc.GetCheckResult();
}
/// <summary>
/// 获取TMB表格(这里不考虑线程的问题)
/// </summary>
public static List<TMBTable> GetTMBTable()
{
if (TMBs == null)
{
TMBs = svc.GetTMBLevel();
}
return TMBs;
}
/// <summary>
/// 获取TMB表格(这里不考虑线程的问题)
/// </summary>
public static List<MISReportQueryModel> GetMSITable()
{
if (MSIs == null)
{
MSIs = svc.GetMIS();
}
return MSIs;
}
/// <summary>
/// 获取基因列表
/// </summary>
/// <returns></returns>
public static List<GeneCorrelationQueryModel> GetGeneList()
{
return svc.GetGeneList();
}
/// <summary>
/// 获取基因类型列表
/// </summary>
/// <returns></returns>
public static List<SonCodeTableResponseModel> GetGeneTypeList()
{
return svc.GetGeneTypeList();
}
/// <summary>
/// 获取靶药文献
/// </summary>
/// <returns></returns>
public static string GetTargetDrugReferences()
{
if (string.IsNullOrEmpty(TargetDrugReferences))
{
TargetDrugReferences = svc.GetTargetDrugReferences();
}
return TargetDrugReferences;
}
/// <summary>
/// 获取化药文献
/// </summary>
/// <returns></returns>
public static string GetChemicalMedicineReferences()
{
if (string.IsNullOrEmpty(ChemicalMedicineReferences))
{
ChemicalMedicineReferences = svc.GetChemicalMdicineReferences();
}
return ChemicalMedicineReferences;
}
/// <summary>
/// 暂未做处理
/// </summary>
public void Dispose()
{
}
}
}
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Nyd.Extend.Tool.NPOI;
using Spire.Doc; using Spire.Doc;
using Spire.Doc.Documents;
using Xceed.Document.NET; using Xceed.Document.NET;
using Xceed.Words.NET; using Xceed.Words.NET;
namespace WordByDocx.Word namespace WordByDocx.Word
{ {
public class OperationFunc public static class OperationFunc
{ {
private static string templateDic = AppDomain.CurrentDomain.BaseDirectory + "\\template\\"; public static void ReplaceFunc(this Spire.Doc.Document document, string oldString, string newString)
{
document.Replace(oldString, newString, false, true);
}
public static string ToLocalLongTime(this DateTime? dateTime)
{
if (dateTime == null)
{
return "";
}
return dateTime.ToString();
}
/// <summary>
/// 创建表格样式
/// </summary>
/// <param name="document"></param>
/// <param name="color"></param>
/// <param name="fontSizt"></param>
/// <returns></returns>
public static ParagraphStyle CreateTableStyle(this Spire.Doc.Document document, string textColor = "#000000", int fontSizt = 14)
{
Color C = System.Drawing.ColorTranslator.FromHtml(textColor);
ParagraphStyle style = new ParagraphStyle(document);
style.Name = "TableStyle";
style.CharacterFormat.FontSize = fontSizt;
style.CharacterFormat.TextColor = C;
document.Styles.Add(style);
return style;
}
public void ReplaceText() public static readonly string BaseDic = @"F:\Work\Project\报告系统\Git\ReportingSystemAPI\UnitTestWord\bin\Debug\template\检测结果汇总表.xlsx";
public static void GetExcel()
{ {
Spire.Doc.Document document = new Spire.Doc.Document(); using (FileStream fileStream = new FileStream(BaseDic, FileMode.Open))
document.LoadFromFile(templateDic + "参考报告.docx");
document.Replace("#{Name}", "张三", false, true);
document.Replace("#{Phone}", "18895358744", false, true);
document.SaveToFile(templateDic + "out.docx");
using (var documentDocx = DocX.Load(templateDic + "out.docx"))
{ {
documentDocx.Paragraphs[0].ReplaceText("Evaluation Warning: The document was created with Spire.Doc for .NET.", ""); byte[] bytes = new byte[fileStream.Length];
documentDocx.Save(); fileStream.Read(bytes, 0, bytes.Length);
fileStream.Close();
Stream stream = new MemoryStream(bytes);
DataTable table = NPOIHelper.RenderDataTableFromExcel(stream, 0, 0);
} }
} }
} }
......
...@@ -31,6 +31,21 @@ ...@@ -31,6 +31,21 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="ICSharpCode.SharpZipLib, Version=1.0.0.999, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>..\packages\SharpZipLib.1.0.0\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference>
<Reference Include="NPOI, Version=2.4.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<HintPath>..\packages\NPOI.2.4.1\lib\net45\NPOI.dll</HintPath>
</Reference>
<Reference Include="NPOI.OOXML, Version=2.4.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<HintPath>..\packages\NPOI.2.4.1\lib\net45\NPOI.OOXML.dll</HintPath>
</Reference>
<Reference Include="NPOI.OpenXml4Net, Version=2.4.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<HintPath>..\packages\NPOI.2.4.1\lib\net45\NPOI.OpenXml4Net.dll</HintPath>
</Reference>
<Reference Include="NPOI.OpenXmlFormats, Version=2.4.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<HintPath>..\packages\NPOI.2.4.1\lib\net45\NPOI.OpenXmlFormats.dll</HintPath>
</Reference>
<Reference Include="Spire.Doc, Version=7.12.21.4046, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL"> <Reference Include="Spire.Doc, Version=7.12.21.4046, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<HintPath>..\packages\Spire.Doc.7.12.21\lib\net46\Spire.Doc.dll</HintPath> <HintPath>..\packages\Spire.Doc.7.12.21\lib\net46\Spire.Doc.dll</HintPath>
</Reference> </Reference>
...@@ -41,7 +56,10 @@ ...@@ -41,7 +56,10 @@
<HintPath>..\packages\Spire.Doc.7.12.21\lib\net46\Spire.Pdf.dll</HintPath> <HintPath>..\packages\Spire.Doc.7.12.21\lib\net46\Spire.Pdf.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
...@@ -58,17 +76,32 @@ ...@@ -58,17 +76,32 @@
<ItemGroup> <ItemGroup>
<Compile Include="Class1.cs" /> <Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Unit\NPOIHelper.cs" />
<Compile Include="Word\CreateWordReport.cs" />
<Compile Include="Word\GetData.cs" />
<Compile Include="Word\OperationFunc.cs" /> <Compile Include="Word\OperationFunc.cs" />
<Compile Include="Word\ReplaceText.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" />
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="template\参考报告.docx"> <None Include="template\参考报告.docx">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
<None Include="template\检测结果汇总表.xlsx" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Data\" /> <Folder Include="Data\" />
<Folder Include="Unit\" /> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\G.MES.Business\G.BaseInfo\G.Buss.BaseInfo.csproj">
<Project>{6accaa60-f15a-49ac-a2ad-af68102357ae}</Project>
<Name>G.Buss.BaseInfo</Name>
</ProjectReference>
<ProjectReference Include="..\G.MES.DataModel\1.G.MES.DataModel.csproj">
<Project>{F5C4B2FE-C9DC-4C3A-BC3F-0AF46F0B783D}</Project>
<Name>1.G.MES.DataModel</Name>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NPOI" publicKeyToken="0df73ec7942b34e1" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.4.1.0" newVersion="2.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="DocX" version="1.5.0" targetFramework="net46" /> <package id="DocX" version="1.5.0" targetFramework="net46" />
<package id="NPOI" version="2.4.1" targetFramework="net46" />
<package id="SharpZipLib" version="1.0.0" targetFramework="net46" />
<package id="Spire.Doc" version="7.12.21" targetFramework="net46" /> <package id="Spire.Doc" version="7.12.21" targetFramework="net46" />
</packages> </packages>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论