From 8e73412eb607445a4fac754c93316e3aa2aeeb98 Mon Sep 17 00:00:00 2001 From: gaofei <231232131@163.com> Date: Thu, 14 Apr 2022 11:15:34 +0800 Subject: [PATCH] 0414-001 --- DataBase/版本日志/SGGLDB_V2022-04-14-001.sql | 52 + SGGL/BLL/HSSE/Check/RectifyNoticesService.cs | 1 + .../EduTrain/EduTrain_TrainRecordService.cs | 8 +- .../BLL/HSSE/License/LicenseManagerService.cs | 8 +- SGGL/BLL/SysManage/RoleService.cs | 2 + .../QRCodeFile/20220702110716845.jpg | Bin 0 -> 38460 bytes .../QRCodeFile/20220702110726069.jpg | Bin 0 -> 38257 bytes .../QRCodeFile/20220702110734021.jpg | Bin 0 -> 37389 bytes .../QRCodeFile/20221629111627216.jpg | Bin 0 -> 37389 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 8 + .../HSSE/Check/RectifyNotices.aspx | 3 + .../HSSE/Check/RectifyNotices.aspx.cs | 3 +- .../HSSE/Check/RectifyNoticesAdd.aspx | 2 +- .../HSSE/Check/RectifyNoticesAdd.aspx.cs | 11 +- .../Check/RectifyNoticesAdd.aspx.designer.cs | 9 + .../HSSE/Check/RectifyNoticesView.aspx | 2 + .../HSSE/Check/RectifyNoticesView.aspx.cs | 9 +- .../Check/RectifyNoticesView.aspx.designer.cs | 9 + .../HSSE/EduTrain/TrainRecord.aspx | 9 + .../HSSE/EduTrain/TrainRecord.aspx.cs | 33 + .../EduTrain/TrainRecord.aspx.designer.cs | 9 + .../HSSE/EduTrain/TrainRecordEdit.aspx | 3 + .../HSSE/EduTrain/TrainRecordEdit.aspx.cs | 33 +- .../EduTrain/TrainRecordEdit.aspx.designer.cs | 18 + .../HSSE/EduTrain/TrainRecordView.aspx | 6 +- .../HSSE/EduTrain/TrainRecordView.aspx.cs | 9 + .../EduTrain/TrainRecordView.aspx.designer.cs | 18 + .../HSSE/License/LicenseManager.aspx | 3 + .../HSSE/License/LicenseManager.aspx.cs | 2 +- .../HSSE/License/LicenseManagerEdit.aspx | 3 +- .../HSSE/License/LicenseManagerEdit.aspx.cs | 10 +- .../LicenseManagerEdit.aspx.designer.cs | 9 + .../CostAnalysis/EarnedValueCurve.aspx.cs | 78 +- SGGL/FineUIPro.Web/PZHGL/GJSX/GJSXList.aspx | 2 + .../FineUIPro.Web/PZHGL/GJSX/GJSXList.aspx.cs | 24 +- .../PZHGL/GJSX/GJSXList.aspx.designer.cs | 9 + .../PZHGL/GJSX/GJSXListEdit.aspx.cs | 1 - SGGL/FineUIPro.Web/SysManage/RoleList.aspx | 5 + SGGL/FineUIPro.Web/SysManage/RoleList.aspx.cs | 58 +- .../SysManage/RoleList.aspx.designer.cs | 9 + .../FineUIPro.Web/SysManage/RoleListEdit.aspx | 2 + .../SysManage/RoleListEdit.aspx.cs | 22 +- .../SysManage/RoleListEdit.aspx.designer.cs | 9 + SGGL/FineUIPro.Web/common/mainIII.aspx | 1801 ++++++----------- SGGL/FineUIPro.Web/common/mainIII.aspx.cs | 1151 ++--------- .../common/mainIII.aspx.designer.cs | 247 ++- SGGL/FineUIPro.Web/common/mainProject.aspx.cs | 5 +- SGGL/FineUIPro.Web/indexProject.aspx.cs | 31 +- SGGL/Model/Model.cs | 164 +- 49 files changed, 1609 insertions(+), 2301 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_V2022-04-14-001.sql create mode 100644 SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110716845.jpg create mode 100644 SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110726069.jpg create mode 100644 SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110734021.jpg create mode 100644 SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20221629111627216.jpg diff --git a/DataBase/版本日志/SGGLDB_V2022-04-14-001.sql b/DataBase/版本日志/SGGLDB_V2022-04-14-001.sql new file mode 100644 index 00000000..30f39e05 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2022-04-14-001.sql @@ -0,0 +1,52 @@ +alter table [dbo].[Sys_Role] add CNProfessionalIds nvarchar(500) null +GO +alter table [dbo].[License_LicenseManager] add CNProfessionalId nvarchar(50) null +GO +alter table [dbo].[Check_RectifyNotices] add CNProfessionalId nvarchar(50) null +GO +alter table [dbo].[EduTrain_TrainRecord] add CNProfessionalId nvarchar(50) null +GO +alter table [dbo].[EduTrain_TrainRecord] add UnitWorkIds nvarchar(500) null +GO + +ALTER VIEW [dbo].[View_License_LicenseManager] +AS +/*ֳȫ֤*/ +SELECT LicenseManager.LicenseManagerId, + LicenseManager.ProjectId, + LicenseManager.LicenseTypeId, + LicenseManager.LicenseManagerCode, + LicenseManager.LicenseManageName, + LicenseManager.UnitId, + LicenseManager.LicenseManageContents, + LicenseManager.CompileMan, + LicenseManager.CompileDate, + LicenseManager.CNProfessionalId, + CN.ProfessionalName, + LicenseManager.States, + Project.ProjectCode, + Project.ProjectName, + LicenseType.LicenseTypeName, + Unit.UnitName, + Users.UserName, + LicenseManager.WorkAreaId, + --WorkArea.WorkAreaName, + LicenseManager.StartDate, + LicenseManager.EndDate, + LicenseManager.ApplicantMan, + WorkAreaName = STUFF(( SELECT ',' + UnitWorkName FROM WBS_UnitWork + where PATINDEX('%,' + RTRIM(WBS_UnitWork.UnitWorkId) + ',%',',' + LicenseManager.WorkAreaId + ',')>0 + ORDER BY PATINDEX('%,' + RTRIM(LicenseManager.WorkAreaId) + ',%',',' + LicenseManager.WorkAreaId + ',') + FOR XML PATH('')), 1, 1,'') +FROM dbo.License_LicenseManager AS LicenseManager +LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId = LicenseManager.ProjectId +LEFT JOIN dbo.Base_LicenseType AS LicenseType ON LicenseType.LicenseTypeId = LicenseManager.LicenseTypeId +LEFT JOIN dbo.Base_CNProfessional AS CN ON CN.CNProfessionalId = LicenseManager.CNProfessionalId +LEFT JOIN dbo.Base_Unit AS Unit ON Unit.UnitId = LicenseManager.UnitId +LEFT JOIN dbo.Sys_User AS Users ON Users.UserId = LicenseManager.CompileMan +LEFT JOIN dbo.WBS_UnitWork AS WorkArea ON WorkArea.UnitWorkId = LicenseManager.WorkAreaId + + +GO + + diff --git a/SGGL/BLL/HSSE/Check/RectifyNoticesService.cs b/SGGL/BLL/HSSE/Check/RectifyNoticesService.cs index ae26e560..d9b84834 100644 --- a/SGGL/BLL/HSSE/Check/RectifyNoticesService.cs +++ b/SGGL/BLL/HSSE/Check/RectifyNoticesService.cs @@ -42,6 +42,7 @@ namespace BLL DutyPerson = rectifyNotice.DutyPerson, CompleteDate = rectifyNotice.CompleteDate, IsRectify = rectifyNotice.IsRectify, + CNProfessionalId=rectifyNotice.CNProfessionalId, CheckPerson = rectifyNotice.CheckPerson, DutyPersonId = rectifyNotice.DutyPersonId, ReCheckDate = rectifyNotice.ReCheckDate, diff --git a/SGGL/BLL/HSSE/EduTrain/EduTrain_TrainRecordService.cs b/SGGL/BLL/HSSE/EduTrain/EduTrain_TrainRecordService.cs index c1fa375c..49fc6bd5 100644 --- a/SGGL/BLL/HSSE/EduTrain/EduTrain_TrainRecordService.cs +++ b/SGGL/BLL/HSSE/EduTrain/EduTrain_TrainRecordService.cs @@ -40,8 +40,10 @@ namespace BLL TrainStartDate = training.TrainStartDate, TeachHour = training.TeachHour, TeachMan = training.TeachMan, + CNProfessionalId = training.CNProfessionalId, TeachAddress = training.TeachAddress, Remark = training.Remark, + UnitWorkIds = training.UnitWorkIds, AttachUrl = training.AttachUrl, TrainTypeId = training.TrainTypeId, TrainLevelId = training.TrainLevelId, @@ -62,7 +64,7 @@ namespace BLL { newTraining.TrainEndDate = training.TrainStartDate; } - + db.EduTrain_TrainRecord.InsertOnSubmit(newTraining); db.SubmitChanges(); ////增加一条编码记录 @@ -83,6 +85,7 @@ namespace BLL newTraining.TrainTitle = training.TrainTitle; newTraining.TrainContent = training.TrainContent; newTraining.TrainStartDate = training.TrainStartDate; + newTraining.CNProfessionalId = training.CNProfessionalId; if (training.TrainEndDate.HasValue) { newTraining.TrainEndDate = training.TrainEndDate; @@ -93,6 +96,7 @@ namespace BLL } newTraining.TeachHour = training.TeachHour; newTraining.TeachMan = training.TeachMan; + newTraining.UnitWorkIds = training.UnitWorkIds; newTraining.TeachAddress = training.TeachAddress; newTraining.Remark = training.Remark; newTraining.AttachUrl = training.AttachUrl; @@ -104,7 +108,7 @@ namespace BLL newTraining.FromRecordId = training.FromRecordId; newTraining.WorkPostIds = training.WorkPostIds; db.SubmitChanges(); - } + } } /// diff --git a/SGGL/BLL/HSSE/License/LicenseManagerService.cs b/SGGL/BLL/HSSE/License/LicenseManagerService.cs index acad5348..104d04e4 100644 --- a/SGGL/BLL/HSSE/License/LicenseManagerService.cs +++ b/SGGL/BLL/HSSE/License/LicenseManagerService.cs @@ -51,13 +51,14 @@ namespace BLL UnitId = licenseManager.UnitId, LicenseManageContents = licenseManager.LicenseManageContents, ApplicantMan = licenseManager.ApplicantMan, + CNProfessionalId = licenseManager.CNProfessionalId, CompileMan = licenseManager.CompileMan, CompileDate = licenseManager.CompileDate, States = licenseManager.States, WorkAreaId = licenseManager.WorkAreaId, StartDate = licenseManager.StartDate, EndDate = licenseManager.EndDate, - WorkStates=licenseManager.WorkStates, + WorkStates = licenseManager.WorkStates, }; db.License_LicenseManager.InsertOnSubmit(newLicenseManager); db.SubmitChanges(); @@ -82,6 +83,7 @@ namespace BLL newLicenseManager.UnitId = licenseManager.UnitId; newLicenseManager.LicenseManageContents = licenseManager.LicenseManageContents; newLicenseManager.ApplicantMan = licenseManager.ApplicantMan; + newLicenseManager.CNProfessionalId = licenseManager.CNProfessionalId; newLicenseManager.CompileDate = licenseManager.CompileDate; newLicenseManager.States = licenseManager.States; newLicenseManager.WorkAreaId = licenseManager.WorkAreaId; @@ -100,7 +102,7 @@ namespace BLL { Model.SGGLDB db = Funs.DB; Model.License_LicenseManager licenseManager = db.License_LicenseManager.FirstOrDefault(e => e.LicenseManagerId == licenseManagerId); - if (licenseManager!=null) + if (licenseManager != null) { ///删除编码表记录 BLL.CodeRecordsService.DeleteCodeRecordsByDataId(licenseManagerId); @@ -110,7 +112,7 @@ namespace BLL if (flowOperate.Count() > 0) { BLL.CommonService.DeleteFlowOperateByID(licenseManager.LicenseManagerId); ////删除审核流程表 - } + } db.License_LicenseManager.DeleteOnSubmit(licenseManager); db.SubmitChanges(); } diff --git a/SGGL/BLL/SysManage/RoleService.cs b/SGGL/BLL/SysManage/RoleService.cs index 3119f8b3..8706734f 100644 --- a/SGGL/BLL/SysManage/RoleService.cs +++ b/SGGL/BLL/SysManage/RoleService.cs @@ -60,6 +60,7 @@ RoleCode = role.RoleCode, RoleName = role.RoleName, Def = role.Def, + CNProfessionalIds=role.CNProfessionalIds, IsSystemBuilt = role.IsSystemBuilt, IsOffice = role.IsOffice, RoleType=role.RoleType, @@ -83,6 +84,7 @@ updateRole.RoleCode = role.RoleCode; updateRole.RoleName = role.RoleName; updateRole.Def = role.Def; + updateRole.CNProfessionalIds = role.CNProfessionalIds; updateRole.IsOffice = role.IsOffice; updateRole.RoleType = role.RoleType; db.SubmitChanges(); diff --git a/SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110716845.jpg b/SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110716845.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1c4672205b0769577d5e0b67add5cca6866640c9 GIT binary patch literal 38460 zcmeIb2|Sd0`#*j&G=)rs7Gazym3FiU!|6ool(bMOQ%6N9l6@UfDMysHb6QX;Nz746 zS!S|C+R#EMYegZu2DALH&rr?WqtbcK`F?-@-|u;1kyycfJm zY}jIBQ)5g_Obpuy|6sf_YymcS&>-R<$-zV-ambLtQZn*GWu&EL#*C07$tx?8Rg@K# zlvLHHX{e5yqNb!Yan7VEGiGXQYm+tR>Cc^|H%&`>7P^VpkRd~4q-91A9Xfi}Pf9<{ z`r-fa?qI_Qi|-cSO%NN0i4PYe3>V{NV`K~ylZ2;558U@ZF>!)~Vw{5$#i>sTv zho@KI-hKOn4jc>)KYHx=iIac)dFp)hg^QPBF2`QEcKt@u&E#9RQ!=x%@8;y*%e(*N z>9glW#V<-qtEy{Wzj<3*_wId5Yg>Cq=SNmoH+nBIjL`d9pWh7kUc=$N#3dvM5=8V~ zV&d-bAqH!V-&258$2;ed?23`k~l4IL32K5-%eWl_F~Eg;vUND zb1YkK=1pd|jvb+~d*XS2DZx({p~jJYywRQeiifrT;@ZLS+0&BDUEG<us>tCuPB{KK0J(S==YG>rp?33Vz@<7B-;7liI~8L5ZO|}KAJB_doj75 zhb`3cF`_!Mnz*L52bm2Dt~~7gDTeBo*J4yOYrxeqJnY5fVz_)N|8hCFd_S#0!5%I@ z;jfDx-N2Al#>2*YZ{T6cG|q5kPmUKcr=m-#NhPgc?_q0v%G2e6ZMf-_ zaa-MHPErrQtsc=X*78Q7lZUZYBS<{#+{y(!EW?GuUP^8b@St$_ErtImS-`_uw8dH^ z|DU_AgL0RL4PiO{%CfpzzQ%*L_(n?Dy%Oz_<~j9$)(~X|85^m!&`(Un5(4i;wk~ID z@vu!+RE}a&ez8%dS=U6rF+A+AcslpcI;_VJzY7?+)!<88^RZm6xje>m{2Lw?)E<`_ zJCm`kA^J!eCU!zi0~2E{CuYf8!V1FA3@vj=C9HS_Z3=r7OkZ{ZFK~YwA_I2*=K4alV^sZ65ZF z&$`PTljC;e%;t^`ZLyEO3N1vohTjZWDfIQQQbH=&tI5r0Sy|lu>CQZCkQS|Fl~^Z7 zp)KYPWkh{xekeV@W2xf`#vYeEWt)@~&sB3y54$I`=<$%+m&JuHnE66^^byO)?=E^W z+ntB0w`Es!N~Q3y!ll$<%f%MT!^fA&!v<>v!hTr=%d&X`tWP-;{Nlw#w_q5{NRQ0J ze!djM!vgAPtWz%o2JhTiotzvzcjG~E6Q%76=7x7LS&Wc`nZg$l?~%vSUeoQFolUTT z)#wyDZn``5N&L>4%@O*KFrV51 zKlFbu{5+?96HYASO7O67&#K5C$#pR47teGIyhIBf2HV@1DshHMS!NW{)sjADxguRk|ByQi|fTb^QZYbH$ zhdjftu%dN&I}huTG~r>rPi`X8F`z$Lj{)3@iq+O4IuuUaM6@ac~I{Zwd{^aYQL z@rV7No=)OpvOHsw$AhfM;T=0QOpE;TZHPzT-0fULb*M8Bo3b~;RPR&`536!xgJC=e zTVFk%hp}Ga_I4D>kcaInYawy>liA_PJgmlrmf6UH%NLNirdHtnQXrNf6i`I&)12z} z6AvrMf~8{tKGY$N8;rG+SR0tbV6AR~8Pue4=a{gkRUDwTgVB6_9IV$^I_12-K7l*R zF`Lpon%24)me--;3qJC!gVpqrtoyB5>z^AG+p9#hP4sbr;q`f{|&$m_4HT1)p5VgQWE^_Ui$d=-JutRVjskS}} z!j@wc6t-AE*kT-y`7#AI2JwN)6c)24T`OnZn|%?fZ%Rww%VkOVh7*!T8cWSuse#ER z!J?H;t|oJ2C|%+hm6_t;6JWi&o~|zQ{>< zKX>nB9%gq!PgQ---i^A6?0Pa+{$y5u_b6to8~k0UWt6$03XO+JEvc&INLO^tcj95W zn)eLmu{5$6vfK>rou}N~PWlbc3P$+SGM{v&Z|KZh?H%-(`a6_u^seK~MzH*L1;l)` zWxR1g)MRw1g-0jD}O$ODh;FDn?Qfio88W9uV;?>36;O(pcMg=~ivQt+Vnd)m+1^3V( z9x>B{cw}Q7l_P&ctN?l0R$R1MUtoYNoOQ2-`^ChXW+>@P;Ts-3Fg%(X+~8owMtTen z1IwdvDu}ahGnfVQ<;1_x-C#VF*gLDI6KNaaYu=M>dMr!znqKBkXk=JdFk(i(^zte` zjDPZWQmH+6i(`*B4=dGa<6vGy+}?=BZHvf4nEt;tNFtlnlOx~Hdc3Kp(L&4hiVV3i zU;2^z!=#jFs{1$hs1tT;2an!7!PrP&Gw*9Vg^F2LbTmuy?Wr#l0zQoh6!5L4bA#7S z#N`C?5I!TffWHnc4cw)e3o@evG0pXaG1C0f13O{KhX-ATG{%fGRsr*+pndc& zI6Cq$k0$P7GGs@ZkR3&@yWQPQw_p*gHrTFZJfEgBbc=2Jt?=rFp>_fL-KH2m++3sa z>^X&HOD2NpTmoSvvl&e66|5_O!DNjG8y)mBWJqBg@^}a-n;#pHcv#el+dPa`1(tdB zJ$u^ljRMWz45WT7HyYHt`}BQ2N_u>30&u5m2YiQ54#@5KKf_@H}e{;?(${A3v{n$;qB}z*0YrM z5In3St;d)_`}`t&1YlqpK1-az!|49}bbMe*E2Z*+%UNsinS3Sg|ZbjvmC3-Kb zh9}#4fngq3;^BbFB6J;kiFf2>l964_}T|PDUb7r#F<|{=uKc#j| z|Oj&p^hxUd`-8bcD6tgq#i}0qkUH^f>A&kIv+N* zXSHLG&dqd48JY!uZ(r6vRjWrX zt90wpTF;72H-gI^l_mRSOQ(*R`&cXFR6#EeIuI~XBy_WUr~nx#3T4&XP$+vfvU~Dm zNI#Jo6Y_Aq80k}LnlgL4I0ir-7pt+P7?{$e0Udk z*}&acyGgcLK!kdWduYeh-I*U3hZfb}e{uAIs?$yN1&7ttu0(Xeddr#%P*uP>GKYu3 zR2*7P3@fzGfTdVdL+T!4NBhWiqQFS9CF1&oK{|=WrX)|(Z`FM!J5;8gAT<{0LNzGi?wLCcsHT|!aH^adwUoJl@Q)7LE&8+4MNH$T<&7|m*rj$=WI8cxb{1} z>D32n(-58;JG;01wo3U$|x4deSFgFy=d-P+9Aj|>)C}JCglnP-GXDy-5ST1J0r+EofG4??a zMeZKA7-2F2)K<$I(|h0+g(H>|i%~x6jJGo=3IbD?r`Ixv6Oh1cUul`$3$1?SD8P1y za1|yl$^oKi1X$GEpb3w90pxVn6dpEI86nAo>LWi^lezP)V=ug4UazYY8tZUv%BY(y zFO9EZqctyYlpQiA1JK~z0BMsB<8w%BTp6aV8xw(yR=0^HnrIEd?J&+I=3B7a$xKc( zl~VkihmAH+vL_FtBr>l#?AX*pihS!E|H_&9AZK zT7ozdHz++k3_Orx6p1{51vK!R;cX&7A2^e-I<|`L?>D(HZS{riCl&XH6s)z*avGPb zeK9zCzv|W*T6^A4B-Ev#(DUC5QodGH`e#jvpxsBoECQrp6)$q>UB#`I_Y^vydN939 zU3U~GjaJtM;2OHFE3h*Z1;sI_mPX->o$A5yCL$L;o@55@Y89<}_PQ2WPj#e{liaP5 zJuUzvJa6Mb-Z6`ZJ%k*^A+l$kzdouulE@;P3nei(+#!jfa5EDj_CsU9u^TQsPNTDob$wGb(A^@)Y z8>oU`!RWDUKt=AHvIU3

}~INlz;gDpG5IbvvLUvV-+C-+=ppSp}$*MCnC3!+Md< zpvYdNGZ!J9hhZYTUw))&+JecKBHf!da!(w+dj#B3oF2ocHJmdf+fugXcJ)k5Ox4ZF4p&{83 z@LbIDj>1Qdj~E{zRK6RONm73A<(kBa*!Onbt6#1IHe&DZV2s6P_=E)LJ`ZE9pn|il zvj*c|M&r(-nz4jR&nZ%n@dGjnSTjOKD-beDXKCb=E3=%dq{&hq^yS?Aq6WSE8>L;d zmR$EaG>+X8H|f4^#E|;Xqy`0i!U=y5AozDCQ$MTP;NWGpRm)HYv(lT^xM5a#;f{-u zUKuyHxbIHgGCB9n5n01reGeU2BbnjI?f?9dyQ~aChWlU^L=uNqB74$w0MMt?UN^!r zQG!w&#Lpw0dscGgDp<#8+qCak_1a5n=0!=wW($*pjt}z_@F;KPt$ehxj7z+ zriRbnI?vtwj=u8~sQFM3VL&}-1D`NJR>p7}Cro(vQB}5ggN|I~ z#H@VQIR4u8z=rD@e`+5vALXoSeq!USMFhPg*6>)u&mV~^2>3D$$*MHm1W~F?eIUF# z=gq@306t;8@udM+$w$6{Bq6l)7^+al6*f4A$_ND|tKyNDbYU__Z98U}h6*B8)FB?T z`2~?Y*9lRmAhLGW{<%;PQM(d(KTYNTSd;L-Zm0l;>Me2(q~f-L2nBS=ZqBWQ&^^PY zqL=-V1?&%JV1GQN0r?}p@V^)Rb3=fqhft~{AU2gcRm+vW#KWrXoiie2T2|9T)AXI3 zs?Kg5J?>d!gsJ*p$5+cQz7W2+5}RK@eBlCVKwoWj7%)H}fmP7SXOCLSCxB2Ex*!6N z;1r5nQ;e&uCj{K04Pjl+@}dU1=+8HA8Fbv%*FGjg@@~@I2B$ok-xcH3;)bo>BQeZV z!XlTg;RgxDIXakvj1UTYHRghI74=}+Sj*UC@Zi>9-~&g~SXa7isyUp9n3g4L)BZ{g z_)uh~wz*)Dx^edK!2L=}!%V6SmGqHyz?Ymi(q&l0>J3EW=BXWw*!XuhwQk0!U3IrK zl~ZUvKSu1p+ye+Y|*U(Deg zz4D@>i?XfFAa7TAL;mrQMvXBU^>ucHtU8FS1_rC9;h^9;g<9cs9MUBeqv8EN)v-7$ zLMCD?RoTO_WufvU{E}vhm9`1q3c65?O$6MZ#0^FpEK=A$ckpDK@znp@K@>J4o$tke2lxYg{!2gG}JdP5J*WQbP4XgiWDXq?dsyL?A_p_V+%JJxwGu zb)zJzzmj?%0|#n&Ccs{W^s+&L%sq6%-yrfl1B0Xnz+$KzLa^FLJ@rPUF>4CCS`S^V zN#+KhK*$FRvYQ_6mmk8#vI1fm0)2pQhAjsQkL4XG;~GIFa3U%_{uN)$J+!^H9snRg zW>m3}AsI8L(hB?gQS9&c8QYB_MSjJ?i7mu@A%@0{f0uYVq4Fd!Z>72Al=feaiPg4S zRsc)k4sa9ks8rwjV!$}~8(<>Q;08$_+-o47WZzh{;UI%3AP_0E;n4t8!0r2kW^*N3i1fW6a9WZ4@8*8WvIfhvlo!BPiH@(bb=pDimL!p$yRFDDOw{; zyS*i|Kn%YM(gV_HeDK3F1~GCd9EGWvPsXPT{{V?+K4Mf_@tt1a4**HQBB*^-g76AX zDi9{Z3FS)ZT;Ym0<^%X-A8QT=ko*G(B_c-PS3-{;LsghgggK*4;7bF1)KsK^3w9oMK$|%jvO~vSR@sNVM>^0 zgBL3hm;lS!5Zi6CqH`3VVYEzl2>28`^4X&wK_Fv}A^~u}_TYYP!2K$$hk_co-ygro z!un#|_H~akUv59O?^XNz(<7I}p0bb*-z7c5Dcs|u&az&Rso<&3E1O^1XxCh=>Phoe zY)hu8Ol3XRx)D;NL640mK_s>b#eIM_2aaK~uGH2=$p&)em;lWeC(tT$9J!Oz)haJ? zYD0Xsc*b~~|KPhjM_<2o$A6l^QsOk)vEd5=%MQPR|G#1D_AzeYy=U2(< zItAv2N`Lz@QzB62?VS|vGWWaK*&fWwRd*Y%sYW<#Bz@SZ$?90|w)qzMr%n^4(t?rz z7eI9$kVmm$!nLYTT({j+J=Ee!5k+nD4C_3_X&Xb%Oq@GLJu-(8L&xFi{MYz4;d*sG z*!b0K!t) zr3OeTiK##@zbg7$O-o|t19>F7evo~_Otw! zKaTFnQ~#Ji5nk{qIQ9w9k@1^$t=Eb8So=BBPFJ>%a({Yd$J%L^wyl|FdS{Ahj%m%y z=enP2$pYASQ%9wco2kR-nyfC^!E^TPaL`Ww`9qG|vl`>@qOAvmyH=bTaY1Rbto}Z) zi=x#iRD#CsT1wS?NJ@u#)pBLFLQ)zR39MC{D&p^YC>1EY+Qc?OsX%She(w@U1x5@% zu0fO_uq>YeNd=I7%~C$He^9f&`!g=BSuOG*0HYC1`I6RhAH|>z29xYg zxd$1jy)RvM)Unfhv|i-2sSQ2uKZkh!X8QVQUV_1w@KW=I!5|NyozCQzb1R;5OFF67 zyC{rs{nWHa6;At|Z@9M8srauHYn2o!6$3g7a4!Jve6%-=J8ykZwy)eWmT6VJFYOL^ z{E~HN@0OMt2PZc!Cdm!0Yxzw6(NL(#^8K~IK~qRIQpD*#u~0t^UXt5%DPL2 z%H}tmxVCuf<~HkJZ)0*N)!WUxEbb1}4u6V1@Z2$aa(%V1fUc}B{-pwdE6ijUSpyJK zE%e!gpFR8%5bNLo!h;)J99y?QOjv=})?HB4k#3UhmEC-{HToVwLX`FpFP~BP~NQL%I4>?vcn zTK+OLMfIxRTBVI=oS*J7R3R_)rQzpQWQSG?v4ZIE1niw?CCzKz_c53~309JAy_*WP zBq8nH_!7p#Lk!a~$KEIhsdnVAYsGI2Lo&7SpPVcoU=rZwv`=67JzAw~fIxmdp!)u& zx}%Vq%$wsuYyirQmKi67*0}v6}InY8f z`deZ2kJ(SoEBFolU~<_i!VFD%GM@!S08HQ;&;cGQ{Euj(xGyrmbH(L7gisDXlT4W5 zj5s)(5Tl30MfpRneJ=RYjfl|$&Yj>w>1ly{fzRj>^xi>9H(K+b1EfscEYRs70Tsn5Yr;M*bgksrBau8wuaLd=OP z$#RNjQ+jBfOCPmYIJC0!lTv2ScF381g@^fcnx|E@9oWiCzS#5^avnqu_+L; z6NL0300j`k_~baD_W&lANs++_dpQ=_=w{;Wr`nGgzb3b&J}m$3pp}#HYKrz=nTeIM z>GpNq!kls!NIijGlm(q|p~{f34yvPltab!q5d}$V*xK%pvyMH-!zvCk zS&d{7PJIo)N`K*QRcurh$+|~QqGeig_i+whZ>T7trdHJ2x`Czfb9ysvW@rrEF|uBe zA@WQN;<@k7ZJWm3$i1bcJ&^ld+2-zb?CArq6Aj5L)F!S7Eg5URYOb|l&~N_rRzXEY=0%oHLXcXX>(7LAskAaA2MR_`{<s)80gx{P04^iW4CD>wixQ(EYeZgwepYYErL1U= zILjxErN#mGJMBG6f0kA-nLOkUVXjI5qn>_1&mA#&K+~&`0{%H3Y6KADskAgVRmSXR zZ>U^4XFW6hImm?D+%JsC8MgCy!N$>fb86IPYn~A4f;laE0?n}nrlp0G|nN;QD@&dWl-GFYIHbsD8hPX zl4VbAg16<#;sU|!xfVR!3!F$ZtoScK&`&P!AoWO^0_o$oC{j!v7{%Ncv!E&L4OI`) zdsj?JdgVr?ovuy+M#`()=wOj?>jOQJ$QxeQThdI*OqsLK)pte3@}hO#nv)XL)=oGO zyZPrkO2)FY^cQ-c#SsOgdK&{ELY~O*fcyq1g8j^Fe~UBb!n?ofN_9d{Iy})HY0*-a z^JLhXD-)M5!^YfcmtTEmb>~BCj&+v!$1hnlF6FQBu;VC6iZ$a!k1NXC? zV{h+FdzI?musb#JXh_Z6yeJudI|t1ddUDNLz}FtU2Ixo4M>vSE{lOp$2-|8Jvpr;GV+bh#KzS5Ry}{@Ky`Q1LJu&H z#hk^It`)!>1s}7N_AHu*9iPs9Zm0rS?7#VIfVK+Af;@W5e10||HV{aeisN=Lm?Dst z3hfh=EYydC9tncPF+LEa>~rSC@~{zMjilr*YHQn@9VJZ8{>Sb;K>DSBXA1Bbx=)7n zxfXH_kv)Y(vU*2(LEYHuP*nS7A6Dz9%1Ya!Nf?H<7R--iMSG26=T<`I2q_s@# znSQ);0|X$ROh4+}*2ECnNatMDfovb}ynge57GP7|qfF!u&xZ{3A;h6&X^&EEYJoEfCdu@CIc z%JEnd6gI&|d}4>EgUYj#JB6jWqNQTrPM7p)-ivI5JEo0EID35YUe`ONSDjBPr`xAN z0JssJOjt620wF=U2?HSU|5Gl5ej=ZxR^3`zRI;9Cw1?%QCm*yqTVk$V+h1-RIy(5o zFH(yh`q!uxSVThdg_7H`klY@iu^OS&4Ek^p0m$$cx$F~u(^|?eCaf{hb4#|i$UbYx zS5ysAUiC4-`peGww1eL1DOAQU$@O|zYJF1wg4SJ!VwvJ)_b)D(T)ER?-h8mJ8$wNpLDg?TrkUlXdnC2eiNdE$}ur(oNL0nl!s)3-p;BDBF&NJ z$nURF!j62I2mLj+Hr;~$8oJ$lN@F7`OrbtCNF{-_OKIkRkD~9dFCL6+|2L%@;FZop z%KL4-MIFd?=wLOzsoWUoGl6J`F7oI;dwP2!DZE_cquNp)6Jtd!sk7b^|7?l&^v+v@ zUT>5-GwR+wwfHso`9ZWKXq+OfE~x29mosmEn`m$}&WaP!J(RK8>UrmfodQ_^7k9>rnl=)Z*)t%zsa`e7xSt+5+U;mg+aAeBAk8{X+Q}}Scn1c z`CytH^hfbM+2d{2LoQ8*l3(c3GN;rJGjrz1GHw8;8rrA`_Y?pM90XxbNCWk$ZHF&( zg~FM(`T{&n4k-1gCkswt!l(euWr$GU0jQfJu0CRGiHwfO>cu=c_#P5q4TZHN$#qoF z8&pM-ww)S8zsfni^6AuZ*U~_5Ksl*xH@tZFxt04@%o;*ek~35}w-DX~>NbK3Ayh#U z5cCuf{qfR(R8sJ|^0U>H15iV{@Y45u4o&01Nt+3cf1QsQEj~|Tw`LdwgSd*@R~uIF zL*`t3o#^Xji1?v$zdZ9XxoULb-E80oCdgQ<0lDoQIz|s{ZKmGOsL5SN;SSP zR_q`p1Rt+2vSlD`5rW<5F~E$#scF3M+o~^O(8X0!A)&&@1fPN(AT*$${0kNKE7=#{ z(};N5Z>aJ46($HOfU{=$HWFxGVBgwTfgY;{Ct~Mo;|dSioSlfT6oOaG;VM^l5=sjhj%b#@mpFzhkma;pGv~3>HYp zfA6XX&u*MuVtmWWccocs;@P8KxvtW`+}&+#xKVZ%$smW(27UIRh&<7Y#tDc9kosBy zv_z5HudX{lOgZ0+VgCQ%ox!-*|)z^V(7KkNE=+L%}m zd+WmZBIp~bqd9s^=aiEc^bsdA=1TgHxufT;*pncVK=#r>C4V0){b*V1{Q1(RA3j`o zd~ajOy+(i2%+O_+MsqxBaw#-&bq0dsRw@-*gW?}mi3?Jb__X9vDr1T^1*lI~4_~wR zO7I|4^#qKN?wk9yEVB+jDUoz$fA5LE49y+sTg3Eal)wH@8<3TiD)E=<%5@pHp6f_2 z89nw_XyX}sV*J#%*}J5NY599}>a&?E|`f~jer5V5MuC z_mp=!&{0$@sPf)~q~_^C@gK&8kEwn-HGI+Q6<0&XEjJ<_Hfmhx05iiUxBplZR1stk zIv@T`lC+3dvVS4M^(Y`dMC>JDoV^|@#{yaca9kK3KuwXtx7qpB@)Z@peSz7)r}6VC zU?&`)1l zTyZcV030sb$)B5uEQe0gi2jS@=u{d%bKr05Pum-15(8?KEJ~c`-xrs!d{q$-xea<% z*e=3sPH4a@M2vr)4;^c%Lbx`+k*{FMqpzLlLo&32IHphGX22${E3wb5e;-3n26#n=7 z!+wkSF52}HH6H!+PLP@Wcs5(e7_8tmT&`Ks;b4^FrbZJTASM^e9&vyFI}RxFi*Y8=uVzG7aGg!L$wnE zEF?nzdSm%Ikv;p47I0#u-^}KnZ=%$@MJF9Y!zuCb>FGbdG=LiCuOZ{D1KK~cH=RDj_} z-Oaz18i(Yn$xl@ovSRfz-7O{;J&y8{-mIPbO5D}LV`QR2LI)F*Fi+oso!ZcfPja&YGa?j{ZUt9YWa(;aWmnaN z&mVmJ$ew$u`|hcJjK9xEB0zbEDr}k!ltCUKui&%ubN9P!i#hr0O;7dk%n7zOBf?EJ z!%dqE$tvbl6cz~|RZu9plaYJ>-@Vehs%JsnI)j7oY!#i$j@xXi^^Jj(5KVZ0c z@MllHcjxsm6SS2Ldd`b(<7i>IiN8Sw-Cr{bzl{_8_@adG*9Q5mVn4wg1Nn(0vY+}4 z38F}-lqb|a8d|W0;d;sghprEI`e(Z~eZH$ddINkNTZ93WZvgTUK>xql+#YthkTm4~zNgyZVTNQW9h5P4Zlg{${b}!d z*+?d@bJ3vJ+vI25`!yuM%kn6`=||t0FsR5Pq$laOaXlX(7EmM|uY*7`OJz!8@>9Jn z32WBo_BH5t(AYjDM1FJYF06h{M*+SqH+147?PE&&jIE{wDK3kTv#S6|`*GX&o>h6N zJ03^x+eO4=C4DMzA+$e2xdlW=CV+1PhL74Y#SVY^JWu2}R||lBt`I zJiTUFLyM<3yl(vv@6z>lUuR%a(d@~)Jm#vp z(ocwpU3@8`%-HV;nb2zGTap2{88Fzzy4bQL$6ARM7Pn1z+4Wv=*z{|ee0A7n5Ujl} zhR{uDPt@Vhh7#?KPj_ccsy=IbmoYSrSv=jK*i|K}Ij+l8Wthnr!eH!uZW}#Zq|;*G z;T*!rY!{c|FVttTK+H--sb$&qs;S0HII?XGCs+Kk$+k88*K?{zf+So)p`_nm>wMIH zY8WI>fGhFOxv-`oR(F68913ute0pMYOmGLOaVQX39`-DyA62sIG=4HYUolQbcT#2O zAMdOoiWkyNY2FdaoDoVKb5j8rZEPhaW5I@r82%Wrt|1R#=FzrVI&U6<7ePn(JEix2FU z*w}7Uo~H6cJ<=H)5p76N!Geg@fZgNNE_R}qQG~k+ICnT(JiAondb)8%mCf2F2lZP= zY$PVy{+2Bh4$6t`XE9u-O3l|&?P1bB_AMHFedcXD_hRj~73)fyUbNl)$@zB4<3)#M zuX-;h7PVVG6p=IVd#(zIA_|C4|AWht-tjOZSFIjequ!(?#b1Tis7Ky#!so1S0s_Xv zikHeW%l-9#M$sppfdR$QGC!SWi_^dhQJ%gk;=|~1x2*QrTdw{sW9=??O_@#kj*Bb% zS=CT!67EH73FUg6NN4p>$EuvL=A$N&xr##{bv%x_w6pa$ri+Kw!%cDygRkViIecWl z(w^drn71$V()gYLi*lfhyoM!Gzk9et*rSmjy#&1_{ja_X#BQQB0b2$cJ z+jmX%LWOdl326G53LCb0UHG^wL*eL4&2=epBV~UNyuHRo*4t}2k+=}CxxOuW!90aX z&-L9c1Dri4KI;Z@)-UH@+z@N$;NV0)S6*n3#*HK^vQ2B0jmt8-51lx!5PE&`yN@HR z?vA^c`0$q<%Wv!*Bo;bE!ZtCAH0nG9Z2$gmi)0Xk^dG!TUsx1%!{X9W(6iVT>263} zRIt`6*KzD3qu(x{Gn$Lp5}>~Xc@ToOehhQxdzQY^NZ-Hzqvx>*^ndvTx_$l$oPL3t zWNo*QSQCQ|{CxoN0J$cg@B6n$fhf>~2)O@s!e@zK&~shzw2e3f&A zH!$ypedL@*KZjj)sZNPB=9$_gpL6(gg-~xR$cu4px~Qs_#W?i)@W4CIrx64t3Ll|D z49s|e(eo-)>Usnxv|CO5!GKdRZ3YR!Gf+>-AAMAKxd2 z?}MTTuoIMM*)(NZCbPMN5zjdb6b0SJooRH+{T%Z$H@D=EGeg|zVEzOr5=eo<;`4_h zlaUFndiFuaBtNRt1pcA3nZ7ZNDwfB4nmWAY+~5Q<51VC_0i@koO^+;M)x>?2m5%+j&$4Th^< zFc`)tFevGyBze-9t)T4KY}s>r%;T4?P1Z(2Bii5TBvM-3VRROVjH}do96L4GzcLT_UayX)u1a1zQo5`J1d*7G!ppyi5+Rk{ryd}%`ib7u=9SqI)0*F0 zy1mK!qKUmL^Eb08dvc05&l8`e8{1^4;yP=yzw&2&6ldzeH41qF{WO#mrZ{-TVCt0<;&DH#u)5RU(t&$V}JKxg}D12 zJ7@14yO#0fgW~Ln`_)T46=y9zVLW-!J>nRZ0RKsa$bwrRsdD5W^b#~x=YjOA$@8t^ zdq#L}mYtpY)4kzGo|}2SK#?QlhX3AK59d=!%06&P37Hevv+iw)SB&3s&Yvk(jl?_tTXCGglF$4)4fOCeYxZe;^Pl zfbOHDTXfpcgyk+MRNEo2S)ligf3{z(MeXTGpM6;m?p!hv67J3TkwA7R*g4nYbW zA&NV<2J`x!(gDt7hUO+d&MnD7J~o^{&YsJ@*Bh92ZA@o%Z+A~`zwVIQZSUSeqZGgx z2Ixt|YVj%9e{>MEH4T+01W#8ffFkbz4`FHYmag|TTXvIq{V1HNdvNQ%&Lg)+i^mX; z95z{}Nrq_?IGy+t%M8Z^A2?c9WH6m&mVGMn?$oWVSy|ojudYTI=S5u$|7C~K=(!tb z>@p(n+XY@!h=2J%f20Av6$lbe3Da2VtKiVwcyHsD=N&n*=eJwTnEmItUS4?HZ=Zi#WCLH}N^&+r@I+U+{`S3bl$5;(_+l1Uor;rJ`dDtc`ND{%3Rl(75?nU9G% z^?$xro4m}}h}aTET5}!}A-r?|C`UrfWH_ZY_Fc-&(^t!qa!y`eM>V7;UP$_L%kmdQ ziCDF{YGF>60&4Nt_v>z+j<$-=iM_mT&7J(j%_)EWw&H~bmPnXO46|8FYd#CjqxPqh zc-SCF)LT}G6@cDdh;xyGdQp-EwG1`fN%kp}gAAqZrN)6*Uc65^n|t(i$(r@*ZKgLj zZ!JBrL}_yPuDMvmGqKiv188n9Vy)V~cdA423zuG4Z9P~I+yM*Ze%=Vr#0ETGcueEo zgpKrooe>j~^vGmcGdIrD#`Ut9e)^;IW8o&+JJn{T%nBH@NHt)tY5|cnfFmP-X(|}) z&mjo#YZd0#`R(A@Z)+R0i>D@cYma3wiv=h@zDevWc^)s zzP4D$28Dcp2ZYaefNTuUV@LgT1y#auVpKP?`b26p>ohvP$xb&uG%og~r@_+W`!db6 zPj5Bed3kSQW~>Ime@G*BF77}BXhDnHQurMmpAW>SyA}*xXj_`Q-}R4;zpvyIqgJmn zpA5t(e+<&EO(?7BJ@W~0hre?|!jE?TXQ7k(#0Ol?{uG(wf9i?gtpCW#$2dRzJii#% zB);}b&H+U*p|)|W`3fl^HuQ_nRs%JE8dxZft8+!dQPG0^7*LbcFHwG9Kfr+|K71+? zo@k%MKc`vv5CJ{BIB!6GA_M|u@xFimTEGkeNZ(-s1OFk4@ys)FLd01 z1HPf@FOE@KTqdd{G{DY7Qz{4|`+n--i0!~@?-iQ-M+gbrAHL+%i4EUoWB*ve=LbX< zy^$;4`uW2ufP*10yiS5oQNXDR;EW3h(E84+5d4AfMh--J6i*N6gKssP;3rH}>^qyH z?<69OKN})vPVtomxYH^6`*szP?s|wdf!niR_~bbGz&GX2kQWTJ9L)E@P{0=!2=JBJ zAU_Z|of1w4{xpmt)Xx@tucB2@A^mhUu2T9{;l-zH2Cu>v;n`#OUgbc!!&BtJ%l!AM z4G@bj_ZzAq4%hq_m#~HodCYwfFn=wyf*lh`wc5}nA$IxO#;R=ony$}xg z`_5q!g$pqUBZ=8JTdd0Nf?jQpTBwfH<*1Dq5fdxDAkfH2kg^*SyG_^Oy2H)xOOe}r z#Tgx;?-hA8xV#SUH7zbH^Lby{F_YH8E=F z=VuJ{_$ej%M0xeZw*jjrsqdb+#Z^sWn1^cUGjqeyv;i!LflS0euKC7*Mv-_W{~vtw BD|P?? literal 0 HcmV?d00001 diff --git a/SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110726069.jpg b/SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110726069.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6361f67d4455b4fae55a2cf13a1d087c848c4f60 GIT binary patch literal 38257 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 u;s1W=qL0q8!(B7(h|%DNOO literal 0 HcmV?d00001 diff --git a/SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110734021.jpg b/SGGL/FineUIPro.Web/FileUpload/QRCodeFile/20220702110734021.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37df54581c266e12076566730d0ddac01b8afb35 GIT binary patch literal 37389 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 + @@ -6051,6 +6052,13 @@ mainI.aspx + + mainIV.aspx + ASPXCodeBehind + + + mainIV.aspx + mainMenu_DigitalSite.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNotices.aspx b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNotices.aspx index ed9eefa8..4b0ae53d 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNotices.aspx +++ b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNotices.aspx @@ -80,6 +80,9 @@ SortField="WorkAreaName" FieldType="String" HeaderText="单位工程" TextAlign="Left" HeaderTextAlign="Center"> + + diff --git a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNotices.aspx.cs b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNotices.aspx.cs index 35009768..7017e27d 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNotices.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNotices.aspx.cs @@ -74,13 +74,14 @@ namespace FineUIPro.Web.HSSE.Check ///

private void BindGrid() { - string strSql = @"SELECT R.RectifyNoticesId,R.ProjectId,R.RectifyNoticesCode,R.UnitId ,Unit.UnitName,R.WorkAreaId,R.CheckManNames,R.CheckManIds + string strSql = @"SELECT R.RectifyNoticesId,R.ProjectId,R.RectifyNoticesCode,R.UnitId ,CN.ProfessionalName,Unit.UnitName,R.WorkAreaId,R.CheckManNames,R.CheckManIds ,WorkAreaName= STUFF(( SELECT ',' + UnitWorkName FROM dbo.WBS_UnitWork where PATINDEX('%,' + RTRIM(UnitWorkId) + ',%',',' +R.WorkAreaId + ',')>0 FOR XML PATH('')), 1, 1,''),CheckPersonName= (STUFF(( SELECT ',' + UserName FROM dbo.Sys_User where PATINDEX('%,' + RTRIM(UserId) + ',%',',' +R.CheckManIds+ ',')>0 FOR XML PATH('')), 1, 1,'')+ (CASE WHEN CheckManNames IS NOT NULL AND CheckManNames !='' THEN ','+ CheckManNames ELSE '' END)),R.DutyPerson,R.CheckedDate,DutyPerson.UserName AS DutyPersonName,R.DutyPersonTime,R.CompleteDate ,(CASE WHEN States = 0 THEN '待['+CompileMan.UserName+']提交' WHEN States = 1 THEN '待['+SignMan.UserName+']签发' WHEN States = 2 THEN '待['+DutyPerson.UserName+']整改' WHEN States = 3 THEN '待['+UnitHeadMan.UserName+']审核' WHEN States = 4 THEN '待['+CheckPerson.UserName+']复查' WHEN States = 5 THEN '已完成' ELSE '' END) AS StatesName FROM Check_RectifyNotices AS R LEFT JOIN Base_Project AS Project ON Project.ProjectId = R.ProjectId LEFT JOIN Base_Unit AS Unit ON Unit.UnitId = R.UnitId LEFT JOIN Sys_User AS CompileMan ON CompileMan.UserId=R.CompleteManId + LEFT JOIN Base_CNProfessional AS CN ON CN.CNProfessionalId=R.CNProfessionalId LEFT JOIN Sys_User AS SignMan ON SignMan.UserId=R.SignPerson LEFT JOIN Sys_User AS DutyPerson ON DutyPerson.UserId = R.DutyPersonId LEFT JOIN Sys_User AS UnitHeadMan ON UnitHeadMan.UserId = R.UnitHeadManId diff --git a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx index cd921908..81372245 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx +++ b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx @@ -63,7 +63,7 @@ - + diff --git a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx.cs b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx.cs index 04f95804..08695e71 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx.cs @@ -46,6 +46,8 @@ namespace FineUIPro.Web.HSSE.Check BLL.UserService.InitFlowOperateControlUserDropDownList(this.drpSignPerson, this.CurrUser.LoginProjectId, Const.UnitId_CWCEC, true); ///检察人员 BLL.UserService.InitFlowOperateControlUserDropDownList(this.drpCheckMan, this.CurrUser.LoginProjectId, null, true); + //专业 + BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true); //Funs.FineUIPleaseSelect(drpIsRectify); RectifyNoticesId = Request.Params["RectifyNoticesId"]; var getRectifyNotices = RectifyNoticesService.GetRectifyNoticesById(RectifyNoticesId); @@ -65,6 +67,10 @@ namespace FineUIPro.Web.HSSE.Check this.drpCheckMan.SelectedValueArray = getRectifyNotices.CheckManIds.Split(','); } this.txtCheckPerson.Text = getRectifyNotices.CheckManNames; + if (!string.IsNullOrEmpty(getRectifyNotices.CNProfessionalId)) + { + this.drpCNProfessionalId.SelectedValue = getRectifyNotices.CNProfessionalId; + } this.txtRectifyNoticesCode.Text = getRectifyNotices.RectifyNoticesCode; this.txtCheckedDate.Text = getRectifyNotices.CheckedDate.ToString(); if (!string.IsNullOrEmpty(getRectifyNotices.SignPerson)) @@ -254,7 +260,10 @@ namespace FineUIPro.Web.HSSE.Check return; } } - + if (this.drpCNProfessionalId.SelectedValue != BLL.Const._Null) + { + newRectifyNotices.CNProfessionalId = this.drpCNProfessionalId.SelectedValue; + } if (this.drpUnitId.SelectedValue != BLL.Const._Null) { newRectifyNotices.UnitId = this.drpUnitId.SelectedValue; diff --git a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx.designer.cs index 42a30b40..3d3a0015 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesAdd.aspx.designer.cs @@ -156,6 +156,15 @@ namespace FineUIPro.Web.HSSE.Check { /// protected global::FineUIPro.DropDownList drpHiddenHazardType; + /// + /// drpCNProfessionalId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpCNProfessionalId; + /// /// Grid1 控件。 /// diff --git a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx index 9d0e9b7b..1d9bcbf9 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx +++ b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx @@ -49,6 +49,8 @@ + + diff --git a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx.cs b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx.cs index c0e32b14..02903b3a 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx.cs @@ -22,7 +22,7 @@ namespace FineUIPro.Web.HSSE.Check protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) - { + { this.RectifyNoticesId = Request.Params["RectifyNoticesId"]; if (!string.IsNullOrEmpty(RectifyNoticesId)) { @@ -35,7 +35,12 @@ namespace FineUIPro.Web.HSSE.Check this.txtWorkAreaId.Text = BLL.UnitWorkService.GetUnitWorkName(getRectifyNotices.WorkAreaId); this.txtCheckPerson.Text = getRectifyNotices.CheckManNames; this.txtRectifyNoticesCode.Text = getRectifyNotices.RectifyNoticesCode; - this.txtCheckedDate.Text =string.Format("{0:yyyy-MM-dd}",getRectifyNotices.CheckedDate); + this.txtCheckedDate.Text = string.Format("{0:yyyy-MM-dd}", getRectifyNotices.CheckedDate); + Model.Base_CNProfessional cn = BLL.CNProfessionalService.GetCNProfessional(getRectifyNotices.CNProfessionalId); + if (cn != null) + { + this.txtProfessionalName.Text = cn.ProfessionalName; + } this.drpHiddenHazardType.Text = "一般"; if (getRectifyNotices.HiddenHazardType == "2") { diff --git a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx.designer.cs index 25f32364..9611c2f7 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/Check/RectifyNoticesView.aspx.designer.cs @@ -120,6 +120,15 @@ namespace FineUIPro.Web.HSSE.Check { /// protected global::FineUIPro.TextBox drpHiddenHazardType; + /// + /// txtProfessionalName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProfessionalName; + /// /// Grid1 控件。 /// diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx index 651c3edd..f807c38f 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx @@ -74,6 +74,12 @@ + + + + + @@ -84,6 +90,9 @@ SortField="TrainStartDate" FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd" HeaderText="培训日期" HeaderTextAlign="Center" TextAlign="Center"> + + <%-- diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx.cs b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx.cs index 30cced77..015c7065 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx.cs @@ -80,6 +80,8 @@ namespace FineUIPro.Web.HSSE.EduTrain + @",TrainRecord.TrainEndDate" + @",TrainRecord.TeachHour" + @",TrainRecord.TeachMan" + + @",TrainRecord.UnitWorkIds" + + @",CN.ProfessionalName" + @",TrainRecord.TrainPersonNum" + @",TrainingCode" // + @",CodeRecords.Code AS TrainingCode" @@ -89,6 +91,7 @@ namespace FineUIPro.Web.HSSE.EduTrain + @" LEFT JOIN Sys_FlowOperate AS FlowOperate ON TrainRecord.TrainingId=FlowOperate.DataId AND FlowOperate.IsClosed <> 1" + @" LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId " + @" LEFT JOIN Base_TrainType AS TrainType ON TrainRecord.TrainTypeId=TrainType.TrainTypeId " + + @" LEFT JOIN Base_CNProfessional AS CN ON TrainRecord.CNProfessionalId=CN.CNProfessionalId " + @" LEFT JOIN Base_TrainLevel AS TrainLevel ON TrainRecord.TrainLevelId=TrainLevel.TrainLevelId " + @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON TrainRecord.TrainingId=CodeRecords.DataId WHERE 1=1 "; List listStr = new List(); @@ -459,6 +462,36 @@ namespace FineUIPro.Web.HSSE.EduTrain } return unitName; } + + /// + /// 获取单位工程名称 + /// + /// + /// + protected string ConvertUnitWorkName(object unitWorkIds) + { + string unitWorkName = string.Empty; + if (unitWorkIds != null) + { + List infos = unitWorkIds.ToString().Split(',').ToList(); + if (infos.Count() > 0) + { + foreach (var item in infos) + { + Model.WBS_UnitWork unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(item); + if (unitWork != null) + { + unitWorkName += unitWork.UnitWorkName + ","; + } + } + if (!string.IsNullOrEmpty(unitWorkName)) + { + unitWorkName = unitWorkName.Substring(0, unitWorkName.LastIndexOf(",")); + } + } + } + return unitWorkName; + } #endregion #region 查询事件 diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx.designer.cs index d5473c48..c00b7651 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecord.aspx.designer.cs @@ -174,6 +174,15 @@ namespace FineUIPro.Web.HSSE.EduTrain { /// protected global::System.Web.UI.WebControls.Label lblUnitId; + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + /// /// ToolbarSeparator1 控件。 /// diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx index 56c42a64..64b26531 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx @@ -42,12 +42,15 @@ + + + diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.cs b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.cs index 3fe17ecc..02b7e09f 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.cs @@ -23,7 +23,7 @@ namespace FineUIPro.Web.HSSE.EduTrain ViewState["TrainingId"] = value; } } - + /// /// 主键 /// @@ -84,6 +84,14 @@ namespace FineUIPro.Web.HSSE.EduTrain this.InitDropDownList(); } this.txtTrainingCode.Text = BLL.CodeRecordsService.ReturnCodeByDataId(this.TrainingId); + if (!string.IsNullOrEmpty(trainRecord.CNProfessionalId)) + { + this.drpCNProfessionalId.SelectedValue = trainRecord.CNProfessionalId; + } + if (!string.IsNullOrEmpty(trainRecord.UnitWorkIds)) + { + this.drpUnitWork.SelectedValueArray = trainRecord.UnitWorkIds.Split(','); + } if (!string.IsNullOrEmpty(trainRecord.TrainTypeId)) { this.drpTrainType.SelectedValue = trainRecord.TrainTypeId; @@ -163,7 +171,7 @@ namespace FineUIPro.Web.HSSE.EduTrain { isRed = false; } - if(isRed) + if (isRed) { var getRecordDetail = trainRecordDetails.FirstOrDefault(x => x.TrainDetailId == trainDetailId); if (getRecordDetail != null && !string.IsNullOrEmpty(this.TestPlanId)) ////未参加过培训的人员 @@ -172,7 +180,7 @@ namespace FineUIPro.Web.HSSE.EduTrain if (getTestRecord != null) { isRed = false; - } + } } } if (isRed) @@ -193,6 +201,10 @@ namespace FineUIPro.Web.HSSE.EduTrain TrainLevelService.InitTrainLevelDropDownList(this.drpTrainLevel, true); //培训单位 UnitService.InitUnitDropDownList(this.drpUnits, this.ProjectId, false); + //专业 + BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true); + //单位工程 + BLL.UnitWorkService.InitUnitWorkDownList(this.drpUnitWork, this.CurrUser.LoginProjectId, true); WorkPostService.InitWorkPostDropDownList(this.drpWorkPostIds, true); this.drpUnits.SelectedValue = this.CurrUser.UnitId; } @@ -204,7 +216,7 @@ namespace FineUIPro.Web.HSSE.EduTrain /// /// protected void btnSelect_Click(object sender, EventArgs e) - { + { if (string.IsNullOrEmpty(this.TrainingId)) { this.SaveData(BLL.Const.BtnSave); @@ -297,10 +309,15 @@ namespace FineUIPro.Web.HSSE.EduTrain { trainRecord.TrainTypeId = this.drpTrainType.SelectedValue; } + trainRecord.UnitWorkIds = Funs.GetStringByArray(this.drpUnitWork.SelectedValueArray); if (this.drpTrainLevel.SelectedValue != BLL.Const._Null) { trainRecord.TrainLevelId = this.drpTrainLevel.SelectedValue; - } + } + if (this.drpCNProfessionalId.SelectedValue != BLL.Const._Null) + { + trainRecord.CNProfessionalId = this.drpCNProfessionalId.SelectedValue; + } //培训单位 string unitIds = string.Empty; foreach (var item in this.drpUnits.SelectedValueArray) @@ -378,7 +395,7 @@ namespace FineUIPro.Web.HSSE.EduTrain BLL.EduTrain_TrainRecordDetailService.UpdateTrainDetail(detail); } } - + if (i == 0) { ////保存流程审核数据 @@ -417,7 +434,7 @@ namespace FineUIPro.Web.HSSE.EduTrain } this.Grid1DataBind(); - this.txtTrainPersonNum.Text = trainRecordDetails.Count.ToString(); + this.txtTrainPersonNum.Text = trainRecordDetails.Count.ToString(); this.ShowNotify("删除数据成功!(表格数据已重新绑定)"); } } @@ -471,7 +488,7 @@ namespace FineUIPro.Web.HSSE.EduTrain { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("TrainTestView.aspx?TrainDetailId={0}", rowID, "查看试卷 - "))); - } + } } } diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.designer.cs index 541bad16..c81d3297 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.designer.cs @@ -84,6 +84,15 @@ namespace FineUIPro.Web.HSSE.EduTrain { /// protected global::FineUIPro.TextBox txtTrainTitle; + /// + /// drpUnitWork 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpUnitWork; + /// /// txtTeachAddress 控件。 /// @@ -93,6 +102,15 @@ namespace FineUIPro.Web.HSSE.EduTrain { /// protected global::FineUIPro.TextBox txtTeachAddress; + /// + /// drpCNProfessionalId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpCNProfessionalId; + /// /// txtTrainStartDate 控件。 /// diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx index e215c9b1..5a5c1091 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx @@ -41,16 +41,20 @@ - + + + + + diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx.cs b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx.cs index 5341de73..621b84c2 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx.cs @@ -70,6 +70,15 @@ namespace FineUIPro.Web.HSSE.EduTrain { this.txtTrainLevel.Text = trainLevel.TrainLevelName; } + Model.Base_CNProfessional cn = BLL.CNProfessionalService.GetCNProfessional(trainRecord.CNProfessionalId); + if (cn != null) + { + this.txtProfessionalName.Text = cn.ProfessionalName; + } + if (!string.IsNullOrEmpty(trainRecord.UnitWorkIds)) + { + this.txtUnitWork.Text = BLL.UnitWorkService.GetUnitWorkName(trainRecord.UnitWorkIds); + } this.txtTrainTitle.Text = trainRecord.TrainTitle; if (!string.IsNullOrEmpty(trainRecord.UnitIds)) { diff --git a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx.designer.cs index be3e1abc..e972bd35 100644 --- a/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordView.aspx.designer.cs @@ -84,6 +84,15 @@ namespace FineUIPro.Web.HSSE.EduTrain { /// protected global::FineUIPro.TextBox txtTrainTitle; + /// + /// txtUnitWork 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtUnitWork; + /// /// txtTeachAddress 控件。 /// @@ -93,6 +102,15 @@ namespace FineUIPro.Web.HSSE.EduTrain { /// protected global::FineUIPro.TextBox txtTeachAddress; + /// + /// txtProfessionalName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProfessionalName; + /// /// txtTrainStartDate 控件。 /// diff --git a/SGGL/FineUIPro.Web/HSSE/License/LicenseManager.aspx b/SGGL/FineUIPro.Web/HSSE/License/LicenseManager.aspx index 87304df9..ee664221 100644 --- a/SGGL/FineUIPro.Web/HSSE/License/LicenseManager.aspx +++ b/SGGL/FineUIPro.Web/HSSE/License/LicenseManager.aspx @@ -65,6 +65,9 @@ + + diff --git a/SGGL/FineUIPro.Web/HSSE/License/LicenseManager.aspx.cs b/SGGL/FineUIPro.Web/HSSE/License/LicenseManager.aspx.cs index 07dc80e4..18baa579 100644 --- a/SGGL/FineUIPro.Web/HSSE/License/LicenseManager.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/License/LicenseManager.aspx.cs @@ -68,7 +68,7 @@ namespace FineUIPro.Web.HSSE.License /// private void BindGrid() { - string strSql = "SELECT LicenseManager.LicenseManagerId,LicenseManager.ProjectId,LicenseManager.LicenseTypeId,CodeRecords.Code AS LicenseManagerCode,LicenseManager.LicenseManageName,LicenseManager.UnitId,LicenseManager.LicenseManageContents,LicenseManager.CompileMan,LicenseManager.CompileDate,LicenseManager.States,LicenseManager.ProjectCode,LicenseManager.ProjectName,LicenseManager.LicenseTypeName,LicenseManager.UnitName,LicenseManager.UserName,LicenseManager.WorkAreaName,LicenseManager.StartDate,LicenseManager.EndDate" + string strSql = "SELECT LicenseManager.LicenseManagerId,LicenseManager.ProjectId,LicenseManager.LicenseTypeId,LicenseManager.ProfessionalName,CodeRecords.Code AS LicenseManagerCode,LicenseManager.LicenseManageName,LicenseManager.UnitId,LicenseManager.LicenseManageContents,LicenseManager.CompileMan,LicenseManager.CompileDate,LicenseManager.States,LicenseManager.ProjectCode,LicenseManager.ProjectName,LicenseManager.LicenseTypeName,LicenseManager.UnitName,LicenseManager.UserName,LicenseManager.WorkAreaName,LicenseManager.StartDate,LicenseManager.EndDate" + @" ,(CASE WHEN LicenseManager.States = " + BLL.Const.State_0 + " OR LicenseManager.States IS NULL THEN '待['+OperateUser.UserName+']提交' WHEN LicenseManager.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperateUser.UserName+']办理' END) AS FlowOperateName" + @" FROM View_License_LicenseManager AS LicenseManager " + @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON LicenseManager.LicenseManagerId=CodeRecords.DataId " diff --git a/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx b/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx index ff56f177..fbacb2d1 100644 --- a/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx +++ b/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx @@ -16,7 +16,7 @@ - + @@ -24,6 +24,7 @@ + diff --git a/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx.cs b/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx.cs index 9668992e..960de202 100644 --- a/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx.cs @@ -67,6 +67,10 @@ namespace FineUIPro.Web.HSSE.License { this.drpUnitId.SelectedValue = licenseManager.UnitId; } + if (!string.IsNullOrEmpty(licenseManager.CNProfessionalId)) + { + this.drpCNProfessionalId.SelectedValue = licenseManager.CNProfessionalId; + } if (!string.IsNullOrEmpty(licenseManager.LicenseTypeId)) { this.drpLicenseTypeId.SelectedValue = licenseManager.LicenseTypeId; @@ -114,6 +118,7 @@ namespace FineUIPro.Web.HSSE.License private void InitDropDownList() { UnitService.InitUnitDropDownList(this.drpUnitId, this.ProjectId, true); + BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true); LicenseTypeService.InitLicenseTypeDropDownList(this.drpLicenseTypeId, true); UnitWorkService.InitUnitWorkDownList(this.drpWorkAreaId, this.ProjectId, false); } @@ -177,7 +182,10 @@ namespace FineUIPro.Web.HSSE.License { licenseManager.UnitId = this.drpUnitId.SelectedValue; } - + if (this.drpCNProfessionalId.SelectedValue != BLL.Const._Null) + { + licenseManager.CNProfessionalId = this.drpCNProfessionalId.SelectedValue; + } licenseManager.ApplicantMan = this.txtApplicantMan.Text.Trim(); if (!string.IsNullOrEmpty(this.drpWorkAreaId.SelectedValue)) { diff --git a/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx.designer.cs index 6fa0c6b6..81dc818c 100644 --- a/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/License/LicenseManagerEdit.aspx.designer.cs @@ -57,6 +57,15 @@ namespace FineUIPro.Web.HSSE.License { /// protected global::FineUIPro.DropDownList drpUnitId; + /// + /// drpCNProfessionalId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpCNProfessionalId; + /// /// drpLicenseTypeId 控件。 /// diff --git a/SGGL/FineUIPro.Web/JDGL/CostAnalysis/EarnedValueCurve.aspx.cs b/SGGL/FineUIPro.Web/JDGL/CostAnalysis/EarnedValueCurve.aspx.cs index ce1ed350..d9f844c0 100644 --- a/SGGL/FineUIPro.Web/JDGL/CostAnalysis/EarnedValueCurve.aspx.cs +++ b/SGGL/FineUIPro.Web/JDGL/CostAnalysis/EarnedValueCurve.aspx.cs @@ -333,7 +333,44 @@ namespace FineUIPro.Web.JDGL.CostAnalysis DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); this.Grid1.DataSource = dt; this.Grid1.DataBind(); - this.ChartEV.CreateMaryChart(dt, 820, 320, null); + decimal lastbcws = 0, bcws = 0, lastacwp = 0, acwp = 0, lastbcwp = 0, bcwp = 0; + for (int i = 0; i < dt.Rows.Count; i++) + { + dt.Rows[i]["本月已完工作实际费用-ACWP"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月已完工作实际费用-ACWP"].ToString()) / 10000; + dt.Rows[i]["本月已完工作预算费用-BCWP"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月已完工作预算费用-BCWP"].ToString()) / 10000; + dt.Rows[i]["本月计划工作预算费用-BCWS"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月计划工作预算费用-BCWS"].ToString()) / 10000; + bcws = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计计划工作预算费用-BCWS"].ToString()); + acwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计已完工作实际费用-ACWP"].ToString()); + bcwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计已完工作预算费用-BCWP"].ToString()); + if (bcws == lastbcws) + { + dt.Rows[i]["累计计划工作预算费用-BCWS"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计计划工作预算费用-BCWS"] = bcws / 10000; + } + if (acwp == lastacwp) + { + dt.Rows[i]["累计已完工作实际费用-ACWP"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计已完工作实际费用-ACWP"] = acwp / 10000; + } + if (bcwp == lastbcwp) + { + dt.Rows[i]["累计已完工作预算费用-BCWP"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计已完工作预算费用-BCWP"] = bcwp / 10000; + } + lastbcws = bcws; + lastacwp = acwp; + lastbcwp = bcwp; + } + this.ChartEV.CreateMaryChart(dt, 1020, 420, null); } else { @@ -349,7 +386,44 @@ namespace FineUIPro.Web.JDGL.CostAnalysis DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); this.Grid1.DataSource = dt; this.Grid1.DataBind(); - this.ChartEV.CreateMaryChart(dt, 820, 320, null); + decimal lastbcws = 0, bcws = 0, lastacwp = 0, acwp = 0, lastbcwp = 0, bcwp = 0; + for (int i = 0; i < dt.Rows.Count; i++) + { + dt.Rows[i]["本月已完工作实际费用-ACWP"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月已完工作实际费用-ACWP"].ToString()) / 10000; + dt.Rows[i]["本月已完工作预算费用-BCWP"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月已完工作预算费用-BCWP"].ToString()) / 10000; + dt.Rows[i]["本月计划工作预算费用-BCWS"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月计划工作预算费用-BCWS"].ToString()) / 10000; + bcws = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计计划工作预算费用-BCWS"].ToString()); + acwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计已完工作实际费用-ACWP"].ToString()); + bcwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计已完工作预算费用-BCWP"].ToString()); + if (bcws == lastbcws) + { + dt.Rows[i]["累计计划工作预算费用-BCWS"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计计划工作预算费用-BCWS"] = bcws / 10000; + } + if (acwp == lastacwp) + { + dt.Rows[i]["累计已完工作实际费用-ACWP"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计已完工作实际费用-ACWP"] = acwp / 10000; + } + if (bcwp == lastbcwp) + { + dt.Rows[i]["累计已完工作预算费用-BCWP"] = DBNull.Value; + } + else + { + dt.Rows[i]["累计已完工作预算费用-BCWP"] = bcwp / 10000; + } + lastbcws = bcws; + lastacwp = acwp; + lastbcwp = bcwp; + } + this.ChartEV.CreateMaryChart(dt, 1020, 420, null); } } #endregion diff --git a/SGGL/FineUIPro.Web/PZHGL/GJSX/GJSXList.aspx b/SGGL/FineUIPro.Web/PZHGL/GJSX/GJSXList.aspx index 7b2db81e..c10017ff 100644 --- a/SGGL/FineUIPro.Web/PZHGL/GJSX/GJSXList.aspx +++ b/SGGL/FineUIPro.Web/PZHGL/GJSX/GJSXList.aspx @@ -154,6 +154,8 @@ + - - - - - - - - + } else if (index == 2) { + $("#swiper2").html(swiper_Two) + if (todoNum >= slidesNum) { + mySwiper = new Swiper('#swiper2', { + autoplay: 4000,//可选选项,自动滑动 + direction: 'vertical', + loop: true, + slidesPerView: slidesNum + }) + } + else { + mySwiper = new Swiper('#swiper2', { + //autoplay: 4000,//可选选项,自动滑动 + direction: 'vertical', + loop: true, + slidesPerView: slidesNum + }) + } + } + } + }) + + $("#swiper2").on('click', 'li', function () { + var $this = $(this) + var data = $this.attr("data-id") + var noticeId = $this.attr("notice-id") + //$(".project-list-wrap").show(); + //return + if (data != "") { + //Window1.GetShowReference(data) + "return false;"; + document.getElementById("hdNoticeId").value = noticeId; + document.getElementById("imgBtn").click(); + window.open(data); + top.window.location.reload(); + } + }) + var slidesNum = 5 + var mySwiper = null + $(document).ready(function () { + var swiper_One = '<%=swiper_One %>' + $("#swiper2").css("width", ($("#swiper-pre").width()) + 'px') + var height = $("#swiper-pre").height() - 40 + $("#swiper2").css("height", (height) + 'px') + slidesNum = Math.floor((height) / 24) + $("#swiper2").html(swiper_One) + mySwiper = new Swiper('#swiper2', { + autoplay: 4000,//可选选项,自动滑动 + direction: 'vertical', + loop: true, + slidesPerView: slidesNum + }) + + $(".project").hover(function () { + $(".project-list").show(); + }, function () { + $(".project-list").hide(); + }); + + $(".project-list>div").click(function () { + var $this = $(this) + top.window.location.href = "../indexProject.aspx?projectName=" + $this.html(); + }); + + $(".js-more-1").click(function () { + //var index = 5; + //var str = '' + ////for (var i = 0; i < (index + 1) * 3; i++) { + //// str += '
项目' + i + '
' + ////} + // str += '
伊朗马苏化肥项目
' + //str += '
内蒙古京能锡林煤化有限责任公司锡盟东乌旗褐煤提质项目净化装置
' + //str += '
印尼PKG合成氨/尿素项目
' + //str += '
埃及NCIC磷肥项目
' + //str += '
湖北云华安化工有限公司合成氨搬迁技改项目
' + //str += '
中煤鄂能化100万吨甲醇技改项目
' + //str += '
宜都兴发化工有限公司300万吨/年低品位胶磷矿选矿及深加工项目湿法磷酸装置
' + //str += '
中化云龙有限公司磷矿浆脱除75t/h燃煤锅炉尾气SO2成套设备项目
' + //str += '
印度塔奇尔化肥项目(煤气化净化标段及合成氨尿素标段)
' + //str += '
安阳中盈化肥有限公司尿素装置改造工程
' + //str += '
俄罗斯晓基诺化肥项目
' + //str += '
南通港吕四港区广汇能源LNG分销转运站2#160000m3储罐项目
' + //str += '
启东项目
' + //str += '
荒煤气综合利用年产40万吨乙二醇项目
' + //str += '
济民可信(高安)清洁能源有限公司江西省建筑陶瓷产业基地清洁工业燃气项目主体装置EPC总承包
' + //str += '
湖北兴力电子材料有限公司3万吨/年电子级氢氟酸项目
' + //str += '
呼伦贝尔金新化工有限公司新增备用锅炉技改项目总承包工程
' + //str += '
大石净水厂污泥干化减量服务项目
' + //str += '
广汇启东扩建5#20万m3LNG储罐工程项目
' + //str += '
东华能源(茂名)烷烃资源综合利用项目配套库区(一期)项目低温罐区(I)EPC项目​
' + //str += '
江苏嘉盛燃气有限公司嘉盛LNG调峰储配站工程
' + //str += '
山东滨州临港化工产业园首站项目
' + //str += '
五环天地项目
' + //$("#projectList").html(str) + //$(".project-list-wrap").show(); + window.open("../JDGL/Check/TotalCompletion.aspx"); + }) + + $(".js-more-2").click(function () { + window.open("../JDGL/Check/ProgressCompletion.aspx"); + }) + + $(".js-more-3").click(function () { + window.open("../HSSE/SitePerson/PersonList.aspx"); + }) + + $("#projectList_btn").click(function () { + $(".project-list-wrap").hide(); + }) + + // 计算表格最大高度 + var maxheight = $("#swiper-pre").height() * 2 - 72 -20 + //debugger + $(".jd-list-long").css("max-height", maxheight) + + }) + diff --git a/SGGL/FineUIPro.Web/common/mainIII.aspx.cs b/SGGL/FineUIPro.Web/common/mainIII.aspx.cs index 8512350f..ec24bb1f 100644 --- a/SGGL/FineUIPro.Web/common/mainIII.aspx.cs +++ b/SGGL/FineUIPro.Web/common/mainIII.aspx.cs @@ -1,11 +1,11 @@ -using BLL; -using Newtonsoft.Json; +using Newtonsoft.Json; using System; using System.Collections.Generic; -using System.Data; -using System.Data.SqlClient; using System.Linq; +using System.Web; using System.Web.UI; +using System.Web.UI.WebControls; +using BLL; namespace FineUIPro.Web.common { @@ -15,445 +15,131 @@ namespace FineUIPro.Web.common { if (!IsPostBack) { - getHazardRegisterLists = HSSE_Hazard_HazardRegisterService.GetHazardRegisterListByProjectId(this.CurrUser.LoginProjectId); - - /// 获取安全人工时 - getPersonWorkTime(); - /////劳务统计 - //getSitePerson(); - } - } - - #region 安全人工时 - /// - /// 获取安全人工时 - /// - private void getPersonWorkTime() - { - int wHours = Funs.DB.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).Max(x => x.WorkHours) ?? 0; - if (wHours > 0) - { - this.divPNum1.InnerHtml = (wHours % 10).ToString(); - this.divPNum2.InnerHtml = ((wHours % 100) / 10).ToString(); - this.divPNum3.InnerHtml = ((wHours % 1000) / 100).ToString(); - this.divPNum4.InnerHtml = ((wHours % 10000) / 1000).ToString(); - this.divPNum5.InnerHtml = ((wHours % 100000) / 10000).ToString(); - this.divPNum6.InnerHtml = ((wHours % 1000000) / 100000).ToString(); - this.divPNum7.InnerHtml = ((wHours % 10000000) / 1000000).ToString(); - this.divPNum8.InnerHtml = ((wHours % 100000000) / 10000000).ToString(); - } - ///整改单 - var getRectify = Funs.DB.Check_RectifyNotices.Where(x => x.ProjectId == this.CurrUser.LoginProjectId); - int allcout = getRectify.Count(); - if (allcout > 0) - { - this.divAllRectify.InnerHtml = allcout.ToString(); - int ccount = getRectify.Where(x => x.States == "5").Count(); - this.divCRectify.InnerHtml = ccount.ToString(); - this.divUCRectify.InnerHtml = (allcout - ccount).ToString(); - } - } - #endregion - - #region 安全检查问题统计 - /// - /// - /// - public static List getHazardRegisterLists; - - /// - /// 按单位统计 - /// - protected string Four1 - { - get - { - List series = new List(); - Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - List listCategories = new List(); - Model.SingleSerie s = new Model.SingleSerie(); - Model.SingleSerie s2 = new Model.SingleSerie(); - List listdata = new List(); - List listdata2 = new List(); - businessColumn.title = "安全检查问题统计"; - var units = getHazardRegisterLists.Select(x => x.ResponsibleUnit).Distinct(); - UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); - if (units.Count() > 0) + string roleCNs = Request.Params["roleCNs"]; + List cns = Funs.GetStrListByStr(roleCNs,','); + Model.SGGLDB db = Funs.DB; + //未遂事故 + //var wsAccidentList1 = from x in db.Accident_AccidentPersonRecord + // join y in db.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId + // where y.AccidentTypeName.Contains("未遂") && x.ProjectId == this.CurrUser.LoginProjectId + // select x; + //var wsAccidentList2 = from x in db.Accident_AccidentReportOther + // join y in db.Sys_Const on x.AccidentTypeId equals y.ConstValue + // where y.ConstText.Contains("未遂") && x.ProjectId == this.CurrUser.LoginProjectId + // select x; + var licenses = from x in db.License_LicenseManager where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x; + this.divZY.InnerHtml = (licenses.Count()).ToString(); + //隐患整改 + var getRectify = db.Check_RectifyNotices.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId)); + this.divYH.InnerHtml = getRectify.Count().ToString(); + //安全人工时 + int wHours = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).Max(x => x.WorkHours) ?? 0; + this.divRGS.InnerHtml = wHours.ToString(); + //教育培训 + var getTrainRecord = from x in db.EduTrain_TrainRecord where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x; + this.divPX.InnerHtml = getTrainRecord.Count().ToString(); + //质量问题 + var checkList = from x in db.Check_CheckControl where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalCode) select x; + this.divZLWT.InnerHtml = checkList.Count().ToString(); + //质量共检数据 + var inspectionManagements = from x in db.ProcessControl_InspectionManagement where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x; + this.divZLGJ.InnerHtml = inspectionManagements.Count().ToString(); + //验收数据 + this.divYS.InnerHtml = inspectionManagements.Count(x => x.IsOnceQualified == true).ToString(); + //焊工过期人数统计 + var welders = from x in db.Comprehensive_InspectionPerson + join y in db.Base_Post on x.PostId equals y.PostId + where x.ProjectId == this.CurrUser.LoginProjectId && y.PostName == "焊工" && x.ValidityDate < DateTime.Now && cns.Contains(x.CNProfessionalId) + select x; + this.divHG.InnerHtml = welders.Count().ToString(); + //竣工资料 + this.divJGZL.InnerHtml = inspectionManagements.Count(x => x.IsOnceQualified == true).ToString(); + //NCR + var NCRManagements = from x in db.Comprehensive_NCRManagement where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x; + this.divNCR.InnerHtml = NCRManagements.Count().ToString(); + //变更单 + var designChangeOrders = from x in db.Comprehensive_DesignChangeOrder where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x; + this.divBG.InnerHtml = designChangeOrders.Count().ToString(); + //签证 + var siteVisas = from x in db.Comprehensive_SiteVisaManagement where x.ProjectId == this.CurrUser.LoginProjectId && cns.Contains(x.CNProfessionalId) select x; + this.divQZ.InnerHtml = siteVisas.Count().ToString(); + //工程量完成情况 + string date = string.Empty; + var quantityCompletions = from x in Funs.DB.View_JDGL_QuantityCompletion where x.ProjectId == this.CurrUser.LoginProjectId orderby x.Name select x; + if (quantityCompletions.Count() > 0) { - foreach (var unitId in units) + string quantityCompletionStr = "
序号
类型
单位
设计数量
计划完成
实际完成
计划完成率
累计计划完成
累计实际完成
累计计划完成率
总完成率
"; + int i = 1; + foreach (var item in quantityCompletions) { - var getunits = UnitService.GetUnitByUnitId(unitId); - if (getunits != null) + quantityCompletionStr += "
" + + i + "
" + + item.Name + "
" + + item.Unit + "
" + + (item.DesignNum != null ? item.DesignNum.Value.ToString("F0") : "0") + "
" + + (item.PlanNum != null ? item.PlanNum.Value.ToString("F0") : "0") + "
" + + (item.RealNum != null ? item.RealNum.Value.ToString("F0") : "0") + "
" + + item.Rate + "
" + + item.TotalPlanNum + "
" + + item.TotalRealNum + "
" + + item.TotalRate + "
" + + item.SumRate + "
"; + i++; + } + divGZL.InnerHtml = quantityCompletionStr; + if (quantityCompletions.Count() > 0) + { + if (quantityCompletions.First() != null && quantityCompletions.First().EndDate != null) { - listCategories.Add(getunits.ShortUnitName ?? getunits.UnitCode); - var unitHazardRegisters = getHazardRegisterLists.Where(x => x.ResponsibleUnit == getunits.UnitId); - var noW = unitHazardRegisters.Where(x => x.States != "3"); - listdata.Add(unitHazardRegisters.Count() - noW.Count()); - listdata2.Add(unitHazardRegisters.Count()); + date = " (" + string.Format("{0:yyyy-MM}", quantityCompletions.First().EndDate) + ")"; } } } - else + else //低温储罐项目显示低温储罐数据 { - var getunits = UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2).Take(10); - foreach (var unit in getunits) + var lowTankCompletions = from x in Funs.DB.View_JDGL_LowTankCompletion where x.ProjectId == this.CurrUser.LoginProjectId orderby x.Code select x; + string quantityCompletionStr = "
序号
储罐编号
类型
单位
设计数量
计划完成
实际完成
计划完成率
累计计划完成
累计实际完成
累计计划完成率
总完成率
"; + int i = 1; + foreach (var item in lowTankCompletions) { - listCategories.Add(unit.ShortUnitName ?? unit.UnitCode); - var unitHazardRegisters = getHazardRegisterLists.Where(x => x.ResponsibleUnit == unit.UnitId); - var noW = unitHazardRegisters.Where(x => x.States != "3"); - listdata.Add(unitHazardRegisters.Count() - noW.Count()); - listdata2.Add(unitHazardRegisters.Count()); + quantityCompletionStr += "
" + + i + "
" + + item.Code + "
" + + item.Name + "
" + + item.Unit + "
" + + (item.TotalNum != null ? item.TotalNum.Value.ToString("F0") : "0") + "
" + + (item.PlanNum != null ? item.PlanNum.Value.ToString("F0") : "0") + "
" + + (item.RealNum != null ? item.RealNum.Value.ToString("F0") : "0") + "
" + + item.Rate + "
" + + item.TotalPlanNum + "
" + + item.TotalRealNum + "
" + + item.TotalRate + "
" + + item.SumRate + "
"; + i++; + } + divGZL.InnerHtml = quantityCompletionStr; + if (lowTankCompletions.Count() > 0) + { + if (lowTankCompletions.First() != null && lowTankCompletions.First().EndDate != null) + { + date = " (" + string.Format("{0:yyyy-MM}", lowTankCompletions.First().EndDate) + ")"; + } } } - s.data = listdata; - series.Add(s); - - s2.data = listdata2; - series.Add(s2); - businessColumn.categories = listCategories; - businessColumn.series = series; - return JsonConvert.SerializeObject(businessColumn); + divMonth.InnerHtml = "专业工作量表" + date; } } - /// - /// 按类型统计 - /// - protected string Four2 - { - get - { - List series = new List(); - Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - List listCategories = new List(); - Model.SingleSerie s = new Model.SingleSerie(); - List listdata = new List(); - Model.SingleSerie s2 = new Model.SingleSerie(); - List listdata2 = new List(); - businessColumn.title = "安全检查问题统计"; - var getTypes = HSSE_Hazard_HazardRegisterTypesService.GetHazardRegisterTypesList("1"); - foreach (var item in getTypes) - { - listCategories.Add(item.RegisterTypesName); - var unitHazardRegisters = getHazardRegisterLists.Where(x => x.RegisterTypesId == item.RegisterTypesId); - var noW = unitHazardRegisters.Where(x => x.States != "3"); - listdata.Add(unitHazardRegisters.Count() - noW.Count()); - listdata2.Add(unitHazardRegisters.Count()); - } - - s.data = listdata; - series.Add(s); - s2.data = listdata2; - series.Add(s2); - businessColumn.categories = listCategories; - businessColumn.series = series; - return JsonConvert.SerializeObject(businessColumn); - } - } - #endregion - - #region 质量问题统计 + #region 赢得值曲线 protected string Two { get { - List series = new List(); - Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - List listCategories = new List(); - businessColumn.title = "质量问题统计"; - businessColumn.xFontNum = 8; - var units = BLL.ProjectUnitService.GetProjectUnitListByProjectIdUnitType(CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); - var checks = JointCheckDetailService.GetTotalJointCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); - Model.SingleSerie s = new Model.SingleSerie(); - Model.SingleSerie s2 = new Model.SingleSerie(); - List listdata = new List(); - List listdata2 = new List(); - int okNum = 0; - foreach (var unit in units) - { - listCategories.Add(BLL.UnitService.GetShortUnitNameByUnitId(unit.UnitId)); - var unitChecks = checks.Where(x => x.UnitId == unit.UnitId); - okNum = unitChecks.Where(x => x.OK == 1).Count(); - listdata.Add(unitChecks.Count() - okNum); - listdata2.Add(okNum); - } - s.data = listdata; - s2.data = listdata2; - series.Add(s); - series.Add(s2); - businessColumn.categories = listCategories; - businessColumn.series = series; - return JsonConvert.SerializeObject(businessColumn); - } - } - - protected string Two2 - { - get - { - List series = new List(); - Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - List listCategories = new List(); - businessColumn.title = "质量问题统计"; - businessColumn.xFontNum = 5; - var unitWorks = BLL.UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId); - unitWorks = unitWorks.Where(x => x.ProjectType == "2").ToList(); - var checks = JointCheckDetailService.GetTotalJointCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); - Model.SingleSerie s = new Model.SingleSerie(); - Model.SingleSerie s2 = new Model.SingleSerie(); - List listdata = new List(); - List listdata2 = new List(); - int okNum = 0; - foreach (var unitWork in unitWorks) - { - listCategories.Add(unitWork.UnitWorkName); - var unitChecks = checks.Where(x => x.UnitWorkId == unitWork.UnitWorkId); - okNum = unitChecks.Where(x => x.OK == 1).Count(); - listdata.Add(unitChecks.Count() - okNum); - listdata2.Add(okNum); - } - s.data = listdata; - s2.data = listdata2; - series.Add(s); - series.Add(s2); - businessColumn.categories = listCategories; - businessColumn.series = series; - return JsonConvert.SerializeObject(businessColumn); - } - } - #endregion - - #region 赢得值曲线 - protected string TwoJDGL - { - get - { - DataTable tb = new DataTable(); - DateTime startDate, endDate, startMonth, endMonth; - List months = new List(); - List weeks = new List(); - List days = new List(); - string isDataOK = string.Empty; - Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); - //默认开始结束日期为项目开始结束日期 - startDate = Convert.ToDateTime(project.StartDate); - endDate = DateTime.Now.Date.AddDays(1).AddSeconds(-1); - if (project.EndDate != null && DateTime.Now > project.EndDate) - { - endDate = project.EndDate.Value.AddDays(1).AddSeconds(-1); - } - List unitWorks = new List(); - List workPackages = new List(); - List controlItemAndCycles = new List(); - List soptCheckDetails = new List(); - unitWorks = BLL.UnitWorkService.GetUnitWorkLists(this.CurrUser.LoginProjectId); - decimal totalUnitWorkWeights = 0; - bool noWeights = false; - bool noProjectWeights = false; - - workPackages = BLL.WorkPackageService.GetAllWorkPackagesByProjectId(this.CurrUser.LoginProjectId); - controlItemAndCycles = BLL.ControlItemAndCycleService.GetControlItemAndCyclesByProjectIdAndDate(this.CurrUser.LoginProjectId, endDate); - soptCheckDetails = BLL.SpotCheckDetailService.GetViewSpotCheckDetailsByProjectIdAndDate(this.CurrUser.LoginProjectId, endDate, isDataOK); - var unitWork1 = Funs.DB.WBS_UnitWork.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.Weights == null); - if (unitWork1 != null) //存在没有权重值的单位工程 - { - noProjectWeights = true; - } - - //if (noWeights && unitWorkIds.Length > 1) - //{ - // Alert.ShowInTop("请先设置所选单位工程的权重值!", MessageBoxIcon.Warning); - // return; - //} - //if (noProjectWeights) - //{ - // Alert.ShowInTop("请先设置所有单位工程的权重值!", MessageBoxIcon.Warning); - // return; - //} - //if (this.drpUnitWork.SelectedValue != BLL.Const._Null) - //{ - // workPackages = BLL.WorkPackageService.GetAllWorkPackagesByUnitWorkId(this.drpUnitWork.SelectedValue); - // controlItemAndCycles = BLL.ControlItemAndCycleService.GetControlItemAndCyclesByUnitWorkIdAndDate(this.drpUnitWork.SelectedValue, endDate); - // soptCheckDetails = BLL.SpotCheckDetailService.GetViewSpotCheckDetailsByUnitWorkIdAndDate(this.drpUnitWork.SelectedValue, endDate, isDataOK); - //} - //else - //{ - // workPackages = BLL.WorkPackageService.GetAllWorkPackagesByProjectId(this.CurrUser.LoginProjectId); - // controlItemAndCycles = BLL.ControlItemAndCycleService.GetControlItemAndCyclesByProjectIdAndDate(this.CurrUser.LoginProjectId, endDate); - // soptCheckDetails = BLL.SpotCheckDetailService.GetViewSpotCheckDetailsByProjectIdAndDate(this.CurrUser.LoginProjectId, endDate, isDataOK); - //} - decimal lastDPlanTotal = 0; - decimal lastDCompleteTotal = 0; - tb.Columns.Add("月"); - startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01"); - endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01"); - do - { - months.Add(startMonth); - startMonth = startMonth.AddMonths(1); - } while (startMonth <= endMonth); - tb.Columns.Add("计划值"); - tb.Columns.Add("累计计划值"); - tb.Columns.Add("实际值"); - tb.Columns.Add("累计实际值"); - for (int i = 0; i < months.Count; i++) - { - DataRow row = tb.NewRow(); - row[0] = string.Format("{0:yyyy-MM}", months[i]); - //对应月份的记录 - decimal dPlan = 0, dPlan1 = 0, dPlanTotal = 0, dComplete = 0, dComplete1 = 0, dCompleteMonth = 0, dCompleteTotal = 0; - //当月及之前所有工作包内容 - var totalPlanCompleteControlItemAndCycles = controlItemAndCycles.Where(x => x.PlanCompleteDate < months[i].AddMonths(1)); - //当月及之前所有验收合格记录 - var totalSoptCheckDetails = soptCheckDetails.Where(x => x.SpotCheckDate < months[i].AddMonths(1)); - foreach (var item in totalPlanCompleteControlItemAndCycles) - { - { - var workPackage1 = workPackages.FirstOrDefault(x => x.WorkPackageId == item.WorkPackageId); - if (workPackage1 != null) - { - //逐级递推计算权重计划值 - dPlan1 = Convert.ToDecimal((workPackage1.Weights ?? 0) / 100) * Convert.ToDecimal(item.Weights / 100); - var workPackage2 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage1.SuperWorkPackageId); - if (workPackage2 != null) - { - dPlan1 = Convert.ToDecimal((workPackage2.Weights ?? 0) / 100) * dPlan1; - var workPackage3 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage2.SuperWorkPackageId); - if (workPackage3 != null) - { - dPlan1 = Convert.ToDecimal((workPackage3.Weights ?? 0) / 100) * dPlan1; - } - } - } - var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == workPackage1.UnitWorkId); - if (unitWork != null) - { - dPlan1 = Convert.ToDecimal((unitWork.Weights ?? 0) / 100) * dPlan1; - } - } - if (item.PlanCompleteDate >= months[i]) //当月计划完成记录 - { - dPlan += dPlan1; //累加当月值 - } - dPlanTotal += dPlan1; //累加累计值 - - } - foreach (var item in controlItemAndCycles) - { - //实际值 - var itemSoptCheckDetails = soptCheckDetails.Where(x => x.ControlItemAndCycleId == item.ControlItemAndCycleId && x.SpotCheckDate < months[i].AddMonths(1)); - var itemMonthSoptCheckDetails = soptCheckDetails.Where(x => x.ControlItemAndCycleId == item.ControlItemAndCycleId && x.SpotCheckDate >= months[i] && x.SpotCheckDate < months[i].AddMonths(1)); - if (itemSoptCheckDetails.Count() > 0) //存在验收合格的记录 - { - //工作包实际值 - dComplete1 = Convert.ToDecimal(itemSoptCheckDetails.Count()) / Convert.ToDecimal(item.CheckNum) * Convert.ToDecimal(item.Weights); - var workPackage1 = workPackages.FirstOrDefault(x => x.WorkPackageId == item.WorkPackageId); - if (workPackage1 != null) - { - //逐级递推计算权重计划值 - dComplete1 = Convert.ToDecimal((workPackage1.Weights ?? 0) / 100) * Convert.ToDecimal(dComplete1 / 100); - var workPackage2 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage1.SuperWorkPackageId); - if (workPackage2 != null) - { - dComplete1 = Convert.ToDecimal((workPackage2.Weights ?? 0) / 100) * dComplete1; - var workPackage3 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage2.SuperWorkPackageId); - if (workPackage3 != null) - { - dComplete1 = Convert.ToDecimal((workPackage3.Weights ?? 0) / 100) * dComplete1; - } - } - } - var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == workPackage1.UnitWorkId); - if (unitWork != null) - { - dComplete1 = Convert.ToDecimal((unitWork.Weights ?? 0) / 100) * dComplete1; - } - dCompleteTotal += dComplete1; - } - if (itemMonthSoptCheckDetails.Count() > 0) //当月存在验收合格的记录 - { - //工作包实际值 - dCompleteMonth = Convert.ToDecimal(itemMonthSoptCheckDetails.Count()) / Convert.ToDecimal(item.CheckNum) * Convert.ToDecimal(item.Weights); - var workPackage1 = workPackages.FirstOrDefault(x => x.WorkPackageId == item.WorkPackageId); - if (workPackage1 != null) - { - //逐级递推计算权重计划值 - dCompleteMonth = Convert.ToDecimal((workPackage1.Weights ?? 0) / 100) * Convert.ToDecimal(dCompleteMonth / 100); - var workPackage2 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage1.SuperWorkPackageId); - if (workPackage2 != null) - { - dCompleteMonth = Convert.ToDecimal((workPackage2.Weights ?? 0) / 100) * dCompleteMonth; - var workPackage3 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage2.SuperWorkPackageId); - if (workPackage3 != null) - { - dCompleteMonth = Convert.ToDecimal((workPackage3.Weights ?? 0) / 100) * dCompleteMonth; - } - } - } - var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == workPackage1.UnitWorkId); - if (unitWork != null) - { - dCompleteMonth = Convert.ToDecimal((unitWork.Weights ?? 0) / 100) * dCompleteMonth; - } - dComplete += dCompleteMonth; - } - } - row[1] = dPlan.ToString(); //计划值 - if (dPlanTotal != lastDPlanTotal) //当期累计计划值不等于上月累计计划值时,再保存累计计划值 - { - row[2] = dPlanTotal.ToString(); //累计计划值 - for (int j = 0; j < i; j++) - { - if (string.IsNullOrEmpty(tb.Rows[j][2].ToString())) - { - tb.Rows[j][2] = lastDPlanTotal.ToString(); - } - } - } - else - { - if (dPlanTotal == 0) - { - row[2] = "0"; //累计计划值 - } - else - { - row[2] = dPlanTotal; - } - } - lastDPlanTotal = dPlanTotal; - row[3] = dComplete.ToString(); //实际值 - if (dCompleteTotal != lastDCompleteTotal) //当期累计实际值不等于上月累计实际值时,再保存累计实际值 - { - row[4] = dCompleteTotal.ToString(); //累计实际值 - for (int j = 0; j < i; j++) - { - if (string.IsNullOrEmpty(tb.Rows[j][4].ToString())) - { - tb.Rows[j][4] = lastDCompleteTotal.ToString(); - } - } - } - else - { - if (dCompleteTotal == 0) - { - row[4] = "0"; //累计实际值 - } - else - { - row[4] = dCompleteTotal; - } - } - lastDCompleteTotal = dCompleteTotal; - tb.Rows.Add(row); - } - List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "赢得值曲线"; - var units = BLL.ProjectUnitService.GetProjectUnitListByProjectIdUnitType(CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); + var views = (from x in Funs.DB.View_JDGL_ProgressCompletion where x.ProjectId == this.CurrUser.LoginProjectId orderby x.Months select x).ToList(); Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); Model.SingleSerie s3 = new Model.SingleSerie(); @@ -462,13 +148,13 @@ namespace FineUIPro.Web.common List listdata2 = new List(); List listdata3 = new List(); List listdata4 = new List(); - for (int i = 0; i < tb.Rows.Count; i++) + for (int i = 0; i < views.Count; i++) { - listCategories.Add(tb.Rows[i][0].ToString()); - listdata.Add(Convert.ToDouble(tb.Rows[i][1].ToString()) * 100); - listdata2.Add(Convert.ToDouble(tb.Rows[i][2].ToString()) * 100); - listdata3.Add(Convert.ToDouble(tb.Rows[i][3].ToString()) * 100); - listdata4.Add(Convert.ToDouble(tb.Rows[i][4].ToString()) * 100); + listCategories.Add(views[i].MonthStr); + listdata.Add(Convert.ToDouble(views[i].PlanNum)); + listdata2.Add(Convert.ToDouble(views[i].TotalPlanNum)); + listdata3.Add(Convert.ToDouble(views[i].RealNum)); + listdata4.Add(Convert.ToDouble(views[i].TotalRealNum)); } s.data = listdata; s2.data = listdata2; @@ -484,568 +170,129 @@ namespace FineUIPro.Web.common } } #endregion - - #region 质量一次验收合格率 - protected string TwoCQMS + + #region 人力情况 + protected string Person { get { + string roleCNs = Request.Params["roleCNs"]; + Model.SGGLDB db = Funs.DB; List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); - businessColumn.title = "质量一次验收合格率"; - var unitWorks = BLL.UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId); - unitWorks = unitWorks.Where(x => x.ProjectType == "1").ToList(); - List TotalCheckDetailOKLists = SpotCheckDetailService.GetTotalOKSpotCheckDetailListByTime1(CurrUser.LoginProjectId, DateTime.Now); - List TotalCheckDetailLists = SpotCheckDetailService.GetTotalAllSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); + var persons = from x in db.SitePerson_Person where x.ProjectId == this.CurrUser.LoginProjectId && x.IsUsed == true select x; + persons = persons.Where(x => roleCNs.Split(',').Contains(x.MainCNProfessionalId)); Model.SingleSerie s = new Model.SingleSerie(); - //Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); - //List listdata2 = new List(); - double result = 0, result2 = 0; - foreach (var unitWork in unitWorks) - { - listCategories.Add(unitWork.UnitWorkName); - var okChecks = TotalCheckDetailOKLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); - var totalChecks = TotalCheckDetailLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); - if (okChecks.Count > 0 && totalChecks.Count > 0) - { - var a = Convert.ToDouble(okChecks.Count); - var b = Convert.ToDouble(totalChecks.Count); - result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); - } - //var dataOkChecks = totalCheckDetailDataOKLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); - //if (dataOkChecks.Count > 0 && okChecks.Count > 0) - //{ - // var a = Convert.ToDouble(dataOkChecks.Count); - // var b = Convert.ToDouble(okChecks.Count); - // result2 = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); - //} - listdata.Add(result); - //listdata2.Add(result2); - result = 0; - //result2 = 0; - } + //木工 + listCategories.Add("木工"); + int workPostCount1 = persons.Count(x => x.WorkPostId == Const.WorkPost_Carpentry); + listdata.Add(workPostCount1); + //钢筋工 + listCategories.Add("钢筋工"); + int workPostCount2 = persons.Count(x => x.WorkPostId == Const.WorkPost_SteelWorker); + listdata.Add(workPostCount2); + //瓦工 + listCategories.Add("瓦工"); + int workPostCount3 = persons.Count(x => x.WorkPostId == Const.WorkPost_Bricklayer); + listdata.Add(workPostCount3); + //混凝土工 + listCategories.Add("混凝土工"); + int workPostCount4 = persons.Count(x => x.WorkPostId == Const.WorkPost_ConcreteWorker); + listdata.Add(workPostCount4); + //钳工 + listCategories.Add("钳工"); + int workPostCount5 = persons.Count(x => x.WorkPostId == Const.WorkPost_Fitter1 || x.WorkPostId == Const.WorkPost_Fitter2); + listdata.Add(workPostCount5); + //焊工 + listCategories.Add("焊工"); + int workPostCount6 = persons.Count(x => x.WorkPostId == Const.WorkPost_Welder1 || x.WorkPostId == Const.WorkPost_Welder2 || + x.WorkPostId == Const.WorkPost_Welder3 || x.WorkPostId == Const.WorkPost_Welder4 || x.WorkPostId == Const.WorkPost_Welder5); + listdata.Add(workPostCount6); + //铆工 + listCategories.Add("铆工"); + int workPostCount7 = persons.Count(x => x.WorkPostId == Const.WorkPost_Riveter); + listdata.Add(workPostCount7); + //管工 + listCategories.Add("管工"); + int workPostCount8 = persons.Count(x => x.WorkPostId == Const.WorkPost_Foreman); + listdata.Add(workPostCount8); + //电工 + listCategories.Add("电工"); + int workPostCount9 = persons.Count(x => x.WorkPostId == Const.WorkPost_Electrician1 || x.WorkPostId == Const.WorkPost_Electrician2 + || x.WorkPostId == Const.WorkPost_Electrician3); + listdata.Add(workPostCount9); + //仪表工 + listCategories.Add("仪表工"); + int workPostCount10 = persons.Count(x => x.WorkPostId == Const.WorkPost_Instrumentalist); + listdata.Add(workPostCount10); + //防腐保温工 + listCategories.Add("防腐保温工"); + int workPostCount11 = persons.Count(x => x.WorkPostId == Const.WorkPost_AnticorrosionWorker); + listdata.Add(workPostCount11); + //防腐保温工 + listCategories.Add("管理人员"); + int workPostCount12 = (from x in persons + join y in db.Base_WorkPost on x.WorkPostId equals y.WorkPostId + where y.PostType == Const.PostType_1 + select x).Count(); + listdata.Add(workPostCount12); + //其他 + listCategories.Add("其他"); + int workPostCount13 = persons.Count() - workPostCount1 - workPostCount2 - workPostCount3 - workPostCount4 - workPostCount5 - workPostCount6 - workPostCount7 + - workPostCount8 - workPostCount9 - workPostCount10 - workPostCount11 - workPostCount12; + listdata.Add(workPostCount13); s.data = listdata; - //s2.data = listdata2; series.Add(s); - //series.Add(s2); - businessColumn.categories = listCategories; - businessColumn.series = series; - return JsonConvert.SerializeObject(businessColumn); - } - } - - //protected string Two2 - //{ - // get - // { - // List series = new List(); - // Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - // List listCategories = new List(); - // businessColumn.title = "质量一次验收合格率"; - // var unitWorks = BLL.UnitWorkService.GetUnitWorkLists(CurrUser.LoginProjectId); - // unitWorks = unitWorks.Where(x => x.ProjectType == "2").ToList(); - // List TotalCheckDetailOKLists = SpotCheckDetailService.GetTotalOKSpotCheckDetailListByTime1(CurrUser.LoginProjectId, DateTime.Now); - // List TotalCheckDetailLists = SpotCheckDetailService.GetTotalAllSpotCheckDetailListByTime(CurrUser.LoginProjectId, DateTime.Now); - // Model.SingleSerie s = new Model.SingleSerie(); - // //Model.SingleSerie s2 = new Model.SingleSerie(); - // List listdata = new List(); - // //List listdata2 = new List(); - // double result = 0, result2 = 0; - // foreach (var unitWork in unitWorks) - // { - // listCategories.Add(unitWork.UnitWorkName); - // var okChecks = TotalCheckDetailOKLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); - // var totalChecks = TotalCheckDetailLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); - // if (okChecks.Count > 0 && totalChecks.Count > 0) - // { - // var a = Convert.ToDouble(okChecks.Count); - // var b = Convert.ToDouble(totalChecks.Count); - // result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); - // } - // //var dataOkChecks = totalCheckDetailDataOKLists.Where(x => x.UnitWorkId == unitWork.UnitWorkId).ToList(); - // //if (dataOkChecks.Count > 0 && okChecks.Count > 0) - // //{ - // // var a = Convert.ToDouble(dataOkChecks.Count); - // // var b = Convert.ToDouble(okChecks.Count); - // // result2 = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 1)); - // //} - // listdata.Add(result); - // //listdata2.Add(result2); - // result = 0; - // //result2 = 0; - // } - // s.data = listdata; - // //s2.data = listdata2; - // series.Add(s); - // //series.Add(s2); - // businessColumn.categories = listCategories; - // businessColumn.series = series; - // return JsonConvert.SerializeObject(businessColumn); - // } - //} - #endregion - - #region 焊接一次合格率 - protected string Three1 - { - get - { - Model.SingleSerie series = new Model.SingleSerie(); - Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - List listdata = new List(); - double result = 0; - Model.SGGLDB db = Funs.DB; - //一次检测合格焊口数 - int oneCheckJotNum = (from x in db.HJGL_Batch_NDEItem - join y in db.HJGL_Batch_BatchTrustItem on x.TrustBatchItemId equals y.TrustBatchItemId - join z in db.HJGL_Batch_PointBatchItem on y.PointBatchItemId equals z.PointBatchItemId - join a in db.HJGL_Batch_NDE on x.NDEID equals a.NDEID - where z.PointDate != null && z.PointState == "1" && y.RepairRecordId == null && a.ProjectId == this.CurrUser.LoginProjectId - select x.NDEItemID).Count(); - //一次检测返修焊口数 - int oneCheckRepairJotNum = (from x in db.HJGL_Batch_NDEItem - join y in db.HJGL_Batch_BatchTrustItem on x.TrustBatchItemId equals y.TrustBatchItemId - join z in db.HJGL_Batch_PointBatchItem on y.PointBatchItemId equals z.PointBatchItemId - join a in db.HJGL_Batch_NDE on x.NDEID equals a.NDEID - where z.PointDate != null && z.PointState == "1" && y.RepairRecordId == null && x.CheckResult == "2" && a.ProjectId == this.CurrUser.LoginProjectId - select x.NDEItemID).Count(); - if (oneCheckJotNum > 0) - { - var a = Convert.ToDouble(oneCheckJotNum - oneCheckRepairJotNum); - var b = Convert.ToDouble(oneCheckJotNum); - result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 0)); - } - listdata.Add(result); - series.name = result + "%"; - series.data = listdata; - return JsonConvert.SerializeObject(series); - } - } - #endregion - - #region 焊接进度完成率 - protected string Three2 - { - get - { - Model.SingleSerie series = new Model.SingleSerie(); - Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - List listdata = new List(); - double result = 0; - Model.SGGLDB db = Funs.DB; - //项目焊口数 - int allJotNum = (from x in db.HJGL_WeldJoint - where x.ProjectId == this.CurrUser.LoginProjectId - select x).Count(); - //项目已焊焊口数 - int weldJotNum = (from x in db.HJGL_WeldJoint - where x.ProjectId == this.CurrUser.LoginProjectId && x.WeldingDailyId != null - select x).Count(); - if (allJotNum > 0) - { - var a = Convert.ToDouble(weldJotNum); - var b = Convert.ToDouble(allJotNum); - result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 0)); - } - listdata.Add(result); - series.name = result + "%"; - series.data = listdata; - return JsonConvert.SerializeObject(series); - } - } - #endregion - - #region 进度统计 - protected string Four - { - get - { - DataTable tb = new DataTable(); - DateTime startDate, endDate, startMonth, endMonth; - List months = new List(); - List weeks = new List(); - List days = new List(); - string isDataOK = string.Empty; - Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); - //默认开始结束日期为项目开始结束日期 - endDate = DateTime.Now.Date.AddDays(1).AddSeconds(-1); - if (project!= null && project.EndDate.HasValue && DateTime.Now > project.EndDate) - { - endDate = project.EndDate.Value.AddDays(1).AddSeconds(-1); - } - startDate = endDate.AddMonths(-6); - List unitWorks = new List(); - List workPackages = new List(); - List controlItemAndCycles = new List(); - List soptCheckDetails = new List(); - unitWorks = BLL.UnitWorkService.GetUnitWorkLists(this.CurrUser.LoginProjectId); - workPackages = BLL.WorkPackageService.GetAllWorkPackagesByProjectId(this.CurrUser.LoginProjectId); - controlItemAndCycles = BLL.ControlItemAndCycleService.GetControlItemAndCyclesByProjectIdAndDate(this.CurrUser.LoginProjectId, endDate); - soptCheckDetails = BLL.SpotCheckDetailService.GetViewSpotCheckDetailsByProjectIdAndDate(this.CurrUser.LoginProjectId, endDate, isDataOK); - - decimal lastDPlanTotal = 0; - decimal lastDCompleteTotal = 0; - tb.Columns.Add("月"); - startMonth = Convert.ToDateTime(startDate.Year + "-" + startDate.Month + "-01"); - endMonth = Convert.ToDateTime(endDate.Year + "-" + endDate.Month + "-01"); - do - { - months.Add(startMonth); - startMonth = startMonth.AddMonths(1); - } while (startMonth <= endMonth); - tb.Columns.Add("计划值"); - tb.Columns.Add("累计计划值"); - tb.Columns.Add("实际值"); - tb.Columns.Add("累计实际值"); - for (int i = 0; i < months.Count; i++) - { - DataRow row = tb.NewRow(); - row[0] = string.Format("{0:yyyy-MM}", months[i]); - //对应月份的记录 - decimal dPlan = 0, dPlan1 = 0, dPlanTotal = 0, dComplete = 0, dComplete1 = 0, dCompleteMonth = 0, dCompleteTotal = 0; - //当月及之前所有工作包内容 - var totalPlanCompleteControlItemAndCycles = controlItemAndCycles.Where(x => x.PlanCompleteDate < months[i].AddMonths(1)); - //当月及之前所有验收合格记录 - var totalSoptCheckDetails = soptCheckDetails.Where(x => x.SpotCheckDate < months[i].AddMonths(1)); - foreach (var item in totalPlanCompleteControlItemAndCycles) - { - { - var workPackage1 = workPackages.FirstOrDefault(x => x.WorkPackageId == item.WorkPackageId); - if (workPackage1 != null) - { - //逐级递推计算权重计划值 - dPlan1 = Convert.ToDecimal((workPackage1.Weights ?? 0) / 100) * Convert.ToDecimal(item.Weights / 100); - var workPackage2 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage1.SuperWorkPackageId); - if (workPackage2 != null) - { - dPlan1 = Convert.ToDecimal((workPackage2.Weights ?? 0) / 100) * dPlan1; - var workPackage3 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage2.SuperWorkPackageId); - if (workPackage3 != null) - { - dPlan1 = Convert.ToDecimal((workPackage3.Weights ?? 0) / 100) * dPlan1; - } - } - } - var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == workPackage1.UnitWorkId); - if (unitWork != null) - { - dPlan1 = Convert.ToDecimal((unitWork.Weights ?? 0) / 100) * dPlan1; - } - } - if (item.PlanCompleteDate >= months[i]) //当月计划完成记录 - { - dPlan += dPlan1; //累加当月值 - } - dPlanTotal += dPlan1; //累加累计值 - - } - foreach (var item in controlItemAndCycles) - { - //实际值 - var itemSoptCheckDetails = soptCheckDetails.Where(x => x.ControlItemAndCycleId == item.ControlItemAndCycleId && x.SpotCheckDate < months[i].AddMonths(1)); - var itemMonthSoptCheckDetails = soptCheckDetails.Where(x => x.ControlItemAndCycleId == item.ControlItemAndCycleId && x.SpotCheckDate >= months[i] && x.SpotCheckDate < months[i].AddMonths(1)); - if (itemSoptCheckDetails.Count() > 0) //存在验收合格的记录 - { - //工作包实际值 - dComplete1 = Convert.ToDecimal(itemSoptCheckDetails.Count()) / Convert.ToDecimal(item.CheckNum) * Convert.ToDecimal(item.Weights); - var workPackage1 = workPackages.FirstOrDefault(x => x.WorkPackageId == item.WorkPackageId); - if (workPackage1 != null) - { - //逐级递推计算权重计划值 - dComplete1 = Convert.ToDecimal((workPackage1.Weights ?? 0) / 100) * Convert.ToDecimal(dComplete1 / 100); - var workPackage2 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage1.SuperWorkPackageId); - if (workPackage2 != null) - { - dComplete1 = Convert.ToDecimal((workPackage2.Weights ?? 0) / 100) * dComplete1; - var workPackage3 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage2.SuperWorkPackageId); - if (workPackage3 != null) - { - dComplete1 = Convert.ToDecimal((workPackage3.Weights ?? 0) / 100) * dComplete1; - } - } - } - var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == workPackage1.UnitWorkId); - if (unitWork != null) - { - dComplete1 = Convert.ToDecimal((unitWork.Weights ?? 0) / 100) * dComplete1; - } - dCompleteTotal += dComplete1; - } - if (itemMonthSoptCheckDetails.Count() > 0) //当月存在验收合格的记录 - { - //工作包实际值 - dCompleteMonth = Convert.ToDecimal(itemMonthSoptCheckDetails.Count()) / Convert.ToDecimal(item.CheckNum) * Convert.ToDecimal(item.Weights); - var workPackage1 = workPackages.FirstOrDefault(x => x.WorkPackageId == item.WorkPackageId); - if (workPackage1 != null) - { - //逐级递推计算权重计划值 - dCompleteMonth = Convert.ToDecimal((workPackage1.Weights ?? 0) / 100) * Convert.ToDecimal(dCompleteMonth / 100); - var workPackage2 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage1.SuperWorkPackageId); - if (workPackage2 != null) - { - dCompleteMonth = Convert.ToDecimal((workPackage2.Weights ?? 0) / 100) * dCompleteMonth; - var workPackage3 = workPackages.FirstOrDefault(x => x.WorkPackageId == workPackage2.SuperWorkPackageId); - if (workPackage3 != null) - { - dCompleteMonth = Convert.ToDecimal((workPackage3.Weights ?? 0) / 100) * dCompleteMonth; - } - } - } - var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkId == workPackage1.UnitWorkId); - if (unitWork != null) - { - dCompleteMonth = Convert.ToDecimal((unitWork.Weights ?? 0) / 100) * dCompleteMonth; - } - dComplete += dCompleteMonth; - } - } - row[1] = dPlan.ToString(); //计划值 - if (dPlanTotal != lastDPlanTotal) //当期累计计划值不等于上月累计计划值时,再保存累计计划值 - { - row[2] = dPlanTotal.ToString(); //累计计划值 - for (int j = 0; j < i; j++) - { - if (string.IsNullOrEmpty(tb.Rows[j][2].ToString())) - { - tb.Rows[j][2] = lastDPlanTotal.ToString(); - } - } - } - else - { - if (dPlanTotal == 0) - { - row[2] = "0"; //累计计划值 - } - else - { - row[2] = dPlanTotal; - } - } - lastDPlanTotal = dPlanTotal; - row[3] = dComplete.ToString(); //实际值 - if (dCompleteTotal != lastDCompleteTotal) //当期累计实际值不等于上月累计实际值时,再保存累计实际值 - { - row[4] = dCompleteTotal.ToString(); //累计实际值 - for (int j = 0; j < i; j++) - { - if (string.IsNullOrEmpty(tb.Rows[j][4].ToString())) - { - tb.Rows[j][4] = lastDCompleteTotal.ToString(); - } - } - } - else - { - if (dCompleteTotal == 0) - { - row[4] = "0"; //累计实际值 - } - else - { - row[4] = dCompleteTotal; - } - } - lastDCompleteTotal = dCompleteTotal; - tb.Rows.Add(row); - } - - List series = new List(); - Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - List listCategories = new List(); - businessColumn.title = "赢得值曲线"; - var units = BLL.ProjectUnitService.GetProjectUnitListByProjectIdUnitType(CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); - Model.SingleSerie s = new Model.SingleSerie(); - Model.SingleSerie s2 = new Model.SingleSerie(); - Model.SingleSerie s3 = new Model.SingleSerie(); - Model.SingleSerie s4 = new Model.SingleSerie(); - List listdata = new List(); - List listdata2 = new List(); - List listdata3 = new List(); - List listdata4 = new List(); - for (int i = 0; i < tb.Rows.Count; i++) - { - listCategories.Add(tb.Rows[i][0].ToString()); - listdata.Add(Convert.ToDouble(tb.Rows[i][1].ToString()) * 100); - listdata2.Add(Convert.ToDouble(tb.Rows[i][2].ToString()) * 100); - listdata3.Add(Convert.ToDouble(tb.Rows[i][3].ToString()) * 100); - listdata4.Add(Convert.ToDouble(tb.Rows[i][4].ToString()) * 100); - } - s.data = listdata; - s2.data = listdata2; - s3.data = listdata3; - s4.data = listdata4; - series.Add(s); - series.Add(s2); - series.Add(s3); - series.Add(s4); businessColumn.categories = listCategories; + businessColumn.title = persons.Count().ToString(); businessColumn.series = series; return JsonConvert.SerializeObject(businessColumn); } } #endregion - - protected int TodoNum; + #region 关键事项 protected string swiper_One { get { - //安全 - var getDataList = Funs.DB.Sp_APP_GetToDoItems(this.CurrUser.LoginProjectId, this.CurrUser.UserId).ToList(); ; + string roleCNs = Request.Params["roleCNs"]; + var getGJSX = (from x in Funs.DB.GJSX + join y in Funs.DB.Base_QuestionType on x.QuestionTypeID equals y.QuestionTypeID + where x.ProjectId == this.CurrUser.LoginProjectId && x.State != "0" && roleCNs.Split(',').Contains(x.CNProfessional_ID) + orderby x.CreateDate + select new { x.GJSXID, x.Detail, x.CreateDate, x.ProjectId, y.QuestionTypeName }).Distinct().Take(20); string strNoticeHtml = string.Empty; - //质量 - SqlParameter[] val = new SqlParameter[] - { - new SqlParameter("@UserId", this.CurrUser.UserId), - new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId) - }; - var dt = BLL.SQLHelper.GetDataTableRunProc("SpAuditingManageByProjectId", val).AsEnumerable().ToArray(); - TodoNum = getDataList.Count + dt.Count(); - if (TodoNum >= 8) - { - foreach (var item in getDataList) - { - strNoticeHtml += "
  • " + item.Content + "
  • "; - } - foreach (var item in dt) - { - strNoticeHtml += "
  • " + item.ItemArray[1].ToString() + "
  • "; - } - } - else - { - if (TodoNum > 0) - { - foreach (var item in getDataList) - { - strNoticeHtml += "
  • " + item.Content + "
  • "; - } - foreach (var item in dt) - { - strNoticeHtml += "
  • " + item.ItemArray[1].ToString() + "
  • "; - } - int addRowNum = 8 - TodoNum; - for (int i = 0; i < addRowNum; i++) - { - strNoticeHtml += "
  • "; - } - } - } - return "
      " + strNoticeHtml + "
    "; - } - } - - protected int WarnNum; - - protected string swiper_Two - { - get - { - var getperson0 = APIPersonService.getPersonQualityByProjectIdUnitId(this.CurrUser.LoginProjectId, this.CurrUser.UnitId, "0"); - var getperson1 = APIPersonService.getPersonQualityByProjectIdUnitId(this.CurrUser.LoginProjectId, this.CurrUser.UnitId, "1"); - SqlParameter[] val = new SqlParameter[] - { - new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId) - }; - var dt = BLL.SQLHelper.GetDataTableRunProc("SpEnableCueQualityByPrject", val).AsEnumerable().ToArray(); - WarnNum = getperson0.Count + getperson1.Count + dt.Count(); - string strNoticeHtml = string.Empty; - string url = "../HSSE/QualityAudit/PersonQualityEdit.aspx?PersonId="; - string cqmsUrl = "../CQMS/Check/EditCheckEquipment.aspx?see=see&CheckEquipmentId="; - if (WarnNum >= 8) - { - foreach (var item in getperson0) - { - string pur = url + item.PersonId; - string strT = item.UnitName + "[" + item.PersonName + "]:" + item.CertificateName + "。证书已过期"; - strNoticeHtml += "
  • " + item.PersonName + ":" + item.CertificateName + "。证书已过期" + "
  • "; - } - foreach (var item in getperson1) - { - string pur = url + item.PersonId; - string strT = item.UnitName + "[" + item.PersonName + "]:" + item.CertificateName + "。证书待过期"; - strNoticeHtml += "
  • " + item.PersonName + ":" + item.CertificateName + "。证书待过期" + "
  • "; - } - foreach (var item in dt) - { - string pur = cqmsUrl + item.ItemArray[0].ToString(); - strNoticeHtml += "
  • " + item.ItemArray[1].ToString() + "
  • "; - } - } - else - { - if (WarnNum > 0) - { - foreach (var item in getperson0) - { - string pur = url + item.PersonId; - string strT = item.UnitName + "[" + item.PersonName + "]:" + item.CertificateName + "。证书已过期"; - strNoticeHtml += "
  • " + item.PersonName + ":" + item.CertificateName + "。证书已过期" + "
  • "; - } - foreach (var item in getperson1) - { - string pur = url + item.PersonId; - string strT = item.UnitName + "[" + item.PersonName + "]:" + item.CertificateName + "。证书待过期"; - strNoticeHtml += "
  • " + item.PersonName + ":" + item.CertificateName + "。证书待过期" + "
  • "; - } - foreach (var item in dt) - { - string pur = cqmsUrl + item.ItemArray[0].ToString(); - strNoticeHtml += "
  • " + item.ItemArray[1].ToString() + "
  • "; - } - int addRowNum = 8 - WarnNum; - for (int i = 0; i < addRowNum; i++) - { - strNoticeHtml += "
  • "; - } - } - } - - return "
      " + strNoticeHtml + "
    "; - } - } - - protected string swiper_Three - { - get - { - var getNotice = (from x in Funs.DB.InformationProject_Notice - where x.IsRelease == true && x.AccessProjectId.Contains(this.CurrUser.LoginProjectId) - orderby x.ReleaseDate - select x).Distinct().Take(20); var readIds = from x in Funs.DB.Sys_UserRead where x.UserId == this.CurrUser.UserId select x.DataId; - string strNoticeHtml = string.Empty; - foreach (var item in getNotice) + foreach (var item in getGJSX) { - string url = "../Notice/NoticeView2.aspx?NoticeId=" + item.NoticeId; - var attachFile = BLL.AttachFileService.GetAttachFile(item.NoticeId, BLL.Const.ServerNoticeMenuId); - if (attachFile != null && !string.IsNullOrEmpty(attachFile.AttachUrl)) + string url = "../PZHGL/GJSX/GJSXListEdit.aspx?EditType=Edit&Id=" + item.GJSXID; + if (item.QuestionTypeName.Contains("紧急")) { - url = "../" + attachFile.AttachUrl.Split(',')[0]; + strNoticeHtml += "
  • " + item.Detail + "
    " + string.Format("{0:yyyy-MM-dd}", item.CreateDate) + "
  • "; } - if (!readIds.Contains(item.NoticeId)) + else if (item.QuestionTypeName.Contains("重要")) { - strNoticeHtml += "
  • " + item.NoticeTitle + "
    " + string.Format("{0:yyyy-MM-dd}", item.CompileDate) + "
  • "; + strNoticeHtml += "
  • " + item.Detail + "
    " + string.Format("{0:yyyy-MM-dd}", item.CreateDate) + "
  • "; } else { - strNoticeHtml += "
  • " + item.NoticeTitle + "
    " + string.Format("{0:yyyy-MM-dd}", item.CompileDate) + "
  • "; + strNoticeHtml += "
  • " + item.Detail + "
    " + string.Format("{0:yyyy-MM-dd}", item.CreateDate) + "
  • "; } } return "
      " + strNoticeHtml + "
    "; } } + #endregion - protected void imgBtn_Click(object sender, ImageClickEventArgs e) + protected void imgBtn_Click(object sender, EventArgs e) { - Model.InformationProject_Notice notice = BLL.NoticeService.GetNoticeById(this.hdNoticeId.Value); - if (notice != null) + Model.GJSX gjsx = BLL.GJSXService.GetGJSXById(this.hdNoticeId.Value); + if (gjsx != null) { - BLL.APIUserService.getSaveUserRead(BLL.Const.ServerNoticeMenuId, notice.ProjectId, this.CurrUser.UserId, notice.NoticeId); + BLL.APIUserService.getSaveUserRead(BLL.Const.GJSXMenuId, gjsx.ProjectId, this.CurrUser.UserId, gjsx.GJSXID); } } } diff --git a/SGGL/FineUIPro.Web/common/mainIII.aspx.designer.cs b/SGGL/FineUIPro.Web/common/mainIII.aspx.designer.cs index 100e4eab..9e9e5aad 100644 --- a/SGGL/FineUIPro.Web/common/mainIII.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/common/mainIII.aspx.designer.cs @@ -21,105 +21,6 @@ namespace FineUIPro.Web.common { /// protected global::System.Web.UI.HtmlControls.HtmlHead Head1; - /// - /// divPNum8 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPNum8; - - /// - /// divPNum7 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPNum7; - - /// - /// divPNum6 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPNum6; - - /// - /// divPNum5 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPNum5; - - /// - /// divPNum4 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPNum4; - - /// - /// divPNum3 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPNum3; - - /// - /// divPNum2 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPNum2; - - /// - /// divPNum1 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPNum1; - - /// - /// divAllRectify 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divAllRectify; - - /// - /// divCRectify 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divCRectify; - - /// - /// divUCRectify 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl divUCRectify; - /// /// hdNoticeId 控件。 /// @@ -130,12 +31,156 @@ namespace FineUIPro.Web.common { protected global::System.Web.UI.WebControls.HiddenField hdNoticeId; /// - /// ImageButton1 控件。 + /// imgBtn 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::System.Web.UI.WebControls.ImageButton ImageButton1; + protected global::System.Web.UI.WebControls.Button imgBtn; + + /// + /// swiper2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl swiper2; + + /// + /// divZY 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divZY; + + /// + /// divYH 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divYH; + + /// + /// divRGS 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divRGS; + + /// + /// divQT 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divQT; + + /// + /// divPX 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divPX; + + /// + /// divZLWT 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divZLWT; + + /// + /// divZLGJ 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divZLGJ; + + /// + /// divYS 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divYS; + + /// + /// divHG 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divHG; + + /// + /// divJGZL 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divJGZL; + + /// + /// divNCR 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divNCR; + + /// + /// divBG 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divBG; + + /// + /// divQZ 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divQZ; + + /// + /// divMonth 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divMonth; + + /// + /// divGZL 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divGZL; } } diff --git a/SGGL/FineUIPro.Web/common/mainProject.aspx.cs b/SGGL/FineUIPro.Web/common/mainProject.aspx.cs index 972fcd84..fc533ebc 100644 --- a/SGGL/FineUIPro.Web/common/mainProject.aspx.cs +++ b/SGGL/FineUIPro.Web/common/mainProject.aspx.cs @@ -36,9 +36,10 @@ namespace FineUIPro.Web.common var getTrainRecord = from x in db.EduTrain_TrainRecord where x.ProjectId == this.CurrUser.LoginProjectId select x; this.divPX.InnerHtml = getTrainRecord.Count().ToString(); //质量问题 - var inspectionManagements = from x in db.ProcessControl_InspectionManagement where x.ProjectId == this.CurrUser.LoginProjectId select x; - this.divZLWT.InnerHtml = inspectionManagements.Count().ToString(); + var checkList = from x in db.Check_CheckControl where x.ProjectId == this.CurrUser.LoginProjectId select x; + this.divZLWT.InnerHtml = checkList.Count().ToString(); //质量共检数据 + var inspectionManagements = from x in db.ProcessControl_InspectionManagement where x.ProjectId == this.CurrUser.LoginProjectId select x; this.divZLGJ.InnerHtml = inspectionManagements.Count().ToString(); //验收数据 this.divYS.InnerHtml = inspectionManagements.Count(x => x.IsOnceQualified == true).ToString(); diff --git a/SGGL/FineUIPro.Web/indexProject.aspx.cs b/SGGL/FineUIPro.Web/indexProject.aspx.cs index 5e16ae2c..eff047bc 100644 --- a/SGGL/FineUIPro.Web/indexProject.aspx.cs +++ b/SGGL/FineUIPro.Web/indexProject.aspx.cs @@ -596,9 +596,36 @@ namespace FineUIPro.Web this.CurrUser.LoginProjectId = this.drpProject.SelectedValue; this.XmlDataSource1.DataFile = "common/Menu_Personal.xml"; this.leftPanel.Hidden = true; - if (this.CurrUser.RoleType == Const.Role_III || this.CurrUser.RoleType == Const.Role_IV) + var projectUser = BLL.ProjectUserService.GetProjectUserByUserIdProjectId(this.CurrUser.LoginProjectId, this.CurrUser.UserId); + if (projectUser != null) { - this.Tab1.IFrameUrl = "~/common/mainIII.aspx"; + string roleTypes = string.Empty; + string roleCNs = string.Empty; + string[] roles = projectUser.RoleId.Split(','); + foreach (var item in roles) + { + var role = BLL.RoleService.GetRoleByRoleId(item); + if (role != null && !string.IsNullOrEmpty(role.RoleType)) + { + roleTypes = role.RoleType + ","; + } + if (role != null && !string.IsNullOrEmpty(role.CNProfessionalIds)) + { + roleCNs = role.CNProfessionalIds + ","; + } + } + if (roleTypes.Contains(Const.Role_III)) + { + this.Tab1.IFrameUrl = "~/common/mainIII.aspx?roleCNs=" + roleCNs; + } + else if (roleTypes.Contains(Const.Role_IV)) + { + this.Tab1.IFrameUrl = "~/common/mainIV.aspx?roleCNs=" + roleCNs + "&unitWorkIds=" + projectUser.WorkAreaId; + } + else + { + this.Tab1.IFrameUrl = "~/common/mainProject.aspx"; + } } else { diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index dc35ead0..7cffb416 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -65718,6 +65718,8 @@ namespace Model private string _CheckManIds; + private string _CNProfessionalId; + private EntityRef _Base_Project; private EntityRef _Base_Unit; @@ -65820,6 +65822,8 @@ namespace Model partial void OnStatesChanged(); partial void OnCheckManIdsChanging(string value); partial void OnCheckManIdsChanged(); + partial void OnCNProfessionalIdChanging(string value); + partial void OnCNProfessionalIdChanged(); #endregion public Check_RectifyNotices() @@ -66619,6 +66623,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CNProfessionalId", DbType="NVarChar(50)")] + public string CNProfessionalId + { + get + { + return this._CNProfessionalId; + } + set + { + if ((this._CNProfessionalId != value)) + { + this.OnCNProfessionalIdChanging(value); + this.SendPropertyChanging(); + this._CNProfessionalId = value; + this.SendPropertyChanged("CNProfessionalId"); + this.OnCNProfessionalIdChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Check_RectifyNotices_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)] public Base_Project Base_Project { @@ -110435,6 +110459,10 @@ namespace Model private string _PlanId; + private string _CNProfessionalId; + + private string _UnitWorkIds; + private EntitySet _EduTrain_TrainRecordDetail; private EntityRef _Base_Project; @@ -110493,6 +110521,10 @@ namespace Model partial void OnWorkPostIdsChanged(); partial void OnPlanIdChanging(string value); partial void OnPlanIdChanged(); + partial void OnCNProfessionalIdChanging(string value); + partial void OnCNProfessionalIdChanged(); + partial void OnUnitWorkIdsChanging(string value); + partial void OnUnitWorkIdsChanged(); #endregion public EduTrain_TrainRecord() @@ -110942,6 +110974,46 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CNProfessionalId", DbType="NVarChar(50)")] + public string CNProfessionalId + { + get + { + return this._CNProfessionalId; + } + set + { + if ((this._CNProfessionalId != value)) + { + this.OnCNProfessionalIdChanging(value); + this.SendPropertyChanging(); + this._CNProfessionalId = value; + this.SendPropertyChanged("CNProfessionalId"); + this.OnCNProfessionalIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnitWorkIds", DbType="NVarChar(500)")] + public string UnitWorkIds + { + get + { + return this._UnitWorkIds; + } + set + { + if ((this._UnitWorkIds != value)) + { + this.OnUnitWorkIdsChanging(value); + this.SendPropertyChanging(); + this._UnitWorkIds = value; + this.SendPropertyChanged("UnitWorkIds"); + this.OnUnitWorkIdsChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_EduTrain_TrainDetail_EduTrain_Training", Storage="_EduTrain_TrainRecordDetail", ThisKey="TrainingId", OtherKey="TrainingId", DeleteRule="NO ACTION")] public EntitySet EduTrain_TrainRecordDetail { @@ -170318,6 +170390,8 @@ namespace Model private string _WorkStates; + private string _CNProfessionalId; + private EntityRef _Base_LicenseType; private EntityRef _Base_Project; @@ -170360,6 +170434,8 @@ namespace Model partial void OnApplicantManChanged(); partial void OnWorkStatesChanging(string value); partial void OnWorkStatesChanged(); + partial void OnCNProfessionalIdChanging(string value); + partial void OnCNProfessionalIdChanged(); #endregion public License_LicenseManager() @@ -170687,6 +170763,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CNProfessionalId", DbType="NVarChar(50)")] + public string CNProfessionalId + { + get + { + return this._CNProfessionalId; + } + set + { + if ((this._CNProfessionalId != value)) + { + this.OnCNProfessionalIdChanging(value); + this.SendPropertyChanging(); + this._CNProfessionalId = value; + this.SendPropertyChanged("CNProfessionalId"); + this.OnCNProfessionalIdChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_License_LicenseManager_Base_LicenseType", Storage="_Base_LicenseType", ThisKey="LicenseTypeId", OtherKey="LicenseTypeId", IsForeignKey=true)] public Base_LicenseType Base_LicenseType { @@ -253001,7 +253097,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(2000)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(200)")] public string Address { get @@ -253065,7 +253161,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(200)")] public string WorkAreaName { get @@ -270472,6 +270568,8 @@ namespace Model private System.Nullable _IsAuditFlow; + private string _CNProfessionalIds; + private EntitySet _Person_QuarterCheck; private EntitySet _Sys_ButtonPower; @@ -270498,6 +270596,8 @@ namespace Model partial void OnRoleTypeChanged(); partial void OnIsAuditFlowChanging(System.Nullable value); partial void OnIsAuditFlowChanged(); + partial void OnCNProfessionalIdsChanging(string value); + partial void OnCNProfessionalIdsChanged(); #endregion public Sys_Role() @@ -270668,6 +270768,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CNProfessionalIds", DbType="NVarChar(500)")] + public string CNProfessionalIds + { + get + { + return this._CNProfessionalIds; + } + set + { + if ((this._CNProfessionalIds != value)) + { + this.OnCNProfessionalIdsChanging(value); + this.SendPropertyChanging(); + this._CNProfessionalIds = value; + this.SendPropertyChanged("CNProfessionalIds"); + this.OnCNProfessionalIdsChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Person_QuarterCheck_Sys_Role", Storage="_Person_QuarterCheck", ThisKey="RoleId", OtherKey="RoleId", DeleteRule="NO ACTION")] public EntitySet Person_QuarterCheck { @@ -329368,6 +329488,10 @@ namespace Model private System.Nullable _CompileDate; + private string _CNProfessionalId; + + private string _ProfessionalName; + private string _States; private string _ProjectCode; @@ -329538,6 +329662,38 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CNProfessionalId", DbType="NVarChar(50)")] + public string CNProfessionalId + { + get + { + return this._CNProfessionalId; + } + set + { + if ((this._CNProfessionalId != value)) + { + this._CNProfessionalId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProfessionalName", DbType="NVarChar(30)")] + public string ProfessionalName + { + get + { + return this._ProfessionalName; + } + set + { + if ((this._ProfessionalName != value)) + { + this._ProfessionalName = value; + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_States", DbType="Char(1)")] public string States { @@ -334874,7 +335030,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(2000)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Address", DbType="NVarChar(200)")] public string Address { get @@ -334890,7 +335046,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaName", DbType="NVarChar(200)")] public string WorkAreaName { get