a914a1ca5ba50687bfd4224351404bc4b91092de.svn-base 298 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621
  1. package QCM.QCM03.QCM0305;
  2. import CoreFS.SA01.CoreIComponent;
  3. import CoreFS.SA06.CoreReturnObject;
  4. import QCM.COMMUNAL.QCM02.SqlJoint;
  5. import QCM.COMMUNAL.VO.*;
  6. import QCM.QCM03.QCM0301.QcmJhyElementsServiceImpl;
  7. import QCM.QCM03.QCM0302.QcmJudgePhysicalServiceImpl;
  8. import QCM.QCM03.QCM0303.QcmJudgeMeasureServiceImpl;
  9. import com.alibaba.fastjson.JSON;
  10. import com.alibaba.fastjson.JSONArray;
  11. import com.alibaba.fastjson.JSONObject;
  12. import org.apache.commons.lang.StringUtils;
  13. import org.apache.http.HttpResponse;
  14. import org.apache.http.HttpStatus;
  15. import org.apache.http.client.HttpClient;
  16. import org.apache.http.client.methods.HttpPost;
  17. import org.apache.http.entity.StringEntity;
  18. import org.apache.http.impl.client.DefaultHttpClient;
  19. import org.apache.http.message.BasicHeader;
  20. import org.apache.http.protocol.HTTP;
  21. import org.apache.ibatis.session.SqlSession;
  22. import org.apache.log4j.Logger;
  23. import java.io.BufferedReader;
  24. import java.io.InputStream;
  25. import java.io.InputStreamReader;
  26. import java.sql.CallableStatement;
  27. import java.sql.Connection;
  28. import java.sql.ResultSet;
  29. import java.text.SimpleDateFormat;
  30. import java.util.ArrayList;
  31. import java.util.Date;
  32. import java.util.HashMap;
  33. import java.util.List;
  34. public class QcmJudgeSurfaceServiceImpl extends CoreIComponent{
  35. CoreReturnObject cro = new CoreReturnObject();
  36. ResultSet rs = null;
  37. SqlSession SqlSession =
  38. QCM.COMMUNAL.SqlSessionBuilder.openSqlSession();
  39. QCM.COMMUNAL.OrderSqMapper mapper = SqlSession.getMapper(QCM.COMMUNAL.OrderSqMapper.class);
  40. Logger logger = Logger.getLogger(this.getClass().getName());
  41. //QcmJudgePhysicalServiceImpl qjp = new QcmJudgePhysicalServiceImpl();
  42. public String StrSky(String begintime,String endtime){
  43. String sql = "select (to_date('"+endtime+"','yyyy-MM-dd') - to_date('"+begintime+"','yyyy-MM-dd')) SKY from dual";
  44. HashMap list = mapper.queryOne(sql);
  45. Double ble = Double.parseDouble(list.get("SKY").toString());
  46. String tstr="FALSE";
  47. if(ble>=0 && ble <=30 ){
  48. tstr="TRUE";
  49. }
  50. return tstr;
  51. }
  52. /**
  53. * 质量判定-根据检验记录号获得缺陷信息
  54. * sum.material_no 产品序号
  55. * */
  56. /**
  57. * @param surface_id
  58. * @return
  59. */
  60. @SuppressWarnings("rawtypes")
  61. public CoreReturnObject findNameByMN(String surface_id){
  62. String sql = "";
  63. try {
  64. sql = "select case when IS_REPAIR = '0' or IS_REPAIR = '待修复' then '待修复' when IS_REPAIR = '2' or IS_REPAIR = '未冷矫' then '未冷矫' when IS_REPAIR = '3' or IS_REPAIR = '已冷矫' then '已冷矫' else '已修复' end IS_REPAIR, "
  65. + " case when PRIMARY_FLAG = '0' then '否' when PRIMARY_FLAG = '1' then '是' else '' end PRIMARY_FLAG, "
  66. + " t.SURFACE_ID,t.FLAW_SEQ,t.FLAW_DESC,FLAW_TYPE_DESC, "
  67. + " case when FLAW_AREA = 'U' THEN '上表面' when FLAW_AREA = 'D' THEN '下表面' WHEN FLAW_AREA = 'U' THEN '边部' ELSE '' end FLAW_AREA, "
  68. + " t.FLAW_POS_DESC,t.FLAW_DIR_DESC,t.FLAW_SIZE_DESC,FLAW_LV_DESC,FLAW_QUANTITY,memo, "
  69. + " CREATE_NAME,FIXED_NAME,to_char(t.create_time,'yyyy-mm-dd HH24:mi:ss') create_time from QCM_JUDGE_SURFACE_FLAW t where t.SURFACE_ID = '"+surface_id+"'";
  70. List<HashMap> list = mapper.query(sql);
  71. cro.setResult(list);
  72. } catch (Exception e) {
  73. cro.setV_errCode(-1);
  74. cro.setV_errMsg("查询失败!"+e.getMessage());
  75. logger.info(e.getMessage());
  76. }
  77. SqlSession.close();
  78. return cro;
  79. }
  80. //优特详细信息 优特综合判定界面
  81. @SuppressWarnings("rawtypes")
  82. public CoreReturnObject findNameByXX(String surface_id){
  83. String sql = "";
  84. try {
  85. sql = "select t.COILNO,res.PK_RLT_DESC,t.THICK,t.WIDTH,t.DIAMETER_INN,nvl(soi.IS_SIDE_CUTE,'0') IS_SIDE_CUTE,sur.LEVEL_DESC,t.FACTWEIGHT/1000 FACTWEIGHT "
  86. +" from YDM_PRODUCT_DETAIL@LINK_YTG t "
  87. +" left join MES_PACK_RESULT@LINK_YTG res on t.COILNO = res.COIL_NO "
  88. +" left join QCM_JUDGE_SURFACE@LINK_YTG sur on t.COILNO = sur.MATERIAL_NO "
  89. +" left join SLM_ORDER_INFO@LINK_YTG soi on soi.CONTRACT_NO || soi.CONTRACT_LINE_SEQ || soi.ORDER_SEQ =t.ORDERNO "
  90. +" where t.COILNO = '"+surface_id+"' ";
  91. List<HashMap> list = mapper.query(sql);
  92. cro.setResult(list);
  93. } catch (Exception e) {
  94. cro.setV_errCode(-1);
  95. cro.setV_errMsg("查询失败!"+e.getMessage());
  96. logger.info(e.getMessage());
  97. }
  98. SqlSession.close();
  99. return cro;
  100. }
  101. @SuppressWarnings("rawtypes")
  102. public CoreReturnObject findNameByMN1(String surface_id){
  103. String sql = "";
  104. try {
  105. sql = "select case\r\n" +
  106. " when t.IS_REPAIR = '0' or t.IS_REPAIR = '待修复' then\r\n" +
  107. " '待修复'\r\n" +
  108. " when t.IS_REPAIR = '1' or t.IS_REPAIR = '已修复' then\r\n" +
  109. " '已修复'\r\n" +
  110. " end IS_REPAIR,\r\n" +
  111. " case\r\n" +
  112. " when t.PRIMARY_FLAG = '0' then\r\n" +
  113. " '否'\r\n" +
  114. " when t.PRIMARY_FLAG = '1' then\r\n" +
  115. " '是'\r\n" +
  116. " else\r\n" +
  117. " ''\r\n" +
  118. " end PRIMARY_FLAG,\r\n" +
  119. " t.SURFACE_ID,\r\n" +
  120. " t.FLAW_SEQ,\r\n" +
  121. " t.FLAW_DESC,\r\n" +
  122. " t1.level_desc,\r\n" +
  123. " FLAW_TYPE_DESC,\r\n" +
  124. " case\r\n" +
  125. " when FLAW_AREA = 'U' THEN\r\n" +
  126. " '上表面'\r\n" +
  127. " when FLAW_AREA = 'D' THEN\r\n" +
  128. " '下表面'\r\n" +
  129. " WHEN FLAW_AREA = 'U' THEN\r\n" +
  130. " '边部'\r\n" +
  131. " ELSE\r\n" +
  132. " ''\r\n" +
  133. " end FLAW_AREA,\r\n" +
  134. " t.FLAW_POS_DESC,\r\n" +
  135. " t.FLAW_DIR_DESC,\r\n" +
  136. " t.FLAW_SIZE_DESC,\r\n" +
  137. " FLAW_LV_DESC,\r\n" +
  138. " FLAW_QUANTITY,\r\n" +
  139. " memo,\r\n" +
  140. " CREATE_NAME,\r\n" +
  141. " FIXED_NAME,\r\n" +
  142. " to_char(t.create_time, 'yyyy-mm-dd HH24:mi:ss') create_time\r\n" +
  143. " from qcm_judge_surface t1,QCM_JUDGE_SURFACE_FLAW t\r\n" +
  144. " where t1.surface_id = t.surface_id(+)\r\n" +
  145. " and t1.SURFACE_ID = '"+surface_id+"'";
  146. List<HashMap> list = mapper.query(sql);
  147. cro.setResult(list);
  148. } catch (Exception e) {
  149. cro.setV_errCode(-1);
  150. cro.setV_errMsg("查询失败!"+e.getMessage());
  151. logger.info(e.getMessage());
  152. }
  153. SqlSession.close();
  154. return cro;
  155. }
  156. /**
  157. * 质量判定-根据检验记录号获得缺陷信息
  158. * sum.material_no 产品序号
  159. * */
  160. @SuppressWarnings("rawtypes")
  161. public CoreReturnObject findNameByMN2(String surface_id){
  162. String sql = " ";
  163. try {
  164. sql = "select case when IS_REPAIR = '0' or IS_REPAIR = '待修复' then '待修复' when IS_REPAIR = '2' or IS_REPAIR = '未冷矫' then '未冷矫' when IS_REPAIR = '3' or IS_REPAIR = '已冷矫' then '已冷矫' else '已修复' end IS_REPAIR, "
  165. + " case when PRIMARY_FLAG = '0' then '否' when PRIMARY_FLAG = '1' then '是' else '' end PRIMARY_FLAG, "
  166. + " t.SURFACE_ID,t.FLAW_SEQ,t.FLAW_DESC,FLAW_TYPE_DESC, "
  167. + " case when FLAW_AREA = 'U' THEN '上表面' when FLAW_AREA = 'D' THEN '下表面' WHEN FLAW_AREA = 'U' THEN '边部' ELSE '' end FLAW_AREA, "
  168. + " t.FLAW_POS_DESC,t.FLAW_DIR_DESC,t.FLAW_SIZE_DESC,FLAW_LV_DESC,FLAW_QUANTITY,memo, "
  169. + " CREATE_NAME,to_char(CREATE_TIME,'yyyy-mm-dd hh24:mi:ss') CREATE_TIME from QCM_JUDGE_SURFACE_FLAW t where t.SURFACE_ID in (" + surface_id +") order by CREATE_TIME desc" ;
  170. List<HashMap> list = mapper.query(sql);
  171. cro.setResult(list);
  172. } catch (Exception e) {
  173. cro.setV_errCode(-1);
  174. cro.setV_errMsg("查询失败!"+e.getMessage());
  175. logger.info(e.getMessage());
  176. }
  177. SqlSession.close();
  178. return cro;
  179. }
  180. /**
  181. * 质量判定-根据检验记录号获得缺陷信息
  182. * sum.material_no 产品序号
  183. * */
  184. @SuppressWarnings("rawtypes")
  185. public CoreReturnObject findNameByMNLg(String surface_id){
  186. String sql = "";
  187. try {
  188. sql = "select case when IS_REPAIR = '0' or IS_REPAIR = '待修复' then '待修复' else '已修复' end IS_REPAIR, "
  189. + " case when PRIMARY_FLAG = '0' then '否' else '是' end PRIMARY_FLAG, "
  190. + " t.SURFACE_ID,t.FLAW_SEQ,t.FLAW_DESC,FLAW_TYPE_DESC, "
  191. + " case when FLAW_AREA = 'U' THEN '上表面' when FLAW_AREA = 'D' THEN '下表面' else '边部' end FLAW_AREA, "
  192. + " t.FLAW_POS_DESC,t.FLAW_DIR_DESC,t.FLAW_SIZE_DESC,FLAW_LV_DESC,FLAW_QUANTITY,memo, "
  193. + " CREATE_NAME,FIXED_TYPE_DESC,FIXED_THICK from QCM_JUDGE_SURFACE_FLAW t where t.SURFACE_ID = '"+surface_id+"'";
  194. List<HashMap> list = mapper.query(sql);
  195. cro.setResult(list);
  196. } catch (Exception e) {
  197. cro.setV_errCode(-1);
  198. cro.setV_errMsg("查询失败!"+e.getMessage());
  199. logger.info(e.getMessage());
  200. }
  201. SqlSession.close();
  202. return cro;
  203. }
  204. @SuppressWarnings({ "unused", "unchecked" })
  205. public CoreReturnObject getLgRejudgeInfobyMaterial_no(String begintime,String endtime,String heatno,String prodline,String prod_type,String judge_type){
  206. try{
  207. QcmJhyElementsServiceImpl qjes = new QcmJhyElementsServiceImpl();
  208. JSONObject jsobj2 = new JSONObject();
  209. JSONArray ttmaps = new JSONArray();
  210. JSONObject jsobj1 = new JSONObject();
  211. jsobj1.put("START_TIME", begintime);
  212. jsobj1.put("END_TIME",endtime);
  213. jsobj1.put("HEAT_NO",heatno==null?"":heatno);
  214. jsobj1.put("PROD_LINE",prodline);
  215. jsobj1.put("PROD_TYPE",prod_type);
  216. jsobj1.put("JUDGE_TYPE",judge_type);
  217. jsobj1.put("ISJUDGE","0");
  218. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  219. String result = qjes.callWebserviceASMX(url,"StorageForJudge",JSON.toJSONString(jsobj1));
  220. if(result.contains("DATA")){
  221. JSONObject jo = JSONObject.parseObject(result);
  222. JSONArray ja = jo.getJSONArray("DATA");
  223. List<HashMap> listqjb = new ArrayList<HashMap>();
  224. for(int i = 0;i<ja.size();i++){
  225. HashMap lists = new HashMap();
  226. lists.put("HEAT_NO", ja.getJSONObject(i).getString("HEATNO"));
  227. lists.put("MATERIAL_NO", ja.getJSONObject(i).getString("BILLETNO"));
  228. lists.put("GRADE_NAME", ja.getJSONObject(i).getString("STEELCODE"));
  229. lists.put("PROD_NAME", ja.getJSONObject(i).getString("PRODNAME"));
  230. lists.put("DELIVERY_STATE_DESC", ja.getJSONObject(i).getString("STATUS"));
  231. lists.put("WEIGHT", ja.getJSONObject(i).getString("WEIGHT"));
  232. lists.put("THICK", ja.getJSONObject(i).getString("THICK"));
  233. lists.put("LENGTH", ja.getJSONObject(i).getString("LENGTH"));
  234. lists.put("WIDTH", ja.getJSONObject(i).getString("WIDTH"));
  235. lists.put("PRODUCETIME", ja.getJSONObject(i).getString("CUTSTARTTIME"));
  236. lists.put("DESIGN_KEY", ja.getJSONObject(i).getString("ORDERNO"));
  237. lists.put("PLINE_CODE", ja.getJSONObject(i).getString("PROD_CODE"));
  238. lists.put("PLINE_NAME", ja.getJSONObject(i).getString("PROD_NAME"));
  239. lists.put("STD_NAME", ja.getJSONObject(i).getString("USEDSTAND"));
  240. listqjb.add(lists);
  241. }
  242. cro.setResult(listqjb);
  243. }
  244. }catch(Exception ex){
  245. cro.setV_errCode(-1);
  246. cro.setV_errMsg("获取成分待判信息错误"+ex.getMessage());
  247. SqlSession.rollback();
  248. }
  249. return cro;
  250. }
  251. /**
  252. * @desc 炼钢撤销表面判定
  253. * @param params2
  254. * @return CoreFS.SA06.CoreReturnObject
  255. *
  256. * @date 2022/8/17 15:38
  257. * @author Ljy
  258. */
  259. public CoreReturnObject cancelSurfaceJudge(ArrayList params2) {
  260. try {
  261. QcmJhyElementsServiceImpl qjes = new QcmJhyElementsServiceImpl();
  262. JSONArray ttmaps = new JSONArray();
  263. JSONObject jsobj1 = new JSONObject();
  264. jsobj1.put("CHEMRESULT_LK", "");
  265. jsobj1.put("FACERESULT","");
  266. jsobj1.put("COMPREHENSIVERESULT","");
  267. jsobj1.put("CHEMJUDGEID","");
  268. jsobj1.put("FACECHECKID","");
  269. jsobj1.put("COMPREHENSIVEID","");
  270. jsobj1.put("JUDGE_TYPE","S");
  271. jsobj1.put("PROD_LINE",params2.get(0).toString());
  272. jsobj1.put("ISJUDGE","2");
  273. jsobj1.put("PROD_TYPE",params2.get(1).toString());
  274. jsobj1.put("SLAB_NO",params2.get(2).toString());
  275. jsobj1.put("CHECKNO","");
  276. jsobj1.put("OPTMAN", params2.get(3).toString());
  277. jsobj1.put("ISFX", "0");
  278. jsobj1.put("CHEMRESULT_FX", "");
  279. ttmaps.add(jsobj1);
  280. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  281. String result = qjes.callWebserviceASMX(url,"ChemJudge",JSON.toJSONString(ttmaps));
  282. JSONObject jo = JSONObject.parseObject(result);
  283. if(jo.get("code").toString().equals("1")){
  284. throw new Exception("表面撤销判定失败!");
  285. }
  286. }catch(Exception ex) {
  287. cro.setV_errCode(-1);
  288. cro.setV_errMsg("表面撤销判定失败" + ex.getMessage());
  289. SqlSession.rollback();
  290. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.cancelSurfaceJudge:【" + params2.toString() + "】" + ex);
  291. }
  292. return cro;
  293. }
  294. /**
  295. * 质量判定-表面检验与表面:检验登记
  296. * 检验实绩信息 params2
  297. *
  298. * 产品序号
  299. * 检验结果代码
  300. * 检验结果
  301. * 质量等级代码
  302. * 质量等级
  303. * 检验备注
  304. * 用户名
  305. * 班次
  306. * 班组
  307. * 产线
  308. * 产品名称
  309. * 厚
  310. * 宽
  311. * 长
  312. *
  313. * 缺陷实绩信息 params1
  314. * 主缺陷标识
  315. * 缺陷序号
  316. * 缺陷代码
  317. * 缺陷描述
  318. * 缺陷位置代码
  319. * 缺陷位置描述
  320. * 缺陷重量
  321. * 缺陷数量
  322. * 备注
  323. * 修磨结果
  324. * 修磨厚度
  325. * */
  326. @SuppressWarnings({ "unused", "rawtypes" })
  327. public CoreReturnObject doLgAddFlaw(ArrayList<List> params1,final ArrayList params2) throws Exception {
  328. if(params2.size() == 0){
  329. throw new Exception("请传入数据!");
  330. }
  331. List<HashMap> hashmap = new ArrayList<HashMap>();
  332. try {
  333. final String material_no = params2.get(0).toString();
  334. QcmJhyElementsServiceImpl qjes = new QcmJhyElementsServiceImpl();
  335. String Inspection_lot = "";
  336. String flaw_area = "";
  337. //判断是否进行了综合判定
  338. String sid="";
  339. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  340. //获取表检类型
  341. String type = "U";
  342. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  343. String c = "";
  344. if(params2.get(9).toString().equals("4001LG0")){
  345. c="UL";
  346. }else{
  347. c="UD";
  348. }
  349. String sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like '"+c+ ymd+"%' order by surface_id desc) where rownum <= 1 ";
  350. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  351. int icount = 0;
  352. if (list != null && list.size() > 0) {
  353. String s=list.get(0).getSurface_id();
  354. icount = Integer.parseInt(s.substring(s.length()-5,s.length()));
  355. }
  356. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  357. icount++;
  358. sid=c+ymd + String.format("%05d",icount);
  359. //插入表面实绩表
  360. hashmap = (List<HashMap>) getLgRejudgeInfobyMaterial_no("", "", material_no, params2.get(9).toString(), params2.get(10).toString(), "S").getResult();
  361. if(hashmap == null || hashmap.size() == 0){
  362. throw new Exception("未找到库存信息!");
  363. }
  364. for(List qjs:params1){
  365. if(qjs.get(0).toString().equals("1")){
  366. flaw_area = qjs.get(4).toString();
  367. }
  368. }
  369. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  370. qjsf.setSurface_id(sid);
  371. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  372. qjsf.setBatch_no(hashmap.get(0).get("MATERIAL_NO") == null ?"":hashmap.get(0).get("MATERIAL_NO").toString());
  373. qjsf.setBoard_no("");
  374. qjsf.setInspection_lot(Inspection_lot);
  375. qjsf.setMaterial_no(material_no);
  376. qjsf.setSf_result_code(params2.get(1).toString());
  377. qjsf.setSf_result_desc(params2.get(2).toString());
  378. if(params2.get(1).toString().equals("1") && params2.get(9).toString().equals("4001LG0") && (hashmap.get(0).get("DESIGN_KEY")== null || hashmap.get(0).get("DESIGN_KEY").toString().equals(""))){
  379. qjsf.setSf_result_desc("订单外合格");
  380. }
  381. qjsf.setLevel_code(params2.get(3).toString());
  382. qjsf.setLevel_desc(params2.get(4).toString());
  383. qjsf.setSf_type(type);
  384. qjsf.setSf_memo(params2.get(5).toString());
  385. qjsf.setSfd_is_lock("0");
  386. qjsf.setSfe_is_lock("0");
  387. qjsf.setSfu_is_lock("0");
  388. if(!flaw_area.equals("")){
  389. if(flaw_area.equals("U")){
  390. qjsf.setSfu_is_lock("1");
  391. }else if(flaw_area.equals("D")){
  392. qjsf.setSfd_is_lock("1");
  393. }else if(flaw_area.equals("E")){
  394. qjsf.setSfe_is_lock("1");
  395. }
  396. }
  397. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY")==null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  398. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY")==null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  399. qjsf.setPsc("");
  400. qjsf.setPsc_desc("");
  401. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  402. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  403. qjsf.setWrk_ord(params2.get(7).toString());
  404. qjsf.setWrk_grp(params2.get(8).toString());
  405. qjsf.setJudge_name(params2.get(6).toString());
  406. qjsf.setSf_memo(params2.get(5).toString());
  407. qjsf.setStd_code("");
  408. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  409. qjsf.setProd_code("");
  410. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  411. qjsf.setSteel_code("");
  412. qjsf.setSteel_name(hashmap.get(0).get("GRADE_NAME")==null?"":hashmap.get(0).get("GRADE_NAME").toString());
  413. qjsf.setThick(params2.get(11).toString());
  414. qjsf.setWidth(params2.get(12).toString());
  415. qjsf.setLength(params2.get(13).toString());
  416. mapper.insertQcmJudgeSurface(qjsf);
  417. Long seq=1L;
  418. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  419. for(List qjs:params1){
  420. QcmJudgeSurfaceFlaw qjsffs = new QcmJudgeSurfaceFlaw();
  421. qjsffs.setPrimary_flag(qjs.get(0).toString());
  422. qjsffs.setIs_repair("0");
  423. qjsffs.setFlaw_seq(seq);
  424. qjsffs.setFlaw_code(qjs.get(2).toString());
  425. qjsffs.setFlaw_desc(qjs.get(3).toString());
  426. qjsffs.setFlaw_area(qjs.get(4).toString());
  427. List<HashMap> lists = finddefecttype(qjs.get(2).toString());
  428. qjsffs.setFlaw_desc(lists.get(0).get("DEFECT_DESC")==null?"":lists.get(0).get("DEFECT_DESC").toString());
  429. qjsffs.setFlaw_type_code(lists.get(0).get("DEFECT_TYPE_CODE")==null?"":lists.get(0).get("DEFECT_TYPE_CODE").toString());
  430. qjsffs.setFlaw_type_desc(lists.get(0).get("DEFECT_TYPE_DESC") == null ?"":lists.get(0).get("DEFECT_TYPE_DESC").toString());
  431. qjsffs.setFlaw_pos_code(qjs.get(5).toString());
  432. qjsffs.setFlaw_pos_desc(qjs.get(6).toString());
  433. qjsffs.setFlaw_dir_code(qjs.get(7).toString());
  434. qjsffs.setFlaw_dir_desc(qjs.get(8).toString());
  435. qjsffs.setFlaw_size_code(qjs.get(9).toString());
  436. qjsffs.setFlaw_size_desc(qjs.get(10).toString());
  437. qjsffs.setFlaw_lv_code(qjs.get(11).toString());
  438. qjsffs.setFlaw_lv_desc(qjs.get(12).toString());
  439. if(!qjs.get(13).equals("")){
  440. qjsffs.setFlaw_quantity(Long.parseLong(qjs.get(13).toString()));
  441. }
  442. qjsffs.setMemo(qjs.get(14).toString());
  443. qjsflist.add(qjsffs);
  444. //seq = Long.parseLong(qjs.get(1).toString());
  445. seq++;
  446. }
  447. // 获取物料历史缺陷集合
  448. String conn = "and material_no = '"+ material_no +"'";
  449. sql = " select * from QCM_JUDGE_SURFACE where 1=1 "+conn+"";
  450. List<QcmJudgeSurface> qjsListOld = mapper.queryQcmJudgeSurfaces(sql);
  451. if(qjsListOld!=null && qjsListOld.size()>0 && qjsflist.size() == 0){
  452. String sufIdStr="";
  453. for(QcmJudgeSurface qjs1 : qjsListOld){
  454. if("".equals(sufIdStr))
  455. sufIdStr += "'"+qjs1.getSurface_id()+"'";
  456. else
  457. sufIdStr += ",'"+qjs1.getSurface_id()+"'";
  458. }
  459. String condition = "and surface_id in ("+sufIdStr+")";
  460. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition+"";
  461. List<QcmJudgeSurfaceFlaw> qjsffList = mapper.queryQcmJudgeSurfaceFlaw(sql);
  462. /*String condition1 = "and surface_id in ("+sufIdStr+") and primary_flag ='1'";
  463. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition1+"";
  464. List<QcmJudgeSurfaceFlaw> qjsffList1 = mapper.queryQcmJudgeSurfaceFlaw(sql);
  465. // 之前已经登记过缺陷,则将此次所有缺陷都改为非主缺陷
  466. if(qjsffList1!=null && qjsffList1.size()>0){
  467. //将获取的缺陷实绩信息插入表面缺陷实绩表
  468. for(QcmJudgeSurfaceFlaw qjsff1 : qjsflist){
  469. if(!qjsffList1.get(0).getFlaw_code().equals(qjsff1.getFlaw_code())){
  470. qjsff1.setPrimary_flag("0");
  471. }
  472. }
  473. }*/
  474. for(QcmJudgeSurfaceFlaw qjsf1:qjsffList){
  475. Boolean flag = false;
  476. for(QcmJudgeSurfaceFlaw qjsf2:qjsflist){
  477. if(qjsf1.getFlaw_code().equals(qjsf2.getFlaw_code())){
  478. flag = true;
  479. break;
  480. }
  481. }
  482. if(!flag){
  483. /*seq++;
  484. qjsf1.setFlaw_seq(seq);*/
  485. qjsflist.add(qjsf1);
  486. }
  487. }
  488. }
  489. int seq1 = 0;
  490. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  491. //将获取的缺陷实绩信息插入表面缺陷实绩表
  492. //String[] strList = qjsff.getFlaw_area().split(",");
  493. //for(String str : strList){
  494. qjsff.setSurface_id(sid);
  495. qjsff.setFlaw_area(qjsff.getFlaw_area());
  496. qjsff.setCreate_name(params2.get(6).toString());//创建人
  497. qjsff.setCreate_time(new Date());//创建时间
  498. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  499. seq1++;
  500. //}
  501. QcmJudgeUltimateReason qjr = new QcmJudgeUltimateReason();
  502. qjr.setMaterial_no(material_no);
  503. qjr.setType_code(StringUtils.isBlank(qjsff.getFlaw_area()) ? "U" : qjsff.getFlaw_area());
  504. qjr.setRecord_id(sid);
  505. qjr.setSeq(seq1);
  506. qjr.setPhy_code_s(qjsff.getFlaw_code());
  507. qjr.setPhy_name_s(qjsff.getFlaw_desc());
  508. qjr.setCreate_name(params2.get(4).toString());
  509. qjr.setCreate_time(new Date());
  510. mapper.insertQcmJudgeUltimateReason(qjr);
  511. }
  512. //调用熔炼成分判定 RlChemAutoJudgeByHuman
  513. //异常材料处置,进行物料封锁合格时,直接进行异常材料处置业务
  514. if ("2".equals(params2.get(1).toString())) {
  515. //生成质量封锁记录号
  516. int count=0;
  517. QCMJudgeLocking qjlk = new QCMJudgeLocking();
  518. SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  519. String date=sdf.format(new Date());
  520. String condition = " and MATERIAL_NO = '"+material_no+"' order by LOCK_SEQ desc ";
  521. List<QCMJudgeLocking> qjl = mapper.queryQCMJudgeLocking(condition);
  522. if(qjl.size() > 0){
  523. count=qjl.get(0).getLock_seq();
  524. }
  525. count++;
  526. //锁定记录号
  527. int lock_seq=count;
  528. //获取缺陷
  529. String flaw="";
  530. String strsql = "select * from QCM_JUDGE_SURFACE_FLAW where SURFACE_ID = '"+sid+"'";
  531. //in (select SURFACE_ID from qcm_judge_surface where material_no = '"+material_no+"') ";
  532. List<QcmJudgeSurfaceFlaw> qjsft = mapper.queryQcmJudgeSurfaceFlaw(strsql);
  533. for(QcmJudgeSurfaceFlaw qjsf1 :qjsft){
  534. flaw+=qjsf1.getFlaw_desc()+",";
  535. }
  536. String lock_memo = "";
  537. if (",".equals(flaw.substring(flaw.length()-1, flaw.length()))) {
  538. lock_memo = "表面:"+flaw.substring(0,flaw.length()-1);
  539. }else {
  540. lock_memo = "表面:"+flaw.substring(0,flaw.length());
  541. }
  542. //插入封锁表
  543. qjlk.setLock_type_code("F");
  544. qjlk.setLock_type_desc("表面检验");
  545. qjlk.setMaterial_no(material_no);
  546. qjlk.setLock_seq(lock_seq);
  547. qjlk.setLock_id(sid);
  548. qjlk.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  549. qjlk.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  550. qjlk.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  551. qjlk.setPlan_no(hashmap.get(0).get("PLAN_NO") == null ?"":hashmap.get(0).get("PLAN_NO").toString());
  552. qjlk.setHt_no(hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString());
  553. qjlk.setDesign_key(hashmap.get(0).get("DESIGN_KEY")== null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  554. qjlk.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  555. qjlk.setPline_code(hashmap.get(0).get("PLINE_CODE").toString());
  556. qjlk.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  557. qjlk.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  558. qjlk.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  559. qjlk.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  560. qjlk.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  561. qjlk.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  562. qjlk.setSteel_code(hashmap.get(0).get("GRADE_NAME") == null ?"":hashmap.get(0).get("GRADE_NAME").toString());
  563. qjlk.setSteel_name(hashmap.get(0).get("GRADE_NAME")==null?"":hashmap.get(0).get("GRADE_NAME").toString());
  564. qjlk.setHeight(hashmap.get(0).get("THICK") == null?"": hashmap.get(0).get("THICK").toString());
  565. qjlk.setFic_locking("1");
  566. qjlk.setLock_name(params2.get(6).toString());
  567. qjlk.setLock_memo(lock_memo +"-"+ params2.get(4).toString());
  568. if(hashmap.get(0).get("PLINE_CODE").toString().equals("4001LGX") && params2.get(4).toString().equals("废品")){
  569. qjlk.setUnlock_type_code("6");
  570. qjlk.setUnlock_type_desc("判废");
  571. qjlk.setUnlock_name(params2.get(6).toString());
  572. qjlk.setUnlock_time(new java.util.Date());
  573. }else
  574. {
  575. mapper.insertQCMJudgeLocking(qjlk);
  576. }
  577. }
  578. /*String z_result = "";
  579. if(params2.get(9).toString().equals("4001LGX") && params2.get(1).toString().equals("2")){
  580. z_result = "7";
  581. }*/
  582. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  583. qjog.setOperate_name(params2.get(6).toString());
  584. qjog.setOperate_type("表面检验判定");
  585. qjog.setParams(material_no);
  586. qjog.setProd_line(params2.get(9).toString());
  587. mapper.insertQcmJudgeOperateLog(qjog);
  588. List<HashMap> t = mapper.query("SELECT to_char(wmsys.wm_concat(distinct FLAW_DESC)) memo FROM QCM_JUDGE_SURFACE_FLAW A WHERE A.SURFACE_ID = '"+sid+"'");
  589. String s = t.get(0).get("MEMO") == null?"": t.get(0).get("MEMO").toString();
  590. if(hashmap.get(0).get("PLINE_CODE").toString().equals("4001LGX") && params2.get(4).toString().equals("废品")){
  591. JSONObject jsobj2 = new JSONObject();
  592. JSONArray ttmaps = new JSONArray();
  593. JSONObject jsobj1 = new JSONObject();
  594. jsobj1.put("CHEMRESULT_LK", "");
  595. jsobj1.put("FACERESULT","4");
  596. jsobj1.put("COMPREHENSIVERESULT","");
  597. jsobj1.put("CHEMJUDGEID","");
  598. jsobj1.put("FACECHECKID",sid);
  599. jsobj1.put("COMPREHENSIVEID","");
  600. jsobj1.put("JUDGE_TYPE","S");
  601. jsobj1.put("PROD_LINE",params2.get(9).toString());
  602. jsobj1.put("ISJUDGE","1");
  603. jsobj1.put("PROD_TYPE",params2.get(10).toString());
  604. jsobj1.put("SLAB_NO",material_no);
  605. jsobj1.put("CHECKNO","");
  606. jsobj1.put("OPTMAN", params2.get(6).toString());
  607. jsobj1.put("ISFX", "0");
  608. jsobj1.put("CHEMRESULT_FX", "");
  609. jsobj1.put("REMARK", params2.get(5).toString());
  610. jsobj1.put("XXREASON", s);
  611. ttmaps.add(jsobj1);
  612. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  613. String result = qjes.callWebserviceASMX(url,"ChemJudge",JSON.toJSONString(ttmaps));
  614. JSONObject jo = JSONObject.parseObject(result);
  615. if(jo.get("code").toString().equals("1")){
  616. throw new Exception("表面判废失败!"+jo.get("message").toString());
  617. }
  618. //判废
  619. LgultimateJudgeAutoBySystem(material_no,params2.get(6).toString(),params2.get(9).toString(), params2.get(10).toString());
  620. }else{
  621. JSONObject jsobj2 = new JSONObject();
  622. JSONArray ttmaps = new JSONArray();
  623. JSONObject jsobj1 = new JSONObject();
  624. jsobj1.put("CHEMRESULT_LK", "");
  625. if(params2.get(1).toString().equals("1") && params2.get(9).toString().equals("4001LG0") && (hashmap.get(0).get("DESIGN_KEY")== null||hashmap.get(0).get("DESIGN_KEY").toString().equals(""))){
  626. jsobj1.put("FACERESULT","9");
  627. }
  628. else{
  629. jsobj1.put("FACERESULT",params2.get(1).toString());
  630. }
  631. jsobj1.put("COMPREHENSIVERESULT","");
  632. jsobj1.put("CHEMJUDGEID","");
  633. jsobj1.put("FACECHECKID",sid);
  634. jsobj1.put("COMPREHENSIVEID","");
  635. jsobj1.put("JUDGE_TYPE","S");
  636. jsobj1.put("PROD_LINE",params2.get(9).toString());
  637. jsobj1.put("ISJUDGE","1");
  638. jsobj1.put("PROD_TYPE",params2.get(10).toString());
  639. jsobj1.put("SLAB_NO",material_no);
  640. jsobj1.put("CHECKNO","");
  641. jsobj1.put("OPTMAN", params2.get(6).toString());
  642. jsobj1.put("ISFX", "0");
  643. jsobj1.put("CHEMRESULT_FX", "");
  644. jsobj1.put("REMARK", params2.get(5).toString());
  645. jsobj1.put("XXREASON", s);
  646. ttmaps.add(jsobj1);
  647. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  648. String result = qjes.callWebserviceASMX(url,"ChemJudge",JSON.toJSONString(ttmaps));
  649. JSONObject jo = JSONObject.parseObject(result);
  650. if(jo.get("code").toString().equals("1")){
  651. throw new Exception("表面判定失败!"+jo.get("message").toString());
  652. }
  653. }
  654. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  655. JSONArray ttmaps1 = new JSONArray();
  656. JSONObject jsobj3 = new JSONObject();
  657. jsobj3.put("PROD_LINE", params2.get(9).toString());
  658. jsobj3.put("SLAB_NO",material_no);
  659. jsobj3.put("PROD_TYPE",params2.get(10).toString());
  660. jsobj3.put("REMARK",params2.get(5).toString());
  661. if(params2.get(9).toString().equals("4001LGX")){
  662. jsobj3.put("P_NO_HOT_REASON", "");
  663. jsobj3.put("P_NO_DIRECT_REASON","");
  664. jsobj3.put("P_NO_CRAFT_STEELNAME","");
  665. jsobj3.put("REMARK",params2.get(5).toString());
  666. jsobj3.put("P_REG_NM",params2.get(6).toString());
  667. }
  668. ttmaps1.add(jsobj3);
  669. String result = QcmJhyElementsServiceImpl.callWebserviceASMX(url,"SlabDetailInput",JSON.toJSONString(ttmaps1));
  670. JSONObject jo1 = JSONObject.parseObject(result);
  671. if(jo1.get("code").toString().equals("1")){
  672. throw new Exception("备注录入失败!"+jo1.get("message").toString());
  673. }
  674. SqlSession.commit();
  675. //qje.LGRlChemJudgeByHuman(hashmap,hashmap.get(0).get("HEAT_NO").toString(),material_no,hashmap.get(0).get("DESIGN_KEY").toString(),"system",hashmap.get(0).get("GRADE_NAME")==null?"":hashmap.get(0).get("GRADE_NAME").toString());
  676. //综合判定
  677. QcmJudgePhysicalServiceImpl qjp = new QcmJudgePhysicalServiceImpl();
  678. qjp.LgultimateJudgeAutoBySystem(material_no, "system",params2.get(9).toString(),params2.get(10).toString());
  679. } catch (Exception e) {
  680. cro.setResult( "检验登记失败!"+ e.getMessage());
  681. cro.setV_errCode(-1);
  682. SqlSession.rollback();
  683. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.doLgAddFlaw:【" + params1.toString() + "," + params2.toString() + "】" + e);
  684. }
  685. SqlSession.close();
  686. /*final List<HashMap> hashmap1 = hashmap;
  687. Thread t1 = new Thread(){
  688. @Override
  689. public void run(){QcmJhyElementsServiceImpl qje = new QcmJhyElementsServiceImpl();
  690. try {
  691. qje.LGRlChemJudgeBySystem(hashmap1.get(0).get("HEAT_NO")==null?"":hashmap1.get(0).get("HEAT_NO").toString(),params2.get(0).toString(),hashmap1.get(0).get("DESIGN_KEY")==null?"":hashmap1.get(0).get("DESIGN_KEY").toString(),"system",hashmap1.get(0).get("GRADE_NAME")==null?"":hashmap1.get(0).get("GRADE_NAME").toString(),params2.get(10).toString(),params2.get(9).toString());
  692. } catch (Exception e) {
  693. // TODO Auto-generated catch block
  694. e.printStackTrace();
  695. }}
  696. };
  697. t1.start();
  698. Thread t2 = new Thread(){
  699. @Override
  700. public void run(){QcmJudgePhysicalServiceImpl qjp = new QcmJudgePhysicalServiceImpl();
  701. try {
  702. qjp.LgultimateJudgeAutoBySystem(params2.get(0).toString(), "SYSTEM",params2.get(9).toString(),params2.get(10).toString());
  703. } catch (Exception e) {
  704. // TODO Auto-generated catch block
  705. e.printStackTrace();
  706. }}
  707. };
  708. t2.start();*/
  709. return cro;
  710. }
  711. @SuppressWarnings({ "unused", "rawtypes" })
  712. public CoreReturnObject doLgAddFlawAuto(final ArrayList params2) throws Exception {
  713. if(params2.size() == 0){
  714. throw new Exception("请传入数据!");
  715. }
  716. List<HashMap> hashmap = new ArrayList<HashMap>();
  717. try {
  718. final String material_no = params2.get(0).toString();
  719. QcmJhyElementsServiceImpl qjes = new QcmJhyElementsServiceImpl();
  720. String Inspection_lot = "";
  721. String flaw_area = "U";
  722. //判断是否进行了综合判定
  723. String sid="";
  724. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  725. //获取表检类型
  726. String type = "U";
  727. String c= "";
  728. if(params2.get(9).toString().equals("4001LG0")){
  729. c="UL";
  730. }else{
  731. c="UD";
  732. }
  733. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  734. String sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like '"+c+ ymd+"%' order by surface_id desc) where rownum <= 1 ";
  735. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  736. int icount = 0;
  737. if (list != null && list.size() > 0) {
  738. String s=list.get(0).getSurface_id();
  739. icount = Integer.parseInt(s.substring(s.length()-5,s.length()));
  740. }
  741. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  742. icount++;
  743. sid=c+ymd + String.format("%05d",icount);
  744. //插入表面实绩表
  745. hashmap = (List<HashMap>) getLgRejudgeInfobyMaterial_no("", "", material_no, params2.get(9).toString(), params2.get(10).toString(), "S").getResult();
  746. if(hashmap == null || hashmap.size() == 0){
  747. throw new Exception("未找到库存信息!");
  748. }
  749. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  750. qjsf.setSurface_id(sid);
  751. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  752. qjsf.setBatch_no(hashmap.get(0).get("MATERIAL_NO") == null ?"":hashmap.get(0).get("MATERIAL_NO").toString());
  753. qjsf.setBoard_no("");
  754. qjsf.setInspection_lot(Inspection_lot);
  755. qjsf.setMaterial_no(material_no);
  756. qjsf.setSf_result_code(params2.get(1).toString());
  757. qjsf.setSf_result_desc(params2.get(2).toString());
  758. if(params2.get(1).toString().equals("1") && params2.get(9).toString().equals("4001LG0") && (hashmap.get(0).get("DESIGN_KEY")== null||hashmap.get(0).get("DESIGN_KEY").toString().equals(""))){
  759. qjsf.setSf_result_desc("订单外合格");
  760. }
  761. qjsf.setLevel_code(params2.get(3).toString());
  762. qjsf.setLevel_desc(params2.get(4).toString());
  763. qjsf.setSf_type(type);
  764. qjsf.setSf_memo(params2.get(5).toString());
  765. qjsf.setSfd_is_lock("0");
  766. qjsf.setSfe_is_lock("0");
  767. qjsf.setSfu_is_lock("0");
  768. if(!flaw_area.equals("")){
  769. if(flaw_area.equals("U")){
  770. qjsf.setSfu_is_lock("1");
  771. }else if(flaw_area.equals("D")){
  772. qjsf.setSfd_is_lock("1");
  773. }else if(flaw_area.equals("E")){
  774. qjsf.setSfe_is_lock("1");
  775. }
  776. }
  777. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY").toString());
  778. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY").toString());
  779. qjsf.setPsc("");
  780. qjsf.setPsc_desc("");
  781. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  782. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  783. qjsf.setWrk_ord(params2.get(7).toString());
  784. qjsf.setWrk_grp(params2.get(8).toString());
  785. qjsf.setJudge_name(params2.get(6).toString());
  786. qjsf.setSf_memo(params2.get(5).toString());
  787. qjsf.setStd_code("");
  788. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  789. qjsf.setProd_code("");
  790. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  791. qjsf.setSteel_code("");
  792. qjsf.setSteel_name(hashmap.get(0).get("GRADE_NAME")==null?"":hashmap.get(0).get("GRADE_NAME").toString());
  793. qjsf.setThick(params2.get(11).toString());
  794. qjsf.setWidth(params2.get(12).toString());
  795. qjsf.setLength(params2.get(13).toString());
  796. mapper.insertQcmJudgeSurface(qjsf);
  797. Long seq=1L;
  798. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  799. // 获取物料历史缺陷集合
  800. String conn = "and material_no = '"+ material_no +"'";
  801. sql = " select * from QCM_JUDGE_SURFACE where 1=1 "+conn+"";
  802. List<QcmJudgeSurface> qjsListOld = mapper.queryQcmJudgeSurfaces(sql);
  803. if(qjsListOld!=null && qjsListOld.size()>0){
  804. String sufIdStr="";
  805. for(QcmJudgeSurface qjs1 : qjsListOld){
  806. if("".equals(sufIdStr))
  807. sufIdStr += "'"+qjs1.getSurface_id()+"'";
  808. else
  809. sufIdStr += ",'"+qjs1.getSurface_id()+"'";
  810. }
  811. String condition = "and surface_id in ("+sufIdStr+")";
  812. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition+"";
  813. List<QcmJudgeSurfaceFlaw> qjsffList = mapper.queryQcmJudgeSurfaceFlaw(sql);
  814. String condition1 = "and surface_id in ("+sufIdStr+") and primary_flag ='1'";
  815. for(QcmJudgeSurfaceFlaw qjsf1:qjsffList){
  816. Boolean flag = false;
  817. if(!flag){
  818. qjsf1.setFlaw_seq(seq);
  819. qjsflist.add(qjsf1);
  820. seq++;
  821. }
  822. }
  823. }
  824. int seq1 = 0;
  825. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  826. //将获取的缺陷实绩信息插入表面缺陷实绩表
  827. String[] strList = qjsff.getFlaw_area().split(",");
  828. for(String str : strList){
  829. qjsff.setSurface_id(sid);
  830. qjsff.setFlaw_area(str);
  831. qjsff.setCreate_name(params2.get(6).toString());//创建人
  832. qjsff.setCreate_time(new Date());//创建时间
  833. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  834. seq1++;
  835. }
  836. }
  837. JSONObject jsobj2 = new JSONObject();
  838. JSONArray ttmaps = new JSONArray();
  839. JSONObject jsobj1 = new JSONObject();
  840. jsobj1.put("CHEMRESULT_LK", "");
  841. if(params2.get(1).toString().equals("1") && params2.get(9).toString().equals("4001LG0") && (hashmap.get(0).get("DESIGN_KEY")== null || hashmap.get(0).get("DESIGN_KEY").toString().equals(""))){
  842. jsobj1.put("FACERESULT","9");
  843. }
  844. else{
  845. jsobj1.put("FACERESULT",params2.get(1).toString());
  846. }
  847. jsobj1.put("COMPREHENSIVERESULT","");
  848. jsobj1.put("CHEMJUDGEID","");
  849. jsobj1.put("FACECHECKID",sid);
  850. jsobj1.put("COMPREHENSIVEID","");
  851. jsobj1.put("JUDGE_TYPE","S");
  852. jsobj1.put("PROD_LINE",params2.get(9).toString());
  853. jsobj1.put("ISJUDGE","1");
  854. jsobj1.put("PROD_TYPE",params2.get(10).toString());
  855. jsobj1.put("SLAB_NO",material_no);
  856. jsobj1.put("CHECKNO","");
  857. jsobj1.put("OPTMAN", params2.get(6).toString());
  858. jsobj1.put("ISFX", "0");
  859. jsobj1.put("CHEMRESULT_FX", "");
  860. ttmaps.add(jsobj1);
  861. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  862. String result = qjes.callWebserviceASMX(url,"ChemJudge",JSON.toJSONString(ttmaps));
  863. JSONObject jo = JSONObject.parseObject(result);
  864. if(jo.get("code").toString().equals("1")){
  865. throw new Exception("表面判定失败!"+jo.get("message").toString());
  866. }
  867. SqlSession.commit();
  868. } catch (Exception e) {
  869. cro.setResult( "检验登记失败!"+ e.getMessage());
  870. cro.setV_errCode(-1);
  871. logger.info(e.getMessage());
  872. //SqlSession.rollback();
  873. }
  874. //SqlSession.close();
  875. return cro;
  876. }
  877. /** 中厚板表面判定
  878. * 质量判定-表面检验与表面:检验登记
  879. * 检验实绩信息 params2
  880. *
  881. * 产品序号
  882. * 检验结果代码
  883. * 检验结果
  884. * 质量等级代码
  885. * 质量等级
  886. * 检验备注
  887. * 用户名
  888. * 班次
  889. * 班组
  890. *
  891. * 缺陷实绩信息 params1
  892. * 主缺陷标识
  893. * 缺陷序号
  894. * 缺陷代码
  895. * 缺陷描述
  896. * 缺陷位置代码
  897. * 缺陷位置描述
  898. * 缺陷重量
  899. * 缺陷数量
  900. * 备注
  901. * 是否修复
  902. * */
  903. @SuppressWarnings({ "unused", "rawtypes" })
  904. public CoreReturnObject doAddFlaw2(ArrayList<List> params1,final ArrayList params2) throws Exception {
  905. if(params2.size() == 0){
  906. cro.setV_errCode(-1);
  907. cro.setV_errMsg("请传入数据");
  908. return cro;
  909. }
  910. String material_no = params2.get(0).toString();
  911. String surface_type = params2.get(9).toString();
  912. if(SqlJoint.IsNullOrSpace(surface_type) || !(surface_type.equals("上表面") || surface_type.equals("下表面"))) {
  913. cro.setV_errCode(-1);
  914. cro.setV_errMsg("表面类型传入异常");
  915. return cro;
  916. }
  917. //判断是否进行综合判定,是否在库
  918. List<HashMap> hashmap = new ArrayList<HashMap>();
  919. List<HashMap> hashmap1 = new ArrayList<HashMap>();
  920. String sql = "select * from zj_result_all@xgcx where BILLETID = '"+material_no+"' and JUDGERESULT <> '0' ";
  921. hashmap1 = mapper.query(sql);
  922. if(hashmap1.size() > 0){
  923. if(hashmap1.get(0).get("JUDGERESULT").equals("4")){
  924. throw new Exception("已判废品,不可操作!");
  925. }
  926. }
  927. if(hashmap1.size() > 0) {
  928. List<HashMap> list1 = mapper.query(sql);
  929. sql = "select billetid from kch_turnofflist@xgcx where storagestatus = '501602' and billetid = '" + material_no + "'"
  930. + " union all select billetid from kcz_turnofflist@xgcx where storagestatus = '501602' and billetid = '" + material_no + "' UNION ALL "
  931. + " select billetid from kcj_turnofflist@xgcx where storagestatus = '501602' and billetid = '" + material_no + "' union all "
  932. + " select billetid from kcj_storagelist@xgcx where storagestatus = '501002' and billetid = '" + material_no + "' union all "
  933. + " select billetid from kcp_storagelist@xgcx where storagestatus = '501002' and billetid = '"+material_no+"' ";
  934. hashmap = mapper.query(sql);
  935. if (hashmap.size() == 0) {
  936. throw new Exception("未找到在库的库存信息!");
  937. }
  938. /*if (hashmap.size() == 0) {
  939. sql = "select * from kcz_turnofflist@xgcx where storagestatus = '501602' and billetid = '" + material_no + "'";
  940. hashmap = mapper.query(sql);
  941. if (hashmap.size() == 0) {
  942. sql = "select * from kcj_turnofflist@xgcx where storagestatus = '501602' and billetid = '" + material_no + "'";
  943. hashmap = mapper.query(sql);
  944. if (hashmap.size() == 0) {
  945. sql = "select * from kcj_storagelist@xgcx where storagestatus = '501002' and billetid = '" + material_no + "'";
  946. hashmap = mapper.query(sql);
  947. if (hashmap.size() == 0) {
  948. throw new Exception("未找到在库的库存信息!");
  949. }
  950. }
  951. }
  952. }*/
  953. //撤销判定
  954. cancelUltimateJudge(params2.get(6).toString(),material_no,hashmap1.get(0).get("JUDGEID").toString());
  955. }
  956. if(material_no.startsWith("Z")){
  957. hashmap = mapper.doQueryMaterialInfoZB(material_no);
  958. }else{
  959. hashmap = mapper.doQueryMaterialInfoHB(material_no);
  960. }
  961. /*if(hashmap.size() == 0){
  962. if(material_no.startsWith("H")){
  963. hashmap = mapper.doQueryMaterialInfoZB(material_no);
  964. }else{
  965. hashmap = mapper.doQueryMaterialInfoHB(material_no);
  966. }
  967. }*/
  968. if(hashmap.size()==0){
  969. throw new Exception("未找到库存信息!");
  970. }
  971. try {
  972. String Inspection_lot = "";
  973. String flaw_area = "";
  974. //判断是否进行了综合判定
  975. sql = "select * from zj_result_all@xgcx where BILLETID = '"+material_no+"'";
  976. List<HashMap> list1 = mapper.query(sql);
  977. if(list1.size() >0){
  978. for(HashMap list:list1){
  979. if(list.get("JUDGERESULT") != null && !list.get("JUDGERESULT").toString().equals("0")){
  980. throw new Exception("该产品序号【"+material_no+"】做了综合判定,不能做检验登记!");
  981. }
  982. if(surface_type.equals("上表面")) {
  983. if(list.get("SFU_IS_LOCK").equals("1") || list.get("SFE_IS_LOCK").equals("1")){
  984. throw new Exception("该该产品序号【"+material_no+"】已经锁定,不能做检验登记" + surface_type + "!");
  985. }
  986. } else if(surface_type.equals("下表面")) {
  987. if(list.get("SFD_IS_LOCK").equals("1") || list.get("SFE_IS_LOCK").equals("1")){
  988. throw new Exception("该该产品序号【"+material_no+"】已经锁定,不能做检验登记" + surface_type + "!");
  989. }
  990. }
  991. Inspection_lot = list.get("BILLETID_JY")==null?"":list.get("BILLETID_JY").toString();
  992. }
  993. }else{
  994. throw new Exception("未找到库存信息!");
  995. }
  996. /*sql = "select * from QCM_JUDGE_SURFACE where MATERIAL_NO = '"+material_no+"' order by SURFACE_ID desc";
  997. List<QcmJudgeSurface> oldSuf = mapper.queryQcmJudgeSurfaces(sql);
  998. if(oldSuf.size() > 0){
  999. if(surface_type.equals("上表面")) {
  1000. if ("1".equals(oldSuf.get(0).getSfu_is_lock()) || "1".equals(oldSuf.get(0).getSfe_is_lock())) {
  1001. cro.setV_errCode(-1);
  1002. cro.setV_errMsg("物料["+material_no+"],已经上表面锁定,不能重新判定,请到异常材界面进行物料处理后操作!");
  1003. return cro;
  1004. }
  1005. } else if(surface_type.equals("下表面")) {
  1006. if ("1".equals(oldSuf.get(0).getSfd_is_lock()) || "1".equals(oldSuf.get(0).getSfe_is_lock())) {
  1007. cro.setV_errCode(-1);
  1008. cro.setV_errMsg("物料["+material_no+"],已经下表面锁定,不能重新判定,请到异常材界面进行物料处理后操作!");
  1009. return cro;
  1010. }
  1011. }
  1012. }*/
  1013. String sid="";
  1014. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  1015. //获取表检类型
  1016. String type = "U";
  1017. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  1018. sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like 'UB"+ ymd+"%' order by surface_id desc) where rownum<= 1 ";
  1019. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  1020. int icount = 0;
  1021. if (list != null && list.size() > 0) {
  1022. String s=list.get(0).getSurface_id();
  1023. icount = Integer.parseInt(s.substring(s.length()-5,s.length()));
  1024. }
  1025. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  1026. icount++;
  1027. sid="UB"+ymd + String.format("%05d",icount);
  1028. //插入表面实绩表
  1029. /*for(List qjs:params1){
  1030. if(qjs.get(0).toString().equals("1")){
  1031. flaw_area = qjs.get(4).toString();
  1032. }
  1033. }*/
  1034. String sf_type = surface_type.equals("上表面") ? "U" : "D";
  1035. String conn = "and material_no = '"+ material_no +"' and sf_type = '"+sf_type+"'";
  1036. sql = " select * from (select * from QCM_JUDGE_SURFACE where 1=1 "+conn+" order by judge_time desc) where rownum <=1";
  1037. List<QcmJudgeSurface> qjsListOld = mapper.queryQcmJudgeSurfaces(sql);
  1038. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  1039. qjsf.setSurface_id(sid);
  1040. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  1041. qjsf.setBatch_no(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  1042. qjsf.setBoard_no(hashmap.get(0).get("BOARD_NO") == null ?"":hashmap.get(0).get("BOARD_NO").toString());
  1043. qjsf.setInspection_lot(Inspection_lot);
  1044. qjsf.setMaterial_no(material_no);
  1045. qjsf.setSf_result_code(params2.get(1).toString());
  1046. qjsf.setSf_result_desc(params2.get(2).toString());
  1047. qjsf.setLevel_code(params2.get(3).toString());
  1048. qjsf.setLevel_desc(params2.get(4).toString());
  1049. qjsf.setSf_type(surface_type.equals("上表面") ? "U" : "D");
  1050. qjsf.setSf_memo(params2.get(5).toString());
  1051. qjsf.setSfd_is_lock("0");
  1052. qjsf.setSfe_is_lock("0");
  1053. qjsf.setSfu_is_lock("0");
  1054. if(!params2.get(4).toString().equals("订单外") && !params2.get(4).toString().equals("协议品") && !params2.get(4).toString().equals("次品") && !params2.get(4).toString().equals("废品")){
  1055. if(surface_type.equals("上表面") && params2.get(1).toString().equals("2")) {
  1056. qjsf.setSfu_is_lock("1");
  1057. } else if(surface_type.equals("下表面") && params2.get(1).toString().equals("2")) {
  1058. qjsf.setSfd_is_lock("1");
  1059. }
  1060. }
  1061. /*if(!flaw_area.equals("")){
  1062. if(flaw_area.equals("U")&&params2.get(1).toString().equals("2")){
  1063. qjsf.setSfu_is_lock("1");
  1064. }else if(flaw_area.equals("D")&&params2.get(1).toString().equals("2")){
  1065. qjsf.setSfd_is_lock("1");
  1066. }else if(flaw_area.equals("E")&&params2.get(1).toString().equals("2")){
  1067. qjsf.setSfe_is_lock("1");
  1068. }else if(params2.get(1).toString().equals("2")){
  1069. qjsf.setSfu_is_lock("1");
  1070. qjsf.setSfd_is_lock("1");
  1071. qjsf.setSfe_is_lock("1");
  1072. }
  1073. }*/
  1074. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY").toString());
  1075. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY").toString());
  1076. qjsf.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  1077. qjsf.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  1078. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  1079. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  1080. qjsf.setWrk_ord(params2.get(7).toString());
  1081. qjsf.setWrk_grp(params2.get(8).toString());
  1082. qjsf.setJudge_name(params2.get(6).toString());
  1083. qjsf.setSf_memo(params2.get(5).toString());
  1084. qjsf.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  1085. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  1086. qjsf.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  1087. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  1088. qjsf.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null?"":hashmap.get(0).get("STEEL_CODE").toString());
  1089. qjsf.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  1090. Long seq=1L;
  1091. String memo = "";
  1092. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  1093. for(List qjs:params1){
  1094. QcmJudgeSurfaceFlaw qjsffs = new QcmJudgeSurfaceFlaw();
  1095. qjsffs.setPrimary_flag(qjs.get(0).toString());
  1096. qjsffs.setIs_repair("0");
  1097. qjsffs.setFlaw_seq(Long.parseLong(qjs.get(1).toString()));
  1098. qjsffs.setFlaw_code(qjs.get(2).toString());
  1099. qjsffs.setFlaw_desc(qjs.get(3).toString());
  1100. if(qjs.get(4).toString().equals("")){
  1101. qjsffs.setFlaw_area(surface_type.equals("上表面") ? "U" : "D");
  1102. }else{
  1103. qjsffs.setFlaw_area(qjs.get(4).toString());
  1104. }
  1105. List<HashMap> lists = finddefecttype(qjs.get(2).toString());
  1106. if(lists.size()>0){
  1107. qjsffs.setFlaw_desc(lists.get(0).get("DEFECT_DESC")==null?"":lists.get(0).get("DEFECT_DESC").toString());
  1108. qjsffs.setFlaw_type_code(lists.get(0).get("DEFECT_TYPE_CODE")==null?"":lists.get(0).get("DEFECT_TYPE_CODE").toString());
  1109. qjsffs.setFlaw_type_desc(lists.get(0).get("DEFECT_TYPE_DESC") == null ?"":lists.get(0).get("DEFECT_TYPE_DESC").toString());
  1110. }
  1111. qjsffs.setFlaw_pos_code(qjs.get(5).toString());
  1112. qjsffs.setFlaw_pos_desc(qjs.get(6).toString());
  1113. qjsffs.setFlaw_dir_code(qjs.get(7).toString());
  1114. qjsffs.setFlaw_dir_desc(qjs.get(8).toString());
  1115. qjsffs.setFlaw_size_code(qjs.get(9).toString());
  1116. qjsffs.setFlaw_size_desc(qjs.get(10).toString());
  1117. qjsffs.setFlaw_lv_code(qjs.get(11).toString());
  1118. qjsffs.setFlaw_lv_desc(qjs.get(12).toString());
  1119. if(!qjs.get(13).equals("")){
  1120. qjsffs.setFlaw_quantity(Long.parseLong(qjs.get(13).toString()));
  1121. }
  1122. qjsffs.setMemo(qjs.get(14).toString());
  1123. qjsffs.setIs_repair(qjs.get(15).toString());
  1124. if(qjs.get(15).toString().equals("0") || qjs.get(15).toString().equals("1")){
  1125. if(qjs.get(3).toString().contains("4#飘曲")){
  1126. throw new Exception("缺陷与修复状态不一致!");
  1127. }
  1128. }
  1129. qjsffs.setFixed_name(qjs.get(16).toString());
  1130. qjsflist.add(qjsffs);
  1131. if(!qjs.get(14).toString().equals("")){
  1132. if(memo.equals("")){
  1133. memo = qjs.get(14).toString();
  1134. }else
  1135. {
  1136. memo = memo +","+ qjs.get(14).toString();
  1137. }
  1138. }
  1139. seq = Long.parseLong(qjs.get(1).toString());
  1140. seq++;
  1141. }
  1142. if(!params2.get(5).toString().equals("")){
  1143. if(memo.equals("")){
  1144. memo = params2.get(5).toString();
  1145. }else
  1146. {
  1147. memo = memo +","+ params2.get(5).toString();
  1148. }
  1149. }
  1150. qjsf.setSf_memo(memo);
  1151. mapper.insertQcmJudgeSurface(qjsf);
  1152. // 获取物料历史缺陷集合
  1153. if(qjsListOld!=null && qjsListOld.size()>0){
  1154. String sufIdStr="";
  1155. for(QcmJudgeSurface qjs1 : qjsListOld){
  1156. if("".equals(sufIdStr))
  1157. sufIdStr += "'"+qjs1.getSurface_id()+"'";
  1158. else
  1159. sufIdStr += ",'"+qjs1.getSurface_id()+"'";
  1160. }
  1161. String condition = "and surface_id in ("+sufIdStr+") ";
  1162. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition+"";
  1163. List<QcmJudgeSurfaceFlaw> qjsffList = mapper.queryQcmJudgeSurfaceFlaw(sql);
  1164. /*String condition1 = "and surface_id in ("+sufIdStr+") and primary_flag ='1'";
  1165. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition1+"";
  1166. List<QcmJudgeSurfaceFlaw> qjsffList1 = mapper.queryQcmJudgeSurfaceFlaw(sql);*/
  1167. // 之前已经登记过缺陷,则将此次所有缺陷都改为非主缺陷
  1168. /*if(qjsffList1!=null && qjsffList1.size()>0){
  1169. //将获取的缺陷实绩信息插入表面缺陷实绩表
  1170. for(QcmJudgeSurfaceFlaw qjsff1 : qjsflist){
  1171. if(!qjsffList1.get(0).getFlaw_code().equals(qjsff1.getFlaw_code())){
  1172. qjsff1.setPrimary_flag("0");
  1173. }
  1174. }
  1175. }*/
  1176. for(QcmJudgeSurfaceFlaw qjsf1:qjsffList){
  1177. Boolean flag = false;
  1178. /*for(QcmJudgeSurfaceFlaw qjsf2:qjsflist){
  1179. if(qjsf1.getFlaw_code().equals(qjsf2.getFlaw_code())){
  1180. flag = true;
  1181. break;
  1182. }
  1183. }*/
  1184. if(!flag){
  1185. qjsf1.setFlaw_seq(seq);
  1186. qjsflist.add(qjsf1);
  1187. seq++;
  1188. }
  1189. }
  1190. }
  1191. int seq1 = 0;
  1192. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  1193. if(StringUtils.isNotEmpty(qjsff.getFlaw_area())) {
  1194. //将获取的缺陷实绩信息插入表面缺陷实绩表
  1195. String[] strList = qjsff.getFlaw_area().split(",");
  1196. for(String str : strList){
  1197. qjsff.setSurface_id(sid);
  1198. qjsff.setFlaw_area(str);
  1199. qjsff.setCreate_name(qjsff.getCreate_name()==null?params2.get(6).toString():qjsff.getCreate_name());//创建人
  1200. qjsff.setCreate_time(qjsff.getCreate_time()==null?new Date():qjsff.getCreate_time());//创建时间
  1201. qjsff.setMemo(qjsff.getMemo()==null?params2.get(5).toString():qjsff.getMemo());
  1202. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  1203. seq1++;
  1204. }
  1205. QcmJudgeUltimateReason qjr = new QcmJudgeUltimateReason();
  1206. qjr.setMaterial_no(material_no);
  1207. qjr.setType_code(qjsff.getFlaw_area().equals("")?"U":qjsff.getFlaw_area());
  1208. qjr.setRecord_id(sid);
  1209. qjr.setSeq(seq1);
  1210. qjr.setPhy_code_s(qjsff.getFlaw_code());
  1211. qjr.setPhy_name_s(qjsff.getFlaw_desc());
  1212. qjr.setCreate_name(params2.get(6).toString());
  1213. qjr.setCreate_time(new Date());
  1214. mapper.insertQcmJudgeUltimateReason(qjr);
  1215. }
  1216. }
  1217. if(seq1==0 && params2.get(2).toString().equals("待判")){
  1218. throw new Exception("请录入缺陷信息!");
  1219. }
  1220. //更新库存表上表,下表,边部结果
  1221. if(list1.size() >0){
  1222. ZjResultAll zra = new ZjResultAll();
  1223. zra.setBilletid(material_no);
  1224. zra.setMarginal_result("1");
  1225. zra.setMarginal_result_desc("合格");
  1226. zra.setMarginal_result_id_desc(sid);
  1227. //不合格
  1228. if(!params2.get(1).toString().equals("1")){
  1229. if(surface_type.equals("上表面")) {
  1230. zra.setUp_surface_result(params2.get(1).toString());
  1231. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1232. if(params2.get(4).toString().equals("订单外") || params2.get(4).toString().equals("协议品")|| params2.get(4).toString().equals("次品")|| params2.get(4).toString().equals("废品")){
  1233. zra.setSfu_is_lock("0");
  1234. }else{
  1235. zra.setSfu_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1236. }
  1237. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1238. zra.setUp_surface_result_id_desc(sid);
  1239. } else if(surface_type.equals("下表面")) {
  1240. zra.setUd_surface_result(params2.get(1).toString());
  1241. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1242. if(params2.get(4).toString().equals("订单外") || params2.get(4).toString().equals("协议品")|| params2.get(4).toString().equals("次品")|| params2.get(4).toString().equals("废品")){
  1243. zra.setSfd_is_lock("0");
  1244. }else{
  1245. zra.setSfd_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1246. }
  1247. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1248. zra.setUd_surface_result_id_desc(sid);
  1249. }
  1250. /*if(type.equals("U")){
  1251. zra.setUp_surface_result(params2.get(1).toString());
  1252. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1253. zra.setSfu_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1254. zra.setSurfaceresult(params2.get(1).toString());
  1255. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1256. }
  1257. else if(type.equals("D")){
  1258. zra.setUd_surface_result(params2.get(1).toString());
  1259. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1260. zra.setSfd_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1261. zra.setSurfaceresult(params2.get(1).toString());
  1262. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1263. }
  1264. else if(type.equals("E")){
  1265. zra.setMarginal_result(params2.get(1).toString());
  1266. zra.setMarginal_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1267. zra.setSfe_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1268. zra.setSurfaceresult(params2.get(1).toString());
  1269. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1270. }
  1271. else{
  1272. zra.setMarginal_result(params2.get(1).toString());
  1273. zra.setMarginal_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1274. zra.setSfu_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1275. zra.setSurfaceresult(params2.get(1).toString());
  1276. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1277. zra.setUp_surface_result(params2.get(1).toString());
  1278. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1279. zra.setSfd_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1280. zra.setUd_surface_result(params2.get(1).toString());
  1281. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1282. zra.setSfe_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1283. }*/
  1284. } else {
  1285. if(surface_type.equals("上表面")) {
  1286. zra.setSfu_is_lock("0");
  1287. zra.setUp_surface_result("1");
  1288. zra.setUp_surface_result_desc("合格");
  1289. zra.setUp_surface_result_id_desc(sid);
  1290. } else if(surface_type.equals("下表面")) {
  1291. zra.setSfd_is_lock("0");
  1292. zra.setUd_surface_result("1");
  1293. zra.setUd_surface_result_desc("合格");
  1294. zra.setUd_surface_result_id_desc(sid);
  1295. }
  1296. }
  1297. mapper.UpdateJugeResultB(zra);
  1298. ///都合格
  1299. sql = "select * from zj_result_all@xgcx where BILLETID = '"+material_no+"'";
  1300. List<HashMap> list2 = mapper.query(sql);
  1301. if(list2.size() >0){
  1302. for(HashMap list3:list2){
  1303. if(list3.get("UP_SURFACE_RESULT").equals("1") && list3.get("UD_SURFACE_RESULT").equals("1")) {
  1304. zra.setBilletid(material_no);
  1305. zra.setSurfaceresult("1");
  1306. zra.setSurfaceresult_desc("合格");
  1307. zra.setSurfaceid(sid);
  1308. zra.setSfe_is_lock("0");
  1309. }else if(list3.get("UP_SURFACE_RESULT").equals("2") || list3.get("UD_SURFACE_RESULT").equals("2")) {
  1310. zra.setBilletid(material_no);
  1311. zra.setSurfaceresult("2");
  1312. zra.setSurfaceresult_desc("不合格");
  1313. zra.setSurfaceid(sid);
  1314. zra.setSfe_is_lock("0");
  1315. }else if(list3.get("UP_SURFACE_RESULT").equals("0") || list3.get("UD_SURFACE_RESULT").equals("0")){
  1316. zra.setBilletid(material_no);
  1317. zra.setSurfaceresult("0");
  1318. if((list3.get("UP_SURFACE_RESULT_DESC") != null &&list3.get("UP_SURFACE_RESULT_DESC").equals("待判")) || (list3.get("UD_SURFACE_RESULT_DESC") != null && list3.get("UD_SURFACE_RESULT_DESC").equals("待判"))){
  1319. zra.setSurfaceresult_desc("待判");
  1320. }
  1321. else{
  1322. zra.setSurfaceresult_desc("");
  1323. }
  1324. zra.setSurfaceid(sid);
  1325. zra.setSfe_is_lock("0");
  1326. }
  1327. mapper.UpdateJugeResultB(zra);
  1328. }
  1329. }else{
  1330. throw new Exception("未找到库存信息!");
  1331. }
  1332. }
  1333. String flag1 = "";
  1334. //异常材料处置,进行物料封锁合格时,直接进行异常材料处置业务
  1335. if ("2".equals(params2.get(1).toString())) {
  1336. //生成质量封锁记录号
  1337. int count=0;
  1338. QCMJudgeLocking qjlk = new QCMJudgeLocking();
  1339. SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  1340. String date=sdf.format(new Date());
  1341. String condition = " and MATERIAL_NO = '"+material_no+"' order by LOCK_SEQ desc ";
  1342. List<QCMJudgeLocking> qjl = mapper.queryQCMJudgeLocking(condition);
  1343. if(qjl.size() > 0){
  1344. count=qjl.get(0).getLock_seq();
  1345. }
  1346. count++;
  1347. //锁定记录号
  1348. int lock_seq=count;
  1349. //获取缺陷
  1350. String flaw="";
  1351. String strsql = "select * from QCM_JUDGE_SURFACE_FLAW where SURFACE_ID in (select SURFACE_ID from qcm_judge_surface where material_no = '"+material_no+"') ";
  1352. List<QcmJudgeSurfaceFlaw> qjsft = mapper.queryQcmJudgeSurfaceFlaw(strsql);
  1353. for(QcmJudgeSurfaceFlaw qjsf1 :qjsft){
  1354. if(!flaw.contains(qjsf1.getFlaw_desc()))
  1355. {
  1356. flaw+=qjsf1.getFlaw_desc()+",";
  1357. }
  1358. }
  1359. String lock_memo = "";
  1360. if (",".equals(flaw.substring(flaw.length()-1, flaw.length()))) {
  1361. lock_memo = "表面:"+flaw.substring(0,flaw.length()-1);
  1362. }else {
  1363. lock_memo = "表面:"+flaw.substring(0,flaw.length());
  1364. }
  1365. //插入封锁表
  1366. qjlk.setLock_type_code("F");
  1367. qjlk.setLock_type_desc("表面检验");
  1368. qjlk.setMaterial_no(material_no);
  1369. qjlk.setLock_seq(lock_seq);
  1370. qjlk.setLock_id(sid);
  1371. qjlk.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  1372. qjlk.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  1373. qjlk.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  1374. qjlk.setPlan_no(hashmap.get(0).get("PLAN_NO") == null ?"":hashmap.get(0).get("PLAN_NO").toString());
  1375. qjlk.setHt_no(hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString());
  1376. qjlk.setDesign_key(hashmap.get(0).get("DESIGN_KEY")== null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  1377. qjlk.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  1378. qjlk.setPline_code(hashmap.get(0).get("PLINE_CODE").toString());
  1379. qjlk.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  1380. qjlk.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  1381. qjlk.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  1382. qjlk.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  1383. qjlk.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  1384. qjlk.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  1385. qjlk.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null ?"":hashmap.get(0).get("STEEL_CODE").toString());
  1386. qjlk.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  1387. qjlk.setHeight(hashmap.get(0).get("THICK") == null?"": hashmap.get(0).get("THICK").toString());
  1388. qjlk.setFic_locking("1");
  1389. qjlk.setLock_name(params2.get(6).toString());
  1390. qjlk.setLock_memo(lock_memo+"-"+ params2.get(4).toString());
  1391. if(params2.get(4).toString().equals("订单外") || params2.get(4).toString().equals("协议品") || params2.get(4).toString().equals("次品") || params2.get(4).toString().equals("废品")){
  1392. qjlk.setUnlock_type_code("6");
  1393. qjlk.setUnlock_type_desc("脱单");
  1394. qjlk.setUnlock_memo("系统自动脱单");
  1395. qjlk.setUnlock_name(params2.get(6).toString());
  1396. qjlk.setUnlock_time(new Date());
  1397. }
  1398. if(flaw.contains("轧损")){
  1399. qjlk.setUnlock_type_code("5");
  1400. qjlk.setUnlock_type_desc("判废");
  1401. qjlk.setUnlock_memo("表面轧损判废");
  1402. qjlk.setUnlock_name(params2.get(6).toString());
  1403. qjlk.setUnlock_time(new Date());
  1404. flag1 = "1";
  1405. }
  1406. mapper.insertQCMJudgeLocking(qjlk);
  1407. }
  1408. /*List<HashMap> listqx1 = mapper.query("select * "
  1409. + " from qcm_judge_surface_flaw a "
  1410. + " where surface_id = '"+sid+"' "
  1411. + " and (is_repair = '0' or is_repair like '待修复%') ");
  1412. List<HashMap> listqx2 = mapper.query("select * "
  1413. + " from qcm_judge_surface_flaw a "
  1414. + " where surface_id = '"+sid+"' ");*/
  1415. List<HashMap> listqx = mapper.query("select * "
  1416. + " from qcm_judge_surface_flaw a "
  1417. + " where surface_id = '"+sid+"' "
  1418. + " and (is_repair = '0' or is_repair like '待修复%' or is_repair = '2' or is_repair like '未冷矫%') "
  1419. + " and not exists (select * "
  1420. + " from qcm_judge_surface_flaw b "
  1421. + " where surface_id = '"+sid+"' "
  1422. + " and (is_repair = '1' or is_repair like '已修复%' or is_repair = '3' or is_repair like '已冷矫%') "
  1423. + " and (a.flaw_desc = b.flaw_desc or (a.flaw_desc like '未翻面%' and b.flaw_desc like '已翻面%')))"
  1424. + " and flaw_desc not like '已翻面%' ");
  1425. if(listqx.size() >0 && params2.get(2).toString().equals("合格")){
  1426. throw new Exception("该子板还有缺陷未修复,不能录入合格!");
  1427. }
  1428. listqx = mapper.query("select * "
  1429. + " from qcm_judge_surface_flaw a "
  1430. + " where surface_id = '"+sid+"' "
  1431. + " and (is_repair = '0' or is_repair like '待修复%' or is_repair = '2' or is_repair like '未冷矫%') "
  1432. + " and a.flaw_desc like '未翻面%' and not exists (select * "
  1433. + " from qcm_judge_surface_flaw b "
  1434. + " where surface_id = '"+sid+"' "
  1435. + " and (is_repair = '1' or is_repair like '已修复%' or is_repair = '3' or is_repair like '已冷矫%') "
  1436. + " and b.flaw_desc like '已翻面%')");
  1437. if(listqx.size() >0 && params2.get(2).toString().equals("合格")){
  1438. throw new Exception("该子板未翻面状态,不能录入合格!");
  1439. }
  1440. String aJudgeType = params2.get(2).toString();
  1441. if(params2.get(2).toString().equals("不合格") && params2.get(4).toString().equals("次品")){
  1442. aJudgeType = "判次";
  1443. }else if((params2.get(2).toString().equals("不合格") && params2.get(4).toString().equals("废品")) || flag1.equals("1")){
  1444. aJudgeType = "判废";
  1445. }else if(params2.get(2).toString().equals("不合格") && params2.get(4).toString().equals("协议品")){
  1446. aJudgeType = "协议品_表面";
  1447. }/*else if(params2.get(2).toString().equals("不合格") && params2.get(4).toString().equals("订单外")){
  1448. aJudgeType = "订单外合格";
  1449. }*/else if(params2.get(2).toString().equals("合格")){
  1450. aJudgeType = "订单内合格";
  1451. }
  1452. String aGZLB = "";
  1453. String aGYLB = "";
  1454. String aXGLB = "";
  1455. if(params2.get(2).toString().equals("合格")){
  1456. List<QcmJudgeSurfaceFlaw> qjf = mapper.queryQcmJudgeSurfaceFlaw("select * from qcm_judge_surface_flaw where surface_id = '"+sid+"' and flaw_seq = '1' order by CREATE_TIME desc");
  1457. aXGLB = "402303";
  1458. if(qjf.size() >0)
  1459. {
  1460. List<HashMap> listgzl = mapper.query("select * from qcm_base_defect a where a.defect_desc = '"+qjf.get(0).getFlaw_desc()+"'");
  1461. if(listgzl.size() > 0){
  1462. String type1 = "";
  1463. if(material_no.startsWith("H")){
  1464. type1 = "HB";
  1465. }else{
  1466. type1 = "ZB";
  1467. }
  1468. if(listgzl.get(0).get("DEFECT_TYPE_CODE").equals("S")){
  1469. List<HashMap> listgz = mapper.query("select * from scm_base_info@xgcx a where a.sort_code = '4124' and memo like '%钢质%' and name_ = '"+qjf.get(0).getFlaw_desc()+"' AND ID_ LIKE '%"+type1+"%'");
  1470. if(listgz.size() > 0){
  1471. aGZLB = listgz.get(0).get("ID_").toString();
  1472. }else{
  1473. aGZLB = qjf.get(0).getFlaw_desc();
  1474. }
  1475. }else{
  1476. List<HashMap> listgy = mapper.query("select * from scm_base_info@xgcx a where a.sort_code = '4124' and memo like '%工艺%' and name_ = '"+qjf.get(0).getFlaw_desc()+"' AND ID_ LIKE '%"+type1+"%'");
  1477. if(listgy.size() > 0){
  1478. aGYLB = listgy.get(0).get("ID_").toString();
  1479. }else{
  1480. aGYLB = qjf.get(0).getFlaw_desc();
  1481. }
  1482. }
  1483. }else{
  1484. throw new Exception("请选择系统已有缺陷!");
  1485. }
  1486. }
  1487. }else if(params2.get(2).toString().equals("待判") || params2.get(2).toString().equals("不合格")){
  1488. List<QcmJudgeSurfaceFlaw> qjf1 = mapper.queryQcmJudgeSurfaceFlaw("select * "
  1489. + " from qcm_judge_surface_flaw a "
  1490. + " where surface_id = '"+sid+"' order by a.create_time,a.is_repair asc ");
  1491. ArrayList<String> Flaw_areas = new ArrayList<String>();
  1492. String flaw_desc = "";
  1493. for(QcmJudgeSurfaceFlaw qs :qjf1){
  1494. if(qs.getIs_repair().equals("0") || qs.getIs_repair().equals("待修复") || qs.getIs_repair().equals("2") || qs.getIs_repair().equals("未冷矫")){
  1495. if(!Flaw_areas.contains(qs.getFlaw_desc())){
  1496. Flaw_areas.add(qs.getFlaw_desc());
  1497. }
  1498. }else{
  1499. Flaw_areas.remove(qs.getFlaw_desc());
  1500. }
  1501. }
  1502. for(String s:Flaw_areas){
  1503. if(flaw_desc.equals("")){
  1504. flaw_desc = "'"+s+"'";
  1505. }else{
  1506. flaw_desc = flaw_desc+",'"+s+"'";
  1507. }
  1508. }
  1509. if(flaw_desc.equals("")){
  1510. flaw_desc = "''";
  1511. }
  1512. List<QcmJudgeSurfaceFlaw> qjf = mapper.queryQcmJudgeSurfaceFlaw("select * "
  1513. + " from qcm_judge_surface_flaw a "
  1514. + " where surface_id = '"+sid+"' "
  1515. + " and flaw_desc in ("+flaw_desc+") ");
  1516. /*List<QcmJudgeSurfaceFlaw> qjf = mapper.queryQcmJudgeSurfaceFlaw("select * "
  1517. + " from qcm_judge_surface_flaw a "
  1518. + " where surface_id = '"+sid+"' "
  1519. + " and (is_repair = '0' or is_repair like '待修复%' or is_repair = '2' or is_repair like '未冷矫%') "
  1520. + " and not exists (select * "
  1521. + " from qcm_judge_surface_flaw b "
  1522. + " where surface_id = '"+sid+"' "
  1523. + " and (is_repair = '1' or is_repair like '已修复%' or is_repair = '3' or is_repair like '已冷矫%') "
  1524. + " and (a.flaw_desc = b.flaw_desc or (a.flaw_desc like '未翻面%' and b.flaw_desc like '已翻面%'))) ");*/
  1525. aXGLB = "402301";
  1526. if(qjf.size() ==0){
  1527. qjf = mapper.queryQcmJudgeSurfaceFlaw("select * from qcm_judge_surface_flaw where surface_id = '"+sid+"' and flaw_seq = '1' order by CREATE_TIME desc");
  1528. if(qjf.get(0).getIs_repair().equals("0")){
  1529. aXGLB = "402301";
  1530. }else{
  1531. aXGLB = "402303";
  1532. }
  1533. }
  1534. String type1 = "";
  1535. if(material_no.startsWith("H")){
  1536. type1 = "HB";
  1537. }else{
  1538. type1 = "ZB";
  1539. }
  1540. for(QcmJudgeSurfaceFlaw qjsf2:qjf){
  1541. List<HashMap> listgzl = mapper.query("select * from qcm_base_defect a where a.defect_desc = '"+qjsf2.getFlaw_desc()+"'");
  1542. if(listgzl.size() > 0){
  1543. if(listgzl.get(0).get("DEFECT_TYPE_CODE").equals("S")){
  1544. List<HashMap> listgz = mapper.query("select * from scm_base_info@xgcx a where a.sort_code = '4124' and memo like '%钢质%' and name_ = '"+qjsf2.getFlaw_desc()+"' AND ID_ LIKE '%"+type1+"%'");
  1545. if(aGZLB.equals("")){
  1546. if(listgz.size() > 0){
  1547. aGZLB = listgz.get(0).get("ID_").toString();
  1548. }else{
  1549. aGZLB = qjf.get(0).getFlaw_desc();
  1550. }
  1551. }
  1552. else{
  1553. if(listgz.size() > 0){
  1554. if(!aGZLB.contains(listgz.get(0).get("ID_").toString())){
  1555. aGZLB = aGZLB +";"+listgz.get(0).get("ID_").toString();
  1556. }
  1557. }else{
  1558. if(!aGZLB.contains(qjf.get(0).getFlaw_desc())){
  1559. aGZLB = aGZLB +";"+qjf.get(0).getFlaw_desc();
  1560. }
  1561. }
  1562. }
  1563. }else{
  1564. List<HashMap> listgy = mapper.query("select * from scm_base_info@xgcx a where a.sort_code = '4124' and memo like '%工艺%' and name_ = '"+qjsf2.getFlaw_desc()+"' AND ID_ LIKE '%"+type1+"%'");
  1565. if(aGYLB.equals("")){
  1566. if(listgy.size() > 0){
  1567. aGYLB = listgy.get(0).get("ID_").toString();
  1568. }else{
  1569. aGYLB = qjf.get(0).getFlaw_desc();
  1570. }
  1571. }
  1572. else{
  1573. if(listgy.size() > 0){
  1574. if(!aGYLB.contains(listgy.get(0).get("ID_").toString()))
  1575. {
  1576. aGYLB = aGYLB+";"+listgy.get(0).get("ID_").toString();
  1577. }
  1578. }else{
  1579. if(!aGYLB.contains(qjf.get(0).getFlaw_desc()))
  1580. {
  1581. aGYLB = aGYLB+";"+qjf.get(0).getFlaw_desc();
  1582. }
  1583. }
  1584. }
  1585. }
  1586. }else{
  1587. throw new Exception("请选择系统已有缺陷!");
  1588. }
  1589. }
  1590. }
  1591. bmjy((surface_type.equals("上表面") ? "S" : "X")+sid,material_no,aJudgeType, aGZLB, aGYLB, aXGLB,hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString(), hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString() , hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString(), params2.get(6).toString() , params2.get(7).toString(), params2.get(8).toString(), memo, "");
  1592. if(params2.get(4).toString().equals("订单外") || params2.get(4).toString().equals("协议品") || params2.get(4).toString().equals("次品") || params2.get(4).toString().equals("废品")){
  1593. order_down(material_no,"表面判定:"+params2.get(4).toString());
  1594. }
  1595. //轧损判废
  1596. if(flag1.equals("1")){
  1597. ultimateJudgeAuto(material_no,params2.get(6).toString(),"4");
  1598. }
  1599. QcmJudgeLog qjl = new QcmJudgeLog();
  1600. qjl.setJudge_type("R");
  1601. qjl.setMaterial_no(material_no);
  1602. qjl.setCreate_name("system");
  1603. qjl.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  1604. mapper.insertQcmJudgeLog(qjl);
  1605. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  1606. qjog.setOperate_name(params2.get(6).toString());
  1607. qjog.setOperate_type("表面检验判定/"+surface_type);
  1608. qjog.setParams(material_no);
  1609. qjog.setBatchno(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  1610. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  1611. qjog.setJudge_result(params2.get(1).toString());
  1612. mapper.insertQcmJudgeOperateLog(qjog);
  1613. SqlSession.commit();
  1614. } catch (Exception e) {
  1615. cro.setResult( "检验登记失败!"+ e.getMessage());
  1616. cro.setV_errMsg( "检验登记失败!"+ e.getMessage());
  1617. cro.setV_errCode(-1);
  1618. SqlSession.rollback();
  1619. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.doAddFlaw2:【" + params1.toString() + "," + params2.toString() + "】" + e);
  1620. }
  1621. SqlSession.close();
  1622. /*final List<HashMap> hashmap1 = hashmap;
  1623. Thread t1 = new Thread(){
  1624. @Override
  1625. public void run(){
  1626. QcmJhyElementsServiceImpl qje = new QcmJhyElementsServiceImpl();
  1627. //调用熔炼成分判定 RlChemAutoJudgeByHuman
  1628. try {
  1629. qje.RlChemAutoJudgeByHuman1(hashmap1,hashmap1.get(0).get("HEAT_NO").toString(),params2.get(0).toString(),hashmap1.get(0).get("DESIGN_KEY").toString(),"system",hashmap1.get(0).get("GRADE_NAME")==null?"":hashmap1.get(0).get("GRADE_NAME").toString());
  1630. } catch (Exception e2) {
  1631. // TODO Auto-generated catch block
  1632. e2.printStackTrace();
  1633. }
  1634. }
  1635. };
  1636. t1.start();
  1637. Thread t2 = new Thread(){
  1638. @Override
  1639. public void run(){
  1640. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  1641. try {
  1642. qjpc.FirstJudgeAutoBySystem(hashmap1,params2.get(0).toString(),"system");
  1643. } catch (Exception e1) {
  1644. // TODO Auto-generated catch block
  1645. e1.printStackTrace();
  1646. }
  1647. }
  1648. };
  1649. t2.start();
  1650. Thread t3 = new Thread(){
  1651. @Override
  1652. public void run(){
  1653. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  1654. //综合判定
  1655. try {
  1656. qjpc.ultimateJudgeAutoBySystem(hashmap1,params2.get(0).toString(), "system");
  1657. } catch (Exception e) {
  1658. // TODO Auto-generated catch block
  1659. e.printStackTrace();
  1660. }
  1661. }
  1662. };
  1663. t3.start();*/
  1664. return cro;
  1665. }
  1666. /** 中厚板表面判定
  1667. * 质量判定-表面检验与表面:检验登记
  1668. * 检验实绩信息 params2
  1669. *
  1670. * 产品序号
  1671. * 检验结果代码
  1672. * 检验结果
  1673. * 质量等级代码
  1674. * 质量等级
  1675. * 检验备注
  1676. * 用户名
  1677. * 班次
  1678. * 班组
  1679. *
  1680. * 缺陷实绩信息 params1
  1681. * 主缺陷标识
  1682. * 缺陷序号
  1683. * 缺陷代码
  1684. * 缺陷描述
  1685. * 缺陷位置代码
  1686. * 缺陷位置描述
  1687. * 缺陷重量
  1688. * 缺陷数量
  1689. * 备注
  1690. * 是否修复
  1691. * */
  1692. @SuppressWarnings({ "unused", "rawtypes" })
  1693. public CoreReturnObject doAddFlaw(ArrayList<List> params1,final ArrayList params2) throws Exception {
  1694. if(params2.size() == 0){
  1695. cro.setV_errCode(-1);
  1696. cro.setV_errMsg("请传入数据");
  1697. return cro;
  1698. }
  1699. String material_no = params2.get(0).toString();
  1700. List<HashMap> hashmap = new ArrayList<HashMap>();
  1701. if(material_no.startsWith("Z")){
  1702. hashmap = mapper.doQueryMaterialInfoZB(material_no);
  1703. }else{
  1704. hashmap = mapper.doQueryMaterialInfoHB(material_no);
  1705. }
  1706. if(hashmap.size() == 0){
  1707. if(material_no.startsWith("H")){
  1708. hashmap = mapper.doQueryMaterialInfoZB(material_no);
  1709. }else{
  1710. hashmap = mapper.doQueryMaterialInfoHB(material_no);
  1711. }
  1712. }
  1713. if(hashmap == null){
  1714. throw new Exception("未找到库存信息!");
  1715. }
  1716. try {
  1717. String Inspection_lot = "";
  1718. String flaw_area = "";
  1719. //判断是否进行了综合判定
  1720. String sql = "select * from zj_result_all@xgcx where BILLETID = '"+material_no+"'";
  1721. List<HashMap> list1 = mapper.query(sql);
  1722. if(list1.size() >0){
  1723. for(HashMap list:list1){
  1724. if(list.get("JUDGERESULT") != null && !list.get("JUDGERESULT").toString().equals("0")){
  1725. throw new Exception("该产品序号【"+material_no+"】做了综合判定,不能做检验登记!");
  1726. }
  1727. if(list.get("SFU_IS_LOCK").equals("1") || list.get("SFD_IS_LOCK").equals("1") || list.get("SFE_IS_LOCK").equals("1")){
  1728. throw new Exception("该该产品序号【"+material_no+"】已经锁定,不能做检验登记!");
  1729. }
  1730. Inspection_lot = list.get("BILLETID_JY").toString();
  1731. }
  1732. }else{
  1733. throw new Exception("未找到库存信息!");
  1734. }
  1735. sql = "select * from QCM_JUDGE_SURFACE where MATERIAL_NO = '"+material_no+"' order by SURFACE_ID desc";
  1736. List<QcmJudgeSurface> oldSuf = mapper.queryQcmJudgeSurfaces(sql);
  1737. if(oldSuf.size() > 0){
  1738. if ("1".equals(oldSuf.get(0).getSfu_is_lock()) || "1".equals(oldSuf.get(0).getSfd_is_lock()) || "1".equals(oldSuf.get(0).getSfe_is_lock())) {
  1739. cro.setV_errCode(-1);
  1740. cro.setV_errMsg("物料["+material_no+"],已经表面锁定,不能重新判定,请到异常材界面进行物料处理后操作!");
  1741. return cro;
  1742. }
  1743. }
  1744. String sid="";
  1745. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  1746. //获取表检类型
  1747. String type = "U";
  1748. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  1749. sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like '"+type+ ymd+"%' order by surface_id desc) where rownum <= 1 ";
  1750. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  1751. int icount = 0;
  1752. if (list != null && list.size() > 0) {
  1753. String s=list.get(0).getSurface_id();
  1754. icount = Integer.parseInt(s.substring(s.length()-5,s.length()));
  1755. }
  1756. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  1757. icount++;
  1758. sid=type+ymd + String.format("%05d",icount);
  1759. //插入表面实绩表
  1760. for(List qjs:params1){
  1761. if(qjs.get(0).toString().equals("1")){
  1762. flaw_area = qjs.get(4).toString();
  1763. }
  1764. }
  1765. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  1766. qjsf.setSurface_id(sid);
  1767. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  1768. qjsf.setBatch_no(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  1769. qjsf.setBoard_no(hashmap.get(0).get("BOARD_NO") == null ?"":hashmap.get(0).get("BOARD_NO").toString());
  1770. qjsf.setInspection_lot(Inspection_lot);
  1771. qjsf.setMaterial_no(material_no);
  1772. qjsf.setSf_result_code(params2.get(1).toString());
  1773. qjsf.setSf_result_desc(params2.get(2).toString());
  1774. qjsf.setLevel_code(params2.get(3).toString());
  1775. qjsf.setLevel_desc(params2.get(4).toString());
  1776. qjsf.setSf_type(type);
  1777. qjsf.setSf_memo(params2.get(5).toString());
  1778. qjsf.setSfd_is_lock("0");
  1779. qjsf.setSfe_is_lock("0");
  1780. qjsf.setSfu_is_lock("0");
  1781. if(!flaw_area.equals("")){
  1782. if(flaw_area.equals("U")&&params2.get(1).toString().equals("2")){
  1783. qjsf.setSfu_is_lock("1");
  1784. }else if(flaw_area.equals("D")&&params2.get(1).toString().equals("2")){
  1785. qjsf.setSfd_is_lock("1");
  1786. }else if(flaw_area.equals("E")&&params2.get(1).toString().equals("2")){
  1787. qjsf.setSfe_is_lock("1");
  1788. }else if(params2.get(1).toString().equals("2")){
  1789. qjsf.setSfu_is_lock("1");
  1790. qjsf.setSfd_is_lock("1");
  1791. qjsf.setSfe_is_lock("1");
  1792. }
  1793. }
  1794. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY").toString());
  1795. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY").toString());
  1796. qjsf.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  1797. qjsf.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  1798. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  1799. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  1800. qjsf.setWrk_ord(params2.get(7).toString());
  1801. qjsf.setWrk_grp(params2.get(8).toString());
  1802. qjsf.setJudge_name(params2.get(6).toString());
  1803. qjsf.setSf_memo(params2.get(5).toString());
  1804. qjsf.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  1805. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  1806. qjsf.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  1807. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  1808. qjsf.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null?"":hashmap.get(0).get("STEEL_CODE").toString());
  1809. qjsf.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  1810. mapper.insertQcmJudgeSurface(qjsf);
  1811. Long seq=1L;
  1812. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  1813. for(List qjs:params1){
  1814. QcmJudgeSurfaceFlaw qjsffs = new QcmJudgeSurfaceFlaw();
  1815. qjsffs.setPrimary_flag(qjs.get(0).toString());
  1816. qjsffs.setIs_repair("0");
  1817. qjsffs.setFlaw_seq(Long.parseLong(qjs.get(1).toString()));
  1818. qjsffs.setFlaw_code(qjs.get(2).toString());
  1819. qjsffs.setFlaw_desc(qjs.get(3).toString());
  1820. qjsffs.setFlaw_area(qjs.get(4).toString());
  1821. List<HashMap> lists = finddefecttype(qjs.get(2).toString());
  1822. if(lists.size()>0){
  1823. qjsffs.setFlaw_desc(lists.get(0).get("DEFECT_DESC")==null?"":lists.get(0).get("DEFECT_DESC").toString());
  1824. qjsffs.setFlaw_type_code(lists.get(0).get("DEFECT_TYPE_CODE")==null?"":lists.get(0).get("DEFECT_TYPE_CODE").toString());
  1825. qjsffs.setFlaw_type_desc(lists.get(0).get("DEFECT_TYPE_DESC") == null ?"":lists.get(0).get("DEFECT_TYPE_DESC").toString());
  1826. }
  1827. qjsffs.setFlaw_pos_code(qjs.get(5).toString());
  1828. qjsffs.setFlaw_pos_desc(qjs.get(6).toString());
  1829. qjsffs.setFlaw_dir_code(qjs.get(7).toString());
  1830. qjsffs.setFlaw_dir_desc(qjs.get(8).toString());
  1831. qjsffs.setFlaw_size_code(qjs.get(9).toString());
  1832. qjsffs.setFlaw_size_desc(qjs.get(10).toString());
  1833. qjsffs.setFlaw_lv_code(qjs.get(11).toString());
  1834. qjsffs.setFlaw_lv_desc(qjs.get(12).toString());
  1835. if(!qjs.get(13).equals("")){
  1836. qjsffs.setFlaw_quantity(Long.parseLong(qjs.get(13).toString()));
  1837. }
  1838. qjsffs.setMemo(qjs.get(14).toString());
  1839. qjsffs.setIs_repair(qjs.get(15).toString());
  1840. qjsflist.add(qjsffs);
  1841. seq = Long.parseLong(qjs.get(1).toString());
  1842. seq++;
  1843. }
  1844. // 获取物料历史缺陷集合
  1845. String conn = "and material_no = '"+ material_no +"'";
  1846. sql = " select * from QCM_JUDGE_SURFACE where 1=1 "+conn+"";
  1847. List<QcmJudgeSurface> qjsListOld = mapper.queryQcmJudgeSurfaces(sql);
  1848. if(qjsListOld!=null && qjsListOld.size()>0){
  1849. String sufIdStr="";
  1850. for(QcmJudgeSurface qjs1 : qjsListOld){
  1851. if("".equals(sufIdStr))
  1852. sufIdStr += "'"+qjs1.getSurface_id()+"'";
  1853. else
  1854. sufIdStr += ",'"+qjs1.getSurface_id()+"'";
  1855. }
  1856. String condition = "and surface_id in ("+sufIdStr+")";
  1857. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition+"";
  1858. List<QcmJudgeSurfaceFlaw> qjsffList = mapper.queryQcmJudgeSurfaceFlaw(sql);
  1859. String condition1 = "and surface_id in ("+sufIdStr+") and primary_flag ='1'";
  1860. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition1+"";
  1861. List<QcmJudgeSurfaceFlaw> qjsffList1 = mapper.queryQcmJudgeSurfaceFlaw(sql);
  1862. // 之前已经登记过缺陷,则将此次所有缺陷都改为非主缺陷
  1863. if(qjsffList1!=null && qjsffList1.size()>0){
  1864. //将获取的缺陷实绩信息插入表面缺陷实绩表
  1865. for(QcmJudgeSurfaceFlaw qjsff1 : qjsflist){
  1866. if(!qjsffList1.get(0).getFlaw_code().equals(qjsff1.getFlaw_code())){
  1867. qjsff1.setPrimary_flag("0");
  1868. }
  1869. }
  1870. }
  1871. for(QcmJudgeSurfaceFlaw qjsf1:qjsffList){
  1872. Boolean flag = false;
  1873. for(QcmJudgeSurfaceFlaw qjsf2:qjsflist){
  1874. if(qjsf1.getFlaw_code().equals(qjsf2.getFlaw_code())){
  1875. flag = true;
  1876. break;
  1877. }
  1878. }
  1879. if(!flag){
  1880. qjsf1.setFlaw_seq(seq);
  1881. qjsflist.add(qjsf1);
  1882. seq++;
  1883. }
  1884. }
  1885. }
  1886. int seq1 = 0;
  1887. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  1888. if(StringUtils.isNotEmpty(qjsff.getFlaw_area())) {
  1889. //将获取的缺陷实绩信息插入表面缺陷实绩表
  1890. String[] strList = qjsff.getFlaw_area().split(",");
  1891. for(String str : strList){
  1892. qjsff.setSurface_id(sid);
  1893. qjsff.setFlaw_area(str);
  1894. qjsff.setCreate_name(params2.get(6).toString());//创建人
  1895. qjsff.setCreate_time(new Date());//创建时间
  1896. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  1897. seq1++;
  1898. }
  1899. }
  1900. QcmJudgeUltimateReason qjr = new QcmJudgeUltimateReason();
  1901. qjr.setMaterial_no(material_no);
  1902. qjr.setType_code(qjsff.getFlaw_area().equals("")?"U":qjsff.getFlaw_area());
  1903. qjr.setRecord_id(sid);
  1904. qjr.setSeq(seq1);
  1905. qjr.setPhy_code_s(qjsff.getFlaw_code());
  1906. qjr.setPhy_name_s(qjsff.getFlaw_desc());
  1907. qjr.setCreate_name(params2.get(6).toString());
  1908. qjr.setCreate_time(new Date());
  1909. mapper.insertQcmJudgeUltimateReason(qjr);
  1910. }
  1911. //更新库存表上表,下表,边部结果
  1912. if(list1.size() >0){
  1913. ZjResultAll zra = new ZjResultAll();
  1914. zra.setBilletid(material_no);
  1915. zra.setSurfaceresult("1");
  1916. zra.setSurfaceresult_desc("合格");
  1917. zra.setSurfaceid(sid);
  1918. zra.setSfd_is_lock("0");
  1919. zra.setSfe_is_lock("0");
  1920. zra.setSfu_is_lock("0");
  1921. zra.setUd_surface_result("1");
  1922. zra.setUd_surface_result_desc("合格");
  1923. zra.setUd_surface_result_id_desc(sid);
  1924. zra.setUp_surface_result("1");
  1925. zra.setUp_surface_result_desc("合格");
  1926. zra.setUp_surface_result_id_desc(sid);
  1927. zra.setMarginal_result("1");
  1928. zra.setMarginal_result_desc("合格");
  1929. zra.setMarginal_result_id_desc(sid);
  1930. //不合格
  1931. if(!params2.get(1).toString().equals("1")){
  1932. if(type.equals("U")){
  1933. zra.setUp_surface_result(params2.get(1).toString());
  1934. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1935. zra.setSfu_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1936. zra.setSurfaceresult(params2.get(1).toString());
  1937. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1938. }
  1939. else if(type.equals("D")){
  1940. zra.setUd_surface_result(params2.get(1).toString());
  1941. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1942. zra.setSfd_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1943. zra.setSurfaceresult(params2.get(1).toString());
  1944. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1945. }
  1946. else if(type.equals("E")){
  1947. zra.setMarginal_result(params2.get(1).toString());
  1948. zra.setMarginal_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1949. zra.setSfe_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1950. zra.setSurfaceresult(params2.get(1).toString());
  1951. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1952. }
  1953. else{
  1954. zra.setMarginal_result(params2.get(1).toString());
  1955. zra.setMarginal_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1956. zra.setSfu_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1957. zra.setSurfaceresult(params2.get(1).toString());
  1958. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1959. zra.setUp_surface_result(params2.get(1).toString());
  1960. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1961. zra.setSfd_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1962. zra.setUd_surface_result(params2.get(1).toString());
  1963. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  1964. zra.setSfe_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  1965. }
  1966. }
  1967. mapper.UpdateJugeResultB(zra);
  1968. }
  1969. //异常材料处置,进行物料封锁合格时,直接进行异常材料处置业务
  1970. if ("2".equals(params2.get(1).toString())) {
  1971. //生成质量封锁记录号
  1972. int count=0;
  1973. QCMJudgeLocking qjlk = new QCMJudgeLocking();
  1974. SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  1975. String date=sdf.format(new Date());
  1976. String condition = " and MATERIAL_NO = '"+material_no+"' order by LOCK_SEQ desc ";
  1977. List<QCMJudgeLocking> qjl = mapper.queryQCMJudgeLocking(condition);
  1978. if(qjl.size() > 0){
  1979. count=qjl.get(0).getLock_seq();
  1980. }
  1981. count++;
  1982. //锁定记录号
  1983. int lock_seq=count;
  1984. //获取缺陷
  1985. String flaw="";
  1986. String strsql = "select * from QCM_JUDGE_SURFACE_FLAW where SURFACE_ID in (select SURFACE_ID from qcm_judge_surface where material_no = '"+material_no+"') ";
  1987. List<QcmJudgeSurfaceFlaw> qjsft = mapper.queryQcmJudgeSurfaceFlaw(strsql);
  1988. for(QcmJudgeSurfaceFlaw qjsf1 :qjsft){
  1989. if(!flaw.contains(qjsf1.getFlaw_desc()))
  1990. {
  1991. flaw+=qjsf1.getFlaw_desc()+",";
  1992. }
  1993. }
  1994. String lock_memo = "";
  1995. if (",".equals(flaw.substring(flaw.length()-1, flaw.length()))) {
  1996. lock_memo = "表面:"+flaw.substring(0,flaw.length()-1);
  1997. }else {
  1998. lock_memo = "表面:"+flaw.substring(0,flaw.length());
  1999. }
  2000. //插入封锁表
  2001. qjlk.setLock_type_code("F");
  2002. qjlk.setLock_type_desc("表面检验");
  2003. qjlk.setMaterial_no(material_no);
  2004. qjlk.setLock_seq(lock_seq);
  2005. qjlk.setLock_id(sid);
  2006. qjlk.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  2007. qjlk.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  2008. qjlk.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  2009. qjlk.setPlan_no(hashmap.get(0).get("PLAN_NO") == null ?"":hashmap.get(0).get("PLAN_NO").toString());
  2010. qjlk.setHt_no(hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString());
  2011. qjlk.setDesign_key(hashmap.get(0).get("DESIGN_KEY")== null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  2012. qjlk.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  2013. qjlk.setPline_code(hashmap.get(0).get("PLINE_CODE").toString());
  2014. qjlk.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  2015. qjlk.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  2016. qjlk.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  2017. qjlk.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  2018. qjlk.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  2019. qjlk.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  2020. qjlk.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null ?"":hashmap.get(0).get("STEEL_CODE").toString());
  2021. qjlk.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  2022. qjlk.setHeight(hashmap.get(0).get("THICK") == null?"": hashmap.get(0).get("THICK").toString());
  2023. qjlk.setFic_locking("1");
  2024. qjlk.setLock_name(params2.get(6).toString());
  2025. qjlk.setLock_memo(lock_memo+"-"+ params2.get(4).toString());
  2026. mapper.insertQCMJudgeLocking(qjlk);
  2027. }
  2028. QcmJudgeLog qjl = new QcmJudgeLog();
  2029. qjl.setJudge_type("R");
  2030. qjl.setMaterial_no(material_no);
  2031. qjl.setCreate_name("system");
  2032. qjl.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  2033. mapper.insertQcmJudgeLog(qjl);
  2034. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  2035. qjog.setOperate_name(params2.get(6).toString());
  2036. qjog.setOperate_type("表面检验判定");
  2037. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  2038. qjog.setParams(material_no);
  2039. qjog.setBatchno(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  2040. qjog.setJudge_result(params2.get(1).toString());
  2041. mapper.insertQcmJudgeOperateLog(qjog);
  2042. SqlSession.commit();
  2043. } catch (Exception e) {
  2044. cro.setResult( "检验登记失败!"+ e.getMessage());
  2045. cro.setV_errCode(-1);
  2046. logger.info(e.getMessage());
  2047. SqlSession.rollback();
  2048. }
  2049. SqlSession.close();
  2050. /*final List<HashMap> hashmap1 = hashmap;
  2051. Thread t1 = new Thread(){
  2052. @Override
  2053. public void run(){
  2054. QcmJhyElementsServiceImpl qje = new QcmJhyElementsServiceImpl();
  2055. //调用熔炼成分判定 RlChemAutoJudgeByHuman
  2056. try {
  2057. qje.RlChemAutoJudgeByHuman1(hashmap1,hashmap1.get(0).get("HEAT_NO").toString(),params2.get(0).toString(),hashmap1.get(0).get("DESIGN_KEY").toString(),"system",hashmap1.get(0).get("GRADE_NAME")==null?"":hashmap1.get(0).get("GRADE_NAME").toString());
  2058. } catch (Exception e2) {
  2059. // TODO Auto-generated catch block
  2060. e2.printStackTrace();
  2061. }
  2062. }
  2063. };
  2064. t1.start();
  2065. Thread t2 = new Thread(){
  2066. @Override
  2067. public void run(){
  2068. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  2069. try {
  2070. qjpc.FirstJudgeAutoBySystem(hashmap1,params2.get(0).toString(),"system");
  2071. } catch (Exception e1) {
  2072. // TODO Auto-generated catch block
  2073. e1.printStackTrace();
  2074. }
  2075. }
  2076. };
  2077. t2.start();
  2078. Thread t3 = new Thread(){
  2079. @Override
  2080. public void run(){
  2081. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  2082. //综合判定
  2083. try {
  2084. qjpc.ultimateJudgeAutoBySystem(hashmap1,params2.get(0).toString(), "system");
  2085. } catch (Exception e) {
  2086. // TODO Auto-generated catch block
  2087. e.printStackTrace();
  2088. }
  2089. }
  2090. };
  2091. t3.start();*/
  2092. return cro;
  2093. }
  2094. @SuppressWarnings({ "unused", "rawtypes" })
  2095. public CoreReturnObject doAddFlawX(ArrayList<List> params1,final ArrayList params2) throws Exception {
  2096. if(params2.size() == 0){
  2097. cro.setV_errCode(-1);
  2098. cro.setV_errMsg("请传入数据");
  2099. return cro;
  2100. }
  2101. String material_no = params2.get(0).toString();
  2102. //判断是否进行综合判定,是否在库
  2103. List<HashMap> hashmap = new ArrayList<HashMap>();
  2104. List<HashMap> hashmap1 = new ArrayList<HashMap>();
  2105. String sql = "select * from zj_result_all@xgcx where BILLETID = '"+material_no+"' and JUDGERESULT <> '0' ";
  2106. hashmap1 = mapper.query(sql);
  2107. if(hashmap1.size() > 0){
  2108. if(hashmap1.get(0).get("JUDGERESULT").equals("4")){
  2109. throw new Exception("已判废品,不可操作!");
  2110. }
  2111. }
  2112. if(hashmap1.size() > 0) {
  2113. List<HashMap> list1 = mapper.query(sql);
  2114. sql = "select billetid from kcx_turnofflist@xgcx where storagestatus = '501602' and billetid = '" + material_no + "'";
  2115. hashmap = mapper.query(sql);
  2116. if (hashmap.size() == 0) {
  2117. throw new Exception("未找到在库的库存信息!");
  2118. }
  2119. //撤销判定
  2120. cancelUltimateJudge(params2.get(6).toString(),material_no,hashmap1.get(0).get("JUDGEID").toString());
  2121. }
  2122. hashmap = mapper.doQueryMaterialInfoX(material_no);
  2123. if(hashmap.size() == 0){
  2124. throw new Exception("未找到库存信息!");
  2125. }
  2126. try {
  2127. String Inspection_lot = "";
  2128. String flaw_area = "";
  2129. //判断是否进行了综合判定
  2130. sql = "select * from zj_result_all@xgcx where BILLETID = '"+material_no+"'";
  2131. List<HashMap> list1 = mapper.query(sql);
  2132. if(list1.size() >0){
  2133. for(HashMap list:list1){
  2134. if(list.get("JUDGERESULT") != null && !list.get("JUDGERESULT").toString().equals("0")){
  2135. throw new Exception("该产品序号【"+material_no+"】做了综合判定,不能做检验登记!");
  2136. }
  2137. if(list.get("SFU_IS_LOCK").equals("1") || list.get("SFD_IS_LOCK").equals("1") || list.get("SFE_IS_LOCK").equals("1")){
  2138. throw new Exception("该该产品序号【"+material_no+"】已经锁定,不能做检验登记!");
  2139. }
  2140. Inspection_lot = list.get("BILLETID_JY").toString();
  2141. }
  2142. }else{
  2143. throw new Exception("未找到库存信息!");
  2144. }
  2145. sql = "select * from QCM_JUDGE_SURFACE where MATERIAL_NO = '"+material_no+"' order by SURFACE_ID desc";
  2146. List<QcmJudgeSurface> oldSuf = mapper.queryQcmJudgeSurfaces(sql);
  2147. if(oldSuf.size() > 0){
  2148. if ("1".equals(oldSuf.get(0).getSfu_is_lock()) || "1".equals(oldSuf.get(0).getSfd_is_lock()) || "1".equals(oldSuf.get(0).getSfe_is_lock())) {
  2149. cro.setV_errCode(-1);
  2150. cro.setV_errMsg("物料["+material_no+"],已经表面锁定,不能重新判定,请到异常材界面进行物料处理后操作!");
  2151. return cro;
  2152. }
  2153. }
  2154. String sid="";
  2155. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  2156. //获取表检类型
  2157. String type = "U";
  2158. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  2159. sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like 'UX"+ ymd+"%' order by surface_id desc) where rownum <= 1 ";
  2160. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  2161. int icount = 0;
  2162. if (list != null && list.size() > 0) {
  2163. String s=list.get(0).getSurface_id();
  2164. icount = Integer.parseInt(s.substring(s.length()-5,s.length()));
  2165. }
  2166. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  2167. icount++;
  2168. sid="UX"+ymd + String.format("%05d",icount);
  2169. //插入表面实绩表
  2170. for(List qjs:params1){
  2171. if(qjs.get(0).toString().equals("1")){
  2172. flaw_area = qjs.get(4).toString();
  2173. }
  2174. }
  2175. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  2176. qjsf.setSurface_id(sid);
  2177. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  2178. qjsf.setBatch_no(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  2179. qjsf.setBoard_no(hashmap.get(0).get("BOARD_NO") == null ?"":hashmap.get(0).get("BOARD_NO").toString());
  2180. qjsf.setInspection_lot(Inspection_lot);
  2181. qjsf.setMaterial_no(material_no);
  2182. qjsf.setSf_result_code(params2.get(1).toString());
  2183. qjsf.setSf_result_desc(params2.get(2).toString());
  2184. qjsf.setLevel_code(params2.get(3).toString());
  2185. qjsf.setLevel_desc(params2.get(4).toString());
  2186. qjsf.setSf_type(type);
  2187. qjsf.setSf_memo(params2.get(5).toString());
  2188. qjsf.setSfd_is_lock("0");
  2189. qjsf.setSfe_is_lock("0");
  2190. qjsf.setSfu_is_lock("0");
  2191. if(!flaw_area.equals("")){
  2192. if(flaw_area.equals("U")&&params2.get(1).toString().equals("2")){
  2193. qjsf.setSfu_is_lock("1");
  2194. }else if(flaw_area.equals("D")&&params2.get(1).toString().equals("2")){
  2195. qjsf.setSfd_is_lock("1");
  2196. }else if(flaw_area.equals("E")&&params2.get(1).toString().equals("2")){
  2197. qjsf.setSfe_is_lock("1");
  2198. }else if(params2.get(1).toString().equals("2")){
  2199. qjsf.setSfu_is_lock("1");
  2200. qjsf.setSfd_is_lock("1");
  2201. qjsf.setSfe_is_lock("1");
  2202. }
  2203. }
  2204. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY").toString());
  2205. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY").toString());
  2206. qjsf.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  2207. qjsf.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  2208. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  2209. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  2210. qjsf.setWrk_ord(params2.get(7).toString());
  2211. qjsf.setWrk_grp(params2.get(8).toString());
  2212. qjsf.setJudge_name(params2.get(6).toString());
  2213. qjsf.setSf_memo(params2.get(5).toString());
  2214. qjsf.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  2215. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  2216. qjsf.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  2217. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  2218. qjsf.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null?"":hashmap.get(0).get("STEEL_CODE").toString());
  2219. qjsf.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  2220. mapper.insertQcmJudgeSurface(qjsf);
  2221. Long seq=1L;
  2222. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  2223. for(List qjs:params1){
  2224. QcmJudgeSurfaceFlaw qjsffs = new QcmJudgeSurfaceFlaw();
  2225. qjsffs.setPrimary_flag(qjs.get(0).toString());
  2226. qjsffs.setIs_repair("0");
  2227. qjsffs.setFlaw_seq(Long.parseLong(qjs.get(1).toString()));
  2228. qjsffs.setFlaw_code(qjs.get(2).toString());
  2229. qjsffs.setFlaw_desc(qjs.get(3).toString());
  2230. qjsffs.setFlaw_area(qjs.get(4).toString());
  2231. List<HashMap> lists = finddefecttype(qjs.get(2).toString());
  2232. if(lists.size()>0){
  2233. qjsffs.setFlaw_desc(lists.get(0).get("DEFECT_DESC")==null?"":lists.get(0).get("DEFECT_DESC").toString());
  2234. qjsffs.setFlaw_type_code(lists.get(0).get("DEFECT_TYPE_CODE")==null?"":lists.get(0).get("DEFECT_TYPE_CODE").toString());
  2235. qjsffs.setFlaw_type_desc(lists.get(0).get("DEFECT_TYPE_DESC") == null ?"":lists.get(0).get("DEFECT_TYPE_DESC").toString());
  2236. }
  2237. qjsffs.setFlaw_pos_code(qjs.get(5).toString());
  2238. qjsffs.setFlaw_pos_desc(qjs.get(6).toString());
  2239. qjsffs.setFlaw_dir_code(qjs.get(7).toString());
  2240. qjsffs.setFlaw_dir_desc(qjs.get(8).toString());
  2241. qjsffs.setFlaw_size_code(qjs.get(9).toString());
  2242. qjsffs.setFlaw_size_desc(qjs.get(10).toString());
  2243. qjsffs.setFlaw_lv_code(qjs.get(11).toString());
  2244. qjsffs.setFlaw_lv_desc(qjs.get(12).toString());
  2245. if(!qjs.get(13).equals("")){
  2246. qjsffs.setFlaw_quantity(Long.parseLong(qjs.get(13).toString()));
  2247. }
  2248. qjsffs.setMemo(qjs.get(14).toString());
  2249. qjsffs.setIs_repair(qjs.get(15).toString());
  2250. qjsflist.add(qjsffs);
  2251. seq = Long.parseLong(qjs.get(1).toString());
  2252. seq++;
  2253. }
  2254. // 获取物料历史缺陷集合
  2255. String conn = "and material_no = '"+ material_no +"'";
  2256. sql = " select * from QCM_JUDGE_SURFACE where 1=1 "+conn+"";
  2257. List<QcmJudgeSurface> qjsListOld = mapper.queryQcmJudgeSurfaces(sql);
  2258. if(qjsListOld!=null && qjsListOld.size()>0){
  2259. String sufIdStr="";
  2260. for(QcmJudgeSurface qjs1 : qjsListOld){
  2261. if("".equals(sufIdStr))
  2262. sufIdStr += "'"+qjs1.getSurface_id()+"'";
  2263. else
  2264. sufIdStr += ",'"+qjs1.getSurface_id()+"'";
  2265. }
  2266. String condition = "and surface_id in ("+sufIdStr+")";
  2267. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition+"";
  2268. List<QcmJudgeSurfaceFlaw> qjsffList = mapper.queryQcmJudgeSurfaceFlaw(sql);
  2269. String condition1 = "and surface_id in ("+sufIdStr+") and primary_flag ='1'";
  2270. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition1+"";
  2271. List<QcmJudgeSurfaceFlaw> qjsffList1 = mapper.queryQcmJudgeSurfaceFlaw(sql);
  2272. // 之前已经登记过缺陷,则将此次所有缺陷都改为非主缺陷
  2273. if(qjsffList1!=null && qjsffList1.size()>0){
  2274. //将获取的缺陷实绩信息插入表面缺陷实绩表
  2275. for(QcmJudgeSurfaceFlaw qjsff1 : qjsflist){
  2276. if(!qjsffList1.get(0).getFlaw_code().equals(qjsff1.getFlaw_code())){
  2277. qjsff1.setPrimary_flag("0");
  2278. }
  2279. }
  2280. }
  2281. for(QcmJudgeSurfaceFlaw qjsf1:qjsffList){
  2282. Boolean flag = false;
  2283. for(QcmJudgeSurfaceFlaw qjsf2:qjsflist){
  2284. if(qjsf1.getFlaw_code().equals(qjsf2.getFlaw_code())){
  2285. flag = true;
  2286. break;
  2287. }
  2288. }
  2289. if(!flag){
  2290. qjsf1.setFlaw_seq(seq);
  2291. qjsflist.add(qjsf1);
  2292. seq++;
  2293. }
  2294. }
  2295. }
  2296. int seq1 = 0;
  2297. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  2298. //将获取的缺陷实绩信息插入表面缺陷实绩表
  2299. if(StringUtils.isNotEmpty(qjsff.getFlaw_area())) {
  2300. String[] strList = qjsff.getFlaw_area().split(",");
  2301. for(String str : strList){
  2302. qjsff.setSurface_id(sid);
  2303. qjsff.setFlaw_area(str);
  2304. qjsff.setCreate_name(params2.get(6).toString());//创建人
  2305. qjsff.setCreate_time(new Date());//创建时间
  2306. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  2307. seq1++;
  2308. }
  2309. }
  2310. QcmJudgeUltimateReason qjr = new QcmJudgeUltimateReason();
  2311. qjr.setMaterial_no(material_no);
  2312. qjr.setType_code(qjsff.getFlaw_area().equals("")?"U":qjsff.getFlaw_area());
  2313. qjr.setRecord_id(sid);
  2314. qjr.setSeq(seq1);
  2315. qjr.setPhy_code_s(qjsff.getFlaw_code());
  2316. qjr.setPhy_name_s(qjsff.getFlaw_desc());
  2317. qjr.setCreate_name(params2.get(6).toString());
  2318. qjr.setCreate_time(new Date());
  2319. mapper.insertQcmJudgeUltimateReason(qjr);
  2320. }
  2321. //更新库存表上表,下表,边部结果
  2322. if(list1.size() >0){
  2323. ZjResultAll zra = new ZjResultAll();
  2324. zra.setBilletid(material_no);
  2325. zra.setSurfaceresult("1");
  2326. zra.setSurfaceresult_desc("合格");
  2327. zra.setSurfaceid(sid);
  2328. zra.setSfd_is_lock("0");
  2329. zra.setSfe_is_lock("0");
  2330. zra.setSfu_is_lock("0");
  2331. zra.setUd_surface_result("1");
  2332. zra.setUd_surface_result_desc("合格");
  2333. zra.setUd_surface_result_id_desc(sid);
  2334. zra.setUp_surface_result("1");
  2335. zra.setUp_surface_result_desc("合格");
  2336. zra.setUp_surface_result_id_desc(sid);
  2337. zra.setMarginal_result("1");
  2338. zra.setMarginal_result_desc("合格");
  2339. zra.setMarginal_result_id_desc(sid);
  2340. //不合格
  2341. if(!params2.get(1).toString().equals("1")){
  2342. if(type.equals("U")){
  2343. zra.setUp_surface_result(params2.get(1).toString());
  2344. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2345. zra.setSfu_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  2346. zra.setSurfaceresult(params2.get(1).toString());
  2347. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2348. }
  2349. else if(type.equals("D")){
  2350. zra.setUd_surface_result(params2.get(1).toString());
  2351. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2352. zra.setSfd_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  2353. zra.setSurfaceresult(params2.get(1).toString());
  2354. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2355. }
  2356. else if(type.equals("E")){
  2357. zra.setMarginal_result(params2.get(1).toString());
  2358. zra.setMarginal_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2359. zra.setSfe_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  2360. zra.setSurfaceresult(params2.get(1).toString());
  2361. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2362. }
  2363. else{
  2364. zra.setMarginal_result(params2.get(1).toString());
  2365. zra.setMarginal_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2366. zra.setSfu_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  2367. zra.setSurfaceresult(params2.get(1).toString());
  2368. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2369. zra.setUp_surface_result(params2.get(1).toString());
  2370. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2371. zra.setSfd_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  2372. zra.setUd_surface_result(params2.get(1).toString());
  2373. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  2374. zra.setSfe_is_lock(params2.get(1).toString().equals("2")?"1":"0");
  2375. }
  2376. }
  2377. mapper.UpdateJugeResultB(zra);
  2378. }
  2379. //异常材料处置,进行物料封锁合格时,直接进行异常材料处置业务
  2380. if ("2".equals(params2.get(1).toString())) {
  2381. //生成质量封锁记录号
  2382. int count=0;
  2383. QCMJudgeLocking qjlk = new QCMJudgeLocking();
  2384. SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  2385. String date=sdf.format(new Date());
  2386. String condition = " and MATERIAL_NO = '"+material_no+"' order by LOCK_SEQ desc ";
  2387. List<QCMJudgeLocking> qjl = mapper.queryQCMJudgeLocking(condition);
  2388. if(qjl.size() > 0){
  2389. count=qjl.get(0).getLock_seq();
  2390. }
  2391. count++;
  2392. //锁定记录号
  2393. int lock_seq=count;
  2394. //获取缺陷
  2395. String flaw="";
  2396. String strsql = "select * from QCM_JUDGE_SURFACE_FLAW where SURFACE_ID in (select SURFACE_ID from qcm_judge_surface where material_no = '"+material_no+"') ";
  2397. List<QcmJudgeSurfaceFlaw> qjsft = mapper.queryQcmJudgeSurfaceFlaw(strsql);
  2398. for(QcmJudgeSurfaceFlaw qjsf1 :qjsft){
  2399. if(!flaw.contains(qjsf1.getFlaw_desc()))
  2400. {
  2401. flaw+=qjsf1.getFlaw_desc()+",";
  2402. }
  2403. }
  2404. String lock_memo = "";
  2405. if(StringUtils.isNotEmpty(flaw)) {
  2406. if (",".equals(flaw.substring(flaw.length() - 1, flaw.length()))) {
  2407. lock_memo = "表面:" + flaw.substring(0, flaw.length() - 1);
  2408. } else {
  2409. lock_memo = "表面:" + flaw.substring(0, flaw.length());
  2410. }
  2411. }
  2412. //插入封锁表
  2413. qjlk.setLock_type_code("F");
  2414. qjlk.setLock_type_desc("表面检验");
  2415. qjlk.setMaterial_no(material_no);
  2416. qjlk.setLock_seq(lock_seq);
  2417. qjlk.setLock_id(sid);
  2418. qjlk.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  2419. qjlk.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  2420. qjlk.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  2421. qjlk.setPlan_no(hashmap.get(0).get("PLAN_NO") == null ?"":hashmap.get(0).get("PLAN_NO").toString());
  2422. qjlk.setHt_no(hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString());
  2423. qjlk.setDesign_key(hashmap.get(0).get("DESIGN_KEY")== null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  2424. qjlk.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  2425. qjlk.setPline_code(hashmap.get(0).get("PLINE_CODE").toString());
  2426. qjlk.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  2427. qjlk.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  2428. qjlk.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  2429. qjlk.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  2430. qjlk.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  2431. qjlk.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  2432. qjlk.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null ?"":hashmap.get(0).get("STEEL_CODE").toString());
  2433. qjlk.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  2434. qjlk.setHeight(hashmap.get(0).get("THICK") == null?"": hashmap.get(0).get("THICK").toString());
  2435. qjlk.setFic_locking("1");
  2436. qjlk.setLock_name(params2.get(6).toString());
  2437. qjlk.setLock_memo(lock_memo+"-"+ params2.get(4).toString());
  2438. mapper.insertQCMJudgeLocking(qjlk);
  2439. }
  2440. QcmJudgeLog qjl = new QcmJudgeLog();
  2441. qjl.setJudge_type("R");
  2442. qjl.setMaterial_no(material_no);
  2443. qjl.setCreate_name("system");
  2444. qjl.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  2445. mapper.insertQcmJudgeLog(qjl);
  2446. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  2447. qjog.setOperate_name(params2.get(6).toString());
  2448. qjog.setOperate_type("表面检验判定");
  2449. qjog.setParams(material_no);
  2450. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  2451. qjog.setBatchno(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  2452. qjog.setJudge_result(params2.get(1).toString());
  2453. mapper.insertQcmJudgeOperateLog(qjog);
  2454. SqlSession.commit();
  2455. } catch (Exception e) {
  2456. cro.setV_errMsg( "检验登记失败!"+ e.getMessage());
  2457. cro.SetErrInfo("检验登记失败!"+ e.getMessage());
  2458. cro.setV_errCode(-1);
  2459. SqlSession.rollback();
  2460. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.doAddFlawX:【" + params1.toString() + "," + params2.toString() + "】" + e);
  2461. }
  2462. SqlSession.close();
  2463. /*final List<HashMap> hashmap1 = hashmap;
  2464. Thread t1 = new Thread(){
  2465. @Override
  2466. public void run(){
  2467. QcmJhyElementsServiceImpl qje = new QcmJhyElementsServiceImpl();
  2468. //调用熔炼成分判定 RlChemAutoJudgeByHuman
  2469. try {
  2470. qje.RlChemAutoJudgeByHuman1(hashmap1,hashmap1.get(0).get("HEAT_NO").toString(),params2.get(0).toString(),hashmap1.get(0).get("DESIGN_KEY").toString(),"system",hashmap1.get(0).get("GRADE_NAME")==null?"":hashmap1.get(0).get("GRADE_NAME").toString());
  2471. } catch (Exception e2) {
  2472. // TODO Auto-generated catch block
  2473. e2.printStackTrace();
  2474. }
  2475. }
  2476. };
  2477. t1.start();
  2478. Thread t3 = new Thread(){
  2479. @Override
  2480. public void run(){
  2481. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  2482. //综合判定
  2483. try {
  2484. qjpc.ultimateJudgeAutoBySystem(hashmap1,params2.get(0).toString(), "system");
  2485. } catch (Exception e) {
  2486. // TODO Auto-generated catch block
  2487. e.printStackTrace();
  2488. }
  2489. }
  2490. };
  2491. t3.start();*/
  2492. return cro;
  2493. }
  2494. @SuppressWarnings({ "unused", "rawtypes" })
  2495. public CoreReturnObject doAddFlawY(ArrayList<List> params1,final ArrayList params2) throws Exception {
  2496. if(params2.size() == 0){
  2497. cro.setV_errCode(-1);
  2498. cro.setV_errMsg("请传入数据");
  2499. return cro;
  2500. }
  2501. String result= "";
  2502. String material_no = params2.get(0).toString();
  2503. String result1 = getresult2(material_no,params2.get(3).toString());
  2504. if(result1.equals("")){
  2505. throw new Exception("判定结果为空,不能进行判定!");
  2506. }
  2507. //判断是否进行综合判定,是否在库
  2508. List<HashMap> hashmap = new ArrayList<HashMap>();
  2509. List<HashMap> hashmap1 = new ArrayList<HashMap>();
  2510. String sql = "select * from QCM_JUDGE_YT_COIL_RESULT where COIL_NO = '"+material_no+"' and JUDGERESULT <> '0' ";
  2511. hashmap1 = mapper.query(sql);
  2512. if(hashmap1.size() > 0){
  2513. if(hashmap1.get(0).get("JUDGERESULT").equals("4")){
  2514. throw new Exception("已判废品,不可操作!");
  2515. }
  2516. }
  2517. if(hashmap1.size() > 0) {
  2518. List<HashMap> list1 = mapper.query(sql);
  2519. sql = "select COILNO from YDM_PRODUCT_DETAIL@LINK_YTG where STATE in ('0','-1', '7') and COILNO = '" + material_no + "'";
  2520. hashmap = mapper.query(sql);
  2521. if (hashmap.size() == 0) {
  2522. throw new Exception("未找到在库的库存信息!");
  2523. }
  2524. //撤销判定
  2525. cancelUltimateJudge(params2.get(6).toString(),material_no,hashmap1.get(0).get("JUDGEID").toString());
  2526. }
  2527. hashmap = mapper.doQueryMaterialInfoY(material_no);
  2528. if(hashmap.size() == 0){
  2529. throw new Exception("未找到库存信息!");
  2530. }
  2531. if(hashmap.get(0).get("DESIGN_KEY")==null){
  2532. throw new Exception("订单号为空!");
  2533. }
  2534. try {
  2535. String Inspection_lot = "";
  2536. String flaw_area = "";
  2537. //判断是否进行了综合判定
  2538. sql = "select * from QCM_JUDGE_YT_COIL_RESULT where COIL_NO = '"+material_no+"'";
  2539. List<HashMap> list1 = mapper.query(sql);
  2540. if(list1.size() >0){
  2541. for(HashMap list:list1){
  2542. if(list.get("JUDGERESULT") != null && !list.get("JUDGERESULT").toString().equals("0")){
  2543. throw new Exception("该产品序号【"+material_no+"】做了综合判定,不能做检验登记!");
  2544. }
  2545. if(list.get("SFU_IS_LOCK").equals("1") || list.get("SFD_IS_LOCK").equals("1") || list.get("SFE_IS_LOCK").equals("1")){
  2546. throw new Exception("该该产品序号【"+material_no+"】已经锁定,不能做检验登记!");
  2547. }
  2548. Inspection_lot = hashmap.get(0).get("INSPECTION_LOT1")==null?"111":hashmap.get(0).get("INSPECTION_LOT1").toString();
  2549. }
  2550. }else{
  2551. throw new Exception("未找到库存信息!");
  2552. }
  2553. String sid="";
  2554. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  2555. //获取表检类型
  2556. String type = "U";
  2557. String id = "UY";
  2558. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  2559. sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like '"+id+ ymd+"%' order by surface_id desc) where rownum <= 1 ";
  2560. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  2561. int icount = 0;
  2562. if (list != null && list.size() > 0) {
  2563. String s=list.get(0).getSurface_id();
  2564. icount = Integer.parseInt(s.substring(s.length()-5,s.length()));
  2565. }
  2566. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  2567. icount++;
  2568. sid=id+ymd + String.format("%05d",icount);
  2569. //插入表面实绩表
  2570. for(List qjs:params1){
  2571. if(qjs.get(0).toString().equals("1")){
  2572. flaw_area = qjs.get(4).toString();
  2573. }
  2574. }
  2575. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  2576. String Sf_result_code = result1;
  2577. String Sf_result_desc = result1.equals("1")?"合格":"不合格";
  2578. qjsf.setSurface_id(sid);
  2579. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  2580. qjsf.setBatch_no(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  2581. qjsf.setBoard_no(hashmap.get(0).get("BOARD_NO") == null ?"":hashmap.get(0).get("BOARD_NO").toString());
  2582. qjsf.setInspection_lot(Inspection_lot);
  2583. qjsf.setMaterial_no(material_no);
  2584. qjsf.setSf_result_code(Sf_result_code);
  2585. qjsf.setSf_result_desc(Sf_result_desc);
  2586. qjsf.setLevel_code(params2.get(3).toString());
  2587. qjsf.setLevel_desc(params2.get(4).toString());
  2588. qjsf.setSf_type(type);
  2589. qjsf.setSf_memo(params2.get(5).toString());
  2590. qjsf.setSfd_is_lock("0");
  2591. qjsf.setSfe_is_lock("0");
  2592. qjsf.setSfu_is_lock("0");
  2593. if(!flaw_area.equals("")){
  2594. if(flaw_area.equals("U")&&Sf_result_code.equals("2")){
  2595. qjsf.setSfu_is_lock("1");
  2596. }else if(flaw_area.equals("D")&&Sf_result_code.equals("2")){
  2597. qjsf.setSfd_is_lock("1");
  2598. }else if(flaw_area.equals("E")&&Sf_result_code.equals("2")){
  2599. qjsf.setSfe_is_lock("1");
  2600. }else if(Sf_result_code.equals("2")){
  2601. qjsf.setSfu_is_lock("1");
  2602. qjsf.setSfd_is_lock("1");
  2603. qjsf.setSfe_is_lock("1");
  2604. }
  2605. }
  2606. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY").toString());
  2607. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY").toString());
  2608. qjsf.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  2609. qjsf.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  2610. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  2611. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  2612. qjsf.setWrk_ord(params2.get(7).toString());
  2613. qjsf.setWrk_grp(params2.get(8).toString());
  2614. qjsf.setJudge_name(params2.get(6).toString());
  2615. qjsf.setSf_memo(params2.get(5).toString());
  2616. qjsf.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  2617. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  2618. qjsf.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  2619. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  2620. qjsf.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null?"":hashmap.get(0).get("STEEL_CODE").toString());
  2621. qjsf.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  2622. mapper.insertQcmJudgeSurface(qjsf);
  2623. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  2624. for(List qjs:params1){
  2625. QcmJudgeSurfaceFlaw qjsffs = new QcmJudgeSurfaceFlaw();
  2626. qjsffs.setPrimary_flag(qjs.get(0).toString());
  2627. qjsffs.setIs_repair("0");
  2628. qjsffs.setFlaw_seq(Long.parseLong(qjs.get(1).toString()));
  2629. qjsffs.setFlaw_code(qjs.get(2).toString());
  2630. qjsffs.setFlaw_desc(qjs.get(3).toString());
  2631. qjsffs.setFlaw_area(qjs.get(4).toString());
  2632. List<HashMap> lists = finddefecttype(qjs.get(2).toString());
  2633. if(lists.size()>0){
  2634. qjsffs.setFlaw_desc(lists.get(0).get("DEFECT_DESC")==null?"":lists.get(0).get("DEFECT_DESC").toString());
  2635. qjsffs.setFlaw_type_code(lists.get(0).get("DEFECT_TYPE_CODE")==null?"":lists.get(0).get("DEFECT_TYPE_CODE").toString());
  2636. qjsffs.setFlaw_type_desc(lists.get(0).get("DEFECT_TYPE_DESC") == null ?"":lists.get(0).get("DEFECT_TYPE_DESC").toString());
  2637. }
  2638. qjsffs.setFlaw_pos_code(qjs.get(5).toString());
  2639. qjsffs.setFlaw_pos_desc(qjs.get(6).toString());
  2640. qjsffs.setFlaw_dir_code(qjs.get(7).toString());
  2641. qjsffs.setFlaw_dir_desc(qjs.get(8).toString());
  2642. qjsffs.setFlaw_size_code(qjs.get(9).toString());
  2643. qjsffs.setFlaw_size_desc(qjs.get(10).toString());
  2644. qjsffs.setFlaw_lv_code(qjs.get(11).toString());
  2645. qjsffs.setFlaw_lv_desc(qjs.get(12).toString());
  2646. if(!qjs.get(13).equals("")){
  2647. qjsffs.setFlaw_quantity(Long.parseLong(qjs.get(13).toString()));
  2648. }
  2649. qjsffs.setMemo(qjs.get(14).toString());
  2650. qjsffs.setIs_repair(qjs.get(15).toString());
  2651. qjsffs.setCreate_name(params2.get(6).toString());//创建人
  2652. qjsffs.setCreate_time(new Date());//创建时间
  2653. qjsflist.add(qjsffs);
  2654. }
  2655. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  2656. //将获取的缺陷实绩信息插入表面缺陷实绩表
  2657. qjsff.setSurface_id(sid);
  2658. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  2659. QcmJudgeUltimateReason qjr = new QcmJudgeUltimateReason();
  2660. qjr.setMaterial_no(material_no);
  2661. qjr.setType_code(qjsff.getFlaw_area().equals("")?"U":qjsff.getFlaw_area());
  2662. qjr.setRecord_id(sid);
  2663. qjr.setSeq(qjsff.getFlaw_seq().intValue());
  2664. qjr.setPhy_code_s(qjsff.getFlaw_code());
  2665. qjr.setPhy_name_s(qjsff.getFlaw_desc());
  2666. qjr.setCreate_name(params2.get(6).toString());
  2667. qjr.setCreate_time(new Date());
  2668. mapper.insertQcmJudgeUltimateReason(qjr);
  2669. }
  2670. //更新库存表上表,下表,边部结果
  2671. if(list1.size() >0){
  2672. QcmJudgeYtCoilResult zra = new QcmJudgeYtCoilResult();
  2673. String result_code = "";
  2674. String result_desc = "";
  2675. if(Sf_result_code.equals("1")){
  2676. result_code = "1";
  2677. result_desc = "合格";
  2678. }else if(Sf_result_code.equals("2")){
  2679. result_code = "2";
  2680. result_desc = "不合格";
  2681. }else if(Sf_result_code.equals("3")){
  2682. result_code = "3";
  2683. result_desc = "判次";
  2684. }else if(Sf_result_code.equals("4")){
  2685. result_code = "4";
  2686. result_desc = "判废";
  2687. }
  2688. zra.setCoil_no(material_no);
  2689. zra.setSurfaceresult("1");
  2690. zra.setSurfaceresult_desc(result_desc);
  2691. zra.setSurfaceid(sid);
  2692. zra.setSfd_is_lock("0");
  2693. zra.setSfe_is_lock("0");
  2694. zra.setSfu_is_lock("0");
  2695. zra.setUd_surface_result("1");
  2696. zra.setUd_surface_result_desc(result_desc);
  2697. zra.setUd_surface_result_id_desc(sid);
  2698. zra.setUp_surface_result("1");
  2699. zra.setUp_surface_result_desc(result_desc);
  2700. zra.setUp_surface_result_id_desc(sid);
  2701. zra.setMarginal_result("1");
  2702. zra.setMarginal_result_desc(result_desc);
  2703. zra.setMarginal_result_id_desc(sid);
  2704. //不合格
  2705. if(!Sf_result_code.equals("1")){
  2706. if(type.equals("U")){
  2707. zra.setUp_surface_result(Sf_result_code);
  2708. zra.setUp_surface_result_desc(result_desc);
  2709. zra.setSurfaceresult(Sf_result_code);
  2710. zra.setSurfaceresult_desc(result_desc);
  2711. zra.setSfu_is_lock("1");
  2712. }
  2713. else if(type.equals("D")){
  2714. zra.setUd_surface_result(Sf_result_code);
  2715. zra.setUd_surface_result_desc(result_desc);
  2716. zra.setSurfaceresult(Sf_result_code);
  2717. zra.setSurfaceresult_desc(result_desc);
  2718. zra.setSfd_is_lock("1");
  2719. }
  2720. else if(type.equals("E")){
  2721. zra.setMarginal_result(params2.get(1).toString());
  2722. zra.setMarginal_result_desc(result_desc);
  2723. zra.setSurfaceresult(Sf_result_code);
  2724. zra.setSurfaceresult_desc(result_desc);
  2725. zra.setSfe_is_lock("1");
  2726. }
  2727. else{
  2728. zra.setMarginal_result(Sf_result_code);
  2729. zra.setMarginal_result_desc(result_desc);
  2730. zra.setSurfaceresult(Sf_result_code);
  2731. zra.setSurfaceresult_desc(result_desc);
  2732. zra.setUp_surface_result(Sf_result_code);
  2733. zra.setUp_surface_result_desc(result_desc);
  2734. zra.setUd_surface_result(Sf_result_code);
  2735. zra.setUd_surface_result_desc(result_desc);
  2736. zra.setSfd_is_lock("1");
  2737. zra.setSfe_is_lock("1");
  2738. zra.setSfu_is_lock("1");
  2739. }
  2740. }
  2741. mapper.UpdateJugeResultY(zra);
  2742. //异常材料处置,进行物料封锁合格时,直接进行异常材料处置业务
  2743. if ("2".equals(Sf_result_code)) {
  2744. //生成质量封锁记录号
  2745. int count=0;
  2746. QCMJudgeLocking qjlk = new QCMJudgeLocking();
  2747. SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  2748. String date=sdf.format(new Date());
  2749. String condition = " and MATERIAL_NO = '"+material_no+"' order by LOCK_SEQ desc ";
  2750. List<QCMJudgeLocking> qjl = mapper.queryQCMJudgeLocking(condition);
  2751. if(qjl.size() > 0){
  2752. count=qjl.get(0).getLock_seq();
  2753. }
  2754. count++;
  2755. //锁定记录号
  2756. int lock_seq=count;
  2757. String lock_memo = "表面:"+params2.get(3).toString();
  2758. //插入封锁表
  2759. qjlk.setLock_type_code("F");
  2760. qjlk.setLock_type_desc("表面检验");
  2761. qjlk.setMaterial_no(material_no);
  2762. qjlk.setLock_seq(lock_seq);
  2763. qjlk.setLock_id(sid);
  2764. qjlk.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  2765. qjlk.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  2766. qjlk.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  2767. qjlk.setPlan_no(hashmap.get(0).get("PLAN_NO") == null ?"":hashmap.get(0).get("PLAN_NO").toString());
  2768. qjlk.setHt_no(hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString());
  2769. qjlk.setDesign_key(hashmap.get(0).get("DESIGN_KEY")== null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  2770. qjlk.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  2771. qjlk.setPline_code(hashmap.get(0).get("PLINE_CODE").toString());
  2772. qjlk.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  2773. qjlk.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  2774. qjlk.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  2775. qjlk.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  2776. qjlk.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  2777. qjlk.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  2778. qjlk.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null ?"":hashmap.get(0).get("STEEL_CODE").toString());
  2779. qjlk.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  2780. qjlk.setHeight(hashmap.get(0).get("THICK") == null?"": hashmap.get(0).get("THICK").toString());
  2781. qjlk.setFic_locking("1");
  2782. qjlk.setLock_name(params2.get(6).toString());
  2783. qjlk.setLock_memo(lock_memo);
  2784. mapper.insertQCMJudgeLocking(qjlk);
  2785. }
  2786. String url = "http://172.16.81.200/xinsteel.maketx/service/SlmFundFirstDetailService/receiveResSurface";
  2787. JSONObject jsobj1 = new JSONObject();
  2788. JSONObject jsobj2 = new JSONObject();
  2789. JSONArray ttmaps = new JSONArray();
  2790. JSONArray ttmaps1 = new JSONArray();
  2791. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  2792. JSONObject jsobj3 = new JSONObject();
  2793. jsobj3.put("surface_id",sid);
  2794. jsobj3.put("primary_flag",qjsff.getPrimary_flag());
  2795. jsobj3.put("is_repair",qjsff.getIs_repair());
  2796. jsobj3.put("flaw_seq",qjsff.getFlaw_seq());
  2797. jsobj3.put("flaw_desc",qjsff.getFlaw_desc());
  2798. jsobj3.put("flaw_type_desc",qjsff.getFlaw_type_desc());
  2799. jsobj3.put("flaw_pos_desc",qjsff.getFlaw_pos_desc());
  2800. jsobj3.put("flaw_quantity",qjsff.getFlaw_quantity());
  2801. jsobj3.put("memo",qjsff.getMemo());
  2802. jsobj3.put("create_name",params2.get(6).toString());
  2803. jsobj3.put("create_time",new Date());
  2804. jsobj3.put("flaw_dir_desc",qjsff.getFlaw_dir_desc());
  2805. jsobj3.put("flaw_size_desc",qjsff.getFlaw_size_desc());
  2806. jsobj3.put("flaw_lv_desc",qjsff.getFlaw_lv_desc());
  2807. jsobj3.put("flaw_area",qjsff.getFlaw_area());
  2808. ttmaps.add(jsobj3);
  2809. }
  2810. jsobj1.put("objectList", ttmaps);
  2811. jsobj1.put("surface_id",sid);
  2812. jsobj1.put("heat_no",hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  2813. jsobj1.put("batch_no",hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  2814. jsobj1.put("inspection_lot",Inspection_lot);
  2815. jsobj1.put("material_no",material_no);
  2816. jsobj1.put("sf_result_desc",result_desc);
  2817. jsobj1.put("level_desc",params2.get(4).toString());
  2818. jsobj1.put("prod_name",hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  2819. jsobj1.put("steel_name",hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  2820. jsobj1.put("std_name",hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  2821. jsobj1.put("pline_name",hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  2822. jsobj1.put("judge_name",params2.get(6).toString());
  2823. jsobj1.put("judge_time",new Date());
  2824. jsobj2.put("object", jsobj1);
  2825. ttmaps1.add(jsobj2);
  2826. result = post1(JSON.toJSONString(ttmaps1),url);
  2827. JSONObject jo = JSONObject.parseObject(result);
  2828. if(!"200".equals(jo.get("state").toString())){
  2829. throw new Exception(jo.get("msgInfo").toString());
  2830. }
  2831. }
  2832. QcmJudgeLog qjl = new QcmJudgeLog();
  2833. qjl.setJudge_type("R");
  2834. qjl.setMaterial_no(material_no);
  2835. qjl.setCreate_name("system");
  2836. qjl.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  2837. mapper.insertQcmJudgeLog(qjl);
  2838. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  2839. qjog.setOperate_name(params2.get(6).toString());
  2840. qjog.setOperate_type("表面检验判定");
  2841. qjog.setParams(material_no);
  2842. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  2843. qjog.setBatchno(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  2844. qjog.setJudge_result(Sf_result_code);
  2845. qjog.setMemo(result);
  2846. mapper.insertQcmJudgeOperateLog(qjog);
  2847. SqlSession.commit();
  2848. } catch (Exception e) {
  2849. cro.setV_errMsg( "检验登记失败!"+ e.getMessage());
  2850. cro.SetErrInfo("检验登记失败!"+ e.getMessage());
  2851. cro.setV_errCode(-1);
  2852. SqlSession.rollback();
  2853. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.doAddFlawX:【" + params1.toString() + "," + params2.toString() + "】" + e);
  2854. }
  2855. SqlSession.close();
  2856. /*final List<HashMap> hashmap1 = hashmap;
  2857. Thread t1 = new Thread(){
  2858. @Override
  2859. public void run(){
  2860. QcmJhyElementsServiceImpl qje = new QcmJhyElementsServiceImpl();
  2861. //调用熔炼成分判定 RlChemAutoJudgeByHuman
  2862. try {
  2863. qje.RlChemAutoJudgeByHuman1(hashmap1,hashmap1.get(0).get("HEAT_NO").toString(),params2.get(0).toString(),hashmap1.get(0).get("DESIGN_KEY").toString(),"system",hashmap1.get(0).get("GRADE_NAME")==null?"":hashmap1.get(0).get("GRADE_NAME").toString());
  2864. } catch (Exception e2) {
  2865. // TODO Auto-generated catch block
  2866. e2.printStackTrace();
  2867. }
  2868. }
  2869. };
  2870. t1.start();
  2871. Thread t3 = new Thread(){
  2872. @Override
  2873. public void run(){
  2874. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  2875. //综合判定
  2876. try {
  2877. qjpc.ultimateJudgeAutoBySystem(hashmap1,params2.get(0).toString(), "system");
  2878. } catch (Exception e) {
  2879. // TODO Auto-generated catch block
  2880. e.printStackTrace();
  2881. }
  2882. }
  2883. };
  2884. t3.start();*/
  2885. return cro;
  2886. }
  2887. @SuppressWarnings({ "unused", "rawtypes" })
  2888. public CoreReturnObject doAddFlawJ(ArrayList<List> params1,final ArrayList params2) throws Exception {
  2889. if(params2.size() == 0){
  2890. cro.setV_errCode(-1);
  2891. cro.setV_errMsg("请传入数据");
  2892. return cro;
  2893. }
  2894. String material_no = params2.get(0).toString();
  2895. List<HashMap> hashmap = mapper.doQueryMaterialInfoJ(material_no);
  2896. if(hashmap.size()==0){
  2897. throw new Exception("未找到库存信息!");
  2898. }
  2899. try {
  2900. String Inspection_lot = "";
  2901. String inspection_lot = "";
  2902. String flaw_area = "";
  2903. //判断是否进行了综合判定
  2904. String sql = "select * from QCM_JUDGE_COIL_RESULT where coil_no = '"+material_no+"'";
  2905. List<HashMap> list2 = mapper.query(sql);
  2906. if(list2.size() > 0){
  2907. if(list2.get(0).get("JUDGERESULT").equals("4")){
  2908. throw new Exception("已判废品,不可操作!");
  2909. }
  2910. }
  2911. if(list2.size() >0){
  2912. for(HashMap list:list2){
  2913. if(list.get("JUDGERESULT") != null && !list.get("JUDGERESULT").toString().equals("0")){
  2914. if(hashmap.get(0).get("DESIGN_KEY") == null){
  2915. throw new Exception("该物料无订单,表面判定时取消综判失败");
  2916. }
  2917. List<QcmJudgeUltimate> qju = mapper.QcmJudgeUltimate("select * from Qcm_Judge_Ultimate where utm_id = '"+list.get("JUDGEID")+"'");
  2918. if(list2.get(0).get("INSPECTION_LOT")==null){
  2919. inspection_lot = qju.get(0).getInspection_lot()== null?"":qju.get(0).getInspection_lot();
  2920. }else{
  2921. inspection_lot = list2.get(0).get("INSPECTION_LOT")==null?"":list2.get(0).get("INSPECTION_LOT").toString();
  2922. }
  2923. mapper.clearJUDGERESULT1(material_no,inspection_lot);
  2924. coiljudge_status_call(qju.get(0).getPline_code(), material_no, null, null, null, null, "D", null, null,"");
  2925. //throw new Exception("该产品序号【"+material_no+"】做了综合判定,不能做检验登记!");
  2926. }
  2927. if(list.get("SFU_IS_LOCK").equals("1") || list.get("SFD_IS_LOCK").equals("1") || list.get("SFE_IS_LOCK").equals("1")){
  2928. throw new Exception("该该产品序号【"+material_no+"】已经锁定,不能做检验登记!");
  2929. }
  2930. Inspection_lot = list.get("INSPECTION_LOT")== null?"":list.get("INSPECTION_LOT").toString();
  2931. }
  2932. }else{
  2933. throw new Exception("未找到库存信息!");
  2934. }
  2935. sql = "select * from (select * from QCM_JUDGE_SURFACE where MATERIAL_NO = '"+material_no+"' order by SURFACE_ID desc) where rownum <= 1";
  2936. List<QcmJudgeSurface> oldSuf = mapper.queryQcmJudgeSurfaces(sql);
  2937. if(oldSuf.size() > 0){
  2938. if ("1".equals(oldSuf.get(0).getSfu_is_lock()) || "1".equals(oldSuf.get(0).getSfd_is_lock()) || "1".equals(oldSuf.get(0).getSfe_is_lock())) {
  2939. cro.setV_errCode(-1);
  2940. cro.setV_errMsg("物料["+material_no+"],已经表面锁定,不能重新判定,请到异常材界面进行物料处理后操作!");
  2941. return cro;
  2942. }
  2943. }
  2944. String sid="";
  2945. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  2946. //获取表检类型
  2947. String type = "U";
  2948. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  2949. sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like '"+type+ ymd+"%' order by surface_id desc) where rownum <= 1 ";
  2950. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  2951. int icount = 0;
  2952. if (list != null && list.size() > 0) {
  2953. String s=list.get(0).getSurface_id();
  2954. icount = Integer.parseInt(s.substring(s.length()-4,s.length()));
  2955. }
  2956. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  2957. icount++;
  2958. sid=type+ymd + String.format("%05d",icount);
  2959. //插入表面实绩表
  2960. for(List qjs:params1){
  2961. if(qjs.get(0).toString().equals("1")){
  2962. flaw_area = qjs.get(4).toString();
  2963. }
  2964. }
  2965. if(flaw_area.equals("")){
  2966. if(params1.size() >0){
  2967. flaw_area = params1.get(0).get(4).toString();
  2968. }
  2969. }
  2970. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  2971. qjsf.setSurface_id(sid);
  2972. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  2973. qjsf.setBatch_no(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  2974. qjsf.setBoard_no(hashmap.get(0).get("BOARD_NO") == null ?"":hashmap.get(0).get("BOARD_NO").toString());
  2975. qjsf.setInspection_lot(Inspection_lot);
  2976. qjsf.setMaterial_no(material_no);
  2977. qjsf.setSf_result_code(params2.get(1).toString());
  2978. qjsf.setSf_result_desc(params2.get(2).toString());
  2979. qjsf.setLevel_code(params2.get(3).toString());
  2980. qjsf.setLevel_desc(params2.get(4).toString());
  2981. qjsf.setSf_type(type);
  2982. qjsf.setSf_memo(params2.get(5).toString());
  2983. qjsf.setSfd_is_lock("0");
  2984. qjsf.setSfe_is_lock("0");
  2985. qjsf.setSfu_is_lock("0");
  2986. if(!flaw_area.equals("")){
  2987. if(flaw_area.equals("U")&&params2.get(1).toString().equals("2")){
  2988. qjsf.setSfu_is_lock("0");
  2989. }else if(flaw_area.equals("D")&&params2.get(1).toString().equals("2")){
  2990. qjsf.setSfd_is_lock("0");
  2991. }else if(flaw_area.equals("E")&&params2.get(1).toString().equals("2")){
  2992. qjsf.setSfe_is_lock("0");
  2993. }else if(params2.get(1).toString().equals("2")){
  2994. qjsf.setSfu_is_lock("0");
  2995. qjsf.setSfd_is_lock("0");
  2996. qjsf.setSfe_is_lock("0");
  2997. }
  2998. }
  2999. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY")==null ?"":hashmap.get(0).get("DESIGN_KEY").toString());
  3000. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY")==null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  3001. qjsf.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  3002. qjsf.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  3003. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  3004. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  3005. qjsf.setWrk_ord(params2.get(7).toString());
  3006. qjsf.setWrk_grp(params2.get(8).toString());
  3007. qjsf.setJudge_name(params2.get(6).toString());
  3008. qjsf.setSf_memo(params2.get(5).toString());
  3009. qjsf.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  3010. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  3011. qjsf.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  3012. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  3013. qjsf.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null?"":hashmap.get(0).get("STEEL_CODE").toString());
  3014. qjsf.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  3015. mapper.insertQcmJudgeSurface(qjsf);
  3016. Long seq=1L;
  3017. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  3018. for(List qjs:params1){
  3019. QcmJudgeSurfaceFlaw qjsffs = new QcmJudgeSurfaceFlaw();
  3020. qjsffs.setPrimary_flag(qjs.get(0).toString());
  3021. qjsffs.setIs_repair("0");
  3022. qjsffs.setFlaw_seq(Long.parseLong(qjs.get(1).toString()));
  3023. qjsffs.setFlaw_code(qjs.get(2).toString());
  3024. qjsffs.setFlaw_desc(qjs.get(3).toString());
  3025. qjsffs.setFlaw_area(qjs.get(4).toString());
  3026. List<HashMap> lists = finddefecttype(qjs.get(2).toString());
  3027. if(lists.size()>0){
  3028. qjsffs.setFlaw_desc(lists.get(0).get("DEFECT_DESC")==null?"":lists.get(0).get("DEFECT_DESC").toString());
  3029. qjsffs.setFlaw_type_code(lists.get(0).get("DEFECT_TYPE_CODE")==null?"":lists.get(0).get("DEFECT_TYPE_CODE").toString());
  3030. qjsffs.setFlaw_type_desc(lists.get(0).get("DEFECT_TYPE_DESC") == null ?"":lists.get(0).get("DEFECT_TYPE_DESC").toString());
  3031. }
  3032. qjsffs.setFlaw_pos_code(qjs.get(5).toString());
  3033. qjsffs.setFlaw_pos_desc(qjs.get(6).toString());
  3034. qjsffs.setFlaw_dir_code(qjs.get(7).toString());
  3035. qjsffs.setFlaw_dir_desc(qjs.get(8).toString());
  3036. qjsffs.setFlaw_size_code(qjs.get(9).toString());
  3037. qjsffs.setFlaw_size_desc(qjs.get(10).toString());
  3038. qjsffs.setFlaw_lv_code(qjs.get(11).toString());
  3039. qjsffs.setFlaw_lv_desc(qjs.get(12).toString());
  3040. if(!qjs.get(13).equals("")){
  3041. qjsffs.setFlaw_quantity(Long.parseLong(qjs.get(13).toString()));
  3042. }
  3043. qjsffs.setMemo(qjs.get(14).toString());
  3044. qjsffs.setIs_repair(qjs.get(15).toString());
  3045. qjsffs.setFlaw_origin(qjs.get(16).toString());
  3046. qjsflist.add(qjsffs);
  3047. seq = Long.parseLong(qjs.get(1).toString());
  3048. seq++;
  3049. }
  3050. // 获取物料历史缺陷集合
  3051. String conn = "and material_no = '"+ material_no +"'";
  3052. sql = " select * from QCM_JUDGE_SURFACE where 1=1 "+conn+"";
  3053. List<QcmJudgeSurface> qjsListOld = mapper.queryQcmJudgeSurfaces(sql);
  3054. if(qjsListOld!=null && qjsListOld.size()>0){
  3055. String sufIdStr="";
  3056. for(QcmJudgeSurface qjs1 : qjsListOld){
  3057. if("".equals(sufIdStr))
  3058. sufIdStr += "'"+qjs1.getSurface_id()+"'";
  3059. else
  3060. sufIdStr += ",'"+qjs1.getSurface_id()+"'";
  3061. }
  3062. String condition = "and surface_id in ("+sufIdStr+")";
  3063. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition+"";
  3064. List<QcmJudgeSurfaceFlaw> qjsffList = mapper.queryQcmJudgeSurfaceFlaw(sql);
  3065. String condition1 = "and surface_id in ("+sufIdStr+") and primary_flag ='1'";
  3066. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition1+"";
  3067. List<QcmJudgeSurfaceFlaw> qjsffList1 = mapper.queryQcmJudgeSurfaceFlaw(sql);
  3068. // 之前已经登记过缺陷,则将此次所有缺陷都改为非主缺陷
  3069. if(qjsffList1!=null && qjsffList1.size()>0){
  3070. //将获取的缺陷实绩信息插入表面缺陷实绩表
  3071. for(QcmJudgeSurfaceFlaw qjsff1 : qjsflist){
  3072. if(!qjsffList1.get(0).getFlaw_code().equals(qjsff1.getFlaw_code())){
  3073. qjsff1.setPrimary_flag("0");
  3074. }
  3075. }
  3076. }
  3077. for(QcmJudgeSurfaceFlaw qjsf1:qjsffList){
  3078. Boolean flag = false;
  3079. for(QcmJudgeSurfaceFlaw qjsf2:qjsflist){
  3080. if(qjsf1.getFlaw_code().equals(qjsf2.getFlaw_code())){
  3081. flag = true;
  3082. break;
  3083. }
  3084. }
  3085. if(!flag){
  3086. qjsf1.setFlaw_seq(seq);
  3087. qjsflist.add(qjsf1);
  3088. seq++;
  3089. }
  3090. }
  3091. }
  3092. int seq1 = 0;
  3093. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  3094. if(qjsff.getFlaw_area() == null){
  3095. continue;
  3096. }
  3097. //将获取的缺陷实绩信息插入表面缺陷实绩表
  3098. String[] strList = qjsff.getFlaw_area().split(",");
  3099. for(String str : strList){
  3100. qjsff.setSurface_id(sid);
  3101. qjsff.setFlaw_area(str);
  3102. qjsff.setCreate_name(params2.get(6).toString());//创建人
  3103. qjsff.setCreate_time(new Date());//创建时间
  3104. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  3105. seq1++;
  3106. }
  3107. QcmJudgeUltimateReason qjr = new QcmJudgeUltimateReason();
  3108. qjr.setMaterial_no(material_no);
  3109. qjr.setType_code(qjsff.getFlaw_area().equals("")?"U":qjsff.getFlaw_area());
  3110. qjr.setRecord_id(sid);
  3111. qjr.setSeq(seq1);
  3112. qjr.setPhy_code_s(qjsff.getFlaw_code());
  3113. qjr.setPhy_name_s(qjsff.getFlaw_desc());
  3114. qjr.setCreate_name(params2.get(6).toString());
  3115. qjr.setCreate_time(new Date());
  3116. mapper.insertQcmJudgeUltimateReason(qjr);
  3117. }
  3118. //更新库存表上表,下表,边部结果
  3119. if(list2.size() >0){
  3120. QcmJudgeCoilResult zra = new QcmJudgeCoilResult();
  3121. zra.setCoil_no(material_no);
  3122. zra.setSurfaceresult("1");
  3123. zra.setSurfaceresult_desc("合格");
  3124. zra.setSurfaceid(sid);
  3125. zra.setSfd_is_lock("0");
  3126. zra.setSfe_is_lock("0");
  3127. zra.setSfu_is_lock("0");
  3128. zra.setUd_surface_result("1");
  3129. zra.setUd_surface_result_desc("合格");
  3130. zra.setUd_surface_result_id_desc(sid);
  3131. zra.setUp_surface_result("1");
  3132. zra.setUp_surface_result_desc("合格");
  3133. zra.setUp_surface_result_id_desc(sid);
  3134. zra.setMarginal_result("1");
  3135. zra.setMarginal_result_desc("合格");
  3136. zra.setMarginal_result_id_desc(sid);
  3137. //合格
  3138. if(!params2.get(1).toString().equals("1")){
  3139. if(type.equals("U")){
  3140. if("512602".equals(params2.get(3).toString())){
  3141. zra.setUp_surface_result("3");
  3142. zra.setUp_surface_result_desc("次品");
  3143. zra.setSfu_is_lock("0");
  3144. zra.setSurfaceresult("3");
  3145. zra.setSurfaceresult_desc("次品");
  3146. }else if("512603".equals(params2.get(3).toString())){
  3147. zra.setUp_surface_result("4");
  3148. zra.setUp_surface_result_desc("废品");
  3149. zra.setSfu_is_lock("0");
  3150. zra.setSurfaceresult("4");
  3151. zra.setSurfaceresult_desc("废品");
  3152. }else{
  3153. zra.setUp_surface_result(params2.get(1).toString());
  3154. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3155. zra.setSfu_is_lock("0");
  3156. zra.setSurfaceresult(params2.get(1).toString());
  3157. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3158. }
  3159. }
  3160. else if(type.equals("D")){
  3161. if("512602".equals(params2.get(3).toString())){
  3162. zra.setUd_surface_result("3");
  3163. zra.setUd_surface_result_desc("次品");
  3164. zra.setSfd_is_lock("0");
  3165. zra.setSurfaceresult("3");
  3166. zra.setSurfaceresult_desc("次品");
  3167. }else if("512603".equals(params2.get(3).toString())){
  3168. zra.setUd_surface_result("4");
  3169. zra.setUd_surface_result_desc("废品");
  3170. zra.setSfd_is_lock("0");
  3171. zra.setSurfaceresult("4");
  3172. zra.setSurfaceresult_desc("废品");
  3173. }else{
  3174. zra.setUd_surface_result(params2.get(1).toString());
  3175. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3176. zra.setSfd_is_lock("0");
  3177. zra.setSurfaceresult(params2.get(1).toString());
  3178. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3179. }
  3180. /*zra.setUd_surface_result(params2.get(1).toString());
  3181. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3182. zra.setSfd_is_lock("0");
  3183. zra.setSurfaceresult(params2.get(1).toString());
  3184. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");*/
  3185. }
  3186. else if(type.equals("E")){
  3187. if("512602".equals(params2.get(3).toString())){
  3188. zra.setMarginal_result("3");
  3189. zra.setMarginal_result_desc("次品");
  3190. zra.setSfd_is_lock("0");
  3191. zra.setSurfaceresult("3");
  3192. zra.setSurfaceresult_desc("次品");
  3193. }else if("512603".equals(params2.get(3).toString())){
  3194. zra.setMarginal_result("4");
  3195. zra.setMarginal_result_desc("废品");
  3196. zra.setSfd_is_lock("0");
  3197. zra.setSurfaceresult("4");
  3198. zra.setSurfaceresult_desc("废品");
  3199. zra.setUd_surface_result("4");
  3200. zra.setUd_surface_result_desc("废品");
  3201. zra.setSfd_is_lock("0");
  3202. zra.setSurfaceresult("4");
  3203. zra.setSurfaceresult_desc("废品");
  3204. zra.setUp_surface_result("4");
  3205. zra.setUp_surface_result_desc("废品");
  3206. zra.setSfu_is_lock("0");
  3207. zra.setSurfaceresult("4");
  3208. zra.setSurfaceresult_desc("废品");
  3209. }else{
  3210. zra.setMarginal_result(params2.get(1).toString());
  3211. zra.setMarginal_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3212. zra.setSfe_is_lock("0");
  3213. zra.setSurfaceresult(params2.get(1).toString());
  3214. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3215. }
  3216. }
  3217. else{
  3218. if("512602".equals(params2.get(3).toString())){
  3219. zra.setMarginal_result("3");
  3220. zra.setMarginal_result_desc("次品");
  3221. zra.setSfd_is_lock("0");
  3222. zra.setSurfaceresult("3");
  3223. zra.setSurfaceresult_desc("次品");
  3224. zra.setUd_surface_result("3");
  3225. zra.setUd_surface_result_desc("次品");
  3226. zra.setSfd_is_lock("0");
  3227. zra.setSurfaceresult("3");
  3228. zra.setSurfaceresult_desc("次品");
  3229. zra.setUd_surface_result("3");
  3230. zra.setUd_surface_result_desc("次品");
  3231. zra.setSfd_is_lock("0");
  3232. zra.setSurfaceresult("3");
  3233. zra.setSurfaceresult_desc("次品");
  3234. }else if("512603".equals(params2.get(3).toString())){
  3235. zra.setMarginal_result("4");
  3236. zra.setMarginal_result_desc("废品");
  3237. zra.setSfd_is_lock("0");
  3238. zra.setSurfaceresult("4");
  3239. zra.setSurfaceresult_desc("废品");
  3240. }else{
  3241. zra.setMarginal_result(params2.get(1).toString());
  3242. zra.setMarginal_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3243. zra.setSfu_is_lock("0");
  3244. zra.setSurfaceresult(params2.get(1).toString());
  3245. zra.setSurfaceresult_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3246. zra.setUp_surface_result(params2.get(1).toString());
  3247. zra.setUp_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3248. zra.setSfd_is_lock("0");
  3249. zra.setUd_surface_result(params2.get(1).toString());
  3250. zra.setUd_surface_result_desc(params2.get(1).toString().equals("2")?"不合格":"待判");
  3251. zra.setSfe_is_lock("0");
  3252. }
  3253. }
  3254. }
  3255. mapper.UpdateJugeResultJ(zra);
  3256. }
  3257. // //异常材料处置,进行物料封锁合格时,直接进行异常材料处置业务
  3258. // if ("2".equals(params2.get(1).toString())) {
  3259. // //生成质量封锁记录号
  3260. // int count=0;
  3261. // QCMJudgeLocking qjlk = new QCMJudgeLocking();
  3262. // SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  3263. // String date=sdf.format(new Date());
  3264. // String condition = " and MATERIAL_NO = '"+material_no+"' order by LOCK_SEQ desc ";
  3265. // List<QCMJudgeLocking> qjl = mapper.queryQCMJudgeLocking(condition);
  3266. // if(qjl.size() > 0){
  3267. // count=qjl.get(0).getLock_seq();
  3268. // }
  3269. // count++;
  3270. // //锁定记录号
  3271. // int lock_seq=count;
  3272. // //获取缺陷
  3273. // String flaw="";
  3274. // String strsql = "select * from QCM_JUDGE_SURFACE_FLAW where SURFACE_ID in (select SURFACE_ID from qcm_judge_surface where material_no = '"+material_no+"') ";
  3275. // List<QcmJudgeSurfaceFlaw> qjsft = mapper.queryQcmJudgeSurfaceFlaw(strsql);
  3276. // for(QcmJudgeSurfaceFlaw qjsf1 :qjsft){
  3277. // if(!flaw.contains(qjsf1.getFlaw_desc()))
  3278. // {
  3279. // flaw+=qjsf1.getFlaw_desc()+",";
  3280. // }
  3281. // }
  3282. // String lock_memo = "";
  3283. // if (",".equals(flaw.substring(flaw.length()-1, flaw.length()))) {
  3284. // lock_memo = "表面:"+flaw.substring(0,flaw.length()-1);
  3285. // }else {
  3286. // lock_memo = "表面:"+flaw.substring(0,flaw.length());
  3287. // }
  3288. // //插入封锁表
  3289. // qjlk.setLock_type_code("F");
  3290. // qjlk.setLock_type_desc("表面检验");
  3291. // qjlk.setMaterial_no(material_no);
  3292. // qjlk.setLock_seq(lock_seq);
  3293. // qjlk.setLock_id(sid);
  3294. // qjlk.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  3295. // qjlk.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  3296. // qjlk.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  3297. // qjlk.setPlan_no(hashmap.get(0).get("PLAN_NO") == null ?"":hashmap.get(0).get("PLAN_NO").toString());
  3298. // qjlk.setHt_no(hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString());
  3299. // qjlk.setDesign_key(hashmap.get(0).get("DESIGN_KEY")== null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  3300. // qjlk.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  3301. // qjlk.setPline_code(hashmap.get(0).get("PLINE_CODE").toString());
  3302. // qjlk.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  3303. // qjlk.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  3304. // qjlk.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  3305. // qjlk.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  3306. // qjlk.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  3307. // qjlk.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  3308. // qjlk.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null ?"":hashmap.get(0).get("STEEL_CODE").toString());
  3309. // qjlk.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  3310. // qjlk.setFic_locking("1");
  3311. // qjlk.setLock_name(params2.get(6).toString());
  3312. // qjlk.setLock_memo(lock_memo+"-"+ params2.get(4).toString());
  3313. // mapper.insertQCMJudgeLocking(qjlk);
  3314. //
  3315. // }
  3316. if("512602".equals(params2.get(3).toString())){
  3317. ultimateJudgeAuto(material_no,params2.get(6).toString(),"3");
  3318. }else if("512603".equals(params2.get(3).toString())){
  3319. ultimateJudgeAuto(material_no,params2.get(6).toString(),"4");
  3320. }
  3321. QcmJudgeLog qjl = new QcmJudgeLog();
  3322. qjl.setJudge_type("R");
  3323. qjl.setMaterial_no(material_no);
  3324. qjl.setCreate_name("system");
  3325. qjl.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  3326. mapper.insertQcmJudgeLog(qjl);
  3327. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  3328. qjog.setOperate_name(params2.get(6).toString());
  3329. qjog.setOperate_type("表面检验判定");
  3330. qjog.setParams(material_no);
  3331. qjog.setBatchno(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  3332. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  3333. qjog.setJudge_result(params2.get(1).toString());
  3334. mapper.insertQcmJudgeOperateLog(qjog);
  3335. //判断产线是不是卷板,是的话调用存储过程COILJUDGE_STATUS
  3336. /*if (hashmap.size() > 0) {
  3337. if("1".equals(params2.get(1).toString())) {
  3338. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "1", null, null, null,"");
  3339. } else if("2".equals(params2.get(1).toString())) {
  3340. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "2", null, null, null,"");
  3341. } else if("0".equals(params2.get(1).toString())) {
  3342. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "D", null, null, null,"");
  3343. }
  3344. }*/
  3345. if (hashmap.size() > 0) {
  3346. if("512601".equals(params2.get(3).toString())) {//正品
  3347. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "1", null, null, null,"");
  3348. } else if("512602".equals(params2.get(3).toString())) {//次品
  3349. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "3", null, null, null,"");
  3350. } else if("512603".equals(params2.get(3).toString())) {//废品
  3351. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "4", null, null, null,"");
  3352. } else if("512606".equals(params2.get(3).toString())) {//待判
  3353. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "D", null, null, null,"");
  3354. } else{//不合格
  3355. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "2", null, null, null,"");
  3356. }
  3357. }
  3358. SqlSession.commit();
  3359. } catch (Exception e) {
  3360. cro.setResult( "检验登记失败!"+ e.getMessage());
  3361. cro.setV_errMsg("检验登记失败!"+ e.getMessage());
  3362. cro.setV_errCode(-1);
  3363. SqlSession.rollback();
  3364. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.doAddFlawJ:【" + params1.toString() + "," + params2.toString() + "】" + e);
  3365. }
  3366. SqlSession.close();
  3367. /*final List<HashMap> hashmap1 = hashmap;
  3368. Thread t1 = new Thread(){
  3369. @Override
  3370. public void run(){
  3371. QcmJhyElementsServiceImpl qje = new QcmJhyElementsServiceImpl();
  3372. //调用熔炼成分判定 RlChemAutoJudgeByHuman
  3373. try {
  3374. qje.RlChemAutoJudgeByHuman1(hashmap1,hashmap1.get(0).get("HEAT_NO").toString(),params2.get(0).toString(),hashmap1.get(0).get("DESIGN_KEY").toString(),"system",hashmap1.get(0).get("GRADE_NAME")==null?"":hashmap1.get(0).get("GRADE_NAME").toString());
  3375. } catch (Exception e2) {
  3376. // TODO Auto-generated catch block
  3377. e2.printStackTrace();
  3378. }
  3379. }
  3380. };
  3381. t1.start();
  3382. Thread t3 = new Thread(){
  3383. @Override
  3384. public void run(){
  3385. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  3386. //综合判定
  3387. try {
  3388. qjpc.ultimateJudgeAutoBySystem(hashmap1,params2.get(0).toString(), "system");
  3389. } catch (Exception e) {
  3390. // TODO Auto-generated catch block
  3391. e.printStackTrace();
  3392. }
  3393. }
  3394. };
  3395. t3.start();*/
  3396. return cro;
  3397. }
  3398. @SuppressWarnings({ "unused", "rawtypes" })
  3399. public CoreReturnObject doAddFlawL(ArrayList<List> params1,final ArrayList params2) throws Exception {
  3400. if(params2.size() == 0){
  3401. cro.setV_errCode(-1);
  3402. cro.setV_errMsg("请传入数据");
  3403. return cro;
  3404. }
  3405. String material_no = params2.get(0).toString();
  3406. List<HashMap> hashmap = mapper.doQueryMaterialInfoJ(material_no);
  3407. if(hashmap.size()==0){
  3408. throw new Exception("未找到库存信息!");
  3409. }
  3410. try {
  3411. String Inspection_lot = "";
  3412. String flaw_area = "";
  3413. //判断是否进行了综合判定
  3414. String sql = "select * from QCM_JUDGE_COIL_RESULT where coil_no = '"+material_no+"'";
  3415. List<HashMap> list2 = mapper.query(sql);
  3416. if(list2.size() >0){
  3417. for(HashMap list:list2){
  3418. if(list.get("JUDGERESULT") != null && !list.get("JUDGERESULT").toString().equals("0")){
  3419. throw new Exception("该产品序号【"+material_no+"】做了综合判定,不能做检验登记!");
  3420. }
  3421. if(list.get("SFU_IS_LOCK").equals("1") || list.get("SFD_IS_LOCK").equals("1") || list.get("SFE_IS_LOCK").equals("1")){
  3422. throw new Exception("该该产品序号【"+material_no+"】已经锁定,不能做检验登记!");
  3423. }
  3424. Inspection_lot = list.get("INSPECTION_LOT")== null?"":list.get("INSPECTION_LOT").toString();
  3425. }
  3426. }else{
  3427. throw new Exception("未找到库存信息!");
  3428. }
  3429. sql = "select * from (select * from QCM_JUDGE_SURFACE where MATERIAL_NO = '"+material_no+"' order by SURFACE_ID desc) where rownum <= 1";
  3430. List<QcmJudgeSurface> oldSuf = mapper.queryQcmJudgeSurfaces(sql);
  3431. if(oldSuf.size() > 0){
  3432. if ("1".equals(oldSuf.get(0).getSfu_is_lock()) || "1".equals(oldSuf.get(0).getSfd_is_lock()) || "1".equals(oldSuf.get(0).getSfe_is_lock())) {
  3433. cro.setV_errCode(-1);
  3434. cro.setV_errMsg("物料["+material_no+"],已经表面锁定,不能重新判定,请到异常材界面进行物料处理后操作!");
  3435. return cro;
  3436. }
  3437. }
  3438. String sid="";
  3439. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  3440. //获取表检类型
  3441. String type = "U";
  3442. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  3443. sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like '"+type+ ymd+"%' order by surface_id desc) where rownum <= 1 ";
  3444. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  3445. int icount = 0;
  3446. if (list != null && list.size() > 0) {
  3447. String s=list.get(0).getSurface_id();
  3448. icount = Integer.parseInt(s.substring(s.length()-4,s.length()));
  3449. }
  3450. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  3451. icount++;
  3452. sid=type+ymd + String.format("%05d",icount);
  3453. //插入表面实绩表
  3454. for(List qjs:params1){
  3455. if(qjs.get(0).toString().equals("1")){
  3456. flaw_area = qjs.get(4).toString();
  3457. }
  3458. }
  3459. if(flaw_area.equals("")){
  3460. if(params1.size() >0){
  3461. flaw_area = params1.get(0).get(4).toString();
  3462. }
  3463. }
  3464. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  3465. qjsf.setSurface_id(sid);
  3466. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  3467. qjsf.setBatch_no(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  3468. qjsf.setBoard_no(hashmap.get(0).get("BOARD_NO") == null ?"":hashmap.get(0).get("BOARD_NO").toString());
  3469. qjsf.setInspection_lot(Inspection_lot);
  3470. qjsf.setMaterial_no(material_no);
  3471. qjsf.setLevel_code(params2.get(3).toString());
  3472. qjsf.setLevel_desc(params2.get(4).toString());
  3473. qjsf.setSf_type(type);
  3474. qjsf.setSf_memo(params2.get(5).toString());
  3475. qjsf.setSfd_is_lock("0");
  3476. qjsf.setSfe_is_lock("0");
  3477. qjsf.setSfu_is_lock("0");
  3478. String result = "";
  3479. if(!params2.get(1).toString().equals("")){
  3480. result = params2.get(1).toString();
  3481. qjsf.setSf_result_code(params2.get(1).toString());
  3482. qjsf.setSf_result_desc(params2.get(2).toString());
  3483. if(flaw_area.equals("U")&&params2.get(1).toString().equals("2")){
  3484. qjsf.setSfu_is_lock("0");
  3485. }else if(flaw_area.equals("D")&&params2.get(1).toString().equals("2")){
  3486. qjsf.setSfd_is_lock("0");
  3487. }else if(flaw_area.equals("E")&&params2.get(1).toString().equals("2")){
  3488. qjsf.setSfe_is_lock("0");
  3489. }else if(params2.get(1).toString().equals("2")){
  3490. qjsf.setSfu_is_lock("0");
  3491. qjsf.setSfd_is_lock("0");
  3492. qjsf.setSfe_is_lock("0");
  3493. }
  3494. }else{
  3495. if(hashmap.get(0).get("DESIGN_KEY")==null){
  3496. throw new Exception("订单号不能为空!");
  3497. }
  3498. result = getresult(hashmap.get(0).get("DESIGN_KEY")==null ?"":hashmap.get(0).get("DESIGN_KEY").toString(),params2.get(3).toString());
  3499. qjsf.setSf_result_code(result);
  3500. qjsf.setSf_result_desc(result.equals("1")?"合格":"不合格");
  3501. if(flaw_area.equals("U")&&result.equals("2")){
  3502. qjsf.setSfu_is_lock("0");
  3503. }else if(flaw_area.equals("D")&&result.equals("2")){
  3504. qjsf.setSfd_is_lock("0");
  3505. }else if(flaw_area.equals("E")&&result.equals("2")){
  3506. qjsf.setSfe_is_lock("0");
  3507. }else if(result.equals("2")){
  3508. qjsf.setSfu_is_lock("0");
  3509. qjsf.setSfd_is_lock("0");
  3510. qjsf.setSfe_is_lock("0");
  3511. }
  3512. }
  3513. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY")==null ?"":hashmap.get(0).get("DESIGN_KEY").toString());
  3514. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY")==null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  3515. qjsf.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  3516. qjsf.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  3517. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  3518. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  3519. qjsf.setWrk_ord(params2.get(7).toString());
  3520. qjsf.setWrk_grp(params2.get(8).toString());
  3521. qjsf.setJudge_name(params2.get(6).toString());
  3522. qjsf.setSf_memo(params2.get(5).toString());
  3523. qjsf.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  3524. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  3525. qjsf.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  3526. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  3527. qjsf.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null?"":hashmap.get(0).get("STEEL_CODE").toString());
  3528. qjsf.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  3529. mapper.insertQcmJudgeSurface(qjsf);
  3530. Long seq=1L;
  3531. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  3532. for(List qjs:params1){
  3533. QcmJudgeSurfaceFlaw qjsffs = new QcmJudgeSurfaceFlaw();
  3534. qjsffs.setPrimary_flag(qjs.get(0).toString());
  3535. qjsffs.setIs_repair("0");
  3536. qjsffs.setFlaw_seq(Long.parseLong(qjs.get(1).toString()));
  3537. qjsffs.setFlaw_code(qjs.get(2).toString());
  3538. qjsffs.setFlaw_desc(qjs.get(3).toString());
  3539. qjsffs.setFlaw_area(qjs.get(4).toString());
  3540. List<HashMap> lists = finddefecttype(qjs.get(2).toString());
  3541. if(lists.size()>0){
  3542. qjsffs.setFlaw_desc(lists.get(0).get("DEFECT_DESC")==null?"":lists.get(0).get("DEFECT_DESC").toString());
  3543. qjsffs.setFlaw_type_code(lists.get(0).get("DEFECT_TYPE_CODE")==null?"":lists.get(0).get("DEFECT_TYPE_CODE").toString());
  3544. qjsffs.setFlaw_type_desc(lists.get(0).get("DEFECT_TYPE_DESC") == null ?"":lists.get(0).get("DEFECT_TYPE_DESC").toString());
  3545. }
  3546. qjsffs.setFlaw_pos_code(qjs.get(5).toString());
  3547. qjsffs.setFlaw_pos_desc(qjs.get(6).toString());
  3548. qjsffs.setFlaw_dir_code(qjs.get(7).toString());
  3549. qjsffs.setFlaw_dir_desc(qjs.get(8).toString());
  3550. qjsffs.setFlaw_size_code(qjs.get(9).toString());
  3551. qjsffs.setFlaw_size_desc(qjs.get(10).toString());
  3552. qjsffs.setFlaw_lv_code(qjs.get(11).toString());
  3553. qjsffs.setFlaw_lv_desc(qjs.get(12).toString());
  3554. if(!qjs.get(13).equals("")){
  3555. qjsffs.setFlaw_quantity(Long.parseLong(qjs.get(13).toString()));
  3556. }
  3557. qjsffs.setMemo(qjs.get(14).toString());
  3558. qjsffs.setIs_repair(qjs.get(15).toString());
  3559. qjsflist.add(qjsffs);
  3560. seq = Long.parseLong(qjs.get(1).toString());
  3561. seq++;
  3562. }
  3563. // 获取物料历史缺陷集合
  3564. String conn = "and material_no = '"+ material_no +"'";
  3565. sql = " select * from QCM_JUDGE_SURFACE where 1=1 "+conn+"";
  3566. List<QcmJudgeSurface> qjsListOld = mapper.queryQcmJudgeSurfaces(sql);
  3567. if(qjsListOld!=null && qjsListOld.size()>0){
  3568. String sufIdStr="";
  3569. for(QcmJudgeSurface qjs1 : qjsListOld){
  3570. if("".equals(sufIdStr))
  3571. sufIdStr += "'"+qjs1.getSurface_id()+"'";
  3572. else
  3573. sufIdStr += ",'"+qjs1.getSurface_id()+"'";
  3574. }
  3575. String condition = "and surface_id in ("+sufIdStr+")";
  3576. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition+"";
  3577. List<QcmJudgeSurfaceFlaw> qjsffList = mapper.queryQcmJudgeSurfaceFlaw(sql);
  3578. String condition1 = "and surface_id in ("+sufIdStr+") and primary_flag ='1'";
  3579. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition1+"";
  3580. List<QcmJudgeSurfaceFlaw> qjsffList1 = mapper.queryQcmJudgeSurfaceFlaw(sql);
  3581. // 之前已经登记过缺陷,则将此次所有缺陷都改为非主缺陷
  3582. if(qjsffList1!=null && qjsffList1.size()>0){
  3583. //将获取的缺陷实绩信息插入表面缺陷实绩表
  3584. for(QcmJudgeSurfaceFlaw qjsff1 : qjsflist){
  3585. if(!qjsffList1.get(0).getFlaw_code().equals(qjsff1.getFlaw_code())){
  3586. qjsff1.setPrimary_flag("0");
  3587. }
  3588. }
  3589. }
  3590. for(QcmJudgeSurfaceFlaw qjsf1:qjsffList){
  3591. Boolean flag = false;
  3592. for(QcmJudgeSurfaceFlaw qjsf2:qjsflist){
  3593. if(qjsf1.getFlaw_code().equals(qjsf2.getFlaw_code())){
  3594. flag = true;
  3595. break;
  3596. }
  3597. }
  3598. if(!flag){
  3599. qjsf1.setFlaw_seq(seq);
  3600. qjsflist.add(qjsf1);
  3601. seq++;
  3602. }
  3603. }
  3604. }
  3605. int seq1 = 0;
  3606. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  3607. if(qjsff.getFlaw_area() == null){
  3608. continue;
  3609. }
  3610. //将获取的缺陷实绩信息插入表面缺陷实绩表
  3611. String[] strList = qjsff.getFlaw_area().split(",");
  3612. for(String str : strList){
  3613. qjsff.setSurface_id(sid);
  3614. qjsff.setFlaw_area(str);
  3615. qjsff.setCreate_name(params2.get(6).toString());//创建人
  3616. qjsff.setCreate_time(new Date());//创建时间
  3617. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  3618. seq1++;
  3619. }
  3620. QcmJudgeUltimateReason qjr = new QcmJudgeUltimateReason();
  3621. qjr.setMaterial_no(material_no);
  3622. qjr.setType_code(qjsff.getFlaw_area().equals("")?"U":qjsff.getFlaw_area());
  3623. qjr.setRecord_id(sid);
  3624. qjr.setSeq(seq1);
  3625. qjr.setPhy_code_s(qjsff.getFlaw_code());
  3626. qjr.setPhy_name_s(qjsff.getFlaw_desc());
  3627. qjr.setCreate_name(params2.get(6).toString());
  3628. qjr.setCreate_time(new Date());
  3629. mapper.insertQcmJudgeUltimateReason(qjr);
  3630. }
  3631. //更新库存表上表,下表,边部结果
  3632. if(list2.size() >0){
  3633. QcmJudgeCoilResult zra = new QcmJudgeCoilResult();
  3634. zra.setCoil_no(material_no);
  3635. zra.setSurfaceresult("1");
  3636. zra.setSurfaceresult_desc("合格");
  3637. zra.setSurfaceid(sid);
  3638. zra.setSfd_is_lock("0");
  3639. zra.setSfe_is_lock("0");
  3640. zra.setSfu_is_lock("0");
  3641. zra.setUd_surface_result("1");
  3642. zra.setUd_surface_result_desc("合格");
  3643. zra.setUd_surface_result_id_desc(sid);
  3644. zra.setUp_surface_result("1");
  3645. zra.setUp_surface_result_desc("合格");
  3646. zra.setUp_surface_result_id_desc(sid);
  3647. zra.setMarginal_result("1");
  3648. zra.setMarginal_result_desc("合格");
  3649. zra.setMarginal_result_id_desc(sid);
  3650. //合格
  3651. if(!result.equals("1")){
  3652. if(type.equals("U")){
  3653. zra.setUp_surface_result(result);
  3654. zra.setUp_surface_result_desc(result.equals("2")?"不合格":"待判");
  3655. zra.setSfu_is_lock("0");
  3656. zra.setSurfaceresult(result);
  3657. zra.setSurfaceresult_desc(result.equals("2")?"不合格":"待判");
  3658. }
  3659. else if(type.equals("D")){
  3660. zra.setUd_surface_result(result);
  3661. zra.setUd_surface_result_desc(result.equals("2")?"不合格":"待判");
  3662. zra.setSfd_is_lock("0");
  3663. zra.setSurfaceresult(result);
  3664. zra.setSurfaceresult_desc(result.equals("2")?"不合格":"待判");
  3665. }
  3666. else if(type.equals("E")){
  3667. zra.setMarginal_result(result);
  3668. zra.setMarginal_result_desc(result.equals("2")?"不合格":"待判");
  3669. zra.setSfe_is_lock("0");
  3670. zra.setSurfaceresult(result);
  3671. zra.setSurfaceresult_desc(result.equals("2")?"不合格":"待判");
  3672. }
  3673. else{
  3674. zra.setMarginal_result(result);
  3675. zra.setMarginal_result_desc(result.equals("2")?"不合格":"待判");
  3676. zra.setSfu_is_lock("0");
  3677. zra.setSurfaceresult(result);
  3678. zra.setSurfaceresult_desc(result.equals("2")?"不合格":"待判");
  3679. zra.setUp_surface_result(result);
  3680. zra.setUp_surface_result_desc(result.equals("2")?"不合格":"待判");
  3681. zra.setSfd_is_lock("0");
  3682. zra.setUd_surface_result(result);
  3683. zra.setUd_surface_result_desc(result.equals("2")?"不合格":"待判");
  3684. zra.setSfe_is_lock("0");
  3685. }
  3686. }
  3687. mapper.UpdateJugeResultJ(zra);
  3688. }
  3689. //异常材料处置,进行物料封锁合格时,直接进行异常材料处置业务
  3690. // if ("2".equals(result)) {
  3691. // //生成质量封锁记录号
  3692. // int count=0;
  3693. // QCMJudgeLocking qjlk = new QCMJudgeLocking();
  3694. // SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  3695. // String date=sdf.format(new Date());
  3696. // String condition = " and MATERIAL_NO = '"+material_no+"' order by LOCK_SEQ desc ";
  3697. // List<QCMJudgeLocking> qjl = mapper.queryQCMJudgeLocking(condition);
  3698. // if(qjl.size() > 0){
  3699. // count=qjl.get(0).getLock_seq();
  3700. // }
  3701. // count++;
  3702. // //锁定记录号
  3703. // int lock_seq=count;
  3704. // //获取缺陷
  3705. // String flaw="";
  3706. // String strsql = "select * from QCM_JUDGE_SURFACE_FLAW where SURFACE_ID in (select SURFACE_ID from qcm_judge_surface where material_no = '"+material_no+"') ";
  3707. // List<QcmJudgeSurfaceFlaw> qjsft = mapper.queryQcmJudgeSurfaceFlaw(strsql);
  3708. // for(QcmJudgeSurfaceFlaw qjsf1 :qjsft){
  3709. // if(!flaw.contains(qjsf1.getFlaw_desc()))
  3710. // {
  3711. // flaw+=qjsf1.getFlaw_desc()+",";
  3712. // }
  3713. // }
  3714. // String lock_memo = "";
  3715. // if (",".equals(flaw.substring(flaw.length()-1, flaw.length()))) {
  3716. // lock_memo = "表面:"+flaw.substring(0,flaw.length()-1);
  3717. // }else {
  3718. // lock_memo = "表面:"+flaw.substring(0,flaw.length());
  3719. // }
  3720. // //插入封锁表
  3721. // qjlk.setLock_type_code("F");
  3722. // qjlk.setLock_type_desc("表面检验");
  3723. // qjlk.setMaterial_no(material_no);
  3724. // qjlk.setLock_seq(lock_seq);
  3725. // qjlk.setLock_id(sid);
  3726. // qjlk.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  3727. // qjlk.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  3728. // qjlk.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  3729. // qjlk.setPlan_no(hashmap.get(0).get("PLAN_NO") == null ?"":hashmap.get(0).get("PLAN_NO").toString());
  3730. // qjlk.setHt_no(hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString());
  3731. // qjlk.setDesign_key(hashmap.get(0).get("DESIGN_KEY")== null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  3732. // qjlk.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  3733. // qjlk.setPline_code(hashmap.get(0).get("PLINE_CODE").toString());
  3734. // qjlk.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  3735. // qjlk.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  3736. // qjlk.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  3737. // qjlk.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  3738. // qjlk.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  3739. // qjlk.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  3740. // qjlk.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null ?"":hashmap.get(0).get("STEEL_CODE").toString());
  3741. // qjlk.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  3742. // qjlk.setFic_locking("1");
  3743. // qjlk.setLock_name(params2.get(6).toString());
  3744. // qjlk.setLock_memo(lock_memo+"-"+ params2.get(4).toString());
  3745. // mapper.insertQCMJudgeLocking(qjlk);
  3746. //
  3747. // }
  3748. QcmJudgeLog qjl = new QcmJudgeLog();
  3749. qjl.setJudge_type("R");
  3750. qjl.setMaterial_no(material_no);
  3751. qjl.setCreate_name("system");
  3752. qjl.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  3753. mapper.insertQcmJudgeLog(qjl);
  3754. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  3755. qjog.setOperate_name(params2.get(6).toString());
  3756. qjog.setOperate_type("表面检验判定");
  3757. qjog.setParams(material_no);
  3758. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  3759. qjog.setBatchno(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  3760. qjog.setJudge_result(result);
  3761. mapper.insertQcmJudgeOperateLog(qjog);
  3762. //判断产线是不是卷板,是的话调用存储过程COILJUDGE_STATUS
  3763. if (hashmap.size() > 0) {
  3764. if("1".equals(result)) {
  3765. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "1", null, null, null,params2.get(4).toString());
  3766. } else if("2".equals(result)) {
  3767. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "2", null, null, null,params2.get(4).toString());
  3768. }else if("0".equals(result)) {
  3769. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "D", null, null, null,params2.get(4).toString());
  3770. }
  3771. }
  3772. SqlSession.commit();
  3773. } catch (Exception e) {
  3774. cro.setResult( "检验登记失败!"+ e.getMessage());
  3775. cro.setV_errMsg("检验登记失败!"+ e.getMessage());
  3776. cro.setV_errCode(-1);
  3777. SqlSession.rollback();
  3778. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.doAddFlawJ:【" + params1.toString() + "," + params2.toString() + "】" + e);
  3779. }
  3780. SqlSession.close();
  3781. /*final List<HashMap> hashmap1 = hashmap;
  3782. Thread t1 = new Thread(){
  3783. @Override
  3784. public void run(){
  3785. QcmJhyElementsServiceImpl qje = new QcmJhyElementsServiceImpl();
  3786. //调用熔炼成分判定 RlChemAutoJudgeByHuman
  3787. try {
  3788. qje.RlChemAutoJudgeByHuman1(hashmap1,hashmap1.get(0).get("HEAT_NO").toString(),params2.get(0).toString(),hashmap1.get(0).get("DESIGN_KEY").toString(),"system",hashmap1.get(0).get("GRADE_NAME")==null?"":hashmap1.get(0).get("GRADE_NAME").toString());
  3789. } catch (Exception e2) {
  3790. // TODO Auto-generated catch block
  3791. e2.printStackTrace();
  3792. }
  3793. }
  3794. };
  3795. t1.start();
  3796. Thread t3 = new Thread(){
  3797. @Override
  3798. public void run(){
  3799. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  3800. //综合判定
  3801. try {
  3802. qjpc.ultimateJudgeAutoBySystem(hashmap1,params2.get(0).toString(), "system");
  3803. } catch (Exception e) {
  3804. // TODO Auto-generated catch block
  3805. e.printStackTrace();
  3806. }
  3807. }
  3808. };
  3809. t3.start();*/
  3810. return cro;
  3811. }
  3812. @SuppressWarnings({ "unused", "rawtypes" })
  3813. public CoreReturnObject doAddFlawL1(ArrayList<List> params1,final ArrayList params2) throws Exception {
  3814. if(params2.size() == 0){
  3815. cro.setV_errCode(-1);
  3816. cro.setV_errMsg("请传入数据");
  3817. return cro;
  3818. }
  3819. String material_no = params2.get(0).toString();
  3820. List<HashMap> hashmap = mapper.doQueryMaterialInfoJ(material_no);
  3821. if(hashmap.size()==0){
  3822. throw new Exception("未找到库存信息!");
  3823. }
  3824. if(hashmap.get(0).get("DESIGN_KEY") == null){
  3825. throw new Exception("该物料无订单,不能进行表面判定");
  3826. }
  3827. try {
  3828. String Inspection_lot = "";
  3829. String inspection_lot = "";
  3830. String flaw_area = "";
  3831. //判断是否进行了综合判定
  3832. String sql = "select * from QCM_JUDGE_COIL_RESULT where coil_no = '"+material_no+"'";
  3833. List<HashMap> list2 = mapper.query(sql);
  3834. if(list2.size() > 0){
  3835. if(list2.get(0).get("JUDGERESULT").equals("4")){
  3836. throw new Exception("已判废品,不可操作!");
  3837. }
  3838. }
  3839. if(list2.size() >0){
  3840. for(HashMap list:list2){
  3841. if(list.get("JUDGERESULT") != null && !list.get("JUDGERESULT").toString().equals("0")){
  3842. List<QcmJudgeUltimate> qju = mapper.QcmJudgeUltimate("select * from Qcm_Judge_Ultimate where utm_id = '"+list.get("JUDGEID")+"'");
  3843. if(list2.get(0).get("INSPECTION_LOT")==null){
  3844. inspection_lot = qju.get(0).getInspection_lot()== null?"":qju.get(0).getInspection_lot();
  3845. }else{
  3846. inspection_lot = list2.get(0).get("INSPECTION_LOT")==null?"":list2.get(0).get("INSPECTION_LOT").toString();
  3847. }
  3848. mapper.clearJUDGERESULT1(material_no,inspection_lot);
  3849. coiljudge_status_call(qju.get(0).getPline_code(), material_no, null, null, null, null, "D", null, null,"");
  3850. //throw new Exception("该产品序号【"+material_no+"】做了综合判定,不能做检验登记!");
  3851. }
  3852. if(list.get("SFU_IS_LOCK").equals("1") || list.get("SFD_IS_LOCK").equals("1") || list.get("SFE_IS_LOCK").equals("1")){
  3853. throw new Exception("该该产品序号【"+material_no+"】已经锁定,不能做表面检验登记!");
  3854. }
  3855. Inspection_lot = list.get("INSPECTION_LOT")== null?"":list.get("INSPECTION_LOT").toString();
  3856. }
  3857. }else{
  3858. throw new Exception("未找到库存信息!");
  3859. }
  3860. sql = "select * from (select * from QCM_JUDGE_SURFACE where MATERIAL_NO = '"+material_no+"' order by SURFACE_ID desc) where rownum <= 1";
  3861. List<QcmJudgeSurface> oldSuf = mapper.queryQcmJudgeSurfaces(sql);
  3862. if(oldSuf.size() > 0){
  3863. if ("1".equals(oldSuf.get(0).getSfu_is_lock()) || "1".equals(oldSuf.get(0).getSfd_is_lock()) || "1".equals(oldSuf.get(0).getSfe_is_lock())) {
  3864. cro.setV_errCode(-1);
  3865. cro.setV_errMsg("物料["+material_no+"],已经表面锁定,不能重新判定,请到异常材界面进行物料处理后操作!");
  3866. return cro;
  3867. }
  3868. }
  3869. String sid="";
  3870. List<QcmJudgeSurface> qjslisttt=new ArrayList<QcmJudgeSurface>();
  3871. //获取表检类型
  3872. String type = "U";
  3873. String ymd = new SimpleDateFormat("yyMMdd").format(new Date());
  3874. sql = "select * from (select * from QCM_JUDGE_SURFACE where surface_id like '"+type+ ymd+"%' order by surface_id desc) where rownum <= 1 ";
  3875. List<QcmJudgeSurface> list=mapper.queryQcmJudgeSurfaces(sql);
  3876. int icount = 0;
  3877. if (list != null && list.size() > 0) {
  3878. String s=list.get(0).getSurface_id();
  3879. icount = Integer.parseInt(s.substring(s.length()-4,s.length()));
  3880. }
  3881. //生成检验索引码,编码规则:U/D/E+两位年/月/日+4位流水号,示例:E1803070001;
  3882. icount++;
  3883. sid=type+ymd + String.format("%05d",icount);
  3884. //插入表面实绩表
  3885. for(List qjs:params1){
  3886. if(qjs.get(0).toString().equals("1")){
  3887. flaw_area = qjs.get(4).toString();
  3888. }
  3889. }
  3890. if(flaw_area.equals("")){
  3891. if(params1.size() >0){
  3892. flaw_area = params1.get(0).get(4).toString();
  3893. }
  3894. }
  3895. QcmJudgeSurface qjsf = new QcmJudgeSurface();
  3896. qjsf.setSurface_id(sid);
  3897. qjsf.setHeat_no(hashmap.get(0).get("HEAT_NO") == null ?"":hashmap.get(0).get("HEAT_NO").toString());
  3898. qjsf.setBatch_no(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  3899. qjsf.setBoard_no(hashmap.get(0).get("BOARD_NO") == null ?"":hashmap.get(0).get("BOARD_NO").toString());
  3900. qjsf.setInspection_lot(Inspection_lot);
  3901. qjsf.setMaterial_no(material_no);
  3902. qjsf.setLevel_code(params2.get(3).toString());
  3903. qjsf.setLevel_desc(params2.get(4).toString());
  3904. qjsf.setSf_type(type);
  3905. qjsf.setSf_memo(params2.get(5).toString());
  3906. qjsf.setSfd_is_lock("0");
  3907. qjsf.setSfe_is_lock("0");
  3908. qjsf.setSfu_is_lock("0");
  3909. String result = "";
  3910. if(!params2.get(1).toString().equals("")){
  3911. result = params2.get(1).toString();
  3912. qjsf.setSf_result_code(params2.get(1).toString());
  3913. qjsf.setSf_result_desc(params2.get(2).toString());
  3914. if(flaw_area.equals("U")&&params2.get(1).toString().equals("2")){
  3915. qjsf.setSfu_is_lock("0");
  3916. }else if(flaw_area.equals("D")&&params2.get(1).toString().equals("2")){
  3917. qjsf.setSfd_is_lock("0");
  3918. }else if(flaw_area.equals("E")&&params2.get(1).toString().equals("2")){
  3919. qjsf.setSfe_is_lock("0");
  3920. }else if(params2.get(1).toString().equals("2")){
  3921. qjsf.setSfu_is_lock("0");
  3922. qjsf.setSfd_is_lock("0");
  3923. qjsf.setSfe_is_lock("0");
  3924. }
  3925. }else{
  3926. if(hashmap.get(0).get("DESIGN_KEY")==null){
  3927. result = "0";
  3928. qjsf.setSf_result_code(result);
  3929. qjsf.setSf_result_desc("待判");
  3930. }else{
  3931. result = getresult1(hashmap.get(0).get("DESIGN_KEY")==null ?"":hashmap.get(0).get("DESIGN_KEY").toString(),params2.get(3).toString());
  3932. qjsf.setSf_result_code(result);
  3933. qjsf.setSf_result_desc(result.equals("1")?"合格":(result.equals("2")?"不合格":"待判"));
  3934. }
  3935. if(flaw_area.equals("U")&&result.equals("2")){
  3936. qjsf.setSfu_is_lock("0");
  3937. }else if(flaw_area.equals("D")&&result.equals("2")){
  3938. qjsf.setSfd_is_lock("0");
  3939. }else if(flaw_area.equals("E")&&result.equals("2")){
  3940. qjsf.setSfe_is_lock("0");
  3941. }else if(result.equals("2")){
  3942. qjsf.setSfu_is_lock("0");
  3943. qjsf.setSfd_is_lock("0");
  3944. qjsf.setSfe_is_lock("0");
  3945. }
  3946. }
  3947. if("LT1".equals(hashmap.get(0).get("PLINE_CODE"))){
  3948. if(hashmap.get(0).get("STEEL_CODE").toString().contains("TC")||
  3949. hashmap.get(0).get("STEEL_CODE").toString().contains("EK")||
  3950. hashmap.get(0).get("STEEL_CODE").toString().contains("SPP-H")){
  3951. if("不合格".equals(params2.get(9).toString())){
  3952. result = "2";
  3953. qjsf.setSf_result_code(result);
  3954. qjsf.setSf_result_desc("不合格");
  3955. String sql11 = "update c_tbc02_coil_comm t set t.MAOCI = 'N' where "
  3956. + " t.OLD_SAMPL_NO = '"+params2.get(0).toString()+"'";
  3957. mapper.upRZRemarks(sql11.toString());
  3958. }else if("合格".equals(params2.get(9).toString())){
  3959. String sql11 = "update c_tbc02_coil_comm t set t.MAOCI = 'Y' where "
  3960. + " t.OLD_SAMPL_NO = '"+params2.get(0).toString()+"'";
  3961. mapper.upRZRemarks(sql11.toString());
  3962. }else if("".equals(params2.get(9).toString())&& "0".equals(result)){
  3963. cro.setV_errCode(-1);
  3964. cro.setV_errMsg("物料["+material_no+"]表面需要判定边部毛刺,请勾选边部毛刺等级");
  3965. return cro;
  3966. }
  3967. }
  3968. }
  3969. qjsf.setDesign_key(hashmap.get(0).get("DESIGN_KEY")==null ?"":hashmap.get(0).get("DESIGN_KEY").toString());
  3970. qjsf.setOrder_no(hashmap.get(0).get("DESIGN_KEY")==null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  3971. qjsf.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  3972. qjsf.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  3973. qjsf.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  3974. qjsf.setPline_name(hashmap.get(0).get("PLINE_NAME") == null ?"":hashmap.get(0).get("PLINE_NAME").toString());
  3975. qjsf.setWrk_ord(params2.get(7).toString());
  3976. qjsf.setWrk_grp(params2.get(8).toString());
  3977. qjsf.setJudge_name(params2.get(6).toString());
  3978. qjsf.setSf_memo(params2.get(5).toString());
  3979. qjsf.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  3980. qjsf.setStd_name(hashmap.get(0).get("STD_NAME")== null?"":hashmap.get(0).get("STD_NAME").toString());
  3981. qjsf.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  3982. qjsf.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  3983. qjsf.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null?"":hashmap.get(0).get("STEEL_CODE").toString());
  3984. qjsf.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  3985. mapper.insertQcmJudgeSurface(qjsf);
  3986. Long seq=1L;
  3987. List<QcmJudgeSurfaceFlaw> qjsflist = new ArrayList<QcmJudgeSurfaceFlaw>();
  3988. for(List qjs:params1){
  3989. QcmJudgeSurfaceFlaw qjsffs = new QcmJudgeSurfaceFlaw();
  3990. qjsffs.setPrimary_flag(qjs.get(0).toString());
  3991. qjsffs.setIs_repair("0");
  3992. qjsffs.setFlaw_seq(Long.parseLong(qjs.get(1).toString()));
  3993. qjsffs.setFlaw_code(qjs.get(2).toString());
  3994. qjsffs.setFlaw_desc(qjs.get(3).toString());
  3995. qjsffs.setFlaw_area(qjs.get(4).toString());
  3996. List<HashMap> lists = finddefecttype(qjs.get(2).toString());
  3997. if(lists.size()>0){
  3998. qjsffs.setFlaw_desc(lists.get(0).get("DEFECT_DESC")==null?"":lists.get(0).get("DEFECT_DESC").toString());
  3999. qjsffs.setFlaw_type_code(lists.get(0).get("DEFECT_TYPE_CODE")==null?"":lists.get(0).get("DEFECT_TYPE_CODE").toString());
  4000. qjsffs.setFlaw_type_desc(lists.get(0).get("DEFECT_TYPE_DESC") == null ?"":lists.get(0).get("DEFECT_TYPE_DESC").toString());
  4001. }
  4002. qjsffs.setFlaw_pos_code(qjs.get(5).toString());
  4003. qjsffs.setFlaw_pos_desc(qjs.get(6).toString());
  4004. qjsffs.setFlaw_dir_code(qjs.get(7).toString());
  4005. qjsffs.setFlaw_dir_desc(qjs.get(8).toString());
  4006. qjsffs.setFlaw_size_code(qjs.get(9).toString());
  4007. qjsffs.setFlaw_size_desc(qjs.get(10).toString());
  4008. qjsffs.setFlaw_lv_code(qjs.get(11).toString());
  4009. qjsffs.setFlaw_lv_desc(qjs.get(12).toString());
  4010. if(!qjs.get(13).equals("")){
  4011. qjsffs.setFlaw_quantity(Long.parseLong(qjs.get(13).toString()));
  4012. }
  4013. qjsffs.setMemo(qjs.get(14).toString());
  4014. qjsffs.setIs_repair(qjs.get(15).toString());
  4015. qjsffs.setFlaw_origin(qjs.get(16).toString());
  4016. qjsflist.add(qjsffs);
  4017. seq = Long.parseLong(qjs.get(1).toString());
  4018. seq++;
  4019. }
  4020. // 获取物料历史缺陷集合
  4021. String conn = "and material_no = '"+ material_no +"'";
  4022. sql = " select * from QCM_JUDGE_SURFACE where 1=1 "+conn+"";
  4023. List<QcmJudgeSurface> qjsListOld = mapper.queryQcmJudgeSurfaces(sql);
  4024. if(qjsListOld!=null && qjsListOld.size()>0){
  4025. String sufIdStr="";
  4026. for(QcmJudgeSurface qjs1 : qjsListOld){
  4027. if("".equals(sufIdStr))
  4028. sufIdStr += "'"+qjs1.getSurface_id()+"'";
  4029. else
  4030. sufIdStr += ",'"+qjs1.getSurface_id()+"'";
  4031. }
  4032. String condition = "and surface_id in ("+sufIdStr+")";
  4033. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition+"";
  4034. List<QcmJudgeSurfaceFlaw> qjsffList = mapper.queryQcmJudgeSurfaceFlaw(sql);
  4035. String condition1 = "and surface_id in ("+sufIdStr+") and primary_flag ='1'";
  4036. sql = " select * from QCM_JUDGE_SURFACE_FLAW where 1=1 "+condition1+"";
  4037. List<QcmJudgeSurfaceFlaw> qjsffList1 = mapper.queryQcmJudgeSurfaceFlaw(sql);
  4038. // 之前已经登记过缺陷,则将此次所有缺陷都改为非主缺陷
  4039. if(qjsffList1!=null && qjsffList1.size()>0){
  4040. //将获取的缺陷实绩信息插入表面缺陷实绩表
  4041. for(QcmJudgeSurfaceFlaw qjsff1 : qjsflist){
  4042. if(!qjsffList1.get(0).getFlaw_code().equals(qjsff1.getFlaw_code())){
  4043. qjsff1.setPrimary_flag("0");
  4044. }
  4045. }
  4046. }
  4047. for(QcmJudgeSurfaceFlaw qjsf1:qjsffList){
  4048. Boolean flag = false;
  4049. for(QcmJudgeSurfaceFlaw qjsf2:qjsflist){
  4050. if(qjsf1.getFlaw_code().equals(qjsf2.getFlaw_code())){
  4051. flag = true;
  4052. break;
  4053. }
  4054. }
  4055. if(!flag){
  4056. qjsf1.setFlaw_seq(seq);
  4057. qjsflist.add(qjsf1);
  4058. seq++;
  4059. }
  4060. }
  4061. }
  4062. int seq1 = 0;
  4063. for(QcmJudgeSurfaceFlaw qjsff:qjsflist){
  4064. if(qjsff.getFlaw_area() == null){
  4065. continue;
  4066. }
  4067. //将获取的缺陷实绩信息插入表面缺陷实绩表
  4068. String[] strList = qjsff.getFlaw_area().split(",");
  4069. for(String str : strList){
  4070. qjsff.setSurface_id(sid);
  4071. qjsff.setFlaw_area(str);
  4072. qjsff.setCreate_name(params2.get(6).toString());//创建人
  4073. qjsff.setCreate_time(new Date());//创建时间
  4074. mapper.insertQcmJudgeSurfaceFlaw(qjsff);
  4075. seq1++;
  4076. }
  4077. QcmJudgeUltimateReason qjr = new QcmJudgeUltimateReason();
  4078. qjr.setMaterial_no(material_no);
  4079. qjr.setType_code(qjsff.getFlaw_area().equals("")?"U":qjsff.getFlaw_area());
  4080. qjr.setRecord_id(sid);
  4081. qjr.setSeq(seq1);
  4082. qjr.setPhy_code_s(qjsff.getFlaw_code());
  4083. qjr.setPhy_name_s(qjsff.getFlaw_desc());
  4084. qjr.setCreate_name(params2.get(6).toString());
  4085. qjr.setCreate_time(new Date());
  4086. mapper.insertQcmJudgeUltimateReason(qjr);
  4087. }
  4088. //更新库存表上表,下表,边部结果
  4089. if(list2.size() >0){
  4090. QcmJudgeCoilResult zra = new QcmJudgeCoilResult();
  4091. zra.setCoil_no(material_no);
  4092. zra.setSurfaceresult("1");
  4093. zra.setSurfaceresult_desc("合格");
  4094. zra.setSurfaceid(sid);
  4095. zra.setSfd_is_lock("0");
  4096. zra.setSfe_is_lock("0");
  4097. zra.setSfu_is_lock("0");
  4098. zra.setUd_surface_result("1");
  4099. zra.setUd_surface_result_desc("合格");
  4100. zra.setUd_surface_result_id_desc(sid);
  4101. zra.setUp_surface_result("1");
  4102. zra.setUp_surface_result_desc("合格");
  4103. zra.setUp_surface_result_id_desc(sid);
  4104. zra.setMarginal_result("1");
  4105. zra.setMarginal_result_desc("合格");
  4106. zra.setMarginal_result_id_desc(sid);
  4107. //合格
  4108. if(!result.equals("1")){
  4109. if(type.equals("U")){
  4110. zra.setUp_surface_result(result);
  4111. zra.setUp_surface_result_desc(result.equals("2")?"不合格":"待判");
  4112. zra.setSfu_is_lock("0");
  4113. zra.setSurfaceresult(result);
  4114. zra.setSurfaceresult_desc(result.equals("2")?"不合格":"待判");
  4115. }
  4116. else if(type.equals("D")){
  4117. zra.setUd_surface_result(result);
  4118. zra.setUd_surface_result_desc(result.equals("2")?"不合格":"待判");
  4119. zra.setSfd_is_lock("0");
  4120. zra.setSurfaceresult(result);
  4121. zra.setSurfaceresult_desc(result.equals("2")?"不合格":"待判");
  4122. }
  4123. else if(type.equals("E")){
  4124. zra.setMarginal_result(result);
  4125. zra.setMarginal_result_desc(result.equals("2")?"不合格":"待判");
  4126. zra.setSfe_is_lock("0");
  4127. zra.setSurfaceresult(result);
  4128. zra.setSurfaceresult_desc(result.equals("2")?"不合格":"待判");
  4129. }
  4130. else{
  4131. zra.setMarginal_result(result);
  4132. zra.setMarginal_result_desc(result.equals("2")?"不合格":"待判");
  4133. zra.setSfu_is_lock("0");
  4134. zra.setSurfaceresult(result);
  4135. zra.setSurfaceresult_desc(result.equals("2")?"不合格":"待判");
  4136. zra.setUp_surface_result(result);
  4137. zra.setUp_surface_result_desc(result.equals("2")?"不合格":"待判");
  4138. zra.setSfd_is_lock("0");
  4139. zra.setUd_surface_result(result);
  4140. zra.setUd_surface_result_desc(result.equals("2")?"不合格":"待判");
  4141. zra.setSfe_is_lock("0");
  4142. }
  4143. }
  4144. mapper.UpdateJugeResultJ(zra);
  4145. }
  4146. // //异常材料处置,进行物料封锁合格时,直接进行异常材料处置业务
  4147. // if ("2".equals(result)) {
  4148. // //生成质量封锁记录号
  4149. // int count=0;
  4150. // QCMJudgeLocking qjlk = new QCMJudgeLocking();
  4151. // SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  4152. // String date=sdf.format(new Date());
  4153. // String condition = " and MATERIAL_NO = '"+material_no+"' order by LOCK_SEQ desc ";
  4154. // List<QCMJudgeLocking> qjl = mapper.queryQCMJudgeLocking(condition);
  4155. // if(qjl.size() > 0){
  4156. // count=qjl.get(0).getLock_seq();
  4157. // }
  4158. // count++;
  4159. // //锁定记录号
  4160. // int lock_seq=count;
  4161. // //获取缺陷
  4162. // String flaw="";
  4163. // String strsql = "select * from QCM_JUDGE_SURFACE_FLAW where SURFACE_ID in (select SURFACE_ID from qcm_judge_surface where material_no = '"+material_no+"') ";
  4164. // List<QcmJudgeSurfaceFlaw> qjsft = mapper.queryQcmJudgeSurfaceFlaw(strsql);
  4165. // for(QcmJudgeSurfaceFlaw qjsf1 :qjsft){
  4166. // if(!flaw.contains(qjsf1.getFlaw_desc()))
  4167. // {
  4168. // flaw+=qjsf1.getFlaw_desc()+",";
  4169. // }
  4170. // }
  4171. // String lock_memo = "";
  4172. // if (",".equals(flaw.substring(flaw.length()-1, flaw.length()))) {
  4173. // lock_memo = "表面:"+flaw.substring(0,flaw.length()-1);
  4174. // }else {
  4175. // lock_memo = "表面:"+flaw.substring(0,flaw.length());
  4176. // }
  4177. // //插入封锁表
  4178. // qjlk.setLock_type_code("F");
  4179. // qjlk.setLock_type_desc("表面检验");
  4180. // qjlk.setMaterial_no(material_no);
  4181. // qjlk.setLock_seq(lock_seq);
  4182. // qjlk.setLock_id(sid);
  4183. // qjlk.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  4184. // qjlk.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  4185. // qjlk.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  4186. // qjlk.setPlan_no(hashmap.get(0).get("PLAN_NO") == null ?"":hashmap.get(0).get("PLAN_NO").toString());
  4187. // qjlk.setHt_no(hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString());
  4188. // qjlk.setDesign_key(hashmap.get(0).get("DESIGN_KEY")== null?"":hashmap.get(0).get("DESIGN_KEY").toString());
  4189. // qjlk.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  4190. // qjlk.setPline_code(hashmap.get(0).get("PLINE_CODE").toString());
  4191. // qjlk.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  4192. // qjlk.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  4193. // qjlk.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  4194. // qjlk.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  4195. // qjlk.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  4196. // qjlk.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  4197. // qjlk.setSteel_code(hashmap.get(0).get("STEEL_CODE") == null ?"":hashmap.get(0).get("STEEL_CODE").toString());
  4198. // qjlk.setSteel_name(hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString());
  4199. // qjlk.setFic_locking("1");
  4200. // qjlk.setLock_name(params2.get(6).toString());
  4201. // qjlk.setLock_memo(lock_memo+"-"+ params2.get(4).toString());
  4202. // mapper.insertQCMJudgeLocking(qjlk);
  4203. //
  4204. // }
  4205. QcmJudgeLog qjl = new QcmJudgeLog();
  4206. qjl.setJudge_type("R");
  4207. qjl.setMaterial_no(material_no);
  4208. qjl.setCreate_name("system");
  4209. qjl.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  4210. mapper.insertQcmJudgeLog(qjl);
  4211. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  4212. qjog.setOperate_name(params2.get(6).toString());
  4213. qjog.setOperate_type("表面检验判定");
  4214. qjog.setParams(material_no);
  4215. qjog.setBatchno(hashmap.get(0).get("BATCHNO") == null ?"":hashmap.get(0).get("BATCHNO").toString());
  4216. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE").toString());
  4217. qjog.setJudge_result(result);
  4218. mapper.insertQcmJudgeOperateLog(qjog);
  4219. //判断产线是不是卷板,是的话调用存储过程COILJUDGE_STATUS
  4220. if (hashmap.size() > 0) {
  4221. if("1".equals(result)) {
  4222. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "1", null, null, null,params2.get(4).toString());
  4223. } else if("2".equals(result)) {
  4224. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "2", null, null, null,params2.get(4).toString());
  4225. }else if("0".equals(result)) {
  4226. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, "", null, null, null,params2.get(4).toString());
  4227. }
  4228. }
  4229. SqlSession.commit();
  4230. } catch (Exception e) {
  4231. cro.setResult( "表面检验登记失败!"+ e.getMessage());
  4232. cro.setV_errMsg("表面检验登记失败!"+ e.getMessage());
  4233. cro.setV_errCode(-1);
  4234. SqlSession.rollback();
  4235. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.doAddFlawJ:【" + params1.toString() + "," + params2.toString() + "】" + e);
  4236. }
  4237. SqlSession.close();
  4238. /*final List<HashMap> hashmap1 = hashmap;
  4239. Thread t1 = new Thread(){
  4240. @Override
  4241. public void run(){
  4242. QcmJhyElementsServiceImpl qje = new QcmJhyElementsServiceImpl();
  4243. //调用熔炼成分判定 RlChemAutoJudgeByHuman
  4244. try {
  4245. qje.RlChemAutoJudgeByHuman1(hashmap1,hashmap1.get(0).get("HEAT_NO").toString(),params2.get(0).toString(),hashmap1.get(0).get("DESIGN_KEY").toString(),"system",hashmap1.get(0).get("GRADE_NAME")==null?"":hashmap1.get(0).get("GRADE_NAME").toString());
  4246. } catch (Exception e2) {
  4247. // TODO Auto-generated catch block
  4248. e2.printStackTrace();
  4249. }
  4250. }
  4251. };
  4252. t1.start();
  4253. Thread t3 = new Thread(){
  4254. @Override
  4255. public void run(){
  4256. QcmJudgePhysicalServiceImpl qjpc = new QcmJudgePhysicalServiceImpl();
  4257. //综合判定
  4258. try {
  4259. qjpc.ultimateJudgeAutoBySystem(hashmap1,params2.get(0).toString(), "system");
  4260. } catch (Exception e) {
  4261. // TODO Auto-generated catch block
  4262. e.printStackTrace();
  4263. }
  4264. }
  4265. };
  4266. t3.start();*/
  4267. return cro;
  4268. }
  4269. /**
  4270. * 获取检测机构
  4271. */
  4272. public CoreReturnObject findCretInstName(){
  4273. try{
  4274. String sql = "select '全部' cert_inst_code,'全部' cert_inst_name from dual union all select distinct a.cert_inst_code, a.cert_inst_name from qcm_jhy_sample_r_ord a ";
  4275. List<HashMap> list = mapper.query(sql);
  4276. cro.setResult(list);
  4277. }catch(Exception e){
  4278. cro.setV_errCode(-1);
  4279. cro.setV_errMsg("获取检验机构失败");
  4280. SqlSession.rollback();
  4281. }
  4282. SqlSession.close();
  4283. return cro;
  4284. }
  4285. /**
  4286. * 获取检验位置
  4287. */
  4288. // @SuppressWarnings("rawtypes")
  4289. // public CoreReturnObject findFlawArea(){
  4290. // try {
  4291. // String sql = "select * from tbz00_commcd where lg_cd = 'B02003'";
  4292. // List<HashMap> list = mapper.query(sql);
  4293. // cro.setResult(list);
  4294. // } catch (Exception e) {
  4295. // cro.setV_errCode(-1);
  4296. // cro.setV_errMsg("获取检验位置代码失败" + e.getMessage());
  4297. // logger.info(e.getMessage());
  4298. // SqlSession.rollback();
  4299. // }
  4300. // SqlSession.close();
  4301. // return cro;
  4302. //
  4303. // }
  4304. /**
  4305. * 获取检验位置
  4306. */
  4307. @SuppressWarnings("rawtypes")
  4308. public CoreReturnObject findFlawArea(){
  4309. try {
  4310. String sql = "select * from tbz00_commcd where lg_cd = 'B02003'";
  4311. List<HashMap> list = mapper.query(sql);
  4312. cro.setResult(list);
  4313. } catch (Exception e) {
  4314. cro.setV_errCode(-1);
  4315. cro.setV_errMsg("获取检验位置代码失败" + e.getMessage());
  4316. logger.info(e.getMessage());
  4317. SqlSession.rollback();
  4318. }
  4319. SqlSession.close();
  4320. return cro;
  4321. }
  4322. /**
  4323. * 获取卷板检验位置
  4324. */
  4325. @SuppressWarnings("rawtypes")
  4326. public CoreReturnObject findJFlawArea(){
  4327. try {
  4328. String sql = "select * from tbz00_commcd where lg_cd = 'B02013'";
  4329. List<HashMap> list = mapper.query(sql);
  4330. cro.setResult(list);
  4331. } catch (Exception e) {
  4332. cro.setV_errCode(-1);
  4333. cro.setV_errMsg("获取检验位置代码失败" + e.getMessage());
  4334. logger.info(e.getMessage());
  4335. SqlSession.rollback();
  4336. }
  4337. SqlSession.close();
  4338. return cro;
  4339. }
  4340. /**
  4341. * 获取质量等级
  4342. */
  4343. @SuppressWarnings("rawtypes")
  4344. public CoreReturnObject findZlLevel(){
  4345. try {
  4346. String sql = "select * from tbz00_commcd where lg_cd = 'B01016'";
  4347. List<HashMap> list = mapper.query(sql);
  4348. cro.setResult(list);
  4349. } catch (Exception e) {
  4350. cro.setV_errCode(-1);
  4351. cro.setV_errMsg("获取质量等级代码失败" + e.getMessage());
  4352. logger.info(e.getMessage());
  4353. SqlSession.rollback();
  4354. }
  4355. SqlSession.close();
  4356. return cro;
  4357. }
  4358. /**
  4359. * 获取哪一头
  4360. */
  4361. @SuppressWarnings("rawtypes")
  4362. public CoreReturnObject findFlawPosDesc(){
  4363. try {
  4364. String sql = "select * from tbz00_commcd where lg_cd = 'B02004'";
  4365. List<HashMap> list = mapper.query(sql);
  4366. cro.setResult(list);
  4367. } catch (Exception e) {
  4368. cro.setV_errCode(-1);
  4369. cro.setV_errMsg("获取哪一头代码失败" + e.getMessage());
  4370. logger.info(e.getMessage());
  4371. SqlSession.rollback();
  4372. }
  4373. SqlSession.close();
  4374. return cro;
  4375. }
  4376. /**
  4377. * 获取卷板哪一头
  4378. */
  4379. @SuppressWarnings("rawtypes")
  4380. public CoreReturnObject findJFlawPosDesc(){
  4381. try {
  4382. String sql = "select * from tbz00_commcd where lg_cd = 'B02014'";
  4383. List<HashMap> list = mapper.query(sql);
  4384. cro.setResult(list);
  4385. } catch (Exception e) {
  4386. cro.setV_errCode(-1);
  4387. cro.setV_errMsg("获取哪一头代码失败" + e.getMessage());
  4388. logger.info(e.getMessage());
  4389. SqlSession.rollback();
  4390. }
  4391. SqlSession.close();
  4392. return cro;
  4393. }
  4394. /**
  4395. * 获取缺陷大小
  4396. */
  4397. @SuppressWarnings("rawtypes")
  4398. public CoreReturnObject findFlawSizeDesc(){
  4399. try {
  4400. String sql = "select * from tbz00_commcd where lg_cd = 'B02005'";
  4401. List<HashMap> list = mapper.query(sql);
  4402. cro.setResult(list);
  4403. } catch (Exception e) {
  4404. cro.setV_errCode(-1);
  4405. cro.setV_errMsg("获取缺陷大小代码失败" + e.getMessage());
  4406. logger.info(e.getMessage());
  4407. SqlSession.rollback();
  4408. }
  4409. SqlSession.close();
  4410. return cro;
  4411. }
  4412. /**
  4413. * 获取卷板缺陷大小
  4414. */
  4415. @SuppressWarnings("rawtypes")
  4416. public CoreReturnObject findJFlawSizeDesc(){
  4417. try {
  4418. String sql = "select * from tbz00_commcd where lg_cd = 'B02015'";
  4419. List<HashMap> list = mapper.query(sql);
  4420. cro.setResult(list);
  4421. } catch (Exception e) {
  4422. cro.setV_errCode(-1);
  4423. cro.setV_errMsg("获取缺陷大小代码失败" + e.getMessage());
  4424. logger.info(e.getMessage());
  4425. SqlSession.rollback();
  4426. }
  4427. SqlSession.close();
  4428. return cro;
  4429. }
  4430. /**
  4431. * 获取缺陷严重程度
  4432. */
  4433. @SuppressWarnings("rawtypes")
  4434. public CoreReturnObject findFlawLvDesc(){
  4435. try {
  4436. String sql = "select * from tbz00_commcd where lg_cd = 'B02006'";
  4437. List<HashMap> list = mapper.query(sql);
  4438. cro.setResult(list);
  4439. } catch (Exception e) {
  4440. cro.setV_errCode(-1);
  4441. cro.setV_errMsg("获取缺陷严重程度代码失败" + e.getMessage());
  4442. logger.info(e.getMessage());
  4443. SqlSession.rollback();
  4444. }
  4445. SqlSession.close();
  4446. return cro;
  4447. }
  4448. /**
  4449. * 获取卷板缺陷严重程度
  4450. */
  4451. @SuppressWarnings("rawtypes")
  4452. public CoreReturnObject findJFlawLvDesc(){
  4453. try {
  4454. String sql = "select * from tbz00_commcd where lg_cd = 'B02016'";
  4455. List<HashMap> list = mapper.query(sql);
  4456. cro.setResult(list);
  4457. } catch (Exception e) {
  4458. cro.setV_errCode(-1);
  4459. cro.setV_errMsg("获取缺陷严重程度代码失败" + e.getMessage());
  4460. logger.info(e.getMessage());
  4461. SqlSession.rollback();
  4462. }
  4463. SqlSession.close();
  4464. return cro;
  4465. }
  4466. /**
  4467. * 获取哪一侧
  4468. */
  4469. @SuppressWarnings("rawtypes")
  4470. public CoreReturnObject findFlawDirDesc(){
  4471. try {
  4472. String sql = "select * from tbz00_commcd where lg_cd = 'B02007'";
  4473. List<HashMap> list = mapper.query(sql);
  4474. cro.setResult(list);
  4475. } catch (Exception e) {
  4476. cro.setV_errCode(-1);
  4477. cro.setV_errMsg("获取哪一侧代码失败" + e.getMessage());
  4478. logger.info(e.getMessage());
  4479. SqlSession.rollback();
  4480. }
  4481. SqlSession.close();
  4482. return cro;
  4483. }
  4484. /**
  4485. * 获取卷板哪一侧
  4486. */
  4487. @SuppressWarnings("rawtypes")
  4488. public CoreReturnObject findJFlawDirDesc(){
  4489. try {
  4490. String sql = "select * from tbz00_commcd where lg_cd = 'B02019'";
  4491. List<HashMap> list = mapper.query(sql);
  4492. cro.setResult(list);
  4493. } catch (Exception e) {
  4494. cro.setV_errCode(-1);
  4495. cro.setV_errMsg("获取哪一侧代码失败" + e.getMessage());
  4496. logger.info(e.getMessage());
  4497. SqlSession.rollback();
  4498. }
  4499. SqlSession.close();
  4500. return cro;
  4501. }
  4502. /**
  4503. * 质量判定-获取缺陷代码基础数据
  4504. * */
  4505. @SuppressWarnings("rawtypes")
  4506. public CoreReturnObject findFlawDataJ(String prodline){
  4507. try {
  4508. String sql ="";
  4509. if(prodline.equals("热连轧")){
  4510. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('RZ1') ORDER BY DEFECT_TYPE_DESC";
  4511. }else if(prodline.equals("酸轧")){
  4512. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('SZ1') ORDER BY DEFECT_TYPE_DESC";
  4513. }else if(prodline.equals("连退")){
  4514. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('LT1') ORDER BY DEFECT_TYPE_DESC";
  4515. }else{
  4516. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('LT1','SZ1','RZ1') ORDER BY DEFECT_TYPE_DESC";
  4517. }
  4518. List<HashMap> list = mapper.query(sql);
  4519. cro.setResult(list);
  4520. } catch (Exception e) {
  4521. cro.setV_errCode(-1);
  4522. cro.setV_errMsg("获取缺陷代码失败" + e.getMessage());
  4523. logger.info(e.getMessage());
  4524. SqlSession.rollback();
  4525. }
  4526. SqlSession.close();
  4527. return cro;
  4528. }
  4529. @SuppressWarnings("rawtypes")
  4530. public CoreReturnObject findFlawDataB(String prodline){
  4531. try {
  4532. String sql ="";
  4533. if(prodline.equals("厚板线")){
  4534. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('HB1') order by DEFECT_DESC asc";
  4535. }else if(prodline.equals("中板线")){
  4536. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('ZB1') order by DEFECT_DESC asc";
  4537. }else{
  4538. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('ZB1','HB1') order by DEFECT_DESC asc";
  4539. }
  4540. List<HashMap> list = mapper.query(sql);
  4541. cro.setResult(list);
  4542. } catch (Exception e) {
  4543. cro.setV_errCode(-1);
  4544. cro.setV_errMsg("获取缺陷代失败码" + e.getMessage());
  4545. logger.info(e.getMessage());
  4546. SqlSession.rollback();
  4547. }
  4548. SqlSession.close();
  4549. return cro;
  4550. }
  4551. @SuppressWarnings("rawtypes")
  4552. public CoreReturnObject findFlawDataB1(String prodline,String defect_desc){
  4553. try {
  4554. String sql ="";
  4555. if(prodline.equals("厚板线")){
  4556. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('HB1') and DEFECT_DESC like '"+defect_desc+"%' order by DEFECT_DESC asc";
  4557. }else if(prodline.equals("中板线")){
  4558. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('ZB1') and DEFECT_DESC like '"+defect_desc+"%' order by DEFECT_DESC asc";
  4559. }else{
  4560. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('ZB1','HB1') and DEFECT_DESC like '"+defect_desc+"%' order by DEFECT_DESC asc";
  4561. }
  4562. List<HashMap> list = mapper.query(sql);
  4563. cro.setResult(list);
  4564. } catch (Exception e) {
  4565. cro.setV_errCode(-1);
  4566. cro.setV_errMsg("获取缺陷代失败码" + e.getMessage());
  4567. logger.info(e.getMessage());
  4568. SqlSession.rollback();
  4569. }
  4570. SqlSession.close();
  4571. return cro;
  4572. }
  4573. @SuppressWarnings("rawtypes")
  4574. public CoreReturnObject findFlawDataX(String prodline){
  4575. try {
  4576. String sql ="";
  4577. if(prodline.equals("高棒")){
  4578. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('BC1') order by DEFECT_DESC asc";
  4579. }else if(prodline.equals("棒二")){
  4580. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('BC2') order by DEFECT_DESC asc";
  4581. }else if(prodline.equals("高线")){
  4582. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('GX1') order by DEFECT_DESC asc";
  4583. }else{
  4584. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('GX1','GX2','BC2') order by DEFECT_DESC asc";
  4585. }
  4586. List<HashMap> list = mapper.query(sql);
  4587. cro.setResult(list);
  4588. } catch (Exception e) {
  4589. cro.setV_errCode(-1);
  4590. cro.setV_errMsg("获取缺陷代码失败" + e.getMessage());
  4591. logger.info(e.getMessage());
  4592. SqlSession.rollback();
  4593. }
  4594. SqlSession.close();
  4595. return cro;
  4596. }
  4597. @SuppressWarnings("rawtypes")
  4598. public CoreReturnObject findFlawDataY(String prodline){
  4599. try {
  4600. String sql ="";
  4601. if(prodline.equals("优特")){
  4602. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('YT1') order by DEFECT_DESC asc";
  4603. }else{
  4604. sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC,PLINE_NAME from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('YT1') order by DEFECT_DESC asc";
  4605. }
  4606. List<HashMap> list = mapper.query(sql);
  4607. cro.setResult(list);
  4608. } catch (Exception e) {
  4609. cro.setV_errCode(-1);
  4610. cro.setV_errMsg("获取缺陷代码失败" + e.getMessage());
  4611. logger.info(e.getMessage());
  4612. SqlSession.rollback();
  4613. }
  4614. SqlSession.close();
  4615. return cro;
  4616. }
  4617. @SuppressWarnings("rawtypes")
  4618. public CoreReturnObject findSfLv(){
  4619. try {
  4620. String sql = "select * from tbz00_commcd where lg_cd = 'B02008'";
  4621. List<HashMap> list = mapper.query(sql);
  4622. cro.setResult(list);
  4623. } catch (Exception e) {
  4624. cro.setV_errCode(-1);
  4625. cro.setV_errMsg("获取质量等级失败" + e.getMessage());
  4626. logger.info(e.getMessage());
  4627. SqlSession.rollback();
  4628. }
  4629. SqlSession.close();
  4630. return cro;
  4631. }
  4632. //板加开平表面等级
  4633. @SuppressWarnings("rawtypes")
  4634. public CoreReturnObject findSfLvBj(){
  4635. try {
  4636. String sql = "select * from tbz00_commcd where lg_cd = 'B02008' and sm_cd in ('512602','512603','521605')";
  4637. List<HashMap> list = mapper.query(sql);
  4638. cro.setResult(list);
  4639. } catch (Exception e) {
  4640. cro.setV_errCode(-1);
  4641. cro.setV_errMsg("获取质量等级失败" + e.getMessage());
  4642. logger.info(e.getMessage());
  4643. SqlSession.rollback();
  4644. }
  4645. SqlSession.close();
  4646. return cro;
  4647. }
  4648. @SuppressWarnings("rawtypes")
  4649. public CoreReturnObject findSfLvY(){
  4650. try {
  4651. String sql = "select * from tbz00_commcd where lg_cd = 'B02020'";
  4652. List<HashMap> list = mapper.query(sql);
  4653. cro.setResult(list);
  4654. } catch (Exception e) {
  4655. cro.setV_errCode(-1);
  4656. cro.setV_errMsg("获取质量等级失败" + e.getMessage());
  4657. logger.info(e.getMessage());
  4658. SqlSession.rollback();
  4659. }
  4660. SqlSession.close();
  4661. return cro;
  4662. }
  4663. @SuppressWarnings("rawtypes")
  4664. public CoreReturnObject findSfLv1(String judge_result){
  4665. try {
  4666. String swhere = "";
  4667. if(judge_result.equals("0")){
  4668. swhere += " and sm_cd in ('512601')";
  4669. }else if(judge_result.equals("1")){
  4670. swhere += " and sm_cd in ('512602','512603','521604','521605')";
  4671. }else if(judge_result.equals("2")){
  4672. swhere += " and sm_cd in ('521606')";
  4673. }
  4674. String sql = "select * from tbz00_commcd where lg_cd = 'B02008' "+swhere+"";
  4675. List<HashMap> list = mapper.query(sql);
  4676. cro.setResult(list);
  4677. } catch (Exception e) {
  4678. cro.setV_errCode(-1);
  4679. cro.setV_errMsg("获取质量等级失败" + e.getMessage());
  4680. logger.info(e.getMessage());
  4681. SqlSession.rollback();
  4682. }
  4683. SqlSession.close();
  4684. return cro;
  4685. }
  4686. @SuppressWarnings("rawtypes")
  4687. public CoreReturnObject findFlawDataLg(String prodline){
  4688. try {
  4689. String sql = "select DEFECT_DESC,DEFECT_CODE,DEFECT_TYPE_DESC from QCM_BASE_DEFECT where validflag = '1' AND PLINE_CODE IN ('"+prodline+"')";
  4690. List<HashMap> list = mapper.query(sql);
  4691. cro.setResult(list);
  4692. } catch (Exception e) {
  4693. cro.setV_errCode(-1);
  4694. cro.setV_errMsg("获取缺陷代码失败" + e.getMessage());
  4695. logger.info(e.getMessage());
  4696. SqlSession.rollback();
  4697. }
  4698. SqlSession.close();
  4699. return cro;
  4700. }
  4701. /**
  4702. * 根据缺陷项目获取缺陷分类
  4703. */
  4704. @SuppressWarnings("rawtypes")
  4705. public List<HashMap> finddefecttype(String defect_code) throws Exception{
  4706. try {
  4707. String sql = "select * from QCM_BASE_DEFECT where validflag = '1' and defect_code = '"+defect_code+"'";
  4708. List<HashMap> list = mapper.query(sql);
  4709. return list;
  4710. } catch (Exception e) {
  4711. logger.info(e.getMessage());
  4712. throw new Exception("获取缺陷分类失败" + e.getMessage());
  4713. }
  4714. }
  4715. /**
  4716. * 修磨备注
  4717. */
  4718. @SuppressWarnings("rawtypes")
  4719. public CoreReturnObject findXmMemo(){
  4720. try {
  4721. String sql = "SELECT SM_CFNM,SM_CD FROM TBZ00_COMMCD WHERE LG_CD='G03009' ORDER BY CD_SEQ ";
  4722. List<HashMap> list = mapper.query(sql);
  4723. cro.setResult(list);
  4724. } catch (Exception e) {
  4725. logger.info(e.getMessage());
  4726. cro.setV_errCode(-1);
  4727. cro.setV_errMsg("获取修磨备注失败" + e.getMessage());
  4728. SqlSession.rollback();
  4729. }
  4730. SqlSession.close();
  4731. return cro;
  4732. }
  4733. /**
  4734. * 抽查备注
  4735. */
  4736. @SuppressWarnings("rawtypes")
  4737. public CoreReturnObject findCcMemo(){
  4738. try {
  4739. String sql = "SELECT SM_CFNM,SM_CD FROM TBZ00_COMMCD WHERE LG_CD='G03008' ORDER BY CD_SEQ ";
  4740. List<HashMap> list = mapper.query(sql);
  4741. cro.setResult(list);
  4742. } catch (Exception e) {
  4743. logger.info(e.getMessage());
  4744. cro.setV_errCode(-1);
  4745. cro.setV_errMsg("获取抽查备注失败" + e.getMessage());
  4746. SqlSession.rollback();
  4747. }
  4748. SqlSession.close();
  4749. return cro;
  4750. }
  4751. /**
  4752. * 修复缺陷
  4753. * @param
  4754. * @return
  4755. */
  4756. public CoreReturnObject repairFlaw(String surface_id,String FlawSeq,String flag,String username,String userorder,String usergroup){
  4757. try {
  4758. String sql = "select * from QCM_JUDGE_SURFACE where surface_id = '"+surface_id+"'";
  4759. List<QcmJudgeSurface> qjs = mapper.queryQcmJudgeSurfaces(sql);
  4760. if(qjs.size() == 0){
  4761. throw new Exception("该产品序号未做表面检验判定,无法修复!");
  4762. }
  4763. if(qjs.get(0).getSfd_is_lock().equals("1") || qjs.get(0).getSfe_is_lock().equals("1") || qjs.get(0).getSfu_is_lock().equals("1")){
  4764. throw new Exception("该产品序号已表面锁定,无法修复!");
  4765. }
  4766. mapper.UpdateSurfaceFlaw(qjs.get(0).getSurface_id(), FlawSeq, flag);
  4767. SqlSession.commit();
  4768. } catch (Exception e) {
  4769. cro.setV_errMsg(e.getMessage());
  4770. cro.setV_errCode(-1);
  4771. SqlSession.rollback();
  4772. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.repairFlaw:【" + surface_id + "," + FlawSeq + "," + flag + "," + username + "," + userorder + "," + usergroup + "】" + e);
  4773. }
  4774. SqlSession.close();
  4775. return cro;
  4776. }
  4777. /**
  4778. * 修复缺陷
  4779. * @param
  4780. * @return
  4781. */
  4782. public CoreReturnObject LgrepairFlaw(String surface_id,String FlawSeq,String flag,String username,String userorder,String usergroup,String fixed_type_desc,String fixed_thick){
  4783. try {
  4784. QcmJhyElementsServiceImpl qjes = new QcmJhyElementsServiceImpl();
  4785. String sql = "select * from QCM_JUDGE_SURFACE where surface_id = '"+surface_id+"'";
  4786. List<QcmJudgeSurface> qjs = mapper.queryQcmJudgeSurfaces(sql);
  4787. if(qjs.size() == 0){
  4788. throw new Exception("该产品序号未做表面检验判定,无法修复!");
  4789. }
  4790. if(qjs.get(0).getSfd_is_lock().equals("1") || qjs.get(0).getSfe_is_lock().equals("1") || qjs.get(0).getSfu_is_lock().equals("1")){
  4791. throw new Exception("该产品序号已表面锁定,无法修复!");
  4792. }
  4793. mapper.UpdateSurfaceFlaws(qjs.get(0).getSurface_id(), FlawSeq, flag,fixed_type_desc,fixed_thick);
  4794. if(flag.equals("1")){
  4795. sql = "select * from QCM_JUDGE_SURFACE_FLAW where surface_id = '"+surface_id+"' AND FLAW_SEQ = '"+FlawSeq+"'";
  4796. List<QcmJudgeSurfaceFlaw> qjsf = mapper.queryQcmJudgeSurfaceFlaw(sql);
  4797. if(qjsf.get(0).getFlaw_area().equals("E")){
  4798. return cro;
  4799. }
  4800. JSONObject jsobj2 = new JSONObject();
  4801. JSONArray ttmaps = new JSONArray();
  4802. JSONObject jsobj1 = new JSONObject();
  4803. jsobj1.put("PROD_LINE",qjs.get(0).getPline_code());
  4804. jsobj1.put("XMRESULT_S",qjsf.get(0).getFlaw_area().equals("U")?fixed_type_desc:"");
  4805. jsobj1.put("XMRESULT_X",qjsf.get(0).getFlaw_area().equals("D")?fixed_type_desc:"");
  4806. jsobj1.put("SLAB_NO",qjs.get(0).getMaterial_no());
  4807. jsobj1.put("OPTMAN",username);
  4808. jsobj1.put("QBTHICK",fixed_thick.equals("")?0:Integer.parseInt(fixed_thick));
  4809. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  4810. String result = qjes.callWebserviceASMX(url,"BmXMJudge ",JSON.toJSONString(jsobj1));
  4811. JSONObject jo = JSONObject.parseObject(result);
  4812. if(jo.get("code").toString().equals("1")){
  4813. throw new Exception("修磨结果发送失败!");
  4814. }
  4815. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  4816. qjog.setOperate_name(username);
  4817. qjog.setOperate_type("修磨");
  4818. qjog.setParams(qjs.get(0).getMaterial_no());
  4819. qjog.setProd_line(qjs.get(0).getPline_code());
  4820. mapper.insertQcmJudgeOperateLog(qjog);
  4821. }
  4822. SqlSession.commit();
  4823. } catch (Exception e) {
  4824. cro.setV_errMsg(e.getMessage());
  4825. cro.setV_errCode(-1);
  4826. SqlSession.rollback();
  4827. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.LgrepairFlaw:【" + surface_id + "," + FlawSeq + "," + flag + "," + username + "," + userorder + "," + usergroup + "," + fixed_type_desc + "," + fixed_thick + "】" + e);
  4828. }
  4829. SqlSession.close();
  4830. return cro;
  4831. }
  4832. public CoreReturnObject BMQX(String surface_id,String flag,String username,String userorder,String usergroup,String fixed_type_desc,String fixed_thick,String bmqx,final ArrayList param1){
  4833. try {
  4834. QcmJhyElementsServiceImpl qjes = new QcmJhyElementsServiceImpl();
  4835. String sql = "select * from QCM_JUDGE_SURFACE where surface_id = '"+surface_id+"'";
  4836. String xmresult = "修磨失败";
  4837. Date date = new Date();
  4838. SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss");
  4839. List<QcmJudgeSurface> qjs = mapper.queryQcmJudgeSurfaces(sql);
  4840. /*if(qjs.size() == 0){
  4841. throw new Exception("该产品序号未做表面检验判定,无法修复!");
  4842. }
  4843. if(qjs.get(0).getSfd_is_lock().equals("1") || qjs.get(0).getSfe_is_lock().equals("1") || qjs.get(0).getSfu_is_lock().equals("1")){
  4844. throw new Exception("该产品序号已表面锁定,无法修复!");
  4845. }*/
  4846. //mapper.UpdateSurfaceFlaws(qjs.get(0).getSurface_id(), FlawSeq, flag,fixed_type_desc,fixed_thick);
  4847. if(flag.equals("1")){
  4848. /*sql = "select * from QCM_JUDGE_SURFACE_FLAW where surface_id = '"+surface_id+"' AND FLAW_SEQ = '"+FlawSeq+"'";
  4849. List<QcmJudgeSurfaceFlaw> qjsf = mapper.queryQcmJudgeSurfaceFlaw(sql);
  4850. if(qjsf.get(0).getFlaw_area().equals("E")){
  4851. return cro;
  4852. }*/
  4853. JSONObject jsobj2 = new JSONObject();
  4854. JSONArray ttmaps = new JSONArray();
  4855. JSONObject jsobj1 = new JSONObject();
  4856. jsobj1.put("PROD_LINE",qjs.get(0).getPline_code());
  4857. jsobj1.put("XMRESULT_S",qjs.get(0).getSf_type().equals("U")?fixed_type_desc:"");
  4858. jsobj1.put("XMRESULT_X","");
  4859. jsobj1.put("SLAB_NO",qjs.get(0).getMaterial_no());
  4860. jsobj1.put("OPTMAN",username);
  4861. jsobj1.put("BMQX",bmqx);
  4862. jsobj1.put("QBTHICK",fixed_thick.equals("")?0:Integer.parseInt(fixed_thick));
  4863. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  4864. String result = qjes.callWebserviceASMX(url,"BmXMJudge ",JSON.toJSONString(jsobj1));
  4865. JSONObject jo = JSONObject.parseObject(result);
  4866. if(jo.get("code").toString().equals("1")){
  4867. throw new Exception("修磨结果发送失败!");
  4868. }else{
  4869. xmresult = "修磨成功";
  4870. }
  4871. }
  4872. String sql1= "insert into FIXRECORD(SURFACE_ID,FLAW,RESULT,BILLETNO,DESIGN_KEY,PROD_NAME,JUDGE_NAME,STEELCODE,"
  4873. + "JUDGETIME,THICK,WIDTH,LENGTH,STATUS,PROD_THK,PROD_WTH,HEATNO,PLANSTEEL,WEIGHT) "
  4874. + " VALUES("+"'"+param1.get(0).toString()+"'"+","+"'"+param1.get(15).toString()+"'"+","
  4875. +"'"+xmresult+"'"+","+"'"+param1.get(1).toString()+"'"+","+"'"+param1.get(12).toString()+"'"+""
  4876. + ","+"'"+param1.get(8).toString()+"'"+","+"'"+username+"'"+","+"'"+param1.get(11).toString()+"'"+
  4877. ","+"sysdate"+","+"'"+param1.get(4).toString()+"'"+","+"'"+param1.get(5).toString()+"'"+
  4878. ","+"'"+param1.get(6).toString()+"'"+","+"'"+param1.get(2).toString()+"'"+","+"'"+param1.get(9).toString()+"'"+
  4879. ","+"'"+param1.get(10).toString()+"'"+","+"'"+param1.get(13).toString()+"'"+","+"'"+param1.get(14).toString()+"'"+
  4880. ","+"'"+param1.get(3).toString()+"'"+")";
  4881. mapper.Inxiumojilv(sql1.toString());
  4882. SqlSession.commit();
  4883. } catch (Exception e) {
  4884. cro.setV_errMsg(e.getMessage());
  4885. cro.setV_errCode(-1);
  4886. SqlSession.rollback();
  4887. logger.info(new Date().toString() + " QCM.QCM03.QCM0305.QcmJudgeSurfaceServiceImpl.LgrepairFlaw:【" + surface_id + "," + /*FlawSeq + */"," + flag + "," + username + "," + userorder + "," + usergroup + "," + fixed_type_desc + "," + fixed_thick + "】" + e);
  4888. }
  4889. SqlSession.close();
  4890. return cro;
  4891. }
  4892. /**
  4893. * 查询检验信息
  4894. */
  4895. @SuppressWarnings({ "unchecked", "rawtypes" })
  4896. public CoreReturnObject GetSurfaceInfoJ(String begintime,String endtime,String sbatchno,String ebatchno,String design_key,String psc_desc,String prodline,String steelname) throws Exception{
  4897. try{
  4898. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime) && SqlJoint.IsNullOrSpace(sbatchno)) {
  4899. String sky=StrSky(begintime,endtime);
  4900. if(sky.equals("FALSE")){
  4901. SqlSession.close();
  4902. cro.setV_errCode(-1);
  4903. cro.setV_errMsg("查询时间不能大于30天,请核实查询时间条件!");
  4904. return cro;
  4905. }
  4906. }
  4907. //String sqls = "select surfaceid from QCM_JUDGE_COIL_RESULT";
  4908. /*String sql = "select a.surface_id, a.sf_result_desc, a.batch_no, a.material_no, a.design_key, a.psc_desc, a.level_desc,b.flaw_desc,a.judge_name,a.sf_memo,a.judge_time,"
  4909. + " a.steel_name,a.prod_name,a.std_name "
  4910. + " from qcm_judge_surface a left join qcm_judge_surface_flaw b on a.surface_id = b.surface_id and b.primary_flag = '1'";*/
  4911. String swhere = " where 1=1 ";
  4912. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime)) { //生产时间
  4913. swhere += " and to_date(to_char(JUDGE_TIME,'yyyy-mm-dd'),'yyyy-mm-dd') between to_date('"+begintime+"','yyyy-mm-dd') and to_date('"+endtime+"','yyyy-mm-dd')";
  4914. }
  4915. if (!SqlJoint.IsNullOrSpace(sbatchno)) { //起始轧批号
  4916. swhere += " and material_no like '"+sbatchno+"%'";
  4917. }
  4918. /*if (!SqlJoint.IsNullOrSpace(ebatchno)) { //最后轧批号
  4919. swhere += " and BATCH_NO <= '"+ebatchno+"'";
  4920. }*/
  4921. if (!SqlJoint.IsNullOrSpace(design_key)) { //销售订单号
  4922. swhere += " and design_key like '%"+design_key+"%'";
  4923. }
  4924. if (!SqlJoint.IsNullOrSpace(psc_desc)) { //Psc
  4925. swhere += " and ROLL_MANA_NO like '%"+psc_desc+"%'";
  4926. }
  4927. if(!SqlJoint.IsNullOrSpace(steelname)){
  4928. swhere += " and steel_name = '" + steelname + "'";
  4929. }
  4930. if(prodline.equals("热连轧")){
  4931. swhere += " and pline_code = 'RZ1'";
  4932. }else if(prodline.equals("酸轧")){
  4933. swhere += " and pline_code = 'SZ1'";
  4934. }else if(prodline.equals("连退")){
  4935. swhere += " and pline_code = 'LT1'";
  4936. }
  4937. swhere += " and pline_code in ('RZ1','SZ1','LT1')";
  4938. //swhere += "and a.surface_id in ("+sqls+")";
  4939. //swhere += " order by judge_time desc";
  4940. String sql = "select a.surface_id, "
  4941. + " a.sf_result_desc,"
  4942. + " a.batch_no,"
  4943. + " a.material_no,"
  4944. + " a.design_key,"
  4945. + " a.psc_desc,"
  4946. + " a.level_desc,"
  4947. + " b.flaw_desc,"
  4948. + " a.judge_name,"
  4949. + " a.sf_memo,"
  4950. + " a.judge_time,"
  4951. + " a.steel_name,"
  4952. + " a.prod_name,"
  4953. + " a.std_name,"
  4954. + " c.INSTR_COIL_THK thick,"
  4955. + " c.INSTR_COIL_WTH width,"
  4956. + " c.INSTR_COIL_LEN length,"
  4957. + " c.PRODNM_CD DELIVERY_STATE_DESC,"
  4958. + " c.ACT_WGT/1000 weight,"
  4959. + " d.ROLL_MANA_NO plan_no"
  4960. + " from qcm_judge_surface a"
  4961. + " left join qcm_judge_surface_flaw b"
  4962. + " on a.surface_id = b.surface_id"
  4963. + " and b.primary_flag = '1'"
  4964. + " join tbh02_coil_comm c"
  4965. + " on a.material_no = c.OLD_SAMPL_NO"
  4966. + " left join tbf02_spec_mill d"
  4967. + " on c.COIL_NO = d.COIL_NO "+swhere+""
  4968. /*+ " union all"
  4969. + " select a.surface_id,"
  4970. + " a.sf_result_desc,"
  4971. + " a.batch_no,"
  4972. + " a.material_no,"
  4973. + " a.design_key,"
  4974. + " a.psc_desc,"
  4975. + " a.level_desc,"
  4976. + " b.flaw_desc,"
  4977. + " a.judge_name,"
  4978. + " a.sf_memo,"
  4979. + " a.judge_time,"
  4980. + " a.steel_name,"
  4981. + " a.prod_name,"
  4982. + " a.std_name,"
  4983. + " c.INSTR_COIL_THK thick,"
  4984. + " c.INSTR_COIL_WTH width,"
  4985. + " c.INSTR_COIL_LEN length,"
  4986. + " c.PRODNM_CD DELIVERY_STATE_DESC,"
  4987. + " c.ACT_WGT/1000 weight,"
  4988. + " d.CAL_NO plan_no"
  4989. + " from qcm_judge_surface a"
  4990. + " left join qcm_judge_surface_flaw b"
  4991. + " on a.surface_id = b.surface_id"
  4992. + " and b.primary_flag = '1'"
  4993. + " join c_tbc02_coil_comm c"
  4994. + " on a.material_no = c.OLD_SAMPL_NO"
  4995. + " left join l_tbf03_spec_mill d"
  4996. + " on c.COIL_NO = d.COIL_NO "+swhere+""
  4997. + " union all"
  4998. + " select a.surface_id,"
  4999. + " a.sf_result_desc,"
  5000. + " a.batch_no,"
  5001. + " a.material_no,"
  5002. + " a.design_key,"
  5003. + " a.psc_desc,"
  5004. + " a.level_desc,"
  5005. + " b.flaw_desc,"
  5006. + " a.judge_name,"
  5007. + " a.sf_memo,"
  5008. + " a.judge_time,"
  5009. + " a.steel_name,"
  5010. + " a.prod_name,"
  5011. + " a.std_name,"
  5012. + " c.INSTR_COIL_THK thick,"
  5013. + " c.INSTR_COIL_WTH width,"
  5014. + " c.INSTR_COIL_LEN length,"
  5015. + " c.PRODNM_CD DELIVERY_STATE_DESC,"
  5016. + " c.ACT_WGT/1000 weight,"
  5017. + " d.ROLL_MANA_NO plan_no"
  5018. + " from qcm_judge_surface a"
  5019. + " left join qcm_judge_surface_flaw b"
  5020. + " on a.surface_id = b.surface_id"
  5021. + " and b.primary_flag = '1'"
  5022. + " join c_tbl02_coil_comm c"
  5023. + " on a.material_no = c.OLD_SAMPL_NO"
  5024. + " left join c_tbf03_spec_mill d"
  5025. + " on c.COIL_NO = d.COIL_NO"+swhere+""*/;
  5026. List<HashMap> list = mapper.query(sql);
  5027. cro.setResult(list);
  5028. }catch(Exception e){
  5029. cro.setV_errCode(-1);
  5030. cro.setV_errMsg("查询判定信息出错" + e.getMessage());
  5031. logger.info(e.getMessage());
  5032. SqlSession.rollback();
  5033. }
  5034. SqlSession.close();
  5035. return cro;
  5036. }
  5037. /**
  5038. * 查询修磨记录
  5039. * @param begintime
  5040. * @param endtime
  5041. * @param sbatchno
  5042. * @param ebatchno
  5043. * @param design_key
  5044. * @param psc_desc
  5045. * @param prodline
  5046. * @param steelname
  5047. * @return
  5048. * @throws Exception
  5049. */
  5050. @SuppressWarnings({ "unchecked", "rawtypes" })
  5051. public CoreReturnObject GetXiuMoJiLv(String begintime,String endtime,String slab_no,String prod_line) throws Exception{
  5052. try{
  5053. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime)) {
  5054. String sky=StrSky(begintime,endtime);
  5055. if(sky.equals("FALSE")){
  5056. SqlSession.close();
  5057. cro.setV_errCode(-1);
  5058. cro.setV_errMsg("查询时间不能大于30天,请核实查询时间条件!");
  5059. return cro;
  5060. }
  5061. }
  5062. //String sqls = "select surfaceid from QCM_JUDGE_COIL_RESULT";
  5063. String sql = "select SURFACE_ID,FLAW,RESULT,BILLETNO,DESIGN_KEY,PROD_NAME,JUDGE_NAME,STEELCODE,\r\n" +
  5064. " JUDGETIME, THICK,WIDTH,LENGTH,STATUS,PROD_THK,PROD_WTH,HEATNO,PLANSTEEL,WEIGHT\r\n" +
  5065. " from FIXRECORD ";
  5066. String swhere = " where 1=1 ";
  5067. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime)) { //修磨开始时间
  5068. swhere += " and to_date(to_char(JUDGETIME,'yyyy-mm-dd'),'yyyy-mm-dd') between to_date('"+begintime+"','yyyy-mm-dd') and to_date('"+endtime+"','yyyy-mm-dd')";
  5069. }
  5070. if (!SqlJoint.IsNullOrSpace(slab_no)) { //板坯号/产品序号
  5071. swhere += " and BILLETNO like '%"+slab_no+"%'";
  5072. }
  5073. if (!SqlJoint.IsNullOrSpace(prod_line)) { //产线
  5074. swhere += " and PROD_NAME like '%"+prod_line+"%'";
  5075. }
  5076. swhere += " order by JUDGETIME desc";
  5077. List<HashMap> list = mapper.query(sql+swhere);
  5078. cro.setResult(list);
  5079. }catch(Exception e){
  5080. cro.setV_errCode(-1);
  5081. cro.setV_errMsg("查询修磨记录出错" + e.getMessage());
  5082. logger.info(e.getMessage());
  5083. SqlSession.rollback();
  5084. }
  5085. SqlSession.close();
  5086. return cro;
  5087. }
  5088. @SuppressWarnings({ "unchecked", "rawtypes" })
  5089. public CoreReturnObject GetSurfaceInfoB(String begintime,String endtime,String sbatchno,String ebatchno,String design_key,String psc_desc,String prodline) throws Exception{
  5090. try{
  5091. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime) && SqlJoint.IsNullOrSpace(sbatchno)) {
  5092. String sky=StrSky(begintime,endtime);
  5093. if(sky.equals("FALSE")){
  5094. SqlSession.close();
  5095. cro.setV_errCode(-1);
  5096. cro.setV_errMsg("查询时间不能大于30天,请核实查询时间条件!");
  5097. return cro;
  5098. }
  5099. }
  5100. //String sqls = "select surfaceid from zj_result_all@xgcx WHERE 1=1 and (BILLETID LIKE 'Z%' OR BILLETID LIKE 'Z%')";
  5101. /*String sql = "select a.surface_id,a.heat_no, a.sf_result_desc, a.batch_no, a.material_no, a.design_key, a.psc_desc, a.level_desc, (select to_char(wmsys.wm_concat(distinct flaw_desc)) from qcm_judge_surface_flaw b where a.surface_id = b.surface_id) flaw_desc,a.judge_name,a.sf_memo,a.judge_time,"
  5102. + " a.steel_name,a.prod_name,a.std_name,decode(a.sf_type, 'U', '上表面', 'D', '下表面', '') sf_type,(select max(b.FIXED_NAME) from qcm_judge_surface_flaw b where a.surface_id = b.surface_id) FIXED_NAME "
  5103. + " from qcm_judge_surface a ";*/
  5104. String swhere = " where 1=1 ";
  5105. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime)) { //生产时间
  5106. swhere += " and to_date(to_char(JUDGE_TIME,'yyyy-mm-dd'),'yyyy-mm-dd') between to_date('"+begintime+"','yyyy-mm-dd') and to_date('"+endtime+"','yyyy-mm-dd')";
  5107. }
  5108. if (!SqlJoint.IsNullOrSpace(sbatchno)) { //起始轧批号
  5109. swhere += " and material_no like '"+sbatchno+"%'";
  5110. }
  5111. /*if (!SqlJoint.IsNullOrSpace(ebatchno)) { //最后轧批号
  5112. swhere += " and BATCH_NO <= '"+ebatchno+"'";
  5113. }*/
  5114. if (!SqlJoint.IsNullOrSpace(design_key)) { //销售订单号
  5115. swhere += " and design_key like '%"+design_key+"%'";
  5116. }
  5117. if (!SqlJoint.IsNullOrSpace(psc_desc)) { //Psc
  5118. swhere += " and psc_desc like '%"+psc_desc+"%'";
  5119. }
  5120. if(prodline.equals("中板线")){
  5121. swhere += " and pline_code in ('ZB1') ";
  5122. }else if(prodline.equals("厚板线")){
  5123. swhere += " and pline_code in ('HB1') ";
  5124. }
  5125. swhere += " and pline_code in ('ZB1','HB1')";
  5126. String sql = "select a.surface_id,"
  5127. +" a.heat_no,"
  5128. +" a.sf_result_desc,"
  5129. +" a.batch_no,"
  5130. +" a.material_no,"
  5131. +" a.design_key,"
  5132. +" a.psc_desc,"
  5133. +" a.level_desc,"
  5134. +" (select to_char(wmsys.wm_concat(distinct flaw_desc))"
  5135. +" from qcm_judge_surface_flaw b"
  5136. +" where a.surface_id = b.surface_id) flaw_desc,"
  5137. +" a.judge_name,"
  5138. +" a.sf_memo,"
  5139. +" a.judge_time,"
  5140. +" a.steel_name,"
  5141. +" a.prod_name,"
  5142. +" a.std_name,"
  5143. +" decode(a.sf_type, 'U', '上表面', 'D', '下表面', '') sf_type,"
  5144. +" (select max(b.FIXED_NAME)"
  5145. +" from qcm_judge_surface_flaw b"
  5146. +" where a.surface_id = b.surface_id) FIXED_NAME,"
  5147. +" b.ply THICK,"
  5148. +" b.WIDTH WIDTH,"
  5149. +" b.LENGTH LENGTH,"
  5150. +" b.theoryweight weight,"
  5151. +" psel_get_standroll@XGCX(c.STANDROLLER) DELIVERY_STATE_DESC,"
  5152. +" b.planorderform PLANORDERNO,"
  5153. +" b.allotorderform orderno,"
  5154. +" C2N@xgcx(b.INSTORAGECLASS) INSTORAGECLASS,"
  5155. +" C2N@xgcx(b.PRODUCECLASS) PRODUCECLASS"
  5156. +" from qcm_judge_surface a"
  5157. +" left join kch_turnofflist@xgcx b"
  5158. +" on a.material_no = b.billetid"
  5159. +" left join sel_pactdetail@xgcx c"
  5160. +" on b.planorderform = c.orderno "+swhere+" AND A.MATERIAL_NO LIKE 'H%'"
  5161. +" union all"
  5162. +" select a.surface_id,"
  5163. +" a.heat_no,"
  5164. +" a.sf_result_desc,"
  5165. +" a.batch_no,"
  5166. +" a.material_no,"
  5167. +" a.design_key,"
  5168. +" a.psc_desc,"
  5169. +" a.level_desc,"
  5170. +" (select to_char(wmsys.wm_concat(distinct flaw_desc))"
  5171. +" from qcm_judge_surface_flaw b"
  5172. +" where a.surface_id = b.surface_id) flaw_desc,"
  5173. +" a.judge_name,"
  5174. +" a.sf_memo,"
  5175. +" a.judge_time,"
  5176. +" a.steel_name,"
  5177. +" a.prod_name,"
  5178. +" a.std_name,"
  5179. +" decode(a.sf_type, 'U', '上表面', 'D', '下表面', '') sf_type,"
  5180. +" (select max(b.FIXED_NAME)"
  5181. +" from qcm_judge_surface_flaw b"
  5182. +" where a.surface_id = b.surface_id) FIXED_NAME,"
  5183. +" b.ply THICK,"
  5184. +" b.WIDTH WIDTH,"
  5185. +" b.LENGTH LENGTH,"
  5186. +" b.theoryweight weight,"
  5187. +" psel_get_standroll@XGCX(c.STANDROLLER) DELIVERY_STATE_DESC,"
  5188. +" b.planorderno PLANORDERNO,"
  5189. +" b.orderno orderno,"
  5190. +" C2N@xgcx(b.INCLASSTEAM) INSTORAGECLASS,"
  5191. +" C2N@xgcx(b.PCLASSTEAM) PRODUCECLASS"
  5192. +" from qcm_judge_surface a"
  5193. +" left join kcz_turnofflist@xgcx b"
  5194. +" on a.material_no = b.billetid"
  5195. +" left join sel_pactdetail@xgcx c"
  5196. +" on b.planorderno = c.orderno "+swhere+" AND A.MATERIAL_NO LIKE 'Z%'";
  5197. List<HashMap> list = mapper.query(sql);
  5198. cro.setResult(list);
  5199. }catch(Exception e){
  5200. cro.setV_errCode(-1);
  5201. cro.setV_errMsg("查询判定信息出错" + e.getMessage());
  5202. logger.info(e.getMessage());
  5203. SqlSession.rollback();
  5204. }
  5205. SqlSession.close();
  5206. return cro;
  5207. }
  5208. @SuppressWarnings({ "unchecked", "rawtypes" })
  5209. public CoreReturnObject GetSurfaceInfoX(String begintime,String endtime,String sbatchno,String ebatchno,String design_key,String psc_desc,String prodline) throws Exception{
  5210. try{
  5211. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime) && SqlJoint.IsNullOrSpace(sbatchno)) {
  5212. String sky=StrSky(begintime,endtime);
  5213. if(sky.equals("FALSE")){
  5214. SqlSession.close();
  5215. cro.setV_errCode(-1);
  5216. cro.setV_errMsg("查询时间不能大于30天,请核实查询时间条件!");
  5217. return cro;
  5218. }
  5219. }
  5220. //String sqls = "select surfaceid from zj_result_all@xgcx WHERE BILLETID NOT LIKE 'Z%' AND BILLETID NOT LIKE 'Z%'";
  5221. /*String sql = "select a.surface_id, a.sf_result_desc, a.batch_no, a.material_no, a.design_key, a.psc_desc, a.level_desc,b.flaw_desc,a.judge_name,a.sf_memo,a.judge_time,"
  5222. + " a.steel_name,a.prod_name,a.std_name "
  5223. + " from qcm_judge_surface a left join qcm_judge_surface_flaw b on a.surface_id = b.surface_id and b.primary_flag = '1'";*/
  5224. String swhere = " where 1=1 ";
  5225. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime)) { //生产时间
  5226. swhere += " and to_date(to_char(JUDGE_TIME,'yyyy-mm-dd'),'yyyy-mm-dd') between to_date('"+begintime+"','yyyy-mm-dd') and to_date('"+endtime+"','yyyy-mm-dd')";
  5227. }
  5228. if (!SqlJoint.IsNullOrSpace(sbatchno)) { //起始轧批号
  5229. swhere += " and BATCH_NO >= '"+sbatchno+"'";
  5230. }
  5231. if (!SqlJoint.IsNullOrSpace(ebatchno)) { //最后轧批号
  5232. swhere += " and BATCH_NO <= '"+ebatchno+"'";
  5233. }
  5234. if (!SqlJoint.IsNullOrSpace(design_key)) { //销售订单号
  5235. swhere += " and design_key like '%"+design_key+"%'";
  5236. }
  5237. if (!SqlJoint.IsNullOrSpace(psc_desc)) { //Psc
  5238. swhere += " and psc_desc like '%"+psc_desc+"%'";
  5239. }
  5240. if(prodline.equals("高棒")){
  5241. swhere += " and pline_code in ('GX1','4001GX1') ";
  5242. }else if(prodline.equals("棒二")){
  5243. swhere += " and pline_code in ('BC2','4001BC2') ";
  5244. }else if(prodline.equals("高线")){
  5245. swhere += " and pline_code in ('GX2','4001GX2') ";
  5246. }
  5247. swhere += " and pline_code in ('GX1','BC1','BC2','GX2','4001GX1','4001GX2','4001BC2')";
  5248. //swhere += "and a.surface_id in ("+sqls+")";
  5249. //swhere += " order by BATCH_NO desc";
  5250. String sql = "select a.surface_id, "
  5251. +" a.sf_result_desc,"
  5252. +" a.batch_no,"
  5253. +" a.material_no,"
  5254. +" a.design_key,"
  5255. +" a.psc_desc,"
  5256. +" a.level_desc,"
  5257. +" b.flaw_desc,"
  5258. +" a.judge_name,"
  5259. +" a.sf_memo,"
  5260. +" a.judge_time,"
  5261. +" a.steel_name,"
  5262. +" a.prod_name,"
  5263. +" a.std_name,"
  5264. +" c.PLY thick,"
  5265. +" c.WIDTH width,"
  5266. +" c.LENGTH length,"
  5267. +" c.THEORYWEIGHT weight,"
  5268. +" psel_get_standroll@XGCX(d.STANDROLLER) DELIVERY_STATE_DESC"
  5269. +" from qcm_judge_surface a"
  5270. +" left join qcm_judge_surface_flaw b"
  5271. +" on a.surface_id = b.surface_id"
  5272. +" and b.primary_flag = '1'"
  5273. +" join kcx_turnofflist c"
  5274. +" on a.material_no = c.BILLETID"
  5275. +" left join sel_pactdetail d"
  5276. +" on c.ORDERNO = d.ORDERNO "+swhere+"";
  5277. List<HashMap> list = mapper.query(sql);
  5278. cro.setResult(list);
  5279. }catch(Exception e){
  5280. cro.setV_errCode(-1);
  5281. cro.setV_errMsg("查询判定信息出错" + e.getMessage());
  5282. logger.info(e.getMessage());
  5283. SqlSession.rollback();
  5284. }
  5285. SqlSession.close();
  5286. return cro;
  5287. }
  5288. @SuppressWarnings({ "unchecked", "rawtypes" })
  5289. public CoreReturnObject GetSurfaceInfoK(String begintime,String endtime,String sbatchno,String ebatchno,String design_key,String prodline) throws Exception{
  5290. try{
  5291. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime) && SqlJoint.IsNullOrSpace(sbatchno)) {
  5292. String sky=StrSky(begintime,endtime);
  5293. if(sky.equals("FALSE")){
  5294. SqlSession.close();
  5295. cro.setV_errCode(-1);
  5296. cro.setV_errMsg("查询时间不能大于30天,请核实查询时间条件!");
  5297. return cro;
  5298. }
  5299. }
  5300. //String sqls = "select surfaceid from zj_result_all@xgcx WHERE BILLETID NOT LIKE 'Z%' AND BILLETID NOT LIKE 'Z%'";
  5301. /*String sql = "select a.surface_id, a.sf_result_desc, a.batch_no, a.material_no, a.design_key, a.psc_desc, a.level_desc,b.flaw_desc,a.judge_name,a.sf_memo,a.judge_time,"
  5302. + " a.steel_name,a.prod_name,a.std_name "
  5303. + " from qcm_judge_surface a left join qcm_judge_surface_flaw b on a.surface_id = b.surface_id and b.primary_flag = '1'";*/
  5304. String swhere = " where 1=1 ";
  5305. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime)) { //生产时间
  5306. swhere += " and to_date(to_char(JUDGE_TIME,'yyyy-mm-dd'),'yyyy-mm-dd') between to_date('"+begintime+"','yyyy-mm-dd') and to_date('"+endtime+"','yyyy-mm-dd')";
  5307. }
  5308. if (!SqlJoint.IsNullOrSpace(sbatchno)) { //起始轧批号
  5309. swhere += " and BATCH_NO >= '"+sbatchno+"'";
  5310. }
  5311. if (!SqlJoint.IsNullOrSpace(ebatchno)) { //最后轧批号
  5312. swhere += " and BATCH_NO <= '"+ebatchno+"'";
  5313. }
  5314. if (!SqlJoint.IsNullOrSpace(design_key)) { //销售订单号
  5315. swhere += " and design_key like '%"+design_key+"%'";
  5316. }
  5317. swhere += " and pline_code in ('4001JB1')";
  5318. //swhere += "and a.surface_id in ("+sqls+")";
  5319. //swhere += " order by BATCH_NO desc";
  5320. String sql = "select a.surface_id, "
  5321. +" a.sf_result_desc,"
  5322. +" a.batch_no,"
  5323. +" a.material_no,"
  5324. +" a.design_key,"
  5325. +" a.psc_desc,"
  5326. +" a.level_desc,"
  5327. +" b.flaw_desc,"
  5328. +" a.judge_name,"
  5329. +" a.sf_memo,"
  5330. +" a.judge_time,"
  5331. +" a.steel_name,"
  5332. +" a.prod_name,"
  5333. +" a.std_name,"
  5334. +" c.COIL_THK thick,"
  5335. +" c.COIL_WTH width,"
  5336. +" '' length,"
  5337. +" c.ACT_WGT/1000 weight,"
  5338. +" e.PRDNM_CD DELIVERY_STATE_DESC"
  5339. +" from qcm_judge_surface a"
  5340. +" left join qcm_judge_surface_flaw b"
  5341. +" on a.surface_id = b.surface_id"
  5342. +" and b.primary_flag = '1'"
  5343. +" join kcj3_stufflist@xgcx c"
  5344. +" on a.material_no = c.OLD_SAMPL_NO"
  5345. +" left join tba01_ord_line d"
  5346. +" on c.ord_no = d.ord_no and c.ord_seq = d.ord_seq left join tba01_ord_comm e on c.ord_no = e.ord_no "+swhere+"";
  5347. List<HashMap> list = mapper.query(sql);
  5348. cro.setResult(list);
  5349. }catch(Exception e){
  5350. cro.setV_errCode(-1);
  5351. cro.setV_errMsg("查询判定信息出错" + e.getMessage());
  5352. logger.info(e.getMessage());
  5353. SqlSession.rollback();
  5354. }
  5355. SqlSession.close();
  5356. return cro;
  5357. }
  5358. @SuppressWarnings({ "unchecked", "rawtypes" })
  5359. public CoreReturnObject GetSurfaceInfoY(String begintime,String endtime,String material_no,String design_key,String prodline,String processes) throws Exception{
  5360. try{
  5361. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime) && SqlJoint.IsNullOrSpace(material_no)) {
  5362. String sky=StrSky(begintime,endtime);
  5363. if(sky.equals("FALSE")){
  5364. SqlSession.close();
  5365. cro.setV_errCode(-1);
  5366. cro.setV_errMsg("查询时间不能大于30天,请核实查询时间条件!");
  5367. return cro;
  5368. }
  5369. }
  5370. //String sqls = "select surfaceid from zj_result_all@xgcx WHERE BILLETID NOT LIKE 'Z%' AND BILLETID NOT LIKE 'Z%'";
  5371. /*String sql = "select a.surface_id, a.sf_result_desc, a.batch_no, a.material_no, a.design_key, a.psc_desc, a.level_desc,b.flaw_desc,a.judge_name,a.sf_memo,a.judge_time,"
  5372. + " a.steel_name,a.prod_name,a.std_name "
  5373. + " from qcm_judge_surface a left join qcm_judge_surface_flaw b on a.surface_id = b.surface_id and b.primary_flag = '1'";*/
  5374. String swhere = " where 1=1 ";
  5375. if (!SqlJoint.IsNullOrSpace(begintime) && !SqlJoint.IsNullOrSpace(endtime)) { //生产时间
  5376. swhere += " and to_date(to_char(JUDGE_TIME,'yyyy-mm-dd'),'yyyy-mm-dd') between to_date('"+begintime+"','yyyy-mm-dd') and to_date('"+endtime+"','yyyy-mm-dd')";
  5377. }
  5378. if (!SqlJoint.IsNullOrSpace(material_no)) { //起始轧批号
  5379. swhere += " and material_no like '%"+material_no+"%'";
  5380. }
  5381. if (!SqlJoint.IsNullOrSpace(design_key)) { //销售订单号
  5382. swhere += " and design_key like '%"+design_key+"%'";
  5383. }
  5384. if(prodline.equals("优特")){
  5385. swhere += " and pline_code in ('YT1') ";
  5386. }
  5387. swhere += " and pline_code in ('YT1')";
  5388. if(processes.equals("4mm分条机组")){
  5389. swhere += " and MACHINE_CODE = 'M0001'";
  5390. }else if(processes.equals("12mm分条机组")){
  5391. swhere += " and MACHINE_CODE = 'M0002'";
  5392. }else if(processes.equals("3mm横剪机组")){
  5393. swhere += " and MACHINE_CODE = 'M0003'";
  5394. }else if(processes.equals("退火炉宝信")){
  5395. swhere += " and MACHINE_CODE = 'M0004'";
  5396. }else if(processes.equals("退火炉南方D")){
  5397. swhere += " and MACHINE_CODE = 'M0005'";
  5398. }else if(processes.equals("退火炉艾伯纳")){
  5399. swhere += " and MACHINE_CODE = 'M0006'";
  5400. }else if(processes.equals("平整机组")){
  5401. swhere += " and MACHINE_CODE = 'M0007'";
  5402. }else if(processes.equals("轧机机组")){
  5403. swhere += " and MACHINE_CODE = 'M0008'";
  5404. }else if(processes.equals("退火炉南方G")){
  5405. swhere += " and MACHINE_CODE = 'M0009'";
  5406. }else if(processes.equals("酸洗机组")){
  5407. swhere += " and MACHINE_CODE = 'M0010'";
  5408. }
  5409. //swhere += "and a.surface_id in ("+sqls+")";
  5410. //swhere += " order by BATCH_NO desc";
  5411. String sql = "select a.surface_id, "
  5412. +" a.sf_result_desc,"
  5413. +" a.batch_no,"
  5414. +" a.material_no,"
  5415. +" a.design_key,"
  5416. +" a.psc_desc,"
  5417. +" a.level_desc,"
  5418. +" (select dbms_lob.substr(wmsys.wm_concat(DISTINCT(b.flaw_desc))) from qcm_judge_surface_flaw b where b.surface_id = a.surface_id) flaw_desc,"
  5419. +" a.judge_name,"
  5420. +" a.sf_memo,"
  5421. +" a.judge_time,"
  5422. +" a.steel_name,"
  5423. +" a.prod_name,"
  5424. +" a.std_name,"
  5425. +" c.thick,"
  5426. +" c.width,"
  5427. +" c.length,"
  5428. + " CASE WHEN d.FINAL_PROCESSES = '0' THEN (select max(use_desc) from qcm_ord_design_std_sic e where a.design_key = e.design_key and use_code in (select case when a.material_no like '%S%' THEN 'YTSX' when a.material_no like '%L%' and y.num='1' THEN 'YTZZ' when a.material_no like '%L%' and y.num='2' THEN 'YTZZ2' when a.material_no like '%P%' THEN 'YTPZ' when a.material_no like '%T%' THEN 'YTTH' when a.material_no like '%K%' THEN 'YTHJ' when a.material_no like '%F%' THEN 'YTZJ' END FROM DUAL)) ELSE soi.LEVEL_NAME END sf_level,"
  5429. +" c.FACTWEIGHT/1000 weight,"
  5430. +" C.DELIVERY_STATE_DESC"
  5431. +" from qcm_judge_surface a"
  5432. +" join YDM_PRODUCT_DETAIL@LINK_YTG c"
  5433. +" on a.material_no = c.COILNO"
  5434. + " left join qcm_judge_yt_coil_result d "
  5435. + " on a.material_no = d.coil_no "
  5436. + " left join SLM_ORDER_INFO@LINK_YTG soi on a.design_key = soi.CONTRACT_NO || soi.ORDER_SEQ left join ( select count(1) as num,MATERAILCOILNO from ( "
  5437. + " select MATERAILCOILNO from YDM_PRODUCT_DETAIL@LINK_YTG ypd join MES_RCM_D@LINK_YTG d on ypd.COILNO = d.COIL_NO where substr(ypd.COILNO, -1, 1) not in ('H', 'B') and ypd.MACHINE_CODE = 'M0008' group by ypd.MATERAILCOILNO,d.PROCESS_NO ) group by MATERAILCOILNO )y on y.MATERAILCOILNO = c.MATERAILCOILNO "+swhere+"";
  5438. List<HashMap> list = mapper.query(sql);
  5439. cro.setResult(list);
  5440. }catch(Exception e){
  5441. cro.setV_errCode(-1);
  5442. cro.setV_errMsg("查询判定信息出错" + e.getMessage());
  5443. logger.info(e.getMessage());
  5444. SqlSession.rollback();
  5445. }
  5446. SqlSession.close();
  5447. return cro;
  5448. }
  5449. /**
  5450. * 炼钢表面修磨结果
  5451. */
  5452. @SuppressWarnings({ "unused", "unchecked" })
  5453. public CoreReturnObject GetXmResult(){
  5454. QcmJhyElementsServiceImpl qjes = new QcmJhyElementsServiceImpl();
  5455. try{
  5456. JSONObject jsobj2 = new JSONObject();
  5457. JSONArray ttmaps = new JSONArray();
  5458. JSONObject jsobj1 = new JSONObject();
  5459. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  5460. String result = qjes.callWebserviceASMX(url,"XmResult",JSON.toJSONString(jsobj1));
  5461. if(result.contains("data")){
  5462. JSONObject jo = JSONObject.parseObject(result);
  5463. JSONArray ja = jo.getJSONArray("data");
  5464. List<HashMap> listqjb = new ArrayList<HashMap>();
  5465. for(int i = 0;i<ja.size();i++){
  5466. HashMap lists = new HashMap();
  5467. lists.put("XMRESULT", ja.getJSONObject(i).getString("XMRESULT"));
  5468. listqjb.add(lists);
  5469. }
  5470. cro.setResult(listqjb);
  5471. }
  5472. }catch(Exception ex){
  5473. cro.setV_errCode(-1);
  5474. cro.setV_errMsg("获取成分待判信息错误"+ex.getMessage());
  5475. SqlSession.rollback();
  5476. }
  5477. SqlSession.close();
  5478. return cro;
  5479. }
  5480. private String getresult2(String material_no,String zl_result){
  5481. String result = "";
  5482. try{
  5483. if(material_no.equals("") || zl_result.equals("") ){
  5484. throw new Exception("请传入正确参数!");
  5485. }
  5486. if(zl_result.equals("CP") || zl_result.equals("FP") || zl_result.equals("S1")){
  5487. result = "2";
  5488. }else{
  5489. List<HashMap> list = mapper.doQueryMaterialInfoY(material_no);
  5490. if(list.size()==0){
  5491. throw new Exception("找不到库存数据!");
  5492. }
  5493. if(list.get(0).get("FINAL_PROCESSES").toString().equals("1")){
  5494. if(list.get(0).get("C_EXTSHAPE_REQ") ==null){
  5495. throw new Exception("表面标准未下发!");
  5496. }
  5497. if(zl_result.compareTo(list.get(0).get("C_EXTSHAPE_REQ").toString()) >= 0){
  5498. result = "1";
  5499. }else{
  5500. result = "2";
  5501. }
  5502. }
  5503. else{
  5504. String use_code = "";
  5505. if(material_no.contains("S"))
  5506. {
  5507. use_code = "YTSX";
  5508. }else if(material_no.contains("L") && list.get(0).get("NUM").toString().equals("1"))
  5509. {
  5510. use_code = "YTZZ";
  5511. }else if(material_no.contains("L") && list.get(0).get("NUM").toString().equals("2"))
  5512. {
  5513. use_code = "YTZZ2";
  5514. }else if(material_no.contains("P"))
  5515. {
  5516. use_code = "YTPZ";
  5517. }else if(material_no.contains("T"))
  5518. {
  5519. use_code = "YTTH";
  5520. }else if(material_no.contains("K"))
  5521. {
  5522. use_code = "YTHJ";
  5523. }else if(material_no.contains("F"))
  5524. {
  5525. use_code = "YTZJ";
  5526. }
  5527. List<QCMOrdDesignStdSic> siclist=new ArrayList<QCMOrdDesignStdSic>();
  5528. // DESIGN_KEY、PSC查询质量设计-交付标准SLM_ORD_DESIGN_STD获取公差标准索引号SIC、SIC_K;
  5529. String sql = "select * from qcm_ord_design_std_sic where design_key = '"+list.get(0).get("DESIGN_KEY").toString()+"' and use_code = '"+use_code+"' AND USE_DESC IS NOT NULL";
  5530. List<QCMOrdDesignStdSic> listSic = mapper.queryQCMOrdDesignStdSic(sql);
  5531. if(listSic.size()==0){
  5532. throw new Exception("表面标准未下发!");
  5533. }
  5534. if(zl_result.compareTo(listSic.get(0).getUse_desc().toString()) >= 0){
  5535. result = "1";
  5536. }else{
  5537. result = "2";
  5538. }
  5539. }
  5540. }
  5541. }catch(Exception ex){
  5542. cro.setV_errCode(-1);
  5543. cro.setV_errMsg("获取判定结果错误"+ex.getMessage());
  5544. SqlSession.rollback();
  5545. }
  5546. return result;
  5547. }
  5548. private String getresult(String design_key,String zl_result){
  5549. String result = "";
  5550. try{
  5551. if(design_key.equals("") || zl_result.equals("") ){
  5552. throw new Exception("请传入正确参数!");
  5553. }
  5554. if(zl_result.equals("CP") || zl_result.equals("FP") || zl_result.equals("S1")){
  5555. result = "2";
  5556. }else{
  5557. List<HashMap> list = mapper.query("select C_EXTSHAPE_REQ from tba01_ord_line a where a.ord_no||a.ord_seq = '"+design_key+"'");
  5558. if(list.size()==0){
  5559. throw new Exception("找不到订单数据!");
  5560. }
  5561. if(zl_result.compareTo(list.get(0).get("C_EXTSHAPE_REQ").toString()) >= 0){
  5562. result = "1";
  5563. }else{
  5564. result = "2";
  5565. }
  5566. }
  5567. }catch(Exception ex){
  5568. cro.setV_errCode(-1);
  5569. cro.setV_errMsg("获取判定结果错误"+ex.getMessage());
  5570. SqlSession.rollback();
  5571. }
  5572. return result;
  5573. }
  5574. private String getresult1(String design_key,String zl_result){
  5575. String result = "";
  5576. try{
  5577. if(design_key.equals("") ){
  5578. throw new Exception("请传入正确参数!");
  5579. }
  5580. if(zl_result.equals("CP") || zl_result.equals("FP") || zl_result.equals("S1")){
  5581. result = "2";
  5582. }
  5583. else if(zl_result.equals("")){
  5584. result = "0";
  5585. }
  5586. else{
  5587. List<HashMap> list = mapper.query("select C_EXTSHAPE_REQ from tba01_ord_line a where a.ord_no||a.ord_seq = '"+design_key+"'");
  5588. if(list.size()==0){
  5589. throw new Exception("找不到订单数据!");
  5590. }
  5591. if(zl_result.compareTo(list.get(0).get("C_EXTSHAPE_REQ").toString()) >= 0){
  5592. result = "1";
  5593. }else{
  5594. result = "2";
  5595. }
  5596. }
  5597. }catch(Exception ex){
  5598. cro.setV_errCode(-1);
  5599. cro.setV_errMsg("获取判定结果错误"+ex.getMessage());
  5600. SqlSession.rollback();
  5601. }
  5602. return result;
  5603. }
  5604. /*
  5605. * @desc coiljudge_status_call
  5606. * @param pline 产线'RZ1' 'SZ1' 'LT1'
  5607. * @param pcoilno 钢卷号
  5608. * @param chemrs 成分判定结果 '1'合格 '2'不合格
  5609. * @param qltyrs 材质判定结果 '1'合格 '2'不合格
  5610. * @param sizers 尺寸判定结果 '1'合格 '2'不合格
  5611. * @param exshrs 外观判定结果 '1'合格 '2'不合格,'3'次品 '4'废品
  5612. * @param totrs 综合判定
  5613. * @param fb_yn 是否封闭
  5614. * @param fb_reason 封闭原因
  5615. * @return void
  5616. *
  5617. * @date 2022/8/24 17:22
  5618. * @author Ljy
  5619. */
  5620. public void coiljudge_status_call(
  5621. String pline
  5622. , String pcoilno
  5623. , String chemrs
  5624. , String qltyrs
  5625. , String sizers
  5626. , String exshrs
  5627. , String totrs
  5628. , String fb_yn
  5629. , String fb_reason,String sf_lv) throws java.lang.Exception {
  5630. Connection conn = null;
  5631. CallableStatement cstmt = null;
  5632. ResultSet rs = null;
  5633. try {
  5634. conn = SqlSession.getConnection();
  5635. String callSql = "{call COILJUDGE_STATUSNEW(?,?,?,?,?,?,?,?,?,?,?,?) }";
  5636. cstmt = conn.prepareCall(callSql);
  5637. cstmt.setString(1, StringUtils.isBlank(pline) ? "" : pline);
  5638. cstmt.setString(2, StringUtils.isBlank(pcoilno) ? "" : pcoilno);
  5639. cstmt.setString(3, StringUtils.isBlank(chemrs) ? "" : chemrs);
  5640. cstmt.setString(4, StringUtils.isBlank(qltyrs) ? "" : qltyrs);
  5641. cstmt.setString(5, StringUtils.isBlank(sizers) ? "" : sizers);
  5642. cstmt.setString(6, StringUtils.isBlank(exshrs) ? "" : exshrs);
  5643. cstmt.setString(7, StringUtils.isBlank(totrs) ? "" : totrs);
  5644. cstmt.setString(8, StringUtils.isBlank(fb_yn) ? "" : fb_yn);
  5645. cstmt.setString(9, StringUtils.isBlank(fb_reason) ? "" : fb_reason);
  5646. cstmt.setString(10, StringUtils.isBlank(sf_lv) ? "" : sf_lv);
  5647. cstmt.registerOutParameter(11, java.sql.Types.INTEGER);
  5648. cstmt.registerOutParameter(12, java.sql.Types.VARCHAR);
  5649. cstmt.execute();
  5650. if(cstmt.getString(11) != null){
  5651. if(cstmt.getString(11).equals("2")){
  5652. throw new java.lang.Exception(cstmt.getString(12).toString());
  5653. }
  5654. }
  5655. } catch (Exception e) {
  5656. throw new Exception(e.getMessage());
  5657. } finally {
  5658. try {
  5659. if (rs != null) {
  5660. rs.close();
  5661. }
  5662. } catch (Exception e) {
  5663. throw new Exception(e.getMessage());
  5664. }
  5665. try {
  5666. if (cstmt != null) {
  5667. cstmt.close();
  5668. }
  5669. } catch (Exception e) {
  5670. throw new Exception(e.getMessage());
  5671. }
  5672. }
  5673. }
  5674. //中厚板表面检验
  5675. private void bmjy(String aPreBH,String aCBID,String aJudgeType, String aGZLB, String aGYLB,String aXGLB,String aJudgeSteelName, String aJudgePurposeID , String aJudgeStandNo, String aRecorder , String aSquadOrder, String aSquadName, String aMemo, String aZYDW) throws java.lang.Exception
  5676. {
  5677. Connection conn = null;
  5678. CallableStatement cstmt = null;
  5679. ResultSet rs = null;
  5680. try {
  5681. conn = SqlSession.getConnection();
  5682. String callSql = "{call GETJHTOMESPLAN.GET_BMJL@xgcx(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) }";
  5683. cstmt = conn.prepareCall(callSql);
  5684. cstmt.setString(1, aPreBH);
  5685. cstmt.setString(2, aCBID);
  5686. cstmt.setString(3, aJudgeType);
  5687. cstmt.setString(4, aGZLB);
  5688. cstmt.setString(5, aGYLB);
  5689. cstmt.setString(6, aXGLB);
  5690. cstmt.setString(7, aJudgeSteelName);
  5691. cstmt.setString(8, aJudgePurposeID);
  5692. cstmt.setString(9, aJudgeStandNo);
  5693. cstmt.setString(10, aRecorder);
  5694. cstmt.setString(11, aSquadOrder);
  5695. cstmt.setString(12, aSquadName);
  5696. cstmt.setString(13, aMemo);
  5697. cstmt.setString(14, aZYDW);
  5698. cstmt.registerOutParameter(15, java.sql.Types.INTEGER);
  5699. cstmt.registerOutParameter(16, java.sql.Types.VARCHAR);
  5700. cstmt.execute();
  5701. if(cstmt.getString(15) != null){
  5702. if(cstmt.getString(15).equals("0")){
  5703. throw new java.lang.Exception("["+ aCBID + "]" + " 调用接口失败: + "+cstmt.getString(16).toString()+"");
  5704. }
  5705. }
  5706. } catch (Exception e) {
  5707. throw new Exception(e.getMessage());
  5708. } finally {
  5709. try {
  5710. if (rs != null) {
  5711. rs.close();
  5712. }
  5713. } catch (Exception e) {
  5714. throw new Exception(e.getMessage());
  5715. }
  5716. /*try {
  5717. if (conn != null) {
  5718. conn.close();
  5719. }
  5720. } catch (Exception e) {
  5721. throw new Exception(e.getMessage());
  5722. }*/
  5723. try {
  5724. if (cstmt != null) {
  5725. cstmt.close();
  5726. }
  5727. } catch (Exception e) {
  5728. throw new Exception(e.getMessage());
  5729. }
  5730. }
  5731. }
  5732. //炼钢综合判定判废
  5733. @SuppressWarnings({ "rawtypes", "unused" })
  5734. public void LgultimateJudgeAutoBySystem(String material_no, String username,String prodline,String prod_name) throws Exception{
  5735. try{
  5736. int flag = 0;
  5737. QcmJhyElementsServiceImpl qjes = new QcmJhyElementsServiceImpl();
  5738. List<HashMap> hashmap = (List<HashMap>) qjes.getLgRejudgeInfobyMaterial_no("", "", material_no, prodline, prod_name, "J").getResult();
  5739. if(hashmap.size() == 0){
  5740. return;
  5741. }
  5742. QcmJudgeUltimate qju=new QcmJudgeUltimate();
  5743. if(!hashmap.get(0).get("FACERESULT").equals("4")){
  5744. return;
  5745. }
  5746. String Judgeresult ="4";
  5747. String Judgeresult_desc = "废品";
  5748. List<QCMJudgeLocking> qj = mapper.queryQCMJudgeLockings("select * from qcm_judge_locking where lock_id = '"+hashmap.get(0).get("CHEMJUDGEID").toString()+"' and unlock_type_code is null");
  5749. if(qj.size() > 0){
  5750. return;
  5751. }
  5752. qj = mapper.queryQCMJudgeLockings("select * from qcm_judge_locking where lock_id = '"+hashmap.get(0).get("FACECHECKID").toString()+"' and unlock_type_code is null");
  5753. if(qj.size() > 0){
  5754. return;
  5755. }
  5756. qj = mapper.queryQCMJudgeLockings("select * from qcm_judge_locking where material_no = '"+material_no+"' and unlock_type_code is null");
  5757. if(qj.size() > 0){
  5758. return;
  5759. }
  5760. //获取判定记录号当天的最大值
  5761. Date now = new Date();
  5762. String opr_time = new SimpleDateFormat("yyyyMMddHHmmss").format(now); //操作时间
  5763. SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  5764. String date=sdf.format(now);
  5765. int count=0;
  5766. String sql ="select * from (select * from qcm_judge_ultimate where UTM_ID like 'ZL"+date+"%' order by UTM_ID desc) where rownum <= 1";
  5767. List<QcmJudgeUltimate> listUl=mapper.QcmJudgeUltimate(sql);
  5768. if (listUl!=null&&listUl.size()>0) {
  5769. String s=listUl.get(0).getUtm_id();
  5770. count=Integer.parseInt(s.substring(s.length()-4,s.length()));
  5771. }
  5772. count++;
  5773. String utm_id="ZL"+sdf.format(now)+String.format("%04d",count);
  5774. qju.setUtm_id(utm_id);
  5775. //调用综合判定接口
  5776. String is_fx = "1";
  5777. if(prodline.equals("4001LGX")){
  5778. is_fx = "0";
  5779. }
  5780. //插入综合判定记录表
  5781. qju.setDesign_key(hashmap.get(0).get("DESIGN_KEY") == null ?"":hashmap.get(0).get("DESIGN_KEY").toString());
  5782. qju.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  5783. qju.setBatch_no(material_no);
  5784. qju.setBoard_no(material_no);
  5785. qju.setInspection_lot("");
  5786. qju.setMaterial_no(material_no);
  5787. qju.setUtm_id(utm_id);
  5788. qju.setUtm_memo(hashmap.get(0).get("REMARK")==null?"":hashmap.get(0).get("REMARK").toString());
  5789. qju.setUtm_result_code(Judgeresult.equals("7")?"1":Judgeresult);
  5790. qju.setUtm_result_desc(Judgeresult_desc);
  5791. qju.setR_cic_id(hashmap.get(0).get("CHEMJUDGEID").toString());
  5792. qju.setR_cic_result_code(hashmap.get(0).get("CHEMRESULT_LK").toString());
  5793. qju.setR_cic_result_desc(hashmap.get(0).get("CHEMRESULT_LK").equals("1")?"合格":(hashmap.get(0).get("CHEMRESULT_LK").equals("2")?"不合格":(hashmap.get(0).get("CHEMRESULT_LK").equals("3")?"判次":"判废")));
  5794. qju.setSfd_id(hashmap.get(0).get("FACECHECKID").toString());
  5795. qju.setSfd_result_code(hashmap.get(0).get("FACERESULT").toString());
  5796. qju.setSfd_result_desc(hashmap.get(0).get("FACERESULT").equals("1")?"合格":(hashmap.get(0).get("FACERESULT").equals("2")?"不合格":(hashmap.get(0).get("FACERESULT").equals("3")?"判次":"判废")));
  5797. qju.setSfe_id(hashmap.get(0).get("FACECHECKID").toString());
  5798. qju.setSfe_result_code(hashmap.get(0).get("FACERESULT").toString());
  5799. qju.setSfe_result_desc(hashmap.get(0).get("FACERESULT").equals("1")?"合格":(hashmap.get(0).get("FACERESULT").equals("2")?"不合格":(hashmap.get(0).get("FACERESULT").equals("3")?"判次":"判废")));
  5800. qju.setSfu_id(hashmap.get(0).get("FACECHECKID").toString());
  5801. qju.setSfu_result_code(hashmap.get(0).get("FACERESULT").toString());
  5802. qju.setSfu_result_desc(hashmap.get(0).get("FACERESULT").equals("1")?"合格":(hashmap.get(0).get("FACERESULT").equals("2")?"不合格":(hashmap.get(0).get("FACERESULT").equals("3")?"判次":"判废")));
  5803. qju.setPsc("");
  5804. qju.setPsc_desc("");
  5805. qju.setProd_code("");
  5806. qju.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  5807. qju.setSteel_code(hashmap.get(0).get("GRADE_NAME").toString());
  5808. qju.setSteel_name(hashmap.get(0).get("GRADE_NAME").toString());
  5809. qju.setStd_code(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  5810. qju.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  5811. qju.setJudge_name(username);
  5812. qju.setJudge_time(new Date());
  5813. qju.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  5814. qju.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  5815. mapper.insertQcmJudgeUltimate(qju);
  5816. JSONObject jsobj2 = new JSONObject();
  5817. JSONArray ttmaps = new JSONArray();
  5818. JSONObject jsobj1 = new JSONObject();
  5819. jsobj1.put("CHEMRESULT_LK", "");
  5820. jsobj1.put("FACERESULT","");
  5821. jsobj1.put("COMPREHENSIVERESULT",Judgeresult.equals("5")?"8":(Judgeresult.equals("6")?"7":(Judgeresult.equals("7")?"6":Judgeresult)));
  5822. jsobj1.put("CHEMJUDGEID","");
  5823. jsobj1.put("FACECHECKID","");
  5824. jsobj1.put("COMPREHENSIVEID",utm_id);
  5825. jsobj1.put("JUDGE_TYPE","J");
  5826. jsobj1.put("PROD_LINE",prodline);
  5827. jsobj1.put("ISJUDGE","1");
  5828. jsobj1.put("PROD_TYPE",prod_name);
  5829. jsobj1.put("SLAB_NO",material_no);
  5830. jsobj1.put("CHECKNO","");
  5831. jsobj1.put("OPTMAN", username);
  5832. jsobj1.put("ISFX", is_fx);
  5833. jsobj1.put("CHEMRESULT_FX", "");
  5834. ttmaps.add(jsobj1);
  5835. String url = "http://10.70.0.237:9000/LgdoChemJudgeService?wsdl";
  5836. String result = qjes.callWebserviceASMX(url,"ChemJudge",JSON.toJSONString(ttmaps));
  5837. JSONObject jo = JSONObject.parseObject(result);
  5838. if(jo.get("code").toString().equals("1")){
  5839. return;
  5840. }
  5841. //judge_call(hashmap.get(0).get("STD_NAME"),hashmap.get(0).get("PROD_NAME"),hashmap.get(0).get("STD_NAME"),hashmap.get(0).get("PROD_NAME"),)
  5842. //SqlSession.commit();
  5843. }catch(Exception ex){
  5844. cro.setV_errCode(-1);
  5845. cro.setV_errMsg(ex.getMessage());
  5846. SqlSession.rollback();
  5847. }
  5848. //SqlSession.close();
  5849. }
  5850. /** 综合判定-取消综合判定按钮
  5851. * 操作人、list<综合判定记录号>
  5852. **/
  5853. @SuppressWarnings({ "unused", "rawtypes" })
  5854. public CoreReturnObject cancelUltimateJudge(String username,String material_no,String utm_id) throws Exception{
  5855. try {
  5856. String sql = "";
  5857. sql = "select * from zj_result_all@xgcx where BILLETID = '"+material_no+"'";
  5858. List<HashMap> list1 = mapper.query(sql);
  5859. sql = "select * from QCM_JUDGE_COIL_RESULT where coil_no = '"+material_no+"'";
  5860. List<HashMap> list2 = mapper.query(sql);
  5861. sql = "select * from QCM_JUDGE_YT_COIL_RESULT where coil_no = '"+material_no+"' and judgeresult <> '0'";
  5862. List<HashMap> list3 = mapper.query(sql);
  5863. //库存表放
  5864. List<QcmJudgeUltimate> qju = mapper.QcmJudgeUltimate("select * from Qcm_Judge_Ultimate where utm_id = '"+utm_id+"'");
  5865. String inspection_lot = "";
  5866. if(list1.size() >0 || list2.size() >0 || list3.size() >0){
  5867. if(list1.size()>0){
  5868. if(list1.get(0).get("BILLETID_JY")==null || list1.get(0).get("BILLETID_JY").toString().equals("") ){
  5869. if(qju.size() > 0){
  5870. inspection_lot = qju.get(0).getInspection_lot();
  5871. }
  5872. }else{
  5873. inspection_lot = list1.get(0).get("BILLETID_JY").toString();
  5874. }
  5875. String design_key = qju.get(0).getDesign_key() == null?"":qju.get(0).getDesign_key().toString();
  5876. mapper.clearJUDGERESULT(material_no,inspection_lot);
  5877. canceljudge_call(material_no,design_key);
  5878. /*String steelname = hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString();
  5879. String phyid = list1.get(0).get("PHYSID")==null?"":list1.get(0).get("PHYSID").toString();
  5880. sql= "select max(t.steel_name) steel_name from qcm_judge_physical t where t.phy_id in (select phy_id from qcm_judge_physical_utm_d d where d.pic_id = '"+phyid+"')";
  5881. List<HashMap> liststeel = mapper.query(sql);
  5882. if(liststeel != null && liststeel.size() >0 ){
  5883. steelname = liststeel.get(0).get("STEEL_NAME").toString();
  5884. }
  5885. judge_call(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString(),hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString(),hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString(),hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString(),hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString(),"","","","","",material_no,username,"","","","",steelname);*/
  5886. }else if(list2.size() >0){
  5887. /*QcmJudgeMeasureServiceImpl qjms = new QcmJudgeMeasureServiceImpl();
  5888. List<HashMap> hashmap = qjms.doQueryMaterialInfoJ(material_no);*/
  5889. if(list2.get(0).get("INSPECTION_LOT")==null){
  5890. inspection_lot = qju.get(0).getInspection_lot();
  5891. }else{
  5892. inspection_lot = list2.get(0).get("INSPECTION_LOT").toString();
  5893. }
  5894. mapper.clearJUDGERESULT1(material_no,inspection_lot);
  5895. coiljudge_status_call(qju.get(0).getPline_code(), material_no, null, null, null, null, "D", null, null,"");
  5896. }else{
  5897. List<HashMap> hashmap = mapper.doQueryMaterialInfoY(material_no);
  5898. if(list3.get(0).get("INSPECTION_LOT")==null){
  5899. inspection_lot = qju.get(0).getInspection_lot()== null?"":qju.get(0).getInspection_lot();
  5900. }else{
  5901. inspection_lot = list3.get(0).get("INSPECTION_LOT")==null?"":list3.get(0).get("INSPECTION_LOT").toString();
  5902. }
  5903. mapper.clearJUDGERESULT2(material_no,inspection_lot);
  5904. String url = "http://172.16.81.200/xinsteel.maketx/service/SlmFundFirstDetailService/cancelReceiveUltimate";
  5905. JSONObject jsobj1 = new JSONObject();
  5906. JSONObject jsobj2 = new JSONObject();
  5907. JSONArray ttmaps = new JSONArray();
  5908. JSONArray ttmaps1 = new JSONArray();
  5909. jsobj1.put("utm_id", utm_id);
  5910. jsobj1.put("material_no", material_no);
  5911. jsobj2.put("object", jsobj1);
  5912. ttmaps1.add(jsobj2);
  5913. String result = post1(JSON.toJSONString(ttmaps1),url);
  5914. JSONObject jo = JSONObject.parseObject(result);
  5915. if(!"200".equals(jo.get("state").toString())){
  5916. throw new Exception(jo.get("msgInfo").toString());
  5917. }
  5918. }
  5919. }else{
  5920. throw new Exception("未找到库存信息!");
  5921. }
  5922. mapper.CancelUltimate(utm_id, "表面判定",username);
  5923. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  5924. qjog.setOperate_name(username);
  5925. qjog.setOperate_type("取消综合判定");
  5926. qjog.setParams(material_no);
  5927. qjog.setProd_line(qju.get(0).getPline_code());
  5928. qjog.setBatchno(qju.get(0).getBatch_no());
  5929. mapper.insertQcmJudgeOperateLog(qjog);
  5930. } catch (Exception e) {
  5931. SqlSession.rollback();
  5932. cro.setV_errCode(-1);
  5933. cro.setV_errMsg("取消综合判定失败!"+e.getMessage());
  5934. logger.info(new Date().toString() + " QCM.QCM03.QCM0302.QcmJudgePhysicalServiceImpl.cancelUltimateJudge:【" + username + "," + material_no + "】" + e);
  5935. }
  5936. return cro;
  5937. }
  5938. public CoreReturnObject AddFJHZHB(String material_no) throws Exception{
  5939. try {
  5940. addFJH_call(material_no);
  5941. SqlSession.commit();
  5942. } catch (Exception e) {
  5943. SqlSession.rollback();
  5944. cro.setV_errCode(-1);
  5945. cro.setV_errMsg("新增非计划子板失败"+e.getMessage());
  5946. logger.info(new Date().toString() + " 【" + material_no + "】" + e);
  5947. }
  5948. SqlSession.close();
  5949. return cro;
  5950. }
  5951. private void canceljudge_call(String aSlabNos,String design_key) throws java.lang.Exception
  5952. {
  5953. Connection conn = null;
  5954. CallableStatement cstmt = null;
  5955. ResultSet rs = null;
  5956. try {
  5957. conn = SqlSession.getConnection();
  5958. String callSql = "{call GETJHTOMESPLAN.JudgeRec_Del@xgcx(?,?,?) }";
  5959. cstmt = conn.prepareCall(callSql);
  5960. cstmt.setString(1, aSlabNos);
  5961. cstmt.setString(2, design_key);
  5962. cstmt.registerOutParameter(3, java.sql.Types.INTEGER);
  5963. cstmt.execute();
  5964. if(cstmt.getString(3) != null){
  5965. if(cstmt.getString(3).equals("0")){
  5966. throw new java.lang.Exception("更新判定结果失败!");
  5967. }
  5968. }
  5969. } catch (Exception e) {
  5970. throw new Exception(e.getMessage());
  5971. } finally {
  5972. try {
  5973. if (rs != null) {
  5974. rs.close();
  5975. }
  5976. } catch (Exception e) {
  5977. throw new Exception(e.getMessage());
  5978. }
  5979. try {
  5980. if (cstmt != null) {
  5981. cstmt.close();
  5982. }
  5983. } catch (Exception e) {
  5984. throw new Exception(e.getMessage());
  5985. }
  5986. }
  5987. }
  5988. private void addFJH_call(String material_no) throws Exception
  5989. {
  5990. Connection conn = null;
  5991. CallableStatement cstmt = null;
  5992. ResultSet rs = null;
  5993. try {
  5994. conn = SqlSession.getConnection();
  5995. String callSql = "{call GETJHTOMESPLAN.INST_PLANDETAILOFPLATE@xgcx(?) }";
  5996. cstmt = conn.prepareCall(callSql);
  5997. cstmt.setString(1, material_no);
  5998. cstmt.execute();
  5999. conn.commit();
  6000. } catch (Exception e) {
  6001. throw new Exception(e.getMessage());
  6002. } finally {
  6003. try {
  6004. if (rs != null) {
  6005. rs.close();
  6006. }
  6007. } catch (Exception e) {
  6008. throw new Exception(e.getMessage());
  6009. }
  6010. try {
  6011. if (cstmt != null) {
  6012. cstmt.close();
  6013. }
  6014. } catch (Exception e) {
  6015. throw new Exception(e.getMessage());
  6016. }
  6017. }
  6018. }
  6019. private void order_down(String billet_id,String reason) throws java.lang.Exception
  6020. {
  6021. Connection conn = null;
  6022. CallableStatement cstmt = null;
  6023. ResultSet rs = null;
  6024. try {
  6025. conn = SqlSession.getConnection();
  6026. String callSql = "{call GETJHTOMESPLAN.ORDER_DOWN@xgcx(?,?) }";
  6027. cstmt = conn.prepareCall(callSql);
  6028. cstmt.setString(1, billet_id);
  6029. cstmt.setString(2, reason);
  6030. cstmt.execute();
  6031. } catch (Exception e) {
  6032. throw new Exception(e.getMessage());
  6033. } finally {
  6034. try {
  6035. if (rs != null) {
  6036. rs.close();
  6037. }
  6038. } catch (Exception e) {
  6039. throw new Exception(e.getMessage());
  6040. }
  6041. try {
  6042. if (cstmt != null) {
  6043. cstmt.close();
  6044. }
  6045. } catch (Exception e) {
  6046. throw new Exception(e.getMessage());
  6047. }
  6048. }
  6049. }
  6050. private void judge_call(String aPlanStand,String aPlanPurpose,String aStand, String aPurpose, String aHIC,String aCollResult,String aJudgeReason, String aJudgeMemo , String aXJudgeMemo, String aMuliSteelInfo , String aSlabNos, String aOperator, String aProductName, String aRclStae,String sBH, String aApplyOrderno,String steelname) throws java.lang.Exception
  6051. {
  6052. Connection conn = null;
  6053. CallableStatement cstmt = null;
  6054. ResultSet rs = null;
  6055. try {
  6056. conn = SqlSession.getConnection();
  6057. String callSql = "{call GETJHTOMESPLAN.JudgeRec_Add@xgcx(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) }";
  6058. cstmt = conn.prepareCall(callSql);
  6059. cstmt.setString(1, aPlanStand);
  6060. cstmt.setString(2, aPlanPurpose);
  6061. cstmt.setString(3, aStand);
  6062. cstmt.setString(4, aPurpose);
  6063. cstmt.setString(5, aHIC);
  6064. cstmt.setString(6, aCollResult);
  6065. cstmt.setString(7, aJudgeReason);
  6066. cstmt.setString(8, aJudgeMemo);
  6067. cstmt.setString(9, aXJudgeMemo);
  6068. cstmt.setString(10, aMuliSteelInfo);
  6069. cstmt.setString(11, aSlabNos);
  6070. cstmt.setString(12, aOperator);
  6071. cstmt.setString(13, aProductName);
  6072. cstmt.setString(14, aRclStae);
  6073. cstmt.setString(15, sBH);
  6074. cstmt.setString(16, aApplyOrderno);
  6075. cstmt.setString(17, steelname);
  6076. cstmt.registerOutParameter(18, java.sql.Types.INTEGER);
  6077. cstmt.execute();
  6078. if(cstmt.getString(18) != null){
  6079. if(cstmt.getString(18).equals("0")){
  6080. throw new java.lang.Exception("更新判定结果失败!");
  6081. }
  6082. }
  6083. } catch (Exception e) {
  6084. throw new Exception(e.getMessage());
  6085. } finally {
  6086. try {
  6087. if (rs != null) {
  6088. rs.close();
  6089. }
  6090. } catch (Exception e) {
  6091. throw new Exception(e.getMessage());
  6092. }
  6093. try {
  6094. if (cstmt != null) {
  6095. cstmt.close();
  6096. }
  6097. } catch (Exception e) {
  6098. throw new Exception(e.getMessage());
  6099. }
  6100. }
  6101. }
  6102. /***
  6103. * 判次、判废综合判定:
  6104. * @param sum
  6105. * @return
  6106. */
  6107. @SuppressWarnings({ "rawtypes", "unused" })
  6108. public CoreReturnObject ultimateJudgeAuto(String material_no, String username,String type) throws Exception{
  6109. try{
  6110. int count = 0;
  6111. QcmJudgeMeasureServiceImpl qjms = new QcmJudgeMeasureServiceImpl();
  6112. List<HashMap> hashmap = qjms.doQueryMaterialInfoBX(material_no);
  6113. if(hashmap.size() == 0){
  6114. hashmap = qjms.doQueryMaterialInfoJ(material_no);
  6115. }
  6116. String sql = "select * from zj_result_all@xgcx where BILLETID = '"+material_no+"'";
  6117. int flag = 0;
  6118. String judge_result = "";
  6119. List<HashMap> list1 = mapper.query(sql);
  6120. sql = "select * from QCM_JUDGE_COIL_RESULT where coil_no = '"+material_no+"'";
  6121. List<HashMap> list2 = mapper.query(sql);
  6122. if(list1.size() >0 || list2.size() >0){
  6123. if(list1.size()>0){
  6124. for(HashMap list:list1){
  6125. QcmJudgeUltimate qju=new QcmJudgeUltimate();
  6126. //获取判定记录号当天的最大值
  6127. Date now = new Date();
  6128. String opr_time = new SimpleDateFormat("yyyyMMddHHmmss").format(now); //操作时间
  6129. SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  6130. String date=sdf.format(now);
  6131. count=0;
  6132. String type1 = "";
  6133. if(material_no.startsWith("Z")||material_no.startsWith("H")){
  6134. type1 = "ZB";
  6135. }else{
  6136. type1 = "ZX";
  6137. }
  6138. sql ="select * from (select * from qcm_judge_ultimate where UTM_ID like '"+type1+date+"%' order by UTM_ID desc) where rownum <= 1";
  6139. List<QcmJudgeUltimate> listUl=mapper.QcmJudgeUltimate(sql);
  6140. if (listUl!=null&&listUl.size()>0) {
  6141. String s=listUl.get(0).getUtm_id();
  6142. count=Integer.parseInt(s.substring(s.length()-4,s.length()));
  6143. }
  6144. count++;
  6145. String utm_id=type1+sdf.format(now)+String.format("%04d",count);
  6146. qju.setUtm_id(utm_id);
  6147. //更新库存表综合判定结果
  6148. ZjResultAll zra = new ZjResultAll();
  6149. zra.setBilletid(material_no);
  6150. zra.setJudgeid(utm_id);
  6151. if(type.equals("3")){
  6152. zra.setJudgeresult("3");
  6153. zra.setJudgeresult_desc("次品");
  6154. }
  6155. else if(type.equals("4")){
  6156. zra.setJudgeresult("4");
  6157. zra.setJudgeresult_desc("废品");
  6158. }else if(type.equals("0")){
  6159. zra.setJudgeresult("0");
  6160. zra.setJudgeresult_desc("待判");
  6161. }
  6162. if(zra.getJudgeresult().equals("2")){
  6163. throw new Exception("综合判定不合格!");
  6164. }
  6165. judge_result = zra.getJudgeresult();
  6166. mapper.UpdateJugeResultB(zra);
  6167. //插入综合判定记录表
  6168. qju.setDesign_key(hashmap.get(0).get("DESIGN_KEY") == null ?"":hashmap.get(0).get("DESIGN_KEY").toString());
  6169. qju.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  6170. qju.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  6171. qju.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  6172. qju.setInspection_lot(hashmap.get(0).get("INSPECTION_LOT")==null?"":hashmap.get(0).get("INSPECTION_LOT").toString());
  6173. qju.setMaterial_no(material_no);
  6174. qju.setUtm_id(utm_id);
  6175. qju.setUtm_memo("");
  6176. qju.setUtm_result_code(zra.getJudgeresult());
  6177. qju.setUtm_result_desc(zra.getJudgeresult_desc());
  6178. qju.setCic_id(list1.get(0).get("CHEMID") == null?"":list1.get(0).get("CHEMID").toString());
  6179. qju.setCic_result_code(list1.get(0).get("CHEMRESULT")==null?"":list1.get(0).get("CHEMRESULT").toString());
  6180. qju.setCic_result_desc(list1.get(0).get("CHEMRESULT_DESC")==null?"":list1.get(0).get("CHEMRESULT_DESC").toString());
  6181. qju.setR_cic_id(list1.get(0).get("R_CHEMID") == null?"":list1.get(0).get("R_CHEMID").toString());
  6182. qju.setR_cic_result_code(list1.get(0).get("R_CHEMRESULT")==null?"":list1.get(0).get("R_CHEMRESULT").toString());
  6183. qju.setR_cic_result_desc(list1.get(0).get("R_CHEMRESULT_DESC")==null?"":list1.get(0).get("R_CHEMRESULT_DESC").toString());
  6184. qju.setPic_id(list1.get(0).get("PHYSID") == null?"":list1.get(0).get("PHYSID").toString());
  6185. qju.setPic_result_code(list1.get(0).get("PHYSRESULT")==null?"":list1.get(0).get("PHYSRESULT").toString());
  6186. qju.setPic_result_desc(list1.get(0).get("PHYSRESULT_DESC")==null?"":list1.get(0).get("PHYSRESULT_DESC").toString());
  6187. qju.setSic_id(list1.get(0).get("SIZEID") == null?"":list1.get(0).get("SIZEID").toString());
  6188. qju.setSic_result_code(list1.get(0).get("SIZERESULT")==null?"":list1.get(0).get("SIZERESULT").toString());
  6189. qju.setSic_result_desc(list1.get(0).get("SIZERESULT_DESC")==null?"":list1.get(0).get("SIZERESULT_DESC").toString());
  6190. qju.setDic_id(list1.get(0).get("SPYID")==null?"":list1.get(0).get("SPYID").toString());
  6191. qju.setDic_result_code(list1.get(0).get("SPYRESULT")==null?"":list1.get(0).get("SPYRESULT").toString());
  6192. qju.setDic_result_desc(list1.get(0).get("SPYRESULT_DESC")==null?"":list1.get(0).get("SPYRESULT_DESC").toString());
  6193. qju.setSfd_id(list1.get(0).get("SURFACEID")==null?"":list1.get(0).get("SURFACEID").toString());
  6194. qju.setSfd_result_code(list1.get(0).get("UD_SURFACE_RESULT")==null?"":list1.get(0).get("UD_SURFACE_RESULT").toString());
  6195. qju.setSfd_result_desc(list1.get(0).get("UD_SURFACE_RESULT_DESC")==null?"":list1.get(0).get("UD_SURFACE_RESULT_DESC").toString());
  6196. qju.setSfu_id(list1.get(0).get("SURFACEID")==null?"":list1.get(0).get("SURFACEID").toString());
  6197. qju.setSfu_result_code(list1.get(0).get("UP_SURFACE_RESULT")==null?"":list1.get(0).get("UP_SURFACE_RESULT").toString());
  6198. qju.setSfu_result_desc(list1.get(0).get("UP_SURFACE_RESULT_DESC")==null?"":list1.get(0).get("UP_SURFACE_RESULT_DESC").toString());
  6199. qju.setSfe_id(list1.get(0).get("SURFACEID")==null?"":list1.get(0).get("SURFACEID").toString());
  6200. qju.setSfe_result_code(list1.get(0).get("MARGINAL_RESULT")==null?"":list1.get(0).get("MARGINAL_RESULT").toString());
  6201. qju.setSfe_result_desc(list1.get(0).get("MARGINAL_RESULT_DESC")==null?"":list1.get(0).get("MARGINAL_RESULT_DESC").toString());
  6202. qju.setMst_id(list1.get(0).get("SURFACEID")==null?"":list1.get(0).get("SURFACEID").toString());
  6203. qju.setMst_result_code(list1.get(0).get("SURFACERESULT")==null?"":list1.get(0).get("SURFACERESULT").toString());
  6204. qju.setMst_result_desc(list1.get(0).get("SURFACERESULT_DESC")==null?"":list1.get(0).get("SURFACERESULT_DESC").toString());
  6205. qju.setFst_id(list1.get(0).get("PHYFSTSID")==null?"":list1.get(0).get("PHYFSTSID").toString());
  6206. qju.setFst_result_code(list1.get(0).get("PHYFSTSRESULT")==null?"":list1.get(0).get("PHYFSTSRESULT").toString());
  6207. qju.setFst_result_desc(list1.get(0).get("PHYFSTSRESULT_DESC")==null?"":list1.get(0).get("PHYFSTSRESULT_DESC").toString());
  6208. qju.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  6209. qju.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  6210. qju.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  6211. qju.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  6212. qju.setSteel_code(hashmap.get(0).get("STEEL_CODE")==null?"":hashmap.get(0).get("STEEL_CODE").toString());
  6213. qju.setSteel_name(hashmap.get(0).get("STEEL_NAME").toString());
  6214. qju.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  6215. qju.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  6216. qju.setJudge_name(username);
  6217. qju.setJudge_time(new Date());
  6218. qju.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  6219. qju.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  6220. mapper.insertQcmJudgeUltimate(qju);
  6221. String judgeresult = "";
  6222. if(zra.getJudgeresult().equals("1")){
  6223. judgeresult = "40140101";
  6224. }else if(zra.getJudgeresult().equals("3")){
  6225. if(zra.getSurfaceresult() != null && zra.getSurfaceresult().equals("3")){
  6226. judgeresult = "40140301";
  6227. }else{
  6228. judgeresult = "40140302";
  6229. }
  6230. }else if(zra.getJudgeresult().equals("4")){
  6231. judgeresult = "40140303";
  6232. }else if(zra.getJudgeresult().equals("0")){
  6233. judgeresult = "40140401";
  6234. }
  6235. String cj_result = "";
  6236. String steelname = hashmap.get(0).get("STEEL_NAME")==null?"":hashmap.get(0).get("STEEL_NAME").toString();
  6237. String phyid = list1.get(0).get("PHYSID")==null?"":list1.get(0).get("PHYSID").toString();
  6238. sql= "select max(t.steel_name) steel_name from qcm_judge_physical t where t.phy_id in (select phy_id from qcm_judge_physical_utm_d d where d.pic_id = '"+phyid+"')";
  6239. List<HashMap> liststeel = mapper.query(sql);
  6240. if(liststeel != null && liststeel.size() >0 && liststeel.get(0).get("STEEL_NAME")!=null){
  6241. steelname = liststeel.get(0).get("STEEL_NAME").toString();
  6242. }
  6243. judge_call(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString(),hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString(),hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString(),hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString(),hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString(),judgeresult,"","","",cj_result,material_no,username,hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString(),hashmap.get(0).get("HT_NO")==null?"":hashmap.get(0).get("HT_NO").toString(),utm_id,hashmap.get(0).get("DESIGN_KEY")==null?"":hashmap.get(0).get("DESIGN_KEY").toString(),steelname);
  6244. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  6245. qjog.setOperate_name(username);
  6246. qjog.setOperate_type("综合判定");
  6247. qjog.setParams(material_no);
  6248. qjog.setBatchno(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  6249. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  6250. qjog.setJudge_result(zra.getJudgeresult());
  6251. mapper.insertQcmJudgeOperateLog(qjog);
  6252. }
  6253. }else{
  6254. for(HashMap list:list2){
  6255. QcmJudgeUltimate qju=new QcmJudgeUltimate();
  6256. //获取判定记录号当天的最大值
  6257. Date now = new Date();
  6258. String opr_time = new SimpleDateFormat("yyyyMMddHHmmss").format(now); //操作时间
  6259. SimpleDateFormat sdf=new SimpleDateFormat("yyMMdd");
  6260. String date=sdf.format(now);
  6261. count=0;
  6262. sql ="select * from qcm_judge_ultimate where UTM_ID like 'ZJ"+date+"%' order by UTM_ID desc";
  6263. List<QcmJudgeUltimate> listUl=mapper.QcmJudgeUltimate(sql);
  6264. if (listUl!=null&&listUl.size()>0) {
  6265. String s=listUl.get(0).getUtm_id();
  6266. count=Integer.parseInt(s.substring(s.length()-4,s.length()));
  6267. }
  6268. count++;
  6269. String utm_id="ZJ"+sdf.format(now)+String.format("%04d",count);
  6270. //更新库存表综合判定结果
  6271. QcmJudgeCoilResult zra = new QcmJudgeCoilResult();
  6272. zra.setCoil_no(material_no);
  6273. zra.setJudgeid(utm_id);
  6274. if(type.equals("3")){
  6275. zra.setJudgeresult("3");
  6276. zra.setJudgeresult_desc("次品");
  6277. }
  6278. else if(type.equals("4")){
  6279. zra.setJudgeresult("4");
  6280. zra.setJudgeresult_desc("废品");
  6281. }
  6282. if(zra.getJudgeresult().equals("2")){
  6283. throw new Exception("综合判定不合格!");
  6284. }
  6285. judge_result = zra.getJudgeresult();
  6286. mapper.UpdateJugeResultJ(zra);
  6287. //插入综合判定记录表
  6288. qju.setDesign_key(hashmap.get(0).get("DESIGN_KEY") == null ?"":hashmap.get(0).get("DESIGN_KEY").toString());
  6289. qju.setHeat_no(hashmap.get(0).get("HEAT_NO")==null?"":hashmap.get(0).get("HEAT_NO").toString());
  6290. qju.setBatch_no(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  6291. qju.setBoard_no(hashmap.get(0).get("BOARD_NO")==null?"":hashmap.get(0).get("BOARD_NO").toString());
  6292. qju.setInspection_lot(hashmap.get(0).get("INSPECTION_LOT")==null ?"":hashmap.get(0).get("INSPECTION_LOT").toString());
  6293. qju.setMaterial_no(material_no);
  6294. qju.setUtm_id(utm_id);
  6295. qju.setUtm_memo("");
  6296. qju.setUtm_result_code(zra.getJudgeresult());
  6297. qju.setUtm_result_desc(zra.getJudgeresult_desc());
  6298. qju.setCic_id(list2.get(0).get("CHEMID") == null?"":list2.get(0).get("CHEMID").toString());
  6299. qju.setCic_result_code(list2.get(0).get("CHEMRESULT")==null?"":list2.get(0).get("CHEMRESULT").toString());
  6300. qju.setCic_result_desc(list2.get(0).get("CHEMRESULT_DESC")==null?"":list2.get(0).get("CHEMRESULT_DESC").toString());
  6301. qju.setR_cic_id(list2.get(0).get("R_CHEMID") == null?"":list2.get(0).get("R_CHEMID").toString());
  6302. qju.setR_cic_result_code(list2.get(0).get("R_CHEMRESULT")==null?"":list2.get(0).get("R_CHEMRESULT").toString());
  6303. qju.setR_cic_result_desc(list2.get(0).get("R_CHEMRESULT_DESC")==null?"":list2.get(0).get("R_CHEMRESULT_DESC").toString());
  6304. qju.setPic_id(list2.get(0).get("PHYSID") == null?"":list2.get(0).get("PHYSID").toString());
  6305. qju.setPic_result_code(list2.get(0).get("PHYSRESULT")==null?"":list2.get(0).get("PHYSRESULT").toString());
  6306. qju.setPic_result_desc(list2.get(0).get("PHYSRESULT_DESC")==null?"":list2.get(0).get("PHYSRESULT_DESC").toString());
  6307. qju.setSic_id(list2.get(0).get("SIZEID") == null?"":list2.get(0).get("SIZEID").toString());
  6308. qju.setSic_result_code(list2.get(0).get("SIZERESULT")==null?"":list2.get(0).get("SIZERESULT").toString());
  6309. qju.setSic_result_desc(list2.get(0).get("SIZERESULT_DESC")==null?"":list2.get(0).get("SIZERESULT_DESC").toString());
  6310. qju.setDic_id(list2.get(0).get("SPYID")==null?"":list2.get(0).get("SPYID").toString());
  6311. qju.setDic_result_code(list2.get(0).get("SPYRESULT")==null?"":list2.get(0).get("SPYRESULT").toString());
  6312. qju.setDic_result_desc(list2.get(0).get("SPYRESULT_DESC")==null?"":list2.get(0).get("SPYRESULT_DESC").toString());
  6313. qju.setSfd_id(list2.get(0).get("SURFACEID")==null?"":list2.get(0).get("SURFACEID").toString());
  6314. qju.setSfd_result_code(list2.get(0).get("UD_SURFACE_RESULT")==null?"":list2.get(0).get("UD_SURFACE_RESULT").toString());
  6315. qju.setSfd_result_desc(list2.get(0).get("UD_SURFACE_RESULT_DESC")==null?"":list2.get(0).get("UD_SURFACE_RESULT_DESC").toString());
  6316. qju.setSfu_id(list2.get(0).get("SURFACEID")==null?"":list2.get(0).get("SURFACEID").toString());
  6317. qju.setSfu_result_code(list2.get(0).get("UP_SURFACE_RESULT")==null?"":list2.get(0).get("UP_SURFACE_RESULT").toString());
  6318. qju.setSfu_result_desc(list2.get(0).get("UP_SURFACE_RESULT_DESC")==null?"":list2.get(0).get("UP_SURFACE_RESULT_DESC").toString());
  6319. qju.setSfe_id(list2.get(0).get("SURFACEID")==null?"":list2.get(0).get("SURFACEID").toString());
  6320. qju.setSfe_result_code(list2.get(0).get("MARGINAL_RESULT")==null?"":list2.get(0).get("MARGINAL_RESULT").toString());
  6321. qju.setSfe_result_desc(list2.get(0).get("MARGINAL_RESULT_DESC")==null?"":list2.get(0).get("MARGINAL_RESULT_DESC").toString());
  6322. qju.setMst_id(list2.get(0).get("SURFACEID")==null?"":list2.get(0).get("SURFACEID").toString());
  6323. qju.setMst_result_code(list2.get(0).get("SURFACERESULT")==null?"":list2.get(0).get("SURFACERESULT").toString());
  6324. qju.setMst_result_desc(list2.get(0).get("SURFACERESULT_DESC")==null?"":list2.get(0).get("SURFACERESULT_DESC").toString());
  6325. qju.setFst_id(list2.get(0).get("PHYFSTSID")==null?"":list2.get(0).get("PHYFSTSID").toString());
  6326. qju.setFst_result_code(list2.get(0).get("PHYFSTSRESULT")==null?"":list2.get(0).get("PHYFSTSRESULT").toString());
  6327. qju.setFst_result_desc(list2.get(0).get("PHYFSTSRESULT_DESC")==null?"":list2.get(0).get("PHYFSTSRESULT_DESC").toString());
  6328. qju.setPsc(hashmap.get(0).get("PSC")==null?"":hashmap.get(0).get("PSC").toString());
  6329. qju.setPsc_desc(hashmap.get(0).get("PSC_DESC")==null?"":hashmap.get(0).get("PSC_DESC").toString());
  6330. qju.setProd_code(hashmap.get(0).get("PROD_CODE")==null?"":hashmap.get(0).get("PROD_CODE").toString());
  6331. qju.setProd_name(hashmap.get(0).get("PROD_NAME")==null?"":hashmap.get(0).get("PROD_NAME").toString());
  6332. qju.setSteel_code(hashmap.get(0).get("STEEL_CODE")==null?"":hashmap.get(0).get("STEEL_CODE").toString());
  6333. qju.setSteel_name(hashmap.get(0).get("STEEL_NAME").toString());
  6334. qju.setStd_code(hashmap.get(0).get("STD_CODE")==null?"":hashmap.get(0).get("STD_CODE").toString());
  6335. qju.setStd_name(hashmap.get(0).get("STD_NAME")==null?"":hashmap.get(0).get("STD_NAME").toString());
  6336. qju.setJudge_name(username);
  6337. qju.setJudge_time(new Date());
  6338. qju.setTic_id(list2.get(0).get("TIC_ID")==null?"":list2.get(0).get("TIC_ID").toString());
  6339. qju.setTic_result_code(list2.get(0).get("TIC_RESULT")==null?"":list2.get(0).get("TIC_RESULT").toString());
  6340. qju.setTic_result_desc(list2.get(0).get("TIC_RESULT_DESC")==null?"":list2.get(0).get("TIC_RESULT_DESC").toString());
  6341. qju.setPline_code(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  6342. qju.setPline_name(hashmap.get(0).get("PLINE_NAME")==null?"":hashmap.get(0).get("PLINE_NAME").toString());
  6343. mapper.insertQcmJudgeUltimate(qju);
  6344. coiljudge_status_call(hashmap.get(0).get("PLINE_CODE").toString(), material_no, null, null, null, null, judge_result, null, null,"");
  6345. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  6346. qjog.setOperate_name(username);
  6347. qjog.setOperate_type("综合判定");
  6348. qjog.setParams(material_no);
  6349. qjog.setBatchno(hashmap.get(0).get("BATCHNO")==null?"":hashmap.get(0).get("BATCHNO").toString());
  6350. qjog.setProd_line(hashmap.get(0).get("PLINE_CODE")==null?"":hashmap.get(0).get("PLINE_CODE").toString());
  6351. qjog.setJudge_result(zra.getJudgeresult());
  6352. mapper.insertQcmJudgeOperateLog(qjog);
  6353. }
  6354. }
  6355. }else{
  6356. throw new Exception("未找到该检验号下的库存信息!");
  6357. }
  6358. //cro = creatUltimateResultByHand(material_no,username);//手动进行综合判定
  6359. }catch(Exception ex){
  6360. cro.setV_errCode(-1);
  6361. cro.setV_errMsg(ex.getMessage());
  6362. //SqlSession.rollback();
  6363. }
  6364. //SqlSession.close();
  6365. return cro;
  6366. }
  6367. /**
  6368. * 查询物料明细信息 根据物料号 需增加炼钢牌号
  6369. * @return
  6370. */
  6371. /*@SuppressWarnings("rawtypes")
  6372. public List<HashMap> doQueryMaterialInfoZhb(String material_no) {
  6373. String swhere = "";
  6374. String swhere1 = "";
  6375. if (!SqlJoint.IsNullOrSpace(material_no)) { //产品序号
  6376. swhere += " and material_no in "+material_no+"";
  6377. }
  6378. String sql = "select t1.* from (select C2N@xgcx(INSTORAGECLASS) INSTORAGECLASS,C2N@xgcx(PRODUCECLASS) PRODUCECLASS,'' ht_no, 'HB1' PLINE_CODE,C2N@xgcx('4001HB1') PLINE_NAME,STOVENO HEAT_NO,to_char((SELECT substr(MAX(BILLETID),1,12)||'0' FROM zyhb_plandetailofplate@xgcx where MOTHERSLAB = MOTHERBOARDNUMBER)) BOARD_NO, a.ROLLNUMBER batchno, a.PLANNUMBER plan_no, a.BILLETID material_no, "
  6379. + " case when allotorderform is null then planorderform else allotorderform end design_key,planorderform PLANORDERNO,allotorderform ORDERNO, "
  6380. + " PLY thick, WIDTH, LENGTH,THEORYWEIGHT weight, (select name_ from scm_base_info@xgcx where id_ = CUTSIDESTATE) CUTSIDESTATE, "
  6381. + " (select name_ from scm_base_info@xgcx where id_ = ROLE) FIXSIZE, PRODUCETIME, b.sizeid,(select BIGSHOPSIGN from kch_storagelist@xgcx "
  6382. + " where BILLETID = (select BILLETID from zyhb_planofmotherplate@xgcx where MOTHERPLATEID = A.MOTHERBOARDNUMBER)) grade_code, "
  6383. + " (select BIGSHOPSIGN from kch_storagelist@xgcx where BILLETID = (select BILLETID from zyhb_planofmotherplate@xgcx "
  6384. + " where MOTHERPLATEID = A.MOTHERBOARDNUMBER)) grade_name,b.BILLETID_jy INSPECTION_LOT from kch_turnofflist@xgcx a "
  6385. + " left join zj_result_all@xgcx b on a.BILLETID = b.BILLETID where 1=1 "+swhere1+" )T1 left join sel_pactdetail@xgcx t2 on t1.design_key = t2.ORDERNO where 1=1 "+swhere+" "
  6386. + " union all "
  6387. + " select t1.*, t2.STEELCODE steel_code, C2N@xgcx(t2.STEELCODE)steel_name , t2.USEDSTAND std_code, C2N@xgcx(t2.USEDSTAND) std_name, "
  6388. + " t2.PURPOSEID prod_code, C2N@xgcx(t2.PURPOSEID) prod_name,t2.PSRNO psc,t2.DEV_SPEC_CD psc_desc,psel_get_standroll@XGCX(t2.STANDROLLER) DELIVERY_STATE_DESC from (select C2N@xgcx(INCLASSTEAM),C2N@xgcx(PCLASSTEAM), '' ht_no, 'ZB1' PLINE_CODE,C2N@xgcx('4001ZB1') PLINE_NAME,a.STOVENO HEAT_NO,to_char((SELECT substr(MAX(BILLETID),1,12)||'0' FROM mb_plandetailofplate@xgcx where MOTHERPLATEID = MOTHERBOARDNUMBER)) BOARD_NO,ROLLNUMBER batchno, PLANNO plan_no, a.BILLETID material_no, case when orderno is null then planorderno else orderno end DESIGN_KEY, "
  6389. + " A.PLANORDERNO,A.ORDERNO,a.PLY thick, a.WIDTH, "
  6390. + " a.LENGTH, a.THEORYWEIGHT weight, (select name_ from scm_base_info@xgcx where id_ = CUTSIDESTATE) CUTSIDESTATE, (select name_ from scm_base_info@xgcx where id_ = RuLE) FIXSIZE, "
  6391. + " PTIME PRODUCETIME, b.sizeid,(select BIGSHOPSIGN from kcz_storagelist@xgcx where BILLETID = (select BILLETID "
  6392. + " from mb_planofmotherplate@xgcx where MOTHERPLATEID = A.MOTHERBOARDNUMBER)) GRADE_CODE, (select BIGSHOPSIGN "
  6393. + " from kcz_storagelist@xgcx where BILLETID = (select BILLETID from mb_planofmotherplate@xgcx "
  6394. + " where MOTHERPLATEID = A.MOTHERBOARDNUMBER)) GRADE_NAME,b.BILLETID_jy INSPECTION_LOT from kcz_turnofflist@xgcx a left join zj_result_all@xgcx b on a.BILLETID = b.BILLETID "
  6395. + " where 1=1 "+swhere1+")T1 left join sel_pactdetail@xgcx t2 on t1.design_key = t2.ORDERNO where 1=1 "+swhere+" ";
  6396. try {
  6397. System.out.print(sql);
  6398. List<HashMap> list = mapper.query(sql);
  6399. return list;
  6400. } catch (Exception ex) {
  6401. ex.printStackTrace();
  6402. }
  6403. return null;
  6404. }*/
  6405. public static String post1(String json,String URL) {
  6406. HttpClient client = new DefaultHttpClient();
  6407. HttpPost post = new HttpPost(URL);
  6408. post.setHeader("Content-Type", "application/x-www-form-urlencoded");
  6409. post.addHeader("Authorization", "Basic YWRtaW46");
  6410. String result = "";
  6411. try {
  6412. StringEntity s = new StringEntity(json, "utf-8");
  6413. s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
  6414. "application/json"));
  6415. post.setEntity(s);
  6416. // 发送请求
  6417. HttpResponse httpResponse = client.execute(post);
  6418. // 获取响应输入流
  6419. InputStream inStream = httpResponse.getEntity().getContent();
  6420. BufferedReader reader = new BufferedReader(new InputStreamReader(
  6421. inStream, "utf-8"));
  6422. StringBuilder strber = new StringBuilder();
  6423. String line = null;
  6424. while ((line = reader.readLine()) != null)
  6425. strber.append(line + "\n");
  6426. inStream.close();
  6427. result = strber.toString();
  6428. System.out.println(result);
  6429. if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
  6430. System.out.println("请求服务器成功,做相应处理");
  6431. } else {
  6432. System.out.println("请求服务端失败");
  6433. }
  6434. } catch (Exception e) {
  6435. System.out.println("请求异常");
  6436. throw new RuntimeException(e);
  6437. }
  6438. return result;
  6439. }
  6440. public CoreReturnObject ZHflawDesc(String Entrust,String surface_id) {
  6441. try{
  6442. String[] ja=Entrust.split(",");
  6443. String msInfo="";
  6444. if (ja!=null && ja.length>0) {
  6445. for (int i = 0; i < ja.length; i++) {
  6446. String sp = ja[i];
  6447. if ("".equals(msInfo)) {
  6448. msInfo="'"+sp+"'";
  6449. }else{
  6450. msInfo=msInfo+"'"+sp+"'";
  6451. }
  6452. if (i !=ja.length-1) {
  6453. msInfo=msInfo+",";
  6454. }
  6455. }
  6456. }
  6457. //排除正在做的项目
  6458. String sql ="SELECT FLAW_DESC FROM QCM_JUDGE_SURFACE_FLAW T WHERE T.SURFACE_ID = '"+surface_id+"' "
  6459. +" and t.flaw_desc not in ("+msInfo+") GROUP BY FLAW_DESC ";
  6460. List<HashMap> list= mapper.query(sql.toString());
  6461. if(list!=null && list.size()>=1){
  6462. for (HashMap hashMap : list) {
  6463. String FLAW_DESC = hashMap.get("FLAW_DESC").toString();
  6464. sql ="SELECT * FROM QCM_JUDGE_SURFACE_FLAW T WHERE T.SURFACE_ID = '"+surface_id+"' "
  6465. +" and t.flaw_desc = '"+FLAW_DESC+"' order by t.create_time desc ";
  6466. List<HashMap> li= mapper.query(sql.toString());
  6467. if(li!=null && li.size()>=1){
  6468. String IS_REPAIR = li.get(0).get("IS_REPAIR").toString();
  6469. if("0".equals(IS_REPAIR)){
  6470. cro.setV_errCode(-1);
  6471. cro.setV_errMsg("不可选择检验结果为合格!["+FLAW_DESC+"]待修复!");
  6472. SqlSession.close();
  6473. return cro;
  6474. }else if("2".equals(IS_REPAIR)){
  6475. cro.setV_errCode(-1);
  6476. cro.setV_errMsg("不可选择检验结果为合格!["+FLAW_DESC+"]未冷矫!");
  6477. SqlSession.close();
  6478. return cro;
  6479. }
  6480. }
  6481. }
  6482. }
  6483. }catch(Exception ex){
  6484. cro.setV_errCode(-1);
  6485. cro.setV_errMsg("获取出错"+ex.getMessage());
  6486. SqlSession.rollback();
  6487. SqlSession.close();
  6488. return cro;
  6489. }
  6490. cro.setV_errCode(0);
  6491. SqlSession.close();
  6492. return cro;
  6493. }
  6494. }