| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598 |
- /*******************************************************************************
- * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:HRModuleDAL.cs
- * 2.功能描述:员工管理更新db逻辑处理
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 王鑫 2014/09/12 1.00 新建
- *******************************************************************************/
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Text;
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Service.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Oracle.DataAccess.Client;
- namespace Dongke.IBOSS.PRD.Service.HRModuleLogic
- {
- /// <summary>
- /// 员工管理更新db逻辑处理
- /// </summary>
- public static class HRModuleDAL
- {
- #region 员工档案
- /// <summary>
- /// 添加员工档案
- /// </summary>
- /// <param name="staffInfo">员工实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="staffPhoto">员工图片集</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity AddStaffInfo(StaffEntity staffInfo, SUserInfo sUserInfo, List<StaffPhotoEntity> staffPhoto)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- if (staffInfo == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- string nextval = "select SEQ_HR_STAFF_STAFFID.nextval from dual";
- int id = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(nextval));
- #region 向员工档案表插入数据
- string sqlString = " INSERT INTO TP_HR_STAFF "
- + "(StaffID,StaffCode"
- + ",StaffName"
- + ",IDCardNo"
- + ",Birthday"
- + ",Gender"
- + ",MaritalStatus"
- + ",HomeTown"
- + ",PolicitalStatus"
- + ",National"
- + ",Educational"
- + ",Graduated"
- + ",SpecialField"
- + ",Telephone"
- + ",Height"
- + ",BloodGroup"
- + ",Weight"
- + ",Address"
- + ",LaidOff"
- + ",Disability"
- + ",JoinPartyDate"
- + ",Email"
- + ",OpeningBank"
- + ",AccountNo"
- + ",Remarks"
- //+ ",UserID"
- + ",AccountID"
- + ",ValueFlag"
- + ",CreateUserID"
- + ",UpdateUserID"
- + ",CreateTime"
- + ",UpdateTime"
- + ",OPTimeStamp"
- + ",StaffStatus"
- + ",OrganizationID"
- + ",Jobs"
- + ",Post"
- + ")"
- + " VALUES"
- + " (:StaffID"
- + " ,:StaffCode"
- + ",:StaffName"
- + ",:IDCardNo"
- + ",:Birthday"
- + ",:Gender"
- + ",:MaritalStatus"
- + ",:HomeTown"
- + ",:PolicitalStatus"
- + ",:National"
- + ",:Educational"
- + ",:Graduated"
- + ",:SpecialField"
- + ",:Telephone"
- + ",:Height"
- + ",:BloodGroup"
- + ",:Weight"
- + ",:Address"
- + ",:LaidOff"
- + ",:Disability"
- + ",:JoinPartyDate"
- + ",:Email"
- + ",:OpeningBank"
- + ",:AccountNo"
- + ",:Remarks"
- //+ ",:UserID"
- + ",:AccountID"
- + ",:ValueFlag"
- + ",:CreateUserID"
- + ",:UpdateUserID"
- + ",sysdate"
- + ",sysdate"
- + ",FUN_CMN_GetAccountDate(:AccountID)"
- + ",:StaffStatus"
- + ",:OrganizationID"
- + ",:Jobs"
- + ",:Post"
- + " )";
- OracleParameter[] parmeters = new OracleParameter[]
- {
- new OracleParameter(":StaffID",id),
- new OracleParameter(":StaffCode",staffInfo.StaffCode),
- new OracleParameter(":StaffName",staffInfo.StaffName),
- new OracleParameter(":IDCardNo",staffInfo.IDCardNo),
- new OracleParameter(":Birthday",staffInfo.Birthday),
- new OracleParameter(":Gender",staffInfo.Gender),
- new OracleParameter(":MaritalStatus",staffInfo.MaritalStatus),
- new OracleParameter(":HomeTown",staffInfo.HomeTown),
- new OracleParameter(":PolicitalStatus",staffInfo.PolicitalStatus),
- new OracleParameter(":National",staffInfo.National),
- new OracleParameter(":Educational",staffInfo.Educational),
- new OracleParameter(":Graduated",staffInfo.Graduated),
- new OracleParameter(":SpecialField",staffInfo.SpecialField),
- new OracleParameter(":Telephone",staffInfo.Telephone),
- new OracleParameter(":Height",staffInfo.Height),
- new OracleParameter(":BloodGroup",staffInfo.BloodGroup),
- new OracleParameter(":Weight",staffInfo.Weight),
- new OracleParameter(":Address",staffInfo.Address),
- new OracleParameter(":LaidOff",staffInfo.LaidOff?1:0),
- new OracleParameter(":Disability",staffInfo.Disability?1:0),
- new OracleParameter(":JoinPartyDate",staffInfo.JoinPartyDate),
- new OracleParameter(":Email",staffInfo.Email),
- new OracleParameter(":OpeningBank",staffInfo.OpeningBank),
- new OracleParameter(":AccountNo",staffInfo.AccountNo),
- new OracleParameter(":Remarks",staffInfo.Remarks),
- // new OracleParameter(":UserID",sUserInfo.UserID),
- new OracleParameter(":AccountID",sUserInfo.AccountID),
- new OracleParameter(":ValueFlag",staffInfo.ValueFlag?1:0),
- new OracleParameter(":CreateUserID",sUserInfo.UserID),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- new OracleParameter(":StaffStatus",staffInfo.StaffStatus),
- new OracleParameter(":OrganizationID",OracleDbType.Int32, staffInfo.OrganizationID, ParameterDirection.Input ),
- new OracleParameter(":Jobs",OracleDbType.Int32, staffInfo.Jobs, ParameterDirection.Input ),
- new OracleParameter(":Post",OracleDbType.Int32, staffInfo.Post, ParameterDirection.Input ),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- resultEnity.HRStaffID = id;
- #region 向TP_HR_STAFFPHOTO插入数据
- StringBuilder sbSql = new StringBuilder();
- //此处添加图片信息
- foreach (StaffPhotoEntity img in staffPhoto)
- {
- // 缩略图
- img.Thumbnail = CommonModuleLogic.CommonModuleLogic.ConvertThumbnail(img.Photo);
- sbSql.Clear();
- sbSql.Append("Insert into TP_HR_STAFFPHOTO");
- sbSql.Append("( StaffID,Thumbnail,Photo,AccountID,");
- sbSql.Append("CreateUserID,UpdateUserID)");
- sbSql.Append(" VALUES(:StaffID,:Thumbnail,:Photo,:AccountID,");
- sbSql.Append(":CreateUserID,:UpdateUserID)");
- OracleParameter[] imgParas = new OracleParameter[] {
- new OracleParameter(":StaffID",OracleDbType.Int32,
- id,ParameterDirection.Input),
- new OracleParameter(":Thumbnail",OracleDbType.Blob,
- img.Thumbnail,ParameterDirection.Input),
- new OracleParameter(":Photo",OracleDbType.Blob,
- img.Photo,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sbSql.ToString(), imgParas);
- }
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 导入员工档案
- /// </summary>
- /// <param name="staffInfo">员工信息</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>ServiceResultEntity</returns>
- public static ServiceResultEntity ImportStaffInfo(DataTable staffInfo, SUserInfo sUserInfo)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- //StringBuilder staffCodes = new StringBuilder();
- //foreach (DataRow item in staffInfo.Rows)
- //{
- // staffCodes.Append("'" + item["员工编码"] + "',");
- //}
- //string sql = "select StaffCode from TP_HR_Staff where StaffCode in ("
- // + staffCodes.ToString(0, staffCodes.Length - 1) + ")";
- //DataTable existsCode = oracleTrConn.GetSqlResultToDt(sql);
- // if (existsCode != null && existsCode.Rows.Count > 0)
- // {
- // ServiceResultEntity sre = new ServiceResultEntity();
- // sre.Status = Constant.ServiceResultStatus.Other;
- // staffCodes.Clear();
- // staffCodes = new StringBuilder();
- // foreach (DataRow item in existsCode.Rows)
- // {
- // staffCodes.Append(item["StaffCode"] + ",");
- // }
- // sre.Message = "系统中已存在以下员工编码:" + System.Environment.NewLine
- // + staffCodes.ToString(0, staffCodes.Length - 1);
- // return sre;
- // }
- string sql = "select StaffCode from TP_HR_Staff where StaffCode = '{0}'";
- List<string> staffCodes = new List<string>();
- string nextval = "select SEQ_HR_STAFF_STAFFID.nextval from dual";
- #region 向员工档案表插入数据
- string sqlString = " INSERT INTO TP_HR_STAFF "
- + "(StaffID,StaffCode"
- + ",StaffName"
- + ",IDCardNo"
- + ",Birthday"
- + ",Gender"
- + ",MaritalStatus"
- + ",HomeTown"
- + ",PolicitalStatus"
- + ",National"
- + ",Educational"
- + ",Graduated"
- + ",SpecialField"
- + ",Telephone"
- + ",Height"
- + ",BloodGroup"
- + ",Weight"
- + ",Address"
- + ",LaidOff"
- + ",Disability"
- + ",JoinPartyDate"
- + ",Email"
- + ",OpeningBank"
- + ",AccountNo"
- + ",Remarks"
- + ",AccountID"
- + ",ValueFlag"
- + ",CreateUserID"
- + ",UpdateUserID"
- + ",CreateTime"
- + ",UpdateTime"
- + ",OrganizationID"
- + ",Jobs"
- + ",Post"
- + ",StaffStatus"
- + ",EntryDate"
- + ")"
- + " VALUES"
- + " (:StaffID"
- + " ,:StaffCode"
- + ",:StaffName"
- + ",:IDCardNo"
- + ",:Birthday"
- + ",:Gender"
- + ",:MaritalStatus"
- + ",:HomeTown"
- + ",:PolicitalStatus"
- + ",:National"
- + ",:Educational"
- + ",:Graduated"
- + ",:SpecialField"
- + ",:Telephone"
- + ",:Height"
- + ",:BloodGroup"
- + ",:Weight"
- + ",:Address"
- + ",:LaidOff"
- + ",:Disability"
- + ",:JoinPartyDate"
- + ",:Email"
- + ",:OpeningBank"
- + ",:AccountNo"
- + ",:Remarks"
- + ",:AccountID"
- + ",'1'"
- + ",:CreateUserID"
- + ",:CreateUserID"
- + ",sysdate"
- + ",sysdate"
- + ",:OrganizationID"
- + ",:Jobs"
- + ",:Post"
- + ",:StaffStatus"
- + ",decode(:StaffStatus, 0, null, trunc(sysdate))"
- + " )";
- List<int> ids = new List<int>();
- foreach (DataRow item in staffInfo.Rows)
- {
- // 已存在不影响 其他导入 chenxy 2019-10-14
- object objCode = oracleTrConn.GetSqlResultToObj(string.Format(sql, item["员工编码"]));
- if (!string.IsNullOrEmpty(objCode + ""))
- {
- staffCodes.Add(objCode + "");
- continue;
- }
- int id = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(nextval));
- ids.Add(id);
- OracleParameter[] parmeters = new OracleParameter[]
- {
- new OracleParameter(":StaffID",id),
- new OracleParameter(":StaffCode",item["员工编码"]),
- new OracleParameter(":StaffName",item["员工姓名"]),
- new OracleParameter(":IDCardNo",item["身份证号码"]),
- new OracleParameter(":Birthday", OracleDbType.Date, item["生日"], ParameterDirection.Input ),
- new OracleParameter(":Gender",OracleDbType.Char, item["性别"], ParameterDirection.Input ),
- new OracleParameter(":MaritalStatus",OracleDbType.Int32, int.Parse(item["婚姻状况"].ToString()), ParameterDirection.Input ),
- new OracleParameter(":HomeTown",OracleDbType.NVarchar2, item["籍贯"], ParameterDirection.Input ),
- new OracleParameter(":PolicitalStatus",OracleDbType.NVarchar2, item["政治面貌"], ParameterDirection.Input ),
- new OracleParameter(":National",OracleDbType.Int32, int.Parse(item["民族"].ToString()), ParameterDirection.Input ),
- new OracleParameter(":Educational",OracleDbType.Int32,int.Parse( item["学历"].ToString()), ParameterDirection.Input ),
- new OracleParameter(":Graduated",OracleDbType.NVarchar2, item["毕业学校"], ParameterDirection.Input ),
- new OracleParameter(":SpecialField",OracleDbType.NVarchar2, item["专业"], ParameterDirection.Input ),
- new OracleParameter(":Telephone",OracleDbType.NVarchar2, item["联系电话"], ParameterDirection.Input ),
- new OracleParameter(":Height",OracleDbType.Decimal, item["身高(CM)"], ParameterDirection.Input ),
- new OracleParameter(":BloodGroup",OracleDbType.NVarchar2, item["血型"], ParameterDirection.Input ),
- new OracleParameter(":Weight",OracleDbType.Decimal, item["体重(KG)"], ParameterDirection.Input ),
- new OracleParameter(":Address",OracleDbType.NVarchar2, item["家庭住址"], ParameterDirection.Input ),
- new OracleParameter(":LaidOff",OracleDbType.Char, item["下岗职工"], ParameterDirection.Input ),
- new OracleParameter(":Disability",OracleDbType.Char, item["残疾职工"], ParameterDirection.Input ),
- new OracleParameter(":JoinPartyDate",OracleDbType.Date, item["入党日期"], ParameterDirection.Input ),
- new OracleParameter(":Email",OracleDbType.NVarchar2, item["电子邮箱"], ParameterDirection.Input ),
- new OracleParameter(":OpeningBank",OracleDbType.NVarchar2, item["开户行"], ParameterDirection.Input ),
- new OracleParameter(":AccountNo",OracleDbType.NVarchar2, item["开户账号"], ParameterDirection.Input ),
- new OracleParameter(":Remarks",OracleDbType.NVarchar2, item["备注"], ParameterDirection.Input ),
- new OracleParameter(":AccountID",sUserInfo.AccountID),
- new OracleParameter(":CreateUserID",sUserInfo.UserID),
- new OracleParameter(":OrganizationID",OracleDbType.Int32, item["部门(全称)"].ToString()==""?null:item["部门(全称)"], ParameterDirection.Input ),
- new OracleParameter(":Jobs",OracleDbType.Int32, item["工种"].ToString()==""?null:item["工种"], ParameterDirection.Input ),
- new OracleParameter(":Post",OracleDbType.Int32, item["职务"].ToString()==""?null:item["职务"], ParameterDirection.Input ),
- new OracleParameter(":StaffStatus",OracleDbType.Int32, item["StaffStatus"], ParameterDirection.Input ),
- };
- oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- }
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- ServiceResultEntity result = new ServiceResultEntity();
- if (staffCodes.Count > 0)
- {
- result.Status = Constant.ServiceResultStatus.Other;
- result.Message = "系统中已存在以下员工编码(其他已导入):" + System.Environment.NewLine
- + string.Join(",", staffCodes);
- return result;
- }
- result.Status = Constant.ServiceResultStatus.Success;
- result.Result = string.Join(",", ids);
- return result;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 更新员工档案
- /// </summary>
- /// <param name="staffInfo">员工实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="staffPhoto">员工图片集</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity EditStaffInfo(StaffEntity staffInfo, SUserInfo sUserInfo, List<StaffPhotoEntity> staffPhoto)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- if (staffInfo == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 验证员工档案表时间戳
- string sql = "SELECT OPTimeStamp FROM tp_hr_staff"
- + " WHERE Staffid = " + staffInfo.StaffID + " and OPTimeStamp = :OPTimeStamp";
- OracleParameter[] parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, staffInfo.OPTimeStamp, ParameterDirection.Input),
- };
- DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sql, parmetersSql);
- if (returnDataset != null
- && returnDataset.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;
- }
- #endregion
- #region 更新员工档案表中的数据
- string sqlString = " UPDATE TP_HR_STAFF SET"
- + " StaffCode=:StaffCode"
- + ",StaffName=:StaffName"
- + ",IDCardNo=:IDCardNo"
- + ",Birthday=:Birthday"
- + ",Gender=:Gender"
- + ",MaritalStatus=:MaritalStatus"
- + ",HomeTown=:HomeTown"
- + ",PolicitalStatus=:PolicitalStatus"
- + ",National=:National"
- + ",Educational=:Educational"
- + ",Graduated=:Graduated"
- + ",SpecialField=:SpecialField"
- + ",Telephone=:Telephone"
- + ",Height=:Height"
- + ",BloodGroup=:BloodGroup"
- + ",Weight=:Weight"
- + ",Address=:Address"
- + ",LaidOff=:LaidOff"
- + ",Disability=:Disability"
- + ",JoinPartyDate=:JoinPartyDate"
- + ",Email=:Email"
- + ",OpeningBank=:OpeningBank"
- + ",AccountNo=:AccountNo"
- + ",Remarks=:Remarks"
- + ",ValueFlag=:ValueFlag"
- + ",UpdateUserID=:UpdateUserID"
- + ",OrganizationID=:OrganizationID"
- + ",Post=:Post"
- + ",Jobs=:Jobs"
- + " where staffid=" + staffInfo.StaffID;
- OracleParameter[] parmeters = new OracleParameter[]
- {
- new OracleParameter(":StaffCode",staffInfo.StaffCode),
- new OracleParameter(":StaffName",staffInfo.StaffName),
- new OracleParameter(":IDCardNo",staffInfo.IDCardNo),
- new OracleParameter(":Birthday",staffInfo.Birthday),
- new OracleParameter(":Gender",staffInfo.Gender),
- new OracleParameter(":MaritalStatus",staffInfo.MaritalStatus),
- new OracleParameter(":HomeTown",staffInfo.HomeTown),
- new OracleParameter(":PolicitalStatus",staffInfo.PolicitalStatus),
- new OracleParameter(":National",staffInfo.National),
- new OracleParameter(":Educational",staffInfo.Educational),
- new OracleParameter(":Graduated",staffInfo.Graduated),
- new OracleParameter(":SpecialField",staffInfo.SpecialField),
- new OracleParameter(":Telephone",staffInfo.Telephone),
- new OracleParameter(":Height",staffInfo.Height),
- new OracleParameter(":BloodGroup",staffInfo.BloodGroup),
- new OracleParameter(":Weight",staffInfo.Weight),
- new OracleParameter(":Address",staffInfo.Address),
- new OracleParameter(":LaidOff",staffInfo.LaidOff?1:0),
- new OracleParameter(":Disability",staffInfo.Disability?1:0),
- new OracleParameter(":JoinPartyDate",staffInfo.JoinPartyDate),
- new OracleParameter(":Email",staffInfo.Email),
- new OracleParameter(":OpeningBank",staffInfo.OpeningBank),
- new OracleParameter(":AccountNo",staffInfo.AccountNo),
- new OracleParameter(":Remarks",staffInfo.Remarks),
- new OracleParameter(":ValueFlag",staffInfo.ValueFlag?1:0),
- new OracleParameter(":UpdateUserID",sUserInfo.UserID),
- new OracleParameter(":OrganizationID",staffInfo.OrganizationID),
- new OracleParameter(":Post",staffInfo.Post),
- new OracleParameter(":Jobs",staffInfo.Jobs),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- resultEnity.HRStaffID = staffInfo.StaffID;
- #region 更新员工照片表数据 注释掉
- /*
- StringBuilder sbSql = new StringBuilder();
- foreach (StaffPhotoEntity img in staffPhoto)
- {
- sbSql.Clear();
- string sqlExist = "SELECT 1 FROM TP_HR_STAFFPHOTO"
- + " WHERE StaffPhotoID = " + img.StaffPhotoID + " and AccountID = :AccountID";
- OracleParameter[] parmetersExist = new OracleParameter[]
- {
- new OracleParameter(":AccountID",sUserInfo.AccountID),
- };
- DataSet returnDSexist = oracleTrConn.GetSqlResultToDs(sqlExist, parmetersExist);
- if (returnDSexist != null
- && returnDSexist.Tables[0].Rows.Count == 0)
- {
- string sqlExistStaff = "SELECT 1 FROM TP_HR_STAFFPHOTO"
- + " WHERE StaffID = " + staffInfo.StaffID + " and AccountID = :AccountID";
- OracleParameter[] parmetersExistStaff = new OracleParameter[]
- {
- new OracleParameter(":AccountID",sUserInfo.AccountID),
- };
- DataSet returnDSexistStaff = oracleTrConn.GetSqlResultToDs(sqlExistStaff, parmetersExistStaff);
- if (returnDSexistStaff != null
- && returnDSexistStaff.Tables[0].Rows.Count == 0)
- {
- sbSql.Append("Insert into TP_HR_STAFFPHOTO");
- sbSql.Append("(StaffID,Thumbnail,Photo,AccountID,ValueFlag,CreateTime,");
- sbSql.Append("CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp)");
- sbSql.Append(" VALUES(:StaffID,:Thumbnail,:Photo,:AccountID,:ValueFlag,:CreateTime,");
- sbSql.Append(":CreateUserID,:UpdateTime,:UpdateUserID,:OPTimeStamp)");
- OracleParameter[] imgParas = new OracleParameter[] {
- new OracleParameter(":StaffID",OracleDbType.Int32,
- staffInfo.StaffID,ParameterDirection.Input),
- new OracleParameter(":Thumbnail",OracleDbType.Blob,
- img.Thumbnail,ParameterDirection.Input),
- new OracleParameter(":Photo",OracleDbType.Blob,
- img.Photo,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,
- img.ValueFlag,ParameterDirection.Input),
- new OracleParameter(":CreateTime",OracleDbType.Date,
- DateTime.Now,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateTime",OracleDbType.Date,
- DateTime.Now,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":OPTimeStamp",OracleDbType.TimeStamp,
- DateTime.Now,ParameterDirection.Input)
- };
- oracleTrConn.ExecuteNonQuery(sbSql.ToString(), imgParas);
- }
- else
- {
- sbSql.Append(" update TP_HR_STAFFPHOTO");
- sbSql.Append(" set Thumbnail=:Thumbnail,Photo=:Photo,AccountID=:AccountID,ValueFlag=:ValueFlag,");
- sbSql.Append(" UpdateUserID=:UpdateUserID");
- sbSql.Append(" where StaffID=:StaffID");
- OracleParameter[] imgParasStaff = new OracleParameter[] {
- new OracleParameter(":Thumbnail",OracleDbType.Blob,
- img.Thumbnail,ParameterDirection.Input),
- new OracleParameter(":Photo",OracleDbType.Blob,
- img.Photo,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,
- img.ValueFlag,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- staffInfo.StaffID,ParameterDirection.Input),};
- oracleTrConn.ExecuteNonQuery(sbSql.ToString(), imgParasStaff);
- }
- }
- else
- {
- sbSql.Clear();
- sbSql.Append(" update TP_HR_STAFFPHOTO");
- sbSql.Append(" set StaffID=:StaffID,Thumbnail=:Thumbnail,Photo=:Photo,AccountID=:AccountID,ValueFlag=:ValueFlag,");
- sbSql.Append(" UpdateUserID=:UpdateUserID");
- sbSql.Append(" where STAFFPHOTOID=:STAFFPHOTOID");
- OracleParameter[] imgParas = new OracleParameter[] {
- new OracleParameter(":StaffID",OracleDbType.Int32,
- staffInfo.StaffID,ParameterDirection.Input),
- new OracleParameter(":Thumbnail",OracleDbType.Blob,
- img.Thumbnail,ParameterDirection.Input),
- new OracleParameter(":Photo",OracleDbType.Blob,
- img.Photo,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,
- img.ValueFlag,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":STAFFPHOTOID",OracleDbType.Int32,
- img.StaffPhotoID,ParameterDirection.Input)
- };
- oracleTrConn.ExecuteNonQuery(sbSql.ToString(), imgParas);
- }
- }
- */
- #endregion
- #region 先删除图片
- string strDel = "delete TP_HR_STAFFPHOTO where StaffID=:staffID";
- OracleParameter[] imgParas = new OracleParameter[] {
- new OracleParameter(":staffID",OracleDbType.Int32,
- staffInfo.StaffID,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(strDel, imgParas);
- #endregion
- #region 向TP_HR_STAFFPHOTO插入数据
- StringBuilder sbSql = new StringBuilder();
- //此处添加图片信息
- foreach (StaffPhotoEntity img in staffPhoto)
- {
- // 缩略图
- img.Thumbnail = CommonModuleLogic.CommonModuleLogic.ConvertThumbnail(img.Photo);
- sbSql.Clear();
- sbSql.Append("Insert into TP_HR_STAFFPHOTO");
- sbSql.Append("( StaffID,Thumbnail,Photo,AccountID,");
- sbSql.Append("CreateUserID,UpdateUserID)");
- sbSql.Append(" VALUES(:StaffID,:Thumbnail,:Photo,:AccountID,");
- sbSql.Append(":CreateUserID,:UpdateUserID)");
- imgParas = new OracleParameter[] {
- new OracleParameter(":StaffID",OracleDbType.Int32,
- staffInfo.StaffID,ParameterDirection.Input),
- new OracleParameter(":Thumbnail",OracleDbType.Blob,
- img.Thumbnail,ParameterDirection.Input),
- new OracleParameter(":Photo",OracleDbType.Blob,
- img.Photo,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- sUserInfo.UserID,ParameterDirection.Input),
- };
- oracleTrConn.ExecuteNonQuery(sbSql.ToString(), imgParas);
- }
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 设置禁用员工
- /// </summary>
- /// <param name="staffid">员工ID</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity SetValueFlag(int staffid, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- string sql = "SELECT Count(*) FROM TP_HR_STAFF WHERE staffid=" + staffid + " AND StaffStatus in(0,3) AND ValueFlag=1";
- string strCount = oracleTrConn.GetSqlResultToStr(sql);
- if (!"0".Equals(strCount))
- {
- string sqlString = "Update TP_HR_STAFF SET ValueFlag=0,UpdateUserID =" + sUserInfo.UserID
- + " WHERE staffid=" + staffid;
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString);
- string sqlString2 = "Select StaffRecordID From TP_HR_StaffRecord "
- + " Where ApprovalStatus = 0 AND RecordType = 1 And ValueFlag = 1 And StaffID = " + staffid;
- string strStaffRecordID = oracleTrConn.GetSqlResultToStr(sqlString2);
- if (!string.IsNullOrEmpty(strStaffRecordID))
- {
- string sqlString3 = "Update TP_HR_StaffRecord Set ValueFlag = 0,UpdateUserID = " + sUserInfo.UserID
- + " Where ApprovalStatus = 0 AND RecordType = 1 And ValueFlag = 1 And StaffID = " + staffid;
- oracleTrConn.ExecuteNonQuery(sqlString3);
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- else
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -4;
- return resultEnity;
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- }
- #endregion
- #region 员工入职
- /// <summary>
- /// 添加员工履历
- /// </summary>
- /// <param name="staffrecord">员工履历实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity AddStaffRecord(StaffRecordEntity staffrecord, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- if (staffrecord == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- if (staffrecord.ExProbationEndDate != null)
- {
- // 取得最近一次工资结算日
- DateTime wageDate = CommonModuleLogic.CommonModuleLogic.GetSystemDate(Constant.SystemDateType.WageSettlementDate, sUserInfo);
- if (staffrecord.ExProbationEndDate.Value <= wageDate)
- {
- resultEnity.OperateStatus = Constant.INT_IS_NEGATIE_FOUR;
- return resultEnity;
- }
- }
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- //查询此员工是否有待审批的履历
- string sql = "SELECT 1 FROM TP_HR_STAFFRECORD"
- + " WHERE Staffid =:Staffid and RecordType = 1 And ValueFlag = 1 and ApprovalStatus=0";
- OracleParameter[] parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, staffrecord.StaffID , ParameterDirection.Input),
- };
- DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sql, parmetersSql);
- if (returnDataset != null && returnDataset.Tables[0].Rows.Count > 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;//不允许在添加,此员工有待审批的履历
- }
- // 查询新插入的生产数据ID
- string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_HR_STAFFRECORD_ID.nextval from dual");
- #region 插入员工履历数据
- string sqlString = " INSERT INTO TP_HR_STAFFRECORD "
- + "(StaffRecordID,StaffID"
- + ",StaffCode"
- + ",RecordDate"
- + ",RecordType"
- + ",ExProbationEndDate"
- + ",OriginalStaffStatus"
- + ",OriginalJobs"
- + ",OriginalOrganizationID"
- + ",OriginalPost"
- + ",TargetStaffStatus"
- + ",TargetJobs"
- + ",TargetOrganizationID"
- + ",TargetPost"
- + ",Applicant"
- + ",Reason"
- + ",Suggestion"
- + ",ApprovalStatus"
- + ",Approver"
- + ",ApprovalDate"
- + ",Remarks"
- + ",AccountID"
- + ",ValueFlag"
- + ",CreateUserID"
- + ",UpdateUserID"
- + ")"
- + " VALUES "
- + " (:StaffRecordID,:StaffID"
- + ",:StaffCode"
- + ",sysdate"
- + ",:RecordType"
- + ",:ExProbationEndDate"
- + ",:OriginalStaffStatus"
- + ",:OriginalJobs"
- + ",:OriginalOrganizationID"
- + ",:OriginalPost"
- + ",:TargetStaffStatus"
- + ",:TargetJobs"
- + ",:TargetOrganizationID"
- + ",:TargetPost"
- + ",:Applicant"
- + ",:Reason"
- + ",:Suggestion"
- + ",:ApprovalStatus"
- + ",:Approver"
- + ",FUN_CMN_GetAccountDate(:ACCOUNTID)"
- + ",:Remarks"
- + ",:AccountID"
- + ",:ValueFlag"
- + ",:CreateUserID"
- + ",:UpdateUserID"
- + " )";
- OracleParameter[] parmeters = new OracleParameter[]
- {
- new OracleParameter(":StaffRecordID",OracleDbType.Int32,Convert.ToInt32(strSeq),ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,staffrecord.StaffID,ParameterDirection.Input),
- new OracleParameter(":StaffCode",OracleDbType.Varchar2,staffrecord.StaffCode,ParameterDirection.Input),
- new OracleParameter(":RecordType",OracleDbType.Int32,staffrecord.RecordType,ParameterDirection.Input),
- new OracleParameter(":ExProbationEndDate",OracleDbType.Date,staffrecord.ExProbationEndDate,ParameterDirection.Input),
- new OracleParameter(":OriginalStaffStatus",OracleDbType.Int32,staffrecord.OriginalStaffStatus,ParameterDirection.Input),
- new OracleParameter(":OriginalJobs",OracleDbType.Int32,staffrecord.OriginalJobs,ParameterDirection.Input),
- new OracleParameter(":OriginalOrganizationID",OracleDbType.Int32,staffrecord.OriginalOrganizationID,ParameterDirection.Input),
- new OracleParameter(":OriginalPost",OracleDbType.Int32,staffrecord.OriginalPost,ParameterDirection.Input),
- new OracleParameter(":TargetStaffStatus",OracleDbType.Int32,staffrecord.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":TargetJobs",OracleDbType.Int32,staffrecord.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":TargetOrganizationID",OracleDbType.Int32,staffrecord.TargetOrganizationID,ParameterDirection.Input),
- new OracleParameter(":TargetPost",OracleDbType.Int32,staffrecord.TargetPost,ParameterDirection.Input),
- new OracleParameter(":Applicant",OracleDbType.Int32,staffrecord.Applicant,ParameterDirection.Input),
- new OracleParameter(":Reason",OracleDbType.Varchar2,staffrecord.Reason,ParameterDirection.Input),
- new OracleParameter(":Suggestion",OracleDbType.Varchar2,staffrecord.Suggestion,ParameterDirection.Input),
- new OracleParameter(":ApprovalStatus",OracleDbType.Int32,staffrecord.ApprovalStatus,ParameterDirection.Input),
- new OracleParameter(":Approver",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.Varchar2,staffrecord.Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,staffrecord.ValueFlag,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
-
- resultEnity.HRStaffRecordID = Convert.ToInt32(strSeq);
- #region 更新员工档案的试用期时间
- string strSql2 = "Update TP_HR_Staff Set ExProbationEndDate = :pExProbationEndDate WHERE StaffID = :pStaffID";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pExProbationEndDate", OracleDbType.Date, staffrecord.ExProbationEndDate, ParameterDirection.Input),
- new OracleParameter(":pStaffID", OracleDbType.Int32, staffrecord.StaffID , ParameterDirection.Input)
- };
- foreach (var itemNull in parmetersSql2)
- {
- if (string.IsNullOrEmpty(itemNull.Value + ""))
- {
- itemNull.Value = DBNull.Value;
- }
- }
- oracleTrConn.ExecuteNonQuery(strSql2, parmetersSql2);
- #endregion
- if (staffrecord.ApprovalStatus == 3) //审批通过
- {
- #region 更新数据到员工档案表
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "StaffStatus=" + staffrecord.TargetStaffStatus //试用
- + ",EntryDate=FUN_CMN_GetAccountDate(:pACCOUNTID)"
- + ",UpdateUserID=:pUpdateUserID"
- + ",OrganizationID=:OrganizationID"
- + ",Post=:Post"
- + ",Jobs=:Jobs"
- + ",TurnoverDate=NULL"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":pACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,staffrecord.StaffID,ParameterDirection.Input),
- new OracleParameter(":OrganizationID",OracleDbType.Int32,staffrecord.TargetOrganizationID,ParameterDirection.Input),
- new OracleParameter(":Post",OracleDbType.Int32,staffrecord.TargetPost,ParameterDirection.Input),
- new OracleParameter(":Jobs",OracleDbType.Int32,staffrecord.TargetJobs,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- if (staffrecord.TargetStaffStatus == 1)
- {
- #region 如果试用,往试用表里插入数据
- string sqlString3 = "INSERT INTO TP_HR_StaffProbation("
- + "StaffID"
- + ",JobsID"
- + ",BeginDate"
- + ",AccountID"
- + ",CreateUserID"
- + ",UpdateUserID) VALUES ("
- + ":StaffID"
- + ",:JobsID"
- + ",sysdate"
- + ",:AccountID"
- + ",:CreateUserID"
- + ",:UpdateUserID)";
- OracleParameter[] parmeters3 = new OracleParameter[]
- {
- new OracleParameter(":StaffID",OracleDbType.Int32,staffrecord.StaffID,ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,staffrecord.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString3, parmeters3);
- #endregion
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 编辑员工履历
- /// </summary>
- /// <param name="staffrecord">员工履历实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity EditStaffRecord(StaffRecordEntity staffrecord, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- if (staffrecord == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- if (staffrecord.ExProbationEndDate != null)
- {
- // 取得最近一次工资结算日
- DateTime wageDate = CommonModuleLogic.CommonModuleLogic.GetSystemDate(Constant.SystemDateType.WageSettlementDate, sUserInfo);
- if (staffrecord.ExProbationEndDate.Value <= wageDate)
- {
- resultEnity.OperateStatus = Constant.INT_IS_NEGATIE_FOUR;
- return resultEnity;
- }
- }
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- string sql = "SELECT OPTimeStamp FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = " + staffrecord.StaffRecordID + " and OPTimeStamp = :OPTimeStamp";
- OracleParameter[] parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, staffrecord.OPTimeStamp, ParameterDirection.Input),
- };
- DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sql, parmetersSql);
- if (returnDataset != null && returnDataset.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;
- }
- #region 更新员工履历信息
- string sqlString = " UPDATE TP_HR_STAFFRECORD SET "
- + "StaffID=:StaffID"
- + ",StaffCode=:StaffCode"
- + ",ExProbationEndDate=:ExProbationEndDate"
- + ",OriginalStaffStatus=:OriginalStaffStatus"
- + ",OriginalJobs=:OriginalJobs"
- + ",OriginalOrganizationID=:OriginalOrganizationID"
- + ",OriginalPost=:OriginalPost"
- + ",TargetStaffStatus=:TargetStaffStatus"
- + ",TargetJobs=:TargetJobs"
- + ",TargetOrganizationID=:TargetOrganizationID"
- + ",TargetPost=:TargetPost"
- + ",Reason=:Reason"
- + ",Suggestion=:Suggestion"
- + ",UpdateUserID=:UpdateUserID"
- + ",Applicant=:Applicant"
- + ",Remarks=:Remarks"
- + " Where StaffRecordID=:StaffRecordID";
- OracleParameter[] parmeters = new OracleParameter[]
- {
- new OracleParameter(":StaffID",OracleDbType.Int32,staffrecord.StaffID,ParameterDirection.Input),
- new OracleParameter(":StaffCode",OracleDbType.Varchar2,staffrecord.StaffCode,ParameterDirection.Input),
- new OracleParameter(":ExProbationEndDate",OracleDbType.Date,staffrecord.ExProbationEndDate,ParameterDirection.Input),
- new OracleParameter(":OriginalStaffStatus",OracleDbType.Int32,staffrecord.OriginalStaffStatus,ParameterDirection.Input),
- new OracleParameter(":OriginalJobs",OracleDbType.Int32,staffrecord.OriginalJobs,ParameterDirection.Input),
- new OracleParameter(":OriginalOrganizationID",OracleDbType.Int32,staffrecord.OriginalOrganizationID,ParameterDirection.Input),
- new OracleParameter(":OriginalPost",OracleDbType.Int32,staffrecord.OriginalPost,ParameterDirection.Input),
- new OracleParameter(":TargetStaffStatus",OracleDbType.Int32,staffrecord.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":TargetJobs",OracleDbType.Int32,staffrecord.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":TargetOrganizationID",OracleDbType.Int32,staffrecord.TargetOrganizationID,ParameterDirection.Input),
- new OracleParameter(":TargetPost",OracleDbType.Int32,staffrecord.TargetPost,ParameterDirection.Input),
- new OracleParameter(":Reason",OracleDbType.Varchar2,staffrecord.Reason,ParameterDirection.Input),
- new OracleParameter(":Suggestion",OracleDbType.Varchar2,staffrecord.Suggestion,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":StaffRecordID",OracleDbType.Int32,staffrecord.StaffRecordID,ParameterDirection.Input),
- new OracleParameter(":Applicant",OracleDbType.Int32,staffrecord.Applicant,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.Varchar2,staffrecord.Remarks,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- resultEnity.HRStaffRecordID = staffrecord.StaffRecordID;
- #region 更新员工档案的试用期时间
- string strSql2 = "Update TP_HR_Staff Set ExProbationEndDate = :pExProbationEndDate WHERE StaffID = :pStaffID";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pExProbationEndDate", OracleDbType.Date, staffrecord.ExProbationEndDate, ParameterDirection.Input),
- new OracleParameter(":pStaffID", OracleDbType.Int32, staffrecord.StaffID , ParameterDirection.Input)
- };
- foreach (var itemNull in parmetersSql2)
- {
- if (string.IsNullOrEmpty(itemNull.Value + ""))
- {
- itemNull.Value = DBNull.Value;
- }
- }
- oracleTrConn.ExecuteNonQuery(strSql2, parmetersSql2);
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 员工离职
- /// <summary>
- /// 保存员工离职履历信息
- /// </summary>
- /// <param name="pUserId">员工编号</param>
- /// <param name="pOPTimeStamp">员工档案表时间戳</param>
- /// <param name="pStaffRecord">员工履历表实体</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="pStatus">窗体是新增还是编辑</param>
- /// <returns>0 没有数据被修改 -1员工档案被其他用户修改 -2存在待审批履历 -3员工履历被其他用户修改</returns>
- public static HRResultEntity SaveStaffRecordDimission(int pUserId, DateTime pOPTimeStamp, StaffRecordEntity pStaffRecord, SUserInfo sUserInfo, WCFConstant.FormMode pStatus)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- if (pStaffRecord == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 员工档案被其他用户修改
- string sql1 = "SELECT * FROM TP_HR_Staff"
- + " WHERE Staffid =:Staffid And OPTimeStamp= :opTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, pUserId , ParameterDirection.Input),
- new OracleParameter(":opTimeStamp", OracleDbType.TimeStamp, pOPTimeStamp , ParameterDirection.Input)
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sql1, parmetersSql1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- if (pStatus == WCFConstant.FormMode.Add)
- {
- #region 新增加记录
- #region 查询此员工是否有待审批的履历
- string sql2 = "SELECT Count(*) FROM TP_HR_STAFFRECORD"
- + " WHERE Staffid =:Staffid And ApprovalStatus=0 And ValueFlag = 1";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, pUserId , ParameterDirection.Input),
- };
- string strCount = oracleTrConn.GetSqlResultToStr(sql2, parmetersSql2);
- if (strCount != "0")
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;//不允许在添加,此员工有待审批的履历
- }
- #endregion
- // 查询新插入的生产数据ID
- string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_HR_STAFFRECORD_ID.nextval from dual");
- #region 向员工履历表插入数据
- string sqlString = " INSERT INTO TP_HR_STAFFRECORD "
- + "(StaffRecordID,StaffID"
- + ",StaffCode"
- + ",RecordDate"
- + ",RecordType"
- + ",OriginalStaffStatus"
- + ",OriginalJobs"
- + ",OriginalOrganizationID"
- + ",OriginalPost"
- + ",TargetStaffStatus"
- + ",TargetJobs"
- + ",TargetOrganizationID"
- + ",TargetPost"
- + ",Applicant"
- + ",Reason"
- + ",Suggestion"
- + ",ApprovalStatus"
- + ",Approver"
- + ",ApprovalDate"
- + ",Remarks"
- + ",AccountID"
- + ",ValueFlag"
- + ",CreateUserID"
- + ",UpdateUserID"
- + ")"
- + " VALUES "
- + " (:StaffRecordID,:StaffID"
- + ",:StaffCode"
- + ",:RecordDate"
- + ",:RecordType"
- + ",:OriginalStaffStatus"
- + ",:OriginalJobs"
- + ",:OriginalOrganizationID"
- + ",:OriginalPost"
- + ",:TargetStaffStatus"
- + ",:TargetJobs"
- + ",:TargetOrganizationID"
- + ",:TargetPost"
- + ",:Applicant"
- + ",:Reason"
- + ",:Suggestion"
- + ",:ApprovalStatus"
- + ",:Approver"
- + ",FUN_CMN_GetAccountDate(:ACCOUNTID)"
- + ",:Remarks"
- + ",:AccountID"
- + ",:ValueFlag"
- + ",:CreateUserID"
- + ",:UpdateUserID"
- + " )";
- OracleParameter[] parmeters = new OracleParameter[]
- {
- new OracleParameter(":StaffRecordID",OracleDbType.Int32,Convert.ToInt32(strSeq),ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,pStaffRecord.StaffID,ParameterDirection.Input),
- new OracleParameter(":StaffCode",OracleDbType.Varchar2,dtStaff.Rows[0]["StaffCode"].ToString(),ParameterDirection.Input),
- new OracleParameter(":RecordDate",OracleDbType.Date,pStaffRecord.RecordDate,ParameterDirection.Input),
- new OracleParameter(":RecordType",OracleDbType.Int32,6,ParameterDirection.Input),
- new OracleParameter(":OriginalStaffStatus",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["StaffStatus"].ToString()),ParameterDirection.Input),
- new OracleParameter(":OriginalJobs",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["Jobs"].ToString()),ParameterDirection.Input),
- new OracleParameter(":OriginalOrganizationID",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["OrganizationID"].ToString()),ParameterDirection.Input),
- new OracleParameter(":OriginalPost",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["Post"].ToString()),ParameterDirection.Input),
- new OracleParameter(":TargetStaffStatus",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["StaffStatus"].ToString()),ParameterDirection.Input),
- new OracleParameter(":TargetJobs",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["Jobs"].ToString()),ParameterDirection.Input),
- new OracleParameter(":TargetOrganizationID",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["OrganizationID"].ToString()),ParameterDirection.Input),
- new OracleParameter(":TargetPost",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["Post"].ToString()),ParameterDirection.Input),
- new OracleParameter(":Applicant",OracleDbType.Int32,pStaffRecord.Applicant,ParameterDirection.Input),
- new OracleParameter(":Reason",OracleDbType.Varchar2,pStaffRecord.Reason,ParameterDirection.Input),
- new OracleParameter(":Suggestion",OracleDbType.Varchar2,pStaffRecord.Suggestion,ParameterDirection.Input),
- new OracleParameter(":ApprovalStatus",OracleDbType.Int32,pStaffRecord.ApprovalStatus,ParameterDirection.Input),
- new OracleParameter(":Approver",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- //new OracleParameter(":ACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.Varchar2,pStaffRecord.Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,1,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- #endregion
-
- resultEnity.HRStaffRecordID = Convert.ToInt32(strSeq);
- }
- else if (pStatus == WCFConstant.FormMode.Edit)
- {
- #region 编辑记录
- #region 员工履历被其他用户修改
- string sql2 = "SELECT Count(*) FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = " + pStaffRecord.StaffRecordID + " And OPTimeStamp = :OPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, pStaffRecord.OPTimeStamp, ParameterDirection.Input),
- };
- string strCount = oracleTrConn.GetSqlResultToStr(sql2, parmetersSql2);
- if ("0".Equals(strCount))
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity; //员工履历被其他用户修改
- }
- #endregion
- #region 更新数据到员工履历表
- string sqlString = " UPDATE TP_HR_STAFFRECORD SET "
- + "RecordDate=:RecordDate"
- + ",Applicant=:Applicant"
- + ",Reason=:Reason"
- + ",Suggestion=:Suggestion"
- + ",Remarks = :Remarks"
- + ",UpdateUserID=:UpdateUserID"
- + " Where StaffRecordID=:StaffRecordID";
- OracleParameter[] parmeters = new OracleParameter[]
- {
- new OracleParameter(":RecordDate",OracleDbType.Date,pStaffRecord.RecordDate,ParameterDirection.Input),
- new OracleParameter(":Applicant",OracleDbType.Int32,pStaffRecord.Applicant,ParameterDirection.Input),
- new OracleParameter(":Reason",OracleDbType.Varchar2,pStaffRecord.Reason,ParameterDirection.Input),
- new OracleParameter(":Suggestion",OracleDbType.Varchar2,pStaffRecord.Suggestion,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.Varchar2,pStaffRecord.Remarks,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":StaffRecordID",OracleDbType.Int32,pStaffRecord.StaffRecordID,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- resultEnity.HRStaffRecordID = pStaffRecord.StaffRecordID;
- #endregion
- }
- #region 更新数据到员工档案表
- // 如果审批通过,直接更新员工为离职状态
- if (pStaffRecord.ApprovalStatus == 3)
- {
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "StaffStatus=3"
- + ",TurnoverDate=FUN_CMN_GetAccountDate(:pACCOUNTID)"
- + ",UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":pACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- }
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- }
- /// <summary>
- /// 员工离职操作
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity StaffTurnover(ClientRequestEntity cre, SUserInfo sUserInfo)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- string staffIDs = cre.Properties["staffIDs"] + "";
- if (staffIDs == null || staffIDs.Length == 0)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- return sre;
- }
- if (cre.Data == null || cre.Data.Tables.Count == 0 || cre.Data.Tables[0].Rows.Count == 0)
- {
- sre.Message = "无员工信息";
- return null;
- }
- DataTable dtStaff = cre.Data.Tables[0];
- oracleTrConn.Connect();
- #region 更新员工状态为离职
- string sqlString = @" UPDATE TP_HR_Staff
- SET StaffStatus = 3,
- TurnoverDate = SYSDATE
- WHERE StaffID IN ("+ staffIDs + ")";
- int returnRows = oracleTrConn.ExecuteNonQuery(sqlString);
- #endregion
- #region 向员工履历表插入数据
- // 新建个履历实体
- StaffRecordEntity pStaffRecord = new StaffRecordEntity();
- pStaffRecord.RecordDate = DateTime.Now; // 履历日期取今天
- pStaffRecord.Applicant = sUserInfo.UserID; // 申请人取操作者
- pStaffRecord.Reason = "-"; // 原因为空
- pStaffRecord.Suggestion = "-"; // 意见为空
- pStaffRecord.ApprovalStatus = 3; // 直接审批通过
- pStaffRecord.Remarks = "一键离职"; // 备注一键离职
- int returnStaffRecordRows = 0;
- sqlString = " INSERT INTO TP_HR_STAFFRECORD "
- + "(StaffRecordID,StaffID"
- + ",StaffCode"
- + ",RecordDate"
- + ",RecordType"
- + ",OriginalStaffStatus"
- + ",OriginalJobs"
- + ",OriginalOrganizationID"
- + ",OriginalPost"
- + ",TargetStaffStatus"
- + ",TargetJobs"
- + ",TargetOrganizationID"
- + ",TargetPost"
- + ",Applicant"
- + ",Reason"
- + ",Suggestion"
- + ",ApprovalStatus"
- + ",Approver"
- + ",ApprovalDate"
- + ",Remarks"
- + ",AccountID"
- + ",ValueFlag"
- + ",CreateUserID"
- + ",UpdateUserID"
- + ")"
- + " VALUES "
- + " (:StaffRecordID,:StaffID"
- + ",:StaffCode"
- + ",:RecordDate"
- + ",:RecordType"
- + ",:OriginalStaffStatus"
- + ",:OriginalJobs"
- + ",:OriginalOrganizationID"
- + ",:OriginalPost"
- + ",:TargetStaffStatus"
- + ",:TargetJobs"
- + ",:TargetOrganizationID"
- + ",:TargetPost"
- + ",:Applicant"
- + ",:Reason"
- + ",:Suggestion"
- + ",:ApprovalStatus"
- + ",:Approver"
- + ",FUN_CMN_GetAccountDate(:ACCOUNTID)"
- + ",:Remarks"
- + ",:AccountID"
- + ",:ValueFlag"
- + ",:CreateUserID"
- + ",:UpdateUserID"
- + " )";
- foreach (DataRow row in dtStaff.Rows)
- {
- string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_HR_STAFFRECORD_ID.nextval from dual");
- OracleParameter[] parmeters = new OracleParameter[]
- {
- new OracleParameter(":StaffRecordID",OracleDbType.Int32,Convert.ToInt32(strSeq),ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,Convert.ToInt32(row["staffID"]),ParameterDirection.Input),
- new OracleParameter(":StaffCode",OracleDbType.Varchar2,dtStaff.Rows[0]["StaffCode"].ToString(),ParameterDirection.Input),
- new OracleParameter(":RecordDate",OracleDbType.Date,pStaffRecord.RecordDate,ParameterDirection.Input),
- new OracleParameter(":RecordType",OracleDbType.Int32,6,ParameterDirection.Input),
- new OracleParameter(":OriginalStaffStatus",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["StaffStatus"].ToString()),ParameterDirection.Input),
- new OracleParameter(":OriginalJobs",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["Jobs"].ToString()),ParameterDirection.Input),
- new OracleParameter(":OriginalOrganizationID",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["OrganizationID"].ToString()),ParameterDirection.Input),
- new OracleParameter(":OriginalPost",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["Post"].ToString()),ParameterDirection.Input),
- new OracleParameter(":TargetStaffStatus",OracleDbType.Int32,3,ParameterDirection.Input),
- new OracleParameter(":TargetJobs",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["Jobs"].ToString()),ParameterDirection.Input),
- new OracleParameter(":TargetOrganizationID",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["OrganizationID"].ToString()),ParameterDirection.Input),
- new OracleParameter(":TargetPost",OracleDbType.Int32,Convert.ToInt32(dtStaff.Rows[0]["Post"].ToString()),ParameterDirection.Input),
- new OracleParameter(":Applicant",OracleDbType.Int32,pStaffRecord.Applicant,ParameterDirection.Input),
- new OracleParameter(":Reason",OracleDbType.Varchar2,pStaffRecord.Reason,ParameterDirection.Input),
- new OracleParameter(":Suggestion",OracleDbType.Varchar2,pStaffRecord.Suggestion,ParameterDirection.Input),
- new OracleParameter(":ApprovalStatus",OracleDbType.Int32,pStaffRecord.ApprovalStatus,ParameterDirection.Input),
- new OracleParameter(":Approver",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- //new OracleParameter(":ACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.Varchar2,pStaffRecord.Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,1,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- returnStaffRecordRows = oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- }
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- if (returnRows > 0 && returnStaffRecordRows > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- }
- return sre;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 导入员工离职
- /// </summary>
- /// <param name="cre"></param>
- /// <param name="sUserInfo"></param>
- /// <returns></returns>
- public static ServiceResultEntity ImportStaffTurnover(ClientRequestEntity cre, SUserInfo sUserInfo)
- {
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- if (cre.Data == null || cre.Data.Tables.Count == 0 || cre.Data.Tables[0].Rows.Count == 0)
- {
- sre.Message = "无员工信息";
- return null;
- }
- DataTable staffInfo = cre.Data.Tables[0];
- staffInfo.Columns.Add("StaffID",typeof(int));
- oracleTrConn.Connect();
- #region 验证员工编码是否都存在
- StringBuilder staffCodes = new StringBuilder();
- foreach (DataRow item in staffInfo.Rows)
- {
- string sql = @"SELECT StaffID FROM TP_HR_Staff
- WHERE StaffStatus <> 3 AND ValueFlag = 1
- AND StaffCode = '" + item["员工编码"] + "'";
- DataTable dtExistsID = oracleTrConn.GetSqlResultToDt(sql);
- if (dtExistsID != null && dtExistsID.Rows.Count > 0)
- {
- item["StaffID"] = dtExistsID.Rows[0][0];
- }
- else
- {
- item["StaffID"] = DBNull.Value;
- staffCodes.Append(item["员工编码"] + ",");
- }
- }
- // 无效员工不处理 前台提示 chenxy 2019-10-14
- //if (staffCodes != null && staffCodes.Length > 0)
- //{
- // sre.Status = Constant.ServiceResultStatus.Other;
- // sre.Message = "以下员工编码在系统中不存在或已离职或停用:" + System.Environment.NewLine
- // + staffCodes.ToString(0, staffCodes.Length - 1);
- // return sre;
- //}
- #endregion
- #region 更新员工状态为离职
- int returnRows = 0;
- DateTime turnoverDate;
- string sqlString = string.Empty;
- OracleParameter[] parmeters = null;
- foreach (DataRow item in staffInfo.Rows)
- {
- // 无效员工不处理 前台提示 chenxy 2019-10-14
- if (item["StaffID"] == DBNull.Value)
- {
- continue;
- }
- if (!DateTime.TryParse(item["离职日期"] + "", out turnoverDate))
- {
- turnoverDate = DateTime.Now;
- }
-
- sqlString = @" UPDATE TP_HR_Staff
- SET StaffStatus = 3,
- TurnoverDate = :TurnoverDate
- WHERE StaffID = :StaffID";
- parmeters = new OracleParameter[]
- {
- new OracleParameter(":TurnoverDate",OracleDbType.Date, turnoverDate, ParameterDirection.Input ),
- new OracleParameter(":StaffID",OracleDbType.Int32,item["StaffID"], ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- sre.Result += item["StaffID"] + ",";
- }
- sre.Result = (sre.Result + "").Substring(0, (sre.Result + "").Length - 1);
- #endregion
- #region 向员工履历表插入数据
- //// 新建个履历实体
- StaffRecordEntity pStaffRecord = new StaffRecordEntity();
- pStaffRecord.RecordDate = DateTime.Now; // 履历日期取今天
- pStaffRecord.Applicant = sUserInfo.UserID; // 申请人取操作者
- pStaffRecord.Reason = "-"; // 原因为空
- pStaffRecord.Suggestion = "-"; // 意见为空
- pStaffRecord.ApprovalStatus = 3; // 直接审批通过
- pStaffRecord.Remarks = "一键导入离职"; // 备注一键离职
- int returnStaffRecordRows = 0;
- sqlString = "INSERT INTO TP_HR_STAFFRECORD(\n" +
- " StaffRecordID\n" +
- ",StaffID\n" +
- ",StaffCode\n" +
- ",RecordDate\n" +
- ",RecordType\n" +
- ",OriginalStaffStatus\n" +
- ",OriginalJobs\n" +
- ",OriginalOrganizationID\n" +
- ",OriginalPost\n" +
- ",TargetStaffStatus\n" +
- ",TargetJobs\n" +
- ",TargetOrganizationID\n" +
- ",TargetPost\n" +
- ",Applicant\n" +
- ",Reason\n" +
- ",Suggestion\n" +
- ",ApprovalStatus\n" +
- ",Approver\n" +
- ",ApprovalDate\n" +
- ",Remarks\n" +
- ",AccountID\n" +
- ",ValueFlag\n" +
- ",CreateUserID\n" +
- ",UpdateUserID)\n" +
- " SELECT SEQ_HR_STAFFRECORD_ID.nextval\n" +
- ",StaffID\n" +
- ",StaffCode\n" +
- ",SYSDATE\n" +
- ",:RecordType\n" +
- ",StaffStatus\n" +
- ",Jobs\n" +
- ",OrganizationID\n" +
- ",POST\n" +
- ",:TargetStaffStatus\n" +
- ",Jobs\n" +
- ",OrganizationID\n" +
- ",POST\n" +
- ",:Applicant\n" +
- ",:Reason\n" +
- ",:Suggestion\n" +
- ",:ApprovalStatus\n" +
- ",:Approver\n" +
- ",SYSDATE\n" +
- ",:Remarks\n" +
- ",:AccountID\n" +
- ",:ValueFlag\n" +
- ",:CreateUserID\n" +
- ",:UpdateUserID\n" +
- " FROM TP_HR_STAFF\n" +
- " WHERE StaffID IN ("+ sre.Result + ")";
- parmeters = new OracleParameter[]
- {
- new OracleParameter(":RecordType",OracleDbType.Int32,6,ParameterDirection.Input),
- new OracleParameter(":TargetStaffStatus",OracleDbType.Int32,3,ParameterDirection.Input),
- new OracleParameter(":Applicant",OracleDbType.Int32,pStaffRecord.Applicant,ParameterDirection.Input),
- new OracleParameter(":Reason",OracleDbType.Varchar2,pStaffRecord.Reason,ParameterDirection.Input),
- new OracleParameter(":Suggestion",OracleDbType.Varchar2,pStaffRecord.Suggestion,ParameterDirection.Input),
- new OracleParameter(":ApprovalStatus",OracleDbType.Int32,pStaffRecord.ApprovalStatus,ParameterDirection.Input),
- new OracleParameter(":Approver",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.Varchar2,pStaffRecord.Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":ValueFlag",OracleDbType.Int32,1,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input)
- };
- returnStaffRecordRows = oracleTrConn.ExecuteNonQuery(sqlString, parmeters);
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- // 无效员工不处理 前台提示 chenxy 2019-10-14
- if (staffCodes != null && staffCodes.Length > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = "以下员工编码在系统中不存在或已离职或停用(其他已导入):" + System.Environment.NewLine
- + staffCodes.ToString(0, staffCodes.Length - 1);
- return sre;
- }
- if (returnRows > 0 && returnStaffRecordRows > 0)
- {
- sre.Status = Constant.ServiceResultStatus.Success;
- }
- return sre;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 工种调整
- /// <summary>
- /// 保存工种调整方法;
- /// </summary>
- /// <param name="staffRecordEntity">员工履历实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="editStatus">状态 1:新增 2:保存</param>
- /// <returns>0 没有数据被修改 -1存在待审批履历 -2员工履历被其他用户修改 -3员工档案被其他用户修改</returns>
- public static HRResultEntity SaveTargetJobInfo(StaffRecordEntity staffRecordEntity, SUserInfo sUserInfo, WCFConstant.FormMode editStatus)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 判断时间戳
- string sqlString1 = "SELECT Count(*) FROM TP_HR_Staff"
- + " WHERE AccountID = :AccountID AND StaffID = :staffID"; // AND OPTimeStamp = :oPTimeStamp ";
- OracleParameter[] parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- //new OracleParameter(":oPTimeStamp",OracleDbType.TimeStamp, staffRecordEntity.OPTimeStamp,ParameterDirection.Input),
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sqlString1, parmeters1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- // 新建工种调整信息
- if (editStatus == WCFConstant.FormMode.Add)
- {
- #region 验证员工是否存在未审批数据
- sqlString1 = "SELECT Count(*) FROM TP_HR_StaffRecord "
- + " WHERE AccountID = :AccountID and ApprovalStatus in(0,1) AND StaffID = :staffID And ValueFlag = 1";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input)
- };
- string strCount = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
- if (strCount != "0")
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;//员工档案存在未审批数据
- }
- #endregion
- //
- string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_HR_STAFFRECORD_ID.nextval from dual");
- #region 新增工种调整信息
- sqlString1 = "INSERT INTO TP_HR_StaffRecord "
- + "(StaffRecordID,StaffID,StaffCode,RecordDate,RecordType,ExProbationEndDate,ApprovalStatus,Approver,ApprovalDate"
- + ",OriginalOrganizationID,OriginalStaffStatus,OriginalJobs"
- + ",TargetOrganizationID,TargetStaffStatus,TargetJobs"
- + ",Applicant,Reason,Suggestion,Remarks"
- + ",AccountID,CreateTime,UpdateTime,UpdateUserID,CreateUserID)"
- + " VALUES "
- + "(:StaffRecordID,:staffID,:staffCode,:recordDate,:recordType,:exProbationEndDate,:approvalStatus,:Approver,FUN_CMN_GetAccountDate(:ACCOUNTID)"
- + ",:originalOrganizationID,:originalStaffStatus,:originalJobs"
- + ",:targetOrganizationID,:targetStaffStatus,:targetJobs"
- + ",:applicant,:reason,:suggestion,:remarks"
- + ",:AccountID,sysdate,sysdate,:UpdateUserID,:CreateUserID)";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":StaffRecordID",OracleDbType.Int32,Convert.ToInt32(strSeq),ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- new OracleParameter(":staffCode",OracleDbType.Varchar2,staffRecordEntity.StaffCode,ParameterDirection.Input),
- new OracleParameter(":recordDate",OracleDbType.Date,staffRecordEntity.RecordDate,ParameterDirection.Input),
- new OracleParameter(":recordType",OracleDbType.Int32,staffRecordEntity.RecordType,ParameterDirection.Input),
- new OracleParameter(":exProbationEndDate",OracleDbType.Date,staffRecordEntity.ExProbationEndDate,ParameterDirection.Input),
- new OracleParameter(":approvalStatus",OracleDbType.Int32,staffRecordEntity.ApprovalStatus,ParameterDirection.Input),
- new OracleParameter(":Approver",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":originalOrganizationID",OracleDbType.Int32,staffRecordEntity.OriginalOrganizationID,ParameterDirection.Input),
- new OracleParameter(":originalStaffStatus",OracleDbType.Int32,staffRecordEntity.OriginalStaffStatus,ParameterDirection.Input),
- new OracleParameter(":originalJobs",OracleDbType.Int32,staffRecordEntity.OriginalJobs,ParameterDirection.Input),
- new OracleParameter(":targetOrganizationID",OracleDbType.Int32,staffRecordEntity.TargetOrganizationID,ParameterDirection.Input),
- new OracleParameter(":targetStaffStatus",OracleDbType.Int32,staffRecordEntity.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":targetJobs",OracleDbType.Int32,staffRecordEntity.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":applicant",OracleDbType.Int32,staffRecordEntity.Applicant,ParameterDirection.Input),
- new OracleParameter(":reason",OracleDbType.Varchar2,staffRecordEntity.Reason,ParameterDirection.Input),
- new OracleParameter(":suggestion",OracleDbType.Varchar2,staffRecordEntity.Suggestion,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,staffRecordEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input)
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
-
- resultEnity.HRStaffRecordID = Convert.ToInt32(strSeq);
- }//修改工种调整信息
- else if (editStatus == WCFConstant.FormMode.Edit)
- {
- #region 员工履历被其他用户修改
- sqlString1 = "SELECT Count(*) FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = :staffRecordID And OPTimeStamp = :OPTimeStamp";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":staffRecordID",OracleDbType.Int32,staffRecordEntity.StaffRecordID,ParameterDirection.Input),
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, staffRecordEntity.OPTimeStamp, ParameterDirection.Input)
- };
- string strCount = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
- if ("0".Equals(strCount))
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity; //员工履历被其他用户修改
- }
- #endregion
- #region 更新工种调整信息
- string sqlString = "UPDATE TP_HR_StaffRecord SET "
- + "RecordDate = :recordDate"
- + ",TargetJobs = :targetJobs"
- + ",TargetStaffStatus = :targetStaffStatus"
- + ",ExProbationEndDate = :exProbationEndDate"
- + ",Applicant = :applicant"
- + ",Reason = :reason"
- + ",Suggestion = :suggestion"
- + ",Remarks = :remarks"
- + ",UpdateUserID = :UpdateUserID"
- + ",UpdateTime = sysdate"
- + " WHERE StaffRecordID = :staffRecordID";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":recordDate",OracleDbType.Date,staffRecordEntity.RecordDate,ParameterDirection.Input),
- new OracleParameter(":targetJobs",OracleDbType.Int32,staffRecordEntity.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":targetStaffStatus",OracleDbType.Int32,staffRecordEntity.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":exProbationEndDate",OracleDbType.Date,staffRecordEntity.ExProbationEndDate,ParameterDirection.Input),
- new OracleParameter(":applicant",OracleDbType.Int32,staffRecordEntity.Applicant,ParameterDirection.Input),
- new OracleParameter(":reason",OracleDbType.Varchar2,staffRecordEntity.Reason,ParameterDirection.Input),
- new OracleParameter(":suggestion",OracleDbType.Varchar2,staffRecordEntity.Suggestion,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,staffRecordEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":staffRecordID",OracleDbType.Int32,staffRecordEntity.StaffRecordID,ParameterDirection.Input)
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
- resultEnity.HRStaffRecordID = staffRecordEntity.StaffRecordID;
- }
- #region 更新员工档案表中的预计试用期结束日期
- string strSql2 = "Update TP_HR_Staff Set ExProbationEndDate = :pExProbationEndDate WHERE StaffID = :pStaffID";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pExProbationEndDate", OracleDbType.Date, staffRecordEntity.ExProbationEndDate, ParameterDirection.Input),
- new OracleParameter(":pStaffID", OracleDbType.Int32, staffRecordEntity.StaffID , ParameterDirection.Input)
- };
- foreach (var itemNull in parmetersSql2)
- {
- if (string.IsNullOrEmpty(itemNull.Value + ""))
- {
- itemNull.Value = DBNull.Value;
- }
- }
- oracleTrConn.ExecuteNonQuery(strSql2, parmetersSql2);
- #endregion
- #region 更新数据到员工档案表
- if (staffRecordEntity.ApprovalStatus == 3)
- {
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "Jobs = :jobs"
- + ",StaffStatus=:staffStatus"
- + ",ExProbationEndDate=:exProbationEndDate"
- + ",UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":jobs",OracleDbType.Int32,staffRecordEntity.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":staffStatus",OracleDbType.Int32,staffRecordEntity.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":exProbationEndDate", OracleDbType.Date, staffRecordEntity.ExProbationEndDate, ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- if (staffRecordEntity.ExProbationEndDate != null)
- {
- #region 如果试用,往试用表里插入数据
- string sqlString3 = "INSERT INTO TP_HR_StaffProbation("
- + "StaffID"
- + ",JobsID"
- + ",BeginDate"
- + ",AccountID"
- + ",CreateUserID"
- + ",UpdateUserID) VALUES ("
- + ":StaffID"
- + ",:JobsID"
- + ",sysdate"
- + ",:AccountID"
- + ",:CreateUserID"
- + ",:UpdateUserID)";
- OracleParameter[] parmeters3 = new OracleParameter[]
- {
- new OracleParameter(":StaffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,staffRecordEntity.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString3, parmeters3);
- #endregion
- }
- }
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 工种调整审批保存
- /// </summary>
- /// <param name="pUserId">员工编号</param>
- /// <param name="pOPTimeStamp">员工档案表时间戳</param>
- /// <param name="pStaffRecord">员工履历表实体</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="pMemo">审批意见</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>0 没有数据被修改 -1员工档案被其他用户修改 -2存在待审批履历 -3员工履历被其他用户修改</returns>
- public static HRResultEntity SaveHRStaffJobsApprovalInfo(int pUserId, DateTime pOPTimeStamp, StaffRecordEntity pStaffRecord, bool pState, string pMemo, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 员工档案被其他用户修改
- string sql1 = "SELECT * FROM TP_HR_Staff"
- + " WHERE Staffid =:Staffid And OPTimeStamp= :opTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, pUserId , ParameterDirection.Input),
- new OracleParameter(":opTimeStamp", OracleDbType.TimeStamp, pOPTimeStamp , ParameterDirection.Input)
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sql1, parmetersSql1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- #region 员工履历被其他用户修改
- string sql2 = "SELECT * FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = :staffRecordID And OPTimeStamp = :oPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":staffRecordID", OracleDbType.Int32, pStaffRecord.StaffRecordID, ParameterDirection.Input),
- new OracleParameter(":oPTimeStamp", OracleDbType.TimeStamp, pStaffRecord.OPTimeStamp, ParameterDirection.Input),
- };
- DataTable dtStaffRecord = oracleTrConn.GetSqlResultToDt(sql2, parmetersSql2);
- if (dtStaffRecord == null || dtStaffRecord.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;// 员工履历被其他用户修改
- }
- #endregion
- //保存数据到员工履历表和人事审批表
- resultEnity.OperateStatus += UpdateHRApprovalInfo(dtStaff, dtStaffRecord, pState, pMemo, sUserInfo, oracleTrConn);
- if (pState)
- {
- #region 更新数据到员工档案表
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "Jobs = :jobs"
- + ",StaffStatus=:staffStatus"
- + ",ExProbationEndDate=:exProbationEndDate"
- + ",UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":jobs",OracleDbType.Int32,pStaffRecord.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":staffStatus",OracleDbType.Int32,pStaffRecord.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":exProbationEndDate", OracleDbType.Date, pStaffRecord.ExProbationEndDate, ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- if (pStaffRecord.ExProbationEndDate != null)
- {
- #region 如果试用,往试用表里插入数据
- string sqlString3 = "INSERT INTO TP_HR_StaffProbation("
- + "StaffID"
- + ",JobsID"
- + ",BeginDate"
- + ",AccountID"
- + ",CreateUserID"
- + ",UpdateUserID) VALUES ("
- + ":StaffID"
- + ",:JobsID"
- + ",sysdate"
- + ",:AccountID"
- + ",:CreateUserID"
- + ",:UpdateUserID)";
- OracleParameter[] parmeters3 = new OracleParameter[]
- {
- new OracleParameter(":StaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,pStaffRecord.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString3, parmeters3);
- #endregion
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 职务调整
- /// <summary>
- /// 保存职务调整方法
- /// </summary>
- /// <param name="staffRecordEntity">员工履历实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="editStatus">状态 1:新增 2:保存</param>
- /// <returns>0 没有数据被修改 -1存在待审批履历 -2员工履历被其他用户修改 -3员工档案被其他用户修改</returns>
- public static HRResultEntity SaveTargetPostInfo(StaffRecordEntity staffRecordEntity, SUserInfo sUserInfo, WCFConstant.FormMode editStatus)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 判断时间戳
- string sqlString1 = "SELECT Count(*) FROM TP_HR_Staff"
- + " WHERE AccountID = :AccountID AND StaffID = :staffID AND OPTimeStamp = :oPTimeStamp ";
- OracleParameter[] parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- new OracleParameter(":oPTimeStamp",OracleDbType.TimeStamp, staffRecordEntity.OPTimeStamp,ParameterDirection.Input),
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sqlString1, parmeters1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- // 新建职务调整信息
- if (editStatus == WCFConstant.FormMode.Add)
- {
- #region 验证员工是否存在未审批数据
- sqlString1 = "SELECT Count(*) FROM TP_HR_StaffRecord "
- + " WHERE AccountID = :AccountID and ApprovalStatus in(0,1) AND StaffID = :staffID And ValueFlag = 1";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input)
- };
- string strCount = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
- if (strCount != "0")
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;//员工档案存在未审批数据
- }
- #endregion
- //
- string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_HR_STAFFRECORD_ID.nextval from dual");
- #region 新增职务调整信息
- sqlString1 = "INSERT INTO TP_HR_StaffRecord "
- + "(StaffRecordID,StaffID,StaffCode,RecordDate,RecordType,ExProbationEndDate,ApprovalStatus,Approver,ApprovalDate"
- + ",OriginalOrganizationID,OriginalStaffStatus,OriginalPost"
- + ",TargetOrganizationID,TargetStaffStatus,TargetPost"
- + ",Applicant,Reason,Suggestion,Remarks"
- + ",AccountID,CreateTime,UpdateTime,UpdateUserID,CreateUserID)"
- + " VALUES "
- + "(:StaffRecordID,:staffID,:staffCode,:recordDate,:recordType,:exProbationEndDate,:approvalStatus,:Approver,FUN_CMN_GetAccountDate(:ACCOUNTID)"
- + ",:originalOrganizationID,:originalStaffStatus,:originalPost"
- + ",:targetOrganizationID,:targetStaffStatus,:targetPost"
- + ",:applicant,:reason,:suggestion,:remarks"
- + ",:AccountID,sysdate,sysdate,:UpdateUserID,:CreateUserID)";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":StaffRecordID",OracleDbType.Int32,Convert.ToInt32(strSeq),ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- new OracleParameter(":staffCode",OracleDbType.Varchar2,staffRecordEntity.StaffCode,ParameterDirection.Input),
- new OracleParameter(":recordDate",OracleDbType.Date,staffRecordEntity.RecordDate,ParameterDirection.Input),
- new OracleParameter(":recordType",OracleDbType.Int32,staffRecordEntity.RecordType,ParameterDirection.Input),
- new OracleParameter(":exProbationEndDate",OracleDbType.Date,staffRecordEntity.ExProbationEndDate,ParameterDirection.Input),
- new OracleParameter(":approvalStatus",OracleDbType.Int32,staffRecordEntity.ApprovalStatus,ParameterDirection.Input),
- new OracleParameter(":Approver",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":originalOrganizationID",OracleDbType.Int32,staffRecordEntity.OriginalOrganizationID,ParameterDirection.Input),
- new OracleParameter(":originalStaffStatus",OracleDbType.Int32,staffRecordEntity.OriginalStaffStatus,ParameterDirection.Input),
- new OracleParameter(":originalPost",OracleDbType.Int32,staffRecordEntity.OriginalPost,ParameterDirection.Input),
- new OracleParameter(":targetOrganizationID",OracleDbType.Int32,staffRecordEntity.TargetOrganizationID,ParameterDirection.Input),
- new OracleParameter(":targetStaffStatus",OracleDbType.Int32,staffRecordEntity.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":targetPost",OracleDbType.Int32,staffRecordEntity.TargetPost,ParameterDirection.Input),
- new OracleParameter(":applicant",OracleDbType.Int32,staffRecordEntity.Applicant,ParameterDirection.Input),
- new OracleParameter(":reason",OracleDbType.Varchar2,staffRecordEntity.Reason,ParameterDirection.Input),
- new OracleParameter(":suggestion",OracleDbType.Varchar2,staffRecordEntity.Suggestion,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,staffRecordEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input)
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
-
- resultEnity.HRStaffRecordID = Convert.ToInt32(strSeq);
- }//修改职务调整信息
- else if (editStatus == WCFConstant.FormMode.Edit)
- {
- #region 员工履历被其他用户修改
- sqlString1 = "SELECT Count(*) FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = :staffRecordID And OPTimeStamp = :OPTimeStamp";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":staffRecordID",OracleDbType.Int32,staffRecordEntity.StaffRecordID,ParameterDirection.Input),
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, staffRecordEntity.OPTimeStamp, ParameterDirection.Input)
- };
- string strCount = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
- if (strCount != "0")
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity; //员工履历被其他用户修改
- }
- #endregion
- #region 更新职务调整信息
- string sqlString = "UPDATE TP_HR_StaffRecord SET "
- + "RecordDate = :recordDate"
- + ",TargetPost = :targetPost"
- + ",Applicant = :applicant"
- + ",Reason = :reason"
- + ",Suggestion = :suggestion"
- + ",Remarks = :remarks"
- + ",UpdateUserID = :UpdateUserID"
- + ",UpdateTime = sysdate"
- + " WHERE StaffRecordID = :staffRecordID";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":recordDate",OracleDbType.Date,staffRecordEntity.RecordDate,ParameterDirection.Input),
- new OracleParameter(":targetPost",OracleDbType.Int32,staffRecordEntity.TargetPost,ParameterDirection.Input),
- new OracleParameter(":applicant",OracleDbType.Int32,staffRecordEntity.Applicant,ParameterDirection.Input),
- new OracleParameter(":reason",OracleDbType.Varchar2,staffRecordEntity.Reason,ParameterDirection.Input),
- new OracleParameter(":suggestion",OracleDbType.Varchar2,staffRecordEntity.Suggestion,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,staffRecordEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":staffRecordID",OracleDbType.Int32,staffRecordEntity.StaffRecordID,ParameterDirection.Input)
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
- resultEnity.HRStaffRecordID = staffRecordEntity.StaffRecordID;
- }
- #region 更新数据到员工档案表
- if (staffRecordEntity.ApprovalStatus == 3) //审批通过
- {
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "Post = :post"
- + ",UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":post",OracleDbType.Int32,staffRecordEntity.TargetPost,ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- }
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 职务调整审批保存
- /// </summary>
- /// <param name="pUserId">员工编号</param>
- /// <param name="pOPTimeStamp">员工档案表时间戳</param>
- /// <param name="pStaffRecord">员工履历表实体</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="pMemo">审批意见</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>0 没有数据被修改 -1员工档案被其他用户修改 -2存在待审批履历 -3员工履历被其他用户修改</returns>
- public static HRResultEntity SaveHRStaffPostApprovalInfo(int pUserId, DateTime pOPTimeStamp, StaffRecordEntity pStaffRecord, bool pState, string pMemo, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 员工档案被其他用户修改
- string sql1 = "SELECT * FROM TP_HR_Staff"
- + " WHERE Staffid =:Staffid And OPTimeStamp= :opTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, pUserId , ParameterDirection.Input),
- new OracleParameter(":opTimeStamp", OracleDbType.TimeStamp, pOPTimeStamp , ParameterDirection.Input)
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sql1, parmetersSql1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- #region 员工履历被其他用户修改
- string sql2 = "SELECT * FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = :staffRecordID And OPTimeStamp = :oPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":staffRecordID", OracleDbType.Int32, pStaffRecord.StaffRecordID, ParameterDirection.Input),
- new OracleParameter(":oPTimeStamp", OracleDbType.TimeStamp, pStaffRecord.OPTimeStamp, ParameterDirection.Input),
- };
- DataTable dtStaffRecord = oracleTrConn.GetSqlResultToDt(sql2, parmetersSql2);
- if (dtStaffRecord == null || dtStaffRecord.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;// 员工履历被其他用户修改
- }
- #endregion
- //保存数据到员工履历表和人事审批表
- resultEnity.OperateStatus += UpdateHRApprovalInfo(dtStaff, dtStaffRecord, pState, pMemo, sUserInfo, oracleTrConn);
- if (pState) //审批通过
- {
- #region 更新数据到员工档案表
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "Post = :post"
- + ",UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":post",OracleDbType.Int32,pStaffRecord.TargetPost,ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 部门调整
- /// <summary>
- /// 保存部门调整方法
- /// </summary>
- /// <param name="staffRecordEntity">员工履历实体类</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="editStatus">状态 1:新增 2:保存</param>
- /// <returns>0 没有数据被修改 -1存在待审批履历 -2员工履历被其他用户修改 -3员工档案被其他用户修改</returns>
- public static HRResultEntity SaveTargetOrganizationInfo(StaffRecordEntity staffRecordEntity, SUserInfo sUserInfo, WCFConstant.FormMode editStatus)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 判断时间戳
- string sqlString1 = "SELECT Count(*) FROM TP_HR_Staff"
- + " WHERE AccountID = :AccountID AND StaffID = :staffID";
- OracleParameter[] parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sqlString1, parmeters1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- // 新建工种调整信息
- if (editStatus == WCFConstant.FormMode.Add)
- {
- #region 验证员工是否存在未审批数据
- sqlString1 = "SELECT Count(*) FROM TP_HR_StaffRecord "
- + " WHERE AccountID = :AccountID and ApprovalStatus in(0,1) AND StaffID = :staffID And ValueFlag = 1";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input)
- };
- string strCount = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
- if (strCount != "0")
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;//员工档案存在未审批数据
- }
- #endregion
- // 查询新插入的生产数据ID
- string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_HR_STAFFRECORD_ID.nextval from dual");
- #region 新增部门调整信息
- sqlString1 = "INSERT INTO TP_HR_StaffRecord "
- + "(StaffRecordID,StaffID,StaffCode,RecordDate,RecordType,ExProbationEndDate,ApprovalStatus,Approver,ApprovalDate"
- + ",OriginalOrganizationID,OriginalStaffStatus,OriginalJobs,OriginalPost"
- + ",TargetOrganizationID,TargetStaffStatus,TargetJobs,TargetPost"
- + ",Applicant,Reason,Suggestion,Remarks"
- + ",AccountID,CreateTime,UpdateTime,UpdateUserID,CreateUserID)"
- + " VALUES "
- + "(:StaffRecordID,:staffID,:staffCode,:recordDate,:recordType,:exProbationEndDate,:approvalStatus,:Approver,FUN_CMN_GetAccountDate(:ACCOUNTID)"
- + ",:originalOrganizationID,:originalStaffStatus,:originalJobs,:originalPost"
- + ",:targetOrganizationID,:targetStaffStatus,:targetJobs,:targetPost"
- + ",:applicant,:reason,:suggestion,:remarks"
- + ",:AccountID,sysdate,sysdate,:UpdateUserID,:CreateUserID)";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":StaffRecordID",OracleDbType.Int32,Convert.ToInt32(strSeq),ParameterDirection.Input),
- new OracleParameter(":staffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- new OracleParameter(":staffCode",OracleDbType.Varchar2,staffRecordEntity.StaffCode,ParameterDirection.Input),
- new OracleParameter(":recordDate",OracleDbType.Date,staffRecordEntity.RecordDate,ParameterDirection.Input),
- new OracleParameter(":recordType",OracleDbType.Int32,staffRecordEntity.RecordType,ParameterDirection.Input),
- new OracleParameter(":exProbationEndDate",OracleDbType.Date,staffRecordEntity.ExProbationEndDate,ParameterDirection.Input),
- new OracleParameter(":approvalStatus",OracleDbType.Int32,staffRecordEntity.ApprovalStatus,ParameterDirection.Input),
- new OracleParameter(":Approver",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":originalOrganizationID",OracleDbType.Int32,staffRecordEntity.OriginalOrganizationID,ParameterDirection.Input),
- new OracleParameter(":originalStaffStatus",OracleDbType.Int32,staffRecordEntity.OriginalStaffStatus,ParameterDirection.Input),
- new OracleParameter(":originalJobs",OracleDbType.Int32,staffRecordEntity.OriginalJobs,ParameterDirection.Input),
- new OracleParameter(":originalPost",OracleDbType.Int32,staffRecordEntity.OriginalPost,ParameterDirection.Input),
- new OracleParameter(":targetOrganizationID",OracleDbType.Int32,staffRecordEntity.TargetOrganizationID,ParameterDirection.Input),
- new OracleParameter(":targetStaffStatus",OracleDbType.Int32,staffRecordEntity.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":targetJobs",OracleDbType.Int32,staffRecordEntity.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":targetPost",OracleDbType.Int32,staffRecordEntity.TargetPost,ParameterDirection.Input),
- new OracleParameter(":applicant",OracleDbType.Int32,staffRecordEntity.Applicant,ParameterDirection.Input),
- new OracleParameter(":reason",OracleDbType.Varchar2,staffRecordEntity.Reason,ParameterDirection.Input),
- new OracleParameter(":suggestion",OracleDbType.Varchar2,staffRecordEntity.Suggestion,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,staffRecordEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input)
- };
- foreach (OracleParameter para in parmeters1)
- {
- if ((para.Value + "").Equals(""))
- {
- para.Value = DBNull.Value;
- }
- }
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
-
- resultEnity.HRStaffRecordID = Convert.ToInt32(strSeq);
- }//修改部门调整信息
- else if (editStatus == WCFConstant.FormMode.Edit)
- {
- #region 员工履历被其他用户修改
- sqlString1 = "SELECT Count(*) FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = :staffRecordID And OPTimeStamp = :OPTimeStamp";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":staffRecordID",OracleDbType.Int32,staffRecordEntity.StaffRecordID,ParameterDirection.Input),
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, staffRecordEntity.OPTimeStamp, ParameterDirection.Input)
- };
- string strCount = oracleTrConn.GetSqlResultToStr(sqlString1, parmeters1);
- if ("0".Equals(strCount))
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity; //员工履历被其他用户修改
- }
- #endregion
- #region 更新部门调整信息
- string sqlString = "UPDATE TP_HR_StaffRecord SET "
- + "RecordDate = :recordDate"
- + ",TargetOrganizationID = :targetOrganizationID"
- + ",TargetStaffStatus = :targetStaffStatus"
- + ",TargetJobs = :targetJobs"
- + ",TargetPost = :targetPost "
- + ",ExProbationEndDate = :exProbationEndDate"
- + ",Applicant = :applicant"
- + ",Reason = :reason"
- + ",Suggestion = :suggestion"
- + ",Remarks = :remarks"
- + ",UpdateUserID = :UpdateUserID"
- + ",UpdateTime = sysdate"
- + " WHERE StaffRecordID = :staffRecordID";
- parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":recordDate",OracleDbType.Date,staffRecordEntity.RecordDate,ParameterDirection.Input),
- new OracleParameter(":targetOrganizationID",OracleDbType.Int32,staffRecordEntity.TargetOrganizationID,ParameterDirection.Input),
- new OracleParameter(":targetStaffStatus",OracleDbType.Int32,staffRecordEntity.TargetStaffStatus,ParameterDirection.Input),
- new OracleParameter(":targetJobs",OracleDbType.Int32,staffRecordEntity.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":targetPost",OracleDbType.Int32,staffRecordEntity.TargetPost,ParameterDirection.Input),
- new OracleParameter(":exProbationEndDate",OracleDbType.Date,staffRecordEntity.ExProbationEndDate,ParameterDirection.Input),
- new OracleParameter(":applicant",OracleDbType.Int32,staffRecordEntity.Applicant,ParameterDirection.Input),
- new OracleParameter(":reason",OracleDbType.Varchar2,staffRecordEntity.Reason,ParameterDirection.Input),
- new OracleParameter(":suggestion",OracleDbType.Varchar2,staffRecordEntity.Suggestion,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,staffRecordEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":staffRecordID",OracleDbType.Int32,staffRecordEntity.StaffRecordID,ParameterDirection.Input)
- };
- foreach (OracleParameter para in parmeters1)
- {
- if ((para.Value + "").Equals(""))
- {
- para.Value = DBNull.Value;
- }
- }
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmeters1);
- resultEnity.HRStaffRecordID = staffRecordEntity.StaffRecordID;
- }
- #region 更新员工档案表中的预计试用期结束日期
- string strSql2 = "Update TP_HR_Staff Set ExProbationEndDate = :pExProbationEndDate WHERE StaffID = :pStaffID";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pExProbationEndDate", OracleDbType.Date, staffRecordEntity.ExProbationEndDate, ParameterDirection.Input),
- new OracleParameter(":pStaffID", OracleDbType.Int32, staffRecordEntity.StaffID , ParameterDirection.Input)
- };
- foreach (var itemNull in parmetersSql2)
- {
- if (string.IsNullOrEmpty(itemNull.Value + ""))
- {
- itemNull.Value = DBNull.Value;
- }
- }
- oracleTrConn.ExecuteNonQuery(strSql2, parmetersSql2);
- #endregion
- if (staffRecordEntity.ApprovalStatus == 3)
- {
- List<OracleParameter> parmeters2 = new List<OracleParameter>();
- parmeters2.Add(new OracleParameter(":organizationID", OracleDbType.Int32, staffRecordEntity.TargetOrganizationID, ParameterDirection.Input));
- parmeters2.Add(new OracleParameter(":staffStatus", OracleDbType.Int32, staffRecordEntity.TargetStaffStatus, ParameterDirection.Input));
- parmeters2.Add(new OracleParameter(":exProbationEndDate", OracleDbType.TimeStamp, staffRecordEntity.ExProbationEndDate, ParameterDirection.Input));
- parmeters2.Add(new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input));
- parmeters2.Add(new OracleParameter(":pStaffID", OracleDbType.Int32, staffRecordEntity.StaffID, ParameterDirection.Input));
- #region 更新数据到员工档案表
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + " OrganizationID = :organizationID"
- + " ,StaffStatus=:staffStatus"
- + " ,ExProbationEndDate=:exProbationEndDate";
- if (staffRecordEntity.TargetJobs != -1000)
- {
- sqlString2 += " ,Jobs = :jobs";
- parmeters2.Add(new OracleParameter(":jobs", OracleDbType.Int32, staffRecordEntity.TargetJobs, ParameterDirection.Input));
- }
- if (staffRecordEntity.TargetPost != -1000)
- {
- sqlString2 += " ,Post = :post";
- parmeters2.Add(new OracleParameter(":post", OracleDbType.Int32, staffRecordEntity.TargetPost, ParameterDirection.Input));
- }
- sqlString2 += " ,UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2.ToArray());
- if (staffRecordEntity.ExProbationEndDate != null)
- {
- #region 如果试用,往试用表里插入数据
- string sqlString3 = "INSERT INTO TP_HR_StaffProbation("
- + "StaffID"
- + ",JobsID"
- + ",BeginDate"
- + ",AccountID"
- + ",CreateUserID"
- + ",UpdateUserID) VALUES ("
- + ":StaffID"
- + ",:JobsID"
- + ",sysdate"
- + ",:AccountID"
- + ",:CreateUserID"
- + ",:UpdateUserID)";
- OracleParameter[] parmeters3 = new OracleParameter[]
- {
- new OracleParameter(":StaffID",OracleDbType.Int32,staffRecordEntity.StaffID,ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,staffRecordEntity.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString3, parmeters3);
- #endregion
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 部门调整审批保存
- /// </summary>
- /// <param name="pUserId">员工编号</param>
- /// <param name="pOPTimeStamp">员工档案表时间戳</param>
- /// <param name="pStaffRecord">员工履历表实体</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="pMemo">审批意见</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>0 没有数据被修改 -1员工档案被其他用户修改 -2存在待审批履历 -3员工履历被其他用户修改</returns>
- public static HRResultEntity SaveHRStaffOrganizationApprovalInfo(int pUserId, DateTime pOPTimeStamp, StaffRecordEntity pStaffRecord, bool pState, string pMemo, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 员工档案被其他用户修改
- string sql1 = "SELECT * FROM TP_HR_Staff"
- + " WHERE Staffid =:Staffid And OPTimeStamp= :opTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, pUserId , ParameterDirection.Input),
- new OracleParameter(":opTimeStamp", OracleDbType.TimeStamp, pOPTimeStamp , ParameterDirection.Input)
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sql1, parmetersSql1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- #region 员工履历被其他用户修改
- string sql2 = "SELECT * FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = :staffRecordID And OPTimeStamp = :oPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":staffRecordID", OracleDbType.Int32, pStaffRecord.StaffRecordID, ParameterDirection.Input),
- new OracleParameter(":oPTimeStamp", OracleDbType.TimeStamp, pStaffRecord.OPTimeStamp, ParameterDirection.Input),
- };
- DataTable dtStaffRecord = oracleTrConn.GetSqlResultToDt(sql2, parmetersSql2);
- if (dtStaffRecord == null || dtStaffRecord.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;// 员工履历被其他用户修改
- }
- #endregion
- //保存数据到员工履历表和人事审批表
- resultEnity.OperateStatus += UpdateHRApprovalInfo(dtStaff, dtStaffRecord, pState, pMemo, sUserInfo, oracleTrConn);
- if (pState)
- {
- List<OracleParameter> parmeters2 = new List<OracleParameter>();
- parmeters2.Add(new OracleParameter(":organizationID", OracleDbType.Int32, pStaffRecord.TargetOrganizationID, ParameterDirection.Input));
- parmeters2.Add(new OracleParameter(":staffStatus", OracleDbType.Int32, pStaffRecord.TargetStaffStatus, ParameterDirection.Input));
- parmeters2.Add(new OracleParameter(":exProbationEndDate", OracleDbType.TimeStamp, pStaffRecord.ExProbationEndDate, ParameterDirection.Input));
- parmeters2.Add(new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID, ParameterDirection.Input));
- parmeters2.Add(new OracleParameter(":pStaffID",OracleDbType.Int32,pUserId, ParameterDirection.Input));
- #region 更新数据到员工档案表
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + " OrganizationID = :organizationID"
- + " ,StaffStatus=:staffStatus"
- + " ,ExProbationEndDate=:exProbationEndDate";
- if (pStaffRecord.TargetJobs != -1000)
- {
- sqlString2 += " ,Jobs = :jobs";
- parmeters2.Add(new OracleParameter(":jobs", OracleDbType.Int32, pStaffRecord.TargetJobs, ParameterDirection.Input));
- }
- if (pStaffRecord.TargetPost != -1000)
- {
- sqlString2 += " ,Post = :post";
- parmeters2.Add(new OracleParameter(":post",OracleDbType.Int32,pStaffRecord.TargetPost,ParameterDirection.Input));
- }
- sqlString2 += " ,UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2.ToArray());
- if (pStaffRecord.ExProbationEndDate != null)
- {
- #region 如果试用,往试用表里插入数据
- string sqlString3 = "INSERT INTO TP_HR_StaffProbation("
- + "StaffID"
- + ",JobsID"
- + ",BeginDate"
- + ",AccountID"
- + ",CreateUserID"
- + ",UpdateUserID) VALUES ("
- + ":StaffID"
- + ",:JobsID"
- + ",sysdate"
- + ",:AccountID"
- + ",:CreateUserID"
- + ",:UpdateUserID)";
- OracleParameter[] parmeters3 = new OracleParameter[]
- {
- new OracleParameter(":StaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,pStaffRecord.TargetJobs,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString3, parmeters3);
- #endregion
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 员工离职审批
- /// <summary>
- /// 人事审批保存
- /// </summary>
- /// <param name="pUserId">员工编号</param>
- /// <param name="pOPTimeStamp">员工档案表时间戳</param>
- /// <param name="pStaffRecord">员工履历表实体</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="pMemo">审批意见</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>0 没有数据被修改 -1员工档案被其他用户修改 -2存在待审批履历 -3员工履历被其他用户修改</returns>
- public static HRResultEntity SaveHRDimissionApprovalInfo(int pUserId, DateTime pOPTimeStamp, StaffRecordEntity pStaffRecord, bool pState, string pMemo, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 员工档案被其他用户修改
- string sql1 = "SELECT * FROM TP_HR_Staff"
- + " WHERE Staffid =:Staffid And OPTimeStamp= :opTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, pUserId , ParameterDirection.Input),
- new OracleParameter(":opTimeStamp", OracleDbType.TimeStamp, pOPTimeStamp , ParameterDirection.Input)
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sql1, parmetersSql1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- #region 员工履历被其他用户修改
- string sql2 = "SELECT * FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = " + pStaffRecord.StaffRecordID + " And OPTimeStamp = :OPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, pStaffRecord.OPTimeStamp, ParameterDirection.Input),
- };
- DataTable dtStaffRecord = oracleTrConn.GetSqlResultToDt(sql2, parmetersSql2);
- if (dtStaffRecord == null || dtStaffRecord.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;// 员工履历被其他用户修改
- }
- #endregion
- //保存数据到员工履历表和人事审批表
- resultEnity.OperateStatus += UpdateHRApprovalInfo(dtStaff, dtStaffRecord, pState, pMemo, sUserInfo, oracleTrConn);
- if (pState) //审批通过
- {
- #region 更新数据到员工档案表
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "StaffStatus=3"
- + ",TurnoverDate=FUN_CMN_GetAccountDate(:pACCOUNTID)"
- + ",UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":pACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 员工履历停用
- /// <summary>
- /// 设置禁用员工履历
- /// </summary>
- /// <param name="staffrecordid">员工履历ID</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity SetStaffRecordValueFlag(int staffrecordid, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- string sql = "Select Count(*) From TP_HR_StaffRecord Where StaffRecordID=" + staffrecordid + " And ApprovalStatus=0 And ValueFlag=1";
- string strCount = oracleTrConn.GetSqlResultToStr(sql);
- if (!"0".Equals(strCount))
- {
- string sqlString = "Update TP_HR_StaffRecord Set ValueFlag = 0,UpdateUserID = " + sUserInfo.UserID
- + " Where StaffRecordID =" + staffrecordid;
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString);
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- else
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -5;
- return resultEnity;
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 员工入职审批
- /// <summary>
- /// 员工入职审批
- /// </summary>
- /// <param name="pUserId">员工编号</param>
- /// <param name="pOPTimeStamp">员工时间戳</param>
- /// <param name="pStaffRecord">员工履历表实体</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="pMemo">审批意见</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns></returns>
- public static HRResultEntity SaveHRStaffRecordApprovalInfo(int pUserId, DateTime pOPTimeStamp, StaffRecordEntity pStaffRecord, bool pState, string pMemo, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 员工档案被其他用户修改
- string sql1 = "SELECT * FROM TP_HR_Staff"
- + " WHERE Staffid =:Staffid And OPTimeStamp= :opTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, pUserId , ParameterDirection.Input),
- new OracleParameter(":opTimeStamp", OracleDbType.TimeStamp, pOPTimeStamp , ParameterDirection.Input)
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sql1, parmetersSql1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- #region 员工履历被其他用户修改
- int job = 0;
- int Post = 0;
- int OrganizationID = 0;
- string ExProbationEndDate = "";
- string sql2 = "SELECT * FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = " + pStaffRecord.StaffRecordID + " And OPTimeStamp = :OPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, pStaffRecord.OPTimeStamp, ParameterDirection.Input),
- };
- DataTable dtStaffRecord = oracleTrConn.GetSqlResultToDt(sql2, parmetersSql2);
- if (dtStaffRecord == null || dtStaffRecord.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;// 员工履历被其他用户修改
- }
- else
- {
- job = Convert.ToInt32(dtStaffRecord.Rows[0]["OriginalJobs"]);//工种
- if (dtStaffRecord.Rows[0]["ExProbationEndDate"] != DBNull.Value)
- ExProbationEndDate = dtStaffRecord.Rows[0]["ExProbationEndDate"].ToString();
- Post = Convert.ToInt32(dtStaffRecord.Rows[0]["OriginalPost"]);//职务
- OrganizationID = Convert.ToInt32(dtStaffRecord.Rows[0]["OriginalOrganizationID"]);//组织机构
- }
- #endregion
- //保存数据到员工履历表和人事审批表
- resultEnity.OperateStatus += UpdateHRApprovalInfo(dtStaff, dtStaffRecord, pState, pMemo, sUserInfo, oracleTrConn);
- if (pState) //审批通过
- {
- #region 更新数据到员工档案表
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "StaffStatus=" + (ExProbationEndDate == "" ? "2" : "1") //试用
- + ",EntryDate=FUN_CMN_GetAccountDate(:pACCOUNTID)"
- + ",UpdateUserID=:pUpdateUserID"
- + ",OrganizationID=:OrganizationID"
- + ",Post=:Post"
- + ",Jobs=:Jobs"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":pACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input),
- new OracleParameter(":OrganizationID",OracleDbType.Int32,OrganizationID,ParameterDirection.Input),
- new OracleParameter(":Post",OracleDbType.Int32,Post,ParameterDirection.Input),
- new OracleParameter(":Jobs",OracleDbType.Int32,job,ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- if (ExProbationEndDate != "")
- {
- #region 如果试用,往试用表里插入数据
- string sqlString3 = "INSERT INTO TP_HR_StaffProbation("
- + "StaffID"
- + ",JobsID"
- + ",BeginDate"
- + ",AccountID"
- + ",CreateUserID"
- + ",UpdateUserID) VALUES ("
- + ":StaffID"
- + ",:JobsID"
- + ",sysdate"
- + ",:AccountID"
- + ",:CreateUserID"
- + ",:UpdateUserID)";
- OracleParameter[] parmeters3 = new OracleParameter[]
- {
- new OracleParameter(":StaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,job,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString3, parmeters3);
- #endregion
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 员工转正审批
- /// <summary>
- /// 员工转正审批
- /// </summary>
- /// <param name="pUserId">员工编号</param>
- /// <param name="pOPTimeStamp">员工档案表的时间戳</param>
- /// <param name="pStaffRecord">员工履历表实体</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="pMemo">审批原因</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity SaveHrStaffPositiveApprovalInfo(int pUserId, DateTime pOPTimeStamp, StaffRecordEntity pStaffRecord, bool pState, string pMemo, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- #region 员工档案被其他用户修改
- string sql1 = "SELECT * FROM TP_HR_Staff"
- + " WHERE Staffid =:Staffid And OPTimeStamp= :opTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":Staffid", OracleDbType.Int32, pUserId , ParameterDirection.Input),
- new OracleParameter(":opTimeStamp", OracleDbType.TimeStamp, pOPTimeStamp , ParameterDirection.Input)
- };
- DataTable dtStaff = oracleTrConn.GetSqlResultToDt(sql1, parmetersSql1);
- if (dtStaff == null || dtStaff.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -3;
- return resultEnity;// 员工档案被其他用户修改
- }
- #endregion
- #region 员工履历被其他用户修改
- int job = 0;
- string ExProbationEndDate = "";
- string sql2 = "SELECT * FROM TP_HR_STAFFRECORD"
- + " WHERE StaffRecordID = " + pStaffRecord.StaffRecordID + " And OPTimeStamp = :OPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, pStaffRecord.OPTimeStamp, ParameterDirection.Input),
- };
- DataTable dtStaffRecord = oracleTrConn.GetSqlResultToDt(sql2, parmetersSql2);
- if (dtStaffRecord == null || dtStaffRecord.Rows.Count <= 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;// 员工履历被其他用户修改
- }
- else
- {
- job = Convert.ToInt32(dtStaffRecord.Rows[0]["OriginalJobs"]);//工种
- if (dtStaffRecord.Rows[0]["ExProbationEndDate"] != DBNull.Value)
- ExProbationEndDate = dtStaffRecord.Rows[0]["ExProbationEndDate"].ToString();
- }
- #endregion
- //保存数据到员工履历表和人事审批表
- resultEnity.OperateStatus += UpdateHRApprovalInfo(dtStaff, dtStaffRecord, pState, pMemo, sUserInfo, oracleTrConn);
- if (pState) //审批通过
- {
- #region 更新数据到员工档案表
- string sqlString2 = " UPDATE TP_HR_STAFF SET "
- + "StaffStatus=2" //2:转正
- + ",UpdateUserID=:pUpdateUserID"
- + " Where StaffID=:pStaffID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffID",OracleDbType.Int32,pUserId,ParameterDirection.Input)
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- if (ExProbationEndDate != "")
- {
- UpdateHRStaffProbation(pUserId, job, sUserInfo, oracleTrConn);
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 员工考勤
- /// <summary>
- /// 根据DataTable中的考勤数据更新数据表
- /// </summary>
- /// <param name="pStaffAttendance">考勤数据表</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity SaveStaffAttendanceInfo(DataTable pStaffAttendance, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (pStaffAttendance == null || pStaffAttendance.Rows.Count <= 0)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- oracleTrConn.Connect();
- foreach (DataRow newRowStaff in pStaffAttendance.Rows)
- {
- #region 验证该员工是否存在
- if (string.IsNullOrEmpty(newRowStaff["StaffID"].ToString()))
- {
- resultEnity.OperateLogInfo += "员工编号:" + newRowStaff["StaffCode"].ToString() + " 不存在,不能被添加!" + Environment.NewLine;
- continue;
- }
- #endregion
- #region 获取DataRow中的考勤数据
- int intStaffID = Convert.ToInt32(newRowStaff["STAFFID"]);
- string strStaffName = newRowStaff["StaffName"].ToString();
- DateTime dtAttendanceDate = Convert.ToDateTime(newRowStaff["ATTENDANCEDATE"]);
- string strCardNumber = newRowStaff["CARDNUMBER"].ToString();
- string strAttendanceStatus = newRowStaff["ATTENDANCESTATUS"].ToString();
- string strAbsenceReason = newRowStaff["ABSENCEREASON"].ToString();
- double douTardinessTimes = Convert.ToDouble(newRowStaff["TARDINESSTIMES"]);
- string strRemarks = newRowStaff["Remarks"].ToString();
- #endregion
- #region 验证数据表中是否存在该数据
- string strSql1 = "Select max(SettlementFlag) From TP_HR_StaffAttendance "
- + " Where StaffID = :pStaffID And AttendanceDate = :pAttendanceDate";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":pStaffID", OracleDbType.Int32, intStaffID , ParameterDirection.Input),
- new OracleParameter(":pAttendanceDate", OracleDbType.Date, dtAttendanceDate , ParameterDirection.Input)
- };
- #endregion
- string strSettlementFlag = oracleTrConn.GetSqlResultToStr(strSql1, parmetersSql1);
- if (string.IsNullOrEmpty(strSettlementFlag))
- {
- #region 向员工考勤表 插入新数据
- string strSql2 = "Insert into TP_HR_StaffAttendance Value ("
- + "StaffID"
- + ",AttendanceDate"
- + ",CardNumber"
- + ",AttendanceStatus"
- + ",AbsenceReason"
- + ",TardinessTimes"
- + ",Remarks"
- + ",AccountID"
- + ",CreateUserID"
- + ",UpdateUserID"
- + ",SettlementFlag"
- + ")"
- + " VALUES ("
- + " :pStaffID"
- + " ,:pAttendanceDate"
- + " ,:pCardNumber"
- + " ,:pAttendanceStatus"
- + " ,:pAbsenceReason"
- + " ,:pTardinessTimes"
- + " ,:pRemarks"
- + " ,:pAccountID"
- + " ,:pCreateUserID"
- + " ,:pUpdateUserID"
- + " ,0"
- + " )";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pStaffID", OracleDbType.Int32, intStaffID , ParameterDirection.Input),
- new OracleParameter(":pAttendanceDate", OracleDbType.Date, dtAttendanceDate , ParameterDirection.Input),
- new OracleParameter(":pCardNumber", OracleDbType.Varchar2, strCardNumber , ParameterDirection.Input),
- new OracleParameter(":pAttendanceStatus", OracleDbType.Char, strAttendanceStatus , ParameterDirection.Input),
- new OracleParameter(":pAbsenceReason", OracleDbType.Char, strAbsenceReason , ParameterDirection.Input),
- new OracleParameter(":pTardinessTimes", OracleDbType.Double, douTardinessTimes , ParameterDirection.Input),
- new OracleParameter(":pRemarks", OracleDbType.Varchar2, strRemarks , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- new OracleParameter(":pCreateUserID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(strSql2, parmetersSql2);
- }
- else
- {
- if ("1".Equals(strSettlementFlag))
- {
- //工资已经结算 不能进行编辑
- resultEnity.OperateLogInfo += strStaffName + dtAttendanceDate.ToString("yyyy-MM-dd") + "工资已经结算!" + Environment.NewLine;
- }
- else
- {
- #region 更新员工考勤表的数据
- string strSql3 = "Update TP_HR_StaffAttendance Set "
- + "CardNumber = :pCardNumber"
- + ",AttendanceStatus = :pAttendanceStatus"
- + ",AbsenceReason = :pAbsenceReason"
- + ",TardinessTimes = :pTardinessTimes"
- + ",Remarks = :pRemarks"
- + ",UpdateUserID = :pUpdateUserID"
- + " Where StaffID = :pStaffID And AttendanceDate = :pAttendanceDate And AccountID = :pAccountID";
- OracleParameter[] parmetersSql3 = new OracleParameter[]
- {
- new OracleParameter(":pCardNumber", OracleDbType.Varchar2, strCardNumber , ParameterDirection.Input),
- new OracleParameter(":pAttendanceStatus", OracleDbType.Char, strAttendanceStatus , ParameterDirection.Input),
- new OracleParameter(":pAbsenceReason", OracleDbType.Char, strAbsenceReason , ParameterDirection.Input),
- new OracleParameter(":pTardinessTimes", OracleDbType.Double, douTardinessTimes , ParameterDirection.Input),
- new OracleParameter(":pRemarks", OracleDbType.Varchar2, strRemarks , ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pStaffID", OracleDbType.Int32, intStaffID , ParameterDirection.Input),
- new OracleParameter(":pAttendanceDate", OracleDbType.Date, dtAttendanceDate , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(strSql3, parmetersSql3);
- }
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 行政奖惩
- /// <summary>
- /// 根据传入的实体保存 行政奖惩记录
- /// </summary>
- /// <param name="pAdminRAPEntity">行政奖惩实体</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="pStatus">新增还是编辑枚举</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity SaveStaffAdminRAPInfo(HRAdminRAPEntity pAdminRAPEntity, SUserInfo sUserInfo, WCFConstant.FormMode pStatus)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (pAdminRAPEntity == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- oracleTrConn.Connect();
- if (pStatus == WCFConstant.FormMode.Add)
- {
- string strSeq = oracleTrConn.GetSqlResultToStr("Select SEQ_HR_AdminRAP_RAPID.nextval from dual");
- #region 新建时插入数据
- string strSql1 = "Insert Into TP_HR_ADMINRAP (RAPID,"
- + "STAFFID"
- + ",RAPTYPE"
- + ",REASON"
- + ",RAPDATE"
- + ",RAPAMOUNT"
- + ",ADMINISTRATIONTYPE"
- + ",REMARKS"
- + ",AUDITSTATUS"
- + ",ACCOUNTID"
- + ",CREATEUSERID"
- + ",UPDATEUSERID)"
- + " Values (:RAPID,"
- + ":pSTAFFID"
- + ",:pRAPTYPE"
- + ",:pREASON"
- + ",:pRAPDATE"
- + ",:pRAPAMOUNT"
- + ",:pADMINISTRATIONTYPE"
- + ",:pREMARKS"
- + ",:pAUDITSTATUS"
- + ",:pACCOUNTID"
- + ",:pCREATEUSERID"
- + ",:pUPDATEUSERID"
- + ")";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":RAPID", OracleDbType.Int32,Convert.ToInt32(strSeq) , ParameterDirection.Input),
- new OracleParameter(":pSTAFFID", OracleDbType.Int32, pAdminRAPEntity.StaffID , ParameterDirection.Input),
- new OracleParameter(":pRAPTYPE", OracleDbType.Double, pAdminRAPEntity.RAPType , ParameterDirection.Input),
- new OracleParameter(":pREASON", OracleDbType.Varchar2, pAdminRAPEntity.Reason , ParameterDirection.Input),
- new OracleParameter(":pRAPDATE", OracleDbType.Date, pAdminRAPEntity.RAPDate , ParameterDirection.Input),
- new OracleParameter(":pRAPAMOUNT", OracleDbType.Double, pAdminRAPEntity.RAPAmount , ParameterDirection.Input),
- new OracleParameter(":pADMINISTRATIONTYPE", OracleDbType.Int32, pAdminRAPEntity.AdministrationType , ParameterDirection.Input),
- new OracleParameter(":pREMARKS", OracleDbType.Varchar2, pAdminRAPEntity.Remarks , ParameterDirection.Input),
- new OracleParameter(":pAUDITSTATUS", OracleDbType.Int32, 0 , ParameterDirection.Input),
- new OracleParameter(":pACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- new OracleParameter(":pCREATEUSERID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pUPDATEUSERID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(strSql1, parmetersSql1);
-
- resultEnity.HRStaffID = Convert.ToInt32(strSeq);
- }
- else
- {
- #region 判断数据是否可以编辑
- string strSlq2 = "Select max(AuditStatus) From TP_HR_AdminRAP Where RAPID = :pRAPID And OPTimeStamp = :pOPTimeStamp";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pRAPID", OracleDbType.Int32, pAdminRAPEntity.RAPID , ParameterDirection.Input),
- new OracleParameter(":pOPTimeStamp", OracleDbType.TimeStamp, pAdminRAPEntity.OPTimeStamp , ParameterDirection.Input),
- };
- string strAuditStatus = oracleTrConn.GetSqlResultToStr(strSlq2, parmetersSql2);
- if (string.IsNullOrEmpty(strAuditStatus))
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;
- }
- if (!"0".Equals(strAuditStatus))
- {
- //不是待审批状态
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;
- }
- #endregion
- #region 编辑时更新数据
- string strSql3 = "Update TP_HR_AdminRAP Set "
- + "RAPTYPE = :pRAPTYPE"
- + ",REASON = :pREASON"
- + ",RAPDATE = :pRAPDATE"
- + ",RAPAMOUNT = :pRAPAMOUNT"
- + ",ADMINISTRATIONTYPE = :pADMINISTRATIONTYPE"
- + ",REMARKS = :pREMARKS"
- + ",UPDATEUSERID = :pUPDATEUSERID"
- + " Where RAPID = :pRAPID And STAFFID = :pSTAFFID And AccountID = :pAccountID";
- OracleParameter[] parmetersSql3 = new OracleParameter[]
- {
- new OracleParameter(":pRAPTYPE", OracleDbType.Double, pAdminRAPEntity.RAPType , ParameterDirection.Input),
- new OracleParameter(":pREASON", OracleDbType.Varchar2, pAdminRAPEntity.Reason , ParameterDirection.Input),
- new OracleParameter(":pRAPDATE", OracleDbType.Date, pAdminRAPEntity.RAPDate , ParameterDirection.Input),
- new OracleParameter(":pRAPAMOUNT", OracleDbType.Double, pAdminRAPEntity.RAPAmount , ParameterDirection.Input),
- new OracleParameter(":pADMINISTRATIONTYPE", OracleDbType.Int32, pAdminRAPEntity.AdministrationType , ParameterDirection.Input),
- new OracleParameter(":pREMARKS", OracleDbType.Varchar2, pAdminRAPEntity.Remarks , ParameterDirection.Input),
- new OracleParameter(":pUPDATEUSERID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pRAPID", OracleDbType.Int32, pAdminRAPEntity.RAPID , ParameterDirection.Input),
- new OracleParameter(":pSTAFFID", OracleDbType.Int32, pAdminRAPEntity.StaffID , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(strSql3, parmetersSql3);
- resultEnity.HRStaffID = pAdminRAPEntity.RAPID;
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 行政奖惩审批
- /// </summary>
- /// <param name="pAdminRAPEntity">行政奖惩实体</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="pMemo">审批原因</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity SaveStaffAdminRAPApprovalInfo(HRAdminRAPEntity pAdminRAPEntity, bool pState, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (pAdminRAPEntity == null)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- oracleTrConn.Connect();
- #region 判断数据是否可以编辑
- string strSlq1 = "Select max(AuditStatus) From TP_HR_AdminRAP Where RAPID = :pRAPID And OPTimeStamp = :pOPTimeStamp";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":pRAPID", OracleDbType.Int32, pAdminRAPEntity.RAPID , ParameterDirection.Input),
- new OracleParameter(":pOPTimeStamp", OracleDbType.TimeStamp, pAdminRAPEntity.OPTimeStamp , ParameterDirection.Input),
- };
- string strAuditStatus = oracleTrConn.GetSqlResultToStr(strSlq1, parmetersSql1);
- if (string.IsNullOrEmpty(strAuditStatus))
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -2;
- return resultEnity;
- }
- if (!"0".Equals(strAuditStatus))
- {
- //不是待审批状态
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -1;
- return resultEnity;
- }
- #endregion
- #region 更新审批数据
- int intAuditStatus = 2; //2:审核未通过
- if (pState)
- {
- intAuditStatus = 1; //1:审核通过;
- }
- string strSql2 = "Update TP_HR_AdminRAP Set "
- + "AUDITSTATUS = :pAUDITSTATUS"
- + ",AUDITOR = :pAUDITOR"
- + ",AUDITDATE = sysdate"
- + ",ACCOUNTDATE = FUN_CMN_GetAccountDate(:pAccountID1)"
- + ",UPDATEUSERID = :pUPDATEUSERID"
- + " Where RAPID = :pRAPID And AccountID = :pAccountID";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pAUDITSTATUS", OracleDbType.Int32,intAuditStatus, ParameterDirection.Input),
- new OracleParameter(":pAUDITOR", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pAccountID1", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- new OracleParameter(":pUPDATEUSERID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pRAPID", OracleDbType.Int32, pAdminRAPEntity.RAPID , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(strSql2, parmetersSql2);
- resultEnity.HRStaffID = pAdminRAPEntity.RAPID;
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- /// <summary>
- /// 设置行政奖惩停用
- /// </summary>
- /// <param name="pRAPID">行政奖惩编号</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity SetStaffAdminRAPValueFlag(int pRAPID, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- string sql = "Select max(SettlementFlag) From TP_HR_AdminRAP Where RAPID =" + pRAPID + " And AuditStatus = 0 And ValueFlag = 1";
- string strSettlementFlag = oracleTrConn.GetSqlResultToStr(sql);
- if (!string.IsNullOrEmpty(strSettlementFlag))
- {
- if ("1".Equals(strSettlementFlag)) //工资结算标识 1:已经结算 0:未结算
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -6;
- return resultEnity;
- }
- string sqlString = "Update TP_HR_AdminRAP Set ValueFlag = 0,UpdateUserID = :pUpdateUserID"
- + " Where RAPID = :pRAPID And AccountID = :pAccountID";
- OracleParameter[] parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32,sUserInfo.UserID, ParameterDirection.Input),
- new OracleParameter(":pRAPID", OracleDbType.Int32, pRAPID , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- resultEnity.OperateStatus = oracleTrConn.ExecuteNonQuery(sqlString, parmetersSql);
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- else
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- resultEnity.OperateStatus = -5;
- return resultEnity;
- }
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 员工报餐
- /// <summary>
- /// 员工报餐保存
- /// </summary>
- /// <param name="pStaff">待保存的数据表</param>
- /// <param name="pStatus">窗口状态枚举</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>HRResultEntity</returns>
- public static HRResultEntity SaveStaffDailyMealInfo(DataTable pStaff, WCFConstant.FormMode pStatus, SUserInfo sUserInfo)
- {
- HRResultEntity resultEnity = new HRResultEntity();
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- if (pStaff == null || pStaff.Rows.Count <= 0)
- {
- resultEnity.OperateStatus = 0;
- return resultEnity;
- }
- oracleTrConn.Connect();
- foreach (DataRow newRowStaff in pStaff.Rows)
- {
- #region 验证该员工是否存在
- if (string.IsNullOrEmpty(newRowStaff["StaffID"].ToString()))
- {
- resultEnity.OperateLogInfo += "员工编号:" + newRowStaff["StaffCode"].ToString() + " 不存在,不能被添加!" + Environment.NewLine;
- continue;
- }
- #endregion
- #region 获取DataRow中的报餐数据
- int intStaffID = Convert.ToInt32(newRowStaff["StaffID"]);
- DateTime dtMealDate = Convert.ToDateTime(newRowStaff["MealDate"]);
- string strOrderBreakfast = string.IsNullOrEmpty(newRowStaff["OrderBreakfast"].ToString()) ? "0" : newRowStaff["OrderBreakfast"].ToString();
- string strOrderLunch = string.IsNullOrEmpty(newRowStaff["OrderLunch"].ToString()) ? "0" : newRowStaff["OrderLunch"].ToString();
- string strOrderDinner = string.IsNullOrEmpty(newRowStaff["OrderDinner"].ToString()) ? "0" : newRowStaff["OrderDinner"].ToString();
- string strMealBreakfast = string.IsNullOrEmpty(newRowStaff["MealBreakfast"].ToString()) ? "0" : newRowStaff["MealBreakfast"].ToString();
- string strMealLunch = string.IsNullOrEmpty(newRowStaff["MealLunch"].ToString()) ? "0" : newRowStaff["MealLunch"].ToString();
- string strMealDinner = string.IsNullOrEmpty(newRowStaff["MealDinner"].ToString()) ? "0" : newRowStaff["MealDinner"].ToString();
- string strRemarks = newRowStaff["Remarks"].ToString();
- if (pStatus == WCFConstant.FormMode.MealEdit)
- {
- strOrderBreakfast = "0";
- strOrderLunch = "0";
- strOrderDinner = "0";
- strRemarks = string.Empty;
- }
- #endregion
- #region 验证数据表中是否存在该数据
- string strSql1 = "Select max(StaffID) From TP_HR_StaffDailyMeal "
- + " Where StaffID = :pStaffID And MealDate = :pMealDate";
- OracleParameter[] parmetersSql1 = new OracleParameter[]
- {
- new OracleParameter(":pStaffID", OracleDbType.Int32, intStaffID , ParameterDirection.Input),
- new OracleParameter(":pMealDate", OracleDbType.Date, dtMealDate , ParameterDirection.Input)
- };
- #endregion
- string strResultStaffID = oracleTrConn.GetSqlResultToStr(strSql1, parmetersSql1);
- if (string.IsNullOrEmpty(strResultStaffID))
- {
- #region 向员工报餐表 插入新数据
- string strSql2 = "Insert into TP_HR_StaffDailyMeal Value ("
- + "StaffID"
- + ",MealDate"
- + ",OrderBreakfast"
- + ",OrderLunch"
- + ",OrderDinner"
- + ",MealBreakfast"
- + ",MealLunch"
- + ",MealDinner"
- + ",Remarks"
- + ",AccountID"
- + ",CreateUserID"
- + ",UpdateUserID"
- + ")"
- + " VALUES ("
- + " :pStaffID"
- + " ,:pMealDate"
- + " ,:pOrderBreakfast"
- + " ,:pOrderLunch"
- + " ,:pOrderDinner"
- + " ,:pMealBreakfast"
- + " ,:pMealLunch"
- + " ,:pMealDinner"
- + " ,:pRemarks"
- + " ,:pAccountID"
- + " ,:pCreateUserID"
- + " ,:pUpdateUserID"
- + " )";
- OracleParameter[] parmetersSql2 = new OracleParameter[]
- {
- new OracleParameter(":pStaffID", OracleDbType.Int32, intStaffID , ParameterDirection.Input),
- new OracleParameter(":pMealDate", OracleDbType.Date, dtMealDate , ParameterDirection.Input),
- new OracleParameter(":pOrderBreakfast", OracleDbType.Varchar2, strOrderBreakfast , ParameterDirection.Input),
- new OracleParameter(":pOrderLunch", OracleDbType.Varchar2, strOrderLunch , ParameterDirection.Input),
- new OracleParameter(":pOrderDinner", OracleDbType.Varchar2, strOrderDinner , ParameterDirection.Input),
- new OracleParameter(":pMealBreakfast", OracleDbType.Varchar2, strMealBreakfast , ParameterDirection.Input),
- new OracleParameter(":pMealLunch", OracleDbType.Varchar2, strMealLunch , ParameterDirection.Input),
- new OracleParameter(":pMealDinner", OracleDbType.Varchar2, strMealDinner , ParameterDirection.Input),
- new OracleParameter(":pRemarks", OracleDbType.Varchar2, strRemarks , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- new OracleParameter(":pCreateUserID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(strSql2, parmetersSql2);
- }
- else
- {
- if (pStatus == WCFConstant.FormMode.Edit)
- {
- #region 更新员工报餐表的数据
- string strSql3 = "Update TP_HR_StaffDailyMeal Set "
- + "OrderBreakfast = :pOrderBreakfast"
- + ",OrderLunch = :pOrderLunch"
- + ",OrderDinner = :pOrderDinner"
- + ",MealBreakfast = :pMealBreakfast"
- + ",MealLunch = :pMealLunch"
- + ",MealDinner = :pMealDinner"
- + ",Remarks = :pRemarks"
- + ",UpdateUserID = :pUpdateUserID"
- + " Where StaffID = :pStaffID And MealDate = :pMealDate And AccountID = :pAccountID";
- OracleParameter[] parmetersSql3 = new OracleParameter[]
- {
- new OracleParameter(":pOrderBreakfast", OracleDbType.Varchar2, strOrderBreakfast , ParameterDirection.Input),
- new OracleParameter(":pOrderLunch", OracleDbType.Varchar2, strOrderLunch , ParameterDirection.Input),
- new OracleParameter(":pOrderDinner", OracleDbType.Varchar2, strOrderDinner , ParameterDirection.Input),
- new OracleParameter(":pMealBreakfast", OracleDbType.Varchar2, strMealBreakfast , ParameterDirection.Input),
- new OracleParameter(":pMealLunch", OracleDbType.Varchar2, strMealLunch, ParameterDirection.Input),
- new OracleParameter(":pMealDinner", OracleDbType.Varchar2, strMealDinner, ParameterDirection.Input),
- new OracleParameter(":pRemarks", OracleDbType.Varchar2, strRemarks, ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pStaffID", OracleDbType.Int32, intStaffID, ParameterDirection.Input),
- new OracleParameter(":pMealDate", OracleDbType.Date, dtMealDate , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(strSql3, parmetersSql3);
- }
- else
- {
- #region 更新员工报餐表的数据
- string strSql4 = "Update TP_HR_StaffDailyMeal Set "
- + "MealBreakfast = :pMealBreakfast"
- + ",MealLunch = :pMealLunch"
- + ",MealDinner = :pMealDinner"
- + ",UpdateUserID = :pUpdateUserID"
- + " Where StaffID = :pStaffID And MealDate = :pMealDate And AccountID = :pAccountID";
- OracleParameter[] parmetersSql4 = new OracleParameter[]
- {
- new OracleParameter(":pMealBreakfast", OracleDbType.Varchar2, strMealBreakfast , ParameterDirection.Input),
- new OracleParameter(":pMealLunch", OracleDbType.Varchar2, strMealLunch, ParameterDirection.Input),
- new OracleParameter(":pMealDinner", OracleDbType.Varchar2, strMealDinner, ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID , ParameterDirection.Input),
- new OracleParameter(":pStaffID", OracleDbType.Int32, intStaffID, ParameterDirection.Input),
- new OracleParameter(":pMealDate", OracleDbType.Date, dtMealDate , ParameterDirection.Input),
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID , ParameterDirection.Input),
- };
- #endregion
- resultEnity.OperateStatus += oracleTrConn.ExecuteNonQuery(strSql4, parmetersSql4);
- }
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return resultEnity;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- #region 私有方法
- /// <summary>
- /// 根据传入的数据更新员工履历表数据
- /// </summary>
- /// <param name="pStaff">员工档案表</param>
- /// <param name="pStaffRecord">员工履历表</param>
- /// <param name="pState">审批状态 True 通过 False 不通过</param>
- /// <param name="pMemo">审批意见</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="pTrConn">数据库事物</param>
- /// <returns>int返回更新数据行数</returns>
- private static int UpdateHRApprovalInfo(DataTable pStaff, DataTable pStaffRecord, bool pState, string pMemo, SUserInfo sUserInfo, IDBTransaction pTrConn)
- {
- int returnCount = 0;
- int intRECORDTYPE = Convert.ToInt32(pStaffRecord.Rows[0]["RecordType"]);
- int intSTAFFRECORDID = Convert.ToInt32(pStaffRecord.Rows[0]["StaffRecordID"]);
- int intRESULT = pState ? 1 : 0;
- int intApprovalStatus = pState ? 3 : 2;
- #region 向人事审批表中插入数据
- string strSql1 = "INSERT INTO TP_HR_HRAPPROVAL ("
- + " RECORDTYPE"
- + " ,STAFFRECORDID"
- + " ,SUGGESTION"
- + " ,RESULT"
- + " ,REMARKS"
- + " ,ACCOUNTID"
- + " ,VALUEFLAG"
- + " ,CREATEUSERID"
- + " ,UPDATEUSERID"
- + ")"
- + " VALUES "
- + " (:pRECORDTYPE"
- + ",:pSTAFFRECORDID"
- + ",:pSUGGESTION"
- + ",:pRESULT"
- + ",:pREMARKS"
- + ",:pACCOUNTID"
- + ",:pVALUEFLAG"
- + ",:pCREATEUSERID"
- + ",:pUPDATEUSERID"
- + " )";
- OracleParameter[] parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":pRECORDTYPE",OracleDbType.Int32,intRECORDTYPE,ParameterDirection.Input),
- new OracleParameter(":pSTAFFRECORDID",OracleDbType.Int32,intSTAFFRECORDID,ParameterDirection.Input),
- new OracleParameter(":pSUGGESTION",OracleDbType.Varchar2,pMemo,ParameterDirection.Input),
- new OracleParameter(":pRESULT",OracleDbType.Int32,intRESULT,ParameterDirection.Input),
- new OracleParameter(":pREMARKS",OracleDbType.Varchar2,"",ParameterDirection.Input),
- new OracleParameter(":pACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":pVALUEFLAG",OracleDbType.Int32,1,ParameterDirection.Input),
- new OracleParameter(":pCREATEUSERID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pUPDATEUSERID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input)
- };
- #endregion
- returnCount += pTrConn.ExecuteNonQuery(strSql1, parmeters1);
- #region 更新数据到员工履历表
- string sqlString2 = " UPDATE TP_HR_STAFFRECORD SET "
- + "ApprovalStatus=:pApprovalStatus"
- + ",Approver=:pApprover"
- + ",ApprovalDate=FUN_CMN_GetAccountDate(:ACCOUNTID)"
- + ",UpdateUserID=:pUpdateUserID"
- + " Where StaffRecordID=:pStaffRecordID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":pApprovalStatus",OracleDbType.Int32,intApprovalStatus,ParameterDirection.Input),
- new OracleParameter(":pApprover",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":ACCOUNTID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":pStaffRecordID",OracleDbType.Int32,intSTAFFRECORDID,ParameterDirection.Input),
- };
- #endregion
- returnCount += pTrConn.ExecuteNonQuery(sqlString2, parmeters2);
- return returnCount;
- }
- /// <summary>
- /// 更新试用期表中的试用结束日期
- /// </summary>
- /// <param name="pStaffID">员工编号</param>
- /// <param name="pJobsID">工种编号</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <param name="pTrConn">数据库事务</param>
- private static void UpdateHRStaffProbation(int pStaffID, int pJobsID, SUserInfo sUserInfo, IDBTransaction pTrConn)
- {
- string strSql1 = "SELECT MAX(ProbationID) FROM TP_HR_StaffProbation WHERE StaffID = :pStaffID AND JobsID = :pJobsID";
- OracleParameter[] parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":pStaffID", OracleDbType.Int32, pStaffID, ParameterDirection.Input),
- new OracleParameter(":pJobsID", OracleDbType.Int32, pJobsID, ParameterDirection.Input)
- };
- string strProbationID = pTrConn.GetSqlResultToStr(strSql1, parmeters1);
- if (!string.IsNullOrEmpty(strProbationID))
- {
- int intProbationID = Convert.ToInt32(strProbationID);
- string strSql2 = "UPDATE TP_HR_StaffProbation SET EndDate = FUN_CMN_GetAccountDate(:pAccountID),UpdateUserID = :pUpdateUserID "
- + " WHERE ProbationID = :pProbationID";
- OracleParameter[] parmeters2 = new OracleParameter[]
- {
- new OracleParameter(":pAccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
- new OracleParameter(":pUpdateUserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
- new OracleParameter(":pProbationID", OracleDbType.Int32, intProbationID, ParameterDirection.Input)
- };
- pTrConn.ExecuteNonQuery(strSql2, parmeters2);
- }
- }
- #endregion
- #region 工资结算
- /// <summary>
- /// 添加工资结算信息
- /// </summary>
- /// <param name="salaryEntity">总结算信息实体</param>
- /// <param name="dsStaffSalary">各明细结算信息数据集</param>
- /// <param name="dsProductionData">结算用生产数据</param>
- /// <param name="dsStaffAttendance">结算用考勤数据</param>
- /// <param name="userInfo">当前操作用户</param>
- /// <returns>结果值</returns>
- public static int AddSalarySettlement(GetSalaryEntity salaryEntity, DataSet dsStaffSalary,
- DataSet dsBase,SUserInfo userInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- //首先添加总结算信息
- StringBuilder sbSql = new StringBuilder();
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_SalarySettlement_ID.nextval from dual");
- int id = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_SalarySettlement");
- sbSql.Append(" (SalarySettlementID,AccountMonth,AccountDateFrom,AccountDateTo,SettlementAmount,AdjustmentAmount,");
- sbSql.Append(" TotalAmount,Remarks,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:SalarySettlementID,:AccountMonth,:AccountDateFrom,:AccountDateTo,:SettlementAmount,:AdjustmentAmount,");
- sbSql.Append(" :TotalAmount,:Remarks,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] Paras = new OracleParameter[] {
- new OracleParameter(":SalarySettlementID",OracleDbType.Int32,
- id,ParameterDirection.Input),
- new OracleParameter(":AccountMonth",OracleDbType.Date,
- salaryEntity.AccountMonth,ParameterDirection.Input),
- new OracleParameter(":AccountDateFrom",OracleDbType.Date,
- salaryEntity.SalaryDateS,ParameterDirection.Input),
- new OracleParameter(":AccountDateTo",OracleDbType.Date,
- salaryEntity.SalaryDateE,ParameterDirection.Input),
- new OracleParameter(":SettlementAmount",OracleDbType.Decimal,
- salaryEntity.SettlementAmount,ParameterDirection.Input),
- new OracleParameter(":AdjustmentAmount",OracleDbType.Decimal,
- salaryEntity.AdjustmentAmount,ParameterDirection.Input),
- new OracleParameter(":TotalAmount",OracleDbType.Decimal,
- salaryEntity.TotalAmount,ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.NVarchar2,
- salaryEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), Paras);
- //然后循环添加各个结算员工工资的总信息
- foreach(DataRow drStaffSalaryFor in dsStaffSalary.Tables[0].Rows)
- {
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_SSStaffSalaryID.nextval from dual");
- int ssid = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_StaffSalary");
- sbSql.Append(" (StaffSalaryID,SalarySettlementID,StaffID,AccountMonth,AccountDateFrom,AccountDateTo,");
- sbSql.Append(" BasicSalary,ManagerSalary,WagesSalary,ScrapFine,DefectFine,ProgressSalary,");
- sbSql.Append(" AdminSalary,SettlementAmount,AdjustmentAmount,TotalAmount,AuditStatus,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:StaffSalaryID,:SalarySettlementID,:StaffID,:AccountMonth,:AccountDateFrom,:AccountDateTo,");
- sbSql.Append(" :BasicSalary,:ManagerSalary,:WagesSalary,:ScrapFine,:DefectFine,:ProgressSalary,");
- sbSql.Append(" :AdminSalary,:SettlementAmount,:AdjustmentAmount,:TotalAmount,:AuditStatus,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] SSParas = new OracleParameter[] {
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":SalarySettlementID",OracleDbType.Int32,
- id,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drStaffSalaryFor["StaffID"],ParameterDirection.Input),
- new OracleParameter(":AccountMonth",OracleDbType.Date,
- drStaffSalaryFor["AccountMonth"],ParameterDirection.Input),
- new OracleParameter(":AccountDateFrom",OracleDbType.Date,
- drStaffSalaryFor["AccountDateFrom"],ParameterDirection.Input),
- new OracleParameter(":AccountDateTo",OracleDbType.Date,
- drStaffSalaryFor["AccountDateTo"],ParameterDirection.Input),
- new OracleParameter(":BasicSalary",OracleDbType.Decimal,
- drStaffSalaryFor["BasicSalary"],ParameterDirection.Input),
- new OracleParameter(":ManagerSalary",OracleDbType.Decimal,
- drStaffSalaryFor["ManagerSalary"],ParameterDirection.Input),
- new OracleParameter(":WagesSalary",OracleDbType.Decimal,
- drStaffSalaryFor["WagesSalary"],ParameterDirection.Input),
- new OracleParameter(":ScrapFine",OracleDbType.Decimal,
- drStaffSalaryFor["ScrapFine"],ParameterDirection.Input),
- new OracleParameter(":DefectFine",OracleDbType.Decimal,
- drStaffSalaryFor["DefectFine"],ParameterDirection.Input),
- new OracleParameter(":ProgressSalary",OracleDbType.Decimal,
- drStaffSalaryFor["ProgressSalary"],ParameterDirection.Input),
- new OracleParameter(":AdminSalary",OracleDbType.Decimal,
- drStaffSalaryFor["AdminSalary"],ParameterDirection.Input),
- new OracleParameter(":SettlementAmount",OracleDbType.Decimal,
- drStaffSalaryFor["SettlementAmount"],ParameterDirection.Input),
- new OracleParameter(":AdjustmentAmount",OracleDbType.Decimal,
- drStaffSalaryFor["AdjustmentAmount"],ParameterDirection.Input),
- new OracleParameter(":TotalAmount",OracleDbType.Decimal,
- drStaffSalaryFor["TotalAmount"],ParameterDirection.Input),
- new OracleParameter(":AuditStatus",OracleDbType.Int32,
- drStaffSalaryFor["AuditStatus"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SSParas);
- //插入总信息成功后,根据员工ID筛选该员工的各明细信息
- //基本工资
- DataTable dtBasicSalary = dsStaffSalary.Tables[1];
- dtBasicSalary.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"];
- DataTable dtBasicSalaryNow = dtBasicSalary.DefaultView.ToTable();
- foreach(DataRow drNow in dtBasicSalaryNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_BSBasicSalaryID.nextval from dual");
- int bsid = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_BasicSalary");
- sbSql.Append(" (BasicSalaryID,StaffSalaryID,StaffID,JobsID,SalaryType,BeginDate,EndDate,BasicSalary,Subsidy,");
- sbSql.Append(" CheckedDays,AttendanceDays,AbsenceDays,FineAmount,TotalAmount,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:BasicSalaryID,:StaffSalaryID,:StaffID,:JobsID,:SalaryType,:BeginDate,:EndDate,:BasicSalary,:Subsidy,");
- sbSql.Append(" :CheckedDays,:AttendanceDays,:AbsenceDays,:FineAmount,:TotalAmount,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] BSParas = new OracleParameter[] {
- new OracleParameter(":BasicSalaryID",OracleDbType.Int32,
- bsid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,
- drNow["JobsID"],ParameterDirection.Input),
- new OracleParameter(":SalaryType",OracleDbType.Int32,
- Convert.ToInt32(drNow["SalaryType"])-1,ParameterDirection.Input),
- new OracleParameter(":BeginDate",OracleDbType.Date,
- drNow["BeginDate"],ParameterDirection.Input),
- new OracleParameter(":EndDate",OracleDbType.Date,
- drNow["EndDate"],ParameterDirection.Input),
- new OracleParameter(":BasicSalary",OracleDbType.Decimal,
- drNow["BasicSalary"],ParameterDirection.Input),
- new OracleParameter(":Subsidy",OracleDbType.Decimal,
- drNow["Subsidy"],ParameterDirection.Input),
- new OracleParameter(":CheckedDays",OracleDbType.Decimal,
- drNow["CheckedDays"],ParameterDirection.Input),
- new OracleParameter(":AttendanceDays",OracleDbType.Decimal,
- drNow["AttendanceDays"],ParameterDirection.Input),
- new OracleParameter(":AbsenceDays",OracleDbType.Decimal,
- drNow["AbsenceDays"],ParameterDirection.Input),
- new OracleParameter(":FineAmount",OracleDbType.Decimal,
- drNow["FineAmount"],ParameterDirection.Input),
- new OracleParameter(":TotalAmount",OracleDbType.Decimal,
- drNow["TotalAmount"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), BSParas);
- }
- //计件工资
- DataTable dtWages = dsStaffSalary.Tables[2];
- dtWages.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"];
- DataTable dtWagesNow = dtWages.DefaultView.ToTable();
- foreach (DataRow drNow in dtWagesNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_Wages_WagesID.nextval from dual");
- int wid = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_Wages");
- sbSql.Append(" (WagesID,StaffSalaryID,StaffID,WagesJobs,PriceType,SalaryType,AccountDateFrom,AccountDateTo,BarCode,KilnID,");
- sbSql.Append(@" KilnCarID,IntoKilnTime,OutKilnTime,GoodsId,GoodsLevelTypeID,
- Wages,Salary,Remarks,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:WagesID,:StaffSalaryID,:StaffID,:WagesJobs,:PriceType,:SalaryType,:AccountDateFrom,:AccountDateTo,:BarCode,:KilnID,");
- sbSql.Append(@" :KilnCarID,:IntoKilnTime,:OutKilnTime,:GoodsId,:GoodsLevelTypeID,
- :Wages,:Salary,:Remarks,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] WParas = new OracleParameter[] {
- new OracleParameter(":WagesID",OracleDbType.Int32,
- wid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":WagesJobs",OracleDbType.Int32,
- drNow["WagesJobs"],ParameterDirection.Input),
- new OracleParameter(":PriceType",OracleDbType.Int32,
- drNow["PriceType"],ParameterDirection.Input),
- new OracleParameter(":SalaryType",OracleDbType.Int32,
- drNow["SalaryType"],ParameterDirection.Input),
- new OracleParameter(":AccountDateFrom",OracleDbType.Date,
- drNow["AccountDateFrom"],ParameterDirection.Input),
- new OracleParameter(":AccountDateTo",OracleDbType.Date,
- drNow["AccountDateTo"],ParameterDirection.Input),
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,
- drNow["BarCode"],ParameterDirection.Input),
- new OracleParameter(":KilnID",OracleDbType.Int32,
- drNow["KilnID"],ParameterDirection.Input),
- new OracleParameter(":KilnCarID",OracleDbType.Int32,
- drNow["KilnCarID"],ParameterDirection.Input),
- new OracleParameter(":IntoKilnTime",OracleDbType.Date,
- drNow["IntoKilnTime"],ParameterDirection.Input),
- new OracleParameter(":OutKilnTime",OracleDbType.Date,
- drNow["OutKilnTime"],ParameterDirection.Input),
- new OracleParameter(":GoodsId",OracleDbType.Int32,
- drNow["GoodsId"],ParameterDirection.Input),
- new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,
- drNow["GoodsLevelTypeID"],ParameterDirection.Input),
- new OracleParameter(":Wages",OracleDbType.Decimal,
- drNow["Wages"],ParameterDirection.Input),
- new OracleParameter(":Salary",OracleDbType.Decimal,
- drNow["Salary"],ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.NVarchar2,
- drNow["Remarks"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), WParas);
- }
- //缺陷扣罚
- DataTable dtDefectFine = dsStaffSalary.Tables[3];
- dtDefectFine.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"];
- DataTable dtDefectFineNow = dtDefectFine.DefaultView.ToTable();
- foreach (DataRow drNow in dtDefectFineNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_DefectFine_DefectID.nextval from dual");
- int dfid = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_DefectFine");
- sbSql.Append(" (DefectFineID,StaffSalaryID,StaffID,StaffStatus,JobsID,SalaryType,BeginDate,EndDate,BarCode,");
- sbSql.Append(" DefectFine,FineType,FineAmount,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:DefectFineID,:StaffSalaryID,:StaffID,:StaffStatus,:JobsID,:SalaryType,:BeginDate,:EndDate,:BarCode,");
- sbSql.Append(" :DefectFine,:FineType,:FineAmount,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] WParas = new OracleParameter[] {
- new OracleParameter(":DefectFineID",OracleDbType.Int32,
- dfid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":StaffStatus",OracleDbType.Int32,
- drNow["StaffStatus"],ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,
- drNow["JobsID"],ParameterDirection.Input),
- new OracleParameter(":SalaryType",OracleDbType.Int32,
- drNow["SalaryType"],ParameterDirection.Input),
- new OracleParameter(":BeginDate",OracleDbType.Date,
- drNow["BeginDate"],ParameterDirection.Input),
- new OracleParameter(":EndDate",OracleDbType.Date,
- drNow["EndDate"],ParameterDirection.Input),
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,
- drNow["BarCode"],ParameterDirection.Input),
- new OracleParameter(":DefectFine",OracleDbType.Decimal,
- drNow["DefectFine"],ParameterDirection.Input),
- new OracleParameter(":FineType",OracleDbType.Int32,
- drNow["FineType"],ParameterDirection.Input),
- new OracleParameter(":FineAmount",OracleDbType.Decimal,
- drNow["FineAmount"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), WParas);
- }
- //损坯扣罚
- DataTable dtScrap = dsStaffSalary.Tables[4];
- dtScrap.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"];
- DataTable dtScrapNow = dtScrap.DefaultView.ToTable();
- foreach (DataRow drNow in dtScrapNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_ScrapFine_ScrapID.nextval from dual");
- int Sid = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_ScrapFine");
- sbSql.Append(" (ScrapFineID,StaffSalaryID,StaffID,StaffStatus,JobsID,BeginDate,EndDate,BarCode,");
- sbSql.Append(" GoodsID,ScrapTime,ScrapFine,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:ScrapFineID,:StaffSalaryID,:StaffID,:StaffStatus,:JobsID,:BeginDate,:EndDate,:BarCode,");
- sbSql.Append(" :GoodsID,:ScrapTime,:ScrapFine,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] SParas = new OracleParameter[] {
- new OracleParameter(":ScrapFineID",OracleDbType.Int32,
- Sid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":StaffStatus",OracleDbType.Int32,
- drNow["StaffStatus"],ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,
- drNow["JobsID"],ParameterDirection.Input),
- new OracleParameter(":BeginDate",OracleDbType.Date,
- drNow["BeginDate"],ParameterDirection.Input),
- new OracleParameter(":EndDate",OracleDbType.Date,
- drNow["EndDate"],ParameterDirection.Input),
- new OracleParameter(":BarCode",OracleDbType.NVarchar2,
- drNow["BarCode"],ParameterDirection.Input),
- new OracleParameter(":GoodsID",OracleDbType.Int32,
- drNow["GoodsID"],ParameterDirection.Input),
- new OracleParameter(":ScrapTime",OracleDbType.Date,
- drNow["ScrapTime"],ParameterDirection.Input),
- new OracleParameter(":ScrapFine",OracleDbType.Decimal,
- drNow["ScrapFine"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SParas);
- }
- //行政奖惩
- DataTable dtAdmin = dsStaffSalary.Tables[5];
- dtAdmin.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"];
- DataTable dtAdminNow = dtAdmin.DefaultView.ToTable();
- foreach(DataRow drNow in dtAdminNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_Admin_ProgressID.nextval from dual");
- int Aid = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_Admin");
- sbSql.Append(" (AdminID,StaffSalaryID,StaffID,JobsID,SalaryType,BeginDate,EndDate,TATAdminID,");
- sbSql.Append(" AdministrationType,BaseAmount,IsEnd,RAPAmount,TotalAmount,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:AdminID,:StaffSalaryID,:StaffID,:JobsID,:SalaryType,:BeginDate,:EndDate,:TATAdminID,");
- sbSql.Append(" :AdministrationType,:BaseAmount,:IsEnd,:RAPAmount,:TotalAmount,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] AParas = new OracleParameter[] {
- new OracleParameter(":AdminID",OracleDbType.Int32,
- Aid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,
- drNow["JobsID"],ParameterDirection.Input),
- new OracleParameter(":SalaryType",OracleDbType.Int32,
- drNow["SalaryType"],ParameterDirection.Input),
- new OracleParameter(":BeginDate",OracleDbType.Date,
- drNow["BeginDate"],ParameterDirection.Input),
- new OracleParameter(":EndDate",OracleDbType.Date,
- drNow["EndDate"],ParameterDirection.Input),
- new OracleParameter(":TATAdminID",OracleDbType.Int32,
- drNow["TATAdminID"],ParameterDirection.Input),
- new OracleParameter(":AdministrationType",OracleDbType.Int32,
- drNow["AdministrationType"],ParameterDirection.Input),
- new OracleParameter(":BaseAmount",OracleDbType.Decimal,
- drNow["BaseAmount"],ParameterDirection.Input),
- new OracleParameter(":IsEnd",OracleDbType.Int32,
- drNow["IsEnd"],ParameterDirection.Input),
- new OracleParameter(":RAPAmount",OracleDbType.Decimal,
- drNow["RAPAmount"],ParameterDirection.Input),
- new OracleParameter(":TotalAmount",OracleDbType.Decimal,
- drNow["TotalAmount"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), AParas);
- //然后根据员工ID以及策略ID,获取该条行政奖惩的明细信息
- DataTable dtAdminDetail = dsStaffSalary.Tables[6];
- dtAdminDetail.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"] + " And AdminID=" + drNow["TATAdminID"] + " And AccountID=" + drNow["SalaryType"] + " And StaffSalaryID=" + drNow["JobsId"];
- DataTable dtAdminDetailNow = dtAdminDetail.DefaultView.ToTable();
- foreach(DataRow drDetailNow in dtAdminDetailNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_AdminDetail");
- sbSql.Append(" (AdminRAPID,AdminID,StaffSalaryID,StaffID,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:AdminRAPID,:AdminID,:StaffSalaryID,:StaffID,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] ADParas = new OracleParameter[] {
- new OracleParameter(":AdminRAPID",OracleDbType.Int32,
- drDetailNow["AdminRAPID"],ParameterDirection.Input),
- new OracleParameter(":AdminID",OracleDbType.Int32,
- Aid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drDetailNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), ADParas);
- }
- }
- //进度奖惩
- DataTable dtProgress = dsStaffSalary.Tables[7];
- dtProgress.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"];
- DataTable dtProgressNow = dtProgress.DefaultView.ToTable();
- foreach (DataRow drNow in dtProgressNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_Progress_ProgressID.nextval from dual");
- int Pid = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_Progress");
- sbSql.Append(" (ProgressID,StaffSalaryID,StaffID,JobsID,SalaryType,BeginDate,EndDate,TATProgressID,");
- sbSql.Append(" BaseAmount,IsEnd,RAPAmount,TotalAmount,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:ProgressID,:StaffSalaryID,:StaffID,:JobsID,:SalaryType,:BeginDate,:EndDate,:TATProgressID,");
- sbSql.Append(" :BaseAmount,:IsEnd,:RAPAmount,:TotalAmount,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] PParas = new OracleParameter[] {
- new OracleParameter(":ProgressID",OracleDbType.Int32,
- Pid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":JobsID",OracleDbType.Int32,
- drNow["JobsID"],ParameterDirection.Input),
- new OracleParameter(":SalaryType",OracleDbType.Int32,
- drNow["SalaryType"],ParameterDirection.Input),
- new OracleParameter(":BeginDate",OracleDbType.Date,
- drNow["BeginDate"],ParameterDirection.Input),
- new OracleParameter(":EndDate",OracleDbType.Date,
- drNow["EndDate"],ParameterDirection.Input),
- new OracleParameter(":TATProgressID",OracleDbType.Int32,
- drNow["TATProgressID"],ParameterDirection.Input),
- new OracleParameter(":BaseAmount",OracleDbType.Decimal,
- drNow["BaseAmount"],ParameterDirection.Input),
- new OracleParameter(":IsEnd",OracleDbType.Int32,
- drNow["IsEnd"],ParameterDirection.Input),
- new OracleParameter(":RAPAmount",OracleDbType.Decimal,
- drNow["RAPAmount"],ParameterDirection.Input),
- new OracleParameter(":TotalAmount",OracleDbType.Decimal,
- drNow["TotalAmount"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), PParas);
- //然后根据员工ID以及策略ID,获取该条行政奖惩的明细信息(前台把区分用的工种ID存在主信息ID中了)
- DataTable dtProgressDetail = dsStaffSalary.Tables[8];
- dtProgressDetail.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"] + " And ProgressID=" + drNow["JobsID"] + " And AccountID=" + drNow["SalaryType"];
- DataTable dtProgressDetailNow = dtProgressDetail.DefaultView.ToTable();
- foreach (DataRow drDetailNow in dtProgressDetailNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_ProgressDetail");
- sbSql.Append(" (ProgressRAPID,ProgressID,StaffSalaryID,StaffID,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:ProgressRAPID,:ProgressID,:StaffSalaryID,:StaffID,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] PDParas = new OracleParameter[] {
- new OracleParameter(":ProgressRAPID",OracleDbType.Int32,
- drDetailNow["ProgressRAPID"],ParameterDirection.Input),
- new OracleParameter(":ProgressID",OracleDbType.Int32,
- Pid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drDetailNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), PDParas);
- }
- }
- //管理岗位工资
- DataTable dtManagerSalary = dsStaffSalary.Tables[9];
- dtManagerSalary.DefaultView.RowFilter = " StaffId=" + drStaffSalaryFor["StaffID"];
- DataTable dtManagerSalaryNow = dtManagerSalary.DefaultView.ToTable();
- foreach (DataRow drNow in dtManagerSalaryNow.Rows)
- {
- sbSql.Clear();
- sbSql.Append("select SEQ_SSM_M_ManagerSalaryID.nextval from dual");
- int Mid = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
- sbSql.Clear();
- sbSql.Append("Insert into TP_SSM_ManagerSalary");
- sbSql.Append(" (ManagerSalaryID,StaffSalaryID,StaffID,Member,Salary,AccountID,CreateUserID,UpdateUserID)");
- sbSql.Append(" values (:ManagerSalaryID,:StaffSalaryID,:StaffID,:Member,:Salary,:AccountID,:CreateUserID,:UpdateUserID)");
- OracleParameter[] MParas = new OracleParameter[] {
- new OracleParameter(":ManagerSalaryID",OracleDbType.Int32,
- Mid,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- ssid,ParameterDirection.Input),
- new OracleParameter(":StaffID",OracleDbType.Int32,
- drNow["StaffID"],ParameterDirection.Input),
- new OracleParameter(":Member",OracleDbType.Int32,
- drNow["Member"],ParameterDirection.Input),
- new OracleParameter(":Salary",OracleDbType.Decimal,
- drNow["Salary"],ParameterDirection.Input),
- new OracleParameter(":AccountID",OracleDbType.Int32,
- userInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":CreateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":UpdateUserID",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), MParas);
- }
- }
- //结算完毕后要把所有相关的常规数据修改为已结算
- //sbSql.Clear();
- //sbSql.Append("Update TP_PM_ProductionData set SettlementFlag = 1 where ProductionDataID = :ProductionDataID");
- //foreach(DataRow drFor in dsProductionData.Tables[0].Rows)
- //{
- // OracleParameter[] PDParas = new OracleParameter[] {
- // new OracleParameter(":ProductionDataID",OracleDbType.Int32,
- // drFor["ProductionDataID"],ParameterDirection.Input)
- // };
- // returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), PDParas);
- //}
- //sbSql.Clear();
- //sbSql.Append("Update TP_HR_StaffAttendance set SettlementFlag = 1 where StaffID = :StaffID and AttendanceDate=:AttendanceDate");
- //foreach(DataRow drFor in dsStaffAttendance.Tables[0].Rows)
- //{
- // OracleParameter[] HRParas = new OracleParameter[] {
- // new OracleParameter(":StaffID",OracleDbType.Int32,
- // drFor["StaffID"],ParameterDirection.Input),
- // new OracleParameter(":AttendanceDate",OracleDbType.Date,
- // drFor["AttendanceDate"],ParameterDirection.Input)
- // };
- // returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), HRParas);
- //}
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- }
- catch(Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- finally
- {
- if (oracleTrConn.ConnState == ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 调整工资结算信息
- /// </summary>
- /// <param name="salaryEntity">调整工资总体信息</param>
- /// <param name="dtStaffSalary">各员工工资信息集合</param>
- /// <returns>影响行数</returns>
- public static int EditSalarySettlement(GetSalaryEntity salaryEntity, DataTable dtStaffSalary)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- //首先修改工资结算整体信息
- StringBuilder sbSql = new StringBuilder();
- sbSql.Append(@"Update TP_SSM_SalarySettlement Set Remarks = :Remarks,AdjustmentAmount = :AdjustmentAmount,TotalAmount = :TotalAmount
- Where SalarySettlementID = :SalarySettlementID");
- OracleParameter[] SParas = new OracleParameter[] {
- new OracleParameter(":Remarks",OracleDbType.NVarchar2,
- salaryEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":AdjustmentAmount",OracleDbType.Decimal,
- salaryEntity.AdjustmentAmount,ParameterDirection.Input),
- new OracleParameter(":TotalAmount",OracleDbType.Decimal,
- salaryEntity.TotalAmount,ParameterDirection.Input),
- new OracleParameter(":SalarySettlementID",OracleDbType.Int32,
- salaryEntity.SalarySettlementID,ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SParas);
- //然后遍历修改每一条调整信息
- sbSql.Clear();
- sbSql.Append(@"Update TP_SSM_StaffSalary Set AdjustmentAmount = :AdjustmentAmount,
- TotalAmount = :TotalAmount,Remarks = :Remarks
- Where StaffSalaryID = :StaffSalaryID");
- foreach(DataRow drFor in dtStaffSalary.Rows)
- {
- if(drFor.RowState == DataRowState.Modified)
- {
- OracleParameter[] SSParas = new OracleParameter[] {
- new OracleParameter(":AdjustmentAmount",OracleDbType.Decimal,
- drFor["AdjustmentAmount"],ParameterDirection.Input),
- new OracleParameter(":TotalAmount",OracleDbType.Decimal,
- drFor["TotalAmount"],ParameterDirection.Input),
- new OracleParameter(":Remarks",OracleDbType.NVarchar2,
- drFor["Remarks"],ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- drFor["StaffSalaryID"],ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SSParas);
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return returnRows;
- }
- catch(Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- }
- /// <summary>
- /// 审批工资结算信息
- /// </summary>
- /// <param name="dtStaffSalary">各员工工资信息集合</param>
- /// <returns>影响行数</returns>
- public static int AuditSalarySettlement(DataTable dtStaffSalary,SUserInfo userInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- StringBuilder sbSql = new StringBuilder();
- //遍历修改每一条调整信息
- sbSql.Append(@"Update TP_SSM_StaffSalary Set AuditStatus = :AuditStatus,
- Auditor = :Auditor,AuditlDate = :AuditlDate
- Where StaffSalaryID = :StaffSalaryID");
- foreach (DataRow drFor in dtStaffSalary.Rows)
- {
- if (drFor.RowState == DataRowState.Modified)
- {
- OracleParameter[] SSParas = new OracleParameter[] {
- new OracleParameter(":AuditStatus",OracleDbType.Int32,
- drFor["AuditStatus"],ParameterDirection.Input),
- new OracleParameter(":Auditor",OracleDbType.Int32,
- userInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":AuditlDate",OracleDbType.Date,
- DateTime.Now,ParameterDirection.Input),
- new OracleParameter(":StaffSalaryID",OracleDbType.Int32,
- drFor["StaffSalaryID"],ParameterDirection.Input)
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SSParas);
- }
- }
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return returnRows;
- }
- catch (Exception ex)
- {
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- }
- throw ex;
- }
- }
- #endregion
- }
- }
|