From 093743bbace706a155728fd6caa23294066db064 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Wed, 25 Dec 2024 10:57:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E8=AF=81=E5=AF=B9=E7=85=A7=E8=A1=A8?= =?UTF-8?q?=E6=96=B0=E5=A2=9EExcel=E5=AF=BC=E5=85=A5,=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=89=8B=E5=8A=A8=E5=BD=95=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tiobon.Core.Api/Tiobon.Core.Model.xml | 18 +- .../1871744379090243584/Ghre_Certificate.xlsx | Bin 16796 -> 0 bytes .../Base/Ghre/Ghre_Certificate.Dto.Base.cs | 281 +++++++++--------- .../Models/Ghre/Ghre_Certificate.cs | 15 +- .../Ghre/Ghre_CertificateServices.cs | 6 +- Tiobon.Core/Tiobon.Core.Model.xml | 18 +- 6 files changed, 182 insertions(+), 156 deletions(-) delete mode 100644 Tiobon.Core.Api/wwwroot/files/import/1871744379090243584/Ghre_Certificate.xlsx diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml index eb2352e2..fe3bbcc0 100644 --- a/Tiobon.Core.Api/Tiobon.Core.Model.xml +++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml @@ -2202,7 +2202,12 @@ - 培训记录 (Dto.Base) + 培训证书 (Dto.Base) + + + + + 培训证书规则ID @@ -2247,7 +2252,7 @@ - 颁发来源 + 颁奖来源 @@ -15718,7 +15723,12 @@ - 培训记录 (Model) + 培训证书 (Model) + + + + + 培训证书规则ID @@ -15763,7 +15773,7 @@ - 颁发来源 + 颁奖来源 diff --git a/Tiobon.Core.Api/wwwroot/files/import/1871744379090243584/Ghre_Certificate.xlsx b/Tiobon.Core.Api/wwwroot/files/import/1871744379090243584/Ghre_Certificate.xlsx deleted file mode 100644 index 7064981b540ca11597c427be94f7a6f4760125fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16796 zcmeHuWl$aKvi8E=-6gm~aCdk2;O-6y?i$=BxI4k!U4sXAC%E&G?0wJPC+FO{b-%y& z%v)=iUQ9n#Yo`6}mX`tnMFoHZAOQdX5kLgAAs`zF09XVE08jvsz*<7KHcrMiP9K!r z?Tj6D=-jNW2y;MzDZT)J-|qj<@qhRUlqD?70y828oymL(ma&D?y6VR4=?)B*Vo@OY zQV+6R#gq4*u(hogEP}B!h=%Q>#op^nN_}na&@f9MGV;;d2>s7Quu+ zmjWTBtuhL?vH=_g+15z-)Bqk+We7McN*h2uzSO#j|>T zy6lN`jAZiQmH-DCtT4+vse*ud{2(v$1vlh&%FVkU;_%OPs%4?x|qVh=`rKR!!% zI>JK$Xdf8#ERPfBximof(j>2Pa52;>u23mDqtz+U{ZVOj8brCxiwxl;(*w%hU8YX|TNR*2ceH z4Tqty<{Fr?arG{86u)tluiyv5n^3;Kf&k?INwZOO+l_(WG<)q$abeyx`-6kAl_Ndf z&+~sY`v0&R|Lv!j#mY#5{M2Z_SEA82u4O9XX)Ah>eHo)?AjXtuJ+_qSyyoXyQ30py zdVG)cO4m&HlxvfkT(?}rk1oiGB2a$mCNnLn-BQnujSxt24x*9A;@!T)RwYNJ*Y6{# zcCr_)dBe&!a{}l{Uwts0#Z>$Jc$&1$+0_#qFg33v5lTq46L#=|*0ANrnES@XA-Nnu za(M4r?^{{fWGc-^JZy*Z-%&>w2#-f=+(j=69$vEKsAlJrbX9o`AA}4)5*vcxlWRU_ z?VnjrDJqJR2Bv~!?A{-i8!Koe@_wpw8zlOgixq%LqC*r%UI20IIcFqhCIGn z^YCv~rW|iDJ{|-BfPV9hKb6YOir&@M!P3Ci*7Bz#EK?b?Sr$cX$Jpm$(E3365|TsF ztxOn-YCs4DyLV>5uO36~NEADAT0w&)01uY>g+l%d!lV?u$j6alio-9qh7G4$PKl`2 zLlz3;#e^pg980zxDfcEWuP;;+bxPe}#v(ptiJ{Djy)@Z<5D6LIN(^p_$Uu-6kPYu#NHT8m3 zOOahG(YXF`N+k|%V__`>L&I(T4z`^%mvK`x(W?1q1b(+MW*L??tcPb4W}=z%)3bIO zy!}nX%0YFoFj%C@u_XLD>NTW`9$gqab^`CKmNKnfW2QP1FNuP|w!NYyx?yOBLeP-& z>I+_qYf7rbC_#`c#kNPlc0es4NI*|JLktPz`iK&X>(@1WL|=Zq2g1ikh)qXV7LOv` zDxU&bVYOa9PO%5ZDlYy9A&K`2)kdAdvc4N_kG$k>>5Q;$AZ>}m-ae$2;JeLm(Om9o!; z`1(zi-Ylld*vDxEyl}ieX=M1$kBkXS;945uMX}=}|GortM7gZmNt~NU9;b?rHe$vh zQJ9%eJ!B9|7vm=<7AquXR!r4M)MV9KRpreNcD@de+u5C#wUN z1)jB-Pfy@(XuRpaTb|+I+`T$2>{RmUKE3qpu-U$NJg*45PrhzaV6Qz+cw(Hbeeim` z5pvOfzPKjXTYG(sk|{vMuw&)jPEDnvy``DCQN|sTmbN==#%L;`LrvjN~1KoqZGBpp}i$$#2OG$+*_0i z-hQoK&6=w7-0|kw{?+IC^2R4!zA0|=o6o}rKmxrf@E>mP?`r&CE)eJ~sC`5EzkQS` z%1HGxAhyB01T(m%xu78}I?)p!s~jOf4%JaElM%i5x?01bYSvMolcEQ)4RSvl8*sU0 zf!_o{x$dGa3PT3N3MM&L~u z>$sDX(xP&<;UxGtOxdw~K{Il7X0kmrFuV5lrvFuBsChLVP2ZBAbsPWy^X-m5ZN8(K zv9XgQ{jWcaKaGES{BqP1!<(<9zQ&_jivs~gC+@cR3W-)+qM9FUxg{MUf?HUxp;y}e zaR3UctTB|8ILgqpJ;j^5=jjIt%mwrkqzW1H6|m%&Z7Q@Kx@<sS(*(;A?7?;X=CmbrmLWz@w47!y)ArIm1I?ElPxMO4K>h&x9K;MBqpeWsy zByHFogW3ALj&wVkbSYCs=5@95Z{X`iYXQ%yWuOkL%IeT810{#lMmJc{%pTpM#^1x# z+`1-^n^oqh4sMRX>l@?EufdJ+O!1gEvos6Ra)mo)+_-G7D-K<} zr$_=L@Sq>d!q$kta`cCH(}%Ck{(uS5IaQW!Wz6)U-eBjU@3K3#P(F(6AIDMyi?t_F zZ0sN}^K_Bi4~R7s!V?`|U8t2JLkH)>R9D6N_Ud9?p!o8Oj~jHTRXX z9`4p7%SVeIDB3D~K|Q(lQ_JlM=zQ(-8rQep;JJ%Wo68?G%67xksJM7Ju`p(aTHD)8 z`POSN(b^6pRT5TZg5zFRoTjtb;3oPd8juz+opHMR8<*u-Wn173x8A;Kh&+rwJ=rpZM&m>v_v{GPkx3Yc- zgGw@$^#4ry7k7QrvtVFJ#+HUF09X1SN#^eVkJZKezg~3#=1?=p1*Fna$%zcK`kLK! zR%th-Dtlf_Sf?p2r?+XJmWp5Cytk{AKC~|dXc`U@;<&)Gc6SBgTJ3iQ@qF7)SLgBG zFAlz#B5( zceWl!QMqb{bjI33Uj4GN#4hB(A|+k6E#YjCdXvM%DyM){Mrmu_Z4ZC2oM1nW2cb)I zS*)0oStk6J<2=CU$K$AD{Aj}%xlfbXMABG0)(aoMc~J9M$|JjUOmo9)LcF&6Z=KTz z2#(Lt5CFgn-p}gXFX!ZBW^8Rt|LgqAFCA-)+2XRGcD(z+r|xK5n`Sjla#%2Iymp=6I5h}eAaUFywI*O=_%_fI}~-R1#UauPh4 z$XME%9*^bWZVG)QM3DPRO(91DWy7x}Tm2)v@hu85f9E6zKz`t;|+Q$QK{aN7@kD*FN4w z`iiBgz{LtJ8Ub7Dt0L%ChS<6eMnNO?D0YQ=$TNC(eVgv1Y)wXCbOu<5R#?9{G^Z0T zrL%qv^J-YATdJVdR;Rqf0Vu^as+P`Lsla%F`}82jf31mkpIf?|?GG`9G9n;%XQQr7 zNDZg|k(Cndo;_tYO1E93UI1=HV2N^fKdf!-zSM;i-8Uh-ZW*~_;yC_`kXc{GK;N~X zTlFyzof(6wb1`elaHJ>X8Lx2LxCCTXZl5zk=VU`Nw26E!JdC!JI>)11@|jW(LX(NX zHpvSXg4`vOZT2&0gU}^uyy~Y5bTE*x4K|`MD>&?G!3yfdy!?256|5#lko)#IS@o>> zcw4yg@z&++#mt=}K+SH69;N;1CXTP&jo|s^t~BYE?{do+tK;@O*R;dy5JC_+lGNkn zK6fpX+v8<@3uA5NwlfLrG;sqj6*06T&bn?KWpWI&KOxc+{%C{ldS*j2I z`~mSjL4|1$If3B!9oN7#p!^L}xboNe_aSeZ%N}!6vHc9kT*y(m}M@EXR zImXqCla=1$t))3a|0ND+$$^`(WOjoJ#&oLh^W3Ff8ns=52!Y+9V{PCioj%0URc+5fISiyoq?} zRW)6e`e=^<-!a3gA}l4qGEY(Z6{v|7AIxkZCmXh}N--r9=TAzlk{iXd_X|Gnv5dN7 zHFdM4G0HMkjxtA%EVyoy1yG1uYTvJyejh`8#(DCY0a@`3M;=%a!|+S1I}2fkM|?IR zdU%so!^1g{xPf>{I+5Vn_dxi)qe{4PU7%T% zkecjs5gXcrOd$NrCECLmZQjRbZn{4C{DG5t^Y*wNk28E@DveTWP~g+(J?&VtOcKDRCWTKqE~}w zzpD!7vjn(oTr*y883Kk_HZrTl=TQ+9Yr{y4Ck2&2YS=V!6os8Ud$K&uE~a{3=1K>( z>TeOdqAv%Fsqpo+3Z3AGlzGW1!HDu2F3eq-wD3!&?uT=g(or9#&|bL-3ySb)zZ>#f|k~0vugVy6MIXP2KrX3<{?+ALcd1iP=g@& z<%pzZFUU%34bF~iMcDXVtztfI|Lc2|D|zsX79nPA}Ox+^1n%>?|SG0gpbHyBa z2oqD$leur|QlFPue^&Cm5uIFxH4wCdPV{Ii zeE{YPdJX)Qb<&H%R}3T`hK2jIJlD!s3j~u|9&qw`9R)zK-cwkTHOBOdp3JnG_j)lx zUYD8K>|V_yid#VmX!IAM=6pm2T^Eh&7oS)dJKCc>gl39B$C8+79atG}%b2oc-->wJ zp`ODPa}iJ=gclYD6@d#8G^JtlG`X{J20ad6NJLT;fO;H^RnlUoj04kZz8#`$YGLg( zX}pW5x#K0oqWxgS*48-4s(cP6*R&u-Gc&k3RjZ;K?-b)##I>AXU0wTJV|zTD7@FSJ zN4{mRp)5k238+vZf%?2?Z4W|SW%fxJczb|oF;nD$y!mWcjJQd4$cDXnB0VaO7$X4* zV_92T`aE6P<%*bIcNZzPvuCX2pwYwl`y{G~)l6#C7BQ`)kk3)4g9BM1R;gO6_hk>k znOAJ-TwPh`*0tzBAIHI&iE)3|1G{-P$ye@~AHZr~zdwkd>b<_~_OyK9dwF^uSo0E= z6nvj~Y62T^IZec zu3jhDYw;?k&w6^yXY-G6+e+~Hwd2rDr%|(|v8N~PuCH(^F&Ctg)zHQv%$%YM;vo@n zB0}uj0rcIP9<2)Ril>P?6!&}D;t4TP~&=3&7rq(So0yqLv) z6{!}$4@8tNDBL0~EF~_aR84mgy9BOcl$xQoQd%P+UufwaY|w}gHI>KzvY}sY@u3TR z%ra690kI=o)zDQBg7Bh8KT^k`lW*|^T&&p2%{uQeO;oL<$Hm`<_26a1x?aziF5Tjp;F#<)NacnSmF+tu0wq_|uW>$SYP2A|5W5^*mr) zhs91=HpaCM&&Q3Vc{^Q;iz#(0cPh7vL9b5j)2M6VIW=DhSq*b|ZGK-;seM+od5Fzk z?so64#7}7gscfa~n{0v6h$xqLFSsL_w2$#tA39r$H)^JP5G_0l_l4S$5YRUrB}oWa zz}Si@0)%6t{Fw0wuJL;n&$`_4M99;0v+mPjLz$PF;Ev5$tBlW-7OgAtg!Q)(7b9&o z>g0li;FkK1F9eM<_>TzgupN$S8zt-c53+ni`G5^MIE8v{M5&rIoDmD|D zzocXfV5lJSV`EBv0Aal_icKexT^6zET_)myg4B9vZh;=_A*BUxNWmrW^ftz@24Bq* zFBn9~9-1~#XGb;deecta11scil0pX?Nv-~bbMib)>tgF((}orAXW(h_4c83I)DC-z zceV-Z3uZ03RDq@GHRj_owQZc^GNa>PY#J145nHG~PTppxFXchBb)Giy;@t$bZ(S2l zoKASUx*Uk;in*M{BysfCoIGek2HuMLnbPdIf2=o?LtW8eSMEHgkFU~{Qy-viImr6A z8Oej;daBb~)%52!3F@C_)lA>P*htCA!Q965mvzmHlam4#!0bO0Skq7bI9?I0aa;jG zv_IFy+nE#BvOaFbWw<>BUtnY|96%JGO^L^R_$B4e{N}S)ct0}qQT>4Xs=F6A!dXNt zd$q$lCf8`5aG-;*A0Uo-ESaRV+yC3CC@yfnbL^C3ydD}lgFlqDr;L6C$Ofr&Ao$)5 zydaIWo|Gw)g&{Fn@V9Cwx+qz6#^o-LAS_Hr>foGMRG~y0WXNe|xkl(*CQx?+{2luX zt!P7erQ~8t?aL+87cDsfZ6zxqqjeLHHK5@5^R@_RHllSfEzoz&5<@kR!l{1fr=-~& zH#i_1s0Ir^EPCVvPQR*kKnf+pg`Gae`GBq@*`=FLav=yM^P#sbC3r9YNW0y@xgQJj zR)P_{w<}yRPuG5wDK?bl`FVHuOWj=Ub)wUyGVrlP989Z<|=2#Q!L2 z8ae2@{(M37e_s5NJZdi6F3(|k6I8wWt{?G-yDAFi3C>&lB!Rnx^ANo)y1#w>xG_3@I9rdk(JO3Gi~xpFOpY z+|xB*4a@oj($dR5QIv%bhtWXm?h98Cz#ncNRbG>5p~j*H(se8B&-UriBYiM`I)_Md z`QBKc;bZ{B3K@s}sXV-g8E=*oNK!Q?2BX`IFAOBUd)`gn-mnf%3!*V+xJE-l zv^w~^(Z0KRaAe3QzAM-kut9`A@O+w;s3rXVu}LgZ#-qalg-%V`0Gx|_=q4cZX|PGR zuWPnuHO6U&Lzo9SJ@$1g@@R8%OYY<;@+@T~_DsS_lWpN3Gezvl6X|^F3UER!B~r4x z&zI!X%_?7y!Nm3;$lek0%i_+8D2TUZpgwM>n7y~?F29~agO74_Ka!-mv(Zr&Arc0% z^KiKB- zBay5jKhvrtw!}q1Q-xi}lC7nF_4rD<{IWpZT)Ra6@bdKvJ>qeDE}bQb5?io&Cd`E& zX`hLh$T%K345Q@a$`FxM8RP*pc{D&2)#WJ1#w;xV(1?Xc$!^f3#$w3=O?kwZGRz#O zhR(71qFmHI_GKX)*q8Zmvwjc0^{d%?r+IF2>vs{kWAQaW*7kI;+T#@4FM>#cUOob* z^@!*s^0eW)fZ5?VpW1whf(j6k`0)#pa&8GmnVHRi3rC>gbY+J=lJ559OGY!KPedMP zU+rlCSkCr_U*yAnn4H%R8hhF~b96imISnVLWY|$y&G%86f$E`0@YBTE@w27zFyLFI zrkWft=&#Rd$OJh;@QPJib!^aCum_)63d(0n38$hiEP}Co{!#OEk;Ef4N{G*784u zghW`6>B<4XI5z53c7O{FvE-1G*L0!5#iPs`VD^W!is@3cwZoqwrNG2-Xn|G<=S3nT z9OJ0djSpZ=r6-`WoB8JXF!%&Q2RgZKU&nxO`EK6hR8P!e(c;+0_PrzY;OA}4geX6FhnEL&KJP>v1^w;cf?XVW%GqXx1BJutj zt?!HH%4X@0$0CYN5@9mwERc4ukHrKi^ldm>Yf@u?5E!4+rkI%4NxqX{NV?cTO5SXz zz4GD24D~$DxZd=CSmS-UR=62?{*f!Tm5Wdi?E1OG)As3ZWa#nr<@CH^24XFuqb*^D z1C#H8WVz*b?K6I>ay*BYt}3cEX^TDi*PtPaET`zb0xd$({1zDaTJmFor ztHLif4)cCou?x4|b^eON-@zVQGowT@S-2I9R%)(D75r2|iQfMRHNerF<#zPRp^u6{ z&9&H1{mRZi<<8DR@FlrGHKznJGV>iT5JW;B`AmmbBAzEr5xtq+^od3Nck9yFG8aN- z#j^Tu7DGYbn5>p$Z7+7?|p6ZHrIPX`c?&TJrw*W@@)(@8QMPZa1-*JL2iEsp~iI8R%Z{{nZ4X z^%6Q0eF3d5KGQ84w;s({xtedadpP0@L8vl2()oO&6gq^k5t|zuk-HAN-auTQpIwRv z^aZT|woAgdbt++O(sw_Zu^yKr+H5^#koV-0uaI65*!M$*Xo{9PDFrBnE~y4EjDgdp z=MT4iL484=^<*1O zH;j$+l)3Ad&((y{!pI6Wc-NkvZ*x7&Fc{6 z$Xb7v09Hu>Gn+vY66uTCr8lAtoI<*r9h`*1ESUSw-uLqKMIWQ7?TODs8lX*IhPWDP z(hzDtzs9b#CY^Y)FSd--;7zQ3cBm(DJAlpKMq2R<PIHv)TZ$jZYH+5Tvus&tb)#&Wh{QQU`pA;M2wYFo`6>^FflcG%3@nvCV)Zn zmSLOJtQS+%8ky8%46{aF=%Uuo0Sg2Ad)boACHN&4s=gtPWc-&pv-gn{iH@YY42;p_ z8`p|O0W-~X#d3;ALXH$qFfF6EvBH$|WnVhsy>Uy7zfRBW-dY(~c0$Ba>+uzZuWMW` zVU{2vwq#4iK~P>WT4q%gX41b(n8tmGVt#q6U;k@_GP{3qf8V(a^01DJheSc*xPzG-I!AtVZ9>)LE# zfgHSiZ_hLFp%~K^=iNFvc;aww{Lf++Tdw4?rOL=|HB9Og=_)Z`#;x1t$}UPs7$wS% zE0HSLWl9H64^rjD?fJ#Kj!2iC?U@hCVpkg~qxmS^>`G|yBNTf~9?H}*b3m0>qZ^@< z1z5`>v7+~?FcQRgW4MP`5uvMzk#^1XWY>n{q2eav);nEm7`?Ht%iMB5M>AkgCfB?gm~*_)wdL z(1cMSanG2P9D41V;WDUd^czNcji&=kj(yTZSs3jf-ImO!OzwhWJWHJNy>4L{ie>WN zMzp+axEZxqo$HgWkjxGo_S>&ecF4as#zupQaVE_=(zDyxYmPBXfUsf$boq;4F=6WC zq-r`;s~`GY(_@CUJBcKoQ+-LYR0!iD3iN`NR`9!4bS4O+I7|Hj63G)8<(f;Q zTSDwp&1poJ7m=XcH;S~V{fyst8!lL06Y#`!!@KcGKfg&<1vnhNyl%+~>?YtOu;Q41 zE&eDUnBRzMOO6XPEw%_^d8WQg{%R%;_`$7^$^bl*<5{}}qY?hJz{rzuMz}1Er5+{D zAO@_lB*SjWU$vJy+Lk^QEq#97g9=5g|L+f#wT>*%|Z=?^szY9h(e+Jqjt?9?X+9m)U1+ zxG8J5IXfZPZi!|8t{yJ5ntg9>WV zEv%^!o51~o#hZ^O@@9fzJQi!83Ccm1)*Siu^WjB9Uh(BC@rYU<)IE|O<%~KELv7YT zq4VFtijq+f(;8%xW%~EJ=@hjRt>_ql0_tBWm2dTacoH#LFS0(pizOAysIMaG>G8D3RSmyo|h|l33s?ib+3t5Z2*GvUuBkE)Ww( zY#fUqp%6~Evf$;#@pW8tFU@X{!i7o@xK?eZE_FkaiHP^RMr}^*?>Ue{JcnI;*>lK7 zs@bm~RI`JK@lsj2*=1I@2r@pN?Q)y#rF#%0dAv_z0LABxzT|iIb8i^x$O;t^`c5Cw zm+eZ7{yby`5$>csLW60(W=X#8S$Pe`&K=SsZ({p|{B-V~ZmT&GvL$5N}p`D?CN%<^JdRxcR*tJP2|r$9f;AYlFG`& z3HE)#BnMkVlkLq~zxMb$3Sm|r&J6dEeF<|Rhi3T{PNc7k2k?D4C8r{s*FGNGL#&a0 zb>=p{)(A1Nueb2lmT(pR?ymbI!T}2{`WaUcaAFml&g!Ukbg5aoyi=rwwS)yJ=#ETy zJ%zqeIooypQp^srsmW#Z$+}gjON#gk8Rna1iBDq>QqiuCf~o86AKavGm!FmsFg>Rp zVE&!&sDOD6ZF#Ff(4YYTF9bSH&H6 zyVvyC%%kg1{xLQ)4j&$9aO^?n3)>SeGs3Hd+qfSa5k1=bTmq#~|!yg<> zE|-T6qzYxo!s8^$*`8D=ucIJg*Jjx}J`It~TO1dC=XmOeQmyJz)6E`tq$3Vynv>U~ z5o4?#ryocM-ZIvtzJhyjKSXW=Rz*1@r=A|MJ9TVm)HM77+ib^H;U=CBVwKM*>tG8~cUmL$m<|6i z!XLdHKdK2odu-eLy>$hc;clY(7FYAJHl1tHr80RqRvZy%fDa-fupmDqBoGndUxcqc zBsbvSz5k-p4W+O*)vQ3ttsO5j{$)^%t0Xj_uq0!yT`S48(@B9ua5UDEO#5pS=XBV$( z1WjG;bj@-vr^Ky1!5CmM3nWx7M!T$fAFU=`9*R^sHqJj7X1+B{s})IN>dCULt(Jen zA*-iWRwUp*S#qJmPeqnx_4!LNuR-$y&9LB^u0BxduojNi*J!I+=E$fWWH*{hAT<%X zKxB|M6CW!^OjM4JxvX&OA=j`bCPMRCYaUcZ+DMWUH4z;O+7$E}YqsT~X$E%~U;N~B z?M}2)9Uu{#7K5Un^gkP0wlHj%rbvZ+jz%yH5DGy$=qlRN$DD#JBn^RRa71Q$u`|1K-^I zXp$%!raF#D9ILbS!#?a3cIVV0euX(QC!}-oy7+#?9CRj{vnm`nHU>XicY6hE zxNVl=W4j#U4UxSWxIH=%=D;@^{W+MbE$7N(h7Mi~i{9^f9(cJP>Ni;msf#zjd5IPH zvyZrRazz_pa_`p%*d6Vn`}7Y78dxvciW#|DlkvTi@z3NCZoRxc?cE=Kn8+l4*1No+ z=Sg^a+j#odm=_!^k6G)@Zhd@{U8J|}R3lqMc?VlN$2aM9F#dDW>OW1XZwmb>_JdRp z18UzISclNi$FzbYWx-|N;qxxvs?bd>@zZ*}xOkG&i3T?7hNbK~H^=eko$qO=wf-f! zcN*@Nx{V5N~k$ar1Z8qS_7=RppJ8-1zZWl8Hf{L@hv z1;ScqIAPUWTJoc$UD^JPtg4Izk}X|uTUk~h>{2s0Wu5Q4xO-?BY`}>*iNFY=$CApq zeAY27+qL^^@;njkj^>umLIWU~wJ{s{I7z8|lcF<=g ztrS&%JE>s*Qi7Q705giCMN2|`US#8{_I?jTf6NkU^F^IDpNZ4MAvOj0HE|gphHJ51 zQG|0qJ}9lZ>*0uBn272Gf{WTVE_h%TS4Bhef_=;&wo+WOuz`7kcgYCj+4|~*KjY$A zYV;!6$evXvAB!|#*GQNfq=fFrj%#uIo80}YM5e)tPX6?y%5T+t#J@|VzMb8F1oBN1 z|2)#;x@=H>4$6qP_6*5c@k?Ft0RX~0KH za7$CYV&rTowPKw_X-K&j>)@MM*mToLkci|pvt(k$&!-W{wW=6nGTaMyg{V|VCQinc zv}7>Efjw5|^(He}<-Afb6d&vkh$uI3LK*kh)CbcSt|7{=YWEW_{@|d6s<{!WqK1|_ zh%j>%vc;J*#K>pYMs$Qr?)>y&=6gvHy*3SNluy3fiFPrXaC1KQ%jVM8vXAyQB) zJ0?~Cc|Br%7Hgg9{(P9Jk;kmHvp2hU=R(VVpi>SPT;8MJ5x-UM>-XH>|7D9%Kg%xL zFmywR5riNMfREs-6$IbV)6~-D*?9lS`|@Zai9pV`Uaj!mE9W*WEX`Ehq?nQx2SeJ5 zBIsIT??-FiAjgI(azuNsi|3r=%1%RBtwXhGj9yBa7?bQR7F3t+{ zmW95r7)4rVo8w75;>fKaI{KsfecrSv`goFwn3Kw^_I9ePB83=czF{}lQJwG!2E5mK z0mQAAQStrMxDA`9qYeKx&h|U=KM&9R#R>q7 zL;qs_Z$@c;$N7Dt;x8niw?>@*ZocAol;2xl|3b-p>*#qy`MnYLcYxm;fc^ql#Qp{F zS3A(}tiNw^|HaBc_y_CnTi(AT{JsJE7s4FTFNA*-JO8}+mAL$l@_Ui=FBCVbe@6MO zWcoYM?*)gyfSl=n0sT+qhu;BzPr?5JtYi2E_*()_{~P@)A^#op_q^_JpiI9&|0&D+ zo%^4o>%Vvb04o*%;9p|x-`W2;6#6^+3)|n={|t`2OM$%& T9sP{D5CP0@u1b;TC-wgTN}Of3 diff --git a/Tiobon.Core.Model/Base/Ghre/Ghre_Certificate.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghre/Ghre_Certificate.Dto.Base.cs index 1efeefe8..196b681f 100644 --- a/Tiobon.Core.Model/Base/Ghre/Ghre_Certificate.Dto.Base.cs +++ b/Tiobon.Core.Model/Base/Ghre/Ghre_Certificate.Dto.Base.cs @@ -6,154 +6,155 @@ * * Ver 变更日期 负责人 变更内容 * ─────────────────────────────────── -*V0.01 2024/7/16 16:52:58 SimonHsiao 初版 +*V0.01 2024/12/25 10:29:10 SimonHsiao 初版 * * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. *┌──────────────────────────────────┐ *│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │ *│ 作者:SimonHsiao │ *└──────────────────────────────────┘ -*/ -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; +*/ +namespace Tiobon.Core.Model.Models; -namespace Tiobon.Core.Model.Models + +/// +/// 培训证书 (Dto.Base) +/// +public class Ghre_CertificateBase { /// - /// 培训记录 (Dto.Base) - /// - public class Ghre_CertificateBase - { - - /// - /// 员工ID - /// - public int? StaffId { get; set; } - - /// - /// 课程快照ID - /// - public long? CourseSnapId { get; set; } - - /// - /// 课程ID - /// - public long? CourseId { get; set; } - - /// - /// 证书类型 - /// - [Display(Name = "CertificateType"), Description("证书类型"), MaxLength(32, ErrorMessage = "证书类型 不能超过 32 个字符")] - public string CertificateType { get; set; } - - /// - /// 证书Url - /// - [Display(Name = "CertificateUrl"), Description("证书Url"), MaxLength(128, ErrorMessage = "证书Url 不能超过 128 个字符")] - public string CertificateUrl { get; set; } - - /// - /// 颁发日期 - /// - public DateTime? AwardDate { get; set; } - - /// - /// 有效期 - /// - [Display(Name = "ValidityPeriod"), Description("有效期"), MaxLength(32, ErrorMessage = "有效期 不能超过 32 个字符")] - public string ValidityPeriod { get; set; } - - /// - /// 结束时间 - /// - public DateTime? ValidityPeriodTime { get; set; } - - /// - /// 颁发来源 - /// - [Display(Name = "AwardSource"), Description("颁发来源"), MaxLength(32, ErrorMessage = "颁发来源 不能超过 32 个字符")] - public string AwardSource { get; set; } - - /// - /// 备注 - /// - [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] - public string RemarkSz { 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; } - } + /// 培训证书规则ID + /// + public long? CertificateRuleId { get; set; } + + /// + /// 员工ID + /// + public int? StaffId { get; set; } + + /// + /// 课程快照ID + /// + public long? CourseSnapId { get; set; } + + /// + /// 课程ID + /// + public long? CourseId { get; set; } + + /// + /// 证书类型 + /// + [Display(Name = "CertificateType"), Description("证书类型"), MaxLength(32, ErrorMessage = "证书类型 不能超过 32 个字符")] + public string CertificateType { get; set; } + + /// + /// 证书Url + /// + [Display(Name = "CertificateUrl"), Description("证书Url"), MaxLength(128, ErrorMessage = "证书Url 不能超过 128 个字符")] + public string CertificateUrl { get; set; } + + /// + /// 颁发日期 + /// + public DateTime? AwardDate { get; set; } + + /// + /// 有效期 + /// + [Display(Name = "ValidityPeriod"), Description("有效期"), MaxLength(32, ErrorMessage = "有效期 不能超过 32 个字符")] + public string ValidityPeriod { get; set; } + + /// + /// 结束时间 + /// + public DateTime? ValidityPeriodTime { get; set; } + + /// + /// 颁奖来源 + /// + [Display(Name = "AwardSource"), Description("颁奖来源"), MaxLength(32, ErrorMessage = "颁奖来源 不能超过 32 个字符")] + public string AwardSource { get; set; } + + /// + /// 备注 + /// + [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] + public string RemarkSz { 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; } } diff --git a/Tiobon.Core.Model/Models/Ghre/Ghre_Certificate.cs b/Tiobon.Core.Model/Models/Ghre/Ghre_Certificate.cs index e457fd96..705dce54 100644 --- a/Tiobon.Core.Model/Models/Ghre/Ghre_Certificate.cs +++ b/Tiobon.Core.Model/Models/Ghre/Ghre_Certificate.cs @@ -6,7 +6,7 @@ * * Ver 变更日期 负责人 变更内容 * ─────────────────────────────────── -*V0.01 2024/7/16 16:52:58 SimonHsiao 初版 +*V0.01 2024/12/25 10:29:10 SimonHsiao 初版 * * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. *┌──────────────────────────────────┐ @@ -18,12 +18,17 @@ namespace Tiobon.Core.Model.Models; /// -/// 培训记录 (Model) +/// 培训证书 (Model) /// -[SugarTable("Ghre_Certificate", "Ghre_Certificate"), Entity(TableCnName = "培训记录", TableName = "Ghre_Certificate")] +[SugarTable("Ghre_Certificate", "Ghre_Certificate"), Entity(TableCnName = "Ghre_Certificate", TableName = "Ghre_Certificate")] public class Ghre_Certificate : BasePoco { + /// + /// 培训证书规则ID + /// + public long? CertificateRuleId { get; set; } + /// /// 员工ID /// @@ -68,9 +73,9 @@ public class Ghre_Certificate : BasePoco public DateTime? ValidityPeriodTime { get; set; } /// - /// 颁发来源 + /// 颁奖来源 /// - [Display(Name = "AwardSource"), Description("颁发来源"), MaxLength(32, ErrorMessage = "颁发来源 不能超过 32 个字符")] + [Display(Name = "AwardSource"), Description("颁奖来源"), MaxLength(32, ErrorMessage = "颁奖来源 不能超过 32 个字符")] public string AwardSource { get; set; } /// diff --git a/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs index 2f6a30b8..bb76cb93 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs @@ -171,7 +171,7 @@ public class Ghre_CertificateServices : BaseServices().Where(x => x.StaffNo == StaffNo && x.StaffName == StaffName).FirstAsync(); if (staff == null) { - comments.Add($"未查询到搞员工,工号或姓名填写错误!"); + comments.Add($"未查询到该员工,工号或姓名填写错误!"); data.ErrorCount++; dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); isExistError = true; @@ -195,9 +195,9 @@ public class Ghre_CertificateServices : BaseServices x.CertificateRuleId == rule.Id && x.StaffId == ClassNo)) + //if (await base.AnyAsync(x => x.CertificateRuleId == rule.Id && x.StaffId == staff.StaffID && x.CourseId == course.Id)) //{ - // comments.Add($"系统已存在相同编号名称人证对照表数据!"); + // comments.Add($"系统已存在相同证照数据!"); // data.ErrorCount++; // dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); // isExistError = true; diff --git a/Tiobon.Core/Tiobon.Core.Model.xml b/Tiobon.Core/Tiobon.Core.Model.xml index eb2352e2..fe3bbcc0 100644 --- a/Tiobon.Core/Tiobon.Core.Model.xml +++ b/Tiobon.Core/Tiobon.Core.Model.xml @@ -2202,7 +2202,12 @@ - 培训记录 (Dto.Base) + 培训证书 (Dto.Base) + + + + + 培训证书规则ID @@ -2247,7 +2252,7 @@ - 颁发来源 + 颁奖来源 @@ -15718,7 +15723,12 @@ - 培训记录 (Model) + 培训证书 (Model) + + + + + 培训证书规则ID @@ -15763,7 +15773,7 @@ - 颁发来源 + 颁奖来源