生成性能优化初版

parent 22e65d8d
...@@ -296,7 +296,7 @@ public ApiResponse PrejudgeLog([FromRoute] int allotId) ...@@ -296,7 +296,7 @@ public ApiResponse PrejudgeLog([FromRoute] int allotId)
var allot = allotService.GetAllot(allotId); var allot = allotService.GetAllot(allotId);
if (allot == null) if (allot == null)
return new ApiResponse(ResponseType.ParameterError, "AllotID错误"); return new ApiResponse(ResponseType.ParameterError, "AllotID错误");
var result=logService.GetLogDbug(allotId); var result = logService.GetLogDbug(allotId);
return new ApiResponse(ResponseType.OK, result); return new ApiResponse(ResponseType.OK, result);
} }
......
...@@ -2452,6 +2452,955 @@ ...@@ -2452,6 +2452,955 @@
是否可用 1 可用 2 不可用 是否可用 1 可用 2 不可用
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.dis_drugatc">
<summary>
dis_drugatc Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.ID">
<summary>
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.hospitalId">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.drugName">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.mechanism">
<summary>
药物化学物质
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.disease">
<summary>
病种
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drugatc.personTimes">
<summary>
人次
</summary>
</member>
<member name="T:Performance.EntityModels.dis_drug_tree">
<summary>
dis_drug_tree Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.disease">
<summary>
疾病
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.currentName">
<summary>
当前名称
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.personTimes">
<summary>
人次
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_tree.parentName">
<summary>
父级名称
</summary>
</member>
<member name="T:Performance.EntityModels.dis_drug_type">
<summary>
dis_drug_type Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.disease">
<summary>
疾病
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.drugType">
<summary>
药物分类(中、西、草)
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.personTimes">
<summary>
人次
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_type.fee">
<summary>
金额
</summary>
</member>
<member name="T:Performance.EntityModels.dis_drug_useinfo_fee">
<summary>
dis_drug_useinfo_fee Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.commonName">
<summary>
通用名
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.drugName">
<summary>
药品名
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.personTimes">
<summary>
人次
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.fee">
<summary>
费用
</summary>
</member>
<member name="P:Performance.EntityModels.dis_drug_useinfo_fee.disease">
<summary>
病种
</summary>
</member>
<member name="T:Performance.EntityModels.dis_ip_fee">
<summary>
dis_ip_fee Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.operationNum">
<summary>
手术量
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.allFee">
<summary>
总费用
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.hosBad">
<summary>
病床使用天数
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.disease">
<summary>
病种
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.fee">
<summary>
药费
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.personTimes">
<summary>
人次
</summary>
</member>
<member name="P:Performance.EntityModels.dis_ip_fee.personNum">
<summary>
人数
</summary>
</member>
<member name="T:Performance.EntityModels.dis_use_drugs">
<summary>
dis_use_drugs Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.disease">
<summary>
疾病
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.commonName">
<summary>
通名用
</summary>
</member>
<member name="P:Performance.EntityModels.dis_use_drugs.personTimes">
<summary>
人次
</summary>
</member>
<member name="T:Performance.EntityModels.drug_department_useinfo">
<summary>
drug_department_useinfo Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.ID">
<summary>
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.drugName">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.commonName">
<summary>
通用名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.drug_department_useinfo.personTimes">
<summary>
人次
</summary>
</member>
<member name="T:Performance.EntityModels.drug_dosage">
<summary>
drug_dosage Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.ID">
<summary>
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.drugName">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.commonName">
<summary>
通用名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.dosage">
<summary>
剂型
</summary>
</member>
<member name="P:Performance.EntityModels.drug_dosage.personTimes">
<summary>
人次
</summary>
</member>
<member name="T:Performance.EntityModels.drug_first_use">
<summary>
drug_first_use Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.commonName">
<summary>
通用名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.drugname">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_first_use.personTimes">
<summary>
人次
</summary>
</member>
<member name="T:Performance.EntityModels.drug_hosinfo">
<summary>
drug_hosinfo Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.ID">
<summary>
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.drugName">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.commonName">
<summary>
通用名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_hosinfo.personTimes">
<summary>
人次
</summary>
</member>
<member name="T:Performance.EntityModels.drug_p_info">
<summary>
drug_p_info Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.ID">
<summary>
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.drugName">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.commonName">
<summary>
通用名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.personTimes">
<summary>
人次
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.fee">
<summary>
费用
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.disease">
<summary>
病种
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.dis_person_times">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_info.dis_fee">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.drug_p_mi">
<summary>
drug_p_mi Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.ID">
<summary>
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.personTimes">
<summary>
人次
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.medicalInsurance">
<summary>
医保类型
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.drugName">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_mi.commonName">
<summary>
通用名
</summary>
</member>
<member name="T:Performance.EntityModels.drug_p_userinfo">
<summary>
drug_p_userinfo Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.ID">
<summary>
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.drugName">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.commonName">
<summary>
通用名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.sex">
<summary>
性别
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.age">
<summary>
年龄
</summary>
</member>
<member name="P:Performance.EntityModels.drug_p_userinfo.personTimes">
<summary>
人次
</summary>
</member>
<member name="T:Performance.EntityModels.drug_som">
<summary>
drug_som Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.ID">
<summary>
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.drugName">
<summary>
商品名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.commonName">
<summary>
通用名
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.personTimes">
<summary>
人次
</summary>
</member>
<member name="P:Performance.EntityModels.drug_som.fee">
<summary>
费用
</summary>
</member>
<member name="T:Performance.EntityModels.ex_item"> <member name="T:Performance.EntityModels.ex_item">
<summary> <summary>
...@@ -3117,6 +4066,362 @@ ...@@ -3117,6 +4066,362 @@
是否可用 1 可用 2 不可用 是否可用 1 可用 2 不可用
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.hos_department_coc">
<summary>
hos_department_coc Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_coc.fee">
<summary>
耗材金额
</summary>
</member>
<member name="T:Performance.EntityModels.hos_department_fee">
<summary>
hos_department_fee Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.hos_department_fee.fee">
<summary>
药品金额
</summary>
</member>
<member name="T:Performance.EntityModels.hos_disease_person">
<summary>
hos_disease_person Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.disease">
<summary>
病种
</summary>
</member>
<member name="P:Performance.EntityModels.hos_disease_person.persontimes">
<summary>
人次
</summary>
</member>
<member name="T:Performance.EntityModels.hos_drugatc">
<summary>
hos_drugatc Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.ID">
<summary>
ID
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.mechanism">
<summary>
药物化学物质
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drugatc.fee">
<summary>
金额
</summary>
</member>
<member name="T:Performance.EntityModels.hos_drug_fee">
<summary>
hos_drug_fee Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.drugName">
<summary>
药品名
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.fee">
<summary>
药品费用
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.commonName">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.personTimes">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_fee.drugtype">
<summary>
</summary>
</member>
<member name="T:Performance.EntityModels.hos_drug_type">
<summary>
hos_drug_type Entity Model
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.ID">
<summary>
主键
E:\code_git\performance\performance\Performance.EntityModels\Entity
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.province">
<summary>
省份
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.hospitalid">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.source">
<summary>
数据源(门诊/住院)
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.hosLevel">
<summary>
医院等级
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.hosType">
<summary>
医院性质
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.drugType">
<summary>
药品名
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.personTimes">
<summary>
人次
</summary>
</member>
<member name="P:Performance.EntityModels.hos_drug_type.fee">
<summary>
金额
</summary>
</member>
<member name="T:Performance.EntityModels.hos_personfee"> <member name="T:Performance.EntityModels.hos_personfee">
<summary> <summary>
......
...@@ -10,35 +10,6 @@ ...@@ -10,35 +10,6 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="T4Template\**" />
<EmbeddedResource Remove="T4Template\**" />
<None Remove="T4Template\**" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Entity\dis_drugatc.Generated.cs" />
<Compile Remove="Entity\dis_drug_tree.Generated.cs" />
<Compile Remove="Entity\dis_drug_type.Generated.cs" />
<Compile Remove="Entity\dis_drug_useinfo_fee.Generated.cs" />
<Compile Remove="Entity\dis_ip_fee.Generated.cs" />
<Compile Remove="Entity\dis_use_drugs.Generated.cs" />
<Compile Remove="Entity\drug_department_useinfo.Generated.cs" />
<Compile Remove="Entity\drug_dosage.Generated.cs" />
<Compile Remove="Entity\drug_first_use.Generated.cs" />
<Compile Remove="Entity\drug_hosinfo.Generated.cs" />
<Compile Remove="Entity\drug_p_info.Generated.cs" />
<Compile Remove="Entity\drug_p_mi.Generated.cs" />
<Compile Remove="Entity\drug_p_userinfo.Generated.cs" />
<Compile Remove="Entity\drug_som.Generated.cs" />
<Compile Remove="Entity\hos_department_coc.Generated.cs" />
<Compile Remove="Entity\hos_department_fee.Generated.cs" />
<Compile Remove="Entity\hos_disease_person.Generated.cs" />
<Compile Remove="Entity\hos_drugatc.Generated.cs" />
<Compile Remove="Entity\hos_drug_fee.Generated.cs" />
<Compile Remove="Entity\hos_drug_type.Generated.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0" />
</ItemGroup> </ItemGroup>
......
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapper" Version="1.60.1" /> <PackageReference Include="Dapper" Version="1.60.1" />
<PackageReference Include="Dapper.Contrib" Version="1.60.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.0" />
<PackageReference Include="MySql.Data" Version="8.0.15" /> <PackageReference Include="MySql.Data" Version="8.0.15" />
<PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.15" /> <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.15" />
......
using AutoMapper; using AutoMapper;
using Dapper;
using Dapper.Contrib.Extensions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using MySql.Data.MySqlClient;
using NPOI.HSSF.UserModel; using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel; using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel; using NPOI.XSSF.UserModel;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.DtoModels.AppSettings;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.Infrastructure; using Performance.Infrastructure;
using Performance.Repository; using Performance.Repository;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks;
namespace Performance.Services.AllotCompute namespace Performance.Services.AllotCompute
{ {
...@@ -20,47 +28,24 @@ namespace Performance.Services.AllotCompute ...@@ -20,47 +28,24 @@ namespace Performance.Services.AllotCompute
/// </summary> /// </summary>
public class ImportDataService : IAutoInjection public class ImportDataService : IAutoInjection
{ {
private PerSheetService perSheetService; private readonly IOptions<AppConnection> _options;
private PerforPersheetRepository perforPerSheetRepository; private readonly PerSheetService _perSheetService;
private PerforPerallotRepository perforPerallotRepository; private readonly PerforPerallotRepository _perforPerallotRepository;
private PerforImdataRepository perforImDataRepository; private readonly PerforPersheetRepository _perforPersheetRepository;
private PerforImheaderRepository perforImHeaderRepository; private readonly LogManageService _logManageService;
private PerforImemployeeRepository perforImEmployeeRepository;
private PerforImaccountbasicRepository perforImaccountbasicRepository;
private PerforImspecialunitRepository perforImspecialunitRepository;
private PerforImemployeeclinicRepository perforImemployeeclinicRepository;
private PerforImemployeelogisticsRepository perforImemployeelogisticsRepository;
//private PerforLogdbugRepository logdbug;
private readonly LogManageService logManageService;
private ILogger<ImportDataService> logger;
public ImportDataService(PerSheetService perSheetService, public ImportDataService(
PerforPersheetRepository perforPerSheetRepository, IOptions<AppConnection> options,
PerSheetService perSheetService,
PerforPerallotRepository perforPerallotRepository, PerforPerallotRepository perforPerallotRepository,
PerforImdataRepository perforImDataRepository, PerforPersheetRepository perforPersheetRepository,
PerforImheaderRepository perforImHeaderRepository, LogManageService logManageService)
PerforImemployeeRepository perforImEmployeeRepository, {
PerforImaccountbasicRepository perforImaccountbasicRepository, _options = options;
PerforImspecialunitRepository perforImspecialunitRepository, _perSheetService = perSheetService;
PerforImemployeeclinicRepository perforImemployeeclinicRepository, _perforPerallotRepository = perforPerallotRepository;
PerforImemployeelogisticsRepository perforImemployeelogisticsRepository, _perforPersheetRepository = perforPersheetRepository;
//PerforLogdbugRepository logdbug _logManageService = logManageService;
LogManageService logManageService,
ILogger<ImportDataService> logger)
{
this.perSheetService = perSheetService;
this.perforPerSheetRepository = perforPerSheetRepository;
this.perforPerallotRepository = perforPerallotRepository;
this.perforImDataRepository = perforImDataRepository;
this.perforImHeaderRepository = perforImHeaderRepository;
this.perforImEmployeeRepository = perforImEmployeeRepository;
this.perforImaccountbasicRepository = perforImaccountbasicRepository;
this.perforImspecialunitRepository = perforImspecialunitRepository;
this.perforImemployeeclinicRepository = perforImemployeeclinicRepository;
this.perforImemployeelogisticsRepository = perforImemployeelogisticsRepository;
//this.logdbug = logdbug;
this.logManageService = logManageService;
this.logger = logger;
} }
/// <summary> /// <summary>
...@@ -99,39 +84,103 @@ private PerExcel Import(per_allot allot) ...@@ -99,39 +84,103 @@ private PerExcel Import(per_allot allot)
? (IWorkbook)(new XSSFWorkbook(fs)) ? (IWorkbook)(new XSSFWorkbook(fs))
: (IWorkbook)(new HSSFWorkbook(fs)); : (IWorkbook)(new HSSFWorkbook(fs));
bool isnew = false; bool isnew = false;
var tasks = new List<Task>();
for (int i = 0; i < workbook.NumberOfSheets; i++) for (int i = 0; i < workbook.NumberOfSheets; i++)
{ {
var sheet = workbook.GetSheetAt(i); var sheet = workbook.GetSheetAt(i);
var sheetType = perSheetService.GetSheetType(sheet.SheetName); var sheetType = _perSheetService.GetSheetType(sheet.SheetName);
_logManageService.WriteMsg("准备读取文件", $"正在准备读取“{sheet.SheetName}”", 1, allot.ID, "ReceiveMessage", true);
try
{
tasks.Add(Task.Factory.StartNew(() =>
{
// 保留临床科室测算表全部结构,用作展示,不做其他用途 // 保留临床科室测算表全部结构,用作展示,不做其他用途
if (sheetType == SheetType.AccountBasic) if (sheetType == SheetType.AccountBasic)
{ {
var st = perSheetService.SheetAccountBasicSpecial(sheet, isnew); var st = _perSheetService.SheetAccountBasicSpecial(sheet, isnew);
excel.PerSheet.Add(st); excel.PerSheet.Add(st);
} }
if (SheetType.Unidentifiable != sheetType) if (SheetType.Unidentifiable != sheetType)
{ {
logManageService.WriteMsg("开始读取excel文件", $"开始读取sheet -- {sheet.SheetName}", 1, allot.ID, "ReceiveMessage", true); var st = _perSheetService.Sheet(sheet, isnew);
try
{
var st = perSheetService.Sheet(sheet, isnew);
excel.PerSheet.Add(st); excel.PerSheet.Add(st);
}
else
{
if (sheet.SheetName.Contains("开单医院"))
isnew = true;
}
}));
} }
catch (Exception ex) catch (Exception ex)
{ {
logManageService.WriteMsg("读取excel文件", ex.Message.ToString(), 4, allot.ID, "ReceiveMessage", true); _logManageService.WriteMsg("读取文件", ex.Message.ToString(), 4, allot.ID, "ReceiveMessage", true);
throw ex; throw ex;
} }
} }
else
_logManageService.WriteMsg("读取文件", $"文件读取中...当前操作需要一点时间,请耐心等待", 1, allot.ID, "ReceiveMessage", true);
Task.WaitAll(tasks.ToArray());
_logManageService.WriteMsg("读取文件", $"EXCEL文件基础数据读取完成!", 1, allot.ID, "ReceiveMessage", true);
return excel;
}
}
private bool Save(PerExcel excel, int allotId)
{ {
if (sheet.SheetName.Contains("开单医院")) var tasks = new List<Task>();
isnew = true; foreach (var sheet in excel.PerSheet)
{
_logManageService.WriteMsg("准备保存数据", $"正在准备保存数据“{sheet.SheetName}”", 1, allotId, "ReceiveMessage", true);
var allot = _perforPerallotRepository.GetEntity(t => t.ID == allotId);
var allotList = _perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId);
var sheets = _perforPersheetRepository.GetEntities(w => w.AllotID == allotId && w.SheetType.HasValue);
var task = Task.Factory.StartNew(() =>
{
if (sheet.SheetType == SheetType.Employee)
{
var imsheetid = SaveEmployee(sheet, allot, allotList);
SaveHeader(sheet, allot, imsheetid);
} }
else if (sheet.SheetType == SheetType.LogisticsEmployee)
{
var imsheetid = SaveLogisticsEmployee(sheet, allot, allotList);
SaveHeader(sheet, allot, imsheetid);
} }
logManageService.WriteMsg("开始读取excel文件", $"excel文件基础数据读取完成!", 1, allot.ID, "ReceiveMessage", true); else if (sheet.SheetType == SheetType.ClinicEmployee)
return excel; {
var imsheetid = SaveClinicEmployee(sheet, allot, allotList);
SaveHeader(sheet, allot, imsheetid);
} }
else if (sheet.SheetType == SheetType.AccountBasic)
{
var imsheetid = SaveAccountBasic(sheet, allot, sheets);
SaveHeader(sheet, allot, imsheetid);
}
else if (sheet.SheetType == SheetType.SpecialUnit)
{
var imsheetid = SaveSpecialUnit(sheet, allot);
SaveHeader(sheet, allot, imsheetid);
}
else
{
var imsheetid = SaveCommon(sheet, allot, sheets);
SaveHeader(sheet, allot, imsheetid);
}
});
tasks.Add(task);
}
_logManageService.WriteMsg("保存基础数据", $"基础数据保存中...当前操作需要一点时间,请耐心等待", 1, allotId, "ReceiveMessage", true);
Task.WaitAll(tasks.ToArray());
_logManageService.WriteMsg("保存基础数据", $"基础数据保存完成!", 1, allotId, "ReceiveMessage", true);
return true;
} }
/// <summary> /// <summary>
...@@ -140,21 +189,21 @@ private PerExcel Import(per_allot allot) ...@@ -140,21 +189,21 @@ private PerExcel Import(per_allot allot)
/// <param name="sheet"></param> /// <param name="sheet"></param>
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <returns></returns> /// <returns></returns>
private int SaveEmployee(PerSheet sheet, int allotId) public int SaveEmployee(PerSheet sheet, per_allot allot, List<per_allot> allotList)
{
using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{ {
var imsheet = new per_sheet { AllotID = allotId, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType }; var imsheet = new per_sheet { AllotID = allot.ID, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType };
perforPerSheetRepository.Add(imsheet); imsheet.ID = (int)connection.Insert(imsheet);
var dataList = sheet.PerData.Select(t => (PerDataEmployee)t); var dataList = sheet.PerData.Select(t => (PerDataEmployee)t);
//新上传名单中无人员名单,取到最后日期的数据 //新上传名单中无人员名单,取到最后日期的数据
if (dataList == null || dataList.Count() <= 0) if (dataList == null || dataList.Count() <= 0)
{ {
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId);
var allotList = perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId)
.OrderByDescending(t => t.Year).ThenByDescending(t => t.Month);
foreach (var item in allotList) foreach (var item in allotList)
{ {
var employeeList = perforImEmployeeRepository.GetEntities(t => t.AllotID == item.ID); var employeeList = connection.Query<im_employee>("select * from im_employee where AllotID = @allotid", new { AllotID = allot.ID });
if (employeeList != null && employeeList.Count > 0) if (employeeList != null && employeeList.Count() > 0)
{ {
dataList = Mapper.Map<List<PerDataEmployee>>(employeeList); dataList = Mapper.Map<List<PerDataEmployee>>(employeeList);
break; break;
...@@ -166,35 +215,67 @@ private int SaveEmployee(PerSheet sheet, int allotId) ...@@ -166,35 +215,67 @@ private int SaveEmployee(PerSheet sheet, int allotId)
{ {
var imdata = Mapper.Map<im_employee>(data); var imdata = Mapper.Map<im_employee>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
imdata.AllotID = allotId; imdata.AllotID = allot.ID;
//imdata.OtherPerfor = data.OthePerfor; //imdata.OtherPerfor = data.OthePerfor;
addList.Add(imdata); addList.Add(imdata);
} }
perforImEmployeeRepository.AddRange(addList.ToArray()); connection.Insert(addList.ToArray());
return imsheet.ID; return imsheet.ID;
} }
//var imsheet = new per_sheet { AllotID =allot.ID, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType };
//perforPerSheetRepository.Add(imsheet);
//var dataList = sheet.PerData.Select(t => (PerDataEmployee)t);
////新上传名单中无人员名单,取到最后日期的数据
//if (dataList == null || dataList.Count() <= 0)
//{
// var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId);
// var allotList = perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId)
// .OrderByDescending(t => t.Year).ThenByDescending(t => t.Month);
// foreach (var item in allotList)
// {
// var employeeList = perforImEmployeeRepository.GetEntities(t => t.AllotID == item.ID);
// if (employeeList != null && employeeList.Count > 0)
// {
// dataList = Mapper.Map<List<PerDataEmployee>>(employeeList);
// break;
// }
// }
//}
//List<im_employee> addList = new List<im_employee>();
//foreach (var data in dataList)
//{
// var imdata = Mapper.Map<im_employee>(data);
// imdata.SheetID = imsheet.ID;
// imdata. AllotID =allot.ID;
// //imdata.OtherPerfor = data.OthePerfor;
// addList.Add(imdata);
//}
//perforImEmployeeRepository.BulkInsert(addList.ToArray());
//return imsheet.ID;
}
/// <summary> /// <summary>
/// 保存临床人员 /// 保存临床人员
/// </summary> /// </summary>
/// <param name="sheet"></param> /// <param name="sheet"></param>
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <returns></returns> /// <returns></returns>
private int SaveClinicEmployee(PerSheet sheet, int allotId) public int SaveClinicEmployee(PerSheet sheet, per_allot allot, List<per_allot> allotList)
{ {
var imsheet = new per_sheet { AllotID = allotId, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType }; using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
perforPerSheetRepository.Add(imsheet); {
var imsheet = new per_sheet { AllotID = allot.ID, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType };
imsheet.ID = (int)connection.Insert(imsheet);
var dataList = sheet.PerData.Select(t => (PerDataClinicEmployee)t); var dataList = sheet.PerData.Select(t => (PerDataClinicEmployee)t);
//新上传名单中无人员名单,取到最后日期的数据 //新上传名单中无人员名单,取到最后日期的数据
if (dataList == null || dataList.Count() <= 0) if (dataList == null || dataList.Count() <= 0)
{ {
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId);
var allotList = perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId)
.OrderByDescending(t => t.Year).ThenByDescending(t => t.Month);
foreach (var item in allotList) foreach (var item in allotList)
{ {
var employeeList = perforImemployeeclinicRepository.GetEntities(t => t.AllotID == item.ID); var employeeList = connection.Query<im_employee_clinic>("select * from im_employee_clinic where AllotID = @allotid", new { AllotID = allot.ID });
if (employeeList != null && employeeList.Count > 0) if (employeeList != null && employeeList.Count() > 0)
{ {
dataList = Mapper.Map<List<PerDataClinicEmployee>>(employeeList); dataList = Mapper.Map<List<PerDataClinicEmployee>>(employeeList);
break; break;
...@@ -206,13 +287,14 @@ private int SaveClinicEmployee(PerSheet sheet, int allotId) ...@@ -206,13 +287,14 @@ private int SaveClinicEmployee(PerSheet sheet, int allotId)
{ {
var imdata = Mapper.Map<im_employee_clinic>(data); var imdata = Mapper.Map<im_employee_clinic>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
imdata.AllotID = allotId; imdata.AllotID = allot.ID;
imdata.OtherPerfor = data.OthePerfor; imdata.OtherPerfor = data.OthePerfor;
addList.Add(imdata); addList.Add(imdata);
} }
perforImemployeeclinicRepository.AddRange(addList.ToArray()); connection.Insert(addList);
return imsheet.ID; return imsheet.ID;
} }
}
/// <summary> /// <summary>
/// 保存临床人员 /// 保存临床人员
...@@ -220,21 +302,21 @@ private int SaveClinicEmployee(PerSheet sheet, int allotId) ...@@ -220,21 +302,21 @@ private int SaveClinicEmployee(PerSheet sheet, int allotId)
/// <param name="sheet"></param> /// <param name="sheet"></param>
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <returns></returns> /// <returns></returns>
private int SaveLogisticsEmployee(PerSheet sheet, int allotId) public int SaveLogisticsEmployee(PerSheet sheet, per_allot allot, List<per_allot> allotList)
{ {
var imsheet = new per_sheet { AllotID = allotId, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType }; using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
perforPerSheetRepository.Add(imsheet); {
var imsheet = new per_sheet { AllotID = allot.ID, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType };
imsheet.ID = (int)connection.Insert(imsheet);
var dataList = sheet.PerData.Select(t => (PerDataLogisticsEmployee)t); var dataList = sheet.PerData.Select(t => (PerDataLogisticsEmployee)t);
//新上传名单中无人员名单,取到最后日期的数据 //新上传名单中无人员名单,取到最后日期的数据
if (dataList == null || dataList.Count() <= 0) if (dataList == null || dataList.Count() <= 0)
{ {
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId); foreach (var item in allotList?.OrderByDescending(t => t.Year).ThenByDescending(t => t.Month))
var allotList = perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId)
.OrderByDescending(t => t.Year).ThenByDescending(t => t.Month);
foreach (var item in allotList)
{ {
var employeeList = perforImemployeelogisticsRepository.GetEntities(t => t.AllotID == item.ID); var employeeList = connection.Query<im_employee_logistics>("select * from im_employee_logistics where AllotID = @allotid", new { AllotID = allot.ID });
if (employeeList != null && employeeList.Count > 0) if (employeeList != null && employeeList.Count() > 0)
{ {
dataList = Mapper.Map<List<PerDataLogisticsEmployee>>(employeeList); dataList = Mapper.Map<List<PerDataLogisticsEmployee>>(employeeList);
break; break;
...@@ -246,13 +328,14 @@ private int SaveLogisticsEmployee(PerSheet sheet, int allotId) ...@@ -246,13 +328,14 @@ private int SaveLogisticsEmployee(PerSheet sheet, int allotId)
{ {
var imdata = Mapper.Map<im_employee_logistics>(data); var imdata = Mapper.Map<im_employee_logistics>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
imdata.AllotID = allotId; imdata.AllotID = allot.ID;
imdata.OtherPerfor = data.OthePerfor; imdata.OtherPerfor = data.OthePerfor;
addList.Add(imdata); addList.Add(imdata);
} }
perforImemployeelogisticsRepository.AddRange(addList.ToArray()); connection.Insert(addList);
return imsheet.ID; return imsheet.ID;
} }
}
/// <summary> /// <summary>
/// 保存科室绩效基础表 /// 保存科室绩效基础表
...@@ -260,22 +343,23 @@ private int SaveLogisticsEmployee(PerSheet sheet, int allotId) ...@@ -260,22 +343,23 @@ private int SaveLogisticsEmployee(PerSheet sheet, int allotId)
/// <param name="sheet"></param> /// <param name="sheet"></param>
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <returns></returns> /// <returns></returns>
private int SaveAccountBasic(PerSheet sheet, int allotId) public int SaveAccountBasic(PerSheet sheet, per_allot allot, List<per_sheet> sheets)
{
using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{ {
//var imsheet = new per_sheet { AllotID = allotId, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType }; //var imsheet = new per_sheet { AllotID =allot.ID, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType };
//perforPerSheetRepository.Add(imsheet); //perforPerSheetRepository.Add(imsheet);
List<int> types = new List<int> { (int)SheetType.AccountBasicSpecial, (int)SheetType.AccountBasic }; List<int> types = new List<int> { (int)SheetType.AccountBasicSpecial, (int)SheetType.AccountBasic };
var sheets = perforPerSheetRepository.GetEntities(w => w.AllotID == allotId && w.SheetType.HasValue && types.Contains(w.SheetType.Value)); var imsheet = sheets?.FirstOrDefault(w => w.AllotID == allot.ID && w.SheetType.HasValue && types.Contains(w.SheetType.Value));
var imsheet = sheets?.FirstOrDefault();
if (imsheet != null) if (imsheet != null)
{ {
imsheet.SheetType = (int)SheetType.AccountBasic; imsheet.SheetType = (int)SheetType.AccountBasic;
perforPerSheetRepository.Update(imsheet); connection.Update(imsheet);
} }
else else
{ {
imsheet = new per_sheet { AllotID = allotId, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType }; imsheet = new per_sheet { AllotID = allot.ID, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType };
perforPerSheetRepository.Add(imsheet); imsheet.ID = (int)connection.Insert(imsheet);
} }
var dataList = sheet.PerData.Select(t => (PerDataAccountBaisc)t); var dataList = sheet.PerData.Select(t => (PerDataAccountBaisc)t);
...@@ -284,12 +368,13 @@ private int SaveAccountBasic(PerSheet sheet, int allotId) ...@@ -284,12 +368,13 @@ private int SaveAccountBasic(PerSheet sheet, int allotId)
{ {
var imdata = Mapper.Map<im_accountbasic>(data); var imdata = Mapper.Map<im_accountbasic>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
imdata.AllotID = allotId; imdata.AllotID = allot.ID;
addList.Add(imdata); addList.Add(imdata);
} }
perforImaccountbasicRepository.AddRange(addList.ToArray()); connection.Insert(addList.ToArray());
return imsheet.ID; return imsheet.ID;
} }
}
/// <summary> /// <summary>
/// 保存特殊科室 /// 保存特殊科室
...@@ -297,10 +382,12 @@ private int SaveAccountBasic(PerSheet sheet, int allotId) ...@@ -297,10 +382,12 @@ private int SaveAccountBasic(PerSheet sheet, int allotId)
/// <param name="sheet"></param> /// <param name="sheet"></param>
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <returns></returns> /// <returns></returns>
private int SaveSpecialUnit(PerSheet sheet, int allotId) public int SaveSpecialUnit(PerSheet sheet, per_allot allot)
{ {
var imsheet = new per_sheet { AllotID = allotId, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType }; using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
perforPerSheetRepository.Add(imsheet); {
var imsheet = new per_sheet { AllotID = allot.ID, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType };
imsheet.ID = (int)connection.Insert(imsheet);
var dataList = sheet.PerData.Select(t => (PerDataSpecialUnit)t); var dataList = sheet.PerData.Select(t => (PerDataSpecialUnit)t);
List<im_specialunit> addList = new List<im_specialunit>(); List<im_specialunit> addList = new List<im_specialunit>();
...@@ -308,12 +395,13 @@ private int SaveSpecialUnit(PerSheet sheet, int allotId) ...@@ -308,12 +395,13 @@ private int SaveSpecialUnit(PerSheet sheet, int allotId)
{ {
var imdata = Mapper.Map<im_specialunit>(data); var imdata = Mapper.Map<im_specialunit>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
imdata.AllotID = allotId; imdata.AllotID = allot.ID;
addList.Add(imdata); addList.Add(imdata);
} }
perforImspecialunitRepository.AddRange(addList.ToArray()); connection.Insert(addList.ToArray());
return imsheet.ID; return imsheet.ID;
} }
}
/// <summary> /// <summary>
/// 保存通用格式 /// 保存通用格式
...@@ -321,24 +409,25 @@ private int SaveSpecialUnit(PerSheet sheet, int allotId) ...@@ -321,24 +409,25 @@ private int SaveSpecialUnit(PerSheet sheet, int allotId)
/// <param name="sheet"></param> /// <param name="sheet"></param>
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <returns></returns> /// <returns></returns>
private int SaveCommon(PerSheet sheet, int allotId) public int SaveCommon(PerSheet sheet, per_allot allot, List<per_sheet> sheets)
{
using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{ {
per_sheet imsheet = null; per_sheet imsheet = null;
List<int> types = new List<int> { (int)SheetType.AccountBasicSpecial, (int)SheetType.AccountBasic }; List<int> types = new List<int> { (int)SheetType.AccountBasicSpecial, (int)SheetType.AccountBasic };
if (types.Any(type => type == (int)sheet.SheetType)) if (types.Any(type => type == (int)sheet.SheetType))
{ {
var sheets = perforPerSheetRepository.GetEntities(w => w.AllotID == allotId && w.SheetType.HasValue && types.Contains(w.SheetType.Value)); imsheet = sheets?.FirstOrDefault(w => w.AllotID == allot.ID && w.SheetType.HasValue && types.Contains(w.SheetType.Value));
imsheet = sheets?.FirstOrDefault();
if (imsheet != null) if (imsheet != null)
{ {
imsheet.SheetType = (int)SheetType.AccountBasic; imsheet.SheetType = (int)SheetType.AccountBasic;
perforPerSheetRepository.Update(imsheet); connection.Update(imsheet);
} }
} }
if (imsheet == null) if (imsheet == null)
{ {
imsheet = new per_sheet { AllotID = allotId, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType }; imsheet = new per_sheet { AllotID = allot.ID, SheetName = sheet.SheetName, Source = 1, SheetType = (int)sheet.SheetType };
perforPerSheetRepository.Add(imsheet); imsheet.ID = (int)connection.Insert(imsheet);
} }
...@@ -348,7 +437,7 @@ private int SaveCommon(PerSheet sheet, int allotId) ...@@ -348,7 +437,7 @@ private int SaveCommon(PerSheet sheet, int allotId)
{ {
var imdata = Mapper.Map<im_data>(data); var imdata = Mapper.Map<im_data>(data);
imdata.SheetID = imsheet.ID; imdata.SheetID = imsheet.ID;
imdata.AllotID = allotId; imdata.AllotID = allot.ID;
addDataList.Add(imdata); addDataList.Add(imdata);
} }
if (addDataList != null && addDataList.Any()) if (addDataList != null && addDataList.Any())
...@@ -356,21 +445,25 @@ private int SaveCommon(PerSheet sheet, int allotId) ...@@ -356,21 +445,25 @@ private int SaveCommon(PerSheet sheet, int allotId)
int rows = 500; int rows = 500;
for (int i = 0; i < Math.Ceiling((double)addDataList.Count / rows); i++) for (int i = 0; i < Math.Ceiling((double)addDataList.Count / rows); i++)
{ {
perforImDataRepository.AddRange(addDataList.Skip(rows * i).Take(rows).ToArray()); connection.Insert(addDataList.Skip(rows * i).Take(rows).ToArray());
} }
} }
return imsheet.ID; return imsheet.ID;
} }
}
private void SaveHeader(PerSheet sheet, int allotId, int imsheetid) public void SaveHeader(PerSheet sheet, per_allot allot, int imsheetid)
{
using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{ {
List<im_header> addHeadList = new List<im_header>(); List<im_header> addHeadList = new List<im_header>();
foreach (var header in sheet.PerHeader) foreach (var header in sheet.PerHeader)
{ {
var imheader = Mapper.Map<im_header>(header); var imheader = Mapper.Map<im_header>(header);
imheader.SheetID = imsheetid; imheader.SheetID = imsheetid;
imheader.AllotID = allotId; imheader.AllotID = allot.ID;
perforImHeaderRepository.Add(imheader); imheader.ID = (int)connection.Insert(imheader);
if (header.IsHasChildren) if (header.IsHasChildren)
{ {
foreach (var child in header.Children) foreach (var child in header.Children)
...@@ -378,53 +471,15 @@ private void SaveHeader(PerSheet sheet, int allotId, int imsheetid) ...@@ -378,53 +471,15 @@ private void SaveHeader(PerSheet sheet, int allotId, int imsheetid)
var imheaderChild = Mapper.Map<im_header>(child); var imheaderChild = Mapper.Map<im_header>(child);
imheaderChild.SheetID = imsheetid; imheaderChild.SheetID = imsheetid;
imheaderChild.ParentID = imheader.ID; imheaderChild.ParentID = imheader.ID;
imheaderChild.AllotID = allotId; imheaderChild.AllotID = allot.ID;
addHeadList.Add(imheaderChild); addHeadList.Add(imheaderChild);
} }
} }
} }
if (addHeadList != null && addHeadList.Any()) if (addHeadList != null && addHeadList.Any())
perforImHeaderRepository.AddRange(addHeadList.ToArray()); connection.Insert(addHeadList);
} }
private bool Save(PerExcel excel, int allotId)
{
foreach (var sheet in excel.PerSheet)
{
logManageService.WriteMsg("保存基础数据", $"开始保存数据 -- {sheet.SheetName}", 1, allotId, "ReceiveMessage", true);
if (sheet.SheetType == SheetType.Employee)
{
var imsheetid = SaveEmployee(sheet, allotId);
SaveHeader(sheet, allotId, imsheetid);
}
else if (sheet.SheetType == SheetType.LogisticsEmployee)
{
var imsheetid = SaveLogisticsEmployee(sheet, allotId);
SaveHeader(sheet, allotId, imsheetid);
}
else if (sheet.SheetType == SheetType.ClinicEmployee)
{
var imsheetid = SaveClinicEmployee(sheet, allotId);
SaveHeader(sheet, allotId, imsheetid);
}
else if (sheet.SheetType == SheetType.AccountBasic)
{
var imsheetid = SaveAccountBasic(sheet, allotId);
SaveHeader(sheet, allotId, imsheetid);
}
else if (sheet.SheetType == SheetType.SpecialUnit)
{
var imsheetid = SaveSpecialUnit(sheet, allotId);
SaveHeader(sheet, allotId, imsheetid);
}
else
{
var imsheetid = SaveCommon(sheet, allotId);
SaveHeader(sheet, allotId, imsheetid);
}
}
logManageService.WriteMsg("保存基础数据", $"基础数据保存完成!", 1, allotId, "ReceiveMessage", true);
return true;
} }
} }
} }
...@@ -464,7 +464,6 @@ public void Generate(per_allot allot) ...@@ -464,7 +464,6 @@ public void Generate(per_allot allot)
catch (Exception ex) catch (Exception ex)
{ {
logManageService.WriteMsg("绩效生成失败", ex.Message, 4, allot.ID, "ReceiveMessage"); logManageService.WriteMsg("绩效生成失败", ex.Message, 4, allot.ID, "ReceiveMessage");
logdbug.Add(allot.ID, "绩效生成失败", ex.ToString(), 4, 1);
UpdateAllotStates(allot.ID, (int)AllotStates.GenerateFail, EnumHelper.GetDescription(AllotStates.GenerateFail)); UpdateAllotStates(allot.ID, (int)AllotStates.GenerateFail, EnumHelper.GetDescription(AllotStates.GenerateFail));
//SendEmail(allot, mail, 2, time); //SendEmail(allot, mail, 2, time);
//throw ex; //throw ex;
......
...@@ -1207,8 +1207,8 @@ public void NewCopy(CopyRequest request) ...@@ -1207,8 +1207,8 @@ public void NewCopy(CopyRequest request)
/// <param name="allotId"></param> /// <param name="allotId"></param>
public void Clear(int allotId) public void Clear(int allotId)
{ {
var count = _directorRepository.DeleteData(allotId); _directorRepository.DeleteData(allotId);
logManageService.WriteMsg("清理无效数据", $"清理无效数据,受影响行数:{count}", 1, allotId, "ReceiveMessage", true); logManageService.WriteMsg("清理无效数据", $"清理无效数据", 1, allotId, "ReceiveMessage", true);
} }
/// <summary> /// <summary>
...@@ -1217,8 +1217,7 @@ public void Clear(int allotId) ...@@ -1217,8 +1217,7 @@ public void Clear(int allotId)
/// <param name="allotId"></param> /// <param name="allotId"></param>
public void ClearAllotData(int allotId) public void ClearAllotData(int allotId)
{ {
var count = _directorRepository.DeleteAllotData(allotId); _directorRepository.DeleteAllotData(allotId);
logManageService.WriteMsg("清理无效数据", $"清理无效数据,受影响行数:{count}", 1, allotId, "ReceiveMessage", true);
} }
/// <summary> /// <summary>
...@@ -1803,7 +1802,7 @@ public HandsonTable QueryHandsCustom(CustomPagingRequest request) ...@@ -1803,7 +1802,7 @@ public HandsonTable QueryHandsCustom(CustomPagingRequest request)
var result = new HandsonTable((int)SheetType.Unidentifiable, new string[] { }, new List<collect_permission>()); var result = new HandsonTable((int)SheetType.Unidentifiable, new string[] { }, new List<collect_permission>());
var jsonData = JsonHelper.Serialize(perforReport.QueryCustom(request,true).DataList); var jsonData = JsonHelper.Serialize(perforReport.QueryCustom(request, true).DataList);
var data = JsonHelper.Deserialize<List<Dictionary<string, string>>>(jsonData); var data = JsonHelper.Deserialize<List<Dictionary<string, string>>>(jsonData);
var headDic = new List<Dictionary<string, object>>(); var headDic = new List<Dictionary<string, object>>();
...@@ -1873,7 +1872,7 @@ public ApiResponse SaveCustomTable(SaveCustomData request) ...@@ -1873,7 +1872,7 @@ public ApiResponse SaveCustomTable(SaveCustomData request)
var custom = perforReport.QueryCustomColumn(request.TableName); var custom = perforReport.QueryCustomColumn(request.TableName);
if(custom.Count>50) if (custom.Count > 50)
return new ApiResponse(ResponseType.ParameterError, "最多支持50列数据!"); return new ApiResponse(ResponseType.ParameterError, "最多支持50列数据!");
var dicCustom = new Dictionary<string, object>(); var dicCustom = new Dictionary<string, object>();
...@@ -1900,11 +1899,11 @@ public ApiResponse SaveCustomTable(SaveCustomData request) ...@@ -1900,11 +1899,11 @@ public ApiResponse SaveCustomTable(SaveCustomData request)
{ {
var type = ((IDictionary<string, object>)typeColumn.ElementAt(i)).Values.ElementAt(0).ToString(); var type = ((IDictionary<string, object>)typeColumn.ElementAt(i)).Values.ElementAt(0).ToString();
var itemDic = item.FirstOrDefault(t => t.Key.ToUpper() == type.ToUpper()); var itemDic = item.FirstOrDefault(t => t.Key.ToUpper() == type.ToUpper());
var value=((IDictionary<string, object>)typeColumn.ElementAt(i)).Values.ElementAt(1).ToString(); var value = ((IDictionary<string, object>)typeColumn.ElementAt(i)).Values.ElementAt(1).ToString();
if (string.IsNullOrEmpty(itemDic.Value.ToString()) && value.Contains("date")) if (string.IsNullOrEmpty(itemDic.Value.ToString()) && value.Contains("date"))
item.AddOrUpdate(itemDic.Key,null); item.AddOrUpdate(itemDic.Key, null);
else if(!string.IsNullOrEmpty(itemDic.Value.ToString()) && value.Contains("date")) else if (!string.IsNullOrEmpty(itemDic.Value.ToString()) && value.Contains("date"))
{ {
try try
{ {
...@@ -1941,7 +1940,7 @@ public ApiResponse QueryCustom(CustomPagingRequest request) ...@@ -1941,7 +1940,7 @@ public ApiResponse QueryCustom(CustomPagingRequest request)
var isExist = perforReport.QueryIsAllotId(request.TableName); var isExist = perforReport.QueryIsAllotId(request.TableName);
if (isExist == false || heads == null) if (isExist == false || heads == null)
return new ApiResponse(ResponseType.ParameterError, "表不符合规范,请补全注释或修改重复注释"); return new ApiResponse(ResponseType.ParameterError, "表不符合规范,请补全注释或修改重复注释");
if(heads.Count>50) if (heads.Count > 50)
return new ApiResponse(ResponseType.ParameterError, "最多支持50列数据"); return new ApiResponse(ResponseType.ParameterError, "最多支持50列数据");
var headList = new List<Heads>(); var headList = new List<Heads>();
...@@ -1961,7 +1960,7 @@ public ApiResponse QueryCustom(CustomPagingRequest request) ...@@ -1961,7 +1960,7 @@ public ApiResponse QueryCustom(CustomPagingRequest request)
return new ApiResponse(ResponseType.ParameterError, "表不符合规范,请补全注释或修改重复注释"); return new ApiResponse(ResponseType.ParameterError, "表不符合规范,请补全注释或修改重复注释");
result.Heads = headList; result.Heads = headList;
result.Datas = perforReport.QueryCustom(request,false); result.Datas = perforReport.QueryCustom(request, false);
return new ApiResponse(ResponseType.OK, result); return new ApiResponse(ResponseType.OK, result);
} }
......
using Microsoft.AspNetCore.SignalR; using Dapper;
using Dapper.Contrib.Extensions;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using MySql.Data.MySqlClient;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.DtoModels.AppSettings; using Performance.DtoModels.AppSettings;
using Performance.EntityModels; using Performance.EntityModels;
...@@ -8,6 +11,8 @@ ...@@ -8,6 +11,8 @@
using Performance.Repository; using Performance.Repository;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Performance.Services namespace Performance.Services
...@@ -16,19 +21,19 @@ public class LogManageService : IAutoInjection ...@@ -16,19 +21,19 @@ public class LogManageService : IAutoInjection
{ {
private readonly ILogger<LogManageService> logger; private readonly ILogger<LogManageService> logger;
private readonly IHubContext<AllotLogHub> hubContext; private readonly IHubContext<AllotLogHub> hubContext;
private readonly IOptions<AppConnection> _options;
private readonly WebapiUrl url; private readonly WebapiUrl url;
private PerforLogdbugRepository logdbug;
public LogManageService( public LogManageService(
ILogger<LogManageService> logger, ILogger<LogManageService> logger,
IHubContext<AllotLogHub> hubContext, IHubContext<AllotLogHub> hubContext,
IOptions<WebapiUrl> url, IOptions<WebapiUrl> url,
PerforLogdbugRepository logdbug) IOptions<AppConnection> options)
{ {
this.logger = logger; this.logger = logger;
this.hubContext = hubContext; this.hubContext = hubContext;
_options = options;
this.url = url.Value; this.url = url.Value;
this.logdbug = logdbug;
} }
/// <summary> /// <summary>
...@@ -45,7 +50,15 @@ public void WriteMsg(string tag, string message, int level, int allotId, string ...@@ -45,7 +50,15 @@ public void WriteMsg(string tag, string message, int level, int allotId, string
hubContext.Clients.Group(allotId.ToString()).SendAsync(method, tag, message, level); hubContext.Clients.Group(allotId.ToString()).SendAsync(method, tag, message, level);
if (isDebug) if (isDebug)
{ {
logdbug.Add(allotId, tag, message, level, 1); Insert(allotId, tag, message, level, 1);
}
}
private void Insert(int allotId, string tag, string message, int level, int type)
{
using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{
connection.Insert<log_dbug>(new log_dbug { AllotID = allotId, CreateTime = DateTime.Now, Title = tag, Message = message, Level = level, Type = type });
} }
} }
...@@ -103,7 +116,7 @@ public void ReturnTheLog(int allotId, string groupName, int type, string tag, ob ...@@ -103,7 +116,7 @@ public void ReturnTheLog(int allotId, string groupName, int type, string tag, ob
if (isSingle) hubContext.Clients.Group(groupName).SendAsync("Schedule", ratio, level); if (isSingle) hubContext.Clients.Group(groupName).SendAsync("Schedule", ratio, level);
} }
logdbug.Add(allotId, tag, content, level, type); Insert(allotId, tag, content, level, type);
if (!isSingle) if (!isSingle)
{ {
var http = new RestSharpHelper(); var http = new RestSharpHelper();
...@@ -128,15 +141,22 @@ public void ReturnTheLog(int allotId, string groupName, int type, string tag, ob ...@@ -128,15 +141,22 @@ public void ReturnTheLog(int allotId, string groupName, int type, string tag, ob
} }
} }
public bool ClearExtractLog(int allotId) public int ClearExtractLog(int allotId)
{ {
return logdbug.ClearExtractLog(allotId); using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{
return connection.Execute("delete from log_dbug where AllotID = @allotId and Type in @type", new { allotId, type = new int[] { 2, 3 } });
}
} }
//todo:log信息展示 //todo:log信息展示
public List<log_dbug> GetLogDbug(int allotId) public List<log_dbug> GetLogDbug(int allotId)
{ {
return logdbug.GetEntities(t => t.AllotID == allotId && t.Type==2); using (IDbConnection connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{
var logs = connection.Query<log_dbug>("select * from log_dbug where AllotID = @allotId and Type = @type", new { allotId, type = 2 });
return logs == null || logs.Count() == 0 ? new List<log_dbug>() : logs.ToList();
}
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment