From 893df17b4ad9e9329f1e55dd570eb6e6f8010857 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Fri, 6 Jun 2025 14:14:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E7=AE=80=E5=8C=96?= =?UTF-8?q?=E5=BC=95=E7=94=A8usinf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lib/Tiobon.Core.Base.dll | Bin 179200 -> 179200 bytes Lib/Tiobon.Core.Base.xml | 34 ++ Lib/Tiobon.Core.Model.Entity.dll | Bin 33792 -> 40960 bytes Lib/Tiobon.Core.Model.Entity.xml | 35 ++ .../Controllers/Ghre/Ghre_PlanController.cs | 4 +- Tiobon.Core.Api/GlobalUsings.cs | 1 + Tiobon.Core.Common/Attribute/QueryFilter.cs | 165 -------- Tiobon.Core.DataAccess/ReportHelper.cs | 1 + .../Tiobon.Core.DataAccess.csproj | 6 + .../Ghra/IGhra_GradeServices.cs | 8 + .../Ghra/IGhra_StaffGroupDetailServices.cs | 13 +- .../Ghra/IGhra_TitleServices.cs | 4 +- .../Ghre/IGhre_AttachmentServices.cs | 4 +- .../IGhre_CertificateDesignItemServices.cs | 4 +- .../Ghre/IGhre_CertificateRuleServices.cs | 4 +- .../Ghre/IGhre_CertificateServices.cs | 4 +- .../Ghre/IGhre_CourseServices.cs | 5 +- .../Ghre/IGhre_CreditPointServices.cs | 4 +- .../Ghre/IGhre_ExamPaperServices.cs | 6 +- .../Ghre/IGhre_ExamRecordServices.cs | 5 +- .../Ghre/IGhre_ExamServices.cs | 4 +- .../Ghre/IGhre_OpenClassServices.cs | 5 +- .../Ghre/IGhre_PlanServices.cs | 4 +- .../Ghre/IGhre_RequestServices.cs | 5 +- .../Ghre/IGhre_StaffGroupServices.cs | 5 +- .../Ghre/IGhre_StudyRecordServices.cs | 6 +- .../Ghre/IGhre_SurveyQuestionPoolServices.cs | 4 +- .../Ghre/IGhre_SurveyServices.cs | 5 +- .../Ghre/IGhre_TitleSkill_BoltoneServices.cs | 6 +- .../Ghre/IGhre_UshioPlanServices.cs | 4 +- .../Ghrh/IGhrh_HumanRequestServices.cs | 4 +- .../Ghrh/IGhrh_ResumeServices.cs | 12 +- .../Ghrh/IGhrh_ResumeTemplateServices.cs | 5 +- .../Ghrp/IGhrp_PerformanceItemServices.cs | 4 +- .../Ghrp/IGhrp_PerformancePeriodServices.cs | 15 +- .../IGhrp_PerformancePeriodTypeServices.cs | 15 +- .../Ghrp/IGhrp_PerformanceTemplateServices.cs | 13 +- .../Ghrs/IGhrs_DataBelongServices.cs | 4 +- Tiobon.Core.IServices/GlobalUsings.cs | 1 + Tiobon.Core.IServices/ICommonServices.cs | 1 - Tiobon.Core.IServices/IGhra_GradeServices.cs | 8 - Tiobon.Core.IServices/IModuleServices.cs | 6 +- Tiobon.Core.IServices/IOperateLogServices.cs | 5 +- Tiobon.Core.IServices/IReportServices.cs | 4 +- .../IRoleModulePermissionServices.cs | 4 +- .../Ghrp/Ghrp_PerformanceItem.Dto.Base.cs | 372 +++++++++-------- .../Ghrp/Ghrp_PerformancePeriod.Dto.Base.cs | 374 +++++++++--------- .../Ghrp_PerformancePeriodType.Dto.Base.cs | 274 +++++++------ .../Ghrp/Ghrp_PerformanceTemplate.Dto.Base.cs | 332 ++++++++-------- .../Ghra/Ghra_StaffGroupDetailServices.cs | 28 +- .../Ghrp/Ghrp_PerformanceItemServices.cs | 92 ++--- .../Ghrp/Ghrp_PerformancePeriodServices.cs | 158 ++++---- .../Ghrp_PerformancePeriodTypeServices.cs | 113 +++--- .../Ghrp/Ghrp_PerformanceTemplateServices.cs | 95 ++--- Tiobon.Core/Tiobon.Core.xml | 86 ++-- 55 files changed, 1083 insertions(+), 1297 deletions(-) delete mode 100644 Tiobon.Core.Common/Attribute/QueryFilter.cs create mode 100644 Tiobon.Core.IServices/Ghra/IGhra_GradeServices.cs delete mode 100644 Tiobon.Core.IServices/IGhra_GradeServices.cs diff --git a/Lib/Tiobon.Core.Base.dll b/Lib/Tiobon.Core.Base.dll index f6cbd11878cd4b073b150a3822d8431e44cd42eb..8d7b349cf60fc4ff310872d7a7418615b93d1091 100644 GIT binary patch delta 426 zcmZqp!PW4CYeEN$O`hqw#-6P`jCWXUlo&V^?ewJ>EIA{Dg%~>2ma3>R2#IS5%Q5_5 zHBeAuXk@d~S7M0L1CfP5wj6_rFi6}`*G_->5>`etHYJ7xpb66-urjI$sWJ3Og7hXS z1ZyfWoK*mdi?K1TU{spEpN-L%SB)V`NkdqTAyg4aPM2h7>}OYEs1OC3J$*ep<58eY zK2Y9_p+dD-g^fW+kx@}?dpieXe#3OGPDTY5W&68I+od`g`_2k16q&dx&Ct-PiDmv5 z{=HK^EZ-5vZnFLU z45nTwmbXvT-%Kyq%oHGS`^Ag=)AQWj=a=;w`2}S^n|@(4QnJG8llNC4&WnF+&=IIYSDNG-WViFkwgpvdtOHfTS@{ jWg0^&P$fuD8jx=RRAUBIVa8wy6ftKo*n6-|tX ziUQR;nSNE7&ocL7_NltHV%xp8Fg;`OO<^!+NM$f%Fk~=hNMlH0umI8~3`q=$49N@z tK+*`vwgAee0>v$WA{Gpm45mQR94KQ9RBsA|MnH9DK=HKgwL6)bnE(uce3$?L diff --git a/Lib/Tiobon.Core.Base.xml b/Lib/Tiobon.Core.Base.xml index 517447ce..402d171c 100644 --- a/Lib/Tiobon.Core.Base.xml +++ b/Lib/Tiobon.Core.Base.xml @@ -216,6 +216,33 @@ + + + 缓存 + + + + + + + + + + + + + + + + + + + + + + 语言ID + + 根据ID查询实体数据是否存在 @@ -223,6 +250,13 @@ + + + + + + + 根据ID查询一条数据 diff --git a/Lib/Tiobon.Core.Model.Entity.dll b/Lib/Tiobon.Core.Model.Entity.dll index b907818ce4855e5a471015f73ac408ca6fcdbd74..01594ff104db349ce058c867e9cb7775ff4d58b1 100644 GIT binary patch literal 40960 zcmeIb33wD$`aS$sC4{hrux|l6fPxBt`NI3W1vO|;FS{T4i>&kWSLq2x86dnO=t03=!4Q0EUJrbu7f`PA^>9CR%LUiJ%w%N3UW230O3H&k=ss77`d}N??${zz!D}BrwqNfk6VJlQT$$`D1#DblnpH zY<^IZ1V(3PkffEwjuVt5LCG%8Ac4`<86+^eIfDcSdNZhlB(3ruEqP~v_L->AVC%Vok0R)fHO#740Hy`HGVCQ z%$zN{ykC2`QeD!o&GSIDNZXhUa!Zn+s=>}6fic7xBrpn`K>}l_Ge~}KYu5_>T69#` zEn1aPt;8ClrP~@Z42pXmNm_RdcL5TtF60an7=_Ltfic1vBrrxgg9OGXXOO_y%^4*7 z`UAEoX=~o@E>4oxywNT|f||xSg9OGN&LDxYr!z=k?Bxs+7-OA50%M#rNMIB>g9OIj z&LDv?-Wen?COCrx#zbe3z?kF=5*U-6K>`CACKx3W82dPb1jbZnkieMc3=$aAok0R) zUuTfOnBfc(82dSc1jhc(Ac1j!Ge}?@=nN7VVP}xQD0T)3jG4|LficS&Brr;xK>`EE zSxZT5*SB0g9OG(XOO@++8HD;j&TMFj8)Dcfe~>A35=*SNMNjX1__K( zXOO@sa|Q{Fm@`OVtZ@bjjJ3`nfw9gRBrwXIK?37gXOO^H?+g+c70w`mvB4Q6Fe;rv z0;9?qBrvL-K?37AXOO_CaRv#DT4#{JsB;DhjCyB~z}V;v5*VADL6WvNZgv3@lx%PY zNm|L{U4R57PjChaj1!$f0%MCaNMQWT86+@Hat2A-+Tt!if|8BSAc1kRGe}^Z;tUcP zKX(QRj8mOK0^>AikigjL43f0=obCc7X@N6bfCN>X=?oGWXE}oe#xI;f0^@9FkYE-t zNoN~cp{P;3=$Yk&LDwtjWbAKTFNMPLT3=$Z(ID;guD{plH5|q5n86+@%?FyIb z#vRTef$kifXp86+_7at29Sd+v4t5|q5h86+_7bp{EH`<%kidA#86+^Cb_PjW1D|mL5|n(_86+^Ca|Q{F z=bb?UMh;BHw}L-Z}XszBfTs-arjMn8nZUbsDWy`v3p+v0CrUy-1- z-#UW?#&^yjf$?u=kW|)=^d$%D8>VjqstWY2Z&e6yd$x~dRSiyyxt8gAt!27`ww4Xk z_Ul-XV7{P>3=)iUAq*DxYbRh;TeP4JxfW@w8(kkvsYpR%AH3Y4$9SzzwCoj8d z3`kDZ9>A=svDnIhcd9CC<=IuJFvrj9G-gj-K4;8ccmtiebpA}wJ_+rP^=+J7G`?uk z_(>C{L*TR03gGF7iH!W2$d`EUi&l(WT31tExwckI+d5<#U(ME5Z9% z=znEH&#b6g4XrP1k9YXcYr1rSFW-8T1cwOrdBMRY*b3+UtS&X9O@QX zr42-j^uK(0bjWujrnD+=n5rCnZmqEg3svRfXjk=pKUF=XfNBGm%ah?$*HZPBu~hF2 z)sp>WZ>m314U%b8HKMU$GK=aKu5Y-^p?Za}-DNq|FfKP*R#0^wuFEZw?Ns8cS|Ybo z%^s|3vwTlAYk;cb#mB*rFVC}Oap_6bKy|u=sJe6QXUIsZqdZ;imr_KvjcqwcCQyCC z<<6DKR4+2NP3BS!W;-vF`BZnZMO>ck=v>I^wC;gl1Hi5a#UWG=cpEQ?SGXWRG(0NB0o@_#ah0Q&d37!@=i!=`9=m& zRWtUzjH3E2`%}EVs4izL%bN&wM$Sa^>H}SL^zP}Yct@V%Q$79;O!fK*80-2K@WHO? zr*ajWSpF)O|8);_4q|lIwdvShI>bY}@6YK3d?>p+@Q3Vr`1f|t2S1_Pz*axhsQ~+kuE>CNCDMw3o?WTB3XT=h>`Fqy0 zBVV07*08YiSd{NZXAGT3S^oT7^~caZKTr9T-ij-^_HjM55C6)3`$Z?Mt&#O?=2Bte zI65!(oP?#mV@qm!X~|dElSA3Uw}b5pmgQQ$&e64;)>G?$f;G>|-xtpQ-F0-XWD9q6 z(&*@1#nV_@DciY_bxvb%{3ku2t?H-;)OS6gd_{Syv)i9H$gz;)b~ z|5HEcS~jy+zvi~2_rv}i{q!D4AK7i};iHN75s%`Czec{9{B!o+rJZ#|p6W3ZxU0Rl zDM!n6BEFqH2Rzs(*L2dH@I&??z)jgYBEkOoZjU8!25~G#bB!Cw`>+R|;uc-RHoV$h zN9|_r3AeD9zRNoj%T{pj-8)aC`P{pL{V>=|&(G6+dth&kZq8MnzHh(HWe0Mf3HI}a zowdx4e8mXs{Gz*V(THA(!9LTzH*{Nmx;Of>o-5h@;J9AO{UOLC!LlLlrOot%tP<+J z8f#2<+=ttLgAokI>rsw-kZ0C&?>d6cu5#n;`8wj4a2&s4 zZU1KZsW~&?7xz-kEHgDnM{`s5I^fJs)xaR@e$V~t6pr9Iy|m`HJ1frR9viGBkNaeC zuhV65NM{wN<<88iM=z}~wJ=L(8BtRQ_G|EbDL1vCUq0qaHKt|_YruU6$D2BISU%=T zrBpSD3nJNTZh{*9U6gc+9Fg%dHmMUU-_Uy2Qzv9S1NB^5$^P=P#g34dy#DeRx178N^`5C4W#FLA$iwg=Z$FaLh_-h%SY%9K3|%8a8Ltw3&^|BVdH|FtrdzzzFGYYAp88kuuEGRP3K4WwfbZ4Q=p7$=;^!9-1$sWSXg; zBet7_O`VO{ZZgkQ)rfKa?sBN96Gj{*yUUS*;InG#~2tw31`w zWQ(1i)!>bhGfiEcm5-~v3ryXGZP-IDH}x2{VGp^^)TllU-kx%csiHplvZvf_>Y2d} z-d^&Msh0=m;V2$2Lrf)6=L8vP>Lt`ULB^Vz zhV7dulTFRV_Dz)iO?B%#!Jj0vO%3cj9qJHMFJpa^NH}4zmIG-)qlivs76ySp)FJ83{&r*EmP%uQ}+z6_om5Zrjmm_TzOt=>V0IX z>2kBFPm!gj%Uy0cuff|_9yHaAEV!>cZfZIDbA~)`Y8Co(hWyFYXMHC4`^j6Te&{nD zYKN)25!+urG4&W?`^&#feU~-CKR~cE^T^3Vod-x4Q>%u}^beF?rfP@HhZ<~ZB96bX zj4(AH$6r|XGBvEQ!7G+Yriu#lrC9bewGLxDQ%X#2!r0D~g{BgIgEvc-o4VD{$MyL! zrk=$9St4spy@vg>M5;{9K)=kEO{NaQHq4f|sf`%hIdZzGQ!uu3PLlLt&4jCRhG$4q@XY^gtAo->s-d?nN?rcNHT z#XDHuG#pom?;Rrf zrndL-TOn_m(tLJ= zyl+bL*%9)Islx0A?@0ODR8e-me&VPfvSA!FpB*K+rZk@&CA~~(K3ge+Oldw_DI-j2 zK08|WG^P3MXqjZH8_r|L$P7~haUMHHN=#`!TO|ujX+B#e%T1k&{1TC)OLTkRL(V}`K(m7nbLe#CQYU^pOwi?rZi{8 z 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 tRsehD{~=O8CV7QY%Ha1 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.Core.Model.Entity + + + 动态查询条件 + + + + + 起始位置(e.g. 0) + + + + + 每页数量(e.g. 10) + + + + + 查询条件( 例如:id = 1 and name = 小明) + + + + + 排序条件表达式(e.g. LoginName ASC,Name DESC) + + + + + 动态查询条件 + + + + + 动态查询条件 + + 服务层响应实体(泛型) diff --git a/Tiobon.Core.Api/Controllers/Ghre/Ghre_PlanController.cs b/Tiobon.Core.Api/Controllers/Ghre/Ghre_PlanController.cs index 3b58544e..93d9d9b4 100644 --- a/Tiobon.Core.Api/Controllers/Ghre/Ghre_PlanController.cs +++ b/Tiobon.Core.Api/Controllers/Ghre/Ghre_PlanController.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Model.ViewModels.Extend; - -namespace Tiobon.Core.Api.Controllers; +namespace Tiobon.Core.Api.Controllers; /// /// 培训计划(Controller) diff --git a/Tiobon.Core.Api/GlobalUsings.cs b/Tiobon.Core.Api/GlobalUsings.cs index eeef7b05..45949ba0 100644 --- a/Tiobon.Core.Api/GlobalUsings.cs +++ b/Tiobon.Core.Api/GlobalUsings.cs @@ -18,3 +18,4 @@ global using Tiobon.Core.SwaggerHelper; global using static Tiobon.Core.Extensions.SwaggerSetup; global using Tiobon.Core.Base.Helper; global using Tiobon.Core.Model.Entity; +global using Tiobon.Core.Model.ViewModels.Extend; diff --git a/Tiobon.Core.Common/Attribute/QueryFilter.cs b/Tiobon.Core.Common/Attribute/QueryFilter.cs deleted file mode 100644 index a756bf45..00000000 --- a/Tiobon.Core.Common/Attribute/QueryFilter.cs +++ /dev/null @@ -1,165 +0,0 @@ -using Newtonsoft.Json.Linq; -using System.ComponentModel.DataAnnotations; -using Tiobon.Core.Model.Entity; - -namespace Tiobon.Core.Common; - - -/// -/// 动态查询条件 -/// -public class QueryBody -{ - /// - /// 起始位置(e.g. 0) - /// - [Required] - public int pageNum { get; set; } = 1; - /// - /// 每页数量(e.g. 10) - /// - [Required] - public int pageSize { get; set; } = 100000; - private JObject _jsonParam; - /// - /// 查询条件( 例如:id = 1 and name = 小明) - /// - public JObject jsonParam - { - get { return _jsonParam; } - set - { - _jsonParam = value; - } - } - - /// - /// 排序条件表达式(e.g. LoginName ASC,Name DESC) - /// - public string orderBy { get; set; } - public string menuName { get; set; } - public int langId { get; set; } - - -} -public class JsonParam -{ - public object columnValue { get; set; } - public string operationKey { get; set; } - public string token { get; set; } - -} -public class JsonParam1 -{ - public List columnValue { get; set; } - public string operationKey { get; set; } - public string token { get; set; } - -} - -/// -/// 动态查询条件 -/// -public class QueryForm -{ - public string doType { get; set; } - public long? id { get; set; } - public int langId { get; set; } - public string menuName { get; set; } - public string token { get; set; } - public string procName { get; set; } - public string timestamp { get; set; } - public string userId { get; set; } - private JObject _jsonParam; - public JObject jsonParam - { - get { return _jsonParam; } - set - { - _jsonParam = value; - } - } - -} - -public class QueryForm1 -{ - public string doType { get; set; } - public long? id { get; set; } - public int langId { get; set; } - public string menuName { get; set; } - public string token { get; set; } - public string procName { get; set; } - public string timestamp { get; set; } - public string userId { get; set; } - public object jsonParam { get; set; } - - -} - -public class QueryExportField -{ - public List ExFields { get; set; } - public string IsTitle { get; set; } - public string TitleName { get; set; } - public List SelectRowKeys { get; set; } - -} - -/// -/// 动态查询条件 -/// -public class QueryExport -{ - public string commonType { get; set; } - public QueryExportField exportSet { get; set; } - - public string getDataType { get; set; } - private JObject _jsonParam; - public int langId { get; set; } - public string menuName { get; set; } - public string orderBy { get; set; } - public int pageNum { get; set; } - public int pageSize { get; set; } - public string token { get; set; } - public string procName { get; set; } - public string timestamp { get; set; } - public string userId { get; set; } - - public JObject jsonParam - { - get { return _jsonParam; } - set - { - _jsonParam = value; - } - } - -} -public class QueryExportColumn -{ - public int sortNum { get; set; } - public string label { get; set; } - public string field { get; set; } - public string dataSource { get; set; } - public string required { get; set; } - - public string dataType { get; set; } - - public string elementType { get; set; } - public string commentText { get; set; } - public string dataSourceType { get; set; } - - public int? dataSourceId { get; set; } - - public string Comment { get; set; } -} - -public class QueryExportReturn -{ - public JM_PageControlT1 JM_PageControlT1 { get; set; } = new JM_PageControlT1(); - public JM_TableColumnT1 JM_TableColumnT1 { get; set; } = new JM_TableColumnT1(); - public List DT_PageMutiMsg { get; set; } - - public DT_Procedure DT_Procedure { get; set; } = new DT_Procedure(); -} \ No newline at end of file diff --git a/Tiobon.Core.DataAccess/ReportHelper.cs b/Tiobon.Core.DataAccess/ReportHelper.cs index ec573fcf..93be04a3 100644 --- a/Tiobon.Core.DataAccess/ReportHelper.cs +++ b/Tiobon.Core.DataAccess/ReportHelper.cs @@ -21,6 +21,7 @@ using System.Threading.Tasks; using Tiobon.Core.Common; using Tiobon.Core.Common.Extensions; using Tiobon.Core.Common.Helper; +using Tiobon.Core.Model.Entity; using Tiobon.Core.Model.Models; namespace Tiobon.Core.DataAccess; diff --git a/Tiobon.Core.DataAccess/Tiobon.Core.DataAccess.csproj b/Tiobon.Core.DataAccess/Tiobon.Core.DataAccess.csproj index cf8153de..3e251a7d 100644 --- a/Tiobon.Core.DataAccess/Tiobon.Core.DataAccess.csproj +++ b/Tiobon.Core.DataAccess/Tiobon.Core.DataAccess.csproj @@ -42,4 +42,10 @@ + + + ..\Lib\Tiobon.Core.Model.Entity.dll + + + diff --git a/Tiobon.Core.IServices/Ghra/IGhra_GradeServices.cs b/Tiobon.Core.IServices/Ghra/IGhra_GradeServices.cs new file mode 100644 index 00000000..6bf65605 --- /dev/null +++ b/Tiobon.Core.IServices/Ghra/IGhra_GradeServices.cs @@ -0,0 +1,8 @@ +namespace Tiobon.Core.IServices; + +/// +/// 年级(自定义服务接口) +/// +public interface IGhra_GradeServices : IBaseServices +{ +} \ No newline at end of file diff --git a/Tiobon.Core.IServices/Ghra/IGhra_StaffGroupDetailServices.cs b/Tiobon.Core.IServices/Ghra/IGhra_StaffGroupDetailServices.cs index 89452bbc..ad81de0e 100644 --- a/Tiobon.Core.IServices/Ghra/IGhra_StaffGroupDetailServices.cs +++ b/Tiobon.Core.IServices/Ghra/IGhra_StaffGroupDetailServices.cs @@ -1,9 +1,8 @@ -namespace Tiobon.Core.IServices +namespace Tiobon.Core.IServices; + +/// +/// 人员群组明细(自定义服务接口) +/// +public interface IGhra_StaffGroupDetailServices : IBaseServices { - /// - /// 人员群组明细(自定义服务接口) - /// - public interface IGhra_StaffGroupDetailServices :IBaseServices - { - } } \ No newline at end of file diff --git a/Tiobon.Core.IServices/Ghra/IGhra_TitleServices.cs b/Tiobon.Core.IServices/Ghra/IGhra_TitleServices.cs index d3dd2d00..21be078b 100644 --- a/Tiobon.Core.IServices/Ghra/IGhra_TitleServices.cs +++ b/Tiobon.Core.IServices/Ghra/IGhra_TitleServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Common; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 岗位(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_AttachmentServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_AttachmentServices.cs index f88832e6..755f84e3 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_AttachmentServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_AttachmentServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Model.ViewModels; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 附件(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_CertificateDesignItemServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_CertificateDesignItemServices.cs index 78b9b033..8e04835e 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_CertificateDesignItemServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_CertificateDesignItemServices.cs @@ -3,6 +3,6 @@ /// /// 培训证书设计项(自定义服务接口) /// -public interface IGhre_CertificateDesignItemServices :IBaseServices +public interface IGhre_CertificateDesignItemServices : IBaseServices { - } \ No newline at end of file +} \ No newline at end of file diff --git a/Tiobon.Core.IServices/Ghre/IGhre_CertificateRuleServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_CertificateRuleServices.cs index 1b47036c..35f38ccb 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_CertificateRuleServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_CertificateRuleServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Model; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 培训证书规则(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_CertificateServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_CertificateServices.cs index f36a038c..cc72bdae 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_CertificateServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_CertificateServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Model; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 培训记录(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_CourseServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_CourseServices.cs index a272ac59..fbe3d3a9 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_CourseServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_CourseServices.cs @@ -1,7 +1,4 @@ -using Tiobon.Core.Common; -using Tiobon.Core.Model.ViewModels.Extend; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 课程(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_CreditPointServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_CreditPointServices.cs index 97dbcfa5..b95a0882 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_CreditPointServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_CreditPointServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Common; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 学分记录(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_ExamPaperServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_ExamPaperServices.cs index 70b99ffb..3385e545 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_ExamPaperServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_ExamPaperServices.cs @@ -1,6 +1,4 @@ -using Microsoft.AspNetCore.Mvc; -using Tiobon.Core.Common; - + namespace Tiobon.Core.IServices; /// @@ -11,7 +9,7 @@ public interface IGhre_ExamPaperServices : IBaseServices> QueryDefault(long Id); Task> InsertConfig(InsertGhre_ExamPaperConfigInput insert); - Task> Insert1([FromBody] DefaultGhre_ExamPaperPageData insert); + Task> Insert1(DefaultGhre_ExamPaperPageData insert); Task Update1(long id, DefaultGhre_ExamPaperPageData insertModel); Task UpdateStatus(long[] ids, string status); diff --git a/Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs index 77f94b7d..d3bcf4f9 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs @@ -1,7 +1,4 @@ -using Tiobon.Core.Common; -using Tiobon.Core.Model; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 考试记录(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_ExamServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_ExamServices.cs index ceda8442..735e0219 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_ExamServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_ExamServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Common; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 考试(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs index 11512961..ad7d1a12 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs @@ -1,7 +1,4 @@ -using Tiobon.Core.Model; -using Tiobon.Core.Model.ViewModels.Extend; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 开班管理(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_PlanServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_PlanServices.cs index 1320344e..0db24efc 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_PlanServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_PlanServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Common; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 培训计划(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_RequestServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_RequestServices.cs index 5a767fcc..496e22a8 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_RequestServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_RequestServices.cs @@ -1,7 +1,4 @@ -using Tiobon.Core.Common; -using Tiobon.Core.Model; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 培训需求(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_StaffGroupServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_StaffGroupServices.cs index 9296d55f..668e8df6 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_StaffGroupServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_StaffGroupServices.cs @@ -1,7 +1,4 @@ -using Tiobon.Core.Common; -using Tiobon.Core.Model; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 员工群组(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_StudyRecordServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_StudyRecordServices.cs index f50cad2e..3e8544bb 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_StudyRecordServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_StudyRecordServices.cs @@ -1,8 +1,4 @@ -using Tiobon.Core.Common; -using Tiobon.Core.Model; -using Tiobon.Core.Model.ViewModels.Extend; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 培训记录(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_SurveyQuestionPoolServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_SurveyQuestionPoolServices.cs index 508454ac..dda93feb 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_SurveyQuestionPoolServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_SurveyQuestionPoolServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Model; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 问卷题库(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_SurveyServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_SurveyServices.cs index 2cefe8ed..6b8e1312 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_SurveyServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_SurveyServices.cs @@ -1,7 +1,4 @@ -using Tiobon.Core.Model; -using Tiobon.Core.Model.ViewModels.Extend; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 问卷调查(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_TitleSkill_BoltoneServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_TitleSkill_BoltoneServices.cs index 5d1b5f8e..df56189f 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_TitleSkill_BoltoneServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_TitleSkill_BoltoneServices.cs @@ -1,8 +1,4 @@ -using Tiobon.Core.Common; -using Tiobon.Core.Model.ViewModels.Extend; -using Tiobon.Core.Model; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 岗位技能_宝连通(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_UshioPlanServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_UshioPlanServices.cs index 697671f5..1f44d287 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_UshioPlanServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_UshioPlanServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Model; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 【牛尾】培训计划(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghrh/IGhrh_HumanRequestServices.cs b/Tiobon.Core.IServices/Ghrh/IGhrh_HumanRequestServices.cs index 322e184d..89b7abc4 100644 --- a/Tiobon.Core.IServices/Ghrh/IGhrh_HumanRequestServices.cs +++ b/Tiobon.Core.IServices/Ghrh/IGhrh_HumanRequestServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Common; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 人力需求维护(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs b/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs index 437e6c77..662e05ed 100644 --- a/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs +++ b/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs @@ -1,15 +1,11 @@ -using Microsoft.AspNetCore.Mvc; -using Tiobon.Core.Common; -using Tiobon.Core.Model.ViewModels.Extend; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 个人简历(自定义服务接口) /// public interface IGhrh_ResumeServices : IBaseServices { - Task>> QueryViewTab(int langId=1); + Task>> QueryViewTab(int langId = 1); Task>> QueryConditions(); @@ -70,7 +66,7 @@ public interface IGhrh_ResumeServices : IBaseServices OverTimeDeleteResume(); Task> Download(List ids); - Task> QueryAssessForm(long id, long? orderId = null, [FromBody] ResumeAssessForm assessForm = null); + Task> QueryAssessForm(long id, long? orderId = null, ResumeAssessForm assessForm = null); Task Shihua_OA_Sync(); @@ -81,7 +77,7 @@ public interface IGhrh_ResumeServices : IBaseServices SyncToStaff(long id); - Task> QueryWorkstationInit(int langId , string menuName); + Task> QueryWorkstationInit(int langId, string menuName); Task> QueryWorkStationStatisticsChart(int langId = 1); diff --git a/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeTemplateServices.cs b/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeTemplateServices.cs index b38a82d9..cdd78147 100644 --- a/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeTemplateServices.cs +++ b/Tiobon.Core.IServices/Ghrh/IGhrh_ResumeTemplateServices.cs @@ -1,7 +1,4 @@ -using Tiobon.Core.Common; -using Tiobon.Core.Model.ViewModels.Extend; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// 简历模板(自定义服务接口) diff --git a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceItemServices.cs b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceItemServices.cs index 6797ec5c..8551ddd0 100644 --- a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceItemServices.cs +++ b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceItemServices.cs @@ -3,6 +3,6 @@ /// /// 考核指标(自定义服务接口) /// -public interface IGhrp_PerformanceItemServices :IBaseServices - { +public interface IGhrp_PerformanceItemServices : IBaseServices +{ } \ No newline at end of file diff --git a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformancePeriodServices.cs b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformancePeriodServices.cs index 4a76f3b2..36c606b7 100644 --- a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformancePeriodServices.cs +++ b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformancePeriodServices.cs @@ -1,10 +1,9 @@ -namespace Tiobon.Core.IServices +namespace Tiobon.Core.IServices; + +/// +/// 考核期间(自定义服务接口) +/// +public interface IGhrp_PerformancePeriodServices : IBaseServices { - /// - /// 考核期间(自定义服务接口) - /// - public interface IGhrp_PerformancePeriodServices :IBaseServices - { - Task BatchCreatePeriod(JObject jsonParam); - } + Task BatchCreatePeriod(JObject jsonParam); } \ No newline at end of file diff --git a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformancePeriodTypeServices.cs b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformancePeriodTypeServices.cs index ef1073db..64b6bfcf 100644 --- a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformancePeriodTypeServices.cs +++ b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformancePeriodTypeServices.cs @@ -1,10 +1,9 @@ -namespace Tiobon.Core.IServices +namespace Tiobon.Core.IServices; + +/// +/// 考核周期类别(自定义服务接口) +/// +public interface IGhrp_PerformancePeriodTypeServices : IBaseServices { - /// - /// 考核周期类别(自定义服务接口) - /// - public interface IGhrp_PerformancePeriodTypeServices :IBaseServices - { - Task>> GetStageItems(string Stage); - } + Task>> GetStageItems(string Stage); } \ No newline at end of file diff --git a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceTemplateServices.cs b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceTemplateServices.cs index 768f98eb..ad9a27a4 100644 --- a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceTemplateServices.cs +++ b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceTemplateServices.cs @@ -1,9 +1,8 @@ -namespace Tiobon.Core.IServices +namespace Tiobon.Core.IServices; + +/// +/// 考核模板(自定义服务接口) +/// +public interface IGhrp_PerformanceTemplateServices : IBaseServices { - /// - /// 考核模板(自定义服务接口) - /// - public interface IGhrp_PerformanceTemplateServices :IBaseServices - { - } } \ No newline at end of file diff --git a/Tiobon.Core.IServices/Ghrs/IGhrs_DataBelongServices.cs b/Tiobon.Core.IServices/Ghrs/IGhrs_DataBelongServices.cs index 856f00e9..9a54bfe0 100644 --- a/Tiobon.Core.IServices/Ghrs/IGhrs_DataBelongServices.cs +++ b/Tiobon.Core.IServices/Ghrs/IGhrs_DataBelongServices.cs @@ -3,6 +3,6 @@ /// /// 资料归属(自定义服务接口) /// -public interface IGhrs_DataBelongServices :IBaseServices +public interface IGhrs_DataBelongServices : IBaseServices { - } \ No newline at end of file +} \ No newline at end of file diff --git a/Tiobon.Core.IServices/GlobalUsings.cs b/Tiobon.Core.IServices/GlobalUsings.cs index 46738193..e5a07a03 100644 --- a/Tiobon.Core.IServices/GlobalUsings.cs +++ b/Tiobon.Core.IServices/GlobalUsings.cs @@ -3,5 +3,6 @@ global using Tiobon.Core.Base.IServices; global using Tiobon.Core.Model; global using Tiobon.Core.Model.Entity; global using Tiobon.Core.Model.Models; +global using Tiobon.Core.Model.ViewModels; global using Tiobon.Core.Model.ViewModels.Extend; diff --git a/Tiobon.Core.IServices/ICommonServices.cs b/Tiobon.Core.IServices/ICommonServices.cs index 0bf5ddcb..ded2a91c 100644 --- a/Tiobon.Core.IServices/ICommonServices.cs +++ b/Tiobon.Core.IServices/ICommonServices.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Http; -using Tiobon.Core.Common; namespace Tiobon.Core.IServices; diff --git a/Tiobon.Core.IServices/IGhra_GradeServices.cs b/Tiobon.Core.IServices/IGhra_GradeServices.cs deleted file mode 100644 index 88105912..00000000 --- a/Tiobon.Core.IServices/IGhra_GradeServices.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Tiobon.Core.IServices; - -/// -/// 年级(自定义服务接口) -/// -public interface IGhra_GradeServices :IBaseServices -{ - } \ No newline at end of file diff --git a/Tiobon.Core.IServices/IModuleServices.cs b/Tiobon.Core.IServices/IModuleServices.cs index ae0192a4..1338871a 100644 --- a/Tiobon.Core.IServices/IModuleServices.cs +++ b/Tiobon.Core.IServices/IModuleServices.cs @@ -3,8 +3,8 @@ namespace Tiobon.Core.IServices; /// /// ModuleServices /// -public interface IModuleServices :IBaseServices +public interface IModuleServices : IBaseServices { - - } + +} diff --git a/Tiobon.Core.IServices/IOperateLogServices.cs b/Tiobon.Core.IServices/IOperateLogServices.cs index 647f75b1..951450af 100644 --- a/Tiobon.Core.IServices/IOperateLogServices.cs +++ b/Tiobon.Core.IServices/IOperateLogServices.cs @@ -4,7 +4,6 @@ /// IOperateLogServices /// public interface IOperateLogServices : IBaseServices - { - +{ + } - \ No newline at end of file diff --git a/Tiobon.Core.IServices/IReportServices.cs b/Tiobon.Core.IServices/IReportServices.cs index 85f0e78d..4d18ecab 100644 --- a/Tiobon.Core.IServices/IReportServices.cs +++ b/Tiobon.Core.IServices/IReportServices.cs @@ -1,6 +1,4 @@ -using Tiobon.Core.Common; - -namespace Tiobon.Core.IServices; +namespace Tiobon.Core.IServices; /// /// IReportServices diff --git a/Tiobon.Core.IServices/IRoleModulePermissionServices.cs b/Tiobon.Core.IServices/IRoleModulePermissionServices.cs index 34c3f53a..3f87a560 100644 --- a/Tiobon.Core.IServices/IRoleModulePermissionServices.cs +++ b/Tiobon.Core.IServices/IRoleModulePermissionServices.cs @@ -3,8 +3,8 @@ namespace Tiobon.Core.IServices; /// /// RoleModulePermissionServices /// -public interface IRoleModulePermissionServices :IBaseServices - { +public interface IRoleModulePermissionServices : IBaseServices +{ Task> GetRoleModule(); Task> QueryMuchTable(); diff --git a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceItem.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceItem.Dto.Base.cs index edb945ee..c372c994 100644 --- a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceItem.Dto.Base.cs +++ b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceItem.Dto.Base.cs @@ -13,196 +13,192 @@ *│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ *│ 作者:SimonHsiao │ *└──────────────────────────────────┘ -*/ -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; +*/ +namespace Tiobon.Core.Model.Models; -namespace Tiobon.Core.Model.Models + +/// +/// 考核指标 (Dto.Base) +/// +public class Ghrp_PerformanceItemBase { /// - /// 考核指标 (Dto.Base) - /// - public class Ghrp_PerformanceItemBase - { - - /// - /// 指标编号 - /// - [Display(Name = "ItemNo"), Description("指标编号"), MaxLength(500, ErrorMessage = "指标编号 不能超过 500 个字符")] - public string ItemNo { get; set; } - - /// - /// 指标内容 - /// - [Display(Name = "ItemName"), Description("指标内容"), MaxLength(-1, ErrorMessage = "指标内容 不能超过 -1 个字符")] - public string ItemName { get; set; } - - /// - /// 指标说明 - /// - [Display(Name = "ItemCaption"), Description("指标说明"), MaxLength(-1, ErrorMessage = "指标说明 不能超过 -1 个字符")] - public string ItemCaption { get; set; } - - /// - /// 目标达成说明 - /// - [Display(Name = "TargetCaption"), Description("目标达成说明"), MaxLength(-1, ErrorMessage = "目标达成说明 不能超过 -1 个字符")] - public string TargetCaption { get; set; } - - /// - /// 一级指标分类 - /// - [Display(Name = "ItemType1"), Description("一级指标分类"), MaxLength(255, ErrorMessage = "一级指标分类 不能超过 255 个字符")] - public string ItemType1 { get; set; } - - /// - /// 二级指标分类 - /// - [Display(Name = "ItemType2"), Description("二级指标分类"), MaxLength(255, ErrorMessage = "二级指标分类 不能超过 255 个字符")] - public string ItemType2 { get; set; } - - /// - /// 三级指标分类 - /// - [Display(Name = "ItemType3"), Description("三级指标分类"), MaxLength(255, ErrorMessage = "三级指标分类 不能超过 255 个字符")] - public string ItemType3 { get; set; } - - /// - /// 默认权重(%) - /// - [Display(Name = "ItemWeight"), Description("默认权重(%)"), Column(TypeName = "decimal(18,2)")] - public decimal? ItemWeight { get; set; } - - /// - /// 指标性质 - /// - [Display(Name = "ItemKind"), Description("指标性质"), MaxLength(255, ErrorMessage = "指标性质 不能超过 255 个字符")] - public string ItemKind { get; set; } - - /// - /// 评估部门分类 - /// - [Display(Name = "DeptType"), Description("评估部门分类"), MaxLength(255, ErrorMessage = "评估部门分类 不能超过 255 个字符")] - public string DeptType { get; set; } - - /// - /// 标签1 - /// - [Display(Name = "Tag1"), Description("标签1"), MaxLength(255, ErrorMessage = "标签1 不能超过 255 个字符")] - public string Tag1 { get; set; } - - /// - /// 标签2 - /// - [Display(Name = "Tag2"), Description("标签2"), MaxLength(255, ErrorMessage = "标签2 不能超过 255 个字符")] - public string Tag2 { get; set; } - - /// - /// 标签3 - /// - [Display(Name = "Tag3"), Description("标签3"), MaxLength(255, ErrorMessage = "标签3 不能超过 255 个字符")] - public string Tag3 { get; set; } - - /// - /// 有效开始日 - /// - public DateTime? BeginDate { get; set; } - - /// - /// 有效结束日 - /// - public DateTime? EndDate { get; set; } - - /// - /// 备注 - /// - [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] - public string RemarkSz { get; set; } - - /// - /// 排序 - /// - public int? SortNo { get; set; } - - /// - /// 默认标志 - /// - public int? IsDefault { get; set; } - - /// - /// 预留字段1 - /// - [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] - public string Reverse1 { get; set; } - - /// - /// 预留字段2 - /// - [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] - public string Reverse2 { get; set; } - - /// - /// 预留字段3 - /// - [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] - public string Reverse3 { get; set; } - - /// - /// 预留字段4 - /// - [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] - public string Reverse4 { get; set; } - - /// - /// 预留字段5 - /// - [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] - public string Reverse5 { get; set; } - - /// - /// 预留字段6 - /// - [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] - public string Reverse6 { get; set; } - - /// - /// 预留字段7 - /// - [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] - public string Reverse7 { get; set; } - - /// - /// 预留字段8 - /// - [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] - public string Reverse8 { get; set; } - - /// - /// 预留字段9 - /// - [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] - public string Reverse9 { get; set; } - - /// - /// 预留字段10 - /// - [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] - public string Reverse10 { get; set; } - - /// - /// 预留字段11 - /// - public int? ReverseI1 { get; set; } - - /// - /// 预留字段12 - /// - public int? ReverseI2 { get; set; } - - /// - /// 内置 - /// - public int? BuiltIn { get; set; } - } + /// 指标编号 + /// + [Display(Name = "ItemNo"), Description("指标编号"), MaxLength(500, ErrorMessage = "指标编号 不能超过 500 个字符")] + public string ItemNo { get; set; } + + /// + /// 指标内容 + /// + [Display(Name = "ItemName"), Description("指标内容"), MaxLength(-1, ErrorMessage = "指标内容 不能超过 -1 个字符")] + public string ItemName { get; set; } + + /// + /// 指标说明 + /// + [Display(Name = "ItemCaption"), Description("指标说明"), MaxLength(-1, ErrorMessage = "指标说明 不能超过 -1 个字符")] + public string ItemCaption { get; set; } + + /// + /// 目标达成说明 + /// + [Display(Name = "TargetCaption"), Description("目标达成说明"), MaxLength(-1, ErrorMessage = "目标达成说明 不能超过 -1 个字符")] + public string TargetCaption { get; set; } + + /// + /// 一级指标分类 + /// + [Display(Name = "ItemType1"), Description("一级指标分类"), MaxLength(255, ErrorMessage = "一级指标分类 不能超过 255 个字符")] + public string ItemType1 { get; set; } + + /// + /// 二级指标分类 + /// + [Display(Name = "ItemType2"), Description("二级指标分类"), MaxLength(255, ErrorMessage = "二级指标分类 不能超过 255 个字符")] + public string ItemType2 { get; set; } + + /// + /// 三级指标分类 + /// + [Display(Name = "ItemType3"), Description("三级指标分类"), MaxLength(255, ErrorMessage = "三级指标分类 不能超过 255 个字符")] + public string ItemType3 { get; set; } + + /// + /// 默认权重(%) + /// + [Display(Name = "ItemWeight"), Description("默认权重(%)"), Column(TypeName = "decimal(18,2)")] + public decimal? ItemWeight { get; set; } + + /// + /// 指标性质 + /// + [Display(Name = "ItemKind"), Description("指标性质"), MaxLength(255, ErrorMessage = "指标性质 不能超过 255 个字符")] + public string ItemKind { get; set; } + + /// + /// 评估部门分类 + /// + [Display(Name = "DeptType"), Description("评估部门分类"), MaxLength(255, ErrorMessage = "评估部门分类 不能超过 255 个字符")] + public string DeptType { get; set; } + + /// + /// 标签1 + /// + [Display(Name = "Tag1"), Description("标签1"), MaxLength(255, ErrorMessage = "标签1 不能超过 255 个字符")] + public string Tag1 { get; set; } + + /// + /// 标签2 + /// + [Display(Name = "Tag2"), Description("标签2"), MaxLength(255, ErrorMessage = "标签2 不能超过 255 个字符")] + public string Tag2 { get; set; } + + /// + /// 标签3 + /// + [Display(Name = "Tag3"), Description("标签3"), MaxLength(255, ErrorMessage = "标签3 不能超过 255 个字符")] + public string Tag3 { get; set; } + + /// + /// 有效开始日 + /// + public DateTime? BeginDate { get; set; } + + /// + /// 有效结束日 + /// + public DateTime? EndDate { get; set; } + + /// + /// 备注 + /// + [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] + public string RemarkSz { get; set; } + + /// + /// 排序 + /// + public int? SortNo { get; set; } + + /// + /// 默认标志 + /// + public int? IsDefault { get; set; } + + /// + /// 预留字段1 + /// + [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] + public string Reverse1 { get; set; } + + /// + /// 预留字段2 + /// + [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] + public string Reverse2 { get; set; } + + /// + /// 预留字段3 + /// + [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] + public string Reverse3 { get; set; } + + /// + /// 预留字段4 + /// + [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] + public string Reverse4 { get; set; } + + /// + /// 预留字段5 + /// + [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] + public string Reverse5 { get; set; } + + /// + /// 预留字段6 + /// + [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] + public string Reverse6 { get; set; } + + /// + /// 预留字段7 + /// + [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] + public string Reverse7 { get; set; } + + /// + /// 预留字段8 + /// + [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] + public string Reverse8 { get; set; } + + /// + /// 预留字段9 + /// + [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] + public string Reverse9 { get; set; } + + /// + /// 预留字段10 + /// + [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] + public string Reverse10 { get; set; } + + /// + /// 预留字段11 + /// + public int? ReverseI1 { get; set; } + + /// + /// 预留字段12 + /// + public int? ReverseI2 { get; set; } + + /// + /// 内置 + /// + public int? BuiltIn { get; set; } } diff --git a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformancePeriod.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformancePeriod.Dto.Base.cs index f441ce53..9dcd6463 100644 --- a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformancePeriod.Dto.Base.cs +++ b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformancePeriod.Dto.Base.cs @@ -13,197 +13,193 @@ *│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ *│ 作者:SimonHsiao │ *└──────────────────────────────────┘ -*/ -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; +*/ +namespace Tiobon.Core.Model.Models; -namespace Tiobon.Core.Model.Models + +/// +/// 考核期间 (Dto.Base) +/// +public class Ghrp_PerformancePeriodBase { + /// + /// 年度 + /// + [Display(Name = "YYYY"), Description("年度"), MaxLength(50, ErrorMessage = "年度 不能超过 50 个字符")] + public string YYYY { get; set; } + /// + /// 期间编号 + /// + [Display(Name = "PeriodNo"), Description("期间编号"), MaxLength(50, ErrorMessage = "期间编号 不能超过 50 个字符")] + public string PeriodNo { get; set; } + + /// + /// 期间名称 + /// + [Display(Name = "PeriodName"), Description("期间名称"), MaxLength(50, ErrorMessage = "期间名称 不能超过 50 个字符")] + public string PeriodName { get; set; } + + /// + /// 考核周期类别ID + /// + public long? PerformancePeriodTypeID { get; set; } + + /// + /// 考核周期类别 + /// + [Display(Name = "PeriodType"), Description("考核周期类别"), MaxLength(255, ErrorMessage = "考核周期类别 不能超过 255 个字符")] + public string PeriodType { get; set; } + + /// + /// 考核阶段数 + /// + [Display(Name = "Stage"), Description("考核阶段数"), MaxLength(255, ErrorMessage = "考核阶段数 不能超过 255 个字符")] + public string Stage { get; set; } + + /// + /// 阶段名称 + /// + [Display(Name = "StageItem"), Description("阶段名称"), MaxLength(255, ErrorMessage = "阶段名称 不能超过 255 个字符")] + public string StageItem { get; set; } + + /// + /// 当期类别 + /// + public int? PeriodNum { get; set; } + + /// + /// 当期是否启用 + /// + public int? IsUsing { get; set; } + + /// + /// 期间开始日 + /// + public string? BeginDate { get; set; } + + /// + /// 期间结束日 + /// + public string? EndDate { get; set; } + + /// + /// 员工填写开始日 + /// + public string? StaffBeginDate { get; set; } + + /// + /// 员工填写结束日 + /// + public string? StaffEndDate { get; set; } + + /// + /// 主管填写开始日 + /// + public string? MGBeginDate { get; set; } + + /// + /// 主管填写结束日 + /// + public string? MGEndDate { get; set; } + + /// + /// 人员状态基准日 + /// + public string? OnJobBaseDate { get; set; } + + /// + /// 前置期间 + /// + public long? PrePerformancePeriodID { get; set; } + + /// + /// 备注 + /// + [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] + public string RemarkSz { get; set; } + + /// + /// 排序 + /// + public int? SortNo { get; set; } + + /// + /// 默认标志 + /// + public int? IsDefault { get; set; } + + /// + /// 预留字段1 + /// + [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] + public string Reverse1 { get; set; } + + /// + /// 预留字段2 + /// + [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] + public string Reverse2 { get; set; } + + /// + /// 预留字段3 + /// + [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] + public string Reverse3 { get; set; } + + /// + /// 预留字段4 + /// + [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] + public string Reverse4 { get; set; } + + /// + /// 预留字段5 + /// + [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] + public string Reverse5 { get; set; } + + /// + /// 预留字段6 + /// + [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] + public string Reverse6 { get; set; } + + /// + /// 预留字段7 + /// + [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] + public string Reverse7 { get; set; } + + /// + /// 预留字段8 + /// + [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] + public string Reverse8 { get; set; } + + /// + /// 预留字段9 + /// + [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] + public string Reverse9 { get; set; } + + /// + /// 预留字段10 + /// + [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] + public string Reverse10 { get; set; } + + /// + /// 预留字段11 + /// + public int? ReverseI1 { get; set; } + + /// + /// 预留字段12 + /// + public int? ReverseI2 { get; set; } /// - /// 考核期间 (Dto.Base) - /// - public class Ghrp_PerformancePeriodBase - { - /// - /// 年度 - /// - [Display(Name = "YYYY"), Description("年度"), MaxLength(50, ErrorMessage = "年度 不能超过 50 个字符")] - public string YYYY { get; set; } - /// - /// 期间编号 - /// - [Display(Name = "PeriodNo"), Description("期间编号"), MaxLength(50, ErrorMessage = "期间编号 不能超过 50 个字符")] - public string PeriodNo { get; set; } - - /// - /// 期间名称 - /// - [Display(Name = "PeriodName"), Description("期间名称"), MaxLength(50, ErrorMessage = "期间名称 不能超过 50 个字符")] - public string PeriodName { get; set; } - - /// - /// 考核周期类别ID - /// - public long? PerformancePeriodTypeID { get; set; } - - /// - /// 考核周期类别 - /// - [Display(Name = "PeriodType"), Description("考核周期类别"), MaxLength(255, ErrorMessage = "考核周期类别 不能超过 255 个字符")] - public string PeriodType { get; set; } - - /// - /// 考核阶段数 - /// - [Display(Name = "Stage"), Description("考核阶段数"), MaxLength(255, ErrorMessage = "考核阶段数 不能超过 255 个字符")] - public string Stage { get; set; } - - /// - /// 阶段名称 - /// - [Display(Name = "StageItem"), Description("阶段名称"), MaxLength(255, ErrorMessage = "阶段名称 不能超过 255 个字符")] - public string StageItem { get; set; } - - /// - /// 当期类别 - /// - public int? PeriodNum { get; set; } - - /// - /// 当期是否启用 - /// - public int? IsUsing { get; set; } - - /// - /// 期间开始日 - /// - public string? BeginDate { get; set; } - - /// - /// 期间结束日 - /// - public string? EndDate { get; set; } - - /// - /// 员工填写开始日 - /// - public string? StaffBeginDate { get; set; } - - /// - /// 员工填写结束日 - /// - public string? StaffEndDate { get; set; } - - /// - /// 主管填写开始日 - /// - public string? MGBeginDate { get; set; } - - /// - /// 主管填写结束日 - /// - public string? MGEndDate { get; set; } - - /// - /// 人员状态基准日 - /// - public string? OnJobBaseDate { get; set; } - - /// - /// 前置期间 - /// - public long? PrePerformancePeriodID { get; set; } - - /// - /// 备注 - /// - [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] - public string RemarkSz { get; set; } - - /// - /// 排序 - /// - public int? SortNo { get; set; } - - /// - /// 默认标志 - /// - public int? IsDefault { get; set; } - - /// - /// 预留字段1 - /// - [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] - public string Reverse1 { get; set; } - - /// - /// 预留字段2 - /// - [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] - public string Reverse2 { get; set; } - - /// - /// 预留字段3 - /// - [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] - public string Reverse3 { get; set; } - - /// - /// 预留字段4 - /// - [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] - public string Reverse4 { get; set; } - - /// - /// 预留字段5 - /// - [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] - public string Reverse5 { get; set; } - - /// - /// 预留字段6 - /// - [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] - public string Reverse6 { get; set; } - - /// - /// 预留字段7 - /// - [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] - public string Reverse7 { get; set; } - - /// - /// 预留字段8 - /// - [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] - public string Reverse8 { get; set; } - - /// - /// 预留字段9 - /// - [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] - public string Reverse9 { get; set; } - - /// - /// 预留字段10 - /// - [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] - public string Reverse10 { get; set; } - - /// - /// 预留字段11 - /// - public int? ReverseI1 { get; set; } - - /// - /// 预留字段12 - /// - public int? ReverseI2 { get; set; } - - /// - /// 内置 - /// - public int? BuiltIn { get; set; } - } + /// 内置 + /// + public int? BuiltIn { get; set; } } diff --git a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformancePeriodType.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformancePeriodType.Dto.Base.cs index f1f739b5..1becdcf2 100644 --- a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformancePeriodType.Dto.Base.cs +++ b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformancePeriodType.Dto.Base.cs @@ -14,147 +14,143 @@ *│ 作者:SimonHsiao │ *└──────────────────────────────────┘ */ -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; +namespace Tiobon.Core.Model.Models; -namespace Tiobon.Core.Model.Models + +/// +/// 考核周期类别 (Dto.Base) +/// +public class Ghrp_PerformancePeriodTypeBase { /// - /// 考核周期类别 (Dto.Base) - /// - public class Ghrp_PerformancePeriodTypeBase - { - - /// - /// 类别编号 - /// - [Display(Name = "PeriodTypeNo"), Description("类别编号"), MaxLength(32, ErrorMessage = "类别编号 不能超过 32 个字符")] - public string PeriodTypeNo { get; set; } - - /// - /// 类别名称 - /// - [Display(Name = "PeriodTypeName"), Description("类别名称"), MaxLength(32, ErrorMessage = "类别名称 不能超过 32 个字符")] - public string PeriodTypeName { get; set; } - - /// - /// 多语编号 - /// - [Display(Name = "MKey"), Description("多语编号"), MaxLength(255, ErrorMessage = "多语编号 不能超过 255 个字符")] - public string MKey { get; set; } - - /// - /// 考核阶段数 - /// - [Display(Name = "Stage"), Description("考核阶段数"), MaxLength(255, ErrorMessage = "考核阶段数 不能超过 255 个字符")] - public string Stage { get; set; } - - /// - /// 考核阶段名称 - /// - [Display(Name = "StageItems"), Description("考核阶段名称"), MaxLength(255, ErrorMessage = "考核阶段名称 不能超过 255 个字符")] - public string StageItems { get; set; } - - /// - /// 集团数据归属ID - /// - public int? DataBelongID { get; set; } - - /// - /// 备注 - /// - [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] - public string RemarkSz { get; set; } - - /// - /// 排序 - /// - public int? SortNo { get; set; } - - /// - /// 默认标志 - /// - public int? IsDefault { get; set; } - - /// - /// 预留字段1 - /// - [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] - public string Reverse1 { get; set; } - - /// - /// 预留字段2 - /// - [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] - public string Reverse2 { get; set; } - - /// - /// 预留字段3 - /// - [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] - public string Reverse3 { get; set; } - - /// - /// 预留字段4 - /// - [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] - public string Reverse4 { get; set; } - - /// - /// 预留字段5 - /// - [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] - public string Reverse5 { get; set; } - - /// - /// 预留字段6 - /// - [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] - public string Reverse6 { get; set; } - - /// - /// 预留字段7 - /// - [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] - public string Reverse7 { get; set; } - - /// - /// 预留字段8 - /// - [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] - public string Reverse8 { get; set; } - - /// - /// 预留字段9 - /// - [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] - public string Reverse9 { get; set; } - - /// - /// 预留字段10 - /// - [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] - public string Reverse10 { get; set; } - - /// - /// 预留字段11 - /// - public int? ReverseI1 { get; set; } - - /// - /// 预留字段12 - /// - public int? ReverseI2 { get; set; } - - /// - /// 内置 - /// - public int? BuiltIn { get; set; } - - /// - /// 考核阶段名称 - /// - public List StageItems_List { get; set; } = new List(); - } + /// 类别编号 + /// + [Display(Name = "PeriodTypeNo"), Description("类别编号"), MaxLength(32, ErrorMessage = "类别编号 不能超过 32 个字符")] + public string PeriodTypeNo { get; set; } + + /// + /// 类别名称 + /// + [Display(Name = "PeriodTypeName"), Description("类别名称"), MaxLength(32, ErrorMessage = "类别名称 不能超过 32 个字符")] + public string PeriodTypeName { get; set; } + + /// + /// 多语编号 + /// + [Display(Name = "MKey"), Description("多语编号"), MaxLength(255, ErrorMessage = "多语编号 不能超过 255 个字符")] + public string MKey { get; set; } + + /// + /// 考核阶段数 + /// + [Display(Name = "Stage"), Description("考核阶段数"), MaxLength(255, ErrorMessage = "考核阶段数 不能超过 255 个字符")] + public string Stage { get; set; } + + /// + /// 考核阶段名称 + /// + [Display(Name = "StageItems"), Description("考核阶段名称"), MaxLength(255, ErrorMessage = "考核阶段名称 不能超过 255 个字符")] + public string StageItems { get; set; } + + /// + /// 集团数据归属ID + /// + public int? DataBelongID { get; set; } + + /// + /// 备注 + /// + [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] + public string RemarkSz { get; set; } + + /// + /// 排序 + /// + public int? SortNo { get; set; } + + /// + /// 默认标志 + /// + public int? IsDefault { get; set; } + + /// + /// 预留字段1 + /// + [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] + public string Reverse1 { get; set; } + + /// + /// 预留字段2 + /// + [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] + public string Reverse2 { get; set; } + + /// + /// 预留字段3 + /// + [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] + public string Reverse3 { get; set; } + + /// + /// 预留字段4 + /// + [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] + public string Reverse4 { get; set; } + + /// + /// 预留字段5 + /// + [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] + public string Reverse5 { get; set; } + + /// + /// 预留字段6 + /// + [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] + public string Reverse6 { get; set; } + + /// + /// 预留字段7 + /// + [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] + public string Reverse7 { get; set; } + + /// + /// 预留字段8 + /// + [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] + public string Reverse8 { get; set; } + + /// + /// 预留字段9 + /// + [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] + public string Reverse9 { get; set; } + + /// + /// 预留字段10 + /// + [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] + public string Reverse10 { get; set; } + + /// + /// 预留字段11 + /// + public int? ReverseI1 { get; set; } + + /// + /// 预留字段12 + /// + public int? ReverseI2 { get; set; } + + /// + /// 内置 + /// + public int? BuiltIn { get; set; } + + /// + /// 考核阶段名称 + /// + public List StageItems_List { get; set; } = new List(); } diff --git a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceTemplate.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceTemplate.Dto.Base.cs index 0a8c421c..e804f47e 100644 --- a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceTemplate.Dto.Base.cs +++ b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceTemplate.Dto.Base.cs @@ -13,176 +13,172 @@ *│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ *│ 作者:SimonHsiao │ *└──────────────────────────────────┘ -*/ -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; +*/ +namespace Tiobon.Core.Model.Models; -namespace Tiobon.Core.Model.Models + +/// +/// 考核模板 (Dto.Base) +/// +public class Ghrp_PerformanceTemplateBase { /// - /// 考核模板 (Dto.Base) - /// - public class Ghrp_PerformanceTemplateBase - { - - /// - /// 考核模板编号 - /// - [Display(Name = "TemplateNo"), Description("考核模板编号"), MaxLength(100, ErrorMessage = "考核模板编号 不能超过 100 个字符")] - public string TemplateNo { get; set; } - - /// - /// 考核模板名称 - /// - [Display(Name = "TemplateName"), Description("考核模板名称"), MaxLength(100, ErrorMessage = "考核模板名称 不能超过 100 个字符")] - public string TemplateName { get; set; } - - /// - /// 考核周期类别ID - /// - public long? PerformancePeriodTypeID { get; set; } - - /// - /// 考核周期类别编号 - /// - [Display(Name = "PeriodTypeNo"), Description("考核周期类别编号"), MaxLength(200, ErrorMessage = "考核周期类别编号 不能超过 200 个字符")] - public string PeriodTypeNo { get; set; } - - /// - /// 考核阶段 - /// - [Display(Name = "StageItem"), Description("考核阶段"), MaxLength(100, ErrorMessage = "考核阶段 不能超过 100 个字符")] - public string StageItem { get; set; } - - /// - /// 考核对象 - /// - public long? StaffGroupID { get; set; } - - /// - /// 总分 - /// - [Display(Name = "TotalScore"), Description("总分"), Column(TypeName = "decimal(18,2)")] - public decimal? TotalScore { get; set; } - - /// - /// 表单是否允许超过总分 - /// - public int? IsOutScore { get; set; } - - /// - /// 考核模板权重 - /// - [Display(Name = "Weight"), Description("考核模板权重"), Column(TypeName = "decimal(18,2)")] - public decimal? Weight { get; set; } - - /// - /// 考核阶数(含本人) - /// - public int? LevelNum { get; set; } - - /// - /// 考核主管显示方式 - /// - [Display(Name = "MGShowType"), Description("考核主管显示方式"), MaxLength(255, ErrorMessage = "考核主管显示方式 不能超过 255 个字符")] - public string MGShowType { get; set; } - - /// - /// 模板类型 - /// - [Display(Name = "TemplateType"), Description("模板类型"), MaxLength(255, ErrorMessage = "模板类型 不能超过 255 个字符")] - public string TemplateType { get; set; } - - /// - /// 备注 - /// - [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] - public string RemarkSz { get; set; } - - /// - /// 排序 - /// - public int? SortNo { get; set; } - - /// - /// 默认标志 - /// - public int? IsDefault { get; set; } - - /// - /// 预留字段1 - /// - [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] - public string Reverse1 { get; set; } - - /// - /// 预留字段2 - /// - [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] - public string Reverse2 { get; set; } - - /// - /// 预留字段3 - /// - [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] - public string Reverse3 { get; set; } - - /// - /// 预留字段4 - /// - [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] - public string Reverse4 { get; set; } - - /// - /// 预留字段5 - /// - [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] - public string Reverse5 { get; set; } - - /// - /// 预留字段6 - /// - [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] - public string Reverse6 { get; set; } - - /// - /// 预留字段7 - /// - [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] - public string Reverse7 { get; set; } - - /// - /// 预留字段8 - /// - [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] - public string Reverse8 { get; set; } - - /// - /// 预留字段9 - /// - [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] - public string Reverse9 { get; set; } - - /// - /// 预留字段10 - /// - [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] - public string Reverse10 { get; set; } - - /// - /// 预留字段11 - /// - public int? ReverseI1 { get; set; } - - /// - /// 预留字段12 - /// - public int? ReverseI2 { get; set; } - - /// - /// 内置 - /// - public int? BuiltIn { get; set; } - } + /// 考核模板编号 + /// + [Display(Name = "TemplateNo"), Description("考核模板编号"), MaxLength(100, ErrorMessage = "考核模板编号 不能超过 100 个字符")] + public string TemplateNo { get; set; } + + /// + /// 考核模板名称 + /// + [Display(Name = "TemplateName"), Description("考核模板名称"), MaxLength(100, ErrorMessage = "考核模板名称 不能超过 100 个字符")] + public string TemplateName { get; set; } + + /// + /// 考核周期类别ID + /// + public long? PerformancePeriodTypeID { get; set; } + + /// + /// 考核周期类别编号 + /// + [Display(Name = "PeriodTypeNo"), Description("考核周期类别编号"), MaxLength(200, ErrorMessage = "考核周期类别编号 不能超过 200 个字符")] + public string PeriodTypeNo { get; set; } + + /// + /// 考核阶段 + /// + [Display(Name = "StageItem"), Description("考核阶段"), MaxLength(100, ErrorMessage = "考核阶段 不能超过 100 个字符")] + public string StageItem { get; set; } + + /// + /// 考核对象 + /// + public long? StaffGroupID { get; set; } + + /// + /// 总分 + /// + [Display(Name = "TotalScore"), Description("总分"), Column(TypeName = "decimal(18,2)")] + public decimal? TotalScore { get; set; } + + /// + /// 表单是否允许超过总分 + /// + public int? IsOutScore { get; set; } + + /// + /// 考核模板权重 + /// + [Display(Name = "Weight"), Description("考核模板权重"), Column(TypeName = "decimal(18,2)")] + public decimal? Weight { get; set; } + + /// + /// 考核阶数(含本人) + /// + public int? LevelNum { get; set; } + + /// + /// 考核主管显示方式 + /// + [Display(Name = "MGShowType"), Description("考核主管显示方式"), MaxLength(255, ErrorMessage = "考核主管显示方式 不能超过 255 个字符")] + public string MGShowType { get; set; } + + /// + /// 模板类型 + /// + [Display(Name = "TemplateType"), Description("模板类型"), MaxLength(255, ErrorMessage = "模板类型 不能超过 255 个字符")] + public string TemplateType { get; set; } + + /// + /// 备注 + /// + [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] + public string RemarkSz { get; set; } + + /// + /// 排序 + /// + public int? SortNo { get; set; } + + /// + /// 默认标志 + /// + public int? IsDefault { get; set; } + + /// + /// 预留字段1 + /// + [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] + public string Reverse1 { get; set; } + + /// + /// 预留字段2 + /// + [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] + public string Reverse2 { get; set; } + + /// + /// 预留字段3 + /// + [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] + public string Reverse3 { get; set; } + + /// + /// 预留字段4 + /// + [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] + public string Reverse4 { get; set; } + + /// + /// 预留字段5 + /// + [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] + public string Reverse5 { get; set; } + + /// + /// 预留字段6 + /// + [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] + public string Reverse6 { get; set; } + + /// + /// 预留字段7 + /// + [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] + public string Reverse7 { get; set; } + + /// + /// 预留字段8 + /// + [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] + public string Reverse8 { get; set; } + + /// + /// 预留字段9 + /// + [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] + public string Reverse9 { get; set; } + + /// + /// 预留字段10 + /// + [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] + public string Reverse10 { get; set; } + + /// + /// 预留字段11 + /// + public int? ReverseI1 { get; set; } + + /// + /// 预留字段12 + /// + public int? ReverseI2 { get; set; } + + /// + /// 内置 + /// + public int? BuiltIn { get; set; } } diff --git a/Tiobon.Core.Services/Ghra/Ghra_StaffGroupDetailServices.cs b/Tiobon.Core.Services/Ghra/Ghra_StaffGroupDetailServices.cs index 82bdfceb..a1627afb 100644 --- a/Tiobon.Core.Services/Ghra/Ghra_StaffGroupDetailServices.cs +++ b/Tiobon.Core.Services/Ghra/Ghra_StaffGroupDetailServices.cs @@ -1,23 +1,15 @@ - -using Tiobon.Core.IServices; -using Tiobon.Core.Model.Models; -using Tiobon.Core.Services.BASE; -using Tiobon.Core.IRepository.Base; -using Tiobon.Core.Common.Caches; +namespace Tiobon.Core.Services; -namespace Tiobon.Core.Services +/// +/// 人员群组明细 (服务) +/// +public class Ghra_StaffGroupDetailServices : BaseServices, IGhra_StaffGroupDetailServices { - /// - /// 人员群组明细 (服务) - /// - public class Ghra_StaffGroupDetailServices : BaseServices, IGhra_StaffGroupDetailServices + private readonly IBaseRepository _dal; + public Ghra_StaffGroupDetailServices(ICaching caching, IBaseRepository dal) { - private readonly IBaseRepository _dal; - public Ghra_StaffGroupDetailServices(ICaching caching, IBaseRepository dal) - { - this._dal = dal; - base.BaseDal = dal; - base._caching = caching; - } + this._dal = dal; + base.BaseDal = dal; + base._caching = caching; } } \ No newline at end of file diff --git a/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceItemServices.cs b/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceItemServices.cs index c666b01b..adb0eba6 100644 --- a/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceItemServices.cs +++ b/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceItemServices.cs @@ -1,63 +1,53 @@ - -using Tiobon.Core.IServices; -using Tiobon.Core.Model.Models; -using Tiobon.Core.Services.BASE; -using Tiobon.Core.IRepository.Base; -using Tiobon.Core.Common.Caches; -using NPOI.SS.Formula.Functions; -using NPOI.Util.Collections; +namespace Tiobon.Core.Services; -namespace Tiobon.Core.Services +/// +/// 考核指标 (服务) +/// +public class Ghrp_PerformanceItemServices : BaseServices, IGhrp_PerformanceItemServices { - /// - /// 考核指标 (服务) - /// - public class Ghrp_PerformanceItemServices : BaseServices, IGhrp_PerformanceItemServices + private readonly IBaseRepository _dal; + public Ghrp_PerformanceItemServices(ICaching caching, IBaseRepository dal) { - private readonly IBaseRepository _dal; - public Ghrp_PerformanceItemServices(ICaching caching, IBaseRepository dal) - { - this._dal = dal; - base.BaseDal = dal; - base._caching = caching; - } + this._dal = dal; + base.BaseDal = dal; + base._caching = caching; + } - public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) - { + public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) + { - string? ItemStatus = null; - if (filter.jsonParam != null) - foreach (JProperty jProperty in filter.jsonParam.Properties()) - { - var name = jProperty.Name; - var value = jProperty.Value.ToString(); - if (name == "ItemStatus") - { - var jsonParam = JsonHelper.JsonToObj(value); - ItemStatus = jsonParam.columnValue.ToString(); - } - } - if (!string.IsNullOrEmpty(ItemStatus)) + string? ItemStatus = null; + if (filter.jsonParam != null) + foreach (JProperty jProperty in filter.jsonParam.Properties()) { - condition = $@" (case when BeginDate > convert(date,getdate()) then '2' + var name = jProperty.Name; + var value = jProperty.Value.ToString(); + if (name == "ItemStatus") + { + var jsonParam = JsonHelper.JsonToObj(value); + ItemStatus = jsonParam.columnValue.ToString(); + } + } + if (!string.IsNullOrEmpty(ItemStatus)) + { + condition = $@" (case when BeginDate > convert(date,getdate()) then '2' when convert(date,getdate()) between ISNULL(BeginDate,'1900-01-01') and ISNULL(EndDate,'2099-01-01') then '1' else '0' end ) = '{ItemStatus}' "; - } - var result = await base.QueryFilterPage(filter, condition, IsEnable); + } + var result = await base.QueryFilterPage(filter, condition, IsEnable); - result.result.DT_TableDataT1.ForEach(async x => - { - x.ItemType1 = await GetParaLabel("PerformanceItemType1", x.ItemType1); - x.ItemType2 = await GetParaLabel("PerformanceItemType2", x.ItemType2); - x.ItemType3 = await GetParaLabel("PerformanceItemType3", x.ItemType3); - x.ItemKind = await GetParaLabel("PerformanceItemKind", x.ItemKind); - x.DeptType = await GetParaLabel("PerformanceDeptType", x.DeptType); - x.Tag1 = await GetParaLabel("PerformanceTag1", x.Tag1); - x.Tag2 = await GetParaLabel("PerformanceTag2", x.Tag2); - x.Tag3 = await GetParaLabel("PerformanceTag3", x.Tag3); - }); + result.result.DT_TableDataT1.ForEach(async x => + { + x.ItemType1 = await GetParaLabel("PerformanceItemType1", x.ItemType1); + x.ItemType2 = await GetParaLabel("PerformanceItemType2", x.ItemType2); + x.ItemType3 = await GetParaLabel("PerformanceItemType3", x.ItemType3); + x.ItemKind = await GetParaLabel("PerformanceItemKind", x.ItemKind); + x.DeptType = await GetParaLabel("PerformanceDeptType", x.DeptType); + x.Tag1 = await GetParaLabel("PerformanceTag1", x.Tag1); + x.Tag2 = await GetParaLabel("PerformanceTag2", x.Tag2); + x.Tag3 = await GetParaLabel("PerformanceTag3", x.Tag3); + }); - return result; - } + return result; } } \ No newline at end of file diff --git a/Tiobon.Core.Services/Ghrp/Ghrp_PerformancePeriodServices.cs b/Tiobon.Core.Services/Ghrp/Ghrp_PerformancePeriodServices.cs index 8f20c80b..908d06fa 100644 --- a/Tiobon.Core.Services/Ghrp/Ghrp_PerformancePeriodServices.cs +++ b/Tiobon.Core.Services/Ghrp/Ghrp_PerformancePeriodServices.cs @@ -1,95 +1,86 @@ - -using Tiobon.Core.IServices; -using Tiobon.Core.Model.Models; -using Tiobon.Core.Services.BASE; -using Tiobon.Core.IRepository.Base; -using Tiobon.Core.Common.Caches; -using Tiobon.Core.Common.DB.Dapper.Extensions; -using Microsoft.EntityFrameworkCore.SqlServer.Query.Internal; +namespace Tiobon.Core.Services; -namespace Tiobon.Core.Services +/// +/// 考核期间 (服务) +/// +public class Ghrp_PerformancePeriodServices : BaseServices, IGhrp_PerformancePeriodServices { - /// - /// 考核期间 (服务) - /// - public class Ghrp_PerformancePeriodServices : BaseServices, IGhrp_PerformancePeriodServices + private readonly IBaseRepository _dal; + public Ghrp_PerformancePeriodServices(ICaching caching, IBaseRepository dal) + { + this._dal = dal; + base.BaseDal = dal; + base._caching = caching; + } + /// + /// 查询 + /// + /// + /// + /// + /// + public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) { - private readonly IBaseRepository _dal; - public Ghrp_PerformancePeriodServices(ICaching caching, IBaseRepository dal) - { - this._dal = dal; - base.BaseDal = dal; - base._caching = caching; - } - /// - /// 查询 - /// - /// - /// - /// - /// - public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) - { - var result = await base.QueryFilterPage(filter, condition, IsEnable); + var result = await base.QueryFilterPage(filter, condition, IsEnable); - result.result.DT_TableDataT1.ForEach(async x => - { - x.BeginDate = string.IsNullOrEmpty(x.BeginDate)?"":Convert.ToDateTime(x.BeginDate).ToString("yyyy-MM-dd"); - x.EndDate = string.IsNullOrEmpty(x.EndDate) ? "" : Convert.ToDateTime(x.EndDate).ToString("yyyy-MM-dd"); - x.StaffBeginDate = string.IsNullOrEmpty(x.StaffBeginDate) ? "" : Convert.ToDateTime(x.StaffBeginDate).ToString("yyyy-MM-dd"); - x.StaffEndDate = string.IsNullOrEmpty(x.StaffEndDate) ? "" : Convert.ToDateTime(x.StaffEndDate).ToString("yyyy-MM-dd"); - x.MGBeginDate = string.IsNullOrEmpty(x.MGBeginDate) ? "" : Convert.ToDateTime(x.MGBeginDate).ToString("yyyy-MM-dd"); - x.MGEndDate = string.IsNullOrEmpty(x.MGEndDate) ? "" : Convert.ToDateTime(x.MGEndDate).ToString("yyyy-MM-dd"); - x.OnJobBaseDate = string.IsNullOrEmpty(x.OnJobBaseDate) ? "" : Convert.ToDateTime(x.OnJobBaseDate).ToString("yyyy-MM-dd"); + result.result.DT_TableDataT1.ForEach(async x => + { + x.BeginDate = string.IsNullOrEmpty(x.BeginDate)?"":Convert.ToDateTime(x.BeginDate).ToString("yyyy-MM-dd"); + x.EndDate = string.IsNullOrEmpty(x.EndDate) ? "" : Convert.ToDateTime(x.EndDate).ToString("yyyy-MM-dd"); + x.StaffBeginDate = string.IsNullOrEmpty(x.StaffBeginDate) ? "" : Convert.ToDateTime(x.StaffBeginDate).ToString("yyyy-MM-dd"); + x.StaffEndDate = string.IsNullOrEmpty(x.StaffEndDate) ? "" : Convert.ToDateTime(x.StaffEndDate).ToString("yyyy-MM-dd"); + x.MGBeginDate = string.IsNullOrEmpty(x.MGBeginDate) ? "" : Convert.ToDateTime(x.MGBeginDate).ToString("yyyy-MM-dd"); + x.MGEndDate = string.IsNullOrEmpty(x.MGEndDate) ? "" : Convert.ToDateTime(x.MGEndDate).ToString("yyyy-MM-dd"); + x.OnJobBaseDate = string.IsNullOrEmpty(x.OnJobBaseDate) ? "" : Convert.ToDateTime(x.OnJobBaseDate).ToString("yyyy-MM-dd"); - x.Stage = await GetParaLabel("PerformanceStage", x.Stage); - x.StageItem = await GetParaLabel("PerformanceStageItem", x.StageItem); - x.PerformancePeriodTypeName = await Db.Queryable().Where(a => a.Id==x.PerformancePeriodTypeID).Select(x=> x.PeriodTypeName).FirstAsync(); - x.PrePerformancePeriodName = await Db.Queryable().Where(a => a.Id == x.PrePerformancePeriodID).Select(x => x.PeriodName).FirstAsync(); - }); + x.Stage = await GetParaLabel("PerformanceStage", x.Stage); + x.StageItem = await GetParaLabel("PerformanceStageItem", x.StageItem); + x.PerformancePeriodTypeName = await Db.Queryable().Where(a => a.Id==x.PerformancePeriodTypeID).Select(x=> x.PeriodTypeName).FirstAsync(); + x.PrePerformancePeriodName = await Db.Queryable().Where(a => a.Id == x.PrePerformancePeriodID).Select(x => x.PeriodName).FirstAsync(); + }); - return result; - } + return result; + } - public override async Task Add(InsertGhrp_PerformancePeriodInput entity) - { - if (entity.PerformancePeriodTypeID != null) - entity.PeriodType = await Db.Queryable().Where(a => a.Id == entity.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync(); - var result = await base.Add(entity); + public override async Task Add(InsertGhrp_PerformancePeriodInput entity) + { + if (entity.PerformancePeriodTypeID != null) + entity.PeriodType = await Db.Queryable().Where(a => a.Id == entity.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync(); + var result = await base.Add(entity); - return result; - } + return result; + } - public override async Task Update(long Id, EditGhrp_PerformancePeriodInput editModel) - { - if (editModel.PerformancePeriodTypeID != null) - editModel.PeriodType = await Db.Queryable().Where(a => a.Id == editModel.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync(); + public override async Task Update(long Id, EditGhrp_PerformancePeriodInput editModel) + { + if (editModel.PerformancePeriodTypeID != null) + editModel.PeriodType = await Db.Queryable().Where(a => a.Id == editModel.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync(); - var result = await base.Update(Id, editModel, null, ["Status"]); - return result; - } + var result = await base.Update(Id, editModel, null, ["Status"]); + return result; + } - /// - /// 批量生成期间 - /// - /// - /// - public async Task BatchCreatePeriod(JObject jsonParam) - { - string PerformancePeriodTypeID = jsonParam["PerformancePeriodTypeID"]?.Value() ?? ""; // 考核周期类别 - if (string.IsNullOrEmpty(PerformancePeriodTypeID)) return ServiceResult.OprateSuccess("考核周期类别不能为空!"); - string YYYY = jsonParam["YYYY"]?.Value() ?? ""; // 展开年度 - if (string.IsNullOrEmpty(YYYY)) return ServiceResult.OprateSuccess("展开年度不能为空!"); - string BeginDate = jsonParam["BeginDate"]?.Value() ?? ""; // 期间开始日 - if (string.IsNullOrEmpty(BeginDate)) return ServiceResult.OprateSuccess("期间开始日不能为空!"); - string StaffBeginDate = jsonParam["StaffBeginDate"]?.Value() ?? "";// 员工填写开始日 - string StaffDays = jsonParam["StaffDays"]?.Value() ?? ""; // 填写天数 - string MGBeginDate = jsonParam["MGBeginDate"]?.Value() ?? ""; // 主管填写开始日 - string MGDays = jsonParam["MGDays"]?.Value() ?? ""; // 主管填写天数 - string OnJobBaseType = jsonParam["OnJobBaseType"]?.Value() ?? ""; // 人员状态基准日 - if (string.IsNullOrEmpty(OnJobBaseType)) return ServiceResult.OprateSuccess("人员状态基准日不能为空!"); - string sql = @$" + /// + /// 批量生成期间 + /// + /// + /// + public async Task BatchCreatePeriod(JObject jsonParam) + { + string PerformancePeriodTypeID = jsonParam["PerformancePeriodTypeID"]?.Value() ?? ""; // 考核周期类别 + if (string.IsNullOrEmpty(PerformancePeriodTypeID)) return ServiceResult.OprateSuccess("考核周期类别不能为空!"); + string YYYY = jsonParam["YYYY"]?.Value() ?? ""; // 展开年度 + if (string.IsNullOrEmpty(YYYY)) return ServiceResult.OprateSuccess("展开年度不能为空!"); + string BeginDate = jsonParam["BeginDate"]?.Value() ?? ""; // 期间开始日 + if (string.IsNullOrEmpty(BeginDate)) return ServiceResult.OprateSuccess("期间开始日不能为空!"); + string StaffBeginDate = jsonParam["StaffBeginDate"]?.Value() ?? "";// 员工填写开始日 + string StaffDays = jsonParam["StaffDays"]?.Value() ?? ""; // 填写天数 + string MGBeginDate = jsonParam["MGBeginDate"]?.Value() ?? ""; // 主管填写开始日 + string MGDays = jsonParam["MGDays"]?.Value() ?? ""; // 主管填写天数 + string OnJobBaseType = jsonParam["OnJobBaseType"]?.Value() ?? ""; // 人员状态基准日 + if (string.IsNullOrEmpty(OnJobBaseType)) return ServiceResult.OprateSuccess("人员状态基准日不能为空!"); + string sql = @$" Declare @PerformancePeriodTypeID nvarchar(100) = '{PerformancePeriodTypeID}'; Declare @YYYY nvarchar(100) = '{YYYY}' Declare @BeginDate nvarchar(100) = '{BeginDate}' @@ -194,9 +185,8 @@ namespace Tiobon.Core.Services from Ghrp_PerformancePeriod a where Reverse1=@GUID "; - await Db.Ado.ExecuteCommandAsync(sql); - return ServiceResult.OprateSuccess("批量展开成功!"); - } - + await Db.Ado.ExecuteCommandAsync(sql); + return ServiceResult.OprateSuccess("批量展开成功!"); } + } \ No newline at end of file diff --git a/Tiobon.Core.Services/Ghrp/Ghrp_PerformancePeriodTypeServices.cs b/Tiobon.Core.Services/Ghrp/Ghrp_PerformancePeriodTypeServices.cs index 56d568c3..b64b3dab 100644 --- a/Tiobon.Core.Services/Ghrp/Ghrp_PerformancePeriodTypeServices.cs +++ b/Tiobon.Core.Services/Ghrp/Ghrp_PerformancePeriodTypeServices.cs @@ -1,76 +1,67 @@ - -using Tiobon.Core.IServices; -using Tiobon.Core.Model.Models; -using Tiobon.Core.Services.BASE; -using Tiobon.Core.IRepository.Base; -using Tiobon.Core.Common.Caches; -using Tiobon.Core.Common.DB.Dapper.Extensions; +namespace Tiobon.Core.Services; -namespace Tiobon.Core.Services +/// +/// 考核周期类别 (服务) +/// +public class Ghrp_PerformancePeriodTypeServices : BaseServices, IGhrp_PerformancePeriodTypeServices { - /// - /// 考核周期类别 (服务) - /// - public class Ghrp_PerformancePeriodTypeServices : BaseServices, IGhrp_PerformancePeriodTypeServices + private readonly IBaseRepository _dal; + public Ghrp_PerformancePeriodTypeServices(ICaching caching, IBaseRepository dal) + { + this._dal = dal; + base.BaseDal = dal; + base._caching = caching; + } + public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) { - private readonly IBaseRepository _dal; - public Ghrp_PerformancePeriodTypeServices(ICaching caching, IBaseRepository dal) - { - this._dal = dal; - base.BaseDal = dal; - base._caching = caching; - } - public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) - { - - var result = await base.QueryFilterPage(filter, condition, IsEnable); - result.result.DT_TableDataT1.ForEach(async x => - { - x.Stage = await GetParaLabel("PerformanceStage", x.Stage); - x.StageItems = await GetParaLabelListString("Performance", "PerformanceStageItem", x.StageItems); - x.DataBelongName = Db.Ado.GetString("select DataBelongName from Ghrs_DataBelong where DataBelongID=@DataBelongID" - , new { DataBelongID=x.DataBelongID }); - }); - return result; - } + var result = await base.QueryFilterPage(filter, condition, IsEnable); - public override async Task Add(InsertGhrp_PerformancePeriodTypeInput entity) + result.result.DT_TableDataT1.ForEach(async x => { - if (entity.StageItems_List != null) - entity.StageItems = JsonHelper.ObjToJson(entity.StageItems_List); - var result = await base.Add(entity); + x.Stage = await GetParaLabel("PerformanceStage", x.Stage); + x.StageItems = await GetParaLabelListString("Performance", "PerformanceStageItem", x.StageItems); + x.DataBelongName = Db.Ado.GetString("select DataBelongName from Ghrs_DataBelong where DataBelongID=@DataBelongID" + , new { DataBelongID=x.DataBelongID }); + }); + return result; + } - return result; - } + public override async Task Add(InsertGhrp_PerformancePeriodTypeInput entity) + { + if (entity.StageItems_List != null) + entity.StageItems = JsonHelper.ObjToJson(entity.StageItems_List); + var result = await base.Add(entity); - public override async Task Update(long Id, EditGhrp_PerformancePeriodTypeInput editModel) - { - if (editModel.StageItems_List != null) - editModel.StageItems = JsonHelper.ObjToJson(editModel.StageItems_List); - var result = await base.Update(Id, editModel, null, ["Status"]); - return result; - } + return result; + } - public override async Task> QueryForm(QueryForm body) - { - var result = await base.QueryForm(body); + public override async Task Update(long Id, EditGhrp_PerformancePeriodTypeInput editModel) + { + if (editModel.StageItems_List != null) + editModel.StageItems = JsonHelper.ObjToJson(editModel.StageItems_List); + var result = await base.Update(Id, editModel, null, ["Status"]); + return result; + } + + public override async Task> QueryForm(QueryForm body) + { + var result = await base.QueryForm(body); - var StageItems = result.result.DT_TableDataT1[0].StageItems; - if (!string.IsNullOrWhiteSpace(StageItems)) - result.result.DT_TableDataT1[0].StageItems_List = JsonConvert.DeserializeObject>(StageItems); + var StageItems = result.result.DT_TableDataT1[0].StageItems; + if (!string.IsNullOrWhiteSpace(StageItems)) + result.result.DT_TableDataT1[0].StageItems_List = JsonConvert.DeserializeObject>(StageItems); - return result; - } + return result; + } - public async Task>> GetStageItems(string Stage) - { - List StageItmes = []; - if (Stage == "1Q1C") StageItmes = new List { "C" }; - if (Stage == "1Q2C") StageItmes = new List { "A", "C" }; - if (Stage == "1Q3C") StageItmes = new List { "A", "B", "C" }; + public async Task>> GetStageItems(string Stage) + { + List StageItmes = []; + if (Stage == "1Q1C") StageItmes = new List { "C" }; + if (Stage == "1Q2C") StageItmes = new List { "A", "C" }; + if (Stage == "1Q3C") StageItmes = new List { "A", "B", "C" }; - return ServiceResult>.OprateSuccess("查询成功!", StageItmes); - } + return ServiceResult>.OprateSuccess("查询成功!", StageItmes); } } \ No newline at end of file diff --git a/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceTemplateServices.cs b/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceTemplateServices.cs index d6f6d891..a295be93 100644 --- a/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceTemplateServices.cs +++ b/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceTemplateServices.cs @@ -1,62 +1,53 @@ - -using Tiobon.Core.IServices; -using Tiobon.Core.Model.Models; -using Tiobon.Core.Services.BASE; -using Tiobon.Core.IRepository.Base; -using Tiobon.Core.Common.Caches; -using Tiobon.Core.Common.DB.Dapper.Extensions; - -namespace Tiobon.Core.Services +namespace Tiobon.Core.Services; + +/// +/// 考核模板 (服务) +/// +public class Ghrp_PerformanceTemplateServices : BaseServices, IGhrp_PerformanceTemplateServices { - /// - /// 考核模板 (服务) - /// - public class Ghrp_PerformanceTemplateServices : BaseServices, IGhrp_PerformanceTemplateServices + private readonly IBaseRepository _dal; + public Ghrp_PerformanceTemplateServices(ICaching caching, IBaseRepository dal) { - private readonly IBaseRepository _dal; - public Ghrp_PerformanceTemplateServices(ICaching caching, IBaseRepository dal) - { - this._dal = dal; - base.BaseDal = dal; - base._caching = caching; - } + this._dal = dal; + base.BaseDal = dal; + base._caching = caching; + } - public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) - { + public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) + { + + var result = await base.QueryFilterPage(filter, condition, IsEnable); - var result = await base.QueryFilterPage(filter, condition, IsEnable); - - result.result.DT_TableDataT1.ForEach(async x => - { - x.StageItem = await GetParaLabel("PerformanceStageItem", x.StageItem); - x.MGShowType = await GetParaLabel("PerformanceMGShowType", x.MGShowType); - x.TemplateType = await GetParaLabel("PerformanceTemplateType", x.TemplateType); - //x.MGShowType = await GetParaLabelListString("Performance", "PerformanceMGShowType", x.MGShowType); - //x.TemplateType = await GetParaLabelListString("Performance", "PerformanceTemplateType", x.TemplateType); - x.StaffGroupName = Db.Ado.GetString("select StaffGroupName from Ghra_StaffGroup where ID=@StaffGroupID" - , new { StaffGroupID = x.StaffGroupID }); - x.PeriodTypeName = Db.Ado.GetString("select PeriodTypeName from Ghrp_PerformancePeriodType where ID=@PerformancePeriodTypeID" - , new { PerformancePeriodTypeID = x.PerformancePeriodTypeID }); - }); - return result; - } - - public override async Task Add(InsertGhrp_PerformanceTemplateInput entity) + result.result.DT_TableDataT1.ForEach(async x => { - if (entity.PerformancePeriodTypeID != null) - entity.PeriodTypeNo = await Db.Queryable().Where(a => a.Id == entity.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync(); - var result = await base.Add(entity); + x.StageItem = await GetParaLabel("PerformanceStageItem", x.StageItem); + x.MGShowType = await GetParaLabel("PerformanceMGShowType", x.MGShowType); + x.TemplateType = await GetParaLabel("PerformanceTemplateType", x.TemplateType); + //x.MGShowType = await GetParaLabelListString("Performance", "PerformanceMGShowType", x.MGShowType); + //x.TemplateType = await GetParaLabelListString("Performance", "PerformanceTemplateType", x.TemplateType); + x.StaffGroupName = Db.Ado.GetString("select StaffGroupName from Ghra_StaffGroup where ID=@StaffGroupID" + , new { StaffGroupID = x.StaffGroupID }); + x.PeriodTypeName = Db.Ado.GetString("select PeriodTypeName from Ghrp_PerformancePeriodType where ID=@PerformancePeriodTypeID" + , new { PerformancePeriodTypeID = x.PerformancePeriodTypeID }); + }); + return result; + } - return result; - } + public override async Task Add(InsertGhrp_PerformanceTemplateInput entity) + { + if (entity.PerformancePeriodTypeID != null) + entity.PeriodTypeNo = await Db.Queryable().Where(a => a.Id == entity.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync(); + var result = await base.Add(entity); - public override async Task Update(long Id, EditGhrp_PerformanceTemplateInput editModel) - { - if (editModel.PerformancePeriodTypeID != null) - editModel.PeriodTypeNo = await Db.Queryable().Where(a => a.Id == editModel.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync(); + return result; + } + + public override async Task Update(long Id, EditGhrp_PerformanceTemplateInput editModel) + { + if (editModel.PerformancePeriodTypeID != null) + editModel.PeriodTypeNo = await Db.Queryable().Where(a => a.Id == editModel.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync(); - var result = await base.Update(Id, editModel, null, ["Status"]); - return result; - } + var result = await base.Update(Id, editModel, null, ["Status"]); + return result; } } \ No newline at end of file diff --git a/Tiobon.Core/Tiobon.Core.xml b/Tiobon.Core/Tiobon.Core.xml index 96d5b023..4c356729 100644 --- a/Tiobon.Core/Tiobon.Core.xml +++ b/Tiobon.Core/Tiobon.Core.xml @@ -79,14 +79,14 @@ 初始化 (注入) - + 根据条件查询数据 条件 - + 查询作废 @@ -100,7 +100,7 @@ 主键ID - + 查询菜单表单信息 @@ -148,7 +148,7 @@ 主键IDs - + Excel导出 @@ -205,7 +205,7 @@ - + 导出Excel @@ -512,7 +512,7 @@ - + 获取新入职人员列表 @@ -749,7 +749,7 @@ 培训记录(Controller) - + 根据条件查询数据 @@ -804,7 +804,7 @@ 课程(Controller) - + 根据条件查询数据 @@ -827,7 +827,7 @@ - + 统计 @@ -873,14 +873,14 @@ 学分记录(Controller) - + 查询明细数据 body - + 根据工号查询学分明细 @@ -916,7 +916,7 @@ - + 根据条件查询数据 @@ -1019,7 +1019,7 @@ - + 根据条件查询数据 @@ -1072,7 +1072,7 @@ 考试记录(Controller) - + 根据条件查询数据 @@ -1194,7 +1194,7 @@ 开班管理(Controller) - + 根据条件查询数据 @@ -1355,7 +1355,7 @@ 培训计划(Controller) - + 根据条件查询数据 @@ -1363,21 +1363,21 @@ status - + 根据条件查询数据 条件 - + 根据条件查询数据 条件 - + 培训计划达成率——宝连通 @@ -1421,7 +1421,7 @@ 培训需求(Controller) - + 根据条件查询数据 @@ -1429,7 +1429,7 @@ status - + 查询菜单表单信息 @@ -1441,7 +1441,7 @@ 必选修查询(Controller) - + 根据条件查询数据 @@ -1469,28 +1469,28 @@ 培训记录(Controller) - + 获取ESS查询条件 - + 获取ESS查询条件 - + 获取学习记录 - + 获取课程 @@ -1514,7 +1514,7 @@ - + 讲师上课分析 @@ -1543,7 +1543,7 @@ 必选修规则结果(Controller) - + 根据条件查询数据 @@ -1561,7 +1561,7 @@ 问卷调查(Controller) - + 根据条件查询数据 @@ -1715,7 +1715,7 @@ 培训讲师异动(Controller) - + 根据条件查询数据 @@ -1728,7 +1728,7 @@ Ghre_Teacher(Controller) - + 根据条件查询数据 @@ -1756,7 +1756,7 @@ 【牛尾】培训计划(Controller) - + 根据条件查询数据 @@ -1796,7 +1796,7 @@ 人力需求维护(Controller) - + 根据条件查询数据 @@ -1804,7 +1804,7 @@ status - + Excel导出 @@ -1883,7 +1883,7 @@ - + 根据条件查询数据 @@ -1960,7 +1960,7 @@ - + 根据条件查询数据 @@ -2087,7 +2087,7 @@ 简历Ids - + ESS端查询面试记录 @@ -2171,7 +2171,7 @@ 语言别 - + Excel导出录用名单 @@ -2226,7 +2226,7 @@ - + 获取分组数据 @@ -2249,28 +2249,28 @@ - + 获取分组数据 - + 执行分组列栏位操作 - + 查询模板栏位 - + 查询模板栏位