909bb74a54590974c178bee428bdb069da03d740.svn-base 241 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109
  1. package QCM.JHY01.JHY0101;
  2. import java.math.BigDecimal;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.text.SimpleDateFormat;
  6. import java.util.ArrayList;
  7. import java.util.Date;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.TreeSet;
  11. import java.util.UUID;
  12. import org.apache.commons.lang.StringUtils;
  13. import org.apache.ibatis.session.SqlSession;
  14. import org.apache.log4j.Logger;
  15. import com.alibaba.fastjson.JSON;
  16. import com.alibaba.fastjson.JSONArray;
  17. import com.alibaba.fastjson.JSONObject;
  18. import CoreFS.SA01.CoreIComponent;
  19. import CoreFS.SA06.CoreReturnObject;
  20. import QCM.COMMUNAL.VO.QcmJudgeOperateLog;
  21. import QCM.JHY01.JHY0102.UpdateInfo;
  22. import QCM.JHY01.VO.JhyQltyModel;
  23. import QCM.JHY01.VO.JhyQuoteModel;
  24. import QCM.JHY01.VO.JhySampleDItemModel;
  25. import QCM.JHY01.VO.JhySampleDModel;
  26. import QCM.JHY01.VO.JhySampleMMdoel;
  27. import QCM.JHY01.VO.JhySampleOrdMdoel;
  28. import QCM.JHY01.VO.QcmJhyPhyresult;
  29. import QCM.JHY01.VO.QcmJhySampleConsignDItem;
  30. import QCM.JHY01.VO.listItem;
  31. public class AutoSample extends CoreIComponent {
  32. CoreReturnObject cro = new CoreReturnObject();
  33. ResultSet rs = null;
  34. SqlSession SqlSession = QCM.COMMUNAL.SqlSessionBuilder.openSqlSession();
  35. QCM.COMMUNAL.OrderSqMapper mapper = SqlSession.getMapper(QCM.COMMUNAL.OrderSqMapper.class);
  36. Logger logger = Logger.getLogger(this.getClass().getName());
  37. public String specimenNoDel="";//取样编号
  38. public String specimenNoVHC="";//取样编号夏比V型缺口冲击
  39. public BigDecimal seqDel;//序号
  40. public List<QcmJhyPhyresult> QcmjhyResults=new ArrayList<QcmJhyPhyresult>();
  41. public String memoRg = "";//是否人工委托
  42. public String memoXngs="false1";//人工委托性能改善
  43. public String memoRg2="false1";//人工委托标识
  44. public String memoRg3="";//热处理标识
  45. public String memocreateName = "系统自动";//人工创建人
  46. public String memoDesignKey = "";//人工按订单号生成委托
  47. HashMap<String, String> Quotehm =new HashMap<String, String>();//人工19引用
  48. TreeSet<String> phyItemSPNO=new TreeSet<String>();
  49. /**
  50. * 人工生成检验委托
  51. */
  52. public CoreReturnObject doGenerationSampleInfo(String materialInfo,String plineName){
  53. try{
  54. String performance = "0"; //异常处置界面 性能改善
  55. //同一个轧批、同一个订单的生成同一个委托
  56. JSONObject rtjo = new JSONObject();
  57. if (materialInfo==null || "".equals(materialInfo)) {
  58. cro.setV_errCode(-1);
  59. cro.setV_errMsg("请传入参数!");
  60. return cro;
  61. }
  62. JSONArray jsonArray = JSON.parseArray(materialInfo);
  63. if (jsonArray==null || jsonArray.size()<1) {
  64. cro.setV_errCode(-1);
  65. cro.setV_errMsg("请传入参数!");
  66. return cro;
  67. }
  68. if(StringUtils.isBlank(plineName)){
  69. cro.setV_errCode(-1);
  70. cro.setV_errMsg("产线不能为空!");
  71. return cro;
  72. }
  73. String msg="";
  74. //验证数据是否完整,是否同一一个轧批的订单
  75. TreeSet<String> batchs=new TreeSet<String>();
  76. TreeSet<String> batchs1=new TreeSet<String>();
  77. TreeSet<String> batchs2=new TreeSet<String>();
  78. for (int i = 0; i < jsonArray.size(); i++) {
  79. JSONObject json=jsonArray.getJSONObject(i);
  80. if(!StringUtils.isBlank(json.getString("MEMO")) && json.getString("MEMO").equals("性能改善")){
  81. memoXngs = "true1";
  82. }
  83. //轧批号
  84. msg=checkField("BATCH_NO","轧批号",json);
  85. if (!"".equals(msg)) {
  86. cro.setV_errCode(-1);
  87. cro.setV_errMsg("轧批号不能为空!");
  88. return cro;
  89. }
  90. batchs.add(json.getString("BATCH_NO"));
  91. //订单号
  92. msg=checkField("DESIGN_KEY","订单号",json);
  93. if (!"".equals(msg)) {
  94. cro.setV_errCode(-1);
  95. cro.setV_errMsg("订单号不能为空!");
  96. return cro;
  97. }
  98. batchs1.add(json.getString("DESIGN_KEY"));
  99. //产品码
  100. msg=checkField("PSC","产品码",json);
  101. if (!"".equals(msg)) {
  102. cro.setV_errCode(-1);
  103. cro.setV_errMsg("产品码不能为空!");
  104. return cro;
  105. }
  106. batchs2.add(json.getString("PSC"));
  107. }
  108. /*if (batchs.size()!=1 || batchs1.size()!=1 || batchs2.size()!=1) {
  109. cro.setV_errCode(-1);
  110. cro.setV_errMsg("不是同一个批次的产品序号不允许同时组检验批![同一订单号/轧批号/产品码]");
  111. return cro;
  112. }*/
  113. if(batchs.size()>=11){
  114. cro.setV_errCode(-1);
  115. cro.setV_errMsg("一次性只能选择10条数据");
  116. return cro;
  117. }
  118. //循环执行每一条数据 判断是否未发送 未发送可以委托
  119. /* String rentrust = returnEntrust(jsonArray,plineName);//0 未发送删除原来的再委托 1已发送 不用删除直接委托 2不满足委托条件
  120. if (rentrust.equals("2")) {
  121. cro.setV_errCode(-1);
  122. cro.setV_errMsg("不满足委托条件!【还未发送的委托或者已发送且没有综合判定且没有单项异常锁定才可人工委托】");
  123. return cro;
  124. }
  125. //返回0未发送删除原来的再委托
  126. if(rentrust.equals("0")){
  127. //delEntrust(jsonArray);
  128. }*/
  129. List<String> rateCodeList = new ArrayList<String>();
  130. //循环执行每一条数据
  131. for(int i=0; i < jsonArray.size();i++){
  132. SqlSession = QCM.COMMUNAL.SqlSessionBuilder.openSqlSession();
  133. mapper = SqlSession.getMapper(QCM.COMMUNAL.OrderSqMapper.class);
  134. String trueno="0";//判断这次循环是否执行
  135. String plineCodeli="";//产线
  136. ResultSet results=null;
  137. JSONObject jobject= null;
  138. jobject=jsonArray.getJSONObject(i);
  139. if(plineName.equals("热轧线")){
  140. plineCodeli="RZ1";
  141. }else if (plineName.equals("连退线")){
  142. plineCodeli="LT1";
  143. }else if (plineName.equals("厚板线")){
  144. plineCodeli="HB1";
  145. }else if (plineName.equals("中板线")){
  146. plineCodeli="ZB1";
  147. }else if (plineName.equals("高棒线")){
  148. plineCodeli="GX1";
  149. String artificialMemo=" select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r "
  150. +" where t.smp_no = r.smp_no "
  151. +" and r.design_key = '"+jobject.get("DESIGN_KEY")+"' "
  152. +" and r.steel_code = '"+jobject.get("GRADE_CODE")+"' "
  153. +" and to_char(r.THICK, 'fm990.099') = to_char('"+jobject.get("THICK")+"', 'fm990.099') "
  154. +" and t.batch_no = '"+jobject.get("BATCH_NO")+"' ";
  155. List<HashMap> hmMemo = mapper.query(artificialMemo.toString());
  156. if(hmMemo!=null && hmMemo.size()>=1){
  157. cro.setV_errCode(-1);
  158. cro.setV_errMsg("该轧批号已生成委托请核实!");
  159. return cro;
  160. }
  161. }
  162. //根据轧批号生成检验号
  163. String inspection_lot=(String) jobject.get("BATCH_NO");
  164. String materialNo = "";
  165. if(plineName.equals("热轧线") || plineName.equals("连退线")){
  166. if(plineName.equals("热轧线")){
  167. plineName="热轧";
  168. //判断是否有按批送样
  169. String artificialMemo="select * from qcm_jhy_sample_consign_d t where t.artificial_memo like '%按批取样%' and t.batch_no = '"+jobject.get("BATCH_NO")+"' ";
  170. List<HashMap> hmMemo = mapper.query(artificialMemo.toString());
  171. if(hmMemo!=null && hmMemo.size()>=1){
  172. cro.setV_errCode(-1);
  173. cro.setV_errMsg("生成委托失败!该轧批已【按批取样】不可再次生成!"+hmMemo.get(0).get("ARTIFICIAL_MEMO").toString());
  174. return cro;
  175. }
  176. //判断是否已经综判了
  177. String rzsql="select t.* from qcm_judge_coil_result t where t.COIL_NO = '"+jobject.get("MATERIAL_NO")+"' and JUDGERESULT <> '0' ";
  178. List<HashMap> hmCnum = mapper.query(rzsql.toString());
  179. if(hmCnum!=null && hmCnum.size()>=1){
  180. cro.setV_errCode(-1);
  181. cro.setV_errMsg("生成委托失败!该子板已综合判定不能生成委托["+jobject.get("MATERIAL_NO")+"]");
  182. return cro;
  183. }
  184. //判断当前子板号是否已生成过委托
  185. rzsql="";
  186. rzsql="select t.* from QCM_JHY_SAMPLE_CONSIGN_D t where t.MATERIAL_NO = '"+jobject.get("MATERIAL_NO")+"' and STATUS in ('0','2','7') and RZ_OLD_SAMPL_NO is null and rownum=1 ";
  187. hmCnum.clear();
  188. hmCnum = mapper.query(rzsql.toString());
  189. if(hmCnum!=null && hmCnum.size()>=1){
  190. String status="";
  191. if(hmCnum.get(0).get("STATUS").equals("0")){
  192. status="未发送";
  193. }else if(hmCnum.get(0).get("STATUS").equals("2")){
  194. status="已接收";
  195. }else if(hmCnum.get(0).get("STATUS").equals("7")){
  196. status="确认接收样";
  197. }
  198. cro.setV_errCode(-1);
  199. cro.setV_errMsg("生成委托失败!该子板已生成委托["+jobject.get("MATERIAL_NO")+"]!当前状态为["+status+"]");
  200. return cro;
  201. }
  202. //判断当前子板号是否已合格
  203. rzsql="";
  204. rzsql="select t.* from qcm_jhy_sample_consign_d t, qcm_jhy_sample_r_ord r "
  205. +" where t.smp_no = r.smp_no and t.status='3'"
  206. +" and t.material_no = '"+jobject.get("MATERIAL_NO")+"' "
  207. +" and r.JUDGE_RESULT_CODE = '1' "
  208. +" order by t.create_time desc ";
  209. hmCnum.clear();
  210. hmCnum = mapper.query(rzsql.toString());
  211. if(hmCnum!=null && hmCnum.size()>=1){
  212. cro.setV_errCode(-1);
  213. cro.setV_errMsg("生成委托失败!该子板已生成委托["+jobject.get("MATERIAL_NO")+"]!并且已材质判定为合格无需再生成委托,请核实数据");
  214. return cro;
  215. }
  216. }else{
  217. plineName="连退";
  218. }
  219. materialNo = (String)jobject.get("INSPECTION_LOT");//检验号
  220. }else{
  221. materialNo = (String)jobject.get("MATERIAL_NO");
  222. }
  223. String lotnum ="";
  224. String dsql = "select count(1) CNUM from QCM_JHY_SAMPLE_CONSIGN_D t "
  225. + " where t.batch_no = '"+jobject.get("BATCH_NO")+"' and t.pline_code='"+plineCodeli+"' ";
  226. List<HashMap> hmCnum = mapper.query(dsql.toString());
  227. BigDecimal bigd = (BigDecimal) hmCnum.get(0).get("CNUM");
  228. String bigd2 = bigd.toString();
  229. Integer bigd3 = Integer.parseInt(bigd2);
  230. if (bigd3==0) {
  231. lotnum ="";
  232. }else{
  233. String sqlLOT = "select max(to_number(substr(inspection_lot,-3))) INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  234. + " where t.batch_no = '"+jobject.get("BATCH_NO")+"' and t.pline_code='"+plineCodeli+"' ";
  235. List<HashMap> hmap = mapper.query(sqlLOT.toString());
  236. BigDecimal hmap1 = (BigDecimal) hmap.get(0).get("INSPECTION_LOT");
  237. String hmap2 = hmap1.toString();
  238. Integer hmap3 = Integer.parseInt(hmap2);
  239. lotnum =hmap3.toString();
  240. }
  241. if (lotnum ==null || "".equals(lotnum)) {
  242. if(plineName.equals("热轧")){
  243. inspection_lot=inspection_lot+ String.format("%05d", 1);//轧批号+0001
  244. }else if(plineName.equals("连退")){
  245. inspection_lot=inspection_lot+ String.format("%03d", 1);//轧批号+0001
  246. }else{
  247. inspection_lot=inspection_lot+ String.format("%04d", 1);//轧批号+0001
  248. }
  249. }else{
  250. Integer INSPECTION_LOTS=Integer.parseInt(lotnum);
  251. INSPECTION_LOTS++;
  252. if(plineName.equals("热轧")){
  253. inspection_lot=inspection_lot+ String.format("%05d", INSPECTION_LOTS);
  254. }else if(plineName.equals("连退")){
  255. inspection_lot=inspection_lot+ String.format("%03d", INSPECTION_LOTS);//轧批号+0001
  256. }else{
  257. inspection_lot=inspection_lot+ String.format("%04d", INSPECTION_LOTS);
  258. }
  259. }
  260. String processNozb="";
  261. //一个订单多个认证机构 用同一个检验号
  262. if(plineCodeli.equals("HB1") || plineCodeli.equals("ZB1")){
  263. processNozb=getRclState(plineCodeli,jobject.get("MATERIAL_NO").toString());
  264. if(memoXngs.equals("false1")){
  265. String sqlLOT = "select t.* from Qcm_Jhy_Sample_r_Ord t,QCM_JHY_SAMPLE_CONSIGN_D d "
  266. + " where t.SMP_NO=d.SMP_NO and t.batch_no = '"+jobject.get("BATCH_NO")+"' and t.pline_code='"+plineCodeli+"'"
  267. + " and t.DESIGN_KEY = '"+jobject.get("DESIGN_KEY")+"' and t.STEEL_CODE = '"+jobject.get("GRADE_CODE")+"'"
  268. + " and to_char(t.THICK, 'fm990.099') = to_char('"+jobject.get("THICK")+"', 'fm990.099') and d.PROCESS_NOS='"+processNozb+"' ";
  269. List<HashMap> hmap = mapper.query(sqlLOT.toString());
  270. if(hmap!=null && hmap.size()>=1){
  271. if(hmap.get(0).get("INSPECTION_LOT")!=null && !"".equals(hmap.get(0).get("INSPECTION_LOT"))){
  272. inspection_lot = hmap.get(0).get("INSPECTION_LOT").toString();
  273. }
  274. }
  275. }
  276. }
  277. try {
  278. String logmemo ="";
  279. if(jobject.get("PLINE_CODE").equals("RZ1") || jobject.get("PLINE_CODE").equals("LT1")){
  280. logmemo +=jobject.get("CASTR").toString();
  281. if(jobject.get("CASTR").toString().contains("按批取样")){
  282. jobject.put("ABATCHLOG", "1");
  283. }else{
  284. jobject.put("ABATCHLOG", "0");
  285. }
  286. }else if(jobject.get("PLINE_CODE").equals("HB1") || jobject.get("PLINE_CODE").equals("ZB1")){
  287. logmemo +="热处理号:"+processNozb+",";
  288. }
  289. logmemo += jobject.get("BATCH_NO").toString()+','+jobject.get("DESIGN_KEY").toString()+','+
  290. jobject.get("GRADE_CODE").toString()+','+jobject.get("THICK").toString()+','+
  291. jobject.get("MATERIAL_NO")+','+inspection_lot;
  292. QcmJudgeOperateLog qjog = new QcmJudgeOperateLog();
  293. qjog.setOperate_name(jobject.get("USER_NAME").toString());
  294. qjog.setBatchno(jobject.get("BATCH_NO") == null ?"":jobject.get("BATCH_NO").toString());
  295. qjog.setOperate_type("人工委托");
  296. qjog.setParams(jobject.get("MATERIAL_NO") == null ?"":jobject.get("MATERIAL_NO").toString());
  297. qjog.setProd_line(jobject.get("PLINE_CODE") == null ?"":jobject.get("PLINE_CODE").toString());
  298. qjog.setMemo(logmemo);
  299. mapper.insertQcmJudgeOperateLog(qjog);
  300. JSONArray array = new JSONArray();
  301. jobject.put("INSPECTION_LOT", inspection_lot);
  302. jobject.put("PSC", (String)jobject.get("PSC"));
  303. if(jobject.get("PLINE_CODE").equals("RZ1") || jobject.get("PLINE_CODE").equals("LT1")){
  304. jobject.put("MEMORG", "人工委托"+jobject.get("USER_NAME")+':'+jobject.get("CASTR").toString());
  305. }else{
  306. jobject.put("MEMORG", "人工委托"+jobject.get("USER_NAME"));
  307. }
  308. memocreateName = (String) jobject.get("USER_NAME");//人工创建人
  309. array.add(jobject);
  310. memoRg2 = "true1";
  311. // System.out.println(array.toString());
  312. //生成委托 成功返回1
  313. msg=autoGenerationSampleInfo(array);//调用委托
  314. if(msg.equals("100")){
  315. SqlSession.rollback();
  316. cro.setV_errCode(-1);
  317. cro.setV_errMsg("生成委托失败!该子板已有生成不可重复生成委托["+jobject.get("MATERIAL_NO")+"]");
  318. return cro;
  319. }else if (!"1".equals(msg)) {
  320. memoRg2 = "false1";
  321. memoRg = "";
  322. memoXngs="false1";
  323. memocreateName = "系统自动";
  324. SqlSession.rollback();
  325. cro.setV_errCode(-1);
  326. cro.setV_errMsg("生成委托失败!["+msg+"]");
  327. return cro;
  328. }
  329. memoRg2 = "false1";
  330. memoRg = "";
  331. memoXngs="false1";
  332. memocreateName = "系统自动";
  333. } catch (Exception e) {
  334. e.printStackTrace();
  335. SqlSession.rollback();
  336. cro.setV_errCode(-1);
  337. cro.setV_errMsg("生成委托失败!["+e.getMessage()+"]");
  338. return cro;
  339. }
  340. String getDesignKeyRZ = jobject.get("DESIGN_KEY").toString().substring(0, 2);
  341. StringBuffer sqlucomm2 = new StringBuffer();
  342. //修改库存信息、清空物料判定结果!
  343. if(msg.equals("1")){
  344. if(plineName.equals("高棒线")){
  345. /*sqlucomm2.append(" update KCX_TURNOFFLIST@xgcx ");
  346. sqlucomm2.append(" set BILLETID_SY ='"+inspection_lot+"' ");
  347. sqlucomm2.append(" where BILLETID = '"+(String)jobject.get("MATERIAL_NO")+"' ");*/
  348. /* sqlucomm2.append(" update zj_result_all@xgcx ");
  349. sqlucomm2.append(" set BILLETID_JY ='"+inspection_lot+"' ");
  350. sqlucomm2.append(" where BILLETID = '"+(String)jobject.get("MATERIAL_NO")+"' ");
  351. try {
  352. cro = this.getDao("testDao").ExcuteNonQuery(sqlucomm2.toString());
  353. } catch (SQLException e) {
  354. cro.setV_errCode(-1);
  355. cro.setV_errMsg("下委托更新高棒线失败!");
  356. e.printStackTrace();
  357. }*/
  358. }else if(plineName.equals("热轧")&& !getDesignKeyRZ.equals("39")&& !getDesignKeyRZ.equals("49")&& !getDesignKeyRZ.equals("59")){
  359. StringBuffer sqlList = new StringBuffer();
  360. StringBuffer sqlLists = new StringBuffer();
  361. if(jobject.get("CASTR").toString().contains("按批取样")){
  362. sqlList.append(" update tbh02_coil_comm ");
  363. sqlList.append(" set SAMPL_NO ='"+inspection_lot+"' ");
  364. sqlList.append(" where OLD_SAMPL_NO like '"+jobject.get("BATCH_NO")+"%' ");
  365. sqlLists.append(" update qcm_judge_coil_result ");
  366. sqlLists.append(" set PHYSRESULT = '0',PHYSRESULT_DESC='待判', ");
  367. sqlLists.append(" inspection_lot = '"+inspection_lot+"' where coil_no like '"+jobject.get("BATCH_NO")+"%' ");
  368. /* sqlList.append(" update tbh02_coil_comm ");
  369. sqlList.append(" set SAMPL_NO ='"+inspection_lot+"' ");
  370. sqlList.append(" where OLD_SAMPL_NO like '"+jobject.get("BATCH_NO")+"%' and ORD_NO='W322023101042' ");
  371. sqlLists.append(" update qcm_judge_coil_result ");
  372. sqlLists.append(" set PHYSRESULT = '0',PHYSRESULT_DESC='待判', ");
  373. sqlLists.append(" inspection_lot = '"+inspection_lot+"' where coil_no like '"+jobject.get("BATCH_NO")+"%' and COIL_NO in ('R23053098A010','R23053098A020') ");*/
  374. // 记录组批区间
  375. String sqlmixRoll = "update Qcm_Judge_Operate_Log l "
  376. +" set l.memo = l.memo || ',' || ( "
  377. +" select t.MIXROLL from tbf02_spec_mill t,tbh02_coil_comm c where t.COIL_NO=c.COIL_NO "
  378. +" and c.OLD_SAMPL_NO like '"+jobject.get("BATCH_NO")+"%' and t.MIXROLL is not null and rownum=1 ) "
  379. +" where l.operate_type = '人工委托' and l.PARAMS = '"+jobject.get("MATERIAL_NO")+"' AND l.prod_line ='RZ1' ";
  380. this.getDao("testDao").ExcuteNonQuery(sqlmixRoll.toString());
  381. //清除组批区间
  382. String sqlStr="update tbf02_spec_mill t "
  383. + " set MIXROLL='' "
  384. + " where t.COIL_NO in ( "
  385. + " select COIL_NO from tbh02_coil_comm c where c.OLD_SAMPL_NO like '"+jobject.get("BATCH_NO").toString()+"%' "
  386. + " ) ";
  387. this.getDao("testDao").ExcuteNonQuery(sqlStr.toString());
  388. //把热轧还没有发送的委托置成废委托:6
  389. String SqlD="update QCM_JHY_SAMPLE_CONSIGN_D T set T.STATUS = '6' "
  390. + " where T.BATCH_NO = '"+jobject.get("BATCH_NO")+"' AND T.PLINE_CODE = 'RZ1' AND T.STATUS='0' and t.INSPECTION_LOT <> '"+inspection_lot+"' ";
  391. this.getDao("testDao").ExcuteNonQuery(SqlD.toString());
  392. }else{
  393. //按子板
  394. sqlList.append(" update tbh02_coil_comm ");
  395. sqlList.append(" set SAMPL_NO ='"+inspection_lot+"' ");
  396. sqlList.append(" where OLD_SAMPL_NO = '"+jobject.get("MATERIAL_NO")+"' ");
  397. sqlLists.append(" update qcm_judge_coil_result ");
  398. sqlLists.append(" set PHYSRESULT = '0',PHYSRESULT_DESC='待判', ");
  399. sqlLists.append(" inspection_lot = '"+inspection_lot+"' where coil_no = '"+jobject.get("MATERIAL_NO")+"' ");//SCAN_FLAG = 'Y'
  400. // 记录组批区间
  401. String sqlmixRoll = "update Qcm_Judge_Operate_Log l "
  402. +" set l.memo = l.memo || ',' || ( "
  403. +" select t.MIXROLL from tbf02_spec_mill t,tbh02_coil_comm c where t.COIL_NO=c.COIL_NO "
  404. +" and c.OLD_SAMPL_NO like '"+jobject.get("BATCH_NO")+"%' and t.MIXROLL is not null and rownum=1 ) "
  405. +" where l.operate_type = '人工委托' and l.PARAMS = '"+jobject.get("MATERIAL_NO")+"' AND l.prod_line ='RZ1' ";
  406. this.getDao("testDao").ExcuteNonQuery(sqlmixRoll.toString());
  407. //清除组批区间
  408. String sqlStr="update tbf02_spec_mill t "
  409. + " set MIXROLL='' "
  410. + " where t.COIL_NO in ( "
  411. + " select COIL_NO from tbh02_coil_comm c where c.OLD_SAMPL_NO = '"+jobject.get("MATERIAL_NO")+"' "
  412. + " ) ";
  413. this.getDao("testDao").ExcuteNonQuery(sqlStr.toString());
  414. //防止不合格直接按子板取样人工,异常处理解锁
  415. String loksql = "select count(1) CNUM from qcm_judge_locking t where t.MATERIAL_NO = '"+jobject.get("MATERIAL_NO")+"' and unlock_type_code is null and lock_type_code = 'P' ";
  416. ResultSet rs=this.getDao("testDao").ExceuteQueryForResultSet(loksql.toString());
  417. if (rs.next()) {
  418. String count=rs.getString("CNUM");
  419. if (!count.equals("0")) {
  420. String lokst="update qcm_judge_locking a set a.unlock_type_code = '9',a.unlock_type_desc = '解除' "
  421. + " where MATERIAL_NO = '"+jobject.get("MATERIAL_NO")+"' and unlock_type_code is null and lock_type_code = 'P' ";
  422. String result="update qcm_judge_coil_result a set a.pic_is_lock = '0' where COIL_NO='"+jobject.get("MATERIAL_NO")+"' ";
  423. this.getDao("testDao").ExcuteNonQuery(lokst.toString());
  424. this.getDao("testDao").ExcuteNonQuery(result.toString());
  425. }
  426. }
  427. }
  428. try {
  429. cro = this.getDao("testDao").ExcuteNonQuery(sqlList.toString());
  430. cro = this.getDao("testDao").ExcuteNonQuery(sqlLists.toString());
  431. } catch (SQLException e) {
  432. cro.setV_errCode(-1);
  433. cro.setV_errMsg("下委托更新热轧线失败!");
  434. e.printStackTrace();
  435. }
  436. }else if(plineName.equals("连退")&& !getDesignKeyRZ.equals("39")&& !getDesignKeyRZ.equals("49")&& !getDesignKeyRZ.equals("59")){
  437. StringBuffer sqlList = new StringBuffer();
  438. StringBuffer sqlLists = new StringBuffer();
  439. if(jobject.get("CASTR").toString().contains("按批取样")){
  440. sqlList.append(" update C_TBC02_COIL_COMM ");
  441. sqlList.append(" set SMP_NO ='"+inspection_lot+"' ");
  442. sqlList.append(" where OLD_SAMPL_NO like '"+jobject.get("BATCH_NO")+"%' ");
  443. sqlLists.append(" update qcm_judge_coil_result ");
  444. sqlLists.append(" set PHYSRESULT = '0',PHYSRESULT_DESC='待判', ");
  445. sqlLists.append(" inspection_lot = '"+inspection_lot+"' where coil_no like '"+jobject.get("BATCH_NO")+"%' ");
  446. }else{
  447. //按子板
  448. sqlList.append(" update C_TBC02_COIL_COMM ");
  449. sqlList.append(" set SMP_NO ='"+inspection_lot+"' ");
  450. sqlList.append(" where OLD_SAMPL_NO = '"+jobject.get("MATERIAL_NO")+"' ");
  451. sqlLists.append(" update qcm_judge_coil_result ");
  452. sqlLists.append(" set PHYSRESULT = '0',PHYSRESULT_DESC='待判', ");
  453. sqlLists.append(" inspection_lot = '"+inspection_lot+"' where coil_no = '"+jobject.get("MATERIAL_NO")+"' ");
  454. }
  455. try {
  456. cro = this.getDao("testDao").ExcuteNonQuery(sqlList.toString());
  457. cro = this.getDao("testDao").ExcuteNonQuery(sqlLists.toString());
  458. } catch (SQLException e) {
  459. cro.setV_errCode(-1);
  460. cro.setV_errMsg("下委托更新连退线失败!");
  461. e.printStackTrace();
  462. }
  463. }
  464. }
  465. //SqlSession.commit();
  466. SqlSession.close();
  467. }
  468. memoRg = "";
  469. memoXngs="false1";
  470. cro.setV_errCode(1);
  471. cro.setV_errMsg("委托成功");
  472. }catch (Exception e){
  473. e.printStackTrace();
  474. SqlSession.rollback();
  475. }finally {
  476. SqlSession.close();
  477. }
  478. return cro;
  479. }
  480. //删除原本的委托
  481. public void delEntrust(JSONArray jsonArray){
  482. String smp_no ="";
  483. String specimen_no ="";
  484. //循环执行每一条数据
  485. for(int i=0; i < jsonArray.size();i++){
  486. ResultSet results=null;
  487. JSONObject job= jsonArray.getJSONObject(i);
  488. StringBuffer sqlucomm = new StringBuffer();
  489. sqlucomm.append(" select ord.smp_no,d.specimen_no from QCM_JHY_SAMPLE_R_ORD ord ");
  490. sqlucomm.append(" inner join QCM_JHY_SAMPLE_CONSIGN_D d on ord.smp_no = d.smp_no ");
  491. sqlucomm.append(" where ord.design_key = '"+job.get("DESIGN_KEY")+"' ");
  492. sqlucomm.append(" and ord.psc = '"+job.get("PSC")+"' ");
  493. sqlucomm.append(" and ord.inspection_lot = '"+job.get("INSPECTION_LOT")+"' and d.status = '0' ");
  494. List<HashMap> tarLists=mapper.query(sqlucomm.toString());
  495. if (tarLists!=null && tarLists.size()>0) {
  496. for (HashMap list : tarLists) {
  497. smp_no = (String) list.get("SMP_NO");
  498. specimen_no = (String) list.get("SPECIMEN_NO");
  499. if(smp_no!=null && !smp_no.equals("")&& specimen_no!=null && !specimen_no.equals("")){
  500. sqlucomm.setLength(0);
  501. sqlucomm.append(" delete from QCM_JHY_SAMPLE_R_ORD ord where ord.design_key = '"+job.get("DESIGN_KEY")+"' ");
  502. sqlucomm.append(" and ord.psc = '"+job.get("PSC")+"' and ord.inspection_lot = '"+job.get("INSPECTION_LOT")+"' ");
  503. sqlucomm.append(" and ord.smp_no = '"+smp_no+"' ");
  504. mapper.delete(sqlucomm.toString());
  505. }
  506. if(specimen_no!=null && !specimen_no.equals("")){
  507. sqlucomm.setLength(0);
  508. sqlucomm.append(" delete from QCM_JHY_SAMPLE_CONSIGN_D_ITEM where SPECIMEN_NO = '"+specimen_no+"' ");
  509. mapper.delete(sqlucomm.toString());
  510. }
  511. if(smp_no!=null && !smp_no.equals("")&& specimen_no!=null && !specimen_no.equals("")){
  512. sqlucomm.setLength(0);
  513. sqlucomm.append(" delete from QCM_JHY_SAMPLE_CONSIGN_D where smp_no = '"+smp_no+"' and SPECIMEN_NO = '"+specimen_no+"' ");
  514. mapper.delete(sqlucomm.toString());
  515. }
  516. if(smp_no!=null && !smp_no.equals("")){
  517. sqlucomm.setLength(0);
  518. sqlucomm.append(" delete from QCM_JHY_SAMPLE_CONSIGN_M where smp_no = '"+smp_no+"' ");
  519. mapper.delete(sqlucomm.toString());
  520. }
  521. }
  522. }
  523. }
  524. }
  525. //判断取样频率 如果用到这个要加plineName 产线区分热轧和连退的 and t.PROCESS_CODE='LT1'/ and (t.process_code is null or t.process_code <> 'LT1')
  526. public String doQueryRateCode(String designKey,String psc){
  527. String rateCodeA="";
  528. String rateCodeB="";
  529. String rateCodeC="";
  530. String rateCodeD="";
  531. StringBuffer sqlucomm = new StringBuffer();
  532. sqlucomm.setLength(0);
  533. sqlucomm.append(" select m.RATE_CODE from QCM_ORD_DESIGN_SAMPLE_M m ");
  534. sqlucomm.append(" where m.design_key='"+designKey+"' and m.psc='"+psc+"' ");
  535. List<HashMap> lists=mapper.query(sqlucomm.toString());
  536. if (lists!=null && lists.size()>0) {
  537. for (HashMap list : lists) {
  538. if ("A".equals((String)list.get("RATE_CODE"))) {
  539. rateCodeA="A";
  540. }
  541. if ("B".equals((String)list.get("RATE_CODE"))) {
  542. rateCodeB="B";
  543. }
  544. if ("C".equals((String)list.get("RATE_CODE"))) {
  545. rateCodeC="C";
  546. }
  547. if ("D".equals((String)list.get("RATE_CODE"))) {
  548. rateCodeD="D";
  549. }
  550. }
  551. }
  552. if(!"".equals(rateCodeD)){
  553. return rateCodeD;
  554. }
  555. else if(!"".equals(rateCodeC)){
  556. return rateCodeC;
  557. }
  558. else if(!"".equals(rateCodeB)){
  559. return rateCodeB;
  560. }
  561. else if(!"".equals(rateCodeA)){
  562. return rateCodeA;
  563. }
  564. return "";
  565. }
  566. //判断是否满足下委托条件
  567. public String returnEntrust(JSONArray jsonArray,String plineName){
  568. String returnSta = "0";//0 未发送删除原来的再委托 1已发送 不用删除直接委托 2不满足委托条件
  569. String trunSta = "0";//1 已发送 0未发送
  570. for(int j=0; j < jsonArray.size();j++){
  571. JSONObject jb=jsonArray.getJSONObject(j);
  572. StringBuffer sqlucomm = new StringBuffer();
  573. sqlucomm.setLength(0);
  574. sqlucomm.append(" select d.status from QCM_JHY_SAMPLE_CONSIGN_M m ");
  575. sqlucomm.append(" inner join QCM_JHY_SAMPLE_CONSIGN_D d on m.smp_no = d.smp_no ");
  576. sqlucomm.append(" where m.inspection_lot = '"+jb.get("INSPECTION_LOT")+"' ");
  577. List<HashMap> tarLists=mapper.query(sqlucomm.toString());
  578. if (tarLists!=null && tarLists.size()>=1) {
  579. int i=0;
  580. for (HashMap hm:tarLists){
  581. String status = (String) tarLists.get(i).get("status");
  582. if(status !=null && !status.equals("0")){
  583. trunSta="1";//已发送
  584. returnSta="1";
  585. }
  586. i++;
  587. }
  588. }
  589. break;
  590. }
  591. List<HashMap> tarLists=null;
  592. //已发送 判断没有综合判定 且没有单项异常锁定 可以发委托
  593. if(trunSta.equals("1")){
  594. for(int i=0; i < jsonArray.size();i++){
  595. JSONObject jb=jsonArray.getJSONObject(i);
  596. //判断是那个产线 【热轧、连退、厚板、高棒线、 中板线】
  597. if(plineName.equals("热轧线") || plineName.equals("连退线")){
  598. StringBuffer sqlucomm = new StringBuffer();
  599. sqlucomm.setLength(0);
  600. sqlucomm.append(" sselect t.JUDGERESULT_DESC from QCM_JUDGE_COIL_RESULT t ");
  601. sqlucomm.append(" where t.inspection_lot = '"+jb.get("INSPECTION_LOT")+"' ");
  602. sqlucomm.append(" and (t.CIC_IS_LOCK != '0' or t.PIC_IS_LOCK != '0' or t.SIC_IS_LOCK != '0' or t.DIC_IS_LOCK != '0' ");
  603. sqlucomm.append(" or t.SFU_IS_LOCK != '0' or t.SFD_IS_LOCK != '0' or t.SFE_IS_LOCK != '0'or t.JUDGERESULT_DESC is not null)");
  604. tarLists=mapper.query(sqlucomm.toString());
  605. }else{
  606. StringBuffer sqlucomm = new StringBuffer();
  607. sqlucomm.setLength(0);
  608. sqlucomm.append(" select count(1) count from zj_result_all@xgcx t ");
  609. sqlucomm.append(" where t.BILLETID_JY = '"+jb.get("INSPECTION_LOT")+"' ");
  610. sqlucomm.append(" and (t.CIC_IS_LOCK != '0' or t.PIC_IS_LOCK != '0' or t.SIC_IS_LOCK != '0' or t.DIC_IS_LOCK != '0' ");
  611. sqlucomm.append(" or t.SFU_IS_LOCK != '0' or t.SFD_IS_LOCK != '0' or t.SFE_IS_LOCK != '0'or t.JUDGERESULT_DESC is not null)");
  612. tarLists=mapper.query(sqlucomm.toString());
  613. }
  614. break;
  615. }
  616. }
  617. //判断综合判定是否为空
  618. if(tarLists!=null){
  619. int desc = Integer.parseInt(tarLists.get(0).get("count").toString());
  620. if(desc > 0){
  621. returnSta="2";// 2不满足委托条件
  622. }else{
  623. returnSta="1";//1已发送 不用删除直接委托
  624. }
  625. }
  626. return returnSta;
  627. }
  628. public synchronized String autoGenerationSampleInfo(JSONArray list) throws Exception {
  629. String ZHB_PLINE_CODE = "";
  630. for (Object li : list) {
  631. JSONObject jobject = (JSONObject) li;
  632. ZHB_PLINE_CODE = jobject.getString("PLINE_CODE").toString();
  633. break;
  634. }
  635. if((ZHB_PLINE_CODE.equals("ZB1") || ZHB_PLINE_CODE.equals("HB1")) && memoRg2.equals("false1") ){
  636. SqlSession = QCM.COMMUNAL.SqlSessionBuilder.openSqlSession();
  637. mapper = SqlSession.getMapper(QCM.COMMUNAL.OrderSqMapper.class);
  638. }
  639. Quotehm = new HashMap<String, String>();
  640. phyItemSPNO.clear();
  641. memoRg = "";//是否人工委托
  642. specimenNoVHC="";//夏比V型缺口冲击
  643. memoRg3="";//热处理标识 HB1 ZB1热处理之前 HT1热处理之后
  644. // 日志原始字符串
  645. String jsonStrng = list.toString();
  646. logger.info("生成委托入口json:"+jsonStrng);
  647. //数据验证
  648. String msg = checkInfo(list);
  649. if (!"".equals(msg)) {
  650. return msg;
  651. }
  652. List<JhyQltyModel> qltys = new ArrayList<JhyQltyModel>();
  653. List<JhyQltyModel> chems = new ArrayList<JhyQltyModel>();
  654. try{
  655. //验证检验类型的工序点 list传过来的JSON qltys:材质 jsonStrng:JSON chems:成分
  656. String msg1 = checkInspectionPoint(list, qltys, jsonStrng,chems);
  657. if (!"".equals(msg1)) {
  658. return msg1;
  659. }
  660. if (qltys != null && qltys.size() > 0) {
  661. msg = createQtlySample(qltys, jsonStrng);
  662. }
  663. if (chems != null && chems.size() > 0) {
  664. msg = createChemSample(chems, jsonStrng);
  665. }
  666. SqlSession.commit();
  667. //放到D表中把材质项目集合
  668. if(phyItemSPNO.size()>=1){
  669. for (String string : phyItemSPNO) {
  670. String sqlItem = "select GET_ITEM_SPECIMEN_NO('"+string+"') PHY_ITEM from dual";
  671. List<HashMap> vhchm=mapper.query(sqlItem.toString());
  672. if(vhchm!=null && vhchm.size()>=1 && !vhchm.get(0).get("PHY_ITEM").equals("NULL")){
  673. String sql = " update QCM_JHY_SAMPLE_CONSIGN_D t "
  674. +" set PHY_ITEM= '"+vhchm.get(0).get("PHY_ITEM").toString()+"' "
  675. +" where t.SPECIMEN_NO='"+string+"' ";
  676. mapper.updateJudgeStatus(sql.toString());
  677. }
  678. if(string.contains("ZB1") || string.contains("HB1")){
  679. String sqlItem2 = "select GET_CERT_INST_NAME('"+string+"') PHY_ITEM from dual";
  680. List<HashMap> vhchm2=mapper.query(sqlItem2.toString());
  681. if(vhchm2!=null && vhchm2.size()>=1 && !vhchm2.get(0).get("PHY_ITEM").equals("NULL")){
  682. String sql = " update qcm_jhy_sample_r_ord t "
  683. +" set THREE_MEMO= '"+vhchm2.get(0).get("PHY_ITEM").toString()+"' "
  684. +" where t.SMP_NO in ( select d.smp_no from qcm_jhy_sample_consign_d d where d.specimen_no = '"+string+"') ";
  685. mapper.updateJudgeStatus(sql.toString());
  686. }
  687. }
  688. }
  689. SqlSession.commit();
  690. }
  691. //引用19 39 49 59
  692. if(Quotehm.size()!=0){
  693. String dkey = Quotehm.get("DESIGN_KEY").substring(0, 2);
  694. if((Quotehm.get("PLINE_CODE").equals("HB1") || Quotehm.get("PLINE_CODE").equals("ZB1"))
  695. && "19".equals(dkey)){
  696. UpdateInfo upinfo = new UpdateInfo();
  697. upinfo.DoQuoteBatchNo19(Quotehm);
  698. }
  699. if((Quotehm.get("PLINE_CODE").equals("RZ1") || Quotehm.get("PLINE_CODE").equals("LT1"))
  700. && ("39".equals(dkey) || "49".equals(dkey) || "59".equals(dkey))){
  701. UpdateInfo upinfo = new UpdateInfo();
  702. upinfo.DoQuoteRZLT(Quotehm);
  703. }
  704. }
  705. //线棒引用
  706. String strPlineCode=ZHB_PLINE_CODE;
  707. if(strPlineCode.equals("GX1") || strPlineCode.equals("GX2") || strPlineCode.equals("BC2")){
  708. for (Object liggb : list) {
  709. JSONObject jobject2 = (JSONObject) liggb;
  710. String DESIGN_KEY = jobject2.getString("DESIGN_KEY").toString();
  711. String MEMO = jobject2.getString("MEMO").toString();
  712. String subdkey = DESIGN_KEY.substring(0, 2);
  713. if(subdkey.equals("LS") && !StringUtils.isBlank(MEMO) && "改判".equals(MEMO)){
  714. String BATCH_NO = jobject2.getString("BATCH_NO").toString();
  715. String MATERIAL_NO = jobject2.getString("MATERIAL_NO").toString();
  716. HashMap<String, String> hmap = new HashMap<String, String>();
  717. hmap.put("DESIGN_KEY", DESIGN_KEY);
  718. hmap.put("BATCH_NO", BATCH_NO);
  719. hmap.put("MATERIAL_NO", MATERIAL_NO);
  720. hmap.put("CREATE_ID", "系统自动");
  721. hmap.put("CREATE_NAME", "系统自动");
  722. hmap.put("MEMOLOG", "1");
  723. UpdateInfo upinfo = new UpdateInfo();
  724. upinfo.DoQuoteXB(hmap);
  725. }
  726. break;
  727. }
  728. }
  729. if(!StringUtils.isBlank(specimenNoVHC)){
  730. //中厚板
  731. String plineCodeVHC = specimenNoVHC.substring(0, 3);
  732. if(plineCodeVHC.equals("ZB1") || plineCodeVHC.equals("HB1")){
  733. //夏比V型缺口冲击 250吨
  734. //查询当前轧批中是否有满足条件的冲击 weight1总共需要生成几条取样的
  735. String sql = "select TRUNC(nvl(t.weight,'0')/250) weight1,t.*,r.*,i.* "
  736. + " from qcm_jhy_sample_r_ord r,qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_d_item i "
  737. +" where r.smp_no = t.smp_no and t.specimen_no = i.specimen_no "
  738. +" and t.freq_code <> 'D' "
  739. +" and r.steel_code like 'LRA%' "
  740. +" and r.thick <= 50 "
  741. +" and i.phy_code_s in ('C01','C02') "
  742. +" and i.Specl_Fl = '4' and r.design_key not like '19%' and t.WEIGHT is not null "
  743. +" and t.specimen_no = '"+specimenNoVHC+"' ";
  744. List<HashMap> vhchm=mapper.query(sql.toString());
  745. if(vhchm!=null && vhchm.size()>=1){
  746. //有 查询 是否有引用的 (判断是否是第一次)
  747. sql="";
  748. sql="select * from qcm_jhy_sample_consign_lra t where rownum = 1 ";
  749. List<HashMap> vhchm2=mapper.query(sql.toString());
  750. if(vhchm2==null || vhchm2.size()<=0){
  751. String sqlord = "";
  752. sqlord += " update qcm_jhy_sample_consign_d t set t.SPECIAL_QUOTE_MEMO='第1个' ";
  753. sqlord += " where t.SPECIMEN_NO='"+specimenNoVHC+"' ";
  754. mapper.updateJudgeStatus(sqlord.toString());
  755. sqlord = "";
  756. sqlord += " update qcm_jhy_sample_consign_d_item t set t.QUOTE_SPECIMEN_NO_SEQ='1' ";
  757. sqlord += " where t.SPECIMEN_NO='"+specimenNoVHC+"' and t.phy_code_s in ('C01','C02') ";
  758. mapper.updateJudgeStatus(sqlord.toString());
  759. String sql3= "insert into qcm_jhy_sample_consign_lra "
  760. +" (batch_no, pline_code, weight, steel_code, type, weight_fen,SPECIMEN_NO,MANY) "
  761. +" values "
  762. +" ('"+vhchm.get(0).get("BATCH_NO")+"', '"+vhchm.get(0).get("PLINE_CODE")+"', "
  763. + " '"+vhchm.get(0).get("WEIGHT")+"', '"+vhchm.get(0).get("STEEL_CODE")+"', "
  764. + " '1', '250','"+specimenNoVHC+"','1')";
  765. mapper.insert(sql3);
  766. }else{
  767. //引用取样编号最大序号
  768. sql = "";
  769. sql = "select nvl(max(i.quote_specimen_no_seq),'1') QUOTE_SPECIMEN_NO_SEQ from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_d_item i "
  770. +" where t.specimen_no = i.specimen_no "
  771. +" and i.quote_specimen_no is null "
  772. +" and i.quote_seq is null "
  773. +" and i.quote_memo is null "
  774. +" and i.quote_specimen_no_seq is not null "
  775. +" and i.phy_code_s in ('C01','C02') "
  776. +" and i.Specl_Fl = '4' "
  777. +" and t.pline_code in ('ZB1','HB1') ";
  778. List<HashMap> vhchm3=mapper.query(sql.toString());
  779. if(vhchm3!=null && vhchm3.size()>=1){
  780. String QUOTE_SPECIMEN_NO_SEQ = vhchm3.get(0).get("QUOTE_SPECIMEN_NO_SEQ").toString();
  781. sql = "";
  782. sql = "select nvl(t.weight,'0') weight,t.*,i.* "
  783. + " from qcm_jhy_sample_consign_d t,qcm_jhy_sample_consign_d_item i "
  784. +" where t.specimen_no = i.specimen_no "
  785. +" and i.quote_specimen_no is null "
  786. +" and i.quote_seq is null "
  787. +" and i.quote_memo is null "
  788. +" and i.quote_specimen_no_seq is not null "
  789. +" and i.phy_code_s in ('C01','C02') "
  790. +" and i.Specl_Fl = '4' "
  791. +" and t.pline_code in ('ZB1','HB1') "
  792. + " and i.QUOTE_SPECIMEN_NO_SEQ = '"+QUOTE_SPECIMEN_NO_SEQ+"' ";
  793. //查询出最大的能引用冲击
  794. List<HashMap> vhchm4=mapper.query(sql.toString());
  795. if(vhchm4!=null && vhchm4.size()>=1){
  796. //判断当前的重量 是否 大于 被引用已有的重量
  797. //当前轧批冲击总重量/250 总共多少个取样数
  798. String weights = vhchm.get(0).get("WEIGHT1").toString();
  799. double weightdb = Double.parseDouble(weights);
  800. //已生成轧批冲击重量
  801. String weights2 = vhchm4.get(0).get("WEIGHT").toString();
  802. double weight2 = Double.parseDouble(weights2);
  803. //查询QCM_JHY_SAMPLE_CONSIGN_LRA 记录是一共生成了多少条取样记录
  804. sql="";
  805. sql=" select count(1) countnum from qcm_jhy_sample_consign_lra t ";
  806. List<HashMap> vhchmnum=mapper.query(sql.toString());
  807. String countnum = vhchmnum.get(0).get("COUNTNUM").toString();
  808. double countnumdb = Double.parseDouble(countnum);
  809. //总重量除250有多少个,lra有多少个
  810. if(weightdb<=countnumdb || weights.equals(countnum) || weights.equals("0")){
  811. //查询已生成的轧批冲击是否已返回实绩
  812. sql = "";
  813. sql = "select * from QCM_JHY_INSP_PHYSICS t "
  814. +" where t.specimen_no = '"+vhchm4.get(0).get("SPECIMEN_NO").toString()+"' "
  815. +" and t.phy_code_s in ('C01','C02') ";
  816. List<HashMap> vhchm5=mapper.query(sql.toString());
  817. if(vhchm5!=null && vhchm5.size()>=1){
  818. //已返回实绩直接引用
  819. for (int i = 0; i < vhchm.size(); i++) {
  820. //代码
  821. String phyCodeL = (String) vhchm.get(i).get("PHY_CODE_L");//材质检验大项代码
  822. String phyCodeM = (String) vhchm.get(i).get("PHY_CODE_M");//试样组代码
  823. String phyCodeS = (String) vhchm.get(i).get("PHY_CODE_S");//材质检验项目代码
  824. String itemCodeD = (String) vhchm.get(i).get("ITEM_CODE_D");//试验方向代码
  825. String itemCodeT = (String) vhchm.get(i).get("ITEM_CODE_T");//试验温度代码 试验温度代码 冲击 被引用
  826. String itemCodeS = (String) vhchm.get(i).get("ITEM_CODE_S");//试样尺寸代码
  827. String itemCodeL = (String) vhchm.get(i).get("ITEM_CODE_L");//试验位置代码
  828. //名称
  829. String phyNameL = (String) vhchm.get(i).get("PHY_NAME_L");//材质检验大项代码
  830. String phyNameM = (String) vhchm.get(i).get("PHY_NAME_M");//试样组代码
  831. String phyNameS = (String) vhchm.get(i).get("PHY_NAME_S");//材质检验项目代码
  832. String itemNameD = (String) vhchm.get(i).get("ITEM_NAME_D");//试验方向代码
  833. String itemNameT = (String) vhchm.get(i).get("ITEM_NAME_T");//试验温度代码 试验温度代码 冲击 被引用
  834. String itemNameS = (String) vhchm.get(i).get("ITEM_NAME_S");//试样尺寸代码
  835. String itemDescL = (String) vhchm.get(i).get("ITEM_DESC_L");
  836. String SPECIMEN_NO = (String) vhchm.get(i).get("SPECIMEN_NO");
  837. String SEQ = (String) vhchm.get(i).get("SEQ");
  838. for (HashMap hashMap : vhchm4) {
  839. String phyCodeS2 = (String) hashMap.get("PHY_CODE_S");
  840. String SPECIMEN_NO2 = (String) hashMap.get("SPECIMEN_NO");
  841. String SEQ2 = (String) hashMap.get("SEQ");
  842. String batch_no = (String) hashMap.get("BATCH_NO");
  843. String quoteSeq = (String) hashMap.get("QUOTE_SPECIMEN_NO_SEQ");
  844. if(phyCodeS.equals(phyCodeS2)){
  845. String deletePhyResults = " Delete From QCM_JHY_INSP_PHYSICS t "
  846. + " where t.SPECIMEN_NO = '"+SPECIMEN_NO2+"' and t.phy_code_s = '"+phyCodeS2+"' ";
  847. mapper.delete(deletePhyResults);
  848. sql = "";
  849. sql = " insert into QCM_JHY_INSP_PHYSICS "
  850. +" (SPECIMEN_NO,SEQ,TEST_QTY,PHY_CODE_L,PHY_NAME_L,PHY_CODE_M,PHY_NAME_M,PHY_CODE_S,PHY_NAME_S,ITEM_CODE_D,ITEM_NAME_D, "
  851. +" ITEM_CODE_T,ITEM_NAME_T,ITEM_CODE_S,ITEM_NAME_S,VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7,VAL8,VAL9,VAL10,VAL11,VAL12, "
  852. +" VAL13,VAL14,VAL15,AVG_VAL,CREATE_NAME,CREATE_TIME,GROUP_SEQ,DEFECT_FLAG,MAX_VAL,MIN_VAL,ITEM_CODE_L,ITEM_DESC_L, "
  853. +" PHY_UNIT,MEMO,QUOTE_SPECIMEN_NO) "
  854. +" select '"+SPECIMEN_NO+"','"+SEQ+"',TEST_QTY,'"+phyCodeL+"','"+phyNameL+"','"+phyCodeM+"','"+phyNameM+"','"+phyCodeS+"','"+phyNameS+"','"+itemCodeD+"','"+itemNameD+"', "
  855. +" '"+itemCodeT+"','"+itemNameT+"','"+itemCodeS+"','"+itemNameS+"',VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7,VAL8,VAL9,VAL10,VAL11,VAL12, "
  856. +" VAL13,VAL14,VAL15,AVG_VAL,'AutoSample',sysdate,GROUP_SEQ,DEFECT_FLAG,MAX_VAL,MIN_VAL,'"+itemCodeL+"','"+itemDescL+"', "
  857. +" PHY_UNIT,MEMO,specimen_no from QCM_JHY_INSP_PHYSICS t "
  858. + " where t.specimen_no = '"+SPECIMEN_NO2+"' "
  859. + " and t.phy_code_s = '"+phyCodeS2+"' and rownum=1 ";
  860. mapper.insert(sql);
  861. sql = "";
  862. sql += " update qcm_jhy_sample_consign_d_item t "
  863. +" set QUOTE_SPECIMEN_NO= '"+SPECIMEN_NO2+"',QUOTE_SEQ = '"+SEQ2+"',QUOTE_MEMO='已引用'||'"+SPECIMEN_NO2+"', "
  864. + " MEMOLAR='加项项目已引用'||'"+batch_no+"',t.QUOTE_SPECIMEN_NO_SEQ='"+quoteSeq+"' "
  865. +" where t.SPECIMEN_NO='"+SPECIMEN_NO+"' and t.phy_code_s = '"+phyCodeS+"' ";
  866. mapper.updateJudgeStatus(sql.toString());
  867. }
  868. }
  869. }
  870. }else{
  871. //未返回实绩
  872. for (HashMap hashMap : vhchm4) {
  873. String phyCodeS2 = (String) hashMap.get("PHY_CODE_S");
  874. if(phyCodeS2.equals("C01") || phyCodeS2.equals("C02")){
  875. sql="";
  876. sql="insert into QCM_JHY_INSP_PHYSICS(SPECIMEN_NO,SEQ,TEST_QTY,PHY_CODE_L,PHY_NAME_L,PHY_CODE_M,PHY_NAME_M,PHY_CODE_S,PHY_NAME_S, "
  877. +" ITEM_CODE_D,ITEM_NAME_D,ITEM_CODE_T,ITEM_NAME_T,ITEM_CODE_S,ITEM_NAME_S,VAL1,VAL2,VAL3,VAL4,VAL5,VAL6,VAL7,VAL8,VAL9,VAL10, "
  878. +" VAL11,VAL12,VAL13,VAL14,VAL15,AVG_VAL,CREATE_NAME,CREATE_TIME,GROUP_SEQ,DEFECT_FLAG,MAX_VAL,MIN_VAL,ITEM_CODE_L,ITEM_DESC_L, "
  879. +" PHY_UNIT,MEMO,QUOTE_SPECIMEN_NO) "
  880. +" select t.specimen_no,t.seq,t.test_qty,t.phy_code_l,t.phy_Name_L,t.phy_Code_M,t.phy_Name_M,t.phy_Code_S,t.phy_Name_S, "
  881. +" t.item_Code_D,t.item_Name_D,t.item_Code_T,t.item_Name_T,t.item_Code_S,t.item_Name_S,'"+hashMap.get("SPECIMEN_NO")+"','','','','','', "
  882. +" '','','','','','','','','','','现场默认',sysdate,t.group_seq,'0','','',t.item_code_l,t.item_desc_l,T.PHY_UNIT,'', "
  883. +" '"+hashMap.get("SPECIMEN_NO")+"' from qcm_jhy_sample_consign_d_item t "
  884. +" where t.specimen_no='"+vhchm.get(0).get("SPECIMEN_NO")+"' and t.phy_code_s = '"+phyCodeS2+"' ";
  885. mapper.insert(sql);
  886. sql = "";
  887. sql += " update qcm_jhy_sample_consign_d_item t "
  888. +" set QUOTE_SPECIMEN_NO= '"+hashMap.get("SPECIMEN_NO")+"',QUOTE_SEQ = '"+hashMap.get("SEQ")+"',QUOTE_MEMO='已引用'||'"+hashMap.get("SPECIMEN_NO")+"', "
  889. + " MEMOLAR='加项项目已引用'||'"+hashMap.get("BATCH_NO")+"',t.QUOTE_SPECIMEN_NO_SEQ='"+hashMap.get("QUOTE_SPECIMEN_NO_SEQ")+"' "
  890. +" where t.SPECIMEN_NO='"+vhchm.get(0).get("SPECIMEN_NO")+"' and t.phy_code_s = '"+phyCodeS2+"' ";
  891. mapper.updateJudgeStatus(sql.toString());
  892. }
  893. }
  894. }
  895. }else{
  896. sql="";
  897. sql=" select (max(to_number(t.weight_fen)) + 250) weight_fen,(count(1)+1) countnum from qcm_jhy_sample_consign_lra t ";
  898. List<HashMap> vhchm6=mapper.query(sql.toString());
  899. String weightFen = vhchm6.get(0).get("WEIGHT_FEN").toString();
  900. String countnum9 = vhchm6.get(0).get("COUNTNUM").toString();
  901. //比之前的大250了 从新取一次样
  902. String sqlord = "";
  903. sqlord += " update qcm_jhy_sample_consign_d t set t.SPECIAL_QUOTE_MEMO='第'||'"+countnum9+"'||'个' ";
  904. sqlord += " where t.SPECIMEN_NO='"+specimenNoVHC+"' ";
  905. mapper.updateJudgeStatus(sqlord.toString());
  906. sqlord = "";
  907. sqlord += " update qcm_jhy_sample_consign_d_item t set t.QUOTE_SPECIMEN_NO_SEQ='"+countnum9+"' ";
  908. sqlord += " where t.SPECIMEN_NO='"+specimenNoVHC+"' and t.phy_code_s in ('C01','C02') ";
  909. mapper.updateJudgeStatus(sqlord.toString());
  910. String sql3= "insert into qcm_jhy_sample_consign_lra "
  911. +" (batch_no, pline_code, weight, steel_code, type, weight_fen,SPECIMEN_NO,MANY) "
  912. +" values "
  913. +" ('"+vhchm.get(0).get("BATCH_NO")+"', '"+vhchm.get(0).get("PLINE_CODE")+"', "
  914. + " '"+vhchm.get(0).get("WEIGHT")+"', '"+vhchm.get(0).get("STEEL_CODE")+"', "
  915. + " '1', '"+weightFen+"','"+specimenNoVHC+"','"+countnum9+"')";
  916. mapper.insert(sql3);
  917. }
  918. }
  919. }
  920. }
  921. SqlSession.commit();
  922. }
  923. }
  924. //判断硬度
  925. if(plineCodeVHC.equals("ZB1") || plineCodeVHC.equals("HB1")){
  926. String sql="select * from qcm_jhy_sample_consign_d_item t where t.specimen_no = '"+specimenNoVHC+"' and t.seq<=49";
  927. List<HashMap> hm=mapper.query(sql.toString());
  928. if(hm!=null && hm.size()==1){
  929. //硬度
  930. if(hm.get(0).get("PHY_CODE_L").equals("HD")){
  931. sql="";
  932. sql="select * from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r "
  933. +" where t.smp_no = r.smp_no "
  934. +" and t.freq_code in ('C', 'H', 'I') and t.IMPROVE_MEMO is null "
  935. +" and t.specimen_no = '"+specimenNoVHC+"' and t.PROCESS_NOS not like '%G' and r.design_key not like '19%' ";
  936. List<HashMap> hm1=mapper.query(sql.toString());
  937. if(hm1!=null && hm1.size()>=1){
  938. sql="";
  939. sql="select * from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r "
  940. +" where t.smp_no = r.smp_no and t.freq_code in ('C', 'H', 'I')"
  941. +" and t.status = '3'"
  942. +" and t.material_no = '"+hm1.get(0).get("MATERIAL_NO")+"' "
  943. +" order by t.create_time desc ";
  944. List<HashMap> hm2=mapper.query(sql.toString());
  945. if(hm2!=null && hm2.size()>=1){
  946. String HDval= getQcmOrdDesignSampleM(hm1.get(0).get("DESIGN_KEY").toString(),hm2.get(0).get("DESIGN_KEY").toString(),"1");
  947. if(HDval.equals("0")){//0标准一样 范围不一样
  948. for (int i = 0; i < hm.size(); i++) {
  949. String sqlSize="select * from qcm_jhy_insp_physics "
  950. + "where specimen_no = '"+hm2.get(0).get("SPECIMEN_NO")+"' and PHY_CODE_S = '"+hm.get(i).get("PHY_CODE_S")+"' ";
  951. List<HashMap> hmSize=mapper.query(sqlSize.toString());
  952. if(hmSize==null || hmSize.size()<=0){//判断有没有 单值或均值硬度
  953. continue;
  954. }
  955. sql = "";
  956. sql = " insert into qcm_jhy_insp_physics "
  957. +" (specimen_no, seq, test_qty, phy_code_l, phy_name_l, phy_code_m, phy_name_m, phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, val1, val2, val3, val4, val5, val6, val7, val8, val9, val10, val11, val12, val13, val14, val15, avg_val, "
  958. +" create_name, create_time, group_seq, defect_flag, max_val, min_val, item_code_l, item_desc_l, phy_unit, memo, quote_specimen_no, jzval_no, quote_status, zhb_specimen_no, chem_internalcontrol, craft_execute) "
  959. +" select '"+specimenNoVHC+"', seq, test_qty, phy_code_l, phy_name_l, phy_code_m, '"+hm.get(i).get("PHY_NAME_M")+"', phy_code_s, phy_name_s, item_code_d, item_name_d, item_code_t, item_name_t, item_code_s, item_name_s, val1, val2, val3, val4, val5, val6, val7, val8, val9, val10, val11, val12, val13, val14, val15, avg_val, "
  960. +" '系统自动', sysdate, group_seq, defect_flag, max_val, min_val, item_code_l, item_desc_l, phy_unit, memo, quote_specimen_no, jzval_no, quote_status, zhb_specimen_no, chem_internalcontrol, craft_execute "
  961. +" from qcm_jhy_insp_physics "
  962. +" where specimen_no = '"+hm2.get(0).get("SPECIMEN_NO")+"' and PHY_CODE_S = '"+hm.get(i).get("PHY_CODE_S")+"' and rownum=1 ";
  963. mapper.insert(sql);
  964. }
  965. //修改D表
  966. sql = "";
  967. sql =" update QCM_JHY_SAMPLE_CONSIGN_D t set t.STATUS = '3',t.SEND_ID = '系统自动',"
  968. + " t.SEND_NAME = '系统自动',t.SEND_TIME = sysdate,t.SEND_MEMO = '有引用',t.QUOTE_MEMO = '引用实绩' "
  969. + " where SPECIMEN_NO ='"+specimenNoVHC+"' ";
  970. mapper.updateJudgeStatus(sql.toString());
  971. sql = "";
  972. sql =" update QCM_JHY_SAMPLE_CONSIGN_D_ITEM t set t.QUOTE_MEMO = '已引用"+hm2.get(0).get("SPECIMEN_NO")+"' "
  973. + " where t.SPECIMEN_NO ='"+specimenNoVHC+"' ";
  974. mapper.updateJudgeStatus(sql.toString());
  975. //往log表中插入p
  976. sql = "";
  977. sql = " INSERT INTO QCM_JUDGE_LOG ( JUDGE_TYPE,MATERIAL_NO,CREATE_TIME,CREATE_NAME,PROD_LINE) "
  978. +" VALUES ( 'P', '"+hm1.get(0).get("SMP_NO")+"', SYSDATE,'system','"+hm1.get(0).get("PLINE_CODE")+"')";
  979. mapper.insert(sql);
  980. SqlSession.commit();
  981. }
  982. }
  983. }
  984. }
  985. }
  986. }
  987. }
  988. memoXngs="false1";//性能改善
  989. }catch (Exception e){
  990. e.printStackTrace();
  991. SqlSession.rollback();
  992. return "生成失败"+e.getMessage();
  993. }finally {
  994. SqlSession.close();
  995. }
  996. //子板的是否已生成
  997. if(msg.equals("100")){
  998. return "100";
  999. }
  1000. return "1";
  1001. }
  1002. private String createChemSample(List<JhyQltyModel> chems, String jsonStrng) {
  1003. // TODO Auto-generated method stub
  1004. StringBuffer sqlucomm = new StringBuffer();
  1005. for (JhyQltyModel chem : chems) {
  1006. //and t.design_key='"+chem.getDesign_key()+"'
  1007. sqlucomm.setLength(0);
  1008. sqlucomm.append("select t.smp_no from QCM_JHY_SAMPLE_R_ORD t inner join QCM_JHY_SAMPLE_CONSIGN_M m on ");
  1009. sqlucomm.append(" t.smp_no=m.smp_no and m.smp_catg='A' and t.psc='"+chem.getPsc()+"' "
  1010. + " and to_char(t.THICK, 'fm990.099') = to_char('"+chem.getThick()+"', 'fm990.099') ");
  1011. sqlucomm.append(" inner join QCM_JHY_SAMPLE_CONSIGN_D d on d.smp_no=t.smp_no and d.freq_code='"+chem.getFreq_code()+"' "
  1012. + " and d.batch_no = '"+chem.getBatch_no()+"' ");
  1013. List<HashMap> tarLists=mapper.query(sqlucomm.toString());
  1014. String smp_no="";
  1015. if (tarLists==null || tarLists.size()<1) {
  1016. //t.design_key = '"+chem.getDesign_key()+"' and
  1017. String sqlLot = " select t.* from QCM_JHY_SAMPLE_R_ORD t "
  1018. +" where t.psc = '"+chem.getPsc()+"' and to_char(t.THICK, 'fm990.099') = to_char('"+chem.getThick()+"', 'fm990.099') "
  1019. +" and t.batch_no = '"+chem.getBatch_no()+"' and t.INSPECTION_LOT is not null and rownum = 1";
  1020. List<HashMap> sqlLothm=mapper.query(sqlLot.toString());
  1021. if(sqlLothm!=null && sqlLothm.size()>=1){
  1022. chem.setInspection_lot(sqlLothm.get(0).get("INSPECTION_LOT").toString());
  1023. }
  1024. //生成试样信息主表
  1025. smp_no = createQltySamNo(chem.getPline_code());
  1026. JhySampleMMdoel model=getSampleM(smp_no,chem,"A");
  1027. mapper.insertSampleM(model);
  1028. //生成试样信息明细表
  1029. String specimen_no=createSpecimen_no(smp_no);
  1030. JhySampleDModel sampleD=getSampleD(smp_no,specimen_no,chem);
  1031. mapper.insertSampleD(sampleD);
  1032. //生成合同表
  1033. JhySampleOrdMdoel ord=getSampleOrd(smp_no,chem);
  1034. mapper.insertSampleOrd(ord);
  1035. //continue;
  1036. }
  1037. // //获取已经存在的试样号,判断design_key+psc对应的订单信息是否存在
  1038. // smp_no=(String)tarLists.get(0).get("SMP_NO");
  1039. // //清空查询sql
  1040. // sqlucomm.setLength(0);
  1041. // tarLists.clear();
  1042. //
  1043. // //验证合同表是否存在
  1044. // sqlucomm.append("SELECT DESIGN_KEY, SMP_NO,PSC FROM QCM_JHY_SAMPLE_R_ORD WHERE SMP_NO='"+smp_no+"' ");
  1045. // sqlucomm.append(" and DESIGN_KEY='"+chem.getDesign_key()+"' ");
  1046. // sqlucomm.append(" and PSC='"+chem.getPsc()+"'");
  1047. // tarLists=mapper.query(sqlucomm.toString());
  1048. //
  1049. // if (tarLists==null || tarLists.size()<1) {
  1050. //
  1051. //
  1052. //
  1053. //
  1054. // }
  1055. }
  1056. return "";
  1057. }
  1058. /**
  1059. * 生成材质试样信息
  1060. *
  1061. * @param qltys
  1062. * @param jsonStrng
  1063. * @return
  1064. * @throws Exception
  1065. */
  1066. @SuppressWarnings("unused")
  1067. private String createQtlySample(List<JhyQltyModel> qltys, String jsonStrng) throws Exception {
  1068. String getInspectionLot = "";//变检验号
  1069. String getInspectionLot2 = "0";//是否变检验号
  1070. String getTimestn = "0";//判断是否时螺纹钢
  1071. String getDesignKey19 = "0";//判断是否时19订单中厚板
  1072. String getSmpNO19 = "";//19订单试样号
  1073. String getplineCode = "";//产线
  1074. String getSpecimenNo19 = "";//19订单取样编号
  1075. String dkeyScode2 = "0";//订单标准不一样
  1076. String getInspectionLot19 = "";//19检验号
  1077. String dkeyScode = "0";//订单标准不一样
  1078. String xngslog = "0";//性能改善 0进 1不进
  1079. String YNmemoRg= "0";//人工委托 判断是不是当前勾选的订单号 是否已经全部生成 如果已经全部生成 不可重复点击人工委托 从而导致数据混乱
  1080. String zjResultAll = "0";//ZJ表是否已修改检验号
  1081. String chiFreqCode = "0";//判断当前订单中是否有子板取样
  1082. String operateLog = "0";
  1083. String getFreqCode = "0";//判断是否母板取样,做限制
  1084. StringBuffer sqlucomm = new StringBuffer();
  1085. HashMap<String, String> hashMapStr =new HashMap<String, String>();
  1086. for (JhyQltyModel qlty : qltys) {
  1087. String lotGradeCode=qlty.getGrade_code();//库存牌号
  1088. String lotSteelCode=qlty.getSteel_code();//订单牌号
  1089. String lotThick=qlty.getThick();//规格/厚度
  1090. String lotProcessCode=qlty.getProcess_code();//热处理之前/之后标识
  1091. //QCM_JUDGE_OPERATE_LOG 日志
  1092. if(operateLog.equals("0")){
  1093. String memoStr = "";
  1094. if (memoXngs.equals("true1")){
  1095. memoStr = "性能改善";
  1096. if(qlty.getDesign_key().contains("19")){
  1097. String processNos=getRclState(qlty.getPline_code(),qlty.getMaterial_no());
  1098. String sqlXNGS= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT_XNGS "
  1099. + " (design_key, steel_code, thick, pline_code, heat_no, batch_no, inspection_lot, material_no, process_nos, create_name) "
  1100. + " VALUES"
  1101. + " ('"+qlty.getDesign_key()+"','"+qlty.getSteel_code()+"','"+qlty.getThick()+"','"+qlty.getPline_code()+"','"+qlty.getHeat_no()+"',"
  1102. + " '"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getMaterial_no()+"','"+processNos+"','XNGS') ";
  1103. mapper.insert(sqlXNGS);
  1104. }
  1105. }
  1106. String logmemo =memoStr +','+ qlty.getBatch_no()+','+qlty.getDesign_key()+','+qlty.getGrade_code()+','+qlty.getSteel_code()+','+qlty.getThick();
  1107. String sql3= "INSERT INTO QCM_JUDGE_OPERATE_LOG (OPERATE_TYPE,PARAMS,OPERATE_NAME,PROD_LINE,BATCHNO,MEMO) "
  1108. + " VALUES('生成委托接口','"+qlty.getMaterial_no()+"','createQtlySample','"+qlty.getPline_code()+"',"
  1109. + " '"+qlty.getBatch_no()+"','"+logmemo+"') ";
  1110. mapper.insert(sql3);
  1111. operateLog="1";
  1112. }
  1113. //截取订单号前两位判断是否是19订单
  1114. getDesignKey19 = (String)qlty.getDesign_key().substring(0, 2);
  1115. //查询当前design_key+psc下认证机构+试样类型是否存在
  1116. //判断产线 是否是中厚板 不等于性能改善
  1117. if((qlty.getPline_code().equals("ZB1") || qlty.getPline_code().equals("HB1")) && !memoXngs.equals("true1") && !"19".equals(getDesignKey19)){
  1118. String memoname = "调用接口";
  1119. if(memoRg2.equals("true1")){
  1120. memoname = "人工委托";
  1121. }
  1122. //人工委托 判断是否重复点击 20230615:memoRg2.equals("true1") &&
  1123. if(YNmemoRg.equals("0") && !qlty.getFreq_code().equals("C") && !qlty.getFreq_code().equals("H") && !qlty.getFreq_code().equals("I") ){
  1124. String chi="";
  1125. List<HashMap> hmYnchi=null;
  1126. if(qlty.getFreq_code().equals("D")){
  1127. chi = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t "
  1128. +" where t.Rate_Code in ('C', 'H', 'I') and t.design_key = '"+qlty.getDesign_key()+"' ";
  1129. hmYnchi=mapper.query(chi.toString());
  1130. }
  1131. //判断该订单下同时有子板取样和按炉取样
  1132. if(hmYnchi==null || hmYnchi.size()<=0){
  1133. YNmemoRg = "1";
  1134. String freqCode="";
  1135. if(qlty.getFreq_code().equals("B")){
  1136. freqCode=" and d.BOARD_NO = '"+qlty.getBoard_no()+"' ";
  1137. }
  1138. String sqlYn = "select t.* from Qcm_Jhy_Sample_r_Ord t,qcm_jhy_sample_consign_d d where t.smp_no = d.smp_no "
  1139. + " and t.design_key='"+qlty.getDesign_key()+"' and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  1140. + " and t.steel_code = '"+qlty.getSteel_code()+"' and t.thick = '"+qlty.getThick()+"' and d.FREQ_CODE = '"+qlty.getFreq_code()+"' "
  1141. + " and t.PLINE_CODE = '"+qlty.getPline_code()+"' and t.DESIGN_KEY not like '19%' and t.Improve_Memo is null"
  1142. + freqCode;
  1143. List<HashMap> hmYn=mapper.query(sqlYn.toString());
  1144. if(hmYn!=null && hmYn.size()>=1){
  1145. String smpNo = hmYn.get(0).get("SMP_NO").toString();
  1146. String DfreqCode="and d.FREQ_CODE = '"+qlty.getFreq_code()+"' ";
  1147. String MrateCode="and t.RATE_CODE = '"+qlty.getFreq_code()+"' ";
  1148. //判断是否只有一种处理标识
  1149. String prsql="select t.PROCESS_CODE from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+qlty.getDesign_key()+"' group by t.PROCESS_CODE ";
  1150. List<HashMap> prhm=mapper.query(prsql.toString());
  1151. if(prhm!=null && prhm.size()<=1){
  1152. DfreqCode="";
  1153. MrateCode="";
  1154. }
  1155. String smpNoSqlYn = "select t.* from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t "
  1156. +" where t.specimen_no in ( "
  1157. +" select d.specimen_no from Qcm_Jhy_Sample_r_Ord t,qcm_jhy_sample_consign_d d where t.smp_no = d.smp_no "
  1158. +" and t.design_key='"+qlty.getDesign_key()+"' and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  1159. +" and t.steel_code = '"+qlty.getSteel_code()+"' and t.thick = '"+qlty.getThick()+"' "
  1160. +" and t.PLINE_CODE = '"+qlty.getPline_code()+"' and t.DESIGN_KEY not like '19%' and t.Improve_Memo is null "
  1161. +" and d.SMP_TYPE_CODE='0' "
  1162. + DfreqCode
  1163. + freqCode
  1164. + " ) "
  1165. +" order by t.specimen_no asc ,t.seq asc";
  1166. List<HashMap> hmItemYn1=mapper.query(smpNoSqlYn.toString());
  1167. smpNoSqlYn="";
  1168. smpNoSqlYn="select t.* from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+qlty.getDesign_key()+"' "
  1169. + MrateCode
  1170. + " order by t.phy_code_l,t.phy_code_s ";
  1171. List<HashMap> hmItemYn2=mapper.query(smpNoSqlYn.toString());
  1172. //如果项目数一样break;
  1173. if(hmItemYn1.size() == hmItemYn2.size()){
  1174. //判断是不是热处理之后,是自动,增加这个限制是因为热处理之后,1.1生成委托,1.2 1.3 就不调用委托了,为了防止这种情况需修改库存那边的检验号
  1175. if(memoRg3.equals("HT1") && memoRg2.equals("false1")){
  1176. String sqlzj = " update KCH_TURNOFFLIST@xgcx t set t.BILLETID_HB_SY = t.BILLETID_HB_SY||'Y' "
  1177. +" where t.BILLETID = '"+qlty.getMaterial_no()+"' ";
  1178. mapper.updateJudgeStatus(sqlzj.toString());
  1179. String sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1180. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"Y','"+qlty.getPline_code()+"',"
  1181. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"Y','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1182. mapper.insert(sqlInspection);
  1183. }else{
  1184. String sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1185. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  1186. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1187. mapper.insert(sqlInspection);
  1188. }
  1189. break;
  1190. }else if(qlty.getFreq_code().equals("D")){//夹杂已有复样 不用再生成初样夹杂
  1191. smpNoSqlYn="";
  1192. smpNoSqlYn =" select d.* from Qcm_Jhy_Sample_r_Ord t,qcm_jhy_sample_consign_d d where t.smp_no = d.smp_no "
  1193. +" and t.design_key='"+qlty.getDesign_key()+"' and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  1194. +" and t.steel_code = '"+qlty.getSteel_code()+"' and t.thick = '"+qlty.getThick()+"' "
  1195. +" and t.PLINE_CODE = '"+qlty.getPline_code()+"' and t.DESIGN_KEY not like '19%' and t.Improve_Memo is null "
  1196. +" and d.SMP_TYPE_CODE='1' and d.FREQ_CODE = '"+qlty.getFreq_code()+"' ";
  1197. List<HashMap> hmItemYn1D=mapper.query(smpNoSqlYn.toString());
  1198. if(hmItemYn1D!=null && hmItemYn1D.size()>=1){
  1199. break;
  1200. }
  1201. }
  1202. }
  1203. }else{
  1204. chiFreqCode="1";
  1205. }
  1206. }
  1207. //夹杂已有复样 不用再生成初样夹杂 是夹杂但是不是子板中的夹杂 先力学后夹杂
  1208. if(qlty.getFreq_code().equals("D") && YNmemoRg.equals("1")){
  1209. String smpNoSqlYn =" select d.* from Qcm_Jhy_Sample_r_Ord t,qcm_jhy_sample_consign_d d where t.smp_no = d.smp_no "
  1210. +" and t.design_key='"+qlty.getDesign_key()+"' and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  1211. +" and t.steel_code = '"+qlty.getSteel_code()+"' and t.thick = '"+qlty.getThick()+"' "
  1212. +" and t.DESIGN_KEY not like '19%' and t.Improve_Memo is null "
  1213. +" and d.SMP_TYPE_CODE='1' and d.FREQ_CODE = '"+qlty.getFreq_code()+"' ";
  1214. List<HashMap> hmItemYn1D=mapper.query(smpNoSqlYn.toString());
  1215. if(hmItemYn1D!=null && hmItemYn1D.size()>=1){
  1216. break;
  1217. }
  1218. }
  1219. //子板 是否已有 子板只要进来一次
  1220. if((qlty.getFreq_code().equals("C") || qlty.getFreq_code().equals("H") || qlty.getFreq_code().equals("I")) && getInspectionLot2.equals("0")){
  1221. String doycsql = "select t.smp_no,r.design_key,t.*,r.* from QCM_JHY_SAMPLE_CONSIGN_D t,qcm_jhy_sample_r_ord r "
  1222. + " where t.smp_no = r.smp_no and t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code = '"+qlty.getPline_code()+"' "
  1223. + " and t.material_no = '"+qlty.getMaterial_no()+"' and t.FREQ_CODE in ('C','H','I') order by t.create_time desc ";
  1224. List<HashMap> materialNohm=mapper.query(doycsql.toString());
  1225. if (materialNohm!=null && materialNohm.size()>=1){
  1226. if(!memoRg2.equals("true1")){//子板 人工不做限制 因为子板有时需要人工操作
  1227. String sqlchi = "select t.* from QCM_JHY_SAMPLE_CONSIGN_D_ITEM t "
  1228. +" where t.specimen_no in ( "
  1229. +" select t.specimen_no from QCM_JHY_SAMPLE_CONSIGN_D t,qcm_jhy_sample_r_ord r "
  1230. +" where t.smp_no = r.smp_no and t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code = '"+qlty.getPline_code()+"' "
  1231. +" and t.material_no = '"+qlty.getMaterial_no()+"' and t.FREQ_CODE in ('C','H','I','D') AND t.SMP_TYPE_CODE = '0' AND t.IMPROVE_MEMO IS NULL "
  1232. +" AND r.steel_code = '"+qlty.getSteel_code()+"' and r.thick='"+qlty.getThick()+"' AND r.design_key not like '19%' "
  1233. +" ) "
  1234. +" order by t.specimen_no asc ,t.seq asc";
  1235. List<HashMap> sqlchihm=mapper.query(sqlchi.toString());
  1236. sqlchi="";
  1237. sqlchi="select t.* from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+qlty.getDesign_key()+"' order by t.phy_code_l,t.phy_code_s ";
  1238. List<HashMap> sqlchihm2=mapper.query(sqlchi.toString());
  1239. //如果项目数一样break;
  1240. if(sqlchihm.size() == sqlchihm2.size()){
  1241. String returnval = getQcmOrdDesignSampleM(qlty.getDesign_key(),materialNohm.get(0).get("DESIGN_KEY").toString(),"0");
  1242. if(!"1".equals(returnval)){//不等于1 说明标准一样
  1243. String sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1244. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  1245. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1246. mapper.insert(sqlInspection);
  1247. return "100";
  1248. }
  1249. }
  1250. }
  1251. }
  1252. }
  1253. String batchPline2 = (String)qlty.getBatch_no().substring(0, 1);
  1254. String batchPlines2 = batchPline2;
  1255. String batchNoplieCode = "";
  1256. if(batchPlines2.equals("Z")){
  1257. batchNoplieCode = "ZB1";
  1258. }else if (batchPlines2.equals("H")){
  1259. batchNoplieCode = "HB1";
  1260. }
  1261. //不是人工委托 轧批号前两位和产线对不上H2-HB1 Z2-ZB1
  1262. //memoRg3.equals("HT1")
  1263. if(!memoRg2.equals("true1") && !batchNoplieCode.equals(qlty.getPline_code())){
  1264. String sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1265. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  1266. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1267. mapper.insert(sqlInspection);
  1268. continue;
  1269. }
  1270. String sqlInspection= "";
  1271. //判断是不是热处理之后,是自动,增加这个限制是因为热处理之后,1.1生成委托,1.2 1.3 就不调用委托了,为了防止这种情况需修改库存那边的检验号
  1272. if(memoRg3.equals("HT1") && memoRg2.equals("false1")){
  1273. String sqlht="select t.* from KCH_TURNOFFLIST@xgcx t "
  1274. +" where t.BILLETID = '"+qlty.getMaterial_no()+"' and t.BILLETID_HB_SY ='"+qlty.getInspection_lot()+"Y' ";
  1275. List<HashMap> HMht=mapper.query(sqlht.toString());
  1276. if(HMht==null || HMht.size()<=0){
  1277. String sqlzj = " update KCH_TURNOFFLIST@xgcx t set t.BILLETID_HB_SY = t.BILLETID_HB_SY||'Y' "
  1278. +" where t.BILLETID = '"+qlty.getMaterial_no()+"' and t.BILLETID_HB_SY ='"+qlty.getInspection_lot()+"' ";
  1279. mapper.updateJudgeStatus(sqlzj.toString());
  1280. }
  1281. sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1282. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"Y','"+qlty.getPline_code()+"',"
  1283. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1284. mapper.insert(sqlInspection);
  1285. }else{
  1286. sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1287. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  1288. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1289. mapper.insert(sqlInspection);
  1290. }
  1291. String batchPline = (String)qlty.getBatch_no().substring(0, 1);
  1292. String batchPlines = batchPline;
  1293. String plineCode = "ZB1";
  1294. if(batchPlines.equals("Z")){
  1295. plineCode = "ZB1";
  1296. qlty.setPline_code("ZB1");
  1297. qlty.setPline_name("中板线");
  1298. }else if(batchPlines.equals("H")){
  1299. plineCode = "HB1";
  1300. qlty.setPline_code("HB1");
  1301. qlty.setPline_name("厚板线");
  1302. }
  1303. //母板限制 检验号
  1304. if(qlty.getFreq_code().equals("B") || qlty.getFreq_code().equals("D")){
  1305. String freqCodeSql = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t "
  1306. +" where t.Rate_Code ='B' and t.design_key = '"+qlty.getDesign_key()+"' ";
  1307. List<HashMap> hmfreqCode=mapper.query(freqCodeSql.toString());
  1308. if(hmfreqCode!=null && hmfreqCode.size()>=1){
  1309. freqCodeSql="";
  1310. freqCodeSql="select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r where t.smp_no = r.smp_no "
  1311. +" and t.board_no = '"+qlty.getBoard_no()+"' and t.pline_code = '"+plineCode+"' "
  1312. +" and t.freq_code in ('B','D') and t.smp_type_code = '0' and t.Improve_Memo is null "
  1313. +" and r.design_key = '"+qlty.getDesign_key()+"' and r.steel_code = '"+qlty.getSteel_code()+"' and r.thick = '"+qlty.getThick()+"' ";
  1314. List<HashMap> hmfreqCode3 = mapper.query(freqCodeSql.toString());
  1315. if(hmfreqCode3!=null && hmfreqCode3.size()>=1){
  1316. getInspectionLot=hmfreqCode3.get(0).get("INSPECTION_LOT").toString();
  1317. qlty.setInspection_lot(getInspectionLot);
  1318. getFreqCode="1";//母板
  1319. getInspectionLot2 = "1";//不准变检验号
  1320. }else if(getInspectionLot2.equals("0")){
  1321. //新母板号 取新检验号
  1322. String inspection_lot=ZHBinspection_lotSql(qlty.getBatch_no(),plineCode);
  1323. qlty.setInspection_lot(inspection_lot);
  1324. getInspectionLot=inspection_lot;
  1325. getInspectionLot2 = "1";//不准变检验号
  1326. //当前订单号是否要生成委托
  1327. freqCodeSql="";
  1328. freqCodeSql="select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r where t.smp_no = r.smp_no "
  1329. +" and t.board_no = '"+qlty.getBoard_no()+"' and t.pline_code = '"+plineCode+"' "
  1330. +" and t.freq_code in ('B','D') and t.smp_type_code = '0' and t.Improve_Memo is null "
  1331. +" and r.steel_code = '"+qlty.getSteel_code()+"' and r.thick = '"+qlty.getThick()+"' ";
  1332. List<HashMap> hmfreqCode2 = mapper.query(freqCodeSql.toString());
  1333. if(hmfreqCode2!=null && hmfreqCode2.size()>=1){
  1334. getFreqCode="0";//母板 进入下面的判定标准逻辑中
  1335. mapper.zjResultAllZHB(qlty.getMaterial_no(),hmfreqCode2.get(0).get("INSPECTION_LOT").toString());//同母板先给检验号后判标准
  1336. }else{
  1337. getFreqCode="1";//母板
  1338. hashMapStr.clear();
  1339. hashMapStr.put("BATCH_NO", qlty.getBatch_no());
  1340. hashMapStr.put("PLINE_CODE", plineCode);
  1341. hashMapStr.put("DESIGN_KEY", qlty.getDesign_key());
  1342. hashMapStr.put("STEEL_CODE", qlty.getSteel_code());
  1343. hashMapStr.put("THICK", qlty.getThick());
  1344. hashMapStr.put("BOARD_NO", qlty.getBoard_no());
  1345. //拿取检验号放入相应的子板中
  1346. String sqlstr = ZHBStringSql(hashMapStr);
  1347. List<HashMap> kczh=mapper.query(sqlstr.toString());
  1348. if (kczh!=null && kczh.size()>=1) {
  1349. for (HashMap hashMap : kczh) {
  1350. String bcon = "select nvl(t.BILLETID_JY,'0') BILLETID_JY,t.* from zj_result_all@xgcx t "
  1351. + " where t.billetid = '"+(String)hashMap.get("MATERIAL_NO")+"' "
  1352. + " and rownum <= 1 ";
  1353. List<HashMap> billetidJy = mapper.query(bcon.toString());
  1354. if(billetidJy != null && billetidJy.size() >=1 && !billetidJy.get(0).get("BILLETID_JY").equals(qlty.getInspection_lot())){
  1355. mapper.zjResultAllZHB(hashMap.get("MATERIAL_NO").toString(),qlty.getInspection_lot());
  1356. }
  1357. }
  1358. }
  1359. }
  1360. }
  1361. //多认证机构
  1362. if(getInspectionLot2.equals("1")){
  1363. qlty.setInspection_lot(getInspectionLot);
  1364. }
  1365. }
  1366. }
  1367. //判定当前轧批是否第一次生成委托 and t.SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"'
  1368. String sql = "SELECT t.SMP_NO,t.SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D t "
  1369. +" WHERE t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  1370. +" and t.SMP_TYPE_CODE = '0' and t.PLINE_CODE = '"+qlty.getPline_code()+"' ";
  1371. List<HashMap> samplesD=mapper.query(sql.toString());
  1372. //判断当前不是子板的项目 订单号中是否有子板取样
  1373. if (!qlty.getFreq_code().equals("C") && !qlty.getFreq_code().equals("H") && !qlty.getFreq_code().equals("I")) {
  1374. String chi="";
  1375. List<HashMap> hmYnchi=null;
  1376. if(qlty.getFreq_code().equals("D")){
  1377. chi = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t "
  1378. +" where t.Rate_Code in ('C', 'H', 'I') and t.design_key = '"+qlty.getDesign_key()+"' ";
  1379. hmYnchi=mapper.query(chi.toString());
  1380. }
  1381. if(hmYnchi!=null && hmYnchi.size()>=1){
  1382. chiFreqCode="1";
  1383. }
  1384. }
  1385. //查询D表中有数据 不为子板不为母板 以下是按批逻辑限制 进入if
  1386. if (samplesD!=null && samplesD.size()>=1 && !qlty.getFreq_code().equals("C") && !qlty.getFreq_code().equals("H") && !qlty.getFreq_code().equals("I")&& !chiFreqCode.equals("1") && !getFreqCode.equals("1")) {
  1387. //这个轧批有了委托 判定是否是同一牌号 不同牌号 直接生成新的委托 and t.SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"'
  1388. sql = "";
  1389. sql+="SELECT t.inspection_lot,t.SMP_NO,t.SPECIMEN_NO,o.design_key,o.steel_code,o.thick FROM QCM_JHY_SAMPLE_CONSIGN_D t,Qcm_Jhy_Sample_r_Ord o "
  1390. + "WHERE t.smp_no = o.smp_no and o.design_key='"+qlty.getDesign_key()+"'"
  1391. + " and o.steel_code = '"+qlty.getSteel_code()+"' and o.thick = '"+qlty.getThick()+"' "
  1392. + " and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  1393. + " and t.SMP_TYPE_CODE in ('0','1') and t.PLINE_CODE = '"+qlty.getPline_code()+"' "
  1394. + " and o.DESIGN_KEY not like '19%' and t.IMPROVE_MEMO is null ";
  1395. List<HashMap> samplesD2=mapper.query(sql.toString());
  1396. if(samplesD2==null || samplesD2.size()<=0){
  1397. //and t.SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"'
  1398. sql = "";
  1399. sql+="SELECT t.inspection_lot,t.SMP_NO,t.SPECIMEN_NO,o.design_key,o.steel_code,o.thick FROM QCM_JHY_SAMPLE_CONSIGN_D t,Qcm_Jhy_Sample_r_Ord o "
  1400. + "WHERE t.smp_no = o.smp_no and o.steel_code = '"+qlty.getSteel_code()+"' and o.thick = '"+qlty.getThick()+"' "
  1401. + " and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  1402. +" and t.SMP_TYPE_CODE = '0' "
  1403. + " and t.PLINE_CODE = '"+qlty.getPline_code()+"' "
  1404. + " and o.DESIGN_KEY not like '19%' and t.IMPROVE_MEMO is null ";
  1405. samplesD2=null;
  1406. samplesD2=mapper.query(sql.toString());
  1407. }
  1408. //同牌号 同规格
  1409. if (samplesD2!=null && samplesD2.size()>=1 ) {
  1410. // 判断标准是否想同
  1411. String designKey0 = qlty.getDesign_key();//当前订单
  1412. String designKey1 = (String) samplesD2.get(0).get("DESIGN_KEY");//已生成订单
  1413. if(designKey0.equals(designKey1)){
  1414. //同牌号 同订单 代表标准相同 已经生成一条就直接用相同检验号 这个是有夹杂、有力学才有的
  1415. String inlot = (String) samplesD2.get(0).get("INSPECTION_LOT");
  1416. if(inlot.equals("") || inlot==null){
  1417. inlot = qlty.getBatch_no()+"0001";
  1418. }
  1419. qlty.setInspection_lot(inlot);//初样检验号为001
  1420. getInspectionLot=inlot;
  1421. getInspectionLot2 = "1";//不准变检验号
  1422. dkeyScode = "1";
  1423. dkeyScode2 = "1";
  1424. }else{
  1425. //同牌号 不同订单 判断订单标准是否相同 and t.specl_fl <> '2'
  1426. String qcmOrdM0 = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+designKey0+"' order by t.phy_code_l,t.phy_code_s ";
  1427. String qcmOrdM1 = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+designKey1+"' order by t.phy_code_l,t.phy_code_s ";
  1428. List<HashMap> sampleM0=mapper.query(qcmOrdM0.toString());//当前订单
  1429. List<HashMap> sampleM1=mapper.query(qcmOrdM1.toString());//已生成订单
  1430. //如果 不同订单的项目数都不一样 肯定标准也不一样 那么直接生成新的委托
  1431. if(sampleM0.size() == sampleM1.size()){
  1432. //订单数一样 判断订单标准是否一样
  1433. for (int i = 0; i < sampleM0.size(); i++) {
  1434. String speclFltrue="0";
  1435. String speclFl = (String) sampleM0.get(i).get("SPECL_FL");//标准类型
  1436. String speclFl2 = (String) sampleM1.get(i).get("SPECL_FL");//标准类型
  1437. if(speclFl.equals("2") || speclFl2.equals("2")){
  1438. speclFltrue="1";
  1439. }
  1440. //代码
  1441. String phyCodeL = (String) sampleM0.get(i).get("PHY_CODE_L");//材质检验大项代码
  1442. String phyCodeM = (String) sampleM0.get(i).get("PHY_CODE_M");//试样组代码
  1443. String phyCodeS = (String) sampleM0.get(i).get("PHY_CODE_S");//材质检验项目代码
  1444. String itemCodeD = (String) sampleM0.get(i).get("ITEM_CODE_D");//试验方向代码
  1445. String itemCodeT = (String) sampleM0.get(i).get("ITEM_CODE_T");//试验温度代码 试验温度代码 冲击 被引用
  1446. String itemCodeS = (String) sampleM0.get(i).get("ITEM_CODE_S");//试样尺寸代码
  1447. String itemCodeL = (String) sampleM0.get(i).get("ITEM_CODE_L");//试验位置代码
  1448. String STDMIN = (String) sampleM0.get(i).get("STDMIN");//判定范围下限
  1449. String STDMAX = (String) sampleM0.get(i).get("STDMAX");//判定范围上限
  1450. String newItem=phyCodeL+"-"+phyCodeM+"-"+phyCodeS;
  1451. newItem=newItem+"-"+(itemCodeD!=null?itemCodeD:"null");
  1452. newItem=newItem+"-"+(itemCodeT!=null?itemCodeT:"null");
  1453. newItem=newItem+"-"+(itemCodeS!=null?itemCodeS:"null");
  1454. newItem=newItem+"-"+(itemCodeL!=null?itemCodeL:"null");
  1455. if(speclFltrue.equals("0")){
  1456. newItem=newItem+"-"+(speclFl!=null?speclFl:"null");
  1457. }
  1458. newItem=newItem+"-"+(STDMIN!=null?STDMIN:"null");
  1459. newItem=newItem+"-"+(STDMAX!=null?STDMAX:"null");
  1460. //代码
  1461. String phyCodeL2 = (String) sampleM1.get(i).get("PHY_CODE_L");//材质检验大项代码
  1462. String phyCodeM2 = (String) sampleM1.get(i).get("PHY_CODE_M");//试样组代码
  1463. String phyCodeS2 = (String) sampleM1.get(i).get("PHY_CODE_S");//材质检验项目代码
  1464. String itemCodeD2 = (String) sampleM1.get(i).get("ITEM_CODE_D");//试验方向代码
  1465. String itemCodeT2 = (String) sampleM1.get(i).get("ITEM_CODE_T");//试验温度代码 试验温度代码 冲击 被引用
  1466. String itemCodeS2 = (String) sampleM1.get(i).get("ITEM_CODE_S");//试样尺寸代码
  1467. String itemCodeL2 = (String) sampleM1.get(i).get("ITEM_CODE_L");//试验位置代码
  1468. String STDMIN2 = (String) sampleM1.get(i).get("STDMIN");//判定范围下限
  1469. String STDMAX2 =(String) sampleM1.get(i).get("STDMAX");//判定范围上限
  1470. String newItem2=phyCodeL2+"-"+phyCodeM2+"-"+phyCodeS2;
  1471. newItem2=newItem2+"-"+(itemCodeD2!=null?itemCodeD2:"null");
  1472. newItem2=newItem2+"-"+(itemCodeT2!=null?itemCodeT2:"null");
  1473. newItem2=newItem2+"-"+(itemCodeS2!=null?itemCodeS2:"null");
  1474. newItem2=newItem2+"-"+(itemCodeL2!=null?itemCodeL2:"null");
  1475. if(speclFltrue.equals("0")){
  1476. newItem2=newItem2+"-"+(speclFl2!=null?speclFl2:"null");
  1477. }
  1478. newItem2=newItem2+"-"+(STDMIN2!=null?STDMIN2:"null");
  1479. newItem2=newItem2+"-"+(STDMAX2!=null?STDMAX2:"null");
  1480. //内控限制
  1481. String strPic = "select t.* from qcm_ord_design_std_pic t where SPECL_FL='2' and design_key = '"+designKey0+"' and PHY_CODE_L = '"+phyCodeL+"' "
  1482. + " and PHY_CODE_M = '"+phyCodeM+"' and PHY_CODE_S = '"+phyCodeS+"' order by t.phy_code_l,t.phy_code_s ";
  1483. String strPic1 = "select t.* from qcm_ord_design_std_pic t where SPECL_FL='2' and t.design_key = '"+designKey1+"' and PHY_CODE_L = '"+phyCodeL2+"' "
  1484. + " and PHY_CODE_M = '"+phyCodeM2+"' and PHY_CODE_S = '"+phyCodeS2+"' order by t.phy_code_l,t.phy_code_s ";
  1485. List<HashMap> hmpic=mapper.query(strPic.toString());//当前订单
  1486. List<HashMap> hmpic1=mapper.query(strPic1.toString());//已生成订单
  1487. if(hmpic!=null && hmpic.size()>=1 && hmpic1!=null && hmpic1.size()>=1){
  1488. String PICSTDMIN = (String) hmpic.get(0).get("STDMIN");//判定范围下限
  1489. String PICSTDMAX = (String) hmpic.get(0).get("STDMAX");//判定范围上限
  1490. newItem=newItem+"-"+(PICSTDMIN!=null?PICSTDMIN:"null");
  1491. newItem=newItem+"-"+(PICSTDMAX!=null?PICSTDMAX:"null");
  1492. String PICSTDMIN2 = (String) hmpic1.get(0).get("STDMIN");//判定范围下限
  1493. String PICSTDMAX2 = (String) hmpic1.get(0).get("STDMAX");//判定范围上限
  1494. newItem2=newItem2+"-"+(PICSTDMIN2!=null?PICSTDMIN2:"null");
  1495. newItem2=newItem2+"-"+(PICSTDMAX2!=null?PICSTDMAX2:"null");
  1496. }
  1497. //同牌号 不同订单 不同标准
  1498. if(!newItem.equals(newItem2)){
  1499. dkeyScode = "1";
  1500. dkeyScode2 = "1";
  1501. String dkString = designKey1;//已生成订单
  1502. String steelCodeStr = (String) samplesD2.get(0).get("STEEL_CODE");
  1503. String thickStr = (String) samplesD2.get(0).get("THICK");
  1504. String materialNosql = "";
  1505. hashMapStr.clear();
  1506. hashMapStr.put("BATCH_NO", qlty.getBatch_no());
  1507. hashMapStr.put("PLINE_CODE", qlty.getPline_code());
  1508. hashMapStr.put("DESIGN_KEY", dkString);
  1509. hashMapStr.put("STEEL_CODE", steelCodeStr);
  1510. hashMapStr.put("THICK", thickStr);
  1511. hashMapStr.put("BOARD_NO", qlty.getBoard_no());
  1512. materialNosql = ZHBStringSql(hashMapStr);
  1513. //订单标准不一样 1号订单全部脱单 已发送委托 未判定 换成了2号订单 2号订单生成委托 1号订单状态要置成3 不然判定时找不到对应检验号
  1514. List<HashMap> mapmaterial2=mapper.query(materialNosql.toString());//当前订单在库存中还有没有用
  1515. if(mapmaterial2 == null || mapmaterial2.size() <=0 ){
  1516. //没有在库存中查找到当前订单号 说明当前订单号已经没有子板在用了 无需再判定
  1517. String sqlord = "";
  1518. sqlord += " update Qcm_Jhy_Sample_r_Ord t set t.JUDGE_STATUS='3',MEMO ='换单1' ";
  1519. sqlord += " where t.DESIGN_KEY='"+dkString+"' and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.JUDGE_RESULT_CODE is null ";
  1520. mapper.updateJudgeStatus(sqlord.toString());
  1521. }
  1522. }
  1523. }
  1524. //如果是同牌号 不同订单 同标准 不生成委托
  1525. if(dkeyScode.equals("0")){
  1526. String dkString = designKey1;//已生成订单
  1527. String dkString2= designKey0;//当前订单
  1528. //说明库存中还有子板在用1号订单 2号订单标准一样不用生成
  1529. String smpNo = (String) samplesD2.get(0).get("SMP_NO");//已生成订单
  1530. String steelCodeStr = (String) samplesD2.get(0).get("STEEL_CODE");
  1531. String thickStr = (String) samplesD2.get(0).get("THICK");
  1532. String smpLOC="";
  1533. if(memoRg2.equals("true1")){//人工委托
  1534. smpLOC = " and t.SMP_LOCATION_CODE in ('HA','HB') ";//取样位置 防止模拟焊后夹杂
  1535. }
  1536. String sqlzf = "select t.* from QCM_JHY_SAMPLE_CONSIGN_D t,qcm_jhy_sample_r_ord r "
  1537. +" where t.smp_no = r.smp_no and r.DESIGN_KEY='"+dkString+"' and t.batch_no = '"+qlty.getBatch_no()+"' "
  1538. +" and r.steel_code = '"+steelCodeStr+"' and r.thick = '"+thickStr+"' " + smpLOC;
  1539. List<HashMap> hmzf=mapper.query(sqlzf.toString());
  1540. //判断已生成订单 订单号 是否只生成了一个夹杂 如果只生成了一个夹杂 那么直接换成2号订单号ord
  1541. if(hmzf!=null && hmzf.size() == 1){
  1542. if(hmzf.get(0).get("FREQ_CODE").toString().equals("D") && qlty.getProcess_code().equals("HT1")){
  1543. //确定为夹杂一个 换订单号
  1544. String sqlord = "";
  1545. sqlord += " update Qcm_Jhy_Sample_r_Ord t set t.DESIGN_KEY='"+dkString2+"' ";
  1546. sqlord += " where t.DESIGN_KEY='"+dkString+"' and t.BATCH_NO='"+qlty.getBatch_no()+"' ";
  1547. mapper.updateJudgeStatus(sqlord.toString());
  1548. String inlot = (String) samplesD2.get(0).get("INSPECTION_LOT");
  1549. if(inlot.equals("") || inlot==null){
  1550. inlot = qlty.getBatch_no()+"0001";
  1551. }
  1552. qlty.setInspection_lot(inlot);//初样检验号为001
  1553. getInspectionLot=inlot;
  1554. getInspectionLot2 = "1";//不准变检验号
  1555. dkeyScode = "1";
  1556. dkeyScode2 = "1";
  1557. }else{
  1558. //查询中厚板的热处理标识是否一致 热处理之前 热处理之后
  1559. if(memoRg2.equals("true1") || memoRg2.equals("false1")){
  1560. String materialNosql = ZHBStringSql2(qlty.getBatch_no(),qlty.getPline_code(),qlty.getDesign_key(),qlty.getSteel_code(),qlty.getThick());
  1561. List<HashMap> rchm=mapper.query(materialNosql.toString());
  1562. TreeSet<String> rcString=new TreeSet<String>();
  1563. for(HashMap hmap : rchm){
  1564. rcString.add(hmap.get("SAMPLINGREQUESTTIME").toString());
  1565. }
  1566. if(rcString==null || rcString.size()<=1){
  1567. if(memoRg2.equals("true1")){//人工委托
  1568. String pssno=hmzf.get(0).get("PROCESS_NOS").toString();
  1569. String pssno2=getRclState(qlty.getPline_code(),qlty.getMaterial_no());//当前生成的热处理号
  1570. if(!pssno.equals(pssno2)){//两个热处理号不一样
  1571. dkeyScode = "1";
  1572. dkeyScode2 = "1";
  1573. }else{break;}
  1574. }else{break;}
  1575. }
  1576. }else{
  1577. break;
  1578. }
  1579. }
  1580. }else{
  1581. //查询中厚板的热处理标识是否一致 热处理之前 热处理之后
  1582. if(memoRg2.equals("true1") || memoRg2.equals("false1")){
  1583. String materialNosql = ZHBStringSql2(qlty.getBatch_no(),qlty.getPline_code(),qlty.getDesign_key(),qlty.getSteel_code(),qlty.getThick());
  1584. List<HashMap> rchm=mapper.query(materialNosql.toString());
  1585. TreeSet<String> rcString=new TreeSet<String>();
  1586. for(HashMap hmap : rchm){
  1587. rcString.add(hmap.get("SAMPLINGREQUESTTIME").toString());
  1588. }
  1589. if(rcString==null || rcString.size()<=1){
  1590. break;
  1591. }
  1592. }else{
  1593. break;
  1594. }
  1595. }
  1596. }
  1597. }else{
  1598. //订单标准不一样
  1599. dkeyScode = "1";
  1600. dkeyScode2 = "1";
  1601. String dkString = designKey1;//已生成订单
  1602. String steelCodeStr = (String) samplesD2.get(0).get("STEEL_CODE");
  1603. String thickStr = (String) samplesD2.get(0).get("THICK");
  1604. String materialNosql = "";
  1605. hashMapStr.clear();
  1606. hashMapStr.put("BATCH_NO", qlty.getBatch_no());
  1607. hashMapStr.put("PLINE_CODE", qlty.getPline_code());
  1608. hashMapStr.put("DESIGN_KEY", dkString);
  1609. hashMapStr.put("STEEL_CODE", steelCodeStr);
  1610. hashMapStr.put("THICK", thickStr);
  1611. hashMapStr.put("BOARD_NO", qlty.getBoard_no());
  1612. materialNosql = ZHBStringSql(hashMapStr);
  1613. //订单标准不一样 1号订单全部脱单 已发送委托 未判定 换成了2号订单 2号订单生成委托 1号订单状态要置成3 不然判定时找不到对应检验号
  1614. List<HashMap> mapmaterial2=mapper.query(materialNosql.toString());//当前订单在库存中还有没有用
  1615. if(mapmaterial2 == null || mapmaterial2.size() <=0 ){
  1616. //没有在库存中查找到当前订单号 说明当前订单号已经没有子板在用了 无需再判定
  1617. String sqlord = "";
  1618. sqlord += " update Qcm_Jhy_Sample_r_Ord t set t.JUDGE_STATUS='3',MEMO ='换单2' ";
  1619. sqlord += " where t.DESIGN_KEY='"+dkString+"' and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.JUDGE_RESULT_CODE is null ";
  1620. mapper.updateJudgeStatus(sqlord.toString());
  1621. }
  1622. }
  1623. }
  1624. }
  1625. //不同牌号 直接生成新委托
  1626. //同牌号也要修改检验号 因为zj表会变
  1627. //不是人工委托 && 不是子板 如果是一样的轧批 不同牌号
  1628. //!memoRg2.equals("true1") &&
  1629. if(!qlty.getFreq_code().equals("C") && !qlty.getFreq_code().equals("H") && !qlty.getFreq_code().equals("I")){
  1630. //从新生成检验号
  1631. //判断当前检验号是否为空 为空进入 不是人工委托 getInspectionLot2为0
  1632. //getInspectionLot2 防止一订单多牌号 检验号要一样
  1633. if(StringUtils.isBlank(getInspectionLot) && !memoRg2.equals("true1") && getInspectionLot2.equals("0")){
  1634. String inspectionLots= "select max(to_number(substr(inspection_lot,-3))) INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  1635. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code = '"+qlty.getPline_code()+"' ";
  1636. List<HashMap> lots=mapper.query(inspectionLots.toString());
  1637. BigDecimal val = (BigDecimal) lots.get(0).get("INSPECTION_LOT");
  1638. String val2 = val.toString();
  1639. Integer val3 = Integer.parseInt(val2);
  1640. val3++;
  1641. String lotval=qlty.getBatch_no()+ String.format("%04d", val3);
  1642. getInspectionLot = lotval;
  1643. qlty.setInspection_lot(getInspectionLot);//检验号
  1644. getInspectionLot2="1";
  1645. sqlInspection= "";
  1646. sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1647. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  1648. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1649. mapper.insert(sqlInspection);
  1650. //判断有生成过当前取样材料号吗 是否是同一个取样材料号
  1651. String materialNosql = "select * from qcm_jhy_sample_consign_m m,qcm_jhy_sample_r_ord r "
  1652. +" where m.smp_no = r.smp_no "
  1653. +" and m.material_no = '"+qlty.getMaterial_no()+"' order by m.create_time asc ";//已生成订单
  1654. List<HashMap> mapmaterial2=mapper.query(materialNosql.toString());//已生成的取样材料号
  1655. if(mapmaterial2 !=null && mapmaterial2.size()>=1){
  1656. String dkString = (String) mapmaterial2.get(0).get("DESIGN_KEY");
  1657. String steelCodeStr = (String) mapmaterial2.get(0).get("STEEL_CODE");
  1658. String thickStr = (String) mapmaterial2.get(0).get("THICK");
  1659. materialNosql = "";
  1660. hashMapStr.clear();
  1661. hashMapStr.put("BATCH_NO", qlty.getBatch_no());
  1662. hashMapStr.put("PLINE_CODE", qlty.getPline_code());
  1663. hashMapStr.put("DESIGN_KEY", dkString);
  1664. hashMapStr.put("STEEL_CODE", steelCodeStr);
  1665. hashMapStr.put("THICK", thickStr);
  1666. hashMapStr.put("BOARD_NO", qlty.getBoard_no());
  1667. materialNosql = ZHBStringSql(hashMapStr);
  1668. mapmaterial2=null;
  1669. mapmaterial2=mapper.query(materialNosql.toString());//已生成的取样材料号
  1670. if(mapmaterial2 == null || mapmaterial2.size() <=0 ){
  1671. //没有在库存中查找到当前订单号 说明当前订单号已经没有子板在用了 无需再判定
  1672. String sqlord = "";
  1673. sqlord += " update Qcm_Jhy_Sample_r_Ord t set t.JUDGE_STATUS='3',MEMO ='换单3' ";
  1674. sqlord += " where t.DESIGN_KEY='"+dkString+"' and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.JUDGE_RESULT_CODE is null ";
  1675. mapper.updateJudgeStatus(sqlord.toString());
  1676. }
  1677. }
  1678. }
  1679. //不等于人工委托(人工委托时已经弄成最新检验号) 换检验号 一订单多认证机构用同一个检验号
  1680. if(!memoRg2.equals("true1") && getInspectionLot2.equals("1")){
  1681. qlty.setInspection_lot(getInspectionLot);//检验号
  1682. }
  1683. if(zjResultAll.equals("0")){
  1684. zjResultAll="1";
  1685. //订单标准不一样 同牌号 不同订单
  1686. String sqlDesignKey0 ="";
  1687. String sqlDesignKey1 ="";
  1688. if(dkeyScode.equals("1")){
  1689. if(qlty.getPline_code().equals("ZB1")){
  1690. sqlDesignKey0 = " and T.DESIGN_KEY = '"+qlty.getDesign_key()+"' ";
  1691. }else if(qlty.getPline_code().equals("HB1")){
  1692. sqlDesignKey0 = " and T.DESIGN_KEY = '"+qlty.getDesign_key()+"' ";
  1693. }
  1694. }
  1695. String sqlkcz ="";
  1696. if(qlty.getPline_code().equals("ZB1")){
  1697. sqlkcz ="";
  1698. sqlkcz = "SELECT t.* "
  1699. +" FROM (SELECT T.ORDERNO DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELCODE) GRADE_CODE,T.HEIGHT THICK,T.PRODUCTNO MATERIAL_NO "
  1700. +" FROM MB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  1701. +" WHERE T.ORDERNO = A.ORDERNO "
  1702. +" and T.PRODUCTNO not in "
  1703. +" (select T.BILLETID from KCZ_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+qlty.getBatch_no()+"') "
  1704. +" and T.ORDERNO is not null AND A.SAMPLINGREQUESTTIME IN ('A', 'AB') "
  1705. +" union all "
  1706. +" SELECT T.ORDERNO DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  1707. +" FROM KCZ_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  1708. +" WHERE T.ORDERNO = A.ORDERNO and T.ORDERNO is not null AND T.ISVALID <> '0') t "
  1709. +" WHERE t.BATCH_NO = '"+qlty.getBatch_no()+"' and t.BATCH_NO like 'Z%' "
  1710. +" and t.GRADE_CODE = '"+qlty.getGrade_code()+"' and t.THICK = '"+qlty.getThick()+"' and T.DESIGN_KEY not like '19%' "
  1711. + sqlDesignKey0
  1712. + " group by T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO order by t.MATERIAL_NO ";
  1713. List<HashMap> kczh=mapper.query(sqlkcz.toString());
  1714. if(kczh==null || kczh.size()<=0){//转厚板火切出来的
  1715. sqlkcz ="select t.billetid MATERIAL_NO from kch_turnofflist@xgcx t where t.rollnumber = '"+qlty.getBatch_no()+"' "
  1716. + " and t.allotorderform = '"+qlty.getDesign_key()+"' ";
  1717. }
  1718. }else if(qlty.getPline_code().equals("HB1")){
  1719. sqlkcz ="";
  1720. sqlkcz ="SELECT t.* "
  1721. +" FROM (SELECT T.ORDERID DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELTYPE) GRADE_CODE,T.THICK THICK,T.SLABNO MATERIAL_NO "
  1722. +" FROM ZYHB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  1723. +" WHERE T.ORDERID = A.ORDERNO "
  1724. +" and T.SLABNO not in "
  1725. +" (select T.BILLETID from KCH_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+qlty.getBatch_no()+"') "
  1726. +" and T.ORDERID is not null "
  1727. +" union all "
  1728. +" SELECT T.ALLOTORDERFORM DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  1729. +" FROM KCH_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  1730. +" WHERE T.ALLOTORDERFORM = A.ORDERNO and T.ALLOTORDERFORM is not null AND T.PSTATFLAG <> '0') t "
  1731. +" WHERE t.BATCH_NO = '"+qlty.getBatch_no()+"' and t.BATCH_NO like 'H%' "
  1732. +" and t.GRADE_CODE = '"+qlty.getGrade_code()+"' and t.THICK = '"+qlty.getThick()+"' and T.DESIGN_KEY not like '19%' "
  1733. + sqlDesignKey0
  1734. +" group by T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO order by t.MATERIAL_NO asc";
  1735. }
  1736. List<HashMap> kczh=mapper.query(sqlkcz.toString());
  1737. if (kczh!=null && kczh.size()>=1) {
  1738. for (HashMap hashMap : kczh) {
  1739. String bcon = "select nvl(t.BILLETID_JY,'0') BILLETID_JY,t.* from zj_result_all@xgcx t "
  1740. + " where t.billetid like '%"+(String)hashMap.get("MATERIAL_NO")+"%' "
  1741. + " and rownum <= 1 ";
  1742. List<HashMap> billetidJy = mapper.query(bcon.toString());
  1743. if(billetidJy != null && billetidJy.size() >=1 &&
  1744. !billetidJy.get(0).get("BILLETID_JY").equals(qlty.getInspection_lot())
  1745. ){
  1746. if(!billetidJy.get(0).get("JUDGERESULT").equals("0")){
  1747. /*String sqlzj = "";
  1748. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"' ";
  1749. sqlzj += " where t.billetid='"+(String)hashMap.get("MATERIAL_NO")+"' and t.JUDGERESULT='0' ";
  1750. mapper.updateJudgeStatus(sqlzj.toString());*/
  1751. }else{
  1752. String sqlzj = "";
  1753. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"', "
  1754. + " t.PHYSRESULT='0',t.PHYSRESULT_DESC='',t.PHYSID='',t.FST_JUDGERESULT='0',t.FST_JUDGERESULT_DESC='' ";
  1755. sqlzj += " where t.billetid='"+(String)hashMap.get("MATERIAL_NO")+"' ";
  1756. mapper.updateJudgeStatus(sqlzj.toString());
  1757. }
  1758. }
  1759. }
  1760. }
  1761. }
  1762. }
  1763. }else{
  1764. //不是人工委托 && 不是子板 第一次生成委托0001开始
  1765. //!memoRg2.equals("true1") &&
  1766. if(!qlty.getFreq_code().equals("C") && !qlty.getFreq_code().equals("H") && !qlty.getFreq_code().equals("I")&& !chiFreqCode.equals("1") && !getFreqCode.equals("1")){
  1767. String inlot = qlty.getBatch_no()+"0001";
  1768. qlty.setInspection_lot(inlot);//初样检验号为001
  1769. String bcon = "select count(1) CNUM from zj_result_all@xgcx t "
  1770. + " where t.billetid like '%"+(String)qlty.getBatch_no()+"%'"
  1771. + " and nvl(t.billetid_jy,'null') <> '"+inlot+"' ";
  1772. List<HashMap> valn = mapper.query(bcon.toString());
  1773. BigDecimal val2 = (BigDecimal) valn.get(0).get("CNUM");
  1774. String val3 = val2.toString();
  1775. Integer val4 = Integer.parseInt(val3);
  1776. if(val4!=0){
  1777. String sqlzj = "";
  1778. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+inlot+"' ";
  1779. sqlzj += " where t.billetid like '"+(String)qlty.getBatch_no()+"%' ";
  1780. mapper.updateJudgeStatus(sqlzj.toString());
  1781. }
  1782. }
  1783. }
  1784. //子板逻辑限制 硬度 && qlty.getPhy_code_s().equals("D01")
  1785. if((qlty.getFreq_code().equals("C") || qlty.getFreq_code().equals("H") || qlty.getFreq_code().equals("I")) && getInspectionLot2.equals("0") ){
  1786. //按子板先把 检验号置空
  1787. String sqlD = "select t.* from QCM_JHY_SAMPLE_CONSIGN_D t "
  1788. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code='"+qlty.getPline_code()+"' ";
  1789. List<HashMap> hmD = mapper.query(sqlD.toString());
  1790. if(hmD==null || hmD.size()<=0){
  1791. String zjsql = "";
  1792. zjsql += " update zj_result_all@xgcx t set t.billetid_jy = '' "
  1793. + " where t.billetid like '"+qlty.getBatch_no()+"%' ";
  1794. mapper.updateJudgeStatus(zjsql.toString());
  1795. }
  1796. //先按炉夹杂 再子板力学 子板中带有夹杂和力学两种委托
  1797. sqlD="";
  1798. sqlD = "select t.* from QCM_JHY_SAMPLE_CONSIGN_D t,Qcm_Jhy_Sample_r_Ord r "
  1799. + " where t.smp_no=r.smp_no and r.design_key ='"+qlty.getDesign_key()+"' and r.thick='"+qlty.getThick()+"' "
  1800. + " and r.steel_code='"+qlty.getSteel_code()+"' and t.MATERIAL_NO = '"+qlty.getMaterial_no()+"' "
  1801. + " and t.pline_code='"+qlty.getPline_code()+"' and rownum = 1 ";
  1802. List<HashMap> hmD2 = mapper.query(sqlD.toString());
  1803. if(hmD2!=null && hmD2.size()>=1 ){
  1804. qlty.setInspection_lot(hmD2.get(0).get("INSPECTION_LOT").toString());
  1805. getInspectionLot2="1";
  1806. getInspectionLot = hmD2.get(0).get("INSPECTION_LOT").toString();
  1807. }else{
  1808. String sqlLOT = "select nvl(max(to_number(substr(inspection_lot,-3))),'0') INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  1809. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code='"+qlty.getPline_code()+"' ";
  1810. List<HashMap> hmap = mapper.query(sqlLOT.toString());
  1811. BigDecimal hmap1 = (BigDecimal) hmap.get(0).get("INSPECTION_LOT");
  1812. String hmap2 = hmap1.toString();
  1813. Integer hmap3 = Integer.parseInt(hmap2);
  1814. hmap3++;
  1815. getInspectionLot2="1";
  1816. String inspe = qlty.getBatch_no()+String.format("%04d", hmap3);
  1817. qlty.setInspection_lot(inspe);
  1818. getInspectionLot = inspe;
  1819. String sqlzj = "";
  1820. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"' ";
  1821. sqlzj += " where t.billetid='"+(String)qlty.getMaterial_no()+"' ";
  1822. mapper.updateJudgeStatus(sqlzj.toString());
  1823. }
  1824. }else if((qlty.getFreq_code().equals("C") || qlty.getFreq_code().equals("H")|| qlty.getFreq_code().equals("I")) && getInspectionLot2.equals("1")){
  1825. qlty.setInspection_lot(getInspectionLot);
  1826. }else if(chiFreqCode.equals("1")){
  1827. String chistr = " select t.* from QCM_JHY_SAMPLE_CONSIGN_D t,Qcm_Jhy_Sample_r_Ord r "
  1828. +" where t.smp_no=r.smp_no and r.design_key ='"+qlty.getDesign_key()+"' and r.thick='"+qlty.getThick()+"' "
  1829. +" and r.steel_code='"+qlty.getSteel_code()+"' and t.MATERIAL_NO = '"+qlty.getMaterial_no()+"' and rownum = 1 ";
  1830. List<HashMap> hmD = mapper.query(chistr.toString());
  1831. if(hmD!=null && hmD.size()>=1){
  1832. qlty.setInspection_lot(hmD.get(0).get("INSPECTION_LOT").toString());
  1833. getInspectionLot2="1";
  1834. getInspectionLot = hmD.get(0).get("INSPECTION_LOT").toString();
  1835. }else{
  1836. String sqlLOT = "select nvl(max(to_number(substr(inspection_lot,-3))),'0') INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  1837. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code='"+qlty.getPline_code()+"' ";
  1838. List<HashMap> hmap = mapper.query(sqlLOT.toString());
  1839. BigDecimal hmap1 = (BigDecimal) hmap.get(0).get("INSPECTION_LOT");
  1840. String hmap2 = hmap1.toString();
  1841. Integer hmap3 = Integer.parseInt(hmap2);
  1842. hmap3++;
  1843. getInspectionLot2="1";
  1844. String inspe = qlty.getBatch_no()+String.format("%04d", hmap3);
  1845. qlty.setInspection_lot(inspe);
  1846. getInspectionLot = inspe;
  1847. String sqlzj = "";
  1848. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"' ";
  1849. sqlzj += " where t.billetid='"+(String)qlty.getMaterial_no()+"' ";
  1850. mapper.updateJudgeStatus(sqlzj.toString());
  1851. }
  1852. }
  1853. //下面if是性能改善逻辑限制
  1854. }else if((qlty.getPline_code().equals("ZB1") || qlty.getPline_code().equals("HB1")) && memoXngs.equals("true1") && !"19".equals(getDesignKey19)){
  1855. //当前热处理号
  1856. String processNos=getRclState(qlty.getPline_code(),qlty.getMaterial_no());
  1857. String pno1=processNos.substring(0, 1);//第一位
  1858. String pno2=processNos.substring(3, 4);//第四位
  1859. String pno3=processNos.substring(4, 5);//第五位
  1860. String pnoStr=" and substr(t.PROCESS_NOS,0,1)='"+pno1+"' and substr(t.PROCESS_NOS,4,1)='"+pno2+"' and substr(t.PROCESS_NOS,5,1)='"+pno3+"' ";
  1861. String sqlxngsSel="select * from qcm_jhy_zhbinspectionlot_xngs t where t.material_no = '"+qlty.getMaterial_no()+"' and t.process_nos = '"+processNos+"' and rownum <=2 ";
  1862. List<HashMap> hmxngs = mapper.query(sqlxngsSel.toString());
  1863. if(hmxngs==null || hmxngs.size()<=0){
  1864. String sqlXNGS= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT_XNGS "
  1865. + " (design_key, steel_code, thick, pline_code, heat_no, batch_no, inspection_lot, material_no, process_nos, create_name) "
  1866. + " VALUES"
  1867. + " ('"+qlty.getDesign_key()+"','"+qlty.getSteel_code()+"','"+qlty.getThick()+"','"+qlty.getPline_code()+"','"+qlty.getHeat_no()+"',"
  1868. + " '"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getMaterial_no()+"','"+processNos+"','XNGS') ";
  1869. mapper.insert(sqlXNGS);
  1870. }
  1871. String substr=processNos.substring(2, 3);//第三位不为H
  1872. String substr2=processNos.substring(4, 5);//第五位不为Q
  1873. if(substr.equals("H") || processNos.contains("QG") || substr2.equals("Q")){
  1874. break;
  1875. }
  1876. //子板性能改善限制
  1877. if((qlty.getFreq_code().equals("C") || qlty.getFreq_code().equals("H") || qlty.getFreq_code().equals("I")) && getInspectionLot2.equals("0") ){
  1878. String sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1879. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  1880. + " '性能改善','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1881. mapper.insert(sqlInspection);
  1882. //判断是否生成过
  1883. String sqlmaterial = "select * from qcm_jhy_sample_consign_d t where t.material_no='"+qlty.getMaterial_no()+"' and t.FREQ_CODE IN ('C','H','I') "
  1884. + pnoStr;
  1885. List<HashMap> hmmaterial = mapper.query(sqlmaterial.toString());
  1886. if(hmmaterial!=null && hmmaterial.size()>=1){
  1887. break;
  1888. }
  1889. String sqlLOT = "select nvl(max(to_number(substr(inspection_lot,-3))),'0') INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  1890. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code='"+qlty.getPline_code()+"' ";
  1891. List<HashMap> hmap = mapper.query(sqlLOT.toString());
  1892. BigDecimal hmap1 = (BigDecimal) hmap.get(0).get("INSPECTION_LOT");
  1893. String hmap2 = hmap1.toString();
  1894. Integer hmap3 = Integer.parseInt(hmap2);
  1895. hmap3++;
  1896. getInspectionLot2="1";
  1897. String inspe = qlty.getBatch_no()+String.format("%04d", hmap3);
  1898. qlty.setInspection_lot(inspe);
  1899. getInspectionLot = inspe;
  1900. String sqlzj = "";
  1901. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"' ";
  1902. sqlzj += " where t.billetid='"+(String)qlty.getMaterial_no()+"' ";
  1903. mapper.updateJudgeStatus(sqlzj.toString());
  1904. String sqlD = "select t.* from QCM_JHY_SAMPLE_CONSIGN_D t "
  1905. +" where t.material_no = '"+qlty.getMaterial_no()+"' and t.pline_code = '"+qlty.getPline_code()+"'"
  1906. +" and t.FREQ_CODE IN ('C','H','I') ";
  1907. List<HashMap> sqlDhm = mapper.query(sqlD.toString());
  1908. if(sqlDhm!=null && sqlDhm.size()>=1){
  1909. for (HashMap hashMap : sqlDhm) {
  1910. String smpNo = hashMap.get("SMP_NO").toString();
  1911. String ordSql = "update Qcm_Jhy_Sample_r_Ord t set t.JUDGE_STATUS = '3' where t.SMP_NO = '"+smpNo+"' and t.JUDGE_RESULT_CODE is null ";
  1912. mapper.updateJudgeStatus(ordSql.toString());
  1913. }
  1914. String loksql = "select * from qcm_judge_locking t "
  1915. + " where t.MATERIAL_NO = '"+(String)qlty.getMaterial_no()+"' and unlock_type_code is null and lock_type_code = 'P' ";
  1916. List<HashMap> rs=mapper.query(loksql.toString());
  1917. if(rs!=null && rs.size()>=1){
  1918. String sql3= "update qcm_judge_locking t "
  1919. + " set t.unlock_type_code = '17',t.unlock_type_desc = '性能改善',"
  1920. + " t.unlock_name='sys',t.unlock_time =sysdate "
  1921. + " where t.MATERIAL_NO = '"+qlty.getMaterial_no()+"' and t.unlock_type_code is null and lock_type_code = 'P' ";
  1922. mapper.updateJudgeStatus(sql3.toString());
  1923. }
  1924. }
  1925. }else if((qlty.getFreq_code().equals("C") || qlty.getFreq_code().equals("H") || qlty.getFreq_code().equals("I")) && getInspectionLot2.equals("1")){
  1926. qlty.setInspection_lot(getInspectionLot);
  1927. }
  1928. String chiD="0";
  1929. //子板中的夹杂
  1930. if(qlty.getFreq_code().equals("D")){
  1931. String chiDsql = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t "
  1932. +" where t.Rate_Code in ('C', 'H', 'I') and t.design_key = '"+qlty.getDesign_key()+"' ";
  1933. List<HashMap> hmap=mapper.query(chiDsql.toString());
  1934. if(hmap!=null && hmap.size()>=1 && getInspectionLot2.equals("1")){
  1935. chiD="1";
  1936. qlty.setInspection_lot(getInspectionLot);
  1937. }
  1938. }
  1939. //不等于子板性能改善逻辑限制
  1940. if(!qlty.getFreq_code().equals("C") && !qlty.getFreq_code().equals("H") && !qlty.getFreq_code().equals("I") && chiD.equals("0")){
  1941. //当前热处理号
  1942. //String outps =" and t.PROCESS_NOS= '"+processNos+"' ";
  1943. String freqCode="";
  1944. String getBoardNo="";
  1945. if(qlty.getFreq_code().equals("B")){
  1946. freqCode=" and t.BOARD_NO = '"+qlty.getBoard_no()+"' ";
  1947. getBoardNo=" and t.BILLETID like '"+qlty.getBoard_no()+"%' ";
  1948. }
  1949. // 不能按照热处理号来 热处理号随时改变但是委托只要一条
  1950. String xgnsSql = "select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r "
  1951. +" where t.smp_no = r.smp_no "
  1952. +" and r.design_key = '"+qlty.getDesign_key()+"' "
  1953. +" and to_char(r.THICK, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') "
  1954. //+" and r.steel_code = '"+qlty.getGrade_code()+"' "
  1955. +" and t.batch_no = '"+qlty.getBatch_no()+"' "
  1956. +" and r.INSPECTION_LOT is not null "
  1957. + pnoStr
  1958. + freqCode
  1959. + " and rownum = 1 ";
  1960. List<HashMap> xgnshm=mapper.query(xgnsSql.toString());
  1961. if (xgnshm!=null && xgnshm.size()>=1) {
  1962. String inspectionLotxgns = "";
  1963. if(StringUtils.isNotBlank(xgnshm.get(0).get("INSPECTION_LOT").toString())){
  1964. inspectionLotxgns=xgnshm.get(0).get("INSPECTION_LOT").toString();
  1965. qlty.setInspection_lot(inspectionLotxgns);
  1966. getInspectionLot2="1";
  1967. }
  1968. }else{
  1969. //规格\牌号\轧批\热处理号
  1970. xgnsSql="";
  1971. xgnsSql = "select r.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r "
  1972. +" where t.smp_no = r.smp_no "
  1973. +" and to_char(r.THICK, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') "
  1974. +" and r.steel_code = '"+qlty.getGrade_code()+"' "
  1975. +" and t.batch_no = '"+qlty.getBatch_no()+"' "
  1976. +" and r.INSPECTION_LOT is not null and r.design_key not like '19%' "
  1977. + pnoStr
  1978. + freqCode
  1979. + " and rownum = 1 ";
  1980. List<HashMap> xgnshm2=mapper.query(xgnsSql.toString());
  1981. if(xgnshm2!=null && xgnshm2.size()>=1){
  1982. String DesignKeyXn = qlty.getDesign_key();//当前订单号
  1983. String DesignKeyXn2= xgnshm2.get(0).get("DESIGN_KEY").toString();//已生成的订单号
  1984. String xngs=getQcmOrdDesignSampleM(DesignKeyXn,DesignKeyXn2,"XNGS");
  1985. if(!"1".equals(xngs)){
  1986. break;
  1987. }
  1988. }
  1989. }
  1990. if(xngslog.equals("0") && getInspectionLot2.equals("0")){
  1991. String sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  1992. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  1993. + " '1性能改善','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  1994. mapper.insert(sqlInspection);
  1995. String inspectionLots= "select nvl(max(to_number(substr(inspection_lot,-3))),0) INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  1996. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code = '"+qlty.getPline_code()+"' ";
  1997. List<HashMap> lots=mapper.query(inspectionLots.toString());
  1998. BigDecimal val = (BigDecimal) lots.get(0).get("INSPECTION_LOT");
  1999. String val2 = val.toString();
  2000. Integer val3 = Integer.parseInt(val2);
  2001. val3++;
  2002. String lotval=qlty.getBatch_no()+ String.format("%04d", val3);
  2003. qlty.setInspection_lot(lotval);//检验号
  2004. String batchPline = (String)qlty.getBatch_no().substring(0, 1);
  2005. String batchPlines = batchPline;
  2006. if(batchPlines.equals("Z")){
  2007. if(!qlty.getPline_code().equals("ZB1")){
  2008. break;
  2009. }
  2010. }else if(batchPlines.equals("H")){
  2011. if(!qlty.getPline_code().equals("HB1")){
  2012. break;
  2013. }
  2014. }
  2015. if(batchPlines.equals("Z")){
  2016. qlty.setPline_code("ZB1");
  2017. qlty.setPline_name("中板线");
  2018. }else if(batchPlines.equals("H")){
  2019. qlty.setPline_code("HB1");
  2020. qlty.setPline_name("厚板线");
  2021. }
  2022. String memoname = "调用接口";
  2023. if(memoRg2.equals("true1")){
  2024. memoname = "人工委托";
  2025. }
  2026. sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  2027. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  2028. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  2029. mapper.insert(sqlInspection);
  2030. if(qlty.getPline_code().toString().equals("ZB1") || qlty.getPline_code().toString().equals("HB1")){
  2031. String sqlzj = "";
  2032. if(memoXngs.equals("true1")){//性能改善
  2033. String sql="SELECT t.inspection_lot,t.SMP_NO,t.SPECIMEN_NO,o.design_key,nvl(o.JUDGE_RESULT_CODE,'2') JUDGE_RESULT_CODE FROM QCM_JHY_SAMPLE_CONSIGN_D t,Qcm_Jhy_Sample_r_Ord o "
  2034. + "WHERE t.smp_no = o.smp_no and o.design_key='"+qlty.getDesign_key()+"'"
  2035. + " and o.steel_code = '"+qlty.getGrade_code()+"' and to_char(o.thick, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') "
  2036. + " and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  2037. + " and t.PLINE_CODE = '"+qlty.getPline_code()+"' "
  2038. + freqCode
  2039. + " and o.DESIGN_KEY not like '19%' order by o.create_time desc ";
  2040. List<HashMap> samplesD2=mapper.query(sql.toString());
  2041. if(samplesD2==null || samplesD2.size()<=0){
  2042. sql = "";
  2043. sql+="SELECT t.inspection_lot,t.SMP_NO,t.SPECIMEN_NO,o.design_key,nvl(o.JUDGE_RESULT_CODE,'2') JUDGE_RESULT_CODE FROM QCM_JHY_SAMPLE_CONSIGN_D t,Qcm_Jhy_Sample_r_Ord o "
  2044. + "WHERE t.smp_no = o.smp_no and o.steel_code = '"+qlty.getGrade_code()+"' and to_char(o.thick, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') "
  2045. + " and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.HEAT_NO = '"+qlty.getHeat_no()+"' "
  2046. + " and t.PLINE_CODE = '"+qlty.getPline_code()+"' "
  2047. + freqCode
  2048. + " and o.DESIGN_KEY not like '19%' order by o.create_time desc ";
  2049. samplesD2=null;
  2050. samplesD2=mapper.query(sql.toString());
  2051. }
  2052. //有没有初样20230726 没有综判 ,t.PHYSID=''
  2053. if(samplesD2==null || samplesD2.size()<=0){
  2054. String sqlzjy = " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"',"
  2055. + " t.PHYSRESULT='0',t.PHYSRESULT_DESC='' "
  2056. + " where t.billetid like '"+(String)qlty.getBatch_no()+"%' "
  2057. + getBoardNo
  2058. + " and JUDGERESULT='0' ";
  2059. mapper.updateJudgeStatus(sqlzjy.toString());
  2060. }else{
  2061. //有
  2062. String zjBilletidJy=(String) samplesD2.get(0).get("INSPECTION_LOT");//初样的检验号
  2063. String judgeResultCode = (String) samplesD2.get(0).get("JUDGE_RESULT_CODE");//材质判定结果
  2064. //查询有多少个子板是性能改善
  2065. String xngsSqlStr = ZHBXlgxStringSql(processNos,qlty.getBatch_no(),qlty.getPline_code(),qlty.getDesign_key(),qlty.getGrade_code(),qlty.getThick());
  2066. samplesD2=null;
  2067. samplesD2=mapper.query(xngsSqlStr.toString());
  2068. //当前性能改善在库存中是否有相应子板 合格1进入if 不合格2不进入
  2069. if(samplesD2!=null && samplesD2.size()>=1 && !judgeResultCode.equals("2")){
  2070. for (HashMap hashMap : samplesD2) {
  2071. String bcon = "select nvl(t.BILLETID_JY,'0') BILLETID_JY,t.* from zj_result_all@xgcx t "
  2072. + " where t.billetid like '%"+(String)hashMap.get("MATERIAL_NO")+"%' "
  2073. + " and rownum <= 1 ";
  2074. List<HashMap> billetidJy = mapper.query(bcon.toString());
  2075. if(billetidJy != null && billetidJy.size() >=1 &&
  2076. !billetidJy.get(0).get("BILLETID_JY").equals(qlty.getInspection_lot())
  2077. ){
  2078. if(!billetidJy.get(0).get("JUDGERESULT").equals("0")){
  2079. /* sqlzj = "";
  2080. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"' ";
  2081. sqlzj += " where t.billetid='"+(String)hashMap.get("MATERIAL_NO")+"' and t.JUDGERESULT='0' ";
  2082. mapper.updateJudgeStatus(sqlzj.toString());*/
  2083. }else{
  2084. sqlzj = "";
  2085. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"', "
  2086. + " t.PHYSRESULT='0',t.PHYSRESULT_DESC='',t.PHYSID='' ";
  2087. sqlzj += " where t.billetid='"+(String)hashMap.get("MATERIAL_NO")+"' "
  2088. + getBoardNo
  2089. + " and t.JUDGERESULT='0' ";
  2090. mapper.updateJudgeStatus(sqlzj.toString());
  2091. }
  2092. }
  2093. }
  2094. }else{
  2095. String bcon = "select t.* from zj_result_all@xgcx t "
  2096. + " where t.BILLETID_JY = '"+zjBilletidJy+"' ";
  2097. List<HashMap> billetidJy = mapper.query(bcon.toString());
  2098. if(billetidJy != null && billetidJy.size() >=1 ){
  2099. String sqlzjy = " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"',"
  2100. + " t.PHYSRESULT='0',t.PHYSRESULT_DESC='',t.PHYSID='' "
  2101. + " where t.BILLETID_JY = '"+zjBilletidJy+"' and t.JUDGERESULT='0' ";
  2102. mapper.updateJudgeStatus(sqlzjy.toString());
  2103. }
  2104. }
  2105. }
  2106. //查询ord中的检验号
  2107. String qcmrord = "select * from QCM_JHY_SAMPLE_R_ORD "
  2108. + " where BATCH_NO = '"+qlty.getBatch_no()+"' and STEEL_CODE = '"+qlty.getGrade_code()+"'"
  2109. + " and to_char(THICK, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') and HEAT_NO = '"+qlty.getHeat_no()+"' "
  2110. + " and DESIGN_KEY='"+qlty.getDesign_key()+"' and INSPECTION_LOT is not null and IMPROVE_MEMO is null";
  2111. List<HashMap> ordbilletidJy = mapper.query(qcmrord.toString());
  2112. if(ordbilletidJy!=null && ordbilletidJy.size()>=1){
  2113. //拿检验号查 ZJ表中还有没有
  2114. String zjbilletidJy = "select t.* from zj_result_all@xgcx t "
  2115. + " where t.BILLETID_JY='"+ordbilletidJy.get(0).get("INSPECTION_LOT")+"' "
  2116. + " and t.BILLETID like '"+qlty.getBatch_no()+"%' ";
  2117. List<HashMap> billetidJy = mapper.query(zjbilletidJy.toString());
  2118. //没有ord置成 3
  2119. if(billetidJy==null || billetidJy.size()<=0){
  2120. String xnDsql = " update QCM_JHY_SAMPLE_R_ORD set JUDGE_STATUS = '3' "
  2121. + " where BATCH_NO = '"+qlty.getBatch_no()+"' and STEEL_CODE = '"+qlty.getGrade_code()+"'"
  2122. + " and to_char(THICK, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') and HEAT_NO = '"+qlty.getHeat_no()+"' and DESIGN_KEY='"+qlty.getDesign_key()+"' and IMPROVE_MEMO is null and JUDGE_RESULT_CODE is null ";
  2123. mapper.updateJudgeStatus(xnDsql.toString());
  2124. }
  2125. }
  2126. String loksql = "select * from qcm_judge_locking t "
  2127. + " where t.batch_no = '"+(String)qlty.getBatch_no()+"' and unlock_type_code is null ";
  2128. List<HashMap> rs=mapper.query(loksql.toString());
  2129. if(rs!=null && rs.size()>=1){
  2130. String sql3= "update qcm_judge_locking t "
  2131. + " set t.unlock_type_code = '17',t.unlock_type_desc = '性能改善',"
  2132. + " t.unlock_name='sys',t.unlock_time =sysdate "
  2133. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.LOCK_TYPE_CODE='P' and t.unlock_type_code is null";
  2134. mapper.updateJudgeStatus(sql3.toString());
  2135. }
  2136. }
  2137. }
  2138. xngslog="1";
  2139. }
  2140. }
  2141. }
  2142. //判断是中厚板还是卷板 19非计划 39 49 59改判逻辑限制
  2143. if("19".equals(getDesignKey19) && (qlty.getPline_code().equals("ZB1") || qlty.getPline_code().equals("HB1"))){
  2144. //19订单块块取样
  2145. if("19".equals(getDesignKey19) && getInspectionLot2.equals("0")&& (qlty.getPline_code().equals("ZB1") || qlty.getPline_code().equals("HB1"))){
  2146. String memoname = "调用接口";
  2147. if(memoRg2.equals("true1")){
  2148. memoname = "人工委托";
  2149. }
  2150. String sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,ZJ_INSPECTION_LOT,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  2151. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  2152. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+qlty.getInspection_lot()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  2153. mapper.insert(sqlInspection);
  2154. sqlInspection="";
  2155. sqlInspection = "select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r"
  2156. + " where t.smp_no = r.smp_no "
  2157. + " and t.material_no = '"+qlty.getMaterial_no()+"'"
  2158. +" and r.design_key = '"+qlty.getDesign_key()+"' "
  2159. +" and r.thick = '"+qlty.getThick()+"' "
  2160. +" and r.steel_code = '"+qlty.getGrade_code()+"' "
  2161. +" and t.batch_no = '"+qlty.getBatch_no()+"' and t.VALIDFLAG='1' ";
  2162. List<HashMap> mnoHm=mapper.query(sqlInspection.toString());
  2163. if(mnoHm!=null && mnoHm.size()>=1){
  2164. return "";
  2165. }
  2166. String inspectionLots= "select max(to_number(substr(inspection_lot,-3))) INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  2167. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code = '"+qlty.getPline_code()+"' ";
  2168. List<HashMap> lots=mapper.query(inspectionLots.toString());
  2169. Integer val3=0;
  2170. if(lots.get(0).get("INSPECTION_LOT")!=null && !"".equals(lots.get(0).get("INSPECTION_LOT"))){
  2171. BigDecimal val = (BigDecimal) lots.get(0).get("INSPECTION_LOT");
  2172. String val2 = val.toString();
  2173. val3= Integer.parseInt(val2);
  2174. }
  2175. val3++;
  2176. String lotval=qlty.getBatch_no()+ String.format("%04d", val3);
  2177. getInspectionLot = lotval;
  2178. qlty.setInspection_lot(getInspectionLot);//检验号
  2179. getInspectionLot2 = "1";
  2180. getInspectionLot19=getInspectionLot;
  2181. sqlInspection="";
  2182. sqlInspection= "INSERT INTO QCM_JHY_ZHBINSPECTIONLOT (HEAT_NO,BATCH_NO,INSPECTION_LOT,PLINE_CODE,CREATE_NAME,DESIGN_KEY,STEEL_CODE,THICK,GRADE_CODE,PROCESS_CODE) "
  2183. + " VALUES('"+(String)qlty.getHeat_no()+"','"+qlty.getBatch_no()+"','"+qlty.getInspection_lot()+"','"+qlty.getPline_code()+"',"
  2184. + " '"+memoname+"','"+qlty.getDesign_key()+"','"+lotSteelCode+"','"+lotThick+"','"+lotGradeCode+"','"+lotProcessCode+"') ";
  2185. mapper.insert(sqlInspection);
  2186. String sqlzj = "";
  2187. sqlzj += " update zj_result_all@xgcx t set t.billetid_jy = '"+qlty.getInspection_lot()+"', "
  2188. + " t.PHYSRESULT='0',t.PHYSRESULT_DESC='',t.PHYSID='',t.PIC_IS_LOCK='0' ";
  2189. sqlzj += " where t.billetid='"+(String)qlty.getMaterial_no()+"' and t.JUDGERESULT='0' ";
  2190. mapper.updateJudgeStatus(sqlzj.toString());
  2191. //19合同换单 注意一下19会不会出现夹杂20230601
  2192. sqlzj = "";
  2193. sqlzj = " select r.DESIGN_KEY,t.* from QCM_JHY_SAMPLE_CONSIGN_D t,QCM_JHY_SAMPLE_R_ORD r "
  2194. +" where t.smp_no = r.smp_no and t.MATERIAL_NO = '"+qlty.getMaterial_no()+"' and r.design_key like '19%' and t.VALIDFLAG = '1' ";
  2195. List<HashMap> hmdk=mapper.query(sqlzj.toString());
  2196. if(hmdk!=null && hmdk.size()>=1){
  2197. for (int i = 0; i < hmdk.size(); i++) {
  2198. sqlzj = "";
  2199. sqlzj = " update Qcm_Jhy_Sample_r_Ord t set t.JUDGE_STATUS='3',MEMO ='换单19' "
  2200. + " where t.DESIGN_KEY='"+hmdk.get(i).get("DESIGN_KEY")+"'"
  2201. + " and t.BATCH_NO='"+qlty.getBatch_no()+"' and t.SMP_NO = '"+hmdk.get(i).get("SMP_NO")+"' ";
  2202. mapper.updateJudgeStatus(sqlzj.toString());
  2203. sqlzj = "";
  2204. sqlzj = " update QCM_JHY_SAMPLE_CONSIGN_D t set t.VALIDFLAG='0' "
  2205. + " where t.SPECIMEN_NO='"+hmdk.get(i).get("SPECIMEN_NO")+"' ";
  2206. mapper.updateJudgeStatus(sqlzj.toString());
  2207. }
  2208. }
  2209. }
  2210. if("19".equals(getDesignKey19) && getInspectionLot2.equals("1") && (qlty.getPline_code().equals("ZB1") || qlty.getPline_code().equals("HB1"))){
  2211. qlty.setInspection_lot(getInspectionLot19);//检验号
  2212. }
  2213. }else if(("39".equals(getDesignKey19) || "49".equals(getDesignKey19) || "59".equals(getDesignKey19) )
  2214. && (qlty.getPline_code().equals("RZ1") || qlty.getPline_code().equals("LT1"))){
  2215. //卷板 0默认子板,1按批
  2216. if(qlty.getAbatchLog().equals("1") && ("39".equals(getDesignKey19) || "49".equals(getDesignKey19) || "59".equals(getDesignKey19) )
  2217. && getInspectionLot2.equals("0")&& (qlty.getPline_code().equals("RZ1") || qlty.getPline_code().equals("LT1"))){
  2218. String sqlInspection = "select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r"
  2219. + " where t.smp_no = r.smp_no "
  2220. +" and r.design_key = '"+qlty.getDesign_key()+"' "
  2221. +" and to_char(r.thick, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') "
  2222. +" and r.steel_code = '"+qlty.getSteel_code()+"' "
  2223. +" and t.batch_no = '"+qlty.getBatch_no()+"' and t.IMPROVE_MEMO= '1' ";
  2224. List<HashMap> mnoHm=mapper.query(sqlInspection.toString());
  2225. if(mnoHm!=null && mnoHm.size()>=1){
  2226. return "";
  2227. }
  2228. String inspectionLots= "select max(to_number(substr(inspection_lot,-3))) INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  2229. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code = '"+qlty.getPline_code()+"' ";
  2230. List<HashMap> lots=mapper.query(inspectionLots.toString());
  2231. Integer val3=0;
  2232. if(lots.get(0).get("INSPECTION_LOT")!=null && !"".equals(lots.get(0).get("INSPECTION_LOT"))){
  2233. BigDecimal val = (BigDecimal) lots.get(0).get("INSPECTION_LOT");
  2234. String val2 = val.toString();
  2235. val3= Integer.parseInt(val2);
  2236. }
  2237. val3++;
  2238. String lotval=qlty.getBatch_no().toString();
  2239. if(qlty.getPline_code().equals("RZ1")){
  2240. lotval=lotval+ String.format("%05d", val3);
  2241. }else if(qlty.getPline_code().equals("LT1")){
  2242. lotval=lotval+ String.format("%03d", val3);
  2243. }
  2244. getInspectionLot = lotval;
  2245. qlty.setInspection_lot(getInspectionLot);//检验号
  2246. getInspectionLot2 = "1";
  2247. getInspectionLot19=getInspectionLot;
  2248. String coilResult = "select t.* from qcm_judge_coil_result t where t.COIL_NO like '"+qlty.getBatch_no()+"%' and t.abatchlog = '1' ";
  2249. List<HashMap> coilResulthm=mapper.query(coilResult.toString());
  2250. if(coilResulthm==null || coilResulthm.size()<=0){
  2251. return "";
  2252. }
  2253. for (int i = 0; i < coilResulthm.size(); i++) {
  2254. String sqlrz="";
  2255. if(qlty.getPline_code().equals("RZ1")){
  2256. sqlrz=" update tbh02_coil_comm "
  2257. + " set SAMPL_NO ='"+getInspectionLot+"' "
  2258. + " where OLD_SAMPL_NO ='"+coilResulthm.get(i).get("COIL_NO").toString()+"' ";
  2259. mapper.updateJudgeStatus(sqlrz.toString());
  2260. //清除组批区间
  2261. String sqlStr="update tbf02_spec_mill t "
  2262. + " set MIXROLL='' "
  2263. + " where t.COIL_NO in ( "
  2264. + " select COIL_NO from tbh02_coil_comm c where c.OLD_SAMPL_NO ='"+coilResulthm.get(i).get("COIL_NO").toString()+"' "
  2265. + " ) ";
  2266. mapper.updateJudgeStatus(sqlStr.toString());
  2267. }else if(qlty.getPline_code().equals("LT1")){
  2268. sqlrz=" update C_TBC02_COIL_COMM "
  2269. + " set SMP_NO ='"+getInspectionLot+"' "
  2270. + " where OLD_SAMPL_NO ='"+coilResulthm.get(i).get("COIL_NO").toString()+"' ";
  2271. mapper.updateJudgeStatus(sqlrz.toString());
  2272. }
  2273. sqlrz="";
  2274. sqlrz=" update qcm_judge_coil_result "
  2275. + " set SCAN_FLAG = 'Y',PHYSRESULT = '0',PHYSRESULT_DESC='待判', inspection_lot = '"+getInspectionLot+"' "
  2276. + " where coil_no ='"+coilResulthm.get(i).get("COIL_NO").toString()+"' ";
  2277. mapper.updateJudgeStatus(sqlrz.toString());
  2278. }
  2279. }else if(("39".equals(getDesignKey19) || "49".equals(getDesignKey19) || "59".equals(getDesignKey19) )
  2280. && getInspectionLot2.equals("0")&& (qlty.getPline_code().equals("RZ1") || qlty.getPline_code().equals("LT1"))){
  2281. //39 49 59订单块块取样
  2282. String sqlInspection = "select t.* from qcm_jhy_sample_consign_d t,qcm_jhy_sample_r_ord r"
  2283. + " where t.smp_no = r.smp_no "
  2284. + " and t.material_no = '"+qlty.getMaterial_no()+"'"
  2285. +" and r.design_key = '"+qlty.getDesign_key()+"' "
  2286. +" and to_char(r.thick, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') "
  2287. +" and r.steel_code = '"+qlty.getSteel_code()+"' "
  2288. +" and t.batch_no = '"+qlty.getBatch_no()+"' ";
  2289. List<HashMap> mnoHm=mapper.query(sqlInspection.toString());
  2290. if(mnoHm!=null && mnoHm.size()>=1){
  2291. return "";
  2292. }
  2293. String inspectionLots= "select max(to_number(substr(inspection_lot,-3))) INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  2294. + " where t.batch_no = '"+qlty.getBatch_no()+"' and t.pline_code = '"+qlty.getPline_code()+"' ";
  2295. List<HashMap> lots=mapper.query(inspectionLots.toString());
  2296. Integer val3=0;
  2297. if(lots.get(0).get("INSPECTION_LOT")!=null && !"".equals(lots.get(0).get("INSPECTION_LOT"))){
  2298. BigDecimal val = (BigDecimal) lots.get(0).get("INSPECTION_LOT");
  2299. String val2 = val.toString();
  2300. val3= Integer.parseInt(val2);
  2301. }
  2302. val3++;
  2303. String lotval=qlty.getBatch_no().toString();
  2304. if(qlty.getPline_code().equals("RZ1")){
  2305. lotval=lotval+ String.format("%05d", val3);
  2306. }else if(qlty.getPline_code().equals("LT1")){
  2307. lotval=lotval+ String.format("%03d", val3);
  2308. }
  2309. getInspectionLot = lotval;
  2310. qlty.setInspection_lot(getInspectionLot);//检验号
  2311. getInspectionLot2 = "1";
  2312. getInspectionLot19=getInspectionLot;
  2313. String sqlrz="";
  2314. if(qlty.getPline_code().equals("RZ1")){
  2315. sqlrz=" update tbh02_coil_comm "
  2316. + " set SAMPL_NO ='"+getInspectionLot+"' "
  2317. + " where OLD_SAMPL_NO = '"+qlty.getMaterial_no()+"' ";
  2318. mapper.updateJudgeStatus(sqlrz.toString());
  2319. //清除组批区间
  2320. String sqlStr="update tbf02_spec_mill t "
  2321. + " set MIXROLL='' "
  2322. + " where t.COIL_NO in ( "
  2323. + " select COIL_NO from tbh02_coil_comm c where c.OLD_SAMPL_NO = '"+qlty.getMaterial_no()+"' "
  2324. + " ) ";
  2325. mapper.updateJudgeStatus(sqlStr.toString());
  2326. }else if(qlty.getPline_code().equals("LT1")){
  2327. sqlrz=" update C_TBC02_COIL_COMM "
  2328. + " set SMP_NO ='"+getInspectionLot+"' "
  2329. + " where OLD_SAMPL_NO = '"+qlty.getMaterial_no()+"' ";
  2330. mapper.updateJudgeStatus(sqlrz.toString());
  2331. }
  2332. sqlrz="";
  2333. sqlrz=" update qcm_judge_coil_result "
  2334. + " set SCAN_FLAG = 'Y',PHYSRESULT = '0',PHYSRESULT_DESC='待判', inspection_lot = '"+getInspectionLot+"' "
  2335. + " where coil_no = '"+qlty.getMaterial_no()+"' ";
  2336. mapper.updateJudgeStatus(sqlrz.toString());
  2337. }
  2338. if(("39".equals(getDesignKey19) || "49".equals(getDesignKey19) || "59".equals(getDesignKey19) )
  2339. && getInspectionLot2.equals("1") && (qlty.getPline_code().equals("RZ1") || qlty.getPline_code().equals("LT1")) ){
  2340. qlty.setInspection_lot(getInspectionLot19);//检验号
  2341. }
  2342. }
  2343. //判断是否时螺纹钢
  2344. if (qlty.getTimes()!=null && qlty.getTimes()>0) {
  2345. getTimestn = "1";
  2346. createSpecialQtlySample(qlty,jsonStrng,sqlucomm);
  2347. continue;
  2348. }
  2349. //判断是否时硬线
  2350. if (qlty.getSmpCounts()!=null && qlty.getSmpCounts()>0) {
  2351. createSpecialQtlySampleNew(qlty,jsonStrng,sqlucomm);
  2352. continue;
  2353. }
  2354. //试样号 等于design_key+psc+认证机构cert_inst_code+试样类型smp_type_code INSPECTION_LOT检验号 240611增加热处理标识代码
  2355. sqlucomm.setLength(0);
  2356. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1")){
  2357. if(StringUtils.isNotBlank(qlty.getProcess_code()) && !"D".equals(qlty.getFreq_code())
  2358. && (qlty.getProcess_code().equals("HB1") || qlty.getProcess_code().equals("ZB1") || qlty.getProcess_code().equals("HT1"))){
  2359. sqlucomm.append("select t.smp_no from QCM_JHY_SAMPLE_CONSIGN_M t inner join QCM_JHY_SAMPLE_R_ORD d on d.smp_no=t.smp_no ");
  2360. sqlucomm.append(" inner join qcm_jhy_sample_consign_d n on n.smp_no = t.smp_no ");
  2361. sqlucomm.append(" and n.FREQ_CODE='"+qlty.getFreq_code()+"' and d.design_key='"+qlty.getDesign_key()+"' ");
  2362. sqlucomm.append(" and d.psc='"+qlty.getPsc()+"' and t.smp_catg='B' and t.cert_inst_code='"+qlty.getOrg_code()+"' and t.smp_type_code='"+qlty.getSample_style_code()+"' ");
  2363. sqlucomm.append(" and t.INSPECTION_LOT='"+qlty.getInspection_lot()+"' and t.PLINE_CODE = '"+qlty.getPline_code()+"' "
  2364. + " and to_char(d.thick, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') and n.smp_type_code = '0' and n.PROCESS_CODE = '"+qlty.getProcess_code()+"' order by t.smp_no asc ");
  2365. }else{
  2366. sqlucomm.append("select t.smp_no from QCM_JHY_SAMPLE_CONSIGN_M t inner join QCM_JHY_SAMPLE_R_ORD d on d.smp_no=t.smp_no ");
  2367. sqlucomm.append(" inner join qcm_jhy_sample_consign_d n on n.smp_no = t.smp_no ");
  2368. sqlucomm.append(" and n.FREQ_CODE='"+qlty.getFreq_code()+"' and d.design_key='"+qlty.getDesign_key()+"' ");
  2369. sqlucomm.append(" and d.psc='"+qlty.getPsc()+"' and t.smp_catg='B' and t.cert_inst_code='"+qlty.getOrg_code()+"' and t.smp_type_code='"+qlty.getSample_style_code()+"' ");
  2370. sqlucomm.append(" and t.INSPECTION_LOT='"+qlty.getInspection_lot()+"' and t.PLINE_CODE = '"+qlty.getPline_code()+"' "
  2371. + " and to_char(d.thick, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') and n.smp_type_code = '0' order by t.smp_no asc ");
  2372. }
  2373. }else{
  2374. sqlucomm.append("select t.smp_no from QCM_JHY_SAMPLE_CONSIGN_M t inner join QCM_JHY_SAMPLE_R_ORD d on d.smp_no=t.smp_no and d.design_key='"+qlty.getDesign_key()+"'");
  2375. sqlucomm.append(" and d.psc='"+qlty.getPsc()+"' and t.smp_catg='B' and t.cert_inst_code='"+qlty.getOrg_code()+"' and t.smp_type_code='"+qlty.getSample_style_code()+"' ");
  2376. sqlucomm.append(" and t.INSPECTION_LOT='"+qlty.getInspection_lot()+"' and t.PLINE_CODE = '"+qlty.getPline_code()+"' "
  2377. + " and to_char(d.thick, 'fm990.099') = to_char('"+qlty.getThick()+"', 'fm990.099') and d.inspection_lot is not null order by t.smp_no asc ");
  2378. }
  2379. logger.info("sql:"+sqlucomm.toString());
  2380. List<HashMap> samples=mapper.query(sqlucomm.toString());
  2381. String smp_no="";
  2382. //如果已经不存在
  2383. if (samples==null || samples.size()<1) {
  2384. //生成试样信息主表 (检验委托主表) 22.07.28 新增 deleteSample 删除 (原因删除委托时有些数据没有删除干净)
  2385. smp_no = createQltySamNo(qlty.getPline_code());
  2386. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1")
  2387. || qlty.getPline_code().equals("RZ1") || qlty.getPline_code().equals("LT1") ){
  2388. getSmpNO19 = smp_no;//19订单试样号
  2389. getplineCode = qlty.getPline_code();
  2390. }
  2391. JhySampleMMdoel model=getSampleM(smp_no,qlty,"B");
  2392. mapper.insertSampleM(model);
  2393. //生成合同表
  2394. JhySampleOrdMdoel ord=getSampleOrd(smp_no,qlty);
  2395. mapper.insertSampleOrd(ord);
  2396. //初样引用取样编号
  2397. List<HashMap> quoteItems=null;
  2398. //初样判定结果
  2399. List<QcmJhyPhyresult> jhyResults=null;
  2400. //判断是否存在引用 //I是为新增加22.07.27
  2401. /*if (!"C".equals(qlty.getFreq_code()) && !"I".equals(qlty.getFreq_code()) && !"H".equals(qlty.getFreq_code())) {
  2402. getQuoteItems(qlty,quoteItems,sqlucomm,jhyResults);
  2403. }*/
  2404. //卷板不按炉引用22.10.14
  2405. QcmjhyResults = null;
  2406. specimenNoDel = "";
  2407. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2408. if ("D".equals(qlty.getFreq_code()) ) {
  2409. getQuoteItems(qlty,quoteItems,sqlucomm,jhyResults);
  2410. }
  2411. }
  2412. //生成试样信息明细表 (检验委托明细表)
  2413. String specimen_no=createSpecimen_no(smp_no);
  2414. phyItemSPNO.add(specimen_no);
  2415. JhySampleDModel sampleD=getSampleD(smp_no,specimen_no,qlty);
  2416. if("19".equals(getDesignKey19) ||
  2417. "39".equals(getDesignKey19) || "49".equals(getDesignKey19) || "59".equals(getDesignKey19)){
  2418. if(!"D".equals(qlty.getFreq_code())){
  2419. getSpecimenNo19=specimen_no;//19取样编号
  2420. }
  2421. }
  2422. specimenNoVHC=specimen_no;
  2423. //生成材质项目表
  2424. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  2425. /* if (quoteItems!=null && quoteItems.size() > 0 && quoteItems.get(0).get("SPECIMEN_NO")!=null) {
  2426. item.setQuote_specimen_no((String)quoteItems.get(0).get("SPECIMEN_NO"));
  2427. BigDecimal seq=(BigDecimal)quoteItems.get(0).get("SEQ");
  2428. item.setQuote_seq(seq.intValue());
  2429. }*/
  2430. //卷板不按炉引用22.10.14
  2431. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2432. if (!"".equals(specimenNoDel)) {
  2433. item.setQuote_specimen_no(specimenNoDel);
  2434. BigDecimal seq=(BigDecimal)seqDel;
  2435. item.setQuote_seq(seq.intValue());
  2436. }
  2437. }
  2438. //引用相关信息
  2439. /*if (quoteItems!=null && quoteItems.size() > 0 && quoteItems.get(0).get("SPECIMEN_NO")!=null) {
  2440. sampleD.setQuote_consign_no((String)quoteItems.get(0).get("SPECIMEN_NO"));
  2441. sampleD.setStatus("1");
  2442. sampleD.setSend_id("system");
  2443. sampleD.setSend_name("system");
  2444. }*/
  2445. //卷板不按炉引用22.10.14
  2446. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2447. if (!"".equals(specimenNoDel)) {
  2448. sampleD.setQuote_consign_no(specimenNoDel);
  2449. sampleD.setStatus("1");
  2450. sampleD.setSend_id("引用发送");
  2451. sampleD.setSend_name("引用发送");
  2452. //sampleD.setSend_time(new Date());
  2453. }
  2454. }
  2455. /* if (jhyResults!=null && jhyResults.size()>0) {
  2456. sampleD.setStatus("3");
  2457. for (QcmJhyPhyresult result : jhyResults) {
  2458. result.setSpecimen_no(item.getSpecimen_no());
  2459. result.setSeq(item.getSeq().longValue());
  2460. mapper.insertPhyResults(result);
  2461. }
  2462. }*/
  2463. //卷板不按炉引用22.10.14
  2464. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2465. if (QcmjhyResults!=null && QcmjhyResults.size()>0) {
  2466. sampleD.setStatus("3");
  2467. sampleD.setSend_time(new Date());
  2468. for (QcmJhyPhyresult result : QcmjhyResults) {
  2469. result.setSpecimen_no(item.getSpecimen_no());
  2470. result.setSeq(item.getSeq().longValue());
  2471. result.setCreate_time(new Date());
  2472. String deletePhyResults = " Delete From QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO = '"+item.getSpecimen_no()+"' "
  2473. + " and t.SEQ = '"+item.getSeq().longValue()+"' ";
  2474. mapper.delete(deletePhyResults);
  2475. mapper.insertPhyResults(result);
  2476. }
  2477. }
  2478. }
  2479. mapper.insertSampleD(sampleD);
  2480. mapper.insertSampleItem(item);
  2481. //夹杂引用插入P
  2482. if (QcmjhyResults!=null && QcmjhyResults.size()>0) {
  2483. if(StringUtils.isNotBlank(getSmpNO19)){
  2484. String smpNoSql= "";
  2485. smpNoSql= "INSERT INTO QCM_JUDGE_LOG ( JUDGE_TYPE,MATERIAL_NO,CREATE_TIME,CREATE_NAME,PROD_LINE) "
  2486. + " VALUES( 'P', '"+getSmpNO19+"', SYSDATE,'system','"+getplineCode+"')";
  2487. mapper.insert(smpNoSql);
  2488. }
  2489. }
  2490. continue;
  2491. }
  2492. //获取已经存在的试样号,判断design_key+psc对应的订单信息是否存在
  2493. smp_no=(String)samples.get(0).get("SMP_NO");
  2494. //清空查询sql
  2495. sqlucomm.setLength(0);
  2496. //验证合同表是否存在
  2497. sqlucomm.append("SELECT DESIGN_KEY, SMP_NO,PSC FROM QCM_JHY_SAMPLE_R_ORD WHERE SMP_NO='"+smp_no+"' ");
  2498. sqlucomm.append("and DESIGN_KEY='"+qlty.getDesign_key()+"' ");
  2499. sqlucomm.append("and PSC='"+qlty.getPsc()+"' and PLINE_CODE = '"+qlty.getPline_code()+"'");
  2500. List<HashMap> samplesOrd=mapper.query(sqlucomm.toString());
  2501. if (samplesOrd==null || samplesOrd.size()<1) {
  2502. //生成合同表
  2503. JhySampleOrdMdoel ord=getSampleOrd(smp_no,qlty);
  2504. mapper.insertSampleOrd(ord);
  2505. }
  2506. //判断当前试样号向下该取样频次的明细是否存在
  2507. sqlucomm.setLength(0);
  2508. //取样编号
  2509. String specimen_no=null;
  2510. //判断是否是中厚板 qlty.getProcess_code()热处理标识
  2511. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1")){
  2512. //防止同一订单的夹杂和力学取样频次一样 导致生成同一条委托
  2513. if(StringUtils.isNotBlank(qlty.getProcess_code()) && (qlty.getProcess_code().equals("HB1") || qlty.getProcess_code().equals("ZB1") || qlty.getProcess_code().equals("HT1") )){
  2514. if("D".equals(qlty.getFreq_code())){
  2515. //H2380859 两个订单号PROCESS_CODE:一个ZB1 HB1 会多生成夹杂 加限制
  2516. sqlucomm.append("SELECT SMP_NO,SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE SMP_NO='"+smp_no+"' ");
  2517. sqlucomm.append(" and FREQ_CODE='"+qlty.getFreq_code()+"' and SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"' and PLINE_CODE = '"+qlty.getPline_code()+"' ");
  2518. }else{
  2519. //取样频次代码 取样位置代码 如果不同就生成新的取样编号 也就是新的委托
  2520. sqlucomm.append("SELECT SMP_NO,SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE SMP_NO='"+smp_no+"' ");
  2521. sqlucomm.append(" and FREQ_CODE='"+qlty.getFreq_code()+"' and SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"' and PLINE_CODE = '"+qlty.getPline_code()+"' ");
  2522. sqlucomm.append(" and PROCESS_CODE = '"+qlty.getProcess_code()+"' ");
  2523. }
  2524. }else{
  2525. sqlucomm.append("SELECT SMP_NO,SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE SMP_NO='"+smp_no+"' ");
  2526. sqlucomm.append("and FREQ_CODE='"+qlty.getFreq_code()+"' and SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"' and PLINE_CODE = '"+qlty.getPline_code()+"' ");
  2527. }
  2528. }else{
  2529. //取样频次代码 取样位置代码 如果不同就生成新的取样编号 也就是新的委托
  2530. sqlucomm.append("SELECT SMP_NO,SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE SMP_NO='"+smp_no+"' ");
  2531. sqlucomm.append("and FREQ_CODE='"+qlty.getFreq_code()+"' and SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"' and PLINE_CODE = '"+qlty.getPline_code()+"' ");
  2532. }
  2533. List<HashMap> samplesD=mapper.query(sqlucomm.toString());
  2534. if (samplesD==null || samplesD.size()<1) {
  2535. //判断是否存在引用
  2536. List<HashMap> quoteItems=null;
  2537. List<QcmJhyPhyresult> jhyResults=null;
  2538. //判断是否存在引用
  2539. /*if (!"C".equals(qlty.getFreq_code())&& !"I".equals(qlty.getFreq_code())&& !"H".equals(qlty.getFreq_code())) {
  2540. getQuoteItems(qlty,quoteItems,sqlucomm,jhyResults);
  2541. }*/
  2542. //卷板不按炉引用22.10.14
  2543. QcmjhyResults = null;
  2544. specimenNoDel = "";
  2545. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2546. if ("D".equals(qlty.getFreq_code()) ) {
  2547. getQuoteItems(qlty,quoteItems,sqlucomm,jhyResults);
  2548. }
  2549. }
  2550. //生成试样信息明细表
  2551. specimen_no=createSpecimen_no(smp_no);
  2552. phyItemSPNO.add(specimen_no);
  2553. JhySampleDModel sampleD=getSampleD(smp_no,specimen_no,qlty);
  2554. specimenNoVHC=specimen_no;
  2555. //生成材质项目表
  2556. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  2557. /* if (quoteItems!=null && quoteItems.size() > 0 && quoteItems.get(0).get("SPECIMEN_NO")!=null) {
  2558. item.setQuote_specimen_no((String)quoteItems.get(0).get("SPECIMEN_NO"));
  2559. BigDecimal seq=(BigDecimal)quoteItems.get(0).get("SEQ");
  2560. item.setQuote_seq(seq.intValue());
  2561. }*/
  2562. //卷板不按炉引用22.10.14
  2563. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2564. if (!"".equals(specimenNoDel)) {
  2565. item.setQuote_specimen_no(specimenNoDel);
  2566. BigDecimal seq=(BigDecimal)seqDel;
  2567. item.setQuote_seq(seq.intValue());
  2568. }
  2569. }
  2570. //引用相关信息
  2571. /* if (quoteItems!=null && quoteItems.size() > 0 && quoteItems.get(0).get("SPECIMEN_NO")!=null) {
  2572. sampleD.setQuote_consign_no((String)quoteItems.get(0).get("SPECIMEN_NO"));
  2573. sampleD.setStatus("1");
  2574. sampleD.setSend_id("system");
  2575. sampleD.setSend_name("system");
  2576. }*/
  2577. //卷板不按炉引用22.10.14
  2578. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2579. if (!"".equals(specimenNoDel)) {
  2580. sampleD.setQuote_consign_no(specimenNoDel);
  2581. sampleD.setStatus("1");
  2582. sampleD.setSend_id("引用发送");
  2583. sampleD.setSend_name("引用发送");
  2584. //sampleD.setSend_time(new Date());
  2585. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1")
  2586. || qlty.getPline_code().equals("RZ1") || qlty.getPline_code().equals("LT1") ){
  2587. getSmpNO19 = smp_no;//试样号
  2588. getplineCode = qlty.getPline_code();
  2589. }
  2590. }
  2591. }
  2592. /* if (jhyResults!=null && jhyResults.size()>0) {
  2593. sampleD.setStatus("3");
  2594. for (QcmJhyPhyresult result : jhyResults) {
  2595. result.setSpecimen_no(item.getSpecimen_no());
  2596. result.setSeq(item.getSeq().longValue());
  2597. mapper.insertPhyResults(result);
  2598. }
  2599. }*/
  2600. //卷板不按炉引用22.10.14
  2601. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2602. if (QcmjhyResults!=null && QcmjhyResults.size()>0) {
  2603. sampleD.setStatus("3");
  2604. sampleD.setSend_time(new Date());
  2605. for (QcmJhyPhyresult result : QcmjhyResults) {
  2606. result.setSpecimen_no(item.getSpecimen_no());
  2607. result.setSeq(item.getSeq().longValue());
  2608. result.setCreate_time(new Date());
  2609. String deletePhyResults = " Delete From QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO = '"+item.getSpecimen_no()+"' "
  2610. + " and t.SEQ = '"+item.getSeq().longValue()+"' ";
  2611. mapper.delete(deletePhyResults);
  2612. mapper.insertPhyResults(result);
  2613. }
  2614. }
  2615. }
  2616. mapper.insertSampleD(sampleD);
  2617. mapper.insertSampleItem(item);
  2618. //生成力学时 把ord表检验号判定置成0 夹杂整体按批,力学按批
  2619. String sqlord = "select * from QCM_JHY_SAMPLE_R_ORD o where SMP_NO='"+smp_no+"' and rownum = 1 ";
  2620. List<HashMap> ordstatus=mapper.query(sqlord.toString());
  2621. //不管ord表有没有判定先把用到的试样号致0
  2622. if (ordstatus !=null && ordstatus.size()>=1 && (qlty.getPline_code().equals("ZB1") || qlty.getPline_code().equals("HB1")) && !memoXngs.equals("true1")) {
  2623. if(!ordstatus.get(0).get("JUDGE_STATUS").equals("0")){
  2624. String sqlzj = "";
  2625. sqlzj += " update QCM_JHY_SAMPLE_R_ORD t set JUDGE_STATUS = '0', JUDGE_RESULT_CODE = '' ,JUDGE_RESULT_DESC = '' ";
  2626. sqlzj += " where SMP_NO='"+smp_no+"' ";
  2627. mapper.updateJudgeStatus(sqlzj.toString());
  2628. String sqlDesignKey0 ="";
  2629. String sqlDesignKey1 ="";
  2630. if(dkeyScode2.equals("1") || "19".equals(getDesignKey19)){
  2631. if(qlty.getPline_code().equals("ZB1")){
  2632. sqlDesignKey0 = " and T.DESIGN_KEY = '"+qlty.getDesign_key()+"' ";
  2633. }else if(qlty.getPline_code().equals("HB1")){
  2634. sqlDesignKey0 = " and T.DESIGN_KEY = '"+qlty.getDesign_key()+"' ";
  2635. }
  2636. }
  2637. String sqlkcz ="";
  2638. if(qlty.getPline_code().equals("ZB1")){
  2639. sqlkcz ="";
  2640. sqlkcz = "SELECT t.* "
  2641. +" FROM (SELECT T.ORDERNO DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELCODE) GRADE_CODE,T.HEIGHT THICK,T.PRODUCTNO MATERIAL_NO "
  2642. +" FROM MB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  2643. +" WHERE T.ORDERNO = A.ORDERNO "
  2644. +" and T.PRODUCTNO not in "
  2645. +" (select T.BILLETID from KCZ_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+qlty.getBatch_no()+"') "
  2646. +" and T.ORDERNO is not null AND A.SAMPLINGREQUESTTIME IN ('A', 'AB') "
  2647. +" union all "
  2648. +" SELECT T.ORDERNO DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  2649. +" FROM KCZ_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  2650. +" WHERE T.ORDERNO = A.ORDERNO and T.ORDERNO is not null AND T.ISVALID <> '0') t "
  2651. +" WHERE t.BATCH_NO = '"+qlty.getBatch_no()+"' and t.BATCH_NO like 'Z%' "
  2652. +" and t.GRADE_CODE = '"+qlty.getGrade_code()+"' and t.THICK = '"+qlty.getThick()+"' "
  2653. + sqlDesignKey0
  2654. + " group by T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO order by t.MATERIAL_NO ";
  2655. }else if(qlty.getPline_code().equals("HB1")){
  2656. sqlkcz ="";
  2657. sqlkcz ="SELECT t.* "
  2658. +" FROM (SELECT T.ORDERID DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELTYPE) GRADE_CODE,T.THICK THICK,T.SLABNO MATERIAL_NO "
  2659. +" FROM ZYHB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  2660. +" WHERE T.ORDERID = A.ORDERNO "
  2661. +" and T.SLABNO not in "
  2662. +" (select T.BILLETID from KCH_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+qlty.getBatch_no()+"') "
  2663. +" and T.ORDERID is not null "
  2664. +" union all "
  2665. +" SELECT T.ALLOTORDERFORM DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  2666. +" FROM KCH_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  2667. +" WHERE T.ALLOTORDERFORM = A.ORDERNO and T.ALLOTORDERFORM is not null AND T.PSTATFLAG <> '0') t "
  2668. +" WHERE t.BATCH_NO = '"+qlty.getBatch_no()+"' and t.BATCH_NO like 'H%' "
  2669. +" and t.GRADE_CODE = '"+qlty.getGrade_code()+"' and t.THICK = '"+qlty.getThick()+"' "
  2670. + sqlDesignKey0
  2671. +" group by T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO order by t.MATERIAL_NO asc";
  2672. }
  2673. List<HashMap> kczh=mapper.query(sqlkcz.toString());
  2674. if (kczh!=null && kczh.size()>=1) {
  2675. for (HashMap hashMap : kczh) {
  2676. String bcon = "select t.* from zj_result_all@xgcx t "
  2677. + " where t.billetid like '"+(String)hashMap.get("MATERIAL_NO")+"%' "
  2678. + " and rownum <= 1 ";
  2679. List<HashMap> billetidJy = mapper.query(bcon.toString());
  2680. if(billetidJy != null || billetidJy.size() >=1 ){
  2681. //判断ZJ表是否是1
  2682. for (HashMap hashMap2 : billetidJy) {
  2683. if(hashMap2.get("PHYSRESULT").equals("1")){
  2684. String sqlzjno = "";
  2685. sqlzjno += " update zj_result_all@xgcx t set physresult = '0',physresult_desc='' ";
  2686. sqlzjno += " where t.billetid='"+(String)hashMap2.get("MATERIAL_NO")+"' and JUDGERESULT='0' ";
  2687. mapper.updateJudgeStatus(sqlzjno.toString());
  2688. }else if(hashMap2.get("PHYSRESULT").equals("2")){
  2689. String sqlzjno = "";
  2690. sqlzjno += " update zj_result_all@xgcx t set physresult = '0',physresult_desc='',physid='',pic_is_lock='0' ";
  2691. sqlzjno += " where t.billetid='"+(String)hashMap2.get("MATERIAL_NO")+"' and JUDGERESULT='0' ";
  2692. mapper.updateJudgeStatus(sqlzjno.toString());
  2693. sqlzjno = "";
  2694. sqlzjno += " update qcm_judge_locking t set unlock_type_code = '9',unlock_type_desc='解除',unlock_name='系统',unlock_time=sysdate ";
  2695. sqlzjno += " where batch_no = '"+qlty.getBatch_no()+"' and unlock_type_code is null ";
  2696. mapper.updateJudgeStatus(sqlzjno.toString());
  2697. }
  2698. }
  2699. }
  2700. }
  2701. }
  2702. }
  2703. }
  2704. continue;
  2705. }
  2706. //判断当前项目是否存在
  2707. specimen_no=(String)samplesD.get(0).get("SPECIMEN_NO");
  2708. phyItemSPNO.add(specimen_no);
  2709. specimenNoVHC=specimen_no;
  2710. sqlucomm.setLength(0);
  2711. sqlucomm.append("SELECT SPECIMEN_NO,SMP_NO,SEQ FROM QCM_JHY_SAMPLE_CONSIGN_D_ITEM WHERE SPECIMEN_NO='"+specimen_no+"' and SMP_NO='"+smp_no+"' ");
  2712. if (qlty.getPhy_code_l()!=null) {
  2713. sqlucomm.append("and PHY_CODE_L ='"+qlty.getPhy_code_l()+"' ");
  2714. }
  2715. if (qlty.getPhy_code_m()!=null) {
  2716. sqlucomm.append("and PHY_CODE_M='"+qlty.getPhy_code_m()+"' ");
  2717. }
  2718. if (qlty.getPhy_code_s()!=null) {
  2719. sqlucomm.append("and PHY_CODE_S='"+qlty.getPhy_code_s()+"' ");
  2720. }
  2721. if (qlty.getItem_code_d()!=null) {
  2722. sqlucomm.append("and ITEM_CODE_D='"+qlty.getItem_code_d()+"' ");
  2723. }
  2724. if (qlty.getItem_code_t()!=null) {
  2725. sqlucomm.append("and ITEM_CODE_T='"+qlty.getItem_code_t()+"' ");
  2726. }
  2727. if (qlty.getItem_code_s()!=null) {
  2728. sqlucomm.append("and ITEM_CODE_S='"+qlty.getItem_code_s()+"' ");
  2729. }
  2730. List<HashMap> samplesItems=mapper.query(sqlucomm.toString());
  2731. if (samplesItems!=null && samplesItems.size()>0) {
  2732. continue;
  2733. }
  2734. //生成项目
  2735. //生成材质项目表
  2736. //判断是否存在引用
  2737. List<HashMap> quoteItems=null;
  2738. List<QcmJhyPhyresult> jhyResults=null;
  2739. //判断是否存在引用
  2740. /*if (!"C".equals(qlty.getFreq_code())&& !"I".equals(qlty.getFreq_code())&& !"H".equals(qlty.getFreq_code())) {
  2741. getQuoteItems(qlty,quoteItems,sqlucomm,jhyResults);
  2742. }*/
  2743. //卷板不按炉引用22.10.14
  2744. QcmjhyResults = null;
  2745. specimenNoDel = "";
  2746. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2747. if ("D".equals(qlty.getFreq_code()) ) {
  2748. getQuoteItems(qlty,quoteItems,sqlucomm,jhyResults);
  2749. }
  2750. }
  2751. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  2752. /*if (quoteItems!=null && quoteItems.size() > 0 && quoteItems.get(0).get("SPECIMEN_NO")!=null) {
  2753. BigDecimal seq=(BigDecimal)quoteItems.get(0).get("SEQ");
  2754. item.setQuote_specimen_no((String)quoteItems.get(0).get("SPECIMEN_NO"));
  2755. item.setQuote_seq(seq.intValue());
  2756. }*/
  2757. //卷板不按炉引用22.10.14
  2758. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2759. if (!"".equals(specimenNoDel)) {
  2760. BigDecimal seq=(BigDecimal)seqDel;
  2761. item.setQuote_specimen_no(specimenNoDel);
  2762. item.setQuote_seq(seq.intValue());
  2763. }
  2764. }
  2765. /* if (jhyResults!=null && jhyResults.size()>0) {
  2766. for (QcmJhyPhyresult result : jhyResults) {
  2767. result.setSpecimen_no(item.getSpecimen_no());
  2768. result.setSeq(item.getSeq().longValue());
  2769. mapper.insertPhyResults(result);
  2770. }
  2771. }*/
  2772. //卷板不按炉引用22.10.14
  2773. if(!qlty.getPline_code().equals("RZ1") && !qlty.getPline_code().equals("LT1")){
  2774. if (QcmjhyResults!=null && QcmjhyResults.size()>0) {
  2775. for (QcmJhyPhyresult result : QcmjhyResults) {
  2776. result.setSpecimen_no(item.getSpecimen_no());
  2777. result.setSeq(item.getSeq().longValue());
  2778. result.setCreate_time(new Date());
  2779. String deletePhyResults = " Delete From QCM_JHY_INSP_PHYSICS t where t.SPECIMEN_NO = '"+item.getSpecimen_no()+"' "
  2780. + " and t.SEQ = '"+item.getSeq().longValue()+"' ";
  2781. mapper.delete(deletePhyResults);
  2782. mapper.insertPhyResults(result);
  2783. }
  2784. }
  2785. }
  2786. mapper.insertSampleItem(item);
  2787. }
  2788. //删除多余项目螺纹钢
  2789. if(getTimestn.equals("1")){
  2790. delDy(qltys);
  2791. }
  2792. //判断是否是19订单 中厚板
  2793. if("19".equals(getDesignKey19) && !StringUtils.isBlank(getSmpNO19) && !StringUtils.isBlank(getSpecimenNo19)){
  2794. for (JhyQltyModel qlty : qltys) {
  2795. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1")){
  2796. String DesignKey = qlty.getDesign_key();
  2797. String batchNo = qlty.getBatch_no();
  2798. String heatNo = qlty.getHeat_no();
  2799. String smpNo = getSmpNO19;
  2800. String specimenNo = getSpecimenNo19;
  2801. String freqCode = qlty.getFreq_code();
  2802. String plineCode = getplineCode;
  2803. String smpTypeCode = qlty.getSmp_type_code();
  2804. String thick = qlty.getThick();
  2805. Quotehm.put("DESIGN_KEY", DesignKey);
  2806. Quotehm.put("BATCH_NO", batchNo);
  2807. Quotehm.put("HEAT_NO", heatNo);
  2808. Quotehm.put("SMP_NO", smpNo);
  2809. Quotehm.put("SPECIMEN_NO", specimenNo);
  2810. Quotehm.put("FREQ_CODE", freqCode);//取样频次代码
  2811. Quotehm.put("PLINE_CODE", plineCode);
  2812. Quotehm.put("SMP_TYPE_CODE", smpTypeCode);//初样 复样 样品类型
  2813. Quotehm.put("SEND_ID", memocreateName);
  2814. Quotehm.put("CREATE_NAME", memocreateName);
  2815. Quotehm.put("THICK", thick);
  2816. }
  2817. break;
  2818. }
  2819. }
  2820. //判断是否是39 49 59订单 卷板
  2821. if(("39".equals(getDesignKey19)|| "49".equals(getDesignKey19) || "59".equals(getDesignKey19) )
  2822. && !StringUtils.isBlank(getSmpNO19) && !StringUtils.isBlank(getSpecimenNo19)){
  2823. for (JhyQltyModel qlty : qltys) {
  2824. if(qlty.getPline_code().equals("RZ1") || qlty.getPline_code().equals("LT1") ){
  2825. String DesignKey = qlty.getDesign_key();
  2826. String batchNo = qlty.getBatch_no();
  2827. String heatNo = qlty.getHeat_no();
  2828. String smpNo = getSmpNO19;
  2829. String specimenNo = getSpecimenNo19;
  2830. String freqCode = qlty.getFreq_code();
  2831. String plineCode = getplineCode;
  2832. String smpTypeCode = qlty.getSmp_type_code();
  2833. String thick = qlty.getThick();
  2834. Quotehm.put("DESIGN_KEY", DesignKey);
  2835. Quotehm.put("BATCH_NO", batchNo);
  2836. Quotehm.put("HEAT_NO", heatNo);
  2837. Quotehm.put("SMP_NO", smpNo);
  2838. Quotehm.put("SPECIMEN_NO", specimenNo);
  2839. Quotehm.put("FREQ_CODE", freqCode);//取样频次代码
  2840. Quotehm.put("PLINE_CODE", plineCode);
  2841. Quotehm.put("SMP_TYPE_CODE", smpTypeCode);//初样 复样 样品类型
  2842. Quotehm.put("SEND_ID", memocreateName);
  2843. Quotehm.put("CREATE_NAME", memocreateName);
  2844. Quotehm.put("THICK", thick);
  2845. }
  2846. break;
  2847. }
  2848. }
  2849. return "";
  2850. }
  2851. //删除多余项目螺纹钢
  2852. private void delDy(List<JhyQltyModel> qltys){
  2853. StringBuffer sqlucomm = new StringBuffer();
  2854. String DesignKey ="";//订单号
  2855. String batchNo = "";//轧批号
  2856. String heatNo = "";//炉号
  2857. String inspectionLot = "";//检验号
  2858. int times =0;//生成几个委托
  2859. for (JhyQltyModel qlty : qltys) {
  2860. DesignKey = qlty.getDesign_key();
  2861. batchNo = qlty.getBatch_no();
  2862. heatNo = qlty.getHeat_no();
  2863. inspectionLot = qlty.getInspection_lot();
  2864. times = qlty.getTimes();
  2865. break;
  2866. }
  2867. sqlucomm.setLength(0);
  2868. sqlucomm.append(" select t.SMP_NO from QCM_JHY_SAMPLE_R_ORD t where t.design_key = '"+DesignKey+"' ");
  2869. sqlucomm.append(" and t.batch_no = '"+batchNo+"' and t.heat_no = '"+heatNo+"' and t.inspection_lot = '"+inspectionLot+"' ");
  2870. List<HashMap> smpNos=mapper.query(sqlucomm.toString());
  2871. //删除多余的项目明细
  2872. int timesnum = times;//生成几个委托
  2873. int js=0;//第几个委托
  2874. //循环委托
  2875. for(int i = 0;i< timesnum;i++){
  2876. ++js;//第几个委托
  2877. // try {
  2878. //获取当前委托中的项目 phy_code_l材质检验大项代码 phy_code_m试样组代码 PHY_CODE_S材质检验项代码
  2879. sqlucomm.setLength(0);
  2880. sqlucomm.append(" select distinct t.SPECIMEN_NO,t.SMP_NO,t.PHY_CODE_L,t.PHY_CODE_M, ");
  2881. sqlucomm.append(" t.ITEM_CODE_D,t.ITEM_CODE_T,t.ITEM_CODE_S,t.PHY_NAME_M");
  2882. sqlucomm.append(" from qcm_jhy_sample_consign_d_item t ");
  2883. sqlucomm.append(" where t.smp_no = '"+smpNos.get(i).get("SMP_NO")+"' ");
  2884. List<HashMap> seqli=mapper.query(sqlucomm.toString());
  2885. //获取金恒那边下过来的项目 质量设计-试样信息主表 查到实验次数
  2886. sqlucomm.setLength(0);
  2887. sqlucomm.append(" select T.SMP_COUNT,t.PHY_CODE_L,t.PHY_CODE_M, ");
  2888. sqlucomm.append(" t.ITEM_CODE_D,t.ITEM_CODE_T,t.ITEM_CODE_S,t.PHY_NAME_M");
  2889. sqlucomm.append(" from QCM_ORD_DESIGN_STD_PIC_SMP t ");
  2890. sqlucomm.append(" where t.design_key = '"+DesignKey+"' and t.specl_fl !='1' and t.specl_fl != '2' ");
  2891. List<HashMap> seqlist=mapper.query(sqlucomm.toString());
  2892. List<listItem> qmnum = new ArrayList<listItem>();//用来装一个委托中的项目
  2893. StringBuffer sqlucomm1 = new StringBuffer();
  2894. //判断当前这个委托的项目
  2895. if (seqli!=null || seqli.size()>0) {
  2896. //获取当前这个委托项目
  2897. for (HashMap list : seqli) {
  2898. String phyCodeL = (String) list.get("PHY_CODE_L");//材质检验大项代码
  2899. String phyCodeM = (String) list.get("PHY_CODE_M");//试样组代码
  2900. String itemCodeD = (String) list.get("ITEM_CODE_D");//试验方向代码
  2901. String itemCodeT = (String) list.get("ITEM_CODE_T");//试验温度代码
  2902. String itemCodeS = (String) list.get("ITEM_CODE_S");//试样尺寸代码
  2903. String phyNameM = (String) list.get("PHY_NAME_M");
  2904. String newItem=phyCodeL+"-"+phyCodeM;
  2905. newItem=newItem+"-"+(itemCodeD!=null?itemCodeD:"null");
  2906. newItem=newItem+"-"+(itemCodeT!=null?itemCodeT:"null");
  2907. newItem=newItem+"-"+(itemCodeS!=null?itemCodeS:"null");
  2908. newItem=newItem+"-"+(phyNameM!=null?phyNameM:"null");
  2909. //如果qmnum中已有项目 判断该项目是否重复 重复删除
  2910. //判断留下的项目会放在qmnum中
  2911. int qmnumtf = 0;//0不删除 1删除
  2912. for (int j = 0; j < qmnum.size(); j++) {
  2913. listItem lis = qmnum.get(j);
  2914. String phyCodeLV = (String) lis.getPHY_CODE_L();//材质检验大项代码
  2915. String phyCodeMV = (String) lis.getPHY_CODE_M();//试样组代码
  2916. String itemCodeDV = (String) lis.getITEM_CODE_D();//试验方向代码
  2917. String itemCodeTV = (String) lis.getITEM_CODE_T();//试验温度代码
  2918. String itemCodeSV = (String) lis.getITEM_CODE_S();//试样尺寸代码
  2919. String phyNameMV = (String) lis.getPHY_NAME_M();//
  2920. String newItem2=phyCodeLV+"-"+phyCodeMV;
  2921. newItem2=newItem2+"-"+(itemCodeDV!=null?itemCodeDV:"null");
  2922. newItem2=newItem2+"-"+(itemCodeTV!=null?itemCodeTV:"null");
  2923. newItem2=newItem2+"-"+(itemCodeSV!=null?itemCodeSV:"null");
  2924. newItem2=newItem2+"-"+(phyNameMV!=null?phyNameMV:"null");
  2925. //判断全部相同 删除 因为这个委托中已经有该项目了
  2926. if(newItem.equals(newItem2)){
  2927. qmnumtf = 1;
  2928. break;
  2929. }
  2930. }
  2931. //传过来的次数 例如:拉伸 4次 弯曲2次 反弯1次
  2932. //拿当前的委托的项目一次次和 金恒下过来的项目对比
  2933. if (seqlist!=null || seqlist.size()>0) {
  2934. for (HashMap li : seqlist) {
  2935. String phyCodeL2 = (String) li.get("PHY_CODE_L");//材质检验大项代码
  2936. String phyCodeM2 = (String) li.get("PHY_CODE_M");//试样组代码
  2937. String itemCodeD2 = (String) li.get("ITEM_CODE_D");//试验方向代码
  2938. String itemCodeT2 = (String) li.get("ITEM_CODE_T");//试验温度代码
  2939. String itemCodeS2 = (String) li.get("ITEM_CODE_S");//试样尺寸代码
  2940. String phyNameM2 = (String) li.get("PHY_NAME_M");
  2941. String newItem3=phyCodeL2+"-"+phyCodeM2;
  2942. newItem3=newItem3+"-"+(itemCodeD2!=null?itemCodeD2:"null");
  2943. newItem3=newItem3+"-"+(itemCodeT2!=null?itemCodeT2:"null");
  2944. newItem3=newItem3+"-"+(itemCodeS2!=null?itemCodeS2:"null");
  2945. newItem3=newItem3+"-"+(phyNameM2!=null?phyNameM2:"null");
  2946. BigDecimal smpCount = (BigDecimal) li.get("SMP_COUNT");//次数
  2947. int smpCount2 = smpCount.intValue();
  2948. //如果委托等于3个委托 说明要加一组 拉伸和弯曲
  2949. if(timesnum == 3 && (phyNameM2.equals("常温拉伸") || phyNameM2.contains("冷弯") || phyNameM2.equals("反向弯曲试验"))){
  2950. smpCount2 = smpCount2 + 1;
  2951. }
  2952. if(timesnum == 4 && (phyNameM2.equals("常温拉伸") || phyNameM2.contains("冷弯") || phyNameM2.equals("反向弯曲试验"))){
  2953. smpCount2 = smpCount2 + 2;
  2954. }
  2955. //删除多余项目 删除项目必须满足 当前委托中已有该项目 或者 次数减去委托数少于0的
  2956. if(newItem.equals(newItem3) &&
  2957. (((smpCount2 - js) < 0) || qmnumtf == 1 ) ){
  2958. sqlucomm1.setLength(0);
  2959. sqlucomm1.append("Delete From qcm_jhy_sample_consign_d_item t ");
  2960. sqlucomm1.append(" where t.smp_no = '"+smpNos.get(i).get("SMP_NO")+"' ");
  2961. sqlucomm1.append(" and t.PHY_NAME_M = '"+phyNameM+"' ");
  2962. mapper.delete(sqlucomm1.toString());
  2963. System.out.println("第"+js+"委托:删除试样号:"+smpNos.get(i).get("SMP_NO")+"试样组描述:"+phyNameM);
  2964. break;
  2965. }else{
  2966. //判断当前委托项目该不该删除 如果qmnum还没有委托项目 说这是第一个项目不用删除
  2967. listItem em = new listItem();
  2968. em.setPHY_CODE_L(phyCodeL);
  2969. em.setPHY_CODE_M(phyCodeM);
  2970. em.setITEM_CODE_D(itemCodeD);
  2971. em.setITEM_CODE_T(itemCodeT);
  2972. em.setITEM_CODE_S(itemCodeS);
  2973. em.setPHY_NAME_M(phyNameM);
  2974. qmnum.add(em);
  2975. }
  2976. }
  2977. }
  2978. //
  2979. }
  2980. }
  2981. //} catch (SQLException e) {
  2982. //}
  2983. }
  2984. }
  2985. private void getQuoteItems(JhyQltyModel qlty, List<HashMap> quoteItems, StringBuffer sqlucomm, List<QcmJhyPhyresult> jhyResults) {
  2986. // TODO Auto-generated method stub
  2987. String heatNoDHJ = qlty.getHeat_no().substring(0, 9);//一共10位 截取9位 最后一位字母不要
  2988. String strPlineCodeDHJ = "";
  2989. if(!qlty.getPline_code().equals("ZB1") && !qlty.getPline_code().equals("HB1") ){
  2990. strPlineCodeDHJ = " and t.pline_code = '"+qlty.getPline_code()+"' ";
  2991. }else{
  2992. strPlineCodeDHJ = " and t.pline_code in ('ZB1','HB1') ";
  2993. }
  2994. String sqlDHJ=" SELECT * FROM QCM_JHY_SAMPLE_CONSIGN_D T WHERE t.heat_no like '"+heatNoDHJ+"%' AND T.FREQ_CODE = 'D' AND T.STATUS <> '0' "
  2995. + strPlineCodeDHJ;
  2996. List<HashMap> hmDHJ = mapper.query(sqlDHJ.toString());
  2997. if(hmDHJ!=null && hmDHJ.size()>=1){
  2998. //当前炉号已经有夹杂下发把LIMS可以直接引用
  2999. sqlucomm.setLength(0);
  3000. if ("D".equals(qlty.getFreq_code())) {
  3001. String heatNo = qlty.getHeat_no().substring(0, 9);//一共10位 截取9位 最后一位字母不要
  3002. String strPlineCode = "";
  3003. if(!qlty.getPline_code().equals("ZB1") && !qlty.getPline_code().equals("HB1") ){
  3004. strPlineCode = " and t.pline_code = '"+qlty.getPline_code()+"' ";
  3005. }else{
  3006. strPlineCode = " and t.pline_code in ('ZB1','HB1') ";
  3007. }
  3008. //按炉取样 and nvl(i.phy_code_s,'null') <> 'J10'
  3009. String tcode = "0";
  3010. String sNOsql ="";
  3011. sNOsql ="select * from QCM_JHY_SAMPLE_CONSIGN_D t,qcm_jhy_sample_consign_d_item i"
  3012. + " where t.specimen_no = i.specimen_no and t.heat_no like '"+heatNo+"%' and t.smp_type_code = '1' "
  3013. + " and (t.QUOTE_CONSIGN_NO is null or t.QUOTE_CONSIGN_NO='') "
  3014. + " and t.freq_code = 'D' "
  3015. + strPlineCode;
  3016. List<HashMap> hmCnum0 = mapper.query(sNOsql.toString());
  3017. if(hmCnum0 != null && hmCnum0.size() >= 1){//判断是否有复样
  3018. tcode = "1";
  3019. }
  3020. //and nvl(i.phy_code_s,'null') <> 'J10'
  3021. sNOsql ="";
  3022. sNOsql = "select t.specimen_no,i.phy_code_s from QCM_JHY_SAMPLE_CONSIGN_D t,qcm_jhy_sample_consign_d_item i "
  3023. + " where t.specimen_no = i.specimen_no and t.HEAT_NO like '"+heatNo+"%' "
  3024. + " and (t.QUOTE_CONSIGN_NO is null or t.QUOTE_CONSIGN_NO='') "
  3025. + " and t.smp_type_code='"+tcode+"' and t.freq_code = 'D' "
  3026. + strPlineCode
  3027. + " and rownum = 1 ";
  3028. List<HashMap> hmCnum = mapper.query(sNOsql.toString());
  3029. String specimenNoD ="";
  3030. if (hmCnum !=null && hmCnum.size() >=1 ) {//判断该炉号是否复样
  3031. specimenNoD = (String)hmCnum.get(0).get("SPECIMEN_NO");
  3032. }
  3033. //and d.pline_code = '"+qlty.getPline_code()+"'
  3034. sqlucomm.append("select i.* from QCM_JHY_SAMPLE_R_ORD t inner join QCM_JHY_SAMPLE_CONSIGN_D d "
  3035. + " on t.smp_no=d.smp_no "
  3036. + " and (d.QUOTE_CONSIGN_NO is null or d.QUOTE_CONSIGN_NO='') and d.smp_type_code='"+tcode+"' "
  3037. + " and t.HEAT_NO like '"+heatNo+"%' ");
  3038. if(specimenNoD != null && specimenNoD != "" && !"".equals(specimenNoD)){
  3039. sqlucomm.append(" and d.specimen_no = '"+specimenNoD+"' ");
  3040. }
  3041. sqlucomm.append(" inner join QCM_JHY_SAMPLE_CONSIGN_M m on m.smp_no=t.smp_no and m.smp_catg='B' ");
  3042. }else if ("A".equals(qlty.getFreq_code())) {
  3043. //按批取样
  3044. sqlucomm.append("select i.* from QCM_JHY_SAMPLE_R_ORD t inner join QCM_JHY_SAMPLE_CONSIGN_D d "
  3045. + " on t.smp_no=d.smp_no and t.design_key='"+qlty.getDesign_key()+"' and t.psc='"+qlty.getPsc()+"' "
  3046. + " and d.freq_code='"+qlty.getFreq_code()+"' and t.cert_inst_code='"+qlty.getOrg_code()+"' "
  3047. + " and t.smp_type_code='"+qlty.getSample_style_code()+"' and d.smp_location_code='"+qlty.getSmp_position_code()+"' "
  3048. + " and (d.QUOTE_CONSIGN_NO is null or d.QUOTE_CONSIGN_NO='') and d.smp_type_code='0' and t.batch_no='"+qlty.getBatch_no()+"' "
  3049. + " inner join QCM_JHY_SAMPLE_CONSIGN_M m on m.smp_no=t.smp_no and m.smp_catg='B' ");
  3050. }else{
  3051. //按母板取样
  3052. sqlucomm.append("select i.* from QCM_JHY_SAMPLE_R_ORD t inner join QCM_JHY_SAMPLE_CONSIGN_D d "
  3053. + " on t.smp_no=d.smp_no and t.design_key='"+qlty.getDesign_key()+"' and t.psc='"+qlty.getPsc()+"' "
  3054. + " and d.freq_code='"+qlty.getFreq_code()+"' and t.cert_inst_code='"+qlty.getOrg_code()+"' "
  3055. + " and t.smp_type_code='"+qlty.getSample_style_code()+"' and d.smp_location_code='"+qlty.getSmp_position_code()+"' "
  3056. + " and (d.QUOTE_CONSIGN_NO is null or d.QUOTE_CONSIGN_NO='') and d.smp_type_code='0' and d.BOARD_NO='"+qlty.getBoard_no()+"' "
  3057. + " inner join QCM_JHY_SAMPLE_CONSIGN_M m on m.smp_no=t.smp_no and m.smp_catg='B' ");
  3058. }
  3059. sqlucomm.append("inner join QCM_JHY_SAMPLE_CONSIGN_D_ITEM i on i.smp_no=d.smp_no and i.specimen_no=d.specimen_no "
  3060. + " and i.seq < 50 and i.phy_code_l='"+qlty.getPhy_code_l()+"' and i.phy_code_m='"+qlty.getPhy_code_m()+"' and i.phy_code_s='"+qlty.getPhy_code_s()+"'");
  3061. if (qlty.getItem_code_d()!=null) {
  3062. sqlucomm.append(" and i.ITEM_CODE_D='"+qlty.getItem_code_d()+"'");
  3063. }
  3064. if (qlty.getItem_code_t()!=null) {
  3065. sqlucomm.append( " and i.ITEM_CODE_T='"+qlty.getItem_code_t()+"'");
  3066. }
  3067. if (qlty.getItem_code_s()!=null) {
  3068. sqlucomm.append(" and i.ITEM_CODE_S='"+qlty.getItem_code_s()+"'");
  3069. }
  3070. // sqlucomm.setLength(0);
  3071. // sqlucomm.append("select i.* from QCM_JHY_SAMPLE_R_ORD t inner join QCM_JHY_SAMPLE_CONSIGN_D d on d.smp_no=t.smp_no and d.smp_type_code='0'");
  3072. // sqlucomm.append("and t.design_key='"+qlty.getDesign_key()+"' and t.psc='"+qlty.getPsc()+"' and t.cert_inst_code='"+qlty.getOrg_code()+"' and t.smp_type_code='"+qlty.getSample_style_code()+"' ");
  3073. // sqlucomm.append("and d.freq_code='"+qlty.getFreq_code()+"' inner join QCM_JHY_SAMPLE_CONSIGN_D_ITEM i on t.smp_no=i.smp_no and d.specimen_no=i.specimen_no ");
  3074. // sqlucomm.append("and i.phy_code_l='"+qlty.getPhy_code_l()+"' and i.phy_code_m='"+qlty.getPhy_code_m()+"' and i.phy_code_s='"+qlty.getPhy_code_s()+"' ");
  3075. // sqlucomm.append("and i.item_code_d='"+qlty.getItem_code_d()+"' and i.item_code_t='"+qlty.getItem_code_t()+"' and i.item_code_s='"+qlty.getItem_code_s()+"' ");
  3076. //
  3077. quoteItems=mapper.query(sqlucomm.toString());
  3078. if (quoteItems!=null && quoteItems.size()>0) {
  3079. specimenNoDel=(String)quoteItems.get(0).get("SPECIMEN_NO");//取样编号
  3080. seqDel = (BigDecimal)quoteItems.get(0).get("SEQ");//序号
  3081. sqlucomm.setLength(0);
  3082. sqlucomm.append("select i.* from QCM_JHY_INSP_PHYSICS i where i.specimen_no='"+quoteItems.get(0).get("SPECIMEN_NO")+"'");
  3083. sqlucomm.append("and i.phy_code_l='"+qlty.getPhy_code_l()+"' and i.phy_code_m='"+qlty.getPhy_code_m()+"' and i.phy_code_s='"+qlty.getPhy_code_s()+"' ");
  3084. if (qlty.getItem_code_d()!=null) {
  3085. sqlucomm.append(" and i.ITEM_CODE_D='"+qlty.getItem_code_d()+"'");
  3086. }
  3087. if (qlty.getItem_code_t()!=null) {
  3088. sqlucomm.append( " and i.ITEM_CODE_T='"+qlty.getItem_code_t()+"'");
  3089. }
  3090. if (qlty.getItem_code_s()!=null) {
  3091. sqlucomm.append(" and i.ITEM_CODE_S='"+qlty.getItem_code_s()+"'");
  3092. }
  3093. sqlucomm.append(" and i.seq <= 49");
  3094. jhyResults=mapper.queryQcmJhyPhyresult1(sqlucomm.toString());
  3095. QcmjhyResults = null;
  3096. QcmjhyResults = jhyResults;//材质检验结果实绩
  3097. }
  3098. }
  3099. }
  3100. private void createQuoteItem(String smp_no, JhyQltyModel qlty) throws Exception {
  3101. // TODO Auto-generated method stub
  3102. //生成试样信息明细表 (检验委托明细表)
  3103. List<QcmJhyPhyresult> tarResults=new ArrayList<QcmJhyPhyresult>();
  3104. for (JhyQuoteModel old_sample : qlty.getQuoteSpecLists()) {
  3105. String key=old_sample.getType_code()+"-"+old_sample.getSpecimen_no();
  3106. //List<JhySampleDItemModel> tarItems=new ArrayList<JhySampleDItemModel>();
  3107. //检验结果
  3108. //处理初样
  3109. if ("0".equals(old_sample)) {
  3110. String specimen_no=createSpecimen_no(smp_no);
  3111. JhySampleDModel sampleD=getSampleD(smp_no,specimen_no,qlty);
  3112. sampleD.setQuote_consign_no(old_sample.getSpecimen_no());
  3113. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  3114. //获取待引用的该项目 qlty.getQuoteItem().get(key);
  3115. List<QcmJhySampleConsignDItem> quoteItems= qlty.getQuoteItem().get(key);
  3116. if (quoteItems!=null && quoteItems.size()>0) {
  3117. for (QcmJhySampleConsignDItem quote : quoteItems) {
  3118. if (qlty.getPhy_group_code().equals(quote.getPhy_group_code())) {
  3119. item.setQuote_seq(quote.getSeq().intValue());
  3120. item.setQuote_specimen_no(quote.getSpecimen_no());
  3121. if (qlty.getJhyResults()==null) {
  3122. continue;
  3123. }
  3124. List<QCM.JHY01.VO.QcmJhyPhyresult> reaults=qlty.getJhyResults().get(key);
  3125. if (reaults==null || reaults.size()<1) {
  3126. continue;
  3127. }
  3128. for (QcmJhyPhyresult qcmJhyPhyresult : reaults) {
  3129. String newItem=qcmJhyPhyresult.getPhy_code_l()+"-"+qcmJhyPhyresult.getPhy_code_m()+"-"+qcmJhyPhyresult.getPhy_code_s();
  3130. newItem=newItem+"-"+qcmJhyPhyresult.getItem_code_d()!=null?qcmJhyPhyresult.getItem_code_d():"null";
  3131. newItem=newItem+"-"+qcmJhyPhyresult.getItem_code_t()!=null?qcmJhyPhyresult.getItem_code_t():"null";
  3132. newItem=newItem+"-"+qcmJhyPhyresult.getItem_code_s()!=null?qcmJhyPhyresult.getItem_code_s():"null";
  3133. if (newItem.equals(qlty.getPhy_group_code())) {
  3134. qcmJhyPhyresult.setSpecimen_no(item.getSpecimen_no());
  3135. qcmJhyPhyresult.setSeq(item.getSeq().longValue());
  3136. tarResults.add(qcmJhyPhyresult);
  3137. }
  3138. }
  3139. break;
  3140. }
  3141. }
  3142. }
  3143. mapper.insertSampleD(sampleD);
  3144. mapper.insertSampleItem(item);
  3145. continue;
  3146. }
  3147. }
  3148. }
  3149. private void createSpecialQtlySample(JhyQltyModel qlty, String jsonStrng, StringBuffer sqlucomm) throws Exception {
  3150. // TODO Auto-generated method stub
  3151. sqlucomm.setLength(0);
  3152. sqlucomm.append("select t.smp_no from QCM_JHY_SAMPLE_CONSIGN_M t inner join QCM_JHY_SAMPLE_R_ORD d on d.smp_no=t.smp_no and d.design_key='"+qlty.getDesign_key()+"'");
  3153. sqlucomm.append(" and d.psc='"+qlty.getPsc()+"' and t.smp_catg='B' and t.cert_inst_code='"+qlty.getOrg_code()+"' and t.smp_type_code='"+qlty.getSample_style_code()+"' ");
  3154. sqlucomm.append(" and t.INSPECTION_LOT='"+qlty.getInspection_lot()+"' ");
  3155. logger.info("sql:"+sqlucomm.toString());
  3156. List<HashMap> samples=mapper.query(sqlucomm.toString());
  3157. String smp_no="";
  3158. List<String> smpNo = new ArrayList<String>();//试样号
  3159. List<String> specimenNo = new ArrayList<String>();//取样编号
  3160. //如果已经不存在
  3161. if (samples==null || samples.size()<1) {
  3162. //生成试样信息主表 (检验委托主表)
  3163. for (int i = 0; i < qlty.getTimes(); i++) {
  3164. smp_no = createQltySamNo(qlty.getPline_code());
  3165. //smpNo.add(smp_no);
  3166. JhySampleMMdoel model=getSampleM(smp_no,qlty,"B");
  3167. mapper.insertSampleM(model);
  3168. //生成试样信息明细表 (检验委托明细表)
  3169. String specimen_no=createSpecimen_no(smp_no);
  3170. //specimenNo.add(specimen_no);
  3171. phyItemSPNO.add(specimen_no);
  3172. JhySampleDModel sampleD=getSampleD(smp_no,specimen_no,qlty);
  3173. mapper.insertSampleD(sampleD);
  3174. //生成合同表
  3175. JhySampleOrdMdoel ord=getSampleOrd(smp_no,qlty);
  3176. mapper.insertSampleOrd(ord);
  3177. //生成材质项目表
  3178. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  3179. mapper.insertSampleItem(item);
  3180. }
  3181. }
  3182. for (int i = 0; i < samples.size(); i++) {
  3183. //获取已经存在的试样号,判断design_key+psc对应的订单信息是否存在
  3184. smp_no=(String)samples.get(i).get("SMP_NO");
  3185. //smpNo.add(smp_no);
  3186. //清空查询sql
  3187. sqlucomm.setLength(0);
  3188. //验证合同表是否存在
  3189. sqlucomm.append("SELECT DESIGN_KEY, SMP_NO,PSC FROM QCM_JHY_SAMPLE_R_ORD WHERE SMP_NO='"+smp_no+"' ");
  3190. sqlucomm.append("and DESIGN_KEY='"+qlty.getDesign_key()+"' ");
  3191. sqlucomm.append("and PSC='"+qlty.getPsc()+"'");
  3192. List<HashMap> samplesOrd=mapper.query(sqlucomm.toString());
  3193. if (samplesOrd==null || samplesOrd.size()<1) {
  3194. //生成合同表
  3195. JhySampleOrdMdoel ord=getSampleOrd(smp_no,qlty);
  3196. mapper.insertSampleOrd(ord);
  3197. }
  3198. //判断当前试样号向下该取样频次的明细是否存在
  3199. sqlucomm.setLength(0);
  3200. //取样编号
  3201. String specimen_no=null;
  3202. // sqlucomm.append("SELECT SMP_NO,SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE SMP_NO='"+smp_no+"' ");
  3203. // sqlucomm.append("and FREQ_CODE='"+qlty.getFreq_code()+"' ");
  3204. //
  3205. sqlucomm.append("SELECT SMP_NO,SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE SMP_NO='"+smp_no+"' ");
  3206. sqlucomm.append("and FREQ_CODE='"+qlty.getFreq_code()+"' and SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"'");
  3207. List<HashMap> samplesD=mapper.query(sqlucomm.toString());
  3208. if (samplesD==null || samplesD.size()<1) {
  3209. //生成试样信息明细表
  3210. specimen_no=createSpecimen_no(smp_no);
  3211. phyItemSPNO.add(specimen_no);
  3212. //specimenNo.add(specimen_no);
  3213. JhySampleDModel sampleD=getSampleD(smp_no,specimen_no,qlty);
  3214. mapper.insertSampleD(sampleD);
  3215. //生成材质项目表
  3216. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  3217. mapper.insertSampleItem(item);
  3218. continue;
  3219. }
  3220. //判断当前项目是否存在
  3221. specimen_no=(String)samplesD.get(0).get("SPECIMEN_NO");
  3222. phyItemSPNO.add(specimen_no);
  3223. //specimenNo.add(specimen_no);
  3224. sqlucomm.setLength(0);
  3225. sqlucomm.append("SELECT SPECIMEN_NO,SMP_NO,SEQ FROM QCM_JHY_SAMPLE_CONSIGN_D_ITEM WHERE SPECIMEN_NO='"+specimen_no+"' and SMP_NO='"+smp_no+"' ");
  3226. if (qlty.getPhy_code_l()!=null) {
  3227. sqlucomm.append("and PHY_CODE_L ='"+qlty.getPhy_code_l()+"' ");
  3228. }
  3229. if (qlty.getPhy_code_m()!=null) {
  3230. sqlucomm.append("and PHY_CODE_M='"+qlty.getPhy_code_m()+"' ");
  3231. }
  3232. if (qlty.getPhy_code_s()!=null) {
  3233. sqlucomm.append("and PHY_CODE_S='"+qlty.getPhy_code_s()+"' ");
  3234. }
  3235. if (qlty.getItem_code_d()!=null) {
  3236. sqlucomm.append("and ITEM_CODE_D='"+qlty.getItem_code_d()+"' ");
  3237. }
  3238. if (qlty.getItem_code_t()!=null) {
  3239. sqlucomm.append("and ITEM_CODE_T='"+qlty.getItem_code_t()+"' ");
  3240. }
  3241. if (qlty.getItem_code_s()!=null) {
  3242. sqlucomm.append("and ITEM_CODE_S='"+qlty.getItem_code_s()+"' ");
  3243. }
  3244. List<HashMap> samplesItems=mapper.query(sqlucomm.toString());
  3245. if (samplesItems!=null && samplesItems.size()>0) {
  3246. continue;
  3247. }
  3248. //生成项目
  3249. //生成材质项目表
  3250. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  3251. mapper.insertSampleItem(item);
  3252. }
  3253. }
  3254. private void createSpecialQtlySampleNew(JhyQltyModel qlty, String jsonStrng, StringBuffer sqlucomm) throws Exception {
  3255. // TODO Auto-generated method stub
  3256. sqlucomm.setLength(0);
  3257. sqlucomm.append("select t.smp_no from QCM_JHY_SAMPLE_CONSIGN_M t inner join QCM_JHY_SAMPLE_R_ORD d on d.smp_no=t.smp_no and d.design_key='"+qlty.getDesign_key()+"'");
  3258. sqlucomm.append(" and d.psc='"+qlty.getPsc()+"' and t.smp_catg='B' and t.cert_inst_code='"+qlty.getOrg_code()+"' and t.smp_type_code='"+qlty.getSample_style_code()+"' ");
  3259. sqlucomm.append(" and t.INSPECTION_LOT='"+qlty.getInspection_lot()+"' ");
  3260. logger.info("sql:"+sqlucomm.toString());
  3261. List<HashMap> samples=mapper.query(sqlucomm.toString());
  3262. String smp_no="";
  3263. //如果已经不存在
  3264. if (samples==null || samples.size()<1) {
  3265. //生成试样信息主表 (检验委托主表)
  3266. for (int i = 0; i < qlty.getSmpCounts(); i++) {
  3267. smp_no = createQltySamNo(qlty.getPline_code());
  3268. JhySampleMMdoel model=getSampleM(smp_no,qlty,"B");
  3269. mapper.insertSampleM(model);
  3270. //生成试样信息明细表 (检验委托明细表)
  3271. String specimen_no=createSpecimen_no(smp_no);
  3272. phyItemSPNO.add(specimen_no);
  3273. JhySampleDModel sampleD=getSampleD(smp_no,specimen_no,qlty);
  3274. mapper.insertSampleD(sampleD);
  3275. //生成合同表
  3276. JhySampleOrdMdoel ord=getSampleOrd(smp_no,qlty);
  3277. mapper.insertSampleOrd(ord);
  3278. //生成材质项目表
  3279. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  3280. mapper.insertSampleItem(item);
  3281. }
  3282. }
  3283. for (int i = 0; i < samples.size(); i++) {
  3284. //获取已经存在的试样号,判断design_key+psc对应的订单信息是否存在
  3285. smp_no=(String)samples.get(i).get("SMP_NO");
  3286. //清空查询sql
  3287. sqlucomm.setLength(0);
  3288. //验证合同表是否存在
  3289. sqlucomm.append("SELECT DESIGN_KEY, SMP_NO,PSC FROM QCM_JHY_SAMPLE_R_ORD WHERE SMP_NO='"+smp_no+"' ");
  3290. sqlucomm.append("and DESIGN_KEY='"+qlty.getDesign_key()+"' ");
  3291. sqlucomm.append("and PSC='"+qlty.getPsc()+"'");
  3292. List<HashMap> samplesOrd=mapper.query(sqlucomm.toString());
  3293. if (samplesOrd==null || samplesOrd.size()<1) {
  3294. //生成合同表
  3295. JhySampleOrdMdoel ord=getSampleOrd(smp_no,qlty);
  3296. mapper.insertSampleOrd(ord);
  3297. }
  3298. //判断当前试样号向下该取样频次的明细是否存在
  3299. sqlucomm.setLength(0);
  3300. //取样编号
  3301. String specimen_no=null;
  3302. sqlucomm.append("SELECT SMP_NO,SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE SMP_NO='"+smp_no+"' ");
  3303. sqlucomm.append("and FREQ_CODE='"+qlty.getFreq_code()+"' and SMP_LOCATION_CODE='"+qlty.getSmp_position_code()+"'");
  3304. List<HashMap> samplesD=mapper.query(sqlucomm.toString());
  3305. if (samplesD==null || samplesD.size()<1) {
  3306. //生成试样信息明细表
  3307. specimen_no=createSpecimen_no(smp_no);
  3308. phyItemSPNO.add(specimen_no);
  3309. JhySampleDModel sampleD=getSampleD(smp_no,specimen_no,qlty);
  3310. mapper.insertSampleD(sampleD);
  3311. //生成材质项目表
  3312. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  3313. mapper.insertSampleItem(item);
  3314. continue;
  3315. }
  3316. //判断当前项目是否存在
  3317. specimen_no=(String)samplesD.get(0).get("SPECIMEN_NO");
  3318. phyItemSPNO.add(specimen_no);
  3319. sqlucomm.setLength(0);
  3320. sqlucomm.append("SELECT SPECIMEN_NO,SMP_NO,SEQ FROM QCM_JHY_SAMPLE_CONSIGN_D_ITEM WHERE SPECIMEN_NO='"+specimen_no+"' and SMP_NO='"+smp_no+"' ");
  3321. if (qlty.getPhy_code_l()!=null) {
  3322. sqlucomm.append("and PHY_CODE_L ='"+qlty.getPhy_code_l()+"' ");
  3323. }
  3324. if (qlty.getPhy_code_m()!=null) {
  3325. sqlucomm.append("and PHY_CODE_M='"+qlty.getPhy_code_m()+"' ");
  3326. }
  3327. if (qlty.getPhy_code_s()!=null) {
  3328. sqlucomm.append("and PHY_CODE_S='"+qlty.getPhy_code_s()+"' ");
  3329. }
  3330. if (qlty.getItem_code_d()!=null) {
  3331. sqlucomm.append("and ITEM_CODE_D='"+qlty.getItem_code_d()+"' ");
  3332. }
  3333. if (qlty.getItem_code_t()!=null) {
  3334. sqlucomm.append("and ITEM_CODE_T='"+qlty.getItem_code_t()+"' ");
  3335. }
  3336. if (qlty.getItem_code_s()!=null) {
  3337. sqlucomm.append("and ITEM_CODE_S='"+qlty.getItem_code_s()+"' ");
  3338. }
  3339. List<HashMap> samplesItems=mapper.query(sqlucomm.toString());
  3340. if (samplesItems!=null && samplesItems.size()>0) {
  3341. continue;
  3342. }
  3343. //生成项目
  3344. //生成材质项目表
  3345. JhySampleDItemModel item=getSampleItem(smp_no,specimen_no,qlty);
  3346. mapper.insertSampleItem(item);
  3347. }
  3348. }
  3349. /**
  3350. * 获取材质项目对象
  3351. * @param smp_no
  3352. * @param specimen_no
  3353. * @param qlty
  3354. * @return
  3355. * @throws Exception
  3356. */
  3357. private JhySampleDItemModel getSampleItem(String smp_no, String specimen_no, JhyQltyModel qlty) throws Exception {
  3358. // TODO Auto-generated method stub
  3359. JhySampleDItemModel model=new JhySampleDItemModel();
  3360. model.setSmp_no(smp_no);
  3361. model.setSpecimen_no(specimen_no);
  3362. model.setQuote_specimen_no(qlty.getQuote_specimen_no());
  3363. model.setQuote_seq(qlty.getQuote_seq());
  3364. // model.setJudge_basis(qlt);
  3365. model.setPhy_code_l(qlty.getPhy_code_l());;
  3366. model.setPhy_code_m(qlty.getPhy_code_m());
  3367. model.setPhy_code_s(qlty.getPhy_code_s());
  3368. model.setPhy_name_l(qlty.getPhy_name_l());
  3369. model.setPhy_name_m(qlty.getPhy_name_m());
  3370. model.setPhy_name_s(qlty.getPhy_name_s());
  3371. model.setItem_code_d(qlty.getItem_code_d());
  3372. model.setItem_code_t(qlty.getItem_code_t());
  3373. model.setItem_code_s(qlty.getItem_code_s());
  3374. model.setItem_code_l(qlty.getItem_code_l());
  3375. model.setItem_name_d(qlty.getItem_name_d());
  3376. model.setItem_name_t(qlty.getItem_name_t());
  3377. model.setItem_name_s(qlty.getItem_name_s());
  3378. model.setItem_desc_l(qlty.getItem_desc_l());
  3379. model.setIsjudge(qlty.getIsjudge());
  3380. model.setPhy_unit(qlty.getPhy_unit());
  3381. model.setGroup_seq(qlty.getGroup_seq());
  3382. model.setMemo(qlty.getMemo());
  3383. model.setSpecl_fl(qlty.getSpecl_fl());
  3384. //试验次数
  3385. model.setTest_qty(qlty.getSmp_count());
  3386. model.setSmp_qty(qlty.getSmp_qty());
  3387. model.setCreate_id(qlty.getCreate_id());
  3388. model.setCreate_name(qlty.getCreate_name());
  3389. model.setCreate_time(new Date());
  3390. model.setStdmax(qlty.getStdmax());
  3391. model.setStdmax_sign(qlty.getStdmax_sign());
  3392. model.setStdmin(qlty.getStdmin());
  3393. model.setStdmin_sign(qlty.getStdmin_sign());
  3394. model.setStdmemo(qlty.getStdmemo());
  3395. model.setPhy_group_code(qlty.getPhy_group_code());
  3396. model.setSeq(createItemSeq(smp_no,specimen_no));
  3397. //样品类型
  3398. return model;
  3399. }
  3400. /**
  3401. * 创建项目seq
  3402. * @param specimen_no
  3403. * @param smp_no
  3404. * @param cn
  3405. * @return
  3406. * @throws Exception
  3407. */
  3408. private Integer createItemSeq(String smp_no,String specimen_no ) throws Exception {
  3409. // TODO Auto-generated method stub
  3410. StringBuffer sqlucomm = new StringBuffer();
  3411. sqlucomm.append("SELECT max(SEQ) SEQ FROM QCM_JHY_SAMPLE_CONSIGN_D_ITEM WHERE SMP_NO ='"+smp_no+"' and SPECIMEN_NO='"+specimen_no+"'");
  3412. HashMap result=mapper.queryOne(sqlucomm.toString());
  3413. Integer SEQ=0;
  3414. if (result!=null && result.get("SEQ")!=null) {
  3415. SEQ=((BigDecimal)result.get("SEQ")).intValue();
  3416. }
  3417. SEQ++;
  3418. return SEQ;
  3419. }
  3420. /**
  3421. * 获取明细试样对象
  3422. * @param smp_no
  3423. * @param specimen_no
  3424. * @param qlty
  3425. * @return
  3426. */
  3427. private JhySampleDModel getSampleD(String smp_no, String specimen_no, JhyQltyModel qlty) {
  3428. // TODO Auto-generated method stub
  3429. JhySampleDModel model=new JhySampleDModel();
  3430. model.setSmp_no(smp_no);
  3431. model.setSpecimen_no(specimen_no);
  3432. model.setHeat_no(qlty.getHeat_no());
  3433. model.setBatch_no(qlty.getBatch_no());
  3434. model.setBoard_no(qlty.getBoard_no());
  3435. model.setInspection_lot(qlty.getInspection_lot());
  3436. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1")){
  3437. model.setMaterial_no(qlty.getMaterial_no());//取样材料号
  3438. }else{
  3439. String materialNo = getBilletIdM(qlty);
  3440. if(StringUtils.isBlank(materialNo)){
  3441. model.setMaterial_no(qlty.getMaterial_no());//取样材料号
  3442. }else{
  3443. model.setMaterial_no(materialNo);
  3444. }
  3445. }
  3446. //热处理号
  3447. String rclState = "";
  3448. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1")){
  3449. rclState = getRclState(qlty.getPline_code(),qlty.getMaterial_no());
  3450. }
  3451. if(rclState!=null && !"".equals(rclState)){
  3452. model.setProcess_no(rclState);
  3453. model.setProcess_nos(rclState);
  3454. }
  3455. model.setProcess_code(qlty.getProcess_code());
  3456. model.setFreq_code(qlty.getFreq_code());
  3457. model.setFreq_name(qlty.getFreq_name());
  3458. //试验次数
  3459. model.setTest_qty(qlty.getSmp_count());
  3460. model.setSmp_qty(qlty.getSmp_qty());
  3461. //样品类型
  3462. model.setSmp_type_code(qlty.getSmp_type_code());
  3463. model.setSmp_type_name(qlty.getSmp_type_name());
  3464. model.setSmp_location(qlty.getSmp_position_desc());
  3465. model.setSmp_location_code(qlty.getSmp_position_code());
  3466. model.setQuote_consign_no(qlty.getQlty_smp_no());
  3467. model.setPline_code(qlty.getPline_code());
  3468. model.setPline_name(qlty.getPline_name());
  3469. model.setValidflag("1");
  3470. model.setStatus("0");
  3471. model.setSource(qlty.getSource());
  3472. model.setProduct_cnt(qlty.getProduct_cnt());
  3473. model.setGuid(this.getUUID());
  3474. model.setChem_item(qlty.getChemItems());
  3475. model.setMemo(qlty.getOrderMemo());
  3476. model.setWeight(qlty.getWeight());
  3477. model.setWeight_std(qlty.getWeight_std());
  3478. model.setWeight_sfd(qlty.getWeight_sfd());
  3479. if(memoXngs.equals("true1")){
  3480. model.setSend_memo("性能改善");
  3481. model.setImprove_memo("性能改善");
  3482. }
  3483. //是否人工委托
  3484. if(!StringUtils.isBlank(memoRg)){
  3485. //人工委托
  3486. model.setArtificial_memo(memoRg);
  3487. }
  3488. return model;
  3489. }
  3490. //热处理号
  3491. public String getRclState(String plineCode,String materialNo){
  3492. String rclState = "000000";
  3493. String sqls= "";
  3494. /* if(plineCode.equals("ZB1")){
  3495. sqls = " select t.* from KCZ_TURNOFFLIST@xgcx t where t.BILLETID = '"+materialNo+"'"
  3496. + " and t.rcl_state is not null ";
  3497. }
  3498. if(plineCode.equals("HB1")){
  3499. sqls = " select t.* from KCH_TURNOFFLIST@xgcx t where t.BILLETID = '"+materialNo+"'"
  3500. + " and t.rcl_state is not null ";
  3501. }*/
  3502. sqls="select r.rcl_state from (select t.RCL_STATE from KCZ_TURNOFFLIST@xgcx t where t.BILLETID = '"+materialNo+"' "
  3503. +" and t.rcl_state is not null "
  3504. +" union "
  3505. +" select t.RCL_STATE from KCH_TURNOFFLIST@xgcx t where t.BILLETID = '"+materialNo+"' "
  3506. +" and t.rcl_state is not null) r group by r.rcl_state order by r.rcl_state desc ";
  3507. List<HashMap> tarMemo=mapper.query(sqls.toString());
  3508. if (tarMemo!=null && tarMemo.size()>=1){
  3509. if(StringUtils.isNotBlank(tarMemo.get(0).get("RCL_STATE").toString())){
  3510. rclState = (String) tarMemo.get(0).get("RCL_STATE");
  3511. }
  3512. }
  3513. return rclState;
  3514. }
  3515. /**
  3516. * 查询 取样材料号
  3517. * @param parmas
  3518. * @return
  3519. */
  3520. public String getBilletIdM(JhyQltyModel qlty) {
  3521. String plineCode="";
  3522. if(qlty.getPline_code().equals("BC2")){
  3523. plineCode = "4001BC2";
  3524. }
  3525. if(qlty.getPline_code().equals("GX2")){
  3526. plineCode = "4001GX2";
  3527. }
  3528. if(qlty.getPline_code().equals("GX1")){
  3529. plineCode = "4001GX1";
  3530. }
  3531. String materialNo = "";
  3532. String sql = "";
  3533. if(qlty.getPline_code().equals("BC2") || qlty.getPline_code().equals("GX2") || qlty.getPline_code().equals("GX1") ){
  3534. sql = " select t.pline_code,t.MATERIAL_NO, t.NUMS from ( "
  3535. +" select productline pline_code, BILLETID as MATERIAL_NO,Substr(BILLETID, instr(BILLETID, '.') + 1, length(BILLETID)) NUMS from kch_turnofflist@xgcx where BILLETID like '"+qlty.getBatch_no()+"'||'%' union "
  3536. +" select productline pline_code, BILLETID as MATERIAL_NO,Substr(BILLETID, instr(BILLETID, '.') + 1, length(BILLETID)) NUMS from kcz_turnofflist@xgcx where BILLETID like '"+qlty.getBatch_no()+"'||'%' union "
  3537. +" select pld pline_code, BILLETID as MATERIAL_NO,Substr(BILLETID, instr(BILLETID, '.') + 1, length(BILLETID)) NUMS from kcx_turnofflist@xgcx where BILLETID like '"+qlty.getBatch_no()+"'||'%' "
  3538. +" ) t "
  3539. +" where t.MATERIAL_NO not in (select d.material_no from QCM_JHY_SAMPLE_CONSIGN_D d where d.material_no like '"+qlty.getBatch_no()+"'||'%') "
  3540. +" and t.pline_code = '"+plineCode+"' "
  3541. +" order by CAST(t.NUMS AS int) ";
  3542. }
  3543. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1") ){
  3544. sql = " select t.MATERIAL_NO, t.NUMS from ( "
  3545. +" select BILLETID as MATERIAL_NO,Substr(BILLETID, instr(BILLETID, '.') + 1, length(BILLETID)) NUMS from kch_turnofflist@xgcx where BILLETID like '"+qlty.getBatch_no()+"'||'%' union "
  3546. +" select BILLETID as MATERIAL_NO,Substr(BILLETID, instr(BILLETID, '.') + 1, length(BILLETID)) NUMS from kcz_turnofflist@xgcx where BILLETID like '"+qlty.getBatch_no()+"'||'%' union "
  3547. +" select BILLETID as MATERIAL_NO,Substr(BILLETID, instr(BILLETID, '.') + 1, length(BILLETID)) NUMS from kcx_turnofflist@xgcx where BILLETID like '"+qlty.getBatch_no()+"'||'%' "
  3548. +" ) t "
  3549. +" where t.MATERIAL_NO not in (select d.material_no from QCM_JHY_SAMPLE_CONSIGN_D d where d.material_no like '"+qlty.getBatch_no()+"'||'%') ";
  3550. }
  3551. if(!StringUtils.isBlank(sql)){
  3552. List<HashMap> listEle= mapper.query(sql.toString());
  3553. if (listEle!=null && listEle.size()>0) {
  3554. materialNo = (String) listEle.get(0).get("MATERIAL_NO");
  3555. System.out.println("0轧批号"+qlty.getBatch_no()+"==="+materialNo);
  3556. }
  3557. }
  3558. return materialNo;
  3559. }
  3560. /**
  3561. * 生成不带 "-" 的UUID
  3562. *
  3563. * @return
  3564. */
  3565. private String getUUID() {
  3566. UUID uuid = UUID.randomUUID();
  3567. String str = uuid.toString();
  3568. String uuidStr = str.replace("-", "");
  3569. return uuidStr;
  3570. }
  3571. /**
  3572. * 获取取样编号
  3573. * @param smp_no
  3574. * @return
  3575. */
  3576. private String createSpecimen_no(String smp_no) {
  3577. // TODO Auto-generated method stub
  3578. String specimen_no="";
  3579. StringBuffer sqlucomm = new StringBuffer();
  3580. sqlucomm.append("SELECT max(to_number(substr(SPECIMEN_NO,14))) SPECIMEN_NO FROM QCM_JHY_SAMPLE_CONSIGN_D "
  3581. + "WHERE SPECIMEN_NO like '"+smp_no+"%' and SMP_NO='"+smp_no+"'");
  3582. HashMap result=mapper.queryOne(sqlucomm.toString());
  3583. BigDecimal seq=BigDecimal.ZERO;
  3584. if (result!=null && result.get("SPECIMEN_NO") !=null) {
  3585. seq=(BigDecimal)result.get("SPECIMEN_NO");
  3586. }
  3587. seq=seq.add(BigDecimal.ONE);
  3588. specimen_no=smp_no+ String.format("%02d", seq.intValue());
  3589. return specimen_no;
  3590. }
  3591. /**
  3592. * 设置试样信息明细表对象值
  3593. * @param smp_no
  3594. * @param qlty
  3595. * @return
  3596. */
  3597. private JhySampleOrdMdoel getSampleOrd(String smp_no, JhyQltyModel qlty) {
  3598. // TODO Auto-generated method stub
  3599. JhySampleOrdMdoel ord=new JhySampleOrdMdoel();
  3600. ord.setSmp_no(smp_no);
  3601. ord.setDesign_key(qlty.getDesign_key());
  3602. ord.setHeat_no(qlty.getHeat_no());
  3603. ord.setBatch_no(qlty.getBatch_no());
  3604. ord.setInspection_lot(qlty.getInspection_lot());
  3605. ord.setPsc(qlty.getPsc());
  3606. ord.setPsc_desc(qlty.getPsc_desc());
  3607. ord.setDelivery_state_code(qlty.getDelivery_state_code());
  3608. ord.setDelivery_state_desc(qlty.getDelivery_state_desc());
  3609. ord.setThick(qlty.getThick());
  3610. ord.setWidth(qlty.getWidth());
  3611. ord.setLength(qlty.getLength());
  3612. ord.setPline_code(qlty.getPline_code());
  3613. ord.setPline_name(qlty.getPline_name());
  3614. ord.setMsc_pline(qlty.getMsc_pline());
  3615. if(qlty.getPline_code().equals("HB1") || qlty.getPline_code().equals("ZB1")){
  3616. ord.setProcess_code("HR");
  3617. }else{
  3618. ord.setProcess_code(qlty.getProcess_code());
  3619. }
  3620. ord.setCert_inst_code(qlty.getOrg_code());
  3621. ord.setCert_inst_name(qlty.getOrg_name());
  3622. ord.setSmp_type_code(qlty.getSample_style_code());
  3623. ord.setSmp_type_name(qlty.getSample_style_name());
  3624. ord.setProduct_cnt(qlty.getProduct_cnt());
  3625. // ord.setAssay_no_cp(qlty.geta);
  3626. // ord.setAssay_no_rl(assay_no_rl);
  3627. ord.setProd_code(qlty.getProd_code());
  3628. ord.setProd_name(qlty.getProd_name());
  3629. ord.setSteel_code(qlty.getSteel_code());
  3630. ord.setSteel_name(qlty.getSteel_name());
  3631. ord.setStd_code(qlty.getStd_code());
  3632. ord.setStd_name(qlty.getStd_name());
  3633. ord.setCreate_id(qlty.getCreate_id());
  3634. ord.setCreate_name(qlty.getCreate_name());
  3635. ord.setCreate_time(new Date());
  3636. if(memoXngs.equals("true1")){
  3637. ord.setImprove_memo("性能改善");
  3638. }
  3639. return ord;
  3640. }
  3641. /**
  3642. * 设置试样信息主表对象值
  3643. * @param smp_no
  3644. * @param qlty
  3645. * @param smp_catg
  3646. * @return
  3647. */
  3648. private JhySampleMMdoel getSampleM(String smp_no, JhyQltyModel qlty,String smp_catg) {
  3649. // TODO Auto-generated method stub
  3650. JhySampleMMdoel model=new JhySampleMMdoel();
  3651. model.setSmp_no(smp_no);
  3652. model.setHeat_no(qlty.getHeat_no());
  3653. model.setBatch_no(qlty.getBatch_no());
  3654. model.setBoard_no(qlty.getBoard_no());
  3655. model.setInspection_lot(qlty.getInspection_lot());
  3656. model.setMaterial_no(qlty.getMaterial_no());
  3657. /* model.setPsc(qlty.getMain_psc());
  3658. model.setPsc_desc(qlty.getMain_psc_desc());*/
  3659. model.setPsc(qlty.getPsc());
  3660. model.setPsc_desc(qlty.getPsc_desc());
  3661. model.setSmp_catg(smp_catg);
  3662. model.setCreate_id(qlty.getCreate_id());
  3663. model.setCreate_name(qlty.getCreate_name());
  3664. model.setCert_inst_code(qlty.getOrg_code());
  3665. model.setCert_inst_name(qlty.getOrg_name());
  3666. //试样类型
  3667. model.setSmp_type_code(qlty.getSample_style_code());
  3668. model.setSmp_type_name(qlty.getSample_style_name());
  3669. model.setGrade_code(qlty.getGrade_code());
  3670. model.setGrade_name(qlty.getGrade_name());
  3671. model.setPline_code(qlty.getPline_code());
  3672. model.setPline_name(qlty.getPline_name());
  3673. model.setCreate_time(new Date());
  3674. //是否人工委托
  3675. if(!StringUtils.isBlank(memoRg)){
  3676. //人工委托
  3677. model.setMemo(memoRg);
  3678. }
  3679. return model;
  3680. }
  3681. /**
  3682. * 创建试样号
  3683. * @param pline_code 产线代码
  3684. * @return
  3685. */
  3686. private String createQltySamNo(String pline_code) {
  3687. // TODO Auto-generated method stub
  3688. String smp_no="";
  3689. SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
  3690. if (pline_code.length()>3){
  3691. pline_code=pline_code.substring(0,3);
  3692. }else if (pline_code.length()==2){
  3693. pline_code="0"+pline_code;
  3694. }else if (pline_code.length()==1){
  3695. pline_code="00"+pline_code;
  3696. }
  3697. String syh = pline_code +sdf.format(new Date());
  3698. StringBuffer sqlucomm = new StringBuffer();
  3699. sqlucomm.append("SELECT max(to_number(substr(smp_no,10))) SMP_NO FROM QCM_JHY_SAMPLE_CONSIGN_M WHERE SMP_NO like '"+syh+"%' ");
  3700. HashMap result=mapper.queryOne(sqlucomm.toString());
  3701. BigDecimal seq=BigDecimal.ZERO;
  3702. if (result!=null && result.get("SMP_NO")!=null ) {
  3703. seq=(BigDecimal)result.get("SMP_NO");
  3704. }
  3705. seq=seq.add(BigDecimal.ONE);
  3706. smp_no=syh+ String.format("%04d", seq.intValue());
  3707. return smp_no;
  3708. }
  3709. /**
  3710. * 验证检验类型的工序点 list传过来的JSON qltys:材质 jsonStrng:JSON chems:成分
  3711. * @param lists
  3712. * @param qltys
  3713. * @param jsonStrng
  3714. * @param chems
  3715. * @return
  3716. */
  3717. private String checkInspectionPoint(JSONArray lists, List<JhyQltyModel> qltys, String jsonStrng,List<JhyQltyModel> chems) {
  3718. // TODO Auto-generated method stub
  3719. for (Object li : lists) {
  3720. JSONObject list = (JSONObject) li;
  3721. StringBuffer sqlucomm = new StringBuffer();
  3722. boolean pass = false;
  3723. if (list.get("IS_QTLY") != null && "1".equals((String) list.get("IS_QTLY"))) {
  3724. pass = true;
  3725. }
  3726. //获取数据源数据 下面的排序非常重要 千万不要随便改动 关系生成委托项目对不对
  3727. if (pass) {
  3728. //22.09.07 连退获取项目分开
  3729. String plineCode =list.get("PLINE_CODE").toString();
  3730. if(plineCode.equals("LT1")){
  3731. sqlucomm.setLength(0);
  3732. sqlucomm.append(
  3733. "SELECT t.design_key, t.index_seq, t.psc,t.psc_desc,t.msc_pline, t.process_code, t.backlog_seq,t.org_code,t.org_name,");
  3734. sqlucomm.append(
  3735. " t.phy_code_l,t.phy_name_l,t.phy_code_m,t.phy_name_m,t.phy_code_s,t.phy_name_s,t.item_code_d,t.item_name_d,t.item_code_t,");
  3736. sqlucomm.append(
  3737. " t.item_name_t,t.item_code_s,t.item_name_s,t.sample_style_code,t.sample_style_name, t.rate_code, t.rate_desc,t.isjudge,");
  3738. sqlucomm.append(
  3739. " t.ischeck,t.isquote,t.group_seq,t.smp_qty,t.smp_position_code,t.smp_position_desc,t.prod_code,t.prod_name,t.steel_code,");
  3740. sqlucomm.append(
  3741. " t.steel_name,t.std_code,t.std_name,t.smp_count,t.item_code_l,t.item_desc_l,t.phy_unit,t.create_id,t.create_name,"
  3742. + " t.create_time,t.retest_yn,t.retest_qty,t.specl_fl,t.stdmin_sign, t.stdmin, t.stdmax_sign,t.stdmax, "
  3743. + "t.stdmemo,t.PROCESS_CODE FROM QCM_ORD_DESIGN_SAMPLE_M t WHERE t.DESIGN_KEY='"
  3744. + list.get("DESIGN_KEY") + "' AND t.ISCHECK='1' and (t.process_code is null or t.PROCESS_CODE='LT1') "
  3745. + " order by t.STEEL_CODE asc,t.smp_position_code asc,t.phy_code_l asc,t.PHY_CODE_M asc,t.PHY_CODE_S asc ");
  3746. }else if(plineCode.equals("RZ1")){
  3747. sqlucomm.setLength(0);
  3748. sqlucomm.append(
  3749. "SELECT t.design_key, t.index_seq, t.psc,t.psc_desc,t.msc_pline, t.process_code, t.backlog_seq,t.org_code,t.org_name,");
  3750. sqlucomm.append(
  3751. " t.phy_code_l,t.phy_name_l,t.phy_code_m,t.phy_name_m,t.phy_code_s,t.phy_name_s,t.item_code_d,t.item_name_d,t.item_code_t,");
  3752. sqlucomm.append(
  3753. " t.item_name_t,t.item_code_s,t.item_name_s,t.sample_style_code,t.sample_style_name, t.rate_code, t.rate_desc,t.isjudge,");
  3754. sqlucomm.append(
  3755. " t.ischeck,t.isquote,t.group_seq,t.smp_qty,t.smp_position_code,t.smp_position_desc,t.prod_code,t.prod_name,t.steel_code,");
  3756. sqlucomm.append(
  3757. " t.steel_name,t.std_code,t.std_name,t.smp_count,t.item_code_l,t.item_desc_l,t.phy_unit,t.create_id,t.create_name,"
  3758. + " t.create_time,t.retest_yn,t.retest_qty,t.specl_fl,t.stdmin_sign, t.stdmin, t.stdmax_sign,t.stdmax, "
  3759. + "t.stdmemo,t.PROCESS_CODE FROM QCM_ORD_DESIGN_SAMPLE_M t WHERE t.DESIGN_KEY='"
  3760. + list.get("DESIGN_KEY") + "' AND t.ISCHECK='1' and (t.process_code is null or t.PROCESS_CODE='RZ1') "
  3761. + " order by t.STEEL_CODE asc,t.smp_position_code asc,t.phy_code_l asc,t.PHY_CODE_M asc,t.PHY_CODE_S asc ");
  3762. }else if(plineCode.equals("HB1") || plineCode.equals("ZB1")){
  3763. //判断这个订单是否有子板 23.03.29
  3764. String sqlhzb="select t.* from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+list.get("DESIGN_KEY")+"' and t.rate_code in ('C', 'H', 'I')";
  3765. List<HashMap> sqlhzbHM=mapper.query(sqlhzb.toString());
  3766. if(sqlhzbHM!=null && sqlhzbHM.size()>=1){
  3767. //进入说明是子板取样
  3768. sqlhzb="";
  3769. sqlhzb="select T.* from QCM_JHY_SAMPLE_CONSIGN_D t WHERE T.BATCH_NO = '"+list.get("BATCH_NO")+"' and t.freq_code = 'D' ";
  3770. List<HashMap> sqlDHM=mapper.query(sqlhzb.toString());
  3771. if(sqlDHM!=null && sqlDHM.size()>=1){
  3772. list.put("HTPROCESS_CODE", "HT");
  3773. }
  3774. }else if(list.get("HTPROCESS_CODE").equals("HT1")){//热处理之后生成力学进入
  3775. sqlhzb="";
  3776. sqlhzb="select t.* from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+list.get("DESIGN_KEY")+"' and t.rate_code ='D' ";
  3777. List<HashMap> sqld=mapper.query(sqlhzb.toString());
  3778. if(sqld!=null && sqld.size()>=1){
  3779. //同牌号 同规格 不同订单 缺少夹杂
  3780. sqlhzb="";
  3781. sqlhzb="select t.* from qcm_jhy_sample_consign_d t, Qcm_Jhy_Sample_r_Ord r where t.smp_no = r.smp_no "
  3782. +" and r.batch_no = '"+list.get("BATCH_NO")+"' and r.design_key = '"+list.get("DESIGN_KEY")+"' and t.freq_code = 'D' ";
  3783. List<HashMap> sqlDHM=mapper.query(sqlhzb.toString());
  3784. if(sqlDHM==null || sqlDHM.size()<=0){
  3785. list.put("HTPROCESS_CODE", "HT");
  3786. }
  3787. }
  3788. }
  3789. //HB1/ZB1热处理之前的所有项目 HT1都是热处理之后的所有项目
  3790. if(list.get("HTPROCESS_CODE").equals("HB1") || list.get("HTPROCESS_CODE").equals("ZB1")){
  3791. memoRg3 = (String) list.get("HTPROCESS_CODE");
  3792. sqlucomm.setLength(0);
  3793. sqlucomm.append(
  3794. "SELECT t.design_key, t.index_seq, t.psc,t.psc_desc,t.msc_pline, t.process_code, t.backlog_seq,t.org_code,t.org_name,");
  3795. sqlucomm.append(
  3796. " t.phy_code_l,t.phy_name_l,t.phy_code_m,t.phy_name_m,t.phy_code_s,t.phy_name_s,t.item_code_d,t.item_name_d,t.item_code_t,");
  3797. sqlucomm.append(
  3798. " t.item_name_t,t.item_code_s,t.item_name_s,t.sample_style_code,t.sample_style_name, t.rate_code, t.rate_desc,t.isjudge,");
  3799. sqlucomm.append(
  3800. " t.ischeck,t.isquote,t.group_seq,t.smp_qty,t.smp_position_code,t.smp_position_desc,t.prod_code,t.prod_name,t.steel_code,");
  3801. sqlucomm.append(
  3802. " t.steel_name,t.std_code,t.std_name,t.smp_count,t.item_code_l,t.item_desc_l,t.phy_unit,t.create_id,t.create_name,"
  3803. + " t.create_time,t.retest_yn,t.retest_qty,t.specl_fl,t.stdmin_sign, t.stdmin, t.stdmax_sign,t.stdmax, "
  3804. + "t.stdmemo,t.PROCESS_CODE FROM QCM_ORD_DESIGN_SAMPLE_M t WHERE t.DESIGN_KEY='"
  3805. + list.get("DESIGN_KEY") + "' AND t.ISCHECK='1' and (t.process_code is null or t.PROCESS_CODE='HB1' or t.PROCESS_CODE='ZB1') "
  3806. + " order by t.STEEL_CODE asc,t.smp_position_code asc,t.phy_code_l asc,t.PHY_CODE_M asc,t.PHY_CODE_S asc ");
  3807. }else if(list.get("HTPROCESS_CODE").equals("HT1")){//HT1都是热处理之后的所有项目
  3808. memoRg3 = (String) list.get("HTPROCESS_CODE");
  3809. sqlucomm.setLength(0);
  3810. sqlucomm.append(
  3811. "SELECT t.design_key, t.index_seq, t.psc,t.psc_desc,t.msc_pline, t.process_code, t.backlog_seq,t.org_code,t.org_name,");
  3812. sqlucomm.append(
  3813. " t.phy_code_l,t.phy_name_l,t.phy_code_m,t.phy_name_m,t.phy_code_s,t.phy_name_s,t.item_code_d,t.item_name_d,t.item_code_t,");
  3814. sqlucomm.append(
  3815. " t.item_name_t,t.item_code_s,t.item_name_s,t.sample_style_code,t.sample_style_name, t.rate_code, t.rate_desc,t.isjudge,");
  3816. sqlucomm.append(
  3817. " t.ischeck,t.isquote,t.group_seq,t.smp_qty,t.smp_position_code,t.smp_position_desc,t.prod_code,t.prod_name,t.steel_code,");
  3818. sqlucomm.append(
  3819. " t.steel_name,t.std_code,t.std_name,t.smp_count,t.item_code_l,t.item_desc_l,t.phy_unit,t.create_id,t.create_name,"
  3820. + " t.create_time,t.retest_yn,t.retest_qty,t.specl_fl,t.stdmin_sign, t.stdmin, t.stdmax_sign,t.stdmax, "
  3821. + "t.stdmemo,t.PROCESS_CODE FROM QCM_ORD_DESIGN_SAMPLE_M t WHERE t.DESIGN_KEY='"
  3822. + list.get("DESIGN_KEY") + "' AND t.ISCHECK='1' and (t.process_code is null or t.PROCESS_CODE='HT1') "
  3823. + " order by t.STEEL_CODE asc,t.smp_position_code asc,t.phy_code_l asc,t.PHY_CODE_M asc,t.PHY_CODE_S asc ");
  3824. }else{
  3825. sqlucomm.setLength(0);
  3826. sqlucomm.append(
  3827. "SELECT t.design_key, t.index_seq, t.psc,t.psc_desc,t.msc_pline, t.process_code, t.backlog_seq,t.org_code,t.org_name,");
  3828. sqlucomm.append(
  3829. " t.phy_code_l,t.phy_name_l,t.phy_code_m,t.phy_name_m,t.phy_code_s,t.phy_name_s,t.item_code_d,t.item_name_d,t.item_code_t,");
  3830. sqlucomm.append(
  3831. " t.item_name_t,t.item_code_s,t.item_name_s,t.sample_style_code,t.sample_style_name, t.rate_code, t.rate_desc,t.isjudge,");
  3832. sqlucomm.append(
  3833. " t.ischeck,t.isquote,t.group_seq,t.smp_qty,t.smp_position_code,t.smp_position_desc,t.prod_code,t.prod_name,t.steel_code,");
  3834. sqlucomm.append(
  3835. " t.steel_name,t.std_code,t.std_name,t.smp_count,t.item_code_l,t.item_desc_l,t.phy_unit,t.create_id,t.create_name,"
  3836. + " t.create_time,t.retest_yn,t.retest_qty,t.specl_fl,t.stdmin_sign, t.stdmin, t.stdmax_sign,t.stdmax, "
  3837. + "t.stdmemo,t.PROCESS_CODE FROM QCM_ORD_DESIGN_SAMPLE_M t WHERE t.DESIGN_KEY='"
  3838. + list.get("DESIGN_KEY") + "' AND t.ISCHECK='1' "
  3839. + " order by t.STEEL_CODE asc,t.smp_position_code asc,t.phy_code_l asc,t.PHY_CODE_M asc,t.PHY_CODE_S asc ");
  3840. }
  3841. }else{
  3842. sqlucomm.setLength(0);
  3843. sqlucomm.append(
  3844. "SELECT t.design_key, t.index_seq, t.psc,t.psc_desc,t.msc_pline, t.process_code, t.backlog_seq,t.org_code,t.org_name,");
  3845. sqlucomm.append(
  3846. " t.phy_code_l,t.phy_name_l,t.phy_code_m,t.phy_name_m,t.phy_code_s,t.phy_name_s,t.item_code_d,t.item_name_d,t.item_code_t,");
  3847. sqlucomm.append(
  3848. " t.item_name_t,t.item_code_s,t.item_name_s,t.sample_style_code,t.sample_style_name, t.rate_code, t.rate_desc,t.isjudge,");
  3849. sqlucomm.append(
  3850. " t.ischeck,t.isquote,t.group_seq,t.smp_qty,t.smp_position_code,t.smp_position_desc,t.prod_code,t.prod_name,t.steel_code,");
  3851. sqlucomm.append(
  3852. " t.steel_name,t.std_code,t.std_name,t.smp_count,t.item_code_l,t.item_desc_l,t.phy_unit,t.create_id,t.create_name,"
  3853. + " t.create_time,t.retest_yn,t.retest_qty,t.specl_fl,t.stdmin_sign, t.stdmin, t.stdmax_sign,t.stdmax, "
  3854. + "t.stdmemo,t.PROCESS_CODE FROM QCM_ORD_DESIGN_SAMPLE_M t WHERE t.DESIGN_KEY='"
  3855. + list.get("DESIGN_KEY") + "' AND t.ISCHECK='1' "
  3856. + " order by t.STEEL_CODE asc,t.smp_position_code asc,t.phy_code_l asc,t.PHY_CODE_M asc,t.PHY_CODE_S asc ");
  3857. }
  3858. List<HashMap> qltyLists=mapper.query(sqlucomm.toString());
  3859. if (qltyLists!=null && qltyLists.size()>0) {
  3860. addQtlysItems(list,qltys,qltyLists);//获取数据源中的试样信息主表 每条检验项数据 list:JSON qltys:材质 qltyLists:订单标准
  3861. }else{
  3862. return "试样信息主表中没有该【"+list.get("DESIGN_KEY")+"】订单,产线【"+plineCode+"】!";
  3863. }
  3864. }
  3865. pass=false;
  3866. //是否免检
  3867. if (list.get("IS_CHEM")!=null && "1".equals((String)list.get("IS_CHEM"))) {
  3868. pass=true;
  3869. }
  3870. if (pass) {
  3871. sqlucomm.setLength(0);
  3872. sqlucomm.append("select distinct t.design_key,t.psc,t.psc_desc,t.prod_code,t.prod_name, t.steel_code, t.steel_name,t.pline_code,t.pline_name,");
  3873. sqlucomm.append(" t.std_code,t.std_name,t.std_type_code,t.std_type_name,t.smp_position_code, t.smp_position_desc, "
  3874. + "t.smp_rate_code, t.smp_rate_desc, t.smp_qty,t.product_cnt "
  3875. + " from QCM_ORD_DESIGN_SAMPLE_D t where t.design_key='"+list.get("DESIGN_KEY")+"' "
  3876. + " and t.ischeck='1'");
  3877. List<HashMap> chenLists=mapper.query(sqlucomm.toString());
  3878. if (chenLists==null || chenLists.size()<1) {
  3879. continue;
  3880. }
  3881. //
  3882. for (HashMap chem : chenLists) {
  3883. //判断产品码是否免检
  3884. sqlucomm.setLength(0);
  3885. sqlucomm.append("select r.IS_EXMT_CIC from QCM_ORD_DESIGN_STD_EXMT r where r.DESIGN_KEY='"+list.getString("DESIGN_KEY")+"' and r.PSC='"+chem.get("PSC")+"' and r.ORG_CODE='5000'");
  3886. List<HashMap> exmts=mapper.query(sqlucomm.toString());
  3887. if (exmts!=null && exmts.size()>0 && "1".equals((String)exmts.get(0).get("IS_EXMT_CIC"))) {
  3888. continue;
  3889. }
  3890. sqlucomm.setLength(0);
  3891. sqlucomm.append("select distinct CHEM_NAME from QCM_ORD_DESIGN_SAMPLE_D where DESIGN_KEY='"+list.getString("DESIGN_KEY")+"' and PSC='"+chem.get("PSC")+"' ");
  3892. List<String> chemItems=mapper.queryString(sqlucomm.toString());
  3893. String[] items=null;
  3894. if (chemItems!=null && chemItems.size()>0) {
  3895. items=chemItems.toArray(new String[]{});
  3896. }
  3897. JhyQltyModel tarChme=new JhyQltyModel();
  3898. String orderMemoSQL = "SELECT MEMO from QCM_ORD_DESIGN_MEMO where DESIGN_KEY='"+list.get("DESIGN_KEY")+"' and PSC='"+list.get("PSC")+"' ";
  3899. List<HashMap> tarMemo=mapper.query(orderMemoSQL.toString());
  3900. if (tarMemo!=null && tarMemo.size()>0) {
  3901. if (tarMemo.get(0).get("MEMO")!=null ) {
  3902. tarChme.setOrderMemo((String)tarMemo.get(0).get("MEMO"));
  3903. }
  3904. }
  3905. tarChme.setMaterial_no(list.getString("MATERIAL_NO"));
  3906. tarChme.setSample_style_code("A");
  3907. tarChme.setSample_style_name("常规");
  3908. tarChme.setOrg_code("5000");
  3909. tarChme.setOrg_name("检测中心");
  3910. JSONObject jo = new JSONObject();
  3911. jo.put("chemItem", items);
  3912. tarChme.setChemItems(jo.toString());
  3913. tarChme.setDesign_key(list.getString("DESIGN_KEY"));
  3914. tarChme.setPsc((String)chem.get("PSC"));
  3915. tarChme.setPsc_desc((String)chem.get("PSC_DESC"));
  3916. tarChme.setMain_psc(list.getString("PSC"));
  3917. tarChme.setMain_psc_desc(list.getString("PSC_DESC"));
  3918. tarChme.setThick(list.getString("THICK"));
  3919. tarChme.setWidth(list.getString("WIDTH"));
  3920. tarChme.setLength(list.getString("LENGTH"));
  3921. tarChme.setBoard_no(list.getString("BOARD_NO"));
  3922. tarChme.setBatch_no(list.getString("BATCH_NO"));
  3923. tarChme.setHeat_no(list.getString("HEAT_NO"));
  3924. tarChme.setInspection_lot(list.getString("INSPECTION_LOT"));
  3925. tarChme.setDelivery_state_code(list.getString("DELIVERY_STATE_CODE"));
  3926. tarChme.setDelivery_state_desc(list.getString("DELIVERY_STATE_DESC"));
  3927. tarChme.setGrade_code(list.getString("GRADE_CODE"));
  3928. tarChme.setGrade_name(list.getString("GRADE_NAME"));
  3929. tarChme.setSteel_code((String)chem.get("STEEL_CODE"));
  3930. tarChme.setSteel_name((String)chem.get("STEEL_NAME"));
  3931. tarChme.setPline_code(list.getString("PLINE_CODE"));
  3932. tarChme.setPline_name(list.getString("PLINE_NAME"));
  3933. tarChme.setSmp_position_desc((String)chem.get("SMP_POSITION_DESC"));
  3934. tarChme.setSmp_position_code((String)chem.get("SMP_POSITION_CODE"));
  3935. tarChme.setStd_code((String)chem.get("STD_CODE"));
  3936. tarChme.setStd_name((String)chem.get("STD_NAME"));
  3937. tarChme.setFreq_code((String)chem.get("SMP_RATE_CODE"));
  3938. tarChme.setFreq_name((String)chem.get("SMP_RATE_DESC"));
  3939. tarChme.setProd_code((String)chem.get("PROD_CODE"));
  3940. tarChme.setProd_name((String)chem.get("PROD_NAME"));
  3941. if ("0".equals((String)list.get("TYPE"))) {
  3942. //正常检验批
  3943. tarChme.setSmp_type_code("0");
  3944. tarChme.setSmp_type_name("初样");
  3945. tarChme.setSource("0");
  3946. }else{
  3947. //改判检验批
  3948. tarChme.setSmp_type_code("0");
  3949. tarChme.setSmp_type_name("初样");
  3950. tarChme.setSource("1");
  3951. }
  3952. tarChme.setCreate_id((String)list.get("CREATE_ID"));
  3953. tarChme.setCreate_name((String)list.get("CREATE_NAME"));
  3954. tarChme.setCreate_time(new Date());
  3955. chems.add(tarChme);
  3956. }
  3957. }
  3958. }
  3959. return "";
  3960. }
  3961. // list:JSON qltys:材质 qltyLists:订单标准
  3962. private void addQtlysItems(JSONObject list, List<JhyQltyModel> qltys, List<HashMap> qltyLists) {
  3963. // TODO Auto-generated method stub
  3964. StringBuffer sqlucomm = new StringBuffer();
  3965. for (HashMap qlty : qltyLists) {
  3966. String newItem=qlty.get("PHY_CODE_L")+"-"+qlty.get("PHY_CODE_M")+"-"+qlty.get("PHY_CODE_S");
  3967. newItem=newItem+"-"+(qlty.get("ITEM_CODE_D")!=null?qlty.get("ITEM_CODE_D"):"null");
  3968. newItem=newItem+"-"+(qlty.get("ITEM_CODE_T")!=null?qlty.get("ITEM_CODE_T"):"null");
  3969. newItem=newItem+"-"+(qlty.get("ITEM_CODE_S")!=null?qlty.get("ITEM_CODE_S"):"null");
  3970. //判断是否免检
  3971. //判断产品码是否免检
  3972. sqlucomm.setLength(0);
  3973. sqlucomm.append("select r.IS_EXMT_PIC from QCM_ORD_DESIGN_STD_EXMT r where r.DESIGN_KEY='"+list.getString("DESIGN_KEY")+"' and r.PSC='"+list.getString("PSC")+"' and r.ORG_CODE='5000'");
  3974. List<HashMap> exmts=mapper.query(sqlucomm.toString());
  3975. if (exmts!=null && exmts.size()>0 && "1".equals((String)exmts.get(0).get("IS_EXMT_PIC"))) {
  3976. continue;
  3977. }
  3978. //把json中的值赋值 list为json值
  3979. //查询取样要求,如果是非按子板取样,不进行引用
  3980. JhyQltyModel tarQlty=getQtlyResource(qlty,list);
  3981. tarQlty.setPhy_group_code(newItem);
  3982. //查询订单备注
  3983. sqlucomm.setLength(0);
  3984. sqlucomm.append("SELECT MEMO from QCM_ORD_DESIGN_MEMO where DESIGN_KEY='"+list.get("DESIGN_KEY")+"' and PSC='"+list.get("PSC")+"'");
  3985. List<HashMap> tarMemo=mapper.query(sqlucomm.toString());
  3986. if (tarMemo!=null && tarMemo.size()>0) {
  3987. if (tarMemo.get(0).get("MEMO")!=null ) {
  3988. tarQlty.setOrderMemo((String)tarMemo.get(0).get("MEMO"));
  3989. }
  3990. }
  3991. /* //判断是否是件件取样
  3992. if ("3".equals((String)list.get("TYPE"))) {
  3993. qltys.add(tarQlty);
  3994. continue;
  3995. }*/
  3996. //判断是否是螺纹钢
  3997. String lugSteel="0";
  3998. if(list.get("PLINE_CODE").toString().equals("BC2") || list.get("PLINE_CODE").toString().equals("GX1") || list.get("PLINE_CODE").toString().equals("GX2")){
  3999. String sqlSteel="select t.* from QCM_JHY_STEEL t where t.steel_name = '"+qlty.get("STEEL_CODE")+"' and t.regulation = '1' and t.YN_LOG = '1' ";
  4000. List<HashMap> hmsteel=mapper.query(sqlSteel.toString());
  4001. if(hmsteel!=null && hmsteel.size()>=1){
  4002. lugSteel="1";
  4003. }
  4004. }
  4005. //螺纹钢特殊处理
  4006. /**
  4007. * HRB400E
  4008. HRB500E
  4009. HPB300
  4010. 这三种为线棒需要按照重量进行检验委托生成的牌号
  4011. */
  4012. if ("HRB400".equals(tarQlty.getSteel_code()) || "HRB400E".equals(tarQlty.getSteel_code()) ||
  4013. "HRB500E".equals(tarQlty.getSteel_code()) || "HRB500".equals(tarQlty.getSteel_code()) ||
  4014. "HPB300".equals(tarQlty.getSteel_code()) || tarQlty.getSteel_code().contains("GHRB400") ||
  4015. tarQlty.getSteel_code().contains("GHRB500") || "TB400E".equals(tarQlty.getSteel_code())
  4016. || "TB400".equals(tarQlty.getSteel_code()) || "HRB600E".equals(tarQlty.getSteel_code())
  4017. || "HRB600".equals(tarQlty.getSteel_code()) || "T64G/E".equals(tarQlty.getSteel_code()) || lugSteel.equals("1")) {
  4018. if (list.get("WEIGHT_STD")==null || list.get("WEIGHT")==null ) {
  4019. qltys.add(tarQlty);
  4020. continue;
  4021. }
  4022. Float weight_std=Float.valueOf((String)list.getString("WEIGHT_STD"));//上限值
  4023. Float weight=Float.valueOf((String)list.getString("WEIGHT"));//总重量
  4024. Float weight_sfd=Float.valueOf((String)list.getString("WEIGHT_SFD"));//浮动值
  4025. int ran = 2;
  4026. //ran=(int) Math.ceil((weight/weight_std)); 2
  4027. if(weight <= weight_std){ //113 60 40 2+(90-60)%40
  4028. ran = 2;
  4029. }
  4030. if(weight > weight_std && weight <= weight_std + weight_sfd){
  4031. ran = 3;
  4032. //22.08.12 取样数量 基本上加 2
  4033. /* BigDecimal a = new BigDecimal(2);
  4034. BigDecimal smpQty = tarQlty.getSmp_qty();
  4035. smpQty = smpQty.add(a);
  4036. tarQlty.setSmp_qty(smpQty);*/
  4037. }
  4038. if(weight > weight_std + weight_sfd /*&& weight <= weight_std + (weight_sfd + weight_sfd)*/){
  4039. ran = 4;
  4040. //22.08.12取样数量 基本上加 2 + 2
  4041. /*BigDecimal a = new BigDecimal(4);
  4042. BigDecimal smpQty = tarQlty.getSmp_qty();
  4043. smpQty = smpQty.add(a);
  4044. tarQlty.setSmp_qty(smpQty);*/
  4045. }
  4046. tarQlty.setWeight(weight.toString());
  4047. tarQlty.setWeight_std(weight_std.toString());
  4048. tarQlty.setWeight_sfd(weight_sfd.toString());
  4049. tarQlty.setTimes(ran);
  4050. //螺纹钢不自动引用
  4051. qltys.add(tarQlty);
  4052. continue;
  4053. }
  4054. //硬线特殊处理
  4055. /**
  4056. * 60 SWRH82B tarQlty.getSteel_code().contains("SWRH82B")
  4057. *按照金恒那边下发过来多少生成委托就多少
  4058. *&& (tarQlty.getPline_name().equals("高线") || tarQlty.getPline_name().equals("二线厂"))
  4059. *
  4060. */
  4061. if (!"HRB400".equals(tarQlty.getSteel_code()) && !"HRB400E".equals(tarQlty.getSteel_code())&&
  4062. !"HRB500".equals(tarQlty.getSteel_code()) && !"HRB500E".equals(tarQlty.getSteel_code()) &&
  4063. !"HPB300".equals(tarQlty.getSteel_code()) && !"Q215".equals(tarQlty.getSteel_code()) &&
  4064. !"Q235".equals(tarQlty.getSteel_code()) && !"HRB600E".equals(tarQlty.getSteel_code())
  4065. && !"HRB600".equals(tarQlty.getSteel_code())
  4066. && (tarQlty.getPline_name().equals("高线") || tarQlty.getPline_name().equals("二线厂")) ) {
  4067. sqlucomm.setLength(0);
  4068. sqlucomm.append("SELECT smp_count from QCM_ORD_DESIGN_STD_PIC_SMP where DESIGN_KEY='"+list.get("DESIGN_KEY")+"' and PSC='"+list.get("PSC")+"'");
  4069. List<HashMap> smpCount=mapper.query(sqlucomm.toString());
  4070. if (smpCount!=null && smpCount.size()>0) {
  4071. if (smpCount.get(0).get("SMP_COUNT")!=null ) {
  4072. BigDecimal cou = (BigDecimal)smpCount.get(0).get("SMP_COUNT");
  4073. String coun = cou.toString();
  4074. Integer integ = Integer.parseInt(coun);
  4075. tarQlty.setSmpCounts(integ);
  4076. qltys.add(tarQlty);
  4077. continue;
  4078. }
  4079. }
  4080. }
  4081. qltys.add(tarQlty);
  4082. }
  4083. }
  4084. //赋值 qlty从QCM_ORD_DESIGN_SAMPLE_M查询出来的数据,list为传过来的值
  4085. private JhyQltyModel getQtlyResource(HashMap qlty, JSONObject list) {
  4086. // TODO Auto-generated method stub
  4087. JhyQltyModel tarQlty=new JhyQltyModel();
  4088. tarQlty.setSample_style_code((String)qlty.get("SAMPLE_STYLE_CODE"));
  4089. tarQlty.setSample_style_name((String)qlty.get("SAMPLE_STYLE_NAME"));
  4090. tarQlty.setOrg_code((String)qlty.get("ORG_CODE"));
  4091. tarQlty.setOrg_name((String)qlty.get("ORG_NAME"));
  4092. tarQlty.setDesign_key(list.getString("DESIGN_KEY"));
  4093. tarQlty.setPsc((String)qlty.get("PSC"));
  4094. tarQlty.setPsc_desc((String)qlty.get("PSC_DESC"));
  4095. tarQlty.setMain_psc(list.getString("PSC"));
  4096. tarQlty.setMain_psc_desc(list.getString("PSC_DESC"));
  4097. tarQlty.setThick(list.getString("THICK"));
  4098. tarQlty.setWidth(list.getString("WIDTH"));
  4099. tarQlty.setLength(list.getString("LENGTH"));
  4100. tarQlty.setBoard_no(list.getString("BOARD_NO"));
  4101. tarQlty.setBatch_no(list.getString("BATCH_NO"));
  4102. tarQlty.setHeat_no(list.getString("HEAT_NO"));
  4103. tarQlty.setInspection_lot(list.getString("INSPECTION_LOT"));
  4104. tarQlty.setDelivery_state_code(list.getString("DELIVERY_STATE_CODE"));
  4105. tarQlty.setDelivery_state_desc(list.getString("DELIVERY_STATE_DESC"));
  4106. tarQlty.setGrade_code(list.getString("GRADE_CODE"));
  4107. tarQlty.setGrade_name(list.getString("GRADE_NAME"));
  4108. tarQlty.setSteel_code((String)qlty.get("STEEL_CODE"));
  4109. tarQlty.setSteel_name((String)qlty.get("STEEL_NAME"));
  4110. tarQlty.setPline_code(list.getString("PLINE_CODE"));
  4111. tarQlty.setPline_name(list.getString("PLINE_NAME"));
  4112. tarQlty.setMaterial_no(list.getString("MATERIAL_NO"));
  4113. tarQlty.setMsc_pline(list.getString("MSC_PLINE"));
  4114. if(list.getString("PLINE_CODE").equals("HB1") || list.getString("PLINE_CODE").equals("ZB1")){
  4115. tarQlty.setProcess_code((String)qlty.get("PROCESS_CODE"));//热处理之前/之后标识
  4116. tarQlty.setWeight(list.getString("WEIGHT"));
  4117. }else{
  4118. tarQlty.setProcess_code(list.getString("PROCESS_CODE"));
  4119. }
  4120. tarQlty.setSmp_position_desc((String)qlty.get("SMP_POSITION_DESC"));
  4121. tarQlty.setSmp_position_code((String)qlty.get("SMP_POSITION_CODE"));
  4122. tarQlty.setStd_code((String)qlty.get("STD_CODE"));
  4123. tarQlty.setStd_name((String)qlty.get("STD_NAME"));
  4124. tarQlty.setProd_code((String)qlty.get("PROD_CODE"));
  4125. tarQlty.setProd_name((String)qlty.get("PROD_NAME"));
  4126. tarQlty.setFreq_code((String)qlty.get("RATE_CODE"));
  4127. tarQlty.setFreq_name((String)qlty.get("RATE_DESC"));
  4128. tarQlty.setPhy_code_l((String)qlty.get("PHY_CODE_L"));
  4129. tarQlty.setPhy_code_m((String)qlty.get("PHY_CODE_M"));
  4130. tarQlty.setPhy_code_s((String)qlty.get("PHY_CODE_S"));
  4131. tarQlty.setItem_code_d((String)qlty.get("ITEM_CODE_D"));
  4132. tarQlty.setItem_code_l((String)qlty.get("ITEM_CODE_L"));
  4133. tarQlty.setItem_code_s((String)qlty.get("ITEM_CODE_S"));
  4134. tarQlty.setItem_code_t((String)qlty.get("ITEM_CODE_T"));
  4135. tarQlty.setPhy_name_l((String)qlty.get("PHY_NAME_L"));
  4136. tarQlty.setPhy_name_m((String)qlty.get("PHY_NAME_M"));
  4137. tarQlty.setPhy_name_s((String)qlty.get("PHY_NAME_S"));
  4138. tarQlty.setItem_name_d((String)qlty.get("ITEM_NAME_D"));
  4139. tarQlty.setItem_desc_l((String)qlty.get("ITEM_DESC_L"));
  4140. tarQlty.setItem_name_s((String)qlty.get("ITEM_NAME_S"));
  4141. tarQlty.setItem_name_t((String)qlty.get("ITEM_NAME_T"));
  4142. tarQlty.setSpecl_fl((String)qlty.get("SPECL_FL"));
  4143. //试验次数
  4144. tarQlty.setSmp_count((BigDecimal)qlty.get("SMP_COUNT"));
  4145. //取样数量
  4146. tarQlty.setSmp_qty((BigDecimal)qlty.get("SMP_QTY"));
  4147. tarQlty.setPhy_unit((String)qlty.get("PHY_UNIT"));
  4148. tarQlty.setIsjudge((String)qlty.get("ISJUDGE"));
  4149. tarQlty.setGroup_seq((String)qlty.get("GROUP_SEQ"));
  4150. tarQlty.setRetest_qty((BigDecimal)qlty.get("RETEST_QTY"));
  4151. tarQlty.setRetest_yn((String)qlty.get("RETEST_YN"));
  4152. tarQlty.setStdmax((String)qlty.get("STDMAX"));
  4153. tarQlty.setStdmax_sign((String)qlty.get("STDMAX_SIGN"));
  4154. tarQlty.setStdmin((String)qlty.get("STDMIN"));
  4155. tarQlty.setStdmin_sign((String)qlty.get("STDMIN_SIGN"));
  4156. tarQlty.setStdmemo((String)qlty.get("STDMEMO"));
  4157. if ("0".equals((String)list.get("TYPE"))) {
  4158. //正常检验批
  4159. tarQlty.setSmp_type_code("0");
  4160. tarQlty.setSmp_type_name("初样");
  4161. tarQlty.setSource("0");
  4162. }else if ("1".equals((String)list.get("TYPE"))) {
  4163. //复样检验批
  4164. tarQlty.setSmp_type_code("1");
  4165. tarQlty.setSmp_type_name("复样");
  4166. tarQlty.setSource("0");
  4167. }else if ("3".equals((String)list.get("TYPE"))) {
  4168. //件件取样
  4169. tarQlty.setSmp_type_code("3");
  4170. tarQlty.setSmp_type_name("件件取样");
  4171. tarQlty.setSource("0");
  4172. }else{
  4173. //改判检验批
  4174. tarQlty.setSmp_type_code("0");
  4175. tarQlty.setSmp_type_name("初样");
  4176. tarQlty.setSource("1");
  4177. }
  4178. //卷板 39 49 59
  4179. if(list.getString("PLINE_CODE").equals("RZ1") || list.getString("PLINE_CODE").equals("LT1")){
  4180. String dkey = list.getString("DESIGN_KEY").toString().substring(0,2);
  4181. if(dkey.equals("39") || dkey.equals("49") || dkey.equals("59")){
  4182. tarQlty.setAbatchLog(list.getString("ABATCHLOG"));
  4183. }
  4184. }
  4185. return tarQlty;
  4186. }
  4187. /**
  4188. * 数据验证
  4189. * @param lists
  4190. * @return
  4191. */
  4192. @SuppressWarnings("unused")
  4193. private String checkInfo(JSONArray lists) throws Exception {
  4194. // TODO Auto-generated method stub
  4195. String msg = "";
  4196. if (lists == null || lists.size() < 1) {
  4197. return "未寻到或无可生成检验委托的数据";
  4198. }
  4199. String inspection_lot = "";
  4200. String design_key = "";
  4201. String material_no ="";
  4202. String pline_code = "";
  4203. TreeSet<String> treeSet = new TreeSet<String>();
  4204. ResultSet rs = null;
  4205. for (Object list : lists) {
  4206. JSONObject map = (JSONObject) list;
  4207. if(!StringUtils.isBlank(map.getString("MEMORG"))){
  4208. memoRg = map.getString("MEMORG");
  4209. }
  4210. // 检验号
  4211. msg = checkField("INSPECTION_LOT", "检验号", map);
  4212. if (!"".equals(msg)) {
  4213. return msg;
  4214. }
  4215. // 获取共同检验号
  4216. inspection_lot = map.getString("INSPECTION_LOT");
  4217. treeSet.add(inspection_lot);
  4218. // DESIGN_KEY
  4219. msg = checkField("DESIGN_KEY", "订单号", map);
  4220. if (!"".equals(msg)) {
  4221. return msg;
  4222. }
  4223. msg = checkField("MATERIAL_NO", "取样材料号", map);
  4224. if (!"".equals(msg)) {
  4225. return msg;
  4226. }
  4227. design_key = map.getString("DESIGN_KEY");
  4228. material_no= map.getString("MATERIAL_NO");
  4229. // 炉号
  4230. msg = checkField("HEAT_NO", "炉号", map);
  4231. if (!"".equals(msg)) {
  4232. return msg;
  4233. }
  4234. // 轧批号
  4235. msg = checkField("BATCH_NO", "轧批号", map);
  4236. if (!"".equals(msg)) {
  4237. return msg;
  4238. }
  4239. // 全程产线号
  4240. msg = checkField("MSC_PLINE", "全程产线号", map);
  4241. if (!"".equals(msg)) {
  4242. return msg;
  4243. }
  4244. // 全程产线代码
  4245. msg = checkField("PLINE_CODE", "产线代码", map);
  4246. if (!"".equals(msg)) {
  4247. return msg;
  4248. }
  4249. pline_code = map.getString("PLINE_CODE");
  4250. // 全程产线名称
  4251. msg = checkField("PLINE_NAME", "产线名称", map);
  4252. if (!"".equals(msg)) {
  4253. return msg;
  4254. }
  4255. // //交货状态
  4256. // msg=checkField("DELIVERY_STATE_CODE","交货状态代码",map);
  4257. // if (!"".equals(msg)) {
  4258. // return msg;
  4259. // }
  4260. // //交货状态
  4261. // msg=checkField("DELIVERY_STATE_DESC","交货状态",map);
  4262. // if (!"".equals(msg)) {
  4263. // return msg;
  4264. // }
  4265. // 工序代码
  4266. // msg=checkField("PROCESS_CODE","工序代码",map);
  4267. // if (!"".equals(msg)) {
  4268. // return msg;
  4269. // }
  4270. // 厚款长
  4271. msg = checkField("THICK", "厚度", map);
  4272. if (!"".equals(msg)) {
  4273. return msg;
  4274. }
  4275. /*
  4276. * msg=checkField("WIDTH","宽度",map); if (!"".equals(msg)) { return
  4277. * msg; } msg=checkField("LENGTH","长度",map); if (!"".equals(msg)) {
  4278. * return msg; }
  4279. */
  4280. msg = checkField("PSC", "产品码", map);
  4281. if (!"".equals(msg)) {
  4282. return msg;
  4283. }
  4284. if(pline_code.equals("HB1") || pline_code.equals("ZB1")){
  4285. if(memoRg2.equals("false1") && !StringUtils.isBlank(map.getString("MEMO")) && map.getString("MEMO").equals("性能改善")){
  4286. memoXngs = "true1";
  4287. }
  4288. }
  4289. }
  4290. if (treeSet.size() != 1) {
  4291. return "检验号不一致";
  4292. }
  4293. // 判断检验号向下是否存在已发送数据
  4294. StringBuffer sqlucomm = new StringBuffer();
  4295. String designKey = design_key.substring(0, 2);
  4296. //包含true 不包含false
  4297. if(!memoRg.contains("人工委托") && !"19".equals(designKey)
  4298. && StringUtils.isNotBlank(pline_code) && !pline_code.equals("HB1") && !pline_code.equals("ZB1")
  4299. && !"39".equals(designKey)&& !"49".equals(designKey)&&!"59".equals(designKey)){
  4300. sqlucomm.append(
  4301. "SELECT COUNT(1) COUNT_NUM FROM QCM_JHY_SAMPLE_CONSIGN_D WHERE STATUS!='0' AND INSPECTION_LOT='"
  4302. + inspection_lot + "'");
  4303. logger.info("引用sql语句:---------"+sqlucomm.toString()+"-------------------------");
  4304. List<HashMap> sendCount = mapper.query(sqlucomm.toString());
  4305. if (sendCount != null && sendCount.size() > 0) {
  4306. if (((BigDecimal) sendCount.get(0).get("COUNT_NUM")) .compareTo(BigDecimal.ZERO)==1) {
  4307. return "检验批向下已经存在不属于未发送的数据,不能再组成检验批";
  4308. }
  4309. }
  4310. }
  4311. return msg;
  4312. }
  4313. /**
  4314. * 验证字段
  4315. *
  4316. * @param field
  4317. * 字段
  4318. * @param name
  4319. * 字段名
  4320. * @param map
  4321. * map对象
  4322. * @return
  4323. */
  4324. private String checkField(String field, String name, JSONObject map) {
  4325. if (map.get(field) == null) {
  4326. return name + "不存在";
  4327. }
  4328. String ran = (String) map.get(field);
  4329. if (ran == null || "".equals(ran.trim())) {
  4330. return name + "为空";
  4331. }
  4332. return "";
  4333. }
  4334. //中厚板检验号
  4335. public String ZHBinspection_lotSql(String batch_no,String pline_code){
  4336. String sqlLOT = "select nvl(max(to_number(substr(inspection_lot,-3))),'0') INSPECTION_LOT from QCM_JHY_SAMPLE_CONSIGN_D t "
  4337. + " where t.batch_no = '"+batch_no+"' and t.pline_code='"+pline_code+"' ";
  4338. List<HashMap> hmap = mapper.query(sqlLOT.toString());
  4339. BigDecimal hmap1 = (BigDecimal) hmap.get(0).get("INSPECTION_LOT");
  4340. String hmap2 = hmap1.toString();
  4341. Integer hmap3 = Integer.parseInt(hmap2);
  4342. hmap3++;
  4343. String inspection_lot = batch_no+String.format("%04d", hmap3);
  4344. return inspection_lot;
  4345. }
  4346. public String ZHBStringSql(HashMap<String, String> hashMapStr){
  4347. String freqCode="";
  4348. String freqCodeSql = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t "
  4349. +" where t.Rate_Code ='B' and t.design_key = '"+hashMapStr.get("DESIGN_KEY")+"' ";
  4350. List<HashMap> hmfreqCode=mapper.query(freqCodeSql.toString());
  4351. //按母板取样
  4352. if(hmfreqCode!=null && hmfreqCode.size()>=1){
  4353. freqCode =" and t.BOARD_NO = '"+hashMapStr.get("BOARD_NO")+"' ";
  4354. }
  4355. String materialNosql="";
  4356. if(hashMapStr.get("PLINE_CODE").equals("ZB1")){
  4357. materialNosql = "SELECT t.* "
  4358. +" FROM (SELECT A.SAMPLINGREQUESTTIME,T.ORDERNO DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELCODE) GRADE_CODE,T.HEIGHT THICK,T.PRODUCTNO MATERIAL_NO "
  4359. +" ,T.MOTHERPLATEID BOARD_NO FROM MB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4360. +" WHERE T.ORDERNO = A.ORDERNO "
  4361. +" and T.PRODUCTNO not in "
  4362. +" (select T.BILLETID from KCZ_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+hashMapStr.get("BATCH_NO")+"') "
  4363. +" and T.ORDERNO is not null AND A.SAMPLINGREQUESTTIME IN ('A', 'AB') "
  4364. +" union all "
  4365. +" SELECT A.SAMPLINGREQUESTTIME,T.ORDERNO DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  4366. +" ,T.MOTHERBOARDNUMBER BOARD_NO FROM KCZ_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4367. +" WHERE T.ORDERNO = A.ORDERNO and T.ORDERNO is not null AND T.ISVALID <> '0') t "
  4368. +" WHERE t.BATCH_NO = '"+hashMapStr.get("BATCH_NO")+"' and t.BATCH_NO like 'Z%' "
  4369. +" and t.GRADE_CODE = '"+hashMapStr.get("STEEL_CODE")+"' and to_char(t.THICK, 'fm990.099') = to_char('"+hashMapStr.get("THICK")+"', 'fm990.099') "
  4370. +" and T.DESIGN_KEY = '"+hashMapStr.get("DESIGN_KEY")+"' "
  4371. + freqCode
  4372. + " group by t.SAMPLINGREQUESTTIME,T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO,t.BOARD_NO order by t.MATERIAL_NO ";
  4373. }else if(hashMapStr.get("PLINE_CODE").equals("HB1")){
  4374. materialNosql ="SELECT t.* "
  4375. +" FROM (SELECT A.SAMPLINGREQUESTTIME,T.ORDERID DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELTYPE) GRADE_CODE,T.THICK THICK,T.SLABNO MATERIAL_NO, "
  4376. +" T.MOTHERSLAB BOARD_NO FROM ZYHB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4377. +" WHERE T.ORDERID = A.ORDERNO "
  4378. +" and T.SLABNO not in "
  4379. +" (select T.BILLETID from KCH_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+hashMapStr.get("BATCH_NO")+"') "
  4380. +" and T.ORDERID is not null "
  4381. +" union all "
  4382. +" SELECT A.SAMPLINGREQUESTTIME,T.ALLOTORDERFORM DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  4383. +" ,T.MOTHERBOARDNUMBER BOARD_NO FROM KCH_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4384. +" WHERE T.ALLOTORDERFORM = A.ORDERNO and T.ALLOTORDERFORM is not null AND T.PSTATFLAG <> '0') t "
  4385. +" WHERE t.BATCH_NO = '"+hashMapStr.get("BATCH_NO")+"' and t.BATCH_NO like 'H%' "
  4386. +" and t.GRADE_CODE = '"+hashMapStr.get("STEEL_CODE")+"' and to_char(t.THICK, 'fm990.099') = to_char('"+hashMapStr.get("THICK")+"', 'fm990.099') "
  4387. +" and T.DESIGN_KEY = '"+hashMapStr.get("DESIGN_KEY")+"' "
  4388. + freqCode
  4389. +" group by t.SAMPLINGREQUESTTIME,T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO,t.BOARD_NO order by t.MATERIAL_NO asc";
  4390. }
  4391. return materialNosql;
  4392. }
  4393. public String ZHBXlgxStringSql(String processNos,String batch_no,String pline_code,String design_key,String steel_code,String thick){
  4394. String outps ="";
  4395. //if(memoRg2.equals("true1")){//230830性能改善
  4396. outps = " and t.rcl_state= '"+processNos+"' ";
  4397. //}
  4398. String materialNosql="";
  4399. if(pline_code.equals("ZB1")){
  4400. materialNosql = "SELECT t.* "
  4401. +" FROM (SELECT '' RCL_STATE,T.ORDERNO DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELCODE) GRADE_CODE,T.HEIGHT THICK,T.PRODUCTNO MATERIAL_NO "
  4402. +" FROM MB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4403. +" WHERE T.ORDERNO = A.ORDERNO "
  4404. +" and T.PRODUCTNO not in "
  4405. +" (select T.BILLETID from KCZ_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+batch_no+"') "
  4406. +" and T.ORDERNO is not null AND A.SAMPLINGREQUESTTIME IN ('A', 'AB') "
  4407. +" union all "
  4408. +" SELECT t.rcl_state,T.ORDERNO DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  4409. +" FROM KCZ_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4410. +" WHERE T.ORDERNO = A.ORDERNO and T.ORDERNO is not null AND T.ISVALID <> '0') t "
  4411. +" WHERE t.BATCH_NO = '"+batch_no+"' and t.BATCH_NO like 'Z%' "
  4412. +" and t.GRADE_CODE = '"+steel_code+"' and to_char(t.THICK, 'fm990.099') = to_char('"+thick+"', 'fm990.099') "
  4413. +" and T.DESIGN_KEY = '"+design_key+"' "
  4414. //+" and T.RCL_STATE = '"+processNos+"' "
  4415. //+" and T.RCL_STATE like '%G' "
  4416. + outps
  4417. + " group by RCL_STATE,T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO order by t.MATERIAL_NO ";
  4418. }else if(pline_code.equals("HB1")){
  4419. materialNosql ="SELECT t.* "
  4420. +" FROM (SELECT '' RCL_STATE,T.ORDERID DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELTYPE) GRADE_CODE,T.THICK THICK,T.SLABNO MATERIAL_NO "
  4421. +" FROM ZYHB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4422. +" WHERE T.ORDERID = A.ORDERNO "
  4423. +" and T.SLABNO not in "
  4424. +" (select T.BILLETID from KCH_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+batch_no+"') "
  4425. +" and T.ORDERID is not null "
  4426. +" union all "
  4427. +" SELECT t.RCL_STATE,T.ALLOTORDERFORM DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  4428. +" FROM KCH_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4429. +" WHERE T.ALLOTORDERFORM = A.ORDERNO and T.ALLOTORDERFORM is not null AND T.PSTATFLAG <> '0') t "
  4430. +" WHERE t.BATCH_NO = '"+batch_no+"' and t.BATCH_NO like 'H%' "
  4431. +" and t.GRADE_CODE = '"+steel_code+"' and to_char(t.THICK, 'fm990.099') = to_char('"+thick+"', 'fm990.099') "
  4432. +" and T.DESIGN_KEY = '"+design_key+"' "
  4433. //+" and T.RCL_STATE = '"+processNos+"' "
  4434. //+" and T.RCL_STATE like '%G' "
  4435. + outps
  4436. +" group by RCL_STATE,T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO order by t.MATERIAL_NO asc";
  4437. }
  4438. return materialNosql;
  4439. }
  4440. //同样的订单标准 不同订单 同牌号 同规格
  4441. public String ZHBStringSql2(String batch_no,String pline_code,String design_key,String steel_code,String thick){
  4442. String materialNosql="";
  4443. if(pline_code.equals("ZB1")){
  4444. materialNosql = "SELECT t.* "
  4445. +" FROM (SELECT A.SAMPLINGREQUESTTIME,T.ORDERNO DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELCODE) GRADE_CODE,T.HEIGHT THICK,T.PRODUCTNO MATERIAL_NO "
  4446. +" FROM MB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4447. +" WHERE T.ORDERNO = A.ORDERNO "
  4448. // +" and T.PRODUCTNO not in "
  4449. // +" (select T.BILLETID from KCZ_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+batch_no+"') "
  4450. +" and T.ORDERNO is not null AND A.SAMPLINGREQUESTTIME IN ('A', 'AB') "
  4451. +" union all "
  4452. +" SELECT A.SAMPLINGREQUESTTIME,T.ORDERNO DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  4453. +" FROM KCZ_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4454. +" WHERE T.ORDERNO = A.ORDERNO and T.ORDERNO is not null AND T.ISVALID <> '0') t "
  4455. +" WHERE t.BATCH_NO = '"+batch_no+"' and t.BATCH_NO like 'Z%' "
  4456. +" and t.GRADE_CODE = '"+steel_code+"' and to_char(t.THICK, 'fm990.099') = to_char('"+thick+"', 'fm990.099') and T.DESIGN_KEY not like '19%' "
  4457. + " AND T.SAMPLINGREQUESTTIME IS NOT NULL "
  4458. //+" and T.DESIGN_KEY = '"+design_key+"' "
  4459. + " group by t.SAMPLINGREQUESTTIME,T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO order by t.MATERIAL_NO ";
  4460. }else if(pline_code.equals("HB1")){
  4461. materialNosql ="SELECT t.* "
  4462. +" FROM (SELECT A.SAMPLINGREQUESTTIME,T.ORDERID DESIGN_KEY,T.BATCHNO BATCH_NO,to_char(T.STEELTYPE) GRADE_CODE,T.THICK THICK,T.SLABNO MATERIAL_NO "
  4463. +" FROM ZYHB_PLANDETAILOFPLATE@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4464. +" WHERE T.ORDERID = A.ORDERNO "
  4465. //+" and T.SLABNO not in "
  4466. //+" (select T.BILLETID from KCH_TURNOFFLIST@xgcx T where t.ROLLNUMBER = '"+batch_no+"') "
  4467. +" and T.ORDERID is not null "
  4468. +" union all "
  4469. +" SELECT A.SAMPLINGREQUESTTIME,T.ALLOTORDERFORM DESIGN_KEY,T.ROLLNUMBER BATCH_NO,T.DETERMINANTCARDNUMBER GRADE_CODE,T.PLY THICK,T.BILLETID MATERIAL_NO "
  4470. +" FROM KCH_TURNOFFLIST@xgcx T, SEL_PACTDETAIL_NEW@xgcx A "
  4471. +" WHERE T.ALLOTORDERFORM = A.ORDERNO and T.ALLOTORDERFORM is not null AND T.PSTATFLAG <> '0') t "
  4472. +" WHERE t.BATCH_NO = '"+batch_no+"' and t.BATCH_NO like 'H%' "
  4473. +" and t.GRADE_CODE = '"+steel_code+"' and to_char(t.THICK, 'fm990.099') = to_char('"+thick+"', 'fm990.099') and T.DESIGN_KEY not like '19%'"
  4474. + " AND T.SAMPLINGREQUESTTIME IS NOT NULL "
  4475. //+ " and T.DESIGN_KEY = '"+design_key+"' "
  4476. +" group by t.SAMPLINGREQUESTTIME,T.DESIGN_KEY,T.BATCH_NO,T.GRADE_CODE,T.THICK,t.MATERIAL_NO order by t.MATERIAL_NO asc";
  4477. }
  4478. return materialNosql;
  4479. }
  4480. //判断标准是否一样
  4481. public String getQcmOrdDesignSampleM(String design_key,String design_key2,String HDNMU){
  4482. String materialNosql="0";
  4483. String qcmOrdM = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+design_key+"' order by t.phy_code_l,t.phy_code_s ";
  4484. String qcmOrdM2 = "select t.* from QCM_ORD_DESIGN_SAMPLE_M t where t.design_key = '"+design_key2+"' order by t.phy_code_l,t.phy_code_s ";
  4485. List<HashMap> sampleM0=mapper.query(qcmOrdM.toString());//当前订单
  4486. List<HashMap> sampleM1=mapper.query(qcmOrdM2.toString());//已生成订单
  4487. if(sampleM0.size() == sampleM1.size()){
  4488. if(HDNMU.equals("XNGS")){
  4489. HDNMU="0";
  4490. }
  4491. //订单数一样 判断订单标准是否一样
  4492. for (int i = 0; i < sampleM0.size(); i++) {
  4493. String speclFltrue="0";
  4494. String speclFl = (String) sampleM0.get(i).get("SPECL_FL");//标准类型
  4495. String speclFl2 = (String) sampleM1.get(i).get("SPECL_FL");//标准类型
  4496. if(speclFl.equals("2") || speclFl2.equals("2")){
  4497. speclFltrue="1";
  4498. }
  4499. //代码
  4500. String phyCodeL = (String) sampleM0.get(i).get("PHY_CODE_L");//材质检验大项代码
  4501. String phyCodeM = (String) sampleM0.get(i).get("PHY_CODE_M");//试样组代码
  4502. String phyCodeS = (String) sampleM0.get(i).get("PHY_CODE_S");//材质检验项目代码
  4503. String itemCodeD = (String) sampleM0.get(i).get("ITEM_CODE_D");//试验方向代码
  4504. String itemCodeT = (String) sampleM0.get(i).get("ITEM_CODE_T");//试验温度代码 试验温度代码 冲击 被引用
  4505. String itemCodeS = (String) sampleM0.get(i).get("ITEM_CODE_S");//试样尺寸代码
  4506. String itemCodeL = (String) sampleM0.get(i).get("ITEM_CODE_L");//试验位置代码
  4507. String STDMIN = "";//判定范围下限
  4508. String STDMAX = "";//判定范围上限
  4509. if(HDNMU.equals("0")){
  4510. STDMIN = (String) sampleM0.get(i).get("STDMIN");//判定范围下限
  4511. STDMAX = (String) sampleM0.get(i).get("STDMAX");//判定范围上限
  4512. }
  4513. String newItem=phyCodeL+"-"+phyCodeM+"-"+phyCodeS;
  4514. newItem=newItem+"-"+(itemCodeD!=null?itemCodeD:"null");
  4515. newItem=newItem+"-"+(itemCodeT!=null?itemCodeT:"null");
  4516. newItem=newItem+"-"+(itemCodeS!=null?itemCodeS:"null");
  4517. newItem=newItem+"-"+(itemCodeL!=null?itemCodeL:"null");
  4518. //范围
  4519. if(HDNMU.equals("0")){
  4520. newItem=newItem+"-"+(STDMIN!=null?STDMIN:"null");
  4521. newItem=newItem+"-"+(STDMAX!=null?STDMAX:"null");
  4522. }
  4523. //最后放是否类型
  4524. if(speclFltrue.equals("0")){
  4525. newItem=newItem+"-"+(speclFl!=null?speclFl:"null");
  4526. }
  4527. //代码
  4528. String phyCodeL2 = (String) sampleM1.get(i).get("PHY_CODE_L");//材质检验大项代码
  4529. String phyCodeM2 = (String) sampleM1.get(i).get("PHY_CODE_M");//试样组代码
  4530. String phyCodeS2 = (String) sampleM1.get(i).get("PHY_CODE_S");//材质检验项目代码
  4531. String itemCodeD2 = (String) sampleM1.get(i).get("ITEM_CODE_D");//试验方向代码
  4532. String itemCodeT2 = (String) sampleM1.get(i).get("ITEM_CODE_T");//试验温度代码 试验温度代码 冲击 被引用
  4533. String itemCodeS2 = (String) sampleM1.get(i).get("ITEM_CODE_S");//试样尺寸代码
  4534. String itemCodeL2 = (String) sampleM1.get(i).get("ITEM_CODE_L");//试验位置代码
  4535. String STDMIN2 = "";//判定范围下限
  4536. String STDMAX2 = "";//判定范围上限
  4537. if(HDNMU.equals("0")){
  4538. STDMIN2 = (String) sampleM1.get(i).get("STDMIN");//判定范围下限
  4539. STDMAX2 = (String) sampleM1.get(i).get("STDMAX");//判定范围上限
  4540. }
  4541. String newItem2=phyCodeL2+"-"+phyCodeM2+"-"+phyCodeS2;
  4542. newItem2=newItem2+"-"+(itemCodeD2!=null?itemCodeD2:"null");
  4543. newItem2=newItem2+"-"+(itemCodeT2!=null?itemCodeT2:"null");
  4544. newItem2=newItem2+"-"+(itemCodeS2!=null?itemCodeS2:"null");
  4545. newItem2=newItem2+"-"+(itemCodeL2!=null?itemCodeL2:"null");
  4546. //范围
  4547. if(HDNMU.equals("0")){
  4548. newItem2=newItem2+"-"+(STDMIN2!=null?STDMIN2:"null");
  4549. newItem2=newItem2+"-"+(STDMAX2!=null?STDMAX2:"null");
  4550. }
  4551. //最后放是否类型
  4552. if(speclFltrue.equals("0")){
  4553. newItem2=newItem2+"-"+(speclFl2!=null?speclFl2:"null");
  4554. }
  4555. //同牌号 不同订单 不同标准
  4556. if(!newItem.equals(newItem2)){
  4557. materialNosql="1";
  4558. }
  4559. }
  4560. }else if(HDNMU.equals("XNGS")){//性能改善标识
  4561. materialNosql="1";
  4562. }
  4563. return materialNosql;
  4564. }
  4565. }