1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208 |
- package com.ruoyi.warehouseBusiness.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
- import com.ruoyi.approvalFlow.domain.AuditItems;
- import com.ruoyi.approvalFlow.mapper.AuditItemsMapper;
- import com.ruoyi.approvalFlow.service.impl.AuditItemsServiceImpl;
- import com.ruoyi.basicData.domain.TCorps;
- import com.ruoyi.basicData.domain.TFees;
- import com.ruoyi.basicData.domain.TGoods;
- import com.ruoyi.basicData.domain.TWarehouseArea;
- import com.ruoyi.basicData.mapper.*;
- import com.ruoyi.basicData.service.impl.TWarehouseServiceImpl;
- import com.ruoyi.common.config.RuoYiConfig;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.domain.entity.*;
- import com.ruoyi.common.core.domain.model.LoginUser;
- import com.ruoyi.common.utils.DateUtils;
- import com.ruoyi.common.utils.SecurityUtils;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.common.utils.ip.AddressUtils;
- import com.ruoyi.common.utils.poi.ExcelUtils;
- import com.ruoyi.quotation.domain.TSeaprice;
- import com.ruoyi.quotation.mapper.TSeapriceMapper;
- import com.ruoyi.reportManagement.domain.TWareHouseItemsExcel;
- import com.ruoyi.reportManagement.domain.TWhgenleg;
- import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
- import com.ruoyi.shipping.domain.*;
- import com.ruoyi.shipping.excel.TWarehousebillsCntritemsExcel;
- import com.ruoyi.shipping.excel.DeriveInventoryExcel;
- import com.ruoyi.shipping.excel.SingleVoyageByShipExcel;
- import com.ruoyi.shipping.mapper.*;
- import com.ruoyi.system.domain.SysCheckCode;
- import com.ruoyi.system.domain.SysConfig;
- import com.ruoyi.system.mapper.*;
- import com.ruoyi.warehouseBusiness.domain.*;
- import com.ruoyi.warehouseBusiness.excel.*;
- import com.ruoyi.warehouseBusiness.mapper.*;
- import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
- import org.apache.poi.hssf.usermodel.*;
- import org.apache.poi.ss.usermodel.*;
- import org.apache.poi.ss.util.CellRangeAddress;
- import org.apache.poi.ss.util.CellReference;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.transaction.interceptor.TransactionAspectSupport;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.*;
- import java.math.BigDecimal;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import java.util.stream.Collectors;
- import static com.ruoyi.common.utils.poi.Excel.filter;
- import static java.util.stream.Collectors.toList;
- /**
- * 详情主表Service业务层处理
- *
- * @author ruoyi
- * @date 2020-12-11
- */
- @Service
- public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
- @Autowired
- private TFeesMapper tFeesMapper;
- @Autowired
- private TCntrMapper tCntrMapper;
- @Autowired
- private TGoodsMapper tGoodsMapper;
- @Autowired
- private TCorpsMapper tCorpsMapper;
- @Autowired
- private TVoyageMapper tVoyageMapper;
- @Autowired
- private SysUserMapper sysUserMapper;
- @Autowired
- private SysDeptMapper sysDeptMapper;
- @Autowired
- private SysRoleMapper sysRoleMapper;
- @Autowired
- private BillnoDelMapper billnoDelMapper;
- @Autowired
- private TWhgenlegMapper tWhgenlegMapper;
- @Autowired
- private SysConfigMapper sysConfigMapper;
- @Autowired
- private TWarehouseMapper tWarehouseMapper;
- @Autowired
- private TSeapriceMapper tSeapriceMapper;
- @Autowired
- private AuditItemsMapper auditItemsMapper;
- @Autowired
- private TEnclosureMapper tEnclosureMapper;
- @Autowired
- private SysDictDataMapper sysDictDataMapper;
- @Autowired
- private AuditItemsServiceImpl auditItemsService;
- @Autowired
- private TWarehouseAreaMapper tWarehouseAreaMapper;
- @Autowired
- private TWarehouseServiceImpl warehouseServiceImpl;
- @Autowired
- private TWarehouseBillsMapper tWarehouseBillsMapper;
- @Autowired
- private BillnoSerialServiceImpl billnoSerialServiceImpl;
- @Autowired
- private TWarehousebillsLogMapper tWarehousebillsLogMapper;
- @Autowired
- private TWarehousebillsCntrMapper tWarehousebillsCntrMapper;
- @Autowired
- private TWarehousebillsfeesMapper tWarehousebillsfeesMapper;
- @Autowired
- private TWarehousebillsitemsMapper tWarehousebillsitemsMapper;
- @Autowired
- private TWarehouseAgreementServiceImpl tWarehouseAgreementService;
- @Autowired
- private TWarehouseAgreementitemsMapper tWarehouseAgreementitemsMapper;
- @Autowired
- private TWarehousebillsCntritemsMapper tWarehousebillsCntritemsMapper;
- @Autowired
- private TTemporaryFileMapper tTemporaryFileMapper;
- @Autowired
- private TWarehousebillsLoggerMapper tWarehousebillsLoggerMapper;
- @Autowired
- private TWarehousebillsCntrLoggerMapper tWarehousebillsCntrLoggerMapper;
- @Autowired
- private TWarehousebillsCntritemsLoggerMapper tWarehousebillsCntritemsLoggerMapper;
- @Autowired
- private TWarehousebillsfeesLoggerMapper tWarehousebillsfeesLoggerMapper;
- @Autowired
- private TVesselMapper tVesselMapper;
- @Autowired
- private TCntrnoMapper tCntrnoMapper;
- @Autowired
- private TAddressMapper tAddressMapper;
- @Autowired
- private TCntrtrackingMapper tCntrtrackingMapper;
- @Autowired
- private TCtnpriceItemsMapper tCtnpriceItemsMapper;
- private static final Logger log = LoggerFactory.getLogger(AddressUtils.class);
- /**
- * 查询详情主表
- *
- * @param fId 详情主表ID
- * @return 详情主表
- */
- @Override
- public Map<String, Object> selectTWarehousebillsById(Long fId) {
- Map<String, Object> map = new HashMap<>();
- // 查询仓库主表数据
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- // 客户表
- List<Long> corpsId = new ArrayList<>();
- // 用户表
- List<SysUser> sysUserList = new ArrayList<>();
- // 仓库表
- List<TWarehouse> warehouseList = new ArrayList<>();
- // 商品
- List<Long> goodsId = new ArrayList<>();
- // 费用
- List<Long> feesId = new ArrayList<>();
- // 车队
- List<Long> fleetId = new ArrayList<>();
- // 库区
- List<Long> warehouseAreaId = new ArrayList<>();
- if (!StringUtils.isNull(tWarehousebills)) {
- if (StringUtils.isNotNull(tWarehousebills.getfTocorpid())) {
- corpsId.add(tWarehousebills.getfTocorpid());
- }
- if (StringUtils.isNotNull(tWarehousebills.getfLabour())) {
- corpsId.add(tWarehousebills.getfLabour());
- }
- if (StringUtils.isNotNull(tWarehousebills.getfFleet())) {
- corpsId.add(tWarehousebills.getfFleet());
- }
- corpsId.add(tWarehousebills.getfCorpid());
- // 查询制单人
- SysUser logUser = sysUserMapper.selectUserByUserName(tWarehousebills.getCreateBy());
- if (StringUtils.isNotNull(logUser)) {
- SysDept sysDept = sysDeptMapper.selectDeptById(logUser.getDeptId());
- sysUserList.add(logUser);
- map.put("dept", sysDept);
- }
- SysUser sysUser = sysUserMapper.selectUserByUserName(tWarehousebills.getfStorekeeper());
- if (StringUtils.isNotNull(sysUser)) {
- sysUserList.add(sysUser);
- }
- // 查询仓库
- TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(tWarehousebills.getfWarehouseid());
- if (StringUtils.isNotNull(tWarehouse)) {
- warehouseList.add(tWarehouse);
- }
- //查询业务员
- if (tWarehousebills.getfSalesmanId() != null){
- SysUser user = sysUserMapper.selectUserById(tWarehousebills.getfSalesmanId());
- map.put("fSalesman",user);
- }
- // 查询经营单位
- corpsId.add(tWarehousebills.getfSbu());
- map.put("warehousebills", tWarehousebills);
- }
- // 查询箱型 箱量表
- TWarehousebillsCntr cntr = new TWarehousebillsCntr();
- cntr.setfPid(fId);
- map.put("tCntrList", tWarehousebillsCntrMapper.selectTWarehousebillsCntrList(cntr));
- // 查询仓库明细从表数据
- TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
- tWarehousebillsitems.setfPid(fId);
- List<Map<String, Object>> mapList = tWarehousebillsitemsMapper.selectGoodsTransferitemsList(tWarehousebillsitems);
- if (StringUtils.isNotEmpty(mapList)) {
- for (Map<String, Object> wb : mapList) {
- /*TWhgenleg tWhgenleg = new TWhgenleg();
- tWhgenleg.setfCorpid(tWarehousebills.getfCorpid());
- if (StringUtils.isNotNull(wb.get("fGoodsid"))) {
- tWhgenleg.setfGoodsid(((Integer) wb.get("fGoodsid")).longValue());
- }
- if (StringUtils.isNotNull(wb.get("fWarehouselocid"))) {
- tWhgenleg.setfWarehouseLocationid(((Integer) wb.get("fWarehouselocid")).longValue());
- }
- tWhgenleg.setfTrademodeid(tWarehousebills.getfTrademodeid());
- tWhgenleg.setfMblno(tWarehousebills.getfMblno());
- TWhgenleg whgenleg = tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
- if (StringUtils.isNotNull(whgenleg)) {
- wb.put("fQtyblc", whgenleg.getfQtyblc());
- }*/
- if (StringUtils.isNotNull(wb.get("fGoodsid"))) {
- Integer fGoodsid = (Integer) wb.get("fGoodsid");
- goodsId.add(fGoodsid.longValue());
- }
- if (StringUtils.isNotNull(wb.get("fFleet"))) {
- Integer fFleetid = (Integer) wb.get("fFleet");
- fleetId.add(fFleetid.longValue());
- }
- if (StringUtils.isNotNull(wb.get("fWarehouselocid"))) {
- Long fWarehouselocid = Long.valueOf(String.valueOf(wb.get("fWarehouselocid")));
- if (wb.get("fTransferWarehouselocid") != null) {
- Long fTransferWarehouselocid = Long.valueOf(String.valueOf(wb.get("fTransferWarehouselocid")));
- warehouseAreaId.add(fTransferWarehouselocid);
- }
- warehouseAreaId.add(fWarehouselocid);
- }
- }
- map.put("warehouseBillsItem", mapList);
- }
- // 查询仓库费用明细表数据
- TWarehousebillsfees tWarehousebillsfees = new TWarehousebillsfees();
- tWarehousebillsfees.setfPid(fId);
- List<TWarehousebillsfees> warehousebillsfeesDr = new ArrayList<>();
- List<TWarehousebillsfees> warehousebillsfeesCr = new ArrayList<>();
- List<TWarehousebillsfees> warehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(tWarehousebillsfees);
- if (StringUtils.isNotEmpty(warehousebillsfees)) {
- for (TWarehousebillsfees fees : warehousebillsfees) {
- if ("C".equals(fees.getfDc())) {
- warehousebillsfeesCr.add(fees);
- } else {
- warehousebillsfeesDr.add(fees);
- }
- corpsId.add(fees.getfCorpid());
- feesId.add(fees.getfFeeid());
- }
- }
- // 查询附件表数据
- TEnclosure enclosure = new TEnclosure();
- enclosure.setfPid(fId);
- List<TEnclosure> enclosures = tEnclosureMapper.selectTEnclosureList(enclosure);
- if (StringUtils.isNotEmpty(enclosures)) {
- map.put("enclosures", enclosures);
- }
- List<TCorps> corpsList = new ArrayList<>();
- List<Long> corpsIdList = StringUtils.integerDeduplication(corpsId);
- for (Long corpId : corpsIdList) {
- TCorps corps = tCorpsMapper.selectTCorpsById(corpId);
- if (StringUtils.isNotNull(corps)) {
- corpsList.add(corps);
- }
- }
- List<TWarehouseArea> warehouseAreaList = new ArrayList<>();
- /*List<Long> warehouseAreaIdList = StringUtils.integerDeduplication(warehouseAreaId);
- for (Long warehouseArea : warehouseAreaIdList) {
- TWarehouseArea tWarehouseArea = tWarehouseAreaMapper.selectTWarehouseAreaById(warehouseArea);
- if (StringUtils.isNotNull(tWarehouseArea)) {
- warehouseAreaList.add(tWarehouseArea);
- }
- }*/
- List<TGoods> goodsList = new ArrayList<>();
- List<Long> goodsIdList = StringUtils.integerDeduplication(goodsId);
- for (Long goods : goodsIdList) {
- TGoods tGoods = tGoodsMapper.selectTGoodsById(goods);
- if (StringUtils.isNotNull(tGoods)) {
- goodsList.add(tGoods);
- }
- }
- List<TCorps> fleetList = new ArrayList<>();
- List<Long> fleetIdList = StringUtils.integerDeduplication(fleetId);
- for (Long goods : fleetIdList) {
- TCorps fleet = tCorpsMapper.selectTCorpsById(goods);
- if (StringUtils.isNotNull(fleet)) {
- fleetList.add(fleet);
- }
- }
- List<TFees> feesList = new ArrayList<>();
- List<Long> longList = StringUtils.integerDeduplication(feesId);
- for (Long fees : longList) {
- TFees tFees = tFeesMapper.selectTFeesById(fees);
- if (StringUtils.isNotNull(tFees)) {
- feesList.add(tFees);
- }
- }
- map.put("corps", corpsList);
- map.put("goodsList", goodsList);
- map.put("feesList", feesList);
- map.put("fleetList", fleetList);
- map.put("sysUser", sysUserList);
- map.put("warehouse", warehouseList);
- map.put("warehouseAreas", warehouseAreaList);
- map.put("warehousebillsfeesDr", warehousebillsfeesDr);
- map.put("warehousebillsfeesCr", warehousebillsfeesCr);
- map.put("dept", sysDeptMapper.selectDeptById(tWarehousebills.getfDeptid()));
- return map;
- }
- @Override
- public AjaxResult selectTWarehousebills(Long fId) {
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- TWarehousebillsCntr tWarehousebillsCntr = new TWarehousebillsCntr();
- tWarehousebillsCntr.setfPid(fId);
- List<TWarehousebillsCntr> warehousebillsCntrs = tWarehousebillsCntrMapper.selectTWarehousebillsCntrList(tWarehousebillsCntr);
- TWarehousebillsCntritems tWarehousebillsCntritems = new TWarehousebillsCntritems();
- tWarehousebillsCntritems.setfPid(fId);
- List<TWarehousebillsCntritems> warehousebillsCntritems = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(tWarehousebillsCntritems);
- Map<String, Object> map = new HashMap<>();
- map.put("warehouseBills", warehouseBills);
- map.put("warehousebillsCntrs", warehousebillsCntrs);
- map.put("warehousebillsCntritems", warehousebillsCntritems);
- return AjaxResult.success("成功", map);
- }
- /**
- * 查询详情主表列表
- *
- * @param tWarehousebills 详情主表
- * @return 详情主表
- */
- @Override
- public List<Map<String, Object>> selectWarehouseBusinessList(TWarehouseBills tWarehousebills) {
- if (tWarehousebills.getfBilltype().equals("JSCCF") || tWarehousebills.getfBilltype().equals("HQZY")) {
- return tWarehouseBillsMapper.selectWarehouseBusinessList1(tWarehousebills);
- } else {
- return tWarehouseBillsMapper.selectWarehouseBusinessList(tWarehousebills);
- }
- }
- /**
- * 查询导出所需主表列表
- *
- * @param tWarehousebills 详情主表
- * @return 详情主表
- */
- @Override
- public List<TWarehouseBills> selectTWarehousebillsList(TWarehouseBills tWarehousebills) {
- return tWarehouseBillsMapper.selectTWarehousebillsList(tWarehousebills);
- }
- /**
- * 根据条件查询总账是否存在
- *
- * @param warehouseBills 仓库主表
- * @param warehousebillsitems 仓库明细表
- * @param ifCntrno
- * @return 库存总账
- */
- public TWhgenleg queryTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, String ifCntrno) {
- TWhgenleg tWhgenleg = new TWhgenleg();
- // 客户
- tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
- // 提单号
- if ("HQZY".equals(warehouseBills.getfBilltype()) || "CKDB".equals(warehouseBills.getfBilltype()) ||
- "HWTG".equals(warehouseBills.getfBilltype()) || "SJCK".equals(warehouseBills.getfBilltype())) {
- tWhgenleg.setfMblno(warehousebillsitems.getfMblno());
- } else {
- tWhgenleg.setfMblno(warehouseBills.getfMblno());
- }
- // 业务类型
- tWhgenleg.setfBusinessType(warehousebillsitems.getfBusinessType());
- // 业务类型详情
- tWhgenleg.setfMarks(warehousebillsitems.getfMarks());
- // 原始入库日期
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- String time = sdf.format(warehousebillsitems.getfOriginalbilldate());
- try {
- tWhgenleg.setfOriginalbilldate(sdf.parse(time));
- } catch (ParseException e) {
- e.printStackTrace();
- }
- // 箱号
- if ("1".equals(ifCntrno)) {
- tWhgenleg.setfCntrno(warehousebillsitems.getfCntrno());
- }
- // 库区
- tWhgenleg.setfWarehouseLocationid(warehousebillsitems.getfWarehouselocid());
- // 货物品名
- tWhgenleg.setfGoodsid(warehousebillsitems.getfGoodsid());
- // 贸易方式
- tWhgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
- return tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
- }
- /**
- * 新增库存总账
- *
- * @param warehouseBills 仓库主表
- * @param warehousebillsitems 仓库明细表
- * @return 结果
- */
- @Transactional
- public int instalTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, SysUser user) {
- TWhgenleg tWhgenleg = new TWhgenleg();
- if ("SJRK".equals(warehouseBills.getfBilltype())) {
- tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfBsdate());
- if (StringUtils.isNotEmpty(warehouseBills.getfCustomno())){
- tWhgenleg.setfCustomno(warehouseBills.getfCustomno());
- }
- if (StringUtils.isNotEmpty(warehouseBills.getRemark())){
- tWhgenleg.setRemark(warehouseBills.getRemark());
- }
- }
- if ("HQZY".equals(warehouseBills.getfBilltype()) | "CKDB".equals(warehouseBills.getfBilltype()) | "HWTG".equals(warehouseBills.getfBilltype())) {
- tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfOriginalbilldate());
- if ("CKDB".equals(warehouseBills.getfBilltype()) | "HWTG".equals(warehouseBills.getfBilltype())) {
- tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
- } else {
- // 客户
- tWhgenleg.setfCorpid(warehouseBills.getfTocorpid());
- }
- // 提单号
- tWhgenleg.setfMblno(warehousebillsitems.getfMblno());
- // 原始单号
- tWhgenleg.setfOriginalbillno(warehousebillsitems.getfMblno());
- } else {
- // 客户
- tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
- // 提单号
- tWhgenleg.setfMblno(warehouseBills.getfMblno());
- // 原始单号
- tWhgenleg.setfOriginalbillno(warehouseBills.getfMblno());
- }
- // 库内箱号
- if (StringUtils.isNotEmpty(warehousebillsitems.getfLocalcntrno())) {
- tWhgenleg.setfLocalcntrno(warehousebillsitems.getfLocalcntrno());
- }
- // 明细类型
- tWhgenleg.setfBusinessType(warehousebillsitems.getfBusinessType());
- // 仓库
- tWhgenleg.setfWarehouseid(warehouseBills.getfWarehouseid());
- // 库区
- tWhgenleg.setfWarehouseLocationid(warehousebillsitems.getfWarehouselocid());
- // 货物品名
- tWhgenleg.setfGoodsid(warehousebillsitems.getfGoodsid());
- // 计费方式
- tWhgenleg.setfBillingway(warehousebillsitems.getfBillingway());
- // 仓储计费日期
- tWhgenleg.setfChargedate(warehousebillsitems.getfChargedate());
- // 贸易方式
- tWhgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
- // 入库数
- tWhgenleg.setfQtyd(warehousebillsitems.getfQty());
- // 入库尺码
- tWhgenleg.setfVolumnd(warehousebillsitems.getfVolumn());
- // 唛头
- tWhgenleg.setfMarks(warehousebillsitems.getfMarks());
- // 入库毛重
- tWhgenleg.setfGrossweightd(warehousebillsitems.getfGrossweight());
- // 入库净重
- tWhgenleg.setfNetweightd(warehousebillsitems.getfNetweight());
- // 入库箱号
- tWhgenleg.setfCntrno(warehousebillsitems.getfCntrno());
- // 创建人
- tWhgenleg.setCreateBy(user.getUserName());
- // 创建人
- tWhgenleg.setCreateTime(new Date());
- // 状态
- tWhgenleg.setfStatus("T");
- // 结余件数
- tWhgenleg.setfQtyblc(warehousebillsitems.getfQty());
- return tWhgenlegMapper.insertTWhgenleg(tWhgenleg);
- }
- @Transactional
- public int updateTWhgenlegData(TWarehousebillsitems warehousebillsitems, long whgenlegId, String billtype) {
- Map<String, Object> map = new HashMap<>();
- map.put("whgenlegId", whgenlegId);
- map.put("billType", billtype);
- map.put("warehousebillsitems", warehousebillsitems);
- return tWhgenlegMapper.updateTWhgenlegData(map);
- }
- /**
- * 仓库暂存接口
- *
- * @param tWarehouseBills 仓库主表
- * @param tWarehousebillsfeesCr 仓库费付款用明细表
- * @param tWarehousebillsfeesDr 仓库费收
- * 款用明细表
- * @param tWarehousebillsitems 仓库货物明细表
- * @param loginUser 当前登陆人
- * @param billsType 判断标识
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult insertTWarehousebills(String tWarehouseBills, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr
- , String tWarehousebillsitems, String tEnclosure, LoginUser loginUser, String tCntr, String billsType) {
- Long fPid = null;
- Map<String, Object> map = new HashMap<>();
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
- Long timestamp = DateUtils.getTimestamp(new Date());
- warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
- warehouseBills.setfQty(itemInFo.getfQty());
- warehouseBills.setfNetweight(itemInFo.getfNetweight());
- warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- if (StringUtils.isNull(warehouseBills.getfId())) {
- // 如果是新数据
- warehouseBills.setfBillstatus(2L);
- warehouseBills.setfItemsStatus(1L);
- warehouseBills.setCreateBy(loginUser.getUser().getUserName());
- warehouseBills.setfBilltype(billsType);
- warehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- warehouseBills.setfDeptid(loginUser.getUser().getDeptId());
- // 业务编码
- String billNo = billnoSerialServiceImpl.getBillNo(billsType, warehouseBills.getfBsdate());
- warehouseBills.setfBillno(billNo);
- if ("SJRK".equals(billsType) || "HQZY".equals(billsType)) {
- // 存货编码
- Date time = new Date();
- String bscorpno = billnoSerialServiceImpl.getCorpNo(warehouseBills.getfCorpid(), time);
- warehouseBills.setfBscorpno(bscorpno);
- } else {
- warehouseBills.setfChargedate(warehouseBills.getfBsdate());
- }
- tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
- fPid = warehouseBills.getfId();
- } else {
- fPid = warehouseBills.getfId();
- if (!"SJRK".equals(billsType) && !"HQZY".equals(billsType)) {
- warehouseBills.setfChargedate(warehouseBills.getfBsdate());
- }
- warehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- warehouseBills.setUpdateTime(new Date());
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(fPid);
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- tWarehousebillsfeesMapper.deleteByFPid(fPid);
- tEnclosureMapper.deleteByFPid(fPid);
- // 删除 从表中 未打印账单的数据
- deleteBillsitems(fPid, tWarehousebillsitems);
- }
- // 库存明细添加
- if (StringUtils.isNull(tWarehousebillsitems) || "[]".equals(tWarehousebillsitems)) {
- warehouseBills.setfItemsStatus(1L);
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- } else {
- JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- Date mixDate = new Date();
- int totalCount = warehousebillsitemsList.size();
- if (totalCount >= 1) {
- Date minDate = warehousebillsitemsList.get(0).getfBsdate();
- for (int i = 0; i < totalCount; i++) {
- Date date = warehousebillsitemsList.get(i).getfBsdate();
- if (minDate.after(date)) {
- minDate = date;
- }
- }
- mixDate = minDate;
- }
- for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
- boolean warehouseStatus = "SJRK".equals(billsType) || "SJCK".equals(billsType) || "CKDB".equals(billsType) || "HWTG".equals(billsType) || "CDZZ".equals(billsType);
- // 仓储计费日期
- wbItem.setfBilltype(billsType);
- if ("SJRK".equals(billsType) && warehouseBills.getfId() != null && "0".equals(warehouseBills.getfChargetype())) {
- boolean fchargedate = this.getFchargedate(fPid, wbItem.getfBsdate());
- if (fchargedate == false){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("入库日期不能小于最小仓储费计算日期");
- }
- }
- if ("SJRK".equals(billsType)) {
- if ("1".equals(warehouseBills.getfChargetype())) {
- wbItem.setfChargedate(wbItem.getfBsdate());
- } else if ("0".equals(warehouseBills.getfChargetype())){
- Date fchargedate = tWarehousebillsitemsMapper.getFchargedate(fPid);
- if (fchargedate != null){
- wbItem.setfChargedate(fchargedate);
- }else {
- wbItem.setfChargedate(mixDate);
- }
- }
- wbItem.setfBillingway(warehouseBills.getfBillingway());
- wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
- }
- if (null != wbItem.getfId()) {
- wbItem.setUpdateTime(wbItem.getfBsdate());
- wbItem.setUpdateBy(loginUser.getUser().getUserName());
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
- } else {
- // 添加主表 业务单号
- wbItem.setfBillno(warehouseBills.getfBillno());
- if (!warehouseStatus) {
- wbItem.setfBillstatus(1L);
- } else {
- wbItem.setfBillstatus(10L);
- }
- wbItem.setfPid(fPid);
- wbItem.setCreateBy(loginUser.getUser().getUserName());
- wbItem.setCreateTime(new Date());
- tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
- if (!warehouseStatus) {
- // 添加状态log
- insertTWarehousebillsLog(wbItem, 10L, loginUser);
- }
- }
- }
- }
- // 附件添加
- if (StringUtils.isNotNull(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfPid(fPid);
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- enclosure.setCreateTime(new Date());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- // 箱型数据
- if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
- int line = 0;
- for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
- line++;
- if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱型数据第" + line + "行数据缺少必填数据");
- }
- cntr.setfPid(fPid);
- cntr.setfGoodsid(0L);
- cntr.setfPackageid("0");
- cntr.setfCntrweight(new BigDecimal(0));
- cntr.setCreateBy(loginUser.getUser().getUserName());
- cntr.setCreateTime(new Date());
- tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
- }
- }
- // 收款明细添加
- if (StringUtils.isNotNull(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- // 检验 数量*单价=金额
- wbDr.setfPid(fPid);
- wbDr.setfDc("D");
- wbDr.setfBilltype(billsType);
- wbDr.setCreateTime(new Date());
- wbDr.setSrcBillNo(warehouseBills.getfBillno());
- wbDr.setfChargedate(warehouseBills.getfChargedate());
- wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbDr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- }
- // 付款明细添加
- if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(fPid);
- wbCr.setfDc("C");
- wbCr.setfBilltype(billsType);
- wbCr.setCreateTime(new Date());
- wbCr.setSrcBillNo(warehouseBills.getfBillno());
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- wbCr.setfChargedate(warehouseBills.getfChargedate());
- wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbCr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- }
- //查询删除的仓储费收费信息
- List<Long> longs = tWarehousebillsfeesMapper.selectTWarehousebillsfeesSrcId(fPid);
- if (CollectionUtils.isNotEmpty(longs)){
- int i = tWarehousebillsitemsMapper.updatefStorageFeeDeadline(fPid, longs);
- }else {
- int i = tWarehousebillsitemsMapper.updatefStorageFeeDeadlinefPid(fPid);
- }
- TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
- warehousebillsitems.setfPid(fPid);
- map.put("warehouseBills", tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId()));
- map.put("warehousebillsitems", tWarehousebillsitemsMapper.selectGoodsTransferitemsList(warehousebillsitems));
- return AjaxResult.success("成功", map);
- }
- @Override
- public int insertTWarehousebills(TWarehouseBills tWarehousebills) {
- return tWarehouseBillsMapper.insertTWarehousebills(tWarehousebills);
- }
- /**
- * 凯和订单计划暂存
- *
- * @param tWarehousebills 主表信息
- * @param tWarehousebillsCntr 从表信息
- * @param billsType
- * @param loginUser
- * @return
- */
- @Override
- @Transactional
- public AjaxResult TSPlantMessage(String tWarehousebills, String tWarehousebillsCntr,
- String billsType, LoginUser loginUser) {
- Map<String, Object> map = new HashMap<>();
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class);
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntr.class);
- if (warehouseBills.getfId() == null) {
- String billNo = billnoSerialServiceImpl.getBillNo("SE", warehouseBills.getfBsdate());
- warehouseBills.setfBillno(billNo);
- warehouseBills.setCreateTime(DateUtils.getNowDate());
- warehouseBills.setCreateBy(SecurityUtils.getUsername());
- warehouseBills.setfBilltype(billsType);
- warehouseBills.setfTypeid(1);
- warehouseBills.setfBillstatus(2L);
- warehouseBills.setfDeptid(loginUser.getUser().getDeptId());
- warehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- int i = tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrs)) {
- for (TWarehousebillsCntr warehousebillsCntr : tWarehousebillsCntrs) {
- warehousebillsCntr.setfPid(warehouseBills.getfId());
- warehousebillsCntr.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntr.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntrMapper.insertTWarehousebillsCntr(warehousebillsCntr);
- }
- }
- } else {
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId());
- if (!"2".equals(tWarehouseBills.getfBillstatus()) || !"3".equals(tWarehouseBills.getfBillstatus())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("当前数据不允许暂存");
- }
- warehouseBills.setUpdateTime(DateUtils.getNowDate());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(warehouseBills.getfId());
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrs)) {
- for (TWarehousebillsCntr warehousebillsCntr : tWarehousebillsCntrs) {
- warehousebillsCntr.setfPid(warehouseBills.getfId());
- warehousebillsCntr.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntr.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntrMapper.insertTWarehousebillsCntr(warehousebillsCntr);
- }
- }
- }
- map.put("warehouseBills", warehouseBills);
- map.put("tWarehousebillsCntrs", tWarehousebillsCntrs);
- return AjaxResult.success("msg", map);
- }
- /**
- * 凯和订单计划提交
- *
- * @param tWarehousebills 主表信息
- * @param tWarehousebillsCntr 从表信息
- * @param billsType
- * @param loginUser
- * @return
- */
- @Override
- @Transactional
- public AjaxResult submitPlantMessage(String tWarehousebills, String tWarehousebillsCntr,
- String billsType, LoginUser loginUser) {
- boolean isApprove = false;//是否开启审批流
- String key = "";//键
- long actId = 0L;//活动id
- Long fPid = null;
- Long billStatus = null;
- Map<String, Object> map = new HashMap<>();
- if ("KHDD".equals(billsType)) {
- actId = 410L;
- key = "khwarehouse.warehousebills.ApprovalFlow";
- }
- SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- isApprove = true;
- }
- if (isApprove) {
- billStatus = 4L;
- } else {
- billStatus = 6L;
- }
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class);
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntr.class);
- if (warehouseBills.getfVslid() == null){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("船名不能为空");
- }
- if (warehouseBills.getfVoyid() == null){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("航次不能为空");
- }
- //获取客户单位
- Long clientFid = tCorpsMapper.getClientFid(loginUser.getUser().getPhonenumber());
- if (warehouseBills.getfId() == null) {
- String billNo = billnoSerialServiceImpl.getBillNo("SE", DateUtils.getNowDate());
- warehouseBills.setfBillno(billNo);
- warehouseBills.setCreateTime(DateUtils.getNowDate());
- warehouseBills.setCreateBy(SecurityUtils.getUsername());
- warehouseBills.setfBilltype(billsType);
- warehouseBills.setfTypeid(1);
- warehouseBills.setfDeptid(loginUser.getUser().getDeptId());
- warehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- warehouseBills.setfCorpid(clientFid);
- warehouseBills.setfContacts(loginUser.getUser().getUserName());
- warehouseBills.setfTel(loginUser.getUser().getPhonenumber());
- warehouseBills.setfBillstatus(billStatus);
- warehouseBills.setfTimes(1L);
- int i = tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrs)) {
- for (TWarehousebillsCntr warehousebillsCntr : tWarehousebillsCntrs) {
- warehousebillsCntr.setfPid(warehouseBills.getfId());
- warehousebillsCntr.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntr.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntrMapper.insertTWarehousebillsCntr(warehousebillsCntr);
- }
- }
- fPid = warehouseBills.getfId();
- } else {
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId());
- if (tWarehouseBills.getfBillstatus() == 2L
- || tWarehouseBills.getfBillstatus() == 3L) {
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("当前数据不允许提交");
- }
- fPid = warehouseBills.getfId();
- warehouseBills.setUpdateTime(DateUtils.getNowDate());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- warehouseBills.setfBillstatus(billStatus);
- warehouseBills.setfTimes(tWarehouseBills.getfTimes() + 1);
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(warehouseBills.getfId());
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrs)) {
- for (TWarehousebillsCntr warehousebillsCntr : tWarehousebillsCntrs) {
- warehousebillsCntr.setfPid(warehouseBills.getfId());
- warehousebillsCntr.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntr.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntrMapper.insertTWarehousebillsCntr(warehousebillsCntr);
- }
- }
- }
- //获取海运费ID
- TFees tFees = tFeesMapper.selectTFeesByFName("海运费");
- if (tFees == null){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("费用信息中缺少海运费请维护");
- }
- //获取计价单位ID
- String dictValue = sysDictDataMapper.selectDictValue("data_unitfees", "箱量");
- if (StringUtils.isEmpty(dictValue)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("计价单位中缺少箱量请维护");
- }
- //结算方式
- String fSrcType = sysDictDataMapper.selectDictValue("data_stltype_type", "月结");
- if (StringUtils.isEmpty(dictValue)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("结算方式中缺少月结请维护");
- }
- //业务类型
- String fBusinessType = sysDictDataMapper.selectDictValue("data_billType", "内贸");
- if (StringUtils.isEmpty(dictValue)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("业务类型中缺少内贸请维护");
- }
- //获取航次对应的运价
- List<TCtnpriceItems> tCtnpriceItems = tCtnpriceItemsMapper.selectItemMeaasge(warehouseBills.getfVoyid(), tWarehousebillsCntrs.get(0).getfCntrid());
- TVoyage voyage = tVoyageMapper.selectTVoyageByFid(warehouseBills.getfVoyid());
- //生成运价费用
- TWarehousebillsfees wbDr = new TWarehousebillsfees();
- wbDr.setfPid(warehouseBills.getfId());//主表ID
- wbDr.setfCorpid(clientFid);//客户ID
- wbDr.setfFeeid(tFees.getfId());//费用ID
- wbDr.setfFeeunitid(Long.valueOf(dictValue));//计价单位
- wbDr.setfQty(new BigDecimal(tWarehousebillsCntrs.get(0).getfCntrcount()));//数量
- if (CollectionUtils.isNotEmpty(tCtnpriceItems)){
- wbDr.setfUnitprice(tCtnpriceItems.get(0).getfPrice());//单价
- wbDr.setfAmount(tCtnpriceItems.get(0).getfPrice().multiply(new BigDecimal(tWarehousebillsCntrs.get(0).getfCntrcount())));//金额
- }else {
- wbDr.setfUnitprice(new BigDecimal(0));//单价
- wbDr.setfAmount(new BigDecimal(0));//金额
- }
- wbDr.setfCurrency("RMB");//币别
- wbDr.setfExrate(new BigDecimal(1));//汇率
- wbDr.setfTaxrate(new BigDecimal(0));//税率
- wbDr.setfDc("D");//收付
- wbDr.setfStltypeid(Long.valueOf(fSrcType));//结算方式
- wbDr.setRemark(voyage.getfNo());//备注 航次名
- wbDr.setfSrcTypeId(2L);//来源订舱
- wbDr.setfBilltype(billsType);
- wbDr.setCreateTime(new Date());
- wbDr.setSrcBillNo(warehouseBills.getfBillno());
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- wbDr.setfBusinessType(fBusinessType);//业务类型
- //wbDr.setfChargedate(warehouseBills.getfChargedate());
- //wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbDr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- map.put("TWarehousebillsfees", wbDr);
- if (isApprove) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(fPid);
- auditItems.setActId(actId);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(warehouseBills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(warehouseBills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(warehouseBills.getfBilltype());
- // 存储提单号(提单号)
- if (StringUtils.isNotEmpty(warehouseBills.getfMblno())) {
- auditItems.setRefno3(warehouseBills.getfMblno());
- } else {
- auditItems.setRefno3(warehouseBills.getfBillno());
- }
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(SecurityUtils.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus("f_billstatus");
- auditItems.setTimes(1L);
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- // Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- }
- map.put("warehouseBills", warehouseBills);
- map.put("tWarehousebillsCntrs", tWarehousebillsCntrs);
- return AjaxResult.success("msg", map);
- }
- /**
- * 配船暂存
- *
- * @param tWarehousebills 主表信息
- * @param tWarehousebillsCntritems 从表信息
- * @param billsType
- * @param loginUser
- * @return
- */
- @Override
- @Transactional
- public AjaxResult TSMakingMessage(String tWarehousebills, String tWarehousebillsCntritems, String billsType, LoginUser loginUser) {
- Map<String, Object> map = new HashMap<>();
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class);
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntritems);
- List<TWarehousebillsCntritems> tWarehousebillsCntrs = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntritems.class);
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId());
- /*if (tWarehouseBills.getfBillstatus() == 7L
- || tWarehouseBills.getfBillstatus() == 6L) {
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("当前数据不允许暂存");
- }*/
- if (tWarehouseBills.getfBillstatus() != null && tWarehouseBills.getfBillstatus().longValue() == 6){
- warehouseBills.setfBillstatus(7L);
- }else {
- warehouseBills.setfBillstatus(tWarehouseBills.getfBillstatus());
- }
- int i = tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- TWarehousebillsCntr tWarehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(warehouseBills.getfId());
- int cntritemsfPid = tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrs)) {
- for (TWarehousebillsCntritems warehousebillsCntritems : tWarehousebillsCntrs) {
- AjaxResult ajaxResult = this.judgeBoxPile(warehousebillsCntritems, tWarehousebillsCntr.getfCntrid());
- String code = ajaxResult.get("code").toString();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("error",ajaxResult.get("msg").toString());
- }
- warehousebillsCntritems.setfPid(warehouseBills.getfId());
- warehousebillsCntritems.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntritems.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntritemsMapper.insertTWarehousebillsCntritems(warehousebillsCntritems);
- }
- }
- map.put("warehouseBills", warehouseBills);
- map.put("tWarehousebillsCntrs", tWarehousebillsCntrs);
- return AjaxResult.success("msg", map);
- }
- /**
- * 配船提交
- *
- * @param tWarehousebills 主表信息
- * @param tWarehousebillsCntritems 从表信息
- * @param billsType
- * @param loginUser
- * @return
- */
- @Override
- @Transactional
- public AjaxResult submitMakingMessage(String tWarehousebills, String tWarehousebillsCntritems, String billsType, LoginUser loginUser) {
- boolean isApprove = false;//是否开启审批流
- String key = "";//键
- long actId = 0L;//活动id
- Long fPid = null;
- Map<String, Object> map = new HashMap<>();
- if ("KHDD".equals(billsType)) {
- actId = 420L;
- key = "khwarehouse.makingCargoPlan.ApprovalFlow";
- }
- SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- isApprove = true;
- }
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class);
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntritems);
- List<TWarehousebillsCntritems> tWarehousebillsCntritemsList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntritems.class);
- fPid = warehouseBills.getfId();
- warehouseBills.setUpdateTime(DateUtils.getNowDate());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- if (isApprove) {
- warehouseBills.setfBillstatus(9L);
- } else {
- warehouseBills.setfBillstatus(11L);
- warehouseBills.setfReviewDate(new Date());
- }
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId());
- if (tWarehouseBills.getfBillstatus() == 6L
- || tWarehouseBills.getfBillstatus() == 7L
- || tWarehouseBills.getfBillstatus() == 8L) {
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("当前数据不允许提交");
- }
- warehouseBills.setfTimes(tWarehouseBills.getfTimes() + 1);
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
- TWarehousebillsCntr tWarehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(warehouseBills.getfId());
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntritemsList)) {
- for (TWarehousebillsCntritems warehousebillsCntritems : tWarehousebillsCntritemsList) {
- AjaxResult ajaxResult = this.judgeBoxPile(warehousebillsCntritems, tWarehousebillsCntr.getfCntrid());
- String code = ajaxResult.get("code").toString();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("error",ajaxResult.get("msg").toString());
- }
- warehousebillsCntritems.setfPid(warehouseBills.getfId());
- warehousebillsCntritems.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntritems.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntritemsMapper.insertTWarehousebillsCntritems(warehousebillsCntritems);
- }
- }
- TWarehousebillsCntr warehousebillsCntr = new TWarehousebillsCntr();
- warehousebillsCntr.setfPid(warehouseBills.getfId());
- List<TWarehousebillsCntr> tWarehousebillsCntrs = tWarehousebillsCntrMapper.selectTWarehousebillsCntrList(warehousebillsCntr);
- TVoyage tVoyage = tVoyageMapper.selectTVoyageById(warehouseBills.getfVoyid());
- if (isApprove) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(fPid);
- auditItems.setActId(actId);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(tWarehouseBills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(tWarehouseBills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(tWarehouseBills.getfBilltype());
- // 存储提单号(提单号)
- auditItems.setRefno3(tWarehouseBills.getfMblno());
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(SecurityUtils.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus("f_billstatus");
- auditItems.setTimes(1L);
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- // Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- }
- map.put("warehouseBills", warehouseBills);
- map.put("tWarehousebillsCntrs", tWarehousebillsCntrs);
- map.put("tVoyageL", tVoyage);
- map.put("tWarehousebillsCntritems", tWarehousebillsCntritemsList);
- return AjaxResult.success("msg", map);
- }
- /**
- * 仓库模块提交接口
- *
- * @param tWarehouseBills 仓库主表
- * @param tWarehousebillsfeesCr 仓库费用付款明细表
- * @param tWarehousebillsfeesDr 仓库费用收款明细表
- * @param tWarehousebillsitems 仓库货物明细表
- * @param tEnclosure
- * @param loginUser 当前登陆人
- * @param billsType 操作状态
- * @return
- */
- @Override
- @Transactional
- public AjaxResult warehouseSubmission(String tWarehouseBills, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
- String tWarehousebillsitems, String tEnclosure, LoginUser loginUser, String tCntr, String billsType) {
- Long fPid = null;
- boolean isApprove = false;
- Long actId = queryWarehouseActId(billsType);
- String key = "";
- if ("SJRK".equals(billsType)) {
- key = "warehouse.inStock.ApprovalFlow";
- } else if ("SJCK".equals(billsType)) {
- key = "warehouse.outStock.ApprovalFlow";
- } else if ("CKDB".equals(billsType)) {
- key = "warehouse.stockTransfer.ApprovalFlow";
- } else if ("HQZY".equals(billsType)) {
- key = "warehouse.transfer.ApprovalFlow";
- } else if ("HWTG".equals(billsType)) {
- key = "warehouse.cargoClearance.ApprovalFlow";
- }
- SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- isApprove = true;
- }
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
- if ("SJRK".equals(billsType) || "SJCK".equals(billsType)) {
- SysConfig warehouseConfig = queryWarehouseConfig(billsType);
- if (StringUtils.isNull(warehouseConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到接单审批流参数");
- }
- }
- if ("0".equals(sysConfig.getConfigValue()) && (warehouseBills.getWarehouseStatus() == 4L || warehouseBills.getWarehouseStatus() == 5L)) {
- return AjaxResult.error("接单审批正在进行中,无法进行提交");
- }
- warehouseBills.setfItemsStatus(4L);
- Long timestamp = DateUtils.getTimestamp(new Date());
- warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
- warehouseBills.setfQty(itemInFo.getfQty());
- warehouseBills.setfNetweight(itemInFo.getfNetweight());
- warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- warehouseBills.setfTimes(warehouseBills.getfTimes() + 1);
- if (StringUtils.isNull(warehouseBills.getfId())) {
- if (isApprove) {
- warehouseBills.setfBillstatus(4L);
- } else {
- warehouseBills.setfBillstatus(6L);
- warehouseBills.setfReviewDate(new Date());
- }
- warehouseBills.setfBilltype(billsType);
- if (!"SJRK".equals(billsType) && !"HQZY".equals(billsType)) {
- warehouseBills.setfChargedate(warehouseBills.getfBsdate());
- }
- warehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- warehouseBills.setCreateBy(loginUser.getUser().getUserName());
- String billNo = billnoSerialServiceImpl.getBillNo(billsType, warehouseBills.getfBsdate());
- warehouseBills.setfBillno(billNo);
- Date time = new Date();
- String bscorpno = billnoSerialServiceImpl.getCorpNo(warehouseBills.getfCorpid(), time);
- warehouseBills.setfBscorpno(bscorpno);
- tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
- fPid = warehouseBills.getfId();
- } else {
- fPid = warehouseBills.getfId();
- if (isApprove) {
- warehouseBills.setfBillstatus(4L);
- } else {
- warehouseBills.setfBillstatus(6L);
- warehouseBills.setfReviewDate(new Date());
- }
- warehouseBills.setUpdateTime(new Date());
- if (!"SJRK".equals(billsType) && !"HQZY".equals(billsType)) {
- warehouseBills.setfChargedate(warehouseBills.getfBsdate());
- }
- warehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- tEnclosureMapper.deleteByFPid(fPid);
- tWarehousebillsfeesMapper.deleteByFPid(fPid);
- tWarehousebillsitemsMapper.deleteByFPid(fPid);
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(fPid);
- }
- JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- int line = 0;
- for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
- line++;
- if ("SJRK".equals(billsType) || "SJCK".equals(billsType) || "CKDB".equals(billsType) || "HWTG".equals(billsType)) {
- // 除了入库其他模块不需要更新主表的 仓储费计费日期到明细表,其他模块 应从库存总账把仓储费计费日期 赋给明细表
- if ("SJRK".equals(billsType)) {
- wbItem.setfMblno(warehouseBills.getfMblno());
- wbItem.setfBillingway(warehouseBills.getfBillingway());
- wbItem.setfChargedate(warehouseBills.getfChargedate());
- wbItem.setfOriginalbilldate(warehouseBills.getfBsdate());
- wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
- }
- if (!wbItem.getfBillstatus().equals(40L)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + line + "行状态异常,请确认");
- }
- } else {
- if (!wbItem.getfBillstatus().equals(6L)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + line + "行状态异常,请确认");
- }
- }
- if (StringUtils.isNull(wbItem.getfChargedate())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + line + "行未找到仓储费计费日期,请确认");
- }
- if (StringUtils.isNull(wbItem.getfBillingway())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + line + "行未找到计费方式,请确认");
- }
- if (StringUtils.isNull(wbItem.getfOriginalbilldate())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + line + "行未找到入库日期,请确认");
- }
- wbItem.setfPid(fPid);
- wbItem.setfBilltype(billsType);
- wbItem.setCreateTime(new Date());
- wbItem.setfBillno(warehouseBills.getfBillno());
- wbItem.setCreateBy(loginUser.getUser().getUserName());
- tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
- }
- // 箱型数据
- if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
- int cntrLine = 0;
- for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
- cntrLine++;
- if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱型数据第" + cntrLine + "行数据缺少必填数据");
- }
- cntr.setfPid(fPid);
- cntr.setfGoodsid(0L);
- cntr.setfPackageid("0");
- cntr.setfCntrweight(new BigDecimal(0));
- cntr.setCreateBy(loginUser.getUser().getUserName());
- cntr.setCreateTime(new Date());
- tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
- }
- }
- if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(fPid);
- wbCr.setfDc("C");
- wbCr.setfBilltype(billsType);
- wbCr.setCreateTime(new Date());
- wbCr.setSrcBillNo(warehouseBills.getfBillno());
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- wbCr.setfChargedate(warehouseBills.getfChargedate());
- wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbCr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- }
- if (StringUtils.isNotNull(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- wbDr.setfPid(fPid);
- wbDr.setfDc("D");
- wbDr.setfBillstatus(4L);
- wbDr.setfBilltype(billsType);
- wbDr.setCreateTime(new Date());
- wbDr.setSrcBillNo(warehouseBills.getfBillno());
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- wbDr.setfChargedate(warehouseBills.getfChargedate());
- wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbDr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- }
- if (StringUtils.isNotNull(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonEnclosureArray = JSONArray.parseArray(tEnclosure);
- List<TEnclosure> enclosuresList = JSONObject.parseArray(jsonEnclosureArray.toJSONString(), TEnclosure.class);
- long lineNo = 0L;
- for (TEnclosure enclosure : enclosuresList) {
- lineNo++;
- enclosure.setfPid(fPid);
- enclosure.setfLineno(lineNo);
- enclosure.setCreateTime(new Date());
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- // 这里加个判断取系统参数来确定是否需要启用审批流
- if (isApprove) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(fPid);
- auditItems.setActId(actId);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(warehouseBills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(warehouseBills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(warehouseBills.getfBilltype());
- // 存储提单号(提单号)
- auditItems.setRefno3(warehouseBills.getfMblno());
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(loginUser.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus("f_billstatus");
- auditItems.setTimes(warehouseBills.getfTimes());
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- // Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- } else {
- AjaxResult ajaxResult = warehouseFollow(fPid, 6L);
- String code = ajaxResult.get("code").toString();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return ajaxResult;
- }
- }
- @Override
- public List<TWareHouseExcelItems> selectTWarehousebillsItemsList(Long fId) {
- return tWarehouseBillsMapper.selectTWarehousebillsItemsList(fId);
- }
- @Override
- public List<Map<String, Object>> selectInventoryList(TWarehouseBills tWarehouseBills) {
- if (StringUtils.isNotNull(tWarehouseBills.getfWarehouseid())) {
- // 获取仓库信息
- TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(tWarehouseBills.getfWarehouseid());
- if (tWarehouse.getfLocation() == 1) {
- tWarehouseBills.setfLocation(1L);
- } else {
- tWarehouseBills.setfLocation(0L);
- }
- }
- if (tWarehouseBills.getfBilltype().equals("SJRK")) {
- return tWarehouseBillsMapper.selectInventorySJRKList(tWarehouseBills);
- } else {
- return tWarehouseBillsMapper.selectInventorySJCKList(tWarehouseBills);
- }
- }
- @Override
- public List<TWareHouseItemsExcel> selectTWarehousebillsItemsList(TWarehouseBills tWarehouseBills) {
- return tWarehouseBillsMapper.selectTWarehousebillsItemList(tWarehouseBills);
- }
- @Override
- public AjaxResult serialNumber(String billsType) {
- Map<String, Object> map = new HashMap<>();
- Date time = new Date();
- String serialNumber = null;
- // 查询流水号
- if ("SJRK".equals(billsType)) {
- serialNumber = billnoSerialServiceImpl.getFictitiousNumber("RK", time);
- } else if ("SJCK".equals(billsType)) {
- serialNumber = billnoSerialServiceImpl.getFictitiousNumber("CK", time);
- } else if ("CKDB".equals(billsType)) {
- serialNumber = billnoSerialServiceImpl.getFictitiousNumber("DB", time);
- }
- map.put("fSerialNumber", serialNumber);
- return AjaxResult.success("成功", map);
- }
- @Override
- public int derecognition(Long fId) {
- // 查询对账
- int reconciliation = tWarehousebillsfeesMapper.selectReconciliation(fId);
- // 查询收费
- int charge = tWarehousebillsfeesMapper.selectCharge(fId);
- // 查询付费
- int pay = tWarehousebillsfeesMapper.selectPay(fId);
- if (reconciliation > 0) {
- return 1;
- } else if (charge > 0) {
- return 2;
- } else if (pay > 0) {
- return 3;
- } else {
- return 4;
- }
- }
- @Override
- public List<Map<String, Object>> selectWareHouseNumber() {
- List<Map<String, Object>> map = new ArrayList<>();
- Map<String, Object> maps = new HashMap<>();
- // 入库待办数量
- maps.put("inStock", tWarehousebillsitemsMapper.inStock());
- // 出库待办数量
- maps.put("outStock", tWarehousebillsitemsMapper.outStock());
- List<String> timeInterval = new ArrayList<>();
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- //获取当前月第一天:
- Calendar c = Calendar.getInstance();
- c.add(Calendar.MONTH, 0);
- c.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天
- timeInterval.add(format.format(c.getTime()));
- //获取前月的最后一天
- Calendar ca = Calendar.getInstance();
- ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
- timeInterval.add(format.format(ca.getTime()));
- maps.put("monthInStock", tWarehousebillsitemsMapper.monthInStock(timeInterval));
- // 当月出库待办数量
- maps.put("monthOutStock", tWarehousebillsitemsMapper.monthOutStock(timeInterval));
- map.add(maps);
- return map;
- }
- @Override
- @Transactional
- public AjaxResult waitWarehousingItems(TWarehousebillsitems tWarehousebillsitems) {
- // 先查询是否已经处理
- TWarehousebillsitems tWarehousebillsitems1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(tWarehousebillsitems.getfId());
- if (tWarehousebillsitems1.getfBillstatus().equals(30)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存明细失败,该信息已操作,请重新加载");
- }
- tWarehousebillsitems.setfSerialNumber(tWarehousebillsitems1.getfSerialNumber());
- int num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
- // 主表变更状态
- TWarehouseBills tWarehousebills = new TWarehouseBills();
- tWarehousebills.setfId(tWarehousebillsitems1.getfPid());
- Long timestamp = DateUtils.getTimestamp(new Date());
- tWarehousebills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- tWarehousebills.setfItemsStatus(3L);
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(tWarehousebills.getfId());
- tWarehousebills.setfQty(itemInFo.getfQty());
- tWarehousebills.setfNetweight(itemInFo.getfNetweight());
- tWarehousebills.setfGrossweight(itemInFo.getfGrossweight());
- int num1 = tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- if (num <= 0 && num1 <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存明细失败");
- } else {
- return AjaxResult.success();
- }
- }
- /**
- * app仓储新行保存业务
- *
- * @param item 明细数据
- * @param attachs 附件数据
- * @return 结果
- */
- @Override
- public AjaxResult submitWarehouse(String item, String attachs) {
- TWarehousebillsitems tWarehousebillsitems = JSONArray.parseObject(item, TWarehousebillsitems.class);
- if (StringUtils.isNull(tWarehousebillsitems.getfPid())) {
- return AjaxResult.error("未找到主表id信息,请确认");
- }
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(tWarehousebillsitems.getfPid());
- if (StringUtils.isNotNull(tWarehousebillsitems.getfGoodsid())) {
- TGoods goods = tGoodsMapper.selectTGoodsById(tWarehousebillsitems.getfGoodsid());
- if (!warehouseBills.getfProductName().contains(goods.getfName())) {
- warehouseBills.setfProductName(warehouseBills.getfProductName() + "/" + goods.getfName());
- }
- }
- if (StringUtils.isNotNull(warehouseBills.getfMarks())) {
- if (!warehouseBills.getfMarks().contains(tWarehousebillsitems.getfMarks())) {
- warehouseBills.setfMarks(warehouseBills.getfMarks() + "/" + tWarehousebillsitems.getfMarks());
- }
- }
- if (!"SJRK".equals(warehouseBills.getfBilltype())) {
- if (!warehouseBills.getfMblno().contains(tWarehousebillsitems.getfMblno())) {
- warehouseBills.setfMblno(warehouseBills.getfMblno() + "/" + tWarehousebillsitems.getfMblno());
- }
- }
- Long timestamp = DateUtils.getTimestamp(new Date());
- warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- warehouseBills.setUpdateTime(new Date());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
- warehouseBills.setfQty(itemInFo.getfQty());
- warehouseBills.setfNetweight(itemInFo.getfNetweight());
- warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- if (StringUtils.isNull(tWarehousebillsitems.getfId())) {
- tWarehousebillsitems.setCreateTime(new Date());
- tWarehousebillsitems.setCreateBy(SecurityUtils.getUsername());
- tWarehousebillsitemsMapper.insertTWarehousebillsitems(tWarehousebillsitems);
- } else {
- TWarehousebillsitems warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(tWarehousebillsitems.getfId());
- if (StringUtils.isNull(warehousebillsitems)) {
- return AjaxResult.error("未找到明细信息,请确认该明细信息是否存在");
- }
- if (warehousebillsitems.getfBillstatus() != 30L) {
- return AjaxResult.error("该明细信息异常" + warehousebillsitems.getfBillstatus() + ",请确认");
- }
- tWarehousebillsitems.setUpdateTime(new Date());
- tWarehousebillsitems.setUpdateBy(SecurityUtils.getUsername());
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
- }
- tEnclosureMapper.deleteByFPid(tWarehousebillsitems.getfPid());
- if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
- // 附件添加
- JSONArray jsonDrArray = JSONArray.parseArray(attachs);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfStatus("2");
- enclosure.setCreateTime(new Date());
- enclosure.setfPid(tWarehousebillsitems.getfPid());
- enclosure.setCreateBy(SecurityUtils.getUsername());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- return AjaxResult.success();
- }
- /**
- * 查看集港业务
- *
- * @param fId 集港id
- * @return
- */
- @Override
- public AjaxResult selectContainerPort(Long fId) {
- Map<String, Object> map = new HashMap<>();
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- if (StringUtils.isNull(warehouseBills)) {
- return AjaxResult.error("未找到主表信息,请确认该信息是否存在");
- }
- map.put("warehouseBills", warehouseBills);
- TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
- warehousebillsfees.setfPid(fId);
- warehousebillsfees.setfDc("D");
- List<TWarehousebillsfees> feesDr = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
- List<TCorps> transportationList = new ArrayList<>();
- if (StringUtils.isNotEmpty(feesDr)) {
- for (TWarehousebillsfees dr : feesDr) {
- TCorps corp = tCorpsMapper.selectTCorpsById(dr.getfCorpid());
- if (StringUtils.isNotNull(corp)) {
- transportationList.add(corp);
- }
- }
- transportationList = transportationList.stream().distinct().collect(toList());
- }
- map.put("feesDrList", feesDr);
- map.put("corpList", transportationList);
- List<TCorps> corpsList = new ArrayList<>();
- warehousebillsfees.setfDc("C");
- List<TWarehousebillsfees> feesCr = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
- if (StringUtils.isNotEmpty(feesCr)) {
- for (TWarehousebillsfees cr : feesCr) {
- TCorps corp = tCorpsMapper.selectTCorpsById(cr.getfCorpid());
- if (StringUtils.isNotNull(corp)) {
- corpsList.add(corp);
- }
- }
- corpsList = corpsList.stream().distinct().collect(toList());
- }
- map.put("feesCrList", feesCr);
- map.put("transportationList", corpsList);
- return AjaxResult.success(map);
- }
- /**
- * 集港业务保存、提交接口
- *
- * @param tWarehouseBills 主表业务
- * @param feesCr 收费
- * @param feesDr 付费
- * @return
- */
- @Override
- @Transactional
- public AjaxResult saveContainerPort(String tWarehouseBills, String feesCr, String feesDr, String type) {
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
- warehouseBills.setfBilltype("CKJG");
- // 判断提单号是否存在
- if (StringUtils.isNull(warehouseBills.getfId()) && tWarehouseBillsMapper.selectContainMblno(warehouseBills) > 0) {
- return AjaxResult.error("该提单号已存在");
- }
- Long billStatus = 2L;
- if ("add".equals(type)) {
- billStatus = 6L;
- warehouseBills.setfReviewDate(warehouseBills.getfBsdate());
- warehouseBills.setfBillstatus(billStatus);
- } else {
- if (StringUtils.isNull(warehouseBills.getfBillstatus())) {
- warehouseBills.setfBillstatus(billStatus);
- }
- }
- if (StringUtils.isNull(warehouseBills.getfId())) {
- warehouseBills.setCreateTime(new Date());
- warehouseBills.setCreateBy(SecurityUtils.getUsername());
- warehouseBills.setfDeptid(SecurityUtils.getLoginUser().getUser().getDeptId());
- warehouseBills.setfBsdeptid(SecurityUtils.getLoginUser().getUser().getDeptId());
- tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
- } else {
- warehouseBills.setUpdateTime(new Date());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- }
- tWarehousebillsfeesMapper.deleteByFPid(warehouseBills.getfId());
- if (StringUtils.isNotEmpty(feesCr) && !"[]".equals(feesCr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(feesCr);
- List<TWarehousebillsfees> warehousebillsfeesCr = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
- int line = 1;
- for (TWarehousebillsfees cr : warehousebillsfeesCr) {
- if (StringUtils.isNull(cr.getfCorpid()) || StringUtils.isNull(cr.getfFeeunitid()) || StringUtils.isNull(cr.getfInventoryDays())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("付款费用第" + line + "行,缺少必填信息");
- }
- cr.setfDc("C");
- cr.setfBillstatus(billStatus);
- cr.setCreateTime(new Date());
- cr.setfPid(warehouseBills.getfId());
- cr.setCreateBy(SecurityUtils.getUsername());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(cr);
- line++;
- }
- }
- if (StringUtils.isNotEmpty(feesDr) && !"[]".equals(feesDr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(feesDr);
- List<TWarehousebillsfees> warehousebillsfeesDr = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
- int line = 1;
- for (TWarehousebillsfees dr : warehousebillsfeesDr) {
- if (StringUtils.isNull(dr.getfCorpid()) || StringUtils.isNull(dr.getfFeeunitid()) || StringUtils.isNull(dr.getfInventoryDays())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("收款费用第" + line + "行,缺少必填信息");
- }
- dr.setfDc("D");
- dr.setfBillstatus(billStatus);
- dr.setCreateTime(new Date());
- dr.setfPid(warehouseBills.getfId());
- dr.setCreateBy(SecurityUtils.getUsername());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(dr);
- line++;
- }
- }
- return AjaxResult.success();
- }
- /**
- * 查询集港业务基础资料
- *
- * @return
- */
- @Override
- public AjaxResult selectBasicInformation() {
- Map<String, Object> map = new HashMap<>();
- TCorps corps = new TCorps();
- String typeValue = "[\"1\"]";
- corps.setfTypeid(typeValue);
- corps.setfStatus("0");
- // 应收 取客户
- map.put("corpList", tCorpsMapper.selectTCorpsListLimit200(corps));
- // 应付 取陆运公司
- TCorps transportation = new TCorps();
- typeValue = "[\"2\"]";
- transportation.setfTypeid(typeValue);
- transportation.setfStatus("0");
- map.put("transportationList", tCorpsMapper.selectTCorpsListLimit200(transportation));
- // 查询箱信息
- TCntr tCntr = new TCntr();
- tCntr.setfStatus("T");
- map.put("cntrList", tCntrMapper.selectRcntrName(tCntr));
- map.put("pierList", sysDictDataMapper.selectDictDataByType("pier"));
- TFees tFees = tFeesMapper.selectTFeesByFName("集港费");
- if (StringUtils.isNull(tFees)) {
- map.put("fees", tFees);
- return AjaxResult.success("未找到集港费用信息,请添加", map);
- }
- List<TFees> feesList = new ArrayList<>();
- feesList.add(tFees);
- map.put("fees", feesList);
- return AjaxResult.success(map);
- }
- /**
- * 集港业务撤销
- *
- * @param fId 主表id
- * @param type
- * @return
- */
- @Override
- @Transactional
- public AjaxResult revokeContainerPort(Long fId, String type) {
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- if (StringUtils.isNull(warehouseBills)) {
- return AjaxResult.error("未找到主表信息,请确认是否存在");
- }
- TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
- warehousebillsfees.setfPid(fId);
- List<TWarehousebillsfees> warehousebillsfeesList = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
- if (StringUtils.isEmpty(warehousebillsfeesList)) {
- return AjaxResult.error("未找到费用信息,请确认是否存在");
- }
- for (TWarehousebillsfees fee : warehousebillsfeesList) {
- if (StringUtils.isNotEmpty(fee.getfStatementNo()) || StringUtils.isNotEmpty(fee.getfStlamountNo())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("费用信息存在已对账或已收费付费操作,无法撤销");
- }
- if ("remove".equals(type)) {
- tWarehousebillsfeesMapper.deleteTWarehousebillsfeesById(fee.getfId());
- } else {
- fee.setfStatus("2");
- fee.setUpdateTime(new Date());
- fee.setUpdateBy(SecurityUtils.getUsername());
- tWarehousebillsfeesMapper.updateTWarehousebillsfees(fee);
- }
- }
- if ("remove".equals(type)) {
- if (warehouseBills.getfBillstatus() != 2L) {
- return AjaxResult.error("主表状态有误,请确认状态是否为暂存状态");
- }
- tWarehouseBillsMapper.deleteTWarehousebillsById(fId);
- return AjaxResult.success();
- } else {
- if (warehouseBills.getfBillstatus() != 6L) {
- return AjaxResult.error("主表状态有误,请确认状态是否已提交");
- }
- }
- warehouseBills.setfBillstatus(2L);
- warehouseBills.setUpdateTime(new Date());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- return AjaxResult.success();
- }
- @Override
- public AjaxResult importCreateCompanyMsg(MultipartFile file) throws Exception {
- List<TWarehousebillsCntritemsExcel> fleetCompanyMsgs = new ArrayList<>();
- InputStream inputStream = null;
- try {
- inputStream = file.getInputStream();
- String originalFilename = file.getOriginalFilename();
- Workbook workbook = null;
- if (originalFilename.endsWith("xls")){
- workbook = WorkbookFactory.create(inputStream);
- }else if (originalFilename.endsWith("xlsx")){
- workbook = new XSSFWorkbook(inputStream);
- }
- Sheet sheet = workbook.getSheetAt(0);
- int line = 0;
- for (Row rows : sheet) {
- line++;
- if (rows.getRowNum() == 0) {
- continue;
- }
- TWarehousebillsCntritemsExcel companyMsg = new TWarehousebillsCntritemsExcel();
- for (int a = 0; a < rows.getPhysicalNumberOfCells(); a++) {
- Cell cell = rows.getCell(a);
- String value = filter(sheet.getRow(0), CellReference.convertNumToColString(cell.getColumnIndex()));
- switch (value) {
- case "箱号":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- return AjaxResult.error("Excel箱信息数据第" + line + "行数据缺少箱号");
- }
- companyMsg.setfCntrno(cell.getStringCellValue());
- break;
- case "铅封号":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- return AjaxResult.error("Excel箱信息数据第" + line + "行数据缺少封号");
- }
- companyMsg.setfSealno(cell.getStringCellValue());
- break;
- case "单箱重(不得超过40)":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- return AjaxResult.error("Excel箱信息数据第" + line + "行数据缺少单箱重");
- }
- companyMsg.setfCntrweight(new BigDecimal(cell.getStringCellValue()));
- break;
- case "货名":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- return AjaxResult.error("Excel箱信息数据第" + line + "行数据缺少货名");
- }
- companyMsg.setGoodsName(cell.getStringCellValue());
- TGoods tGoods = tGoodsMapper.checkUFNnameUnique(companyMsg.getGoodsName());
- if (tGoods != null && tGoods.getfId() != null) {
- companyMsg.setfGoodsid(tGoods.getfId());
- }
- break;
- case "包装类型":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- return AjaxResult.error("Excel箱信息数据第" + line + "行数据缺少包装类型");
- }
- companyMsg.setPackageName(cell.getStringCellValue());
- String fPackageid = sysDictDataMapper.selectDictValue("f_packageid", companyMsg.getPackageName());
- if (StringUtils.isNotEmpty(fPackageid)) {
- companyMsg.setfPackageid(fPackageid);
- }
- break;
- case "箱型":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- return AjaxResult.error("Excel箱信息数据第" + line + "行数据缺少箱型");
- }
- companyMsg.setCntrName(cell.getStringCellValue());
- Long fId = tCntrMapper.selectRcntrFId(companyMsg.getCntrName());
- if (fId != null) {
- companyMsg.setfCntrid(fId);
- }
- break;
- }
- }
- fleetCompanyMsgs.add(companyMsg);
- }
- } catch (IOException e) {
- return AjaxResult.error("上传文件失败,请检查文件是否损坏");
- }
- return AjaxResult.success("success", fleetCompanyMsgs);
- }
- @Override
- @Transactional
- public AjaxResult importCreateCompanyMsgNew(MultipartFile file,LoginUser loginUser,Long fId) throws Exception {
- //查询货物信息
- TWarehousebillsCntr tWarehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrById(fId);
- if (tWarehousebillsCntr == null){
- return AjaxResult.success("error","未找到货物信息");
- }
- //查询集装箱信息
- TCntr tCntr = tCntrMapper.selectTCntrById(tWarehousebillsCntr.getfCntrid());
- List<TTemporaryFile> fleetCompanyMsgs = new ArrayList<>();
- List<String> tCnTrNoList = new ArrayList<>();
- List<String> List = new ArrayList<>();
- InputStream inputStream = null;
- Map<String,Object> map = new HashMap<>();
- String originalFilename;//文件名
- try {
- inputStream = file.getInputStream();
- originalFilename = file.getOriginalFilename();
- Workbook workbook = null;
- if (originalFilename.endsWith("xls")){
- workbook = WorkbookFactory.create(inputStream);
- }else if (originalFilename.endsWith("xlsx")){
- workbook = new XSSFWorkbook(inputStream);
- }
- Sheet sheet = workbook.getSheetAt(0);
- int line = 0;
- //导入之前删除原表里的数据
- tTemporaryFileMapper.deleteTTemporaryFilefileName(originalFilename,loginUser.getUser().getUserName());
- for (Row rows : sheet) {
- line++;
- if (rows.getRowNum() == 0) {
- continue;
- }
- TTemporaryFile companyMsg = new TTemporaryFile();
- companyMsg.setFileName(originalFilename);
- companyMsg.setCreateBy(loginUser.getUser().getUserName());
- companyMsg.setCreateTime(new Date());
- for (int a = 0; a < rows.getPhysicalNumberOfCells(); a++) {
- Cell cell = rows.getCell(a);
- if (cell == null){
- continue;
- }
- String value = filter(sheet.getRow(0), CellReference.convertNumToColString(cell.getColumnIndex()));
- switch (value) {
- case "箱号":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- /*TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("Excel箱信息数据第" + line + "行数据缺少箱号",500);*/
- break;
- }
- companyMsg.setfCntrno(cell.getStringCellValue());
- //判断箱号是否存在
- TCntrno tCntrno = tCntrnoMapper.selectTCnTrNoByfNo(cell.getStringCellValue());
- if (tCntrno == null){
- tCnTrNoList.add(cell.getStringCellValue());
- }
- break;
- case "铅封号":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- /*TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("Excel箱信息数据第" + line + "行数据缺少封号",500);*/
- break;
- }
- companyMsg.setfSealno(cell.getStringCellValue());
- break;
- case "单箱重(不得超过40)":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- /*TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("Excel箱信息数据第" + line + "行数据缺少单箱重",500);*/
- break;
- }
- companyMsg.setfCntrweight(new BigDecimal(cell.getStringCellValue()));
- break;
- case "货名":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- /*TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("Excel箱信息数据第" + line + "行数据缺少货名",500);*/
- break;
- }
- companyMsg.setGoodsName(cell.getStringCellValue());
- /*TGoods tGoods = tGoodsMapper.checkUFNnameUnique(companyMsg.getGoodsName());
- if (tGoods != null && tGoods.getfId() != null) {
- companyMsg.setfGoodsid(tGoods.getfId());
- }*/
- break;
- case "包装类型":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- /*TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("Excel箱信息数据第" + line + "行数据缺少包装类型",500);*/
- break;
- }
- companyMsg.setPackageName(cell.getStringCellValue());
- /*String fPackageid = sysDictDataMapper.selectDictValue("f_packageid", companyMsg.getPackageName());
- if (StringUtils.isNotEmpty(fPackageid)) {
- companyMsg.setfPackageid(fPackageid);
- }*/
- break;
- case "箱型":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isEmpty(cell.getStringCellValue())) {
- /* TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("Excel箱信息数据第" + line + "行数据缺少箱型",500);*/
- break;
- }
- TCntrno cnTrNo = tCntrnoMapper.selectTCnTrNoByfNo(companyMsg.getfCntrno());
- if (cnTrNo != null && cnTrNo.getTypeidName().equals(cell.getStringCellValue())){
- if (tCntr.getfNo().equals(cell.getStringCellValue())){
- companyMsg.setCntrName(cell.getStringCellValue());
- }else {
- List.add(companyMsg.getfCntrno());
- break;
- }
- }else if (cnTrNo != null && !cnTrNo.getTypeidName().equals(cell.getStringCellValue())){
- List.add(companyMsg.getfCntrno());
- break;
- }
- /*Long fId = tCntrMapper.selectRcntrFId(companyMsg.getCntrName());
- if (fId != null) {
- companyMsg.setfCntrid(fId);
- }*/
- break;
- }
- }
- if (StringUtils.isNotEmpty(companyMsg.getfCntrno())){
- tTemporaryFileMapper.insertTTemporaryFile(companyMsg);
- }
- fleetCompanyMsgs.add(companyMsg);
- }
- } catch (IOException e) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("上传文件失败,请检查文件是否损坏");
- }
- if (CollectionUtils.isNotEmpty(tCnTrNoList) || CollectionUtils.isNotEmpty(List)){
- tTemporaryFileMapper.deleteTTemporaryFilefileName(originalFilename,loginUser.getUser().getUserName());
- if (CollectionUtils.isNotEmpty(tCnTrNoList)){
- StringBuffer stringBuffer = new StringBuffer("箱号不存在的有:"+"\n");
- stringBuffer.append(org.apache.commons.lang.StringUtils.join(tCnTrNoList.toArray(), ","));
- map.put("tCnTrNoList",stringBuffer.toString());
- }
- if (CollectionUtils.isNotEmpty(tCnTrNoList) && CollectionUtils.isNotEmpty(List)){
- StringBuffer stringBuffer = new StringBuffer("箱型应为:"+tCntr.getfNo()+",不一致的有"+"\n");
- stringBuffer.append(org.apache.commons.lang.StringUtils.join(List.toArray(), ","));
- map.put("List",stringBuffer.toString());
- }else if (CollectionUtils.isEmpty(tCnTrNoList) && CollectionUtils.isNotEmpty(List)){
- StringBuffer stringBuffer = new StringBuffer("箱型应为:"+tCntr.getfNo()+",不一致的有"+"\n");
- stringBuffer.append(org.apache.commons.lang.StringUtils.join(List.toArray(), ","));
- map.put("List",stringBuffer.toString());
- }
- return AjaxResult.success("error",map);
- }else {
- map.put("total",fleetCompanyMsgs.size());
- map.put("fileName",originalFilename);
- return AjaxResult.success("success", map);
- }
- }
- /**
- * 提交仓库主表审批
- * @param tWarehouseBills 主表信息
- * @param tWarehousebillsfeesCr 付款信息
- * @param tWarehousebillsfeesDr 收款信息
- * @param tWarehousebillsitems 仓储明细
- * @param tEnclosure 附件信息
- * @param tCntr 箱型箱量
- * @param billsType 类型
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult submitWarehousingApproval(String tWarehouseBills, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
- String tWarehousebillsitems, String tEnclosure, String tCntr, String billsType) {
- Long fPid = null;
- boolean isApprove = false;
- SysUser user = SecurityUtils.getLoginUser().getUser();
- Long actId = queryWarehouseActId(billsType);
- if ("SJRK".equals(billsType) || "SJCK".equals(billsType)) {
- SysConfig sysConfig = queryWarehouseConfig(billsType);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- isApprove = true;
- }
- }
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
- if (isApprove) {
- warehouseBills.setWarehouseStatus(4L);
- } else {
- warehouseBills.setWarehouseStatus(6L);
- }
- Long timestamp = DateUtils.getTimestamp(new Date());
- warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
- warehouseBills.setfQty(itemInFo.getfQty());
- warehouseBills.setfNetweight(itemInFo.getfNetweight());
- warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- // 仓库主表
- if (StringUtils.isNull(warehouseBills.getfId())) {
- return AjaxResult.error("请确认仓库信息是否保存");
- }
- fPid = warehouseBills.getfId();
- if (!"SJRK".equals(billsType)) {
- warehouseBills.setfChargedate(warehouseBills.getfBsdate());
- }
- warehouseBills.setfTimes(warehouseBills.getfTimes() + 1);
- warehouseBills.setUpdateTime(new Date());
- warehouseBills.setUpdateBy(user.getUserName());
- tEnclosureMapper.deleteByFPid(fPid);
- tWarehousebillsfeesMapper.deleteByFPid(fPid);
- tWarehousebillsitemsMapper.deleteByFPid(fPid);
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(fPid);
- // 仓储明细
- if (StringUtils.isNotEmpty(tWarehousebillsitems) && !"[]".equals(tWarehousebillsitems)) {
- JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- int line = 0;
- for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
- line++;
- if ("SJRK".equals(billsType) || "SJCK".equals(billsType) || "CKDB".equals(billsType) || "HWTG".equals(billsType)) {
- // 除了入库其他模块不需要更新主表的 仓储费计费日期到明细表,其他模块 应从库存总账把仓储费计费日期 赋给明细表
- if ("SJRK".equals(billsType)) {
- wbItem.setfMblno(warehouseBills.getfMblno());
- wbItem.setfBillingway(warehouseBills.getfBillingway());
- wbItem.setfChargedate(warehouseBills.getfChargedate());
- wbItem.setfOriginalbilldate(warehouseBills.getfBsdate());
- wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
- }
- }
- if (StringUtils.isNull(wbItem.getfChargedate())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + line + "行未找到仓储费计费日期,请确认");
- }
- if (StringUtils.isNull(wbItem.getfBillingway())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + line + "行未找到计费方式,请确认");
- }
- if (StringUtils.isNull(wbItem.getfOriginalbilldate())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + line + "行未找到原始入库日期,请确认");
- }
- wbItem.setfPid(fPid);
- wbItem.setfBilltype(billsType);
- wbItem.setCreateTime(new Date());
- wbItem.setfBillno(warehouseBills.getfBillno());
- wbItem.setCreateBy(user.getUserName());
- tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
- }
- }
- // 箱型数据
- if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
- int cntrLine = 0;
- for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
- cntrLine++;
- if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱型数据第" + cntrLine + "行数据缺少必填数据");
- }
- cntr.setfPid(fPid);
- cntr.setfGoodsid(0L);
- cntr.setfPackageid("0");
- cntr.setCreateTime(new Date());
- cntr.setCreateBy(user.getUserName());
- cntr.setfCntrweight(new BigDecimal(0));
- tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
- }
- }
- if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(fPid);
- wbCr.setfDc("C");
- wbCr.setfBilltype(billsType);
- wbCr.setCreateTime(new Date());
- wbCr.setSrcBillNo(warehouseBills.getfBillno());
- wbCr.setCreateBy(user.getUserName());
- wbCr.setfChargedate(warehouseBills.getfChargedate());
- wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (StringUtils.isNotNull(warehouseBills.getfBsdate())) {
- wbCr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- }
- if (StringUtils.isNotNull(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- wbDr.setfPid(fPid);
- wbDr.setfDc("D");
- wbDr.setfBillstatus(4L);
- wbDr.setfBilltype(billsType);
- wbDr.setCreateTime(new Date());
- wbDr.setSrcBillNo(warehouseBills.getfBillno());
- wbDr.setCreateBy(user.getUserName());
- wbDr.setfChargedate(warehouseBills.getfChargedate());
- wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (StringUtils.isNotNull(warehouseBills.getfBsdate())) {
- wbDr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- }
- if (StringUtils.isNotNull(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonEnclosureArray = JSONArray.parseArray(tEnclosure);
- List<TEnclosure> enclosuresList = JSONObject.parseArray(jsonEnclosureArray.toJSONString(), TEnclosure.class);
- long lineNo = 0L;
- for (TEnclosure enclosure : enclosuresList) {
- lineNo++;
- enclosure.setfPid(fPid);
- enclosure.setfLineno(lineNo);
- enclosure.setCreateTime(new Date());
- enclosure.setCreateBy(user.getUserName());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- // 这里加个判断取系统参数来确定是否需要启用审批流
- if (isApprove) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(fPid);
- auditItems.setActId(actId);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(warehouseBills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(warehouseBills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(warehouseBills.getfBilltype());
- // 存储提单号(提单号)
- auditItems.setRefno3(warehouseBills.getfMblno());
- auditItems.setSendUserId(user.getUserId());
- auditItems.setSendName(user.getUserName());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(user.getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus("warehouse_status");
- auditItems.setTimes(warehouseBills.getfTimes());
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- String code = approvalFlow.get("code").toString();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- }
- return AjaxResult.success();
- }
- /**
- * app仓储新行提交业务
- *
- * @param item 仓库明细数据
- * @param attachs 附件
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult saveWarehouse(String item, String attachs) {
- TWarehousebillsitems warehousebillsitems = JSONArray.parseObject(item, TWarehousebillsitems.class);
- if (StringUtils.isNull(warehousebillsitems.getfPid())) {
- return AjaxResult.error("未找到主表id信息,请确认");
- }
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehousebillsitems.getfPid());
- if (StringUtils.isNotNull(warehousebillsitems.getfGoodsid())) {
- TGoods goods = tGoodsMapper.selectTGoodsById(warehousebillsitems.getfGoodsid());
- if (!warehouseBills.getfProductName().contains(goods.getfName())) {
- warehouseBills.setfProductName(warehouseBills.getfProductName() + "/" + goods.getfName());
- }
- }
- if (StringUtils.isNotNull(warehouseBills.getfMarks())) {
- if (!warehouseBills.getfMarks().contains(warehousebillsitems.getfMarks())) {
- warehouseBills.setfMarks(warehouseBills.getfMarks() + "/" + warehousebillsitems.getfMarks());
- }
- }
- if (!"SJRK".equals(warehouseBills.getfBilltype())) {
- if (!warehouseBills.getfMblno().contains(warehousebillsitems.getfMblno())) {
- warehouseBills.setfMblno(warehouseBills.getfMblno() + "/" + warehousebillsitems.getfMblno());
- }
- }
- Long timestamp = DateUtils.getTimestamp(new Date());
- warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- warehouseBills.setfItemsStatus(1L);
- warehouseBills.setUpdateTime(new Date());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
- warehouseBills.setfQty(itemInFo.getfQty());
- warehouseBills.setfNetweight(itemInFo.getfNetweight());
- warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- warehousebillsitems.setfBillstatus(10L);
- warehousebillsitems.setCreateTime(new Date());
- warehousebillsitems.setCreateBy(SecurityUtils.getUsername());
- tWarehousebillsitemsMapper.insertTWarehousebillsitems(warehousebillsitems);
- tEnclosureMapper.deleteByFPid(warehousebillsitems.getfPid());
- if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
- // 附件添加
- if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
- JSONArray jsonDrArray = JSONArray.parseArray(attachs);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfStatus("2");
- enclosure.setCreateTime(new Date());
- enclosure.setfPid(warehousebillsitems.getfPid());
- enclosure.setCreateBy(SecurityUtils.getUsername());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- }
- return AjaxResult.success();
- }
- /**
- * 查询提单号是否在一天当中出现多次
- *
- * @param tWarehouseBills 仓库数据
- * @return 结果
- */
- @Override
- public AjaxResult selectContainMblno(String tWarehouseBills, String billsType) {
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
- warehouseBills.setfBilltype(billsType);
- String mblno = warehouseBills.getfMblno();
- Date bsdate = warehouseBills.getfBsdate();
- int count = tWarehouseBillsMapper.selectContainMblno(warehouseBills);
- if (count > 1) {
- return AjaxResult.success("提单号:" + mblno + ",日期:" + DateUtils.dateTime(bsdate) + ",出现" + count + "次", false);
- }
- return AjaxResult.success(true);
- }
- @Override
- public List<TWarehouseBills> webVersionOrder(TWarehouseBills tWarehouseBills) {
- List<TWarehouseBills> warehouseBills = tWarehouseBillsMapper.webVersionOrderList(tWarehouseBills);
- if (CollectionUtils.isNotEmpty(warehouseBills)) {
- for (TWarehouseBills warehouseBill : warehouseBills) {
- //货物信息
- TWarehousebillsCntr warehousebillsCntr = new TWarehousebillsCntr();
- warehousebillsCntr.setfPid(warehouseBill.getfId());
- List<TWarehousebillsCntr> tWarehousebillsCntrs = tWarehousebillsCntrMapper.selectTWarehousebillsCntrList(warehousebillsCntr);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrs)) {
- warehouseBill.settWarehousebillsCntrList(tWarehousebillsCntrs);
- }
- //箱信息
- TWarehousebillsCntritems warehousebillsCntritems = new TWarehousebillsCntritems();
- warehousebillsCntritems.setfPid(warehouseBill.getfId());
- List<TWarehousebillsCntritems> tWarehousebillsCntritems = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(warehousebillsCntritems);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntritems)) {
- warehouseBill.settWarehousebillsCntritemsList(tWarehousebillsCntritems);
- }
- //航线信息
- TVoyage tVoyage = tVoyageMapper.selectTVoyageById(warehouseBill.getfVoyid());
- warehouseBill.settVoyageL(tVoyage);
- //应收信息
- List<TWarehousebillsfees> tWarehousebillsfeesDr = tWarehousebillsfeesMapper.selectFeesByPId(warehouseBill.getfId(), "D");
- if (CollectionUtils.isNotEmpty(tWarehousebillsfeesDr)){
- warehouseBill.settWarehousebillsfeesDr(tWarehousebillsfeesDr);
- }
- }
- }
- return warehouseBills;
- }
- @Override
- public List<TWarehouseBills> webVersionOrderMessage(TWarehouseBills tWarehouseBills) {
- return tWarehouseBillsMapper.webVersionOrderList(tWarehouseBills);
- }
- @Override
- public List<Map<String, Object>> ruoYiVersionOrderList(LoginUser loginUser, TWarehouseBills tWarehouseBills) {
- //tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
- return tWarehouseBillsMapper.ruoYiVersionOrderList(tWarehouseBills);
- }
- @Override
- public List<Map<String, Object>> webVersionOrderMessage(LoginUser loginUser, TWarehouseBills tWarehouseBills) {
- TWarehouseBills warehouseBills = new TWarehouseBills();
- if (tWarehouseBills != null) {
- BeanUtil.copyProperties(tWarehouseBills, warehouseBills);
- warehouseBills.setCreateBy(loginUser.getUser().getUserName());
- } else {
- warehouseBills.setCreateBy(loginUser.getUser().getUserName());
- }
- return tWarehouseBillsMapper.ruoYiVersionOrderList1(warehouseBills);
- }
- @Override
- public List<TWarehouseBills> webVersionOrderDetails(TWarehouseBills tWarehouseBills) {
- List<TWarehouseBills> warehouseBills = tWarehouseBillsMapper.webVersionOrderById(tWarehouseBills);
- if (CollectionUtils.isNotEmpty(warehouseBills)) {
- for (TWarehouseBills warehouseBill : warehouseBills) {
- //货物信息
- TWarehousebillsCntr warehousebillsCntr = new TWarehousebillsCntr();
- warehousebillsCntr.setfPid(warehouseBill.getfId());
- List<TWarehousebillsCntr> tWarehousebillsCntrs = tWarehousebillsCntrMapper.selectTWarehousebillsCntrList(warehousebillsCntr);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrs)) {
- warehouseBill.settWarehousebillsCntrList(tWarehousebillsCntrs);
- }
- //配箱信息
- TWarehousebillsCntritems warehousebillsCntritems = new TWarehousebillsCntritems();
- warehousebillsCntritems.setfPid(warehouseBill.getfId());
- List<TWarehousebillsCntritems> tWarehousebillsCntritems = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(warehousebillsCntritems);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntritems)) {
- warehouseBill.settWarehousebillsCntritemsList(tWarehousebillsCntritems);
- }
- //航次信息
- TVoyage tVoyage = tVoyageMapper.selectTVoyageById(warehouseBill.getfVoyid());
- warehouseBill.settVoyageL(tVoyage);
- //应收信息
- List<TWarehousebillsfees> tWarehousebillsfeesDr = tWarehousebillsfeesMapper.selectFeesByPId(warehouseBill.getfId(), "D");
- warehouseBill.settWarehousebillsfeesDr(tWarehousebillsfeesDr);
- //应付信息
- List<TWarehousebillsfees> warehousebillsfeesCr = tWarehousebillsfeesMapper.selectFeesByPId(warehouseBill.getfId(), "C");
- warehouseBill.setWarehousebillsfeesCr(warehousebillsfeesCr);
- if (CollectionUtils.isNotEmpty(tWarehousebillsfeesDr)) {
- warehouseBill.setMoneyStatus(tWarehousebillsfeesDr.get(0).getfBillstatus());
- } else if (CollectionUtils.isNotEmpty(warehousebillsfeesCr)) {
- warehouseBill.setMoneyStatus(warehousebillsfeesCr.get(0).getfBillstatus());
- }
- }
- }
- return warehouseBills;
- }
- @Override
- @Transactional
- public AjaxResult ruoYiUpdateOrderMessage(String tWarehousebills,String tWarehousebillsCntr, String tWarehousebillsCntritems, String tWarehousebillsfeesCr,
- String tWarehousebillsfeesDr, LoginUser loginUser, String billsType) {
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class);
- Map<String, Object> map = new HashMap<>();
- if (StringUtils.isEmpty(warehouseBills.getfMblno())) {
- return AjaxResult.error("提单号不能为空");
- }
- TWarehouseBills mblno = tWarehouseBillsMapper.selectTWarehousebillsfMblno(warehouseBills);
- if (StringUtils.isNotNull(mblno) && !mblno.getfId().equals(warehouseBills.getfId())) {
- return AjaxResult.error("提单号已存在,请重新提交");
- }
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId());
- /* if (tWarehouseBills.getfBillstatus() != 11L) {
- return AjaxResult.error("订单未审核完成,暂不支持维护提单号");
- }*/
- TWarehouseBills bills = new TWarehouseBills();
- /*bills.setfId(warehouseBills.getfId());
- bills.setfMblno(warehouseBills.getfMblno());*/
- Integer integer = tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- if (integer <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("维护提单号失败,请联系管理员");
- }
- List<TWarehouseBills> warehouseBillsList = tWarehouseBillsMapper.webVersionOrderById(warehouseBills);
- map.put("tWarehouseBills", warehouseBillsList.get(0));
- int cntritemsfPid = tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
- if (StringUtils.isNotEmpty(tWarehousebillsCntritems)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntritems);
- List<TWarehousebillsCntritems> tWarehousebillsCntritemsList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntritems.class);
- //获取货物信息
- TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(warehouseBills.getfId());
- if (warehousebillsCntr.getfCntrcount()< tWarehousebillsCntritemsList.size()){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱信息中的箱量大于货物信息中的箱量");
- }
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntritemsList)) {
- for (TWarehousebillsCntritems warehousebillsCntritems : tWarehousebillsCntritemsList) {
- AjaxResult ajaxResult = this.judgeBoxPile(warehousebillsCntritems, warehousebillsCntr.getfCntrid());
- String code = ajaxResult.get("code").toString();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return ajaxResult;
- }
- //先查箱号是否在对应的订单中存在存在不保存
- TWarehousebillsCntritems cntritems = new TWarehousebillsCntritems();
- cntritems.setfPid(warehouseBills.getfId());
- cntritems.setfCntrno(warehousebillsCntritems.getfCntrno());
- List<TWarehousebillsCntritems> list = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(cntritems);
- if (CollectionUtils.isNotEmpty(list)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱号"+warehousebillsCntritems.getfCntrno()+"重复,请修改");
- }
- warehousebillsCntritems.setfPid(warehouseBills.getfId());
- warehousebillsCntritems.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntritems.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntritemsMapper.insertTWarehousebillsCntritems(warehousebillsCntritems);
- }
- }
- map.put("tWarehousebillsCntritemsList", tWarehousebillsCntritemsList);
- }
- TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
- warehousebillsfees.setfPid(warehouseBills.getfId());
- List<TWarehousebillsfees> tWarehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
- if (CollectionUtils.isNotEmpty(tWarehousebillsfees)) {
- Long aLong = tWarehousebillsfees.get(0).getfBillstatus();
- if (aLong == 4L || aLong == 5L) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("订单费用审核中,不支持修改");
- }
- if (aLong == 6L) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("订单费用审核通过,不支持修改");
- }
- }
- int c = tWarehousebillsfeesMapper.deleteFessByFPid(warehouseBills.getfId(), "C");
- if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(warehouseBills.getfId());
- wbCr.setfDc("C");
- wbCr.setfBilltype(billsType);
- wbCr.setCreateTime(new Date());
- wbCr.setSrcBillNo(tWarehouseBills.getfBillno());
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- //wbCr.setfChargedate(warehouseBills.getfChargedate());
- //wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbCr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- map.put("warehousebillsfeesCrList", warehousebillsfeesCrList);
- }
- int d = tWarehousebillsfeesMapper.deleteFessByFPid(warehouseBills.getfId(), "D");
- if (StringUtils.isNotNull(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- wbDr.setfPid(warehouseBills.getfId());
- wbDr.setfDc("D");
- wbDr.setfBilltype(billsType);
- wbDr.setCreateTime(new Date());
- wbDr.setSrcBillNo(tWarehouseBills.getfBillno());
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- //wbDr.setfChargedate(warehouseBills.getfChargedate());
- //wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbDr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- map.put("warehousebillsfeesDrList", warehousebillsfeesDrList);
- }
- int i = tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(warehouseBills.getfId());
- if (StringUtils.isNotEmpty(tWarehousebillsCntr) && !"[]".equals(tWarehousebillsCntr)){
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntr.class);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrList)) {
- for (TWarehousebillsCntr warehousebillsCntr : tWarehousebillsCntrList) {
- warehousebillsCntr.setfPid(warehouseBills.getfId());
- warehousebillsCntr.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntr.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntrMapper.insertTWarehousebillsCntr(warehousebillsCntr);
- }
- }
- map.put("tWarehousebillsCntrList", tWarehousebillsCntrList);
- }
- return AjaxResult.success("success", map);
- }
- @Override
- @Transactional
- public AjaxResult ruoYiSubmitMessage(String tWarehousebills,String tWarehousebillsCntr, String tWarehousebillsCntritems, String tWarehousebillsfeesCr,
- String tWarehousebillsfeesDr, LoginUser loginUser, String billsType) {
- boolean isApprove = false;
- String key = "";
- long actId = 0L;
- Long billStatus = null;
- if ("KHDD".equals(billsType)) {
- actId = 460L;
- key = "warehouse.khSubmitMoney.ApprovalFlow";
- }
- SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- isApprove = true;
- }
- if (isApprove) {
- billStatus = 4L;
- } else {
- billStatus = 6L;
- }
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class);
- Map<String, Object> map = new HashMap<>();
- if (StringUtils.isEmpty(warehouseBills.getfMblno())) {
- return AjaxResult.error("提单号不能为空");
- }
- TWarehouseBills mblno = tWarehouseBillsMapper.selectTWarehousebillsfMblno(warehouseBills);
- if (StringUtils.isNotNull(mblno) && !mblno.getfId().equals(warehouseBills.getfId())) {
- return AjaxResult.error("提单号已存在,请重新提交");
- }
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId());
- if (tWarehouseBills.getfBillstatus() != 11L) {
- return AjaxResult.error("订单未审核完成,暂不支持维护提单号");
- }
- warehouseBills.setfTimes(tWarehouseBills.getfTimes() + 1);
- /*TWarehouseBills bills = new TWarehouseBills();
- bills.setfId(warehouseBills.getfId());
- bills.setfMblno(warehouseBills.getfMblno());*/
- Integer integer = tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- map.put("tWarehouseBills", tWarehouseBills);
- if (StringUtils.isNotEmpty(tWarehousebillsCntritems)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntritems);
- List<TWarehousebillsCntritems> tWarehousebillsCntritemsList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntritems.class);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntritemsList)) {
- int cntritemsfPid = tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
- for (TWarehousebillsCntritems warehousebillsCntritems : tWarehousebillsCntritemsList) {
- warehousebillsCntritems.setfPid(warehouseBills.getfId());
- warehousebillsCntritems.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntritems.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntritemsMapper.insertTWarehousebillsCntritems(warehousebillsCntritems);
- }
- }
- map.put("tWarehousebillsCntritemsList", tWarehousebillsCntritemsList);
- }
- int c = tWarehousebillsfeesMapper.deleteFessByFPid(warehouseBills.getfId(), "C");
- if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(warehouseBills.getfId());
- wbCr.setfDc("C");
- wbCr.setfBilltype(billsType);
- wbCr.setfBillstatus(billStatus);
- wbCr.setCreateTime(new Date());
- wbCr.setSrcBillNo(tWarehouseBills.getfBillno());
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- //wbCr.setfChargedate(warehouseBills.getfChargedate());
- //wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbCr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- map.put("warehousebillsfeesCrList", warehousebillsfeesCrList);
- }
- int d = tWarehousebillsfeesMapper.deleteFessByFPid(warehouseBills.getfId(), "D");
- if (StringUtils.isNotNull(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- wbDr.setfPid(warehouseBills.getfId());
- wbDr.setfDc("D");
- wbDr.setfBillstatus(billStatus);
- wbDr.setfBilltype(billsType);
- wbDr.setCreateTime(new Date());
- wbDr.setSrcBillNo(tWarehouseBills.getfBillno());
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- //wbDr.setfChargedate(warehouseBills.getfChargedate());
- //wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
- if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
- wbDr.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- map.put("warehousebillsfeesDrList", warehousebillsfeesDrList);
- }
- if (StringUtils.isNotEmpty(tWarehousebillsCntr) && !"[]".equals(tWarehousebillsCntr)){
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntr.class);
- if (CollectionUtils.isNotEmpty(tWarehousebillsCntrList)) {
- int i = tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(warehouseBills.getfId());
- for (TWarehousebillsCntr warehousebillsCntr : tWarehousebillsCntrList) {
- warehousebillsCntr.setfPid(warehouseBills.getfId());
- warehousebillsCntr.setCreateTime(DateUtils.getNowDate());
- warehousebillsCntr.setCreateBy(SecurityUtils.getUsername());
- int cntr = tWarehousebillsCntrMapper.insertTWarehousebillsCntr(warehousebillsCntr);
- }
- }
- map.put("tWarehousebillsCntrList", tWarehousebillsCntrList);
- }
- if (isApprove) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(warehouseBills.getfId());
- auditItems.setActId(actId);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(tWarehouseBills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(tWarehouseBills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(tWarehouseBills.getfBilltype());
- // 存储提单号(提单号)
- auditItems.setRefno3(tWarehouseBills.getfMblno());
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(SecurityUtils.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus("f_billstatus");
- auditItems.setTimes(1L);
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- // Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- }
- return AjaxResult.success("success", map);
- }
- @Override
- public AjaxResult updateOrderMessage(TWarehouseBills tWarehouseBills) {
- TWarehouseBills mblno = tWarehouseBillsMapper.selectTWarehousebillsfMblno(tWarehouseBills);
- if (StringUtils.isNotNull(mblno) && !mblno.getfId().equals(tWarehouseBills.getfId())) {
- return AjaxResult.error("提单号已存在,请重新提交");
- }
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(tWarehouseBills.getfId());
- if (warehouseBills.getfBillstatus() != 6L) {
- return AjaxResult.error("下单未审核完成,暂不支持维护提单号");
- }
- int i = tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- if (i <= 0) {
- return AjaxResult.error("更新提单号出错,请找管理员");
- }
- return AjaxResult.success();
- }
- /**
- * app 查询业务主表信息
- *
- * @param warehouseBills
- * @return
- */
- @Override
- public List<Map<String, Object>> selectAppStockList(TWarehouseBills warehouseBills) {
- return tWarehouseBillsMapper.selectAppStockList(warehouseBills);
- }
- /**
- * app 根据主表id查询主表对应明细列表数据
- *
- * @param warehouseBills
- * @return
- */
- @Override
- public List<Map<String, Object>> warehouseItemById(TWarehouseBills warehouseBills) {
- return tWarehouseBillsMapper.selectWarehouseItemListById(warehouseBills);
- }
- /**
- * app 根据明细id查询对应明细表数据
- *
- * @param fId
- * @return
- */
- @Override
- public AjaxResult selectWarehouseItemDataById(Long fId) {
- Map<String, Object> map = new HashMap<>();
- Map<String, Object> itemMap = tWarehousebillsitemsMapper.selectWarehouseItemsByPId(fId);
- if (StringUtils.isNull(itemMap) || !itemMap.containsKey("fPid")) {
- return AjaxResult.error("未找到库存明细数据,请确认该明细是否存在");
- }
- map.put("item", itemMap);
- if (itemMap.containsKey("fPid") && StringUtils.isNotNull(itemMap.get("fPid"))) {
- long fPid = Long.valueOf(String.valueOf(itemMap.get("fPid")));
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fPid);
- map.put("warehouseBills", tWarehouseBills);
- // 查询附件
- map.put("enclosure", tEnclosureMapper.selectTEnclosureByPId(tWarehouseBills.getfId()));
- }
- return AjaxResult.success(map);
- }
- /**
- * 查询app 添加新行 必要的基础资料
- *
- * @param fId
- * @return
- */
- @Override
- public AjaxResult getAppBasicInformation(Long fId) {
- Map<String, Object> map = new HashMap<>();
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- map.put("warehouseBills", tWarehouseBills);
- if (StringUtils.isNotNull(tWarehouseBills.getfLabour())) {
- TCorps corps = tCorpsMapper.selectTCorpsById(tWarehouseBills.getfLabour());
- if (StringUtils.isNotNull(corps)) {
- map.put("labourName", corps.getfName());
- }
- }
- if (StringUtils.isNotNull(tWarehouseBills.getfFleet())) {
- TCorps corps = tCorpsMapper.selectTCorpsById(tWarehouseBills.getfFleet());
- if (StringUtils.isNotNull(corps)) {
- map.put("fleetName", corps.getfName());
- }
- }
- if (StringUtils.isNotNull(tWarehouseBills.getfGoodsid())) {
- TGoods goods = tGoodsMapper.selectTGoodsById(tWarehouseBills.getfGoodsid());
- if (StringUtils.isNotNull(goods)) {
- map.put("goodsName", goods.getfName());
- }
- }
- // 查询劳务公司
- TCorps corps = new TCorps();
- corps.setfTypeid("\"6\"");
- corps.setfStatus("0");
- map.put("corpsList", tCorpsMapper.selectTCorpsList(corps));
- // 查询车队
- TCorps fleetCorp = new TCorps();
- corps.setfTypeid("\"2\"");
- fleetCorp.setfStatus("0");
- map.put("feelCorpList", tCorpsMapper.selectTCorpsList(fleetCorp));
- // 查询商品品名
- TGoods goods = new TGoods();
- goods.setfStatus("0");
- map.put("goodsList", tGoodsMapper.selectTGoodsList(goods));
- // 查询库区
- TWarehouse tWarehouse = new TWarehouse();
- tWarehouse.setAncestors(tWarehouseBills.getfWarehouseid() + "");
- List<TWarehouse> warehouses = tWarehouseMapper.selectTWarehouseList(tWarehouse);
- if (StringUtils.isNotEmpty(warehouses)) {
- map.put("warehouse", warehouseServiceImpl.buildDeptTreeSelect(warehouses));
- }
- map.put("attributes", sysDictDataMapper.selectDictDataByType("storage_type"));
- // 查询箱型数据
- TCntr tCntr = new TCntr();
- tCntr.setfStatus("T");
- map.put("cntrList", tCntrMapper.selectTCntrList(tCntr));
- return AjaxResult.success(map);
- }
- /**
- * app确认入库、出库、货转
- *
- * @param item 明细数据
- * @param attachs 附件数据
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult warehouseOperationConfirmation(String item, String attachs) {
- LoginUser loginUser = SecurityUtils.getLoginUser();
- TWarehousebillsitems tWarehousebillsitems = JSONArray.parseObject(item, TWarehousebillsitems.class);
- if (StringUtils.isNull(tWarehousebillsitems.getfId()) || StringUtils.isNull(tWarehousebillsitems.getfPid())) {
- return AjaxResult.error("未找到仓库明细id,或未找到上级id,请确认");
- }
- // 查询主表
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(tWarehousebillsitems.getfPid());
- if (StringUtils.isNull(warehouseBills.getfBsdate())) {
- return AjaxResult.error("库存明细请检查日期,操作终止");
- }
- if (StringUtils.isNull(warehouseBills.getfCorpid())) {
- return AjaxResult.error("库存明细请检查客户信息,操作终止");
- }
- warehouseBills.setfItemsStatus(4L);
- warehouseBills.setUpdateTime(new Date());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- Long timestamp = DateUtils.getTimestamp(new Date());
- warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- // 查询最新明细表
- TWarehousebillsitems warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(tWarehousebillsitems.getfId());
- String billsType = warehousebillsitems.getfBilltype();
- if ("SJRK".equals(billsType) && "0".equals(warehouseBills.getfChargetype()) && tWarehousebillsitems.getBsdate() != null ){
- boolean fchargedate = this.getFchargedate(warehousebillsitems.getfPid(), tWarehousebillsitems.getBsdate());
- if (fchargedate == false){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("入库日期不能小于最小仓储费计算日期");
- }
- }
- Date time = new Date();
- if (StringUtils.isNotEmpty(warehouseBills.getfChargetype()) && "0".equals(warehouseBills.getfChargetype())) {
- time = tWarehousebillsitemsMapper.selecMinBsDateByFPid(tWarehousebillsitems.getfPid());
- if (tWarehousebillsitems.getBsdate() !=null){
- tWarehousebillsitems.setfBsdate(tWarehousebillsitems.getBsdate());
- }
- }else if (StringUtils.isNotEmpty(warehouseBills.getfChargetype()) && "1".equals(warehouseBills.getfChargetype())){
- if (tWarehousebillsitems.getBsdate()!= null){
- time = tWarehousebillsitems.getBsdate();
- tWarehousebillsitems.setfBsdate(tWarehousebillsitems.getBsdate());
- }else {
- time = warehousebillsitems.getfBsdate();
- }
- }
- tWarehousebillsitems.setfChargedate(time);//仓储费计算日期
- if (StringUtils.isNull(warehousebillsitems) || warehousebillsitems.getfBillstatus() != 30L) {
- return AjaxResult.error("请确认是该明细数据是否存在,或该明细数据状态异常");
- }
- TGoods goods = tGoodsMapper.selectTGoodsById(warehousebillsitems.getfGoodsid());
- if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(warehousebillsitems.getfCntrno())) {
- return AjaxResult.error("仓库明细第未找到箱号");
- }
- if ("SJRK".equals(billsType)) {
- tWarehousebillsitems.setfOriginalbilldate(warehousebillsitems.getfBsdate());//入库时间
- warehousebillsitems.setfOriginalbilldate(warehousebillsitems.getfBsdate());
- // 查询库容量 是否可入库
- int m = calculation(warehouseBills.getfWarehouseid(), warehousebillsitems.getfGrossweight());
- if (m == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存总账失败-->入库毛重大于库容");
- }
- TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno());
- if (StringUtils.isNotNull(tWhgenle)) {
- int i = updateTWhgenlegData(tWarehousebillsitems, tWhgenle.getfId(), billsType);
- if (i <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存总账失败");
- }
- } else {
- warehousebillsitems.setfQty(tWarehousebillsitems.getfQty());
- warehousebillsitems.setfGrossweight(tWarehousebillsitems.getfGrossweight());
- warehousebillsitems.setfNetweight(tWarehousebillsitems.getfNetweight());
- warehousebillsitems.setfStevedore(tWarehousebillsitems.getfStevedore());
- warehousebillsitems.setRemark(tWarehousebillsitems.getRemark());
- warehousebillsitems.setfWarehouselocid(tWarehousebillsitems.getfWarehouselocid());
- if (instalTWhgenleg(warehouseBills, warehousebillsitems, loginUser.getUser()) <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("新增库存总账失败");
- }
- }
- tWarehousebillsitems.setfIsInventory(0L);
- tWarehousebillsitems.setfSerialNumber(warehousebillsitems.getfSerialNumber());
- if (StringUtils.isNotNull(tWarehousebillsitems.getfId())) {
- tWarehousebillsitems.setfBillstatus(40L);
- tWarehousebillsitems.setUpdateTime(new Date());
- tWarehousebillsitems.setUpdateBy(SecurityUtils.getUsername());
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
- // 添加状态log
- insertTWarehousebillsLog(tWarehousebillsitems, 40L, loginUser);
- }
- } else if ("SJCK".equals(billsType)) {
- // 查询总账是否存在
- TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno());
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细库存为空");
- }
- // 库存 < 出库件数
- if (tWhgenle.getfQtyblc() < tWarehousebillsitems.getfQty()) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细库存不足");
- }
- tWarehousebillsitems.setfVolumn(warehousebillsitems.getfVolumn());
- // 跟新库存总账
- updateTWhgenlegData(tWarehousebillsitems, tWhgenle.getfId(), billsType);
- tWarehousebillsitems.setfBillstatus(40L);
- tWarehousebillsitems.setUpdateTime(new Date());
- tWarehousebillsitems.setfPid(warehouseBills.getfId());
- if (tWarehousebillsitems.getBsdate() != null){
- tWarehousebillsitems.setfBsdate(tWarehousebillsitems.getBsdate());
- }else {
- tWarehousebillsitems.setfBsdate(warehouseBills.getfBsdate());
- }
- tWarehousebillsitems.setfBillno(warehouseBills.getfBillno());
- tWarehousebillsitems.setUpdateBy(loginUser.getUser().getUserName());
- tWarehousebillsitems.setfSerialNumber(warehousebillsitems.getfSerialNumber());
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
- // 添加状态log
- insertTWarehousebillsLog(tWarehousebillsitems, 40L, loginUser);
- }
- tEnclosureMapper.deleteByFPid(warehouseBills.getfId());
- // 附件添加
- if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
- JSONArray jsonDrArray = JSONArray.parseArray(attachs);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfStatus("6");
- enclosure.setCreateTime(new Date());
- enclosure.setfPid(warehouseBills.getfId());
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
- warehouseBills.setfQty(itemInFo.getfQty());
- warehouseBills.setfNetweight(itemInFo.getfNetweight());
- warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- return AjaxResult.success();
- }
- /**
- * app查询入库数量
- */
- @Override
- public List<Map<String, Object>> selectWarehouseBusinessInStockList(TWarehousebillsitems tWarehousebillsitems) {
- List<Map<String, Object>> mapList = null;
- if (tWarehousebillsitems.getfBilltype().equals("SJRK")) {
- mapList = tWarehousebillsitemsMapper.selectWarehouseBusinesInList(tWarehousebillsitems);
- } else {
- mapList = tWarehousebillsitemsMapper.selectWarehouseBusinesOutList(tWarehousebillsitems);
- }
- if (StringUtils.isNotEmpty(mapList)) {
- for (Map<String, Object> map : mapList) {
- Long fId = Long.valueOf(String.valueOf(map.get("fPid")));
- TEnclosure enclosure = new TEnclosure();
- enclosure.setfPid(fId);
- map.put("enclosure", tEnclosureMapper.selectWarehouseAccessoriesList(enclosure));
- }
- }
- return mapList;
- }
- /**
- * 叫车进场
- *
- * @param item 明细数据
- * @param attachs 附件
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult addCreditItems(String item, String attachs) {
- TWarehousebillsitems tWarehousebillsitems = JSONArray.parseObject(item, TWarehousebillsitems.class);
- if (StringUtils.isNull(tWarehousebillsitems.getfId())) {
- return AjaxResult.error("未找到仓库明细id,请确认");
- }
- TWarehousebillsitems warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(tWarehousebillsitems.getfId());
- if (StringUtils.isNull(warehousebillsitems)) {
- return AjaxResult.error("未找到该条明细数据,请确认明细数据是否存在");
- }
- if (StringUtils.isNull(warehousebillsitems.getfBillstatus())) {
- return AjaxResult.error("未找到仓库明细状态信息,请确认");
- }
- if (warehousebillsitems.getfBillstatus() > 20L) {
- return AjaxResult.error("该仓库明细状态异常,请确认状态信息");
- }
- TWarehouseBills bills = tWarehouseBillsMapper.selectTWarehousebillsById(warehousebillsitems.getfPid());
- if (tWarehousebillsitems.getBsdate() != null && "0".equals(bills.getfChargetype())){
- boolean fchargedate = this.getFchargedate(warehousebillsitems.getfPid(), tWarehousebillsitems.getBsdate());
- if (fchargedate == false){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("入库日期不能小于最小仓储费计算日期");
- }
- }
- Date time = new Date();
- if (StringUtils.isNotEmpty(bills.getfChargetype()) && "0".equals(bills.getfChargetype())) {
- time = tWarehousebillsitemsMapper.selecMinBsDateByFPid(tWarehousebillsitems.getfPid());
- tWarehousebillsitems.setfChargedate(time);
- if (tWarehousebillsitems.getBsdate() != null){
- tWarehousebillsitems.setfBsdate(tWarehousebillsitems.getBsdate());
- }
- }else if (StringUtils.isNotEmpty(bills.getfChargetype()) && "1".equals(bills.getfChargetype())){
- if (tWarehousebillsitems.getBsdate()!= null){
- time = tWarehousebillsitems.getBsdate();
- tWarehousebillsitems.setfBsdate(tWarehousebillsitems.getBsdate());
- }else {
- time = warehousebillsitems.getfBsdate();
- }
- tWarehousebillsitems.setfChargedate(time);
- }
- tWarehousebillsitems.setfBillstatus(30L);
- tWarehousebillsitems.setUpdateTime(new Date());
- tWarehousebillsitems.setUpdateBy(SecurityUtils.getUsername());
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
- // 更新主表明细状态
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(warehousebillsitems.getfPid());
- if (StringUtils.isNotNull(warehousebillsitems.getfGoodsid())) {
- TGoods goods = tGoodsMapper.selectTGoodsById(warehousebillsitems.getfGoodsid());
- if (!warehouseBills.getfProductName().contains(goods.getfName())) {
- warehouseBills.setfProductName(warehouseBills.getfProductName() + "/" + goods.getfName());
- }
- }
- if (StringUtils.isNotNull(warehouseBills.getfMarks())) {
- if (!warehouseBills.getfMarks().contains(warehousebillsitems.getfMarks())) {
- warehouseBills.setfMarks(warehouseBills.getfMarks() + "/" + warehousebillsitems.getfMarks());
- }
- }
- if (!"SJRK".equals(warehouseBills.getfBilltype())) {
- if (!warehouseBills.getfMblno().contains(warehousebillsitems.getfMblno())) {
- warehouseBills.setfMblno(warehouseBills.getfMblno() + "/" + warehousebillsitems.getfMblno());
- }
- }
- warehouseBills.setfItemsStatus(3L);
- warehouseBills.setUpdateTime(new Date());
- Long timestamp = DateUtils.getTimestamp(new Date());
- warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(warehouseBills.getfId());
- warehouseBills.setfQty(itemInFo.getfQty());
- warehouseBills.setfNetweight(itemInFo.getfNetweight());
- warehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- tEnclosureMapper.deleteByFPid(warehouseBills.getfId());
- // 附件添加
- if (StringUtils.isNotEmpty(attachs) && !"[]".equals(attachs)) {
- JSONArray jsonDrArray = JSONArray.parseArray(attachs);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfStatus("6");
- enclosure.setCreateTime(new Date());
- enclosure.setfPid(warehouseBills.getfId());
- enclosure.setCreateBy(SecurityUtils.getUsername());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- return AjaxResult.success();
- }
- @Override
- public List<InStock> inStockExport(TWarehouseBills tWarehousebills) throws Exception {
- List<Map<String, Object>> list = tWarehouseBillsMapper.selectWarehouseBusinessList(tWarehousebills);
- List<InStock> list1 = ListMapToBeanUtils.castMapToBean(list, InStock.class);
- return list1;
- }
- @Override
- public List<OutStock> outStockExport(TWarehouseBills tWarehousebills) throws Exception {
- List<Map<String, Object>> list = tWarehouseBillsMapper.selectWarehouseBusinessList(tWarehousebills);
- List<OutStock> list1 = ListMapToBeanUtils.castMapToBean(list, OutStock.class);
- return list1;
- }
- @Override
- public List<StockTransfer> stockTransferExport(TWarehouseBills tWarehousebills) throws Exception {
- List<Map<String, Object>> list = tWarehouseBillsMapper.selectWarehouseBusinessList(tWarehousebills);
- List<StockTransfer> list1 = ListMapToBeanUtils.castMapToBean(list, StockTransfer.class);
- return list1;
- }
- @Override
- public List<GoodsTransfer> goodsTransferExport(TWarehouseBills tWarehousebills) throws Exception {
- List<Map<String, Object>> list = tWarehouseBillsMapper.selectWarehouseBusinessList1(tWarehousebills);
- List<GoodsTransfer> list1 = ListMapToBeanUtils.castMapToBean(list, GoodsTransfer.class);
- return list1;
- }
- @Override
- public List<StorageFee> storageFeeExport(TWarehouseBills tWarehousebills) throws Exception {
- List<Map<String, Object>> list = tWarehouseBillsMapper.selectWarehouseBusinessList1(tWarehousebills);
- List<StorageFee> list1 = ListMapToBeanUtils.castMapToBean(list, StorageFee.class);
- return list1;
- }
- /**
- * 根据仓库主表id 更新对应明细表状态
- *
- * @param fPid 仓库主表id
- * @return 结果
- */
- @Transactional
- public AjaxResult warehouseFollow(Long fPid, long fettle) {
- if (StringUtils.isNull(fPid)) {
- return AjaxResult.error("仓库更新状态未找到主表信息,请与管理员联系");
- }
- try {
- tWarehouseBillsMapper.warehouseFollowUpdate(fPid, fettle, new Date());
- tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(fPid, fettle, new Date());
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fPid);
- if ("SJRK".equals(tWarehouseBills.getfBilltype()) || "SJCK".equals(tWarehouseBills.getfBilltype())) {
- fettle = 40L;
- }
- tWarehousebillsitemsMapper.warehouseItemFollowUpdate(fPid, fettle);
- } catch (Exception e) {
- return AjaxResult.error("更新库存费用状态失败,请联系管理员");
- }
- return AjaxResult.success();
- }
- /**
- * 根据仓库主表id 更新对应明细表状态
- *
- * @param fPid 仓库主表id
- * @return 结果
- */
- @Transactional
- public AjaxResult storageFeeFollow(Long fPid, long fettle) {
- if (StringUtils.isNull(fPid)) {
- return AjaxResult.error("仓库更新状态未找到主表信息,请与管理员联系");
- }
- int warehouseUpdateResult = tWarehouseBillsMapper.warehouseFollowUpdate(fPid, fettle, new Date());
- if (warehouseUpdateResult <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存明细状态失败,请联系管理员");
- }
- TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
- warehousebillsfees.setfPid(fPid);
- List<TWarehousebillsfees> warehousebillsfeesList = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
- for (TWarehousebillsfees wareItem : warehousebillsfeesList) {
- if (StringUtils.isNull(wareItem.getSrcId())) {
- continue;
- }
- if ("KCZZ".equals(wareItem.getfBilltype())) {
- TWhgenleg tWhgenleg = tWhgenlegMapper.selectTWhgenlegById(wareItem.getSrcId());
- tWhgenleg.setfChargedate(DateUtils.dateAdd(wareItem.getfBillingDeadline(), 1));
- int i = tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
- if (i <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存费用状态失败,请联系管理员");
- }
- } else {
- TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wareItem.getSrcId());
- tWarehousebillsitems.setfChargedate(DateUtils.dateAdd(wareItem.getfBillingDeadline(), 1));
- if ("SJCK".equals(wareItem.getfBilltype())) {
- tWarehousebillsitems.setfStorageFeeDeadline(wareItem.getfBillingDeadline());
- }
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
- }
- }
- int feesUpdateResult = tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(fPid, fettle, new Date());
- if (feesUpdateResult <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存费用状态失败,请联系管理员");
- }
- return AjaxResult.success();
- }
- /**
- * 入库确认
- *
- * @param warehouseBills 主表
- * @param warehousebillsitems 明细
- * @param loginUser 当前登录人
- * @param billsType 状态
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult addCredit(String warehouseBills, String warehousebillsitems, String tEnclosure, String warehousebillsfeesCr,
- String warehousebillsfeesDr, LoginUser loginUser, String tCntr, String billsType) {
- Map<String, Object> map = new HashMap<>();
- if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
- return AjaxResult.error("未找到主表信息");
- }
- if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
- return AjaxResult.error("未找到入账信息");
- }
- TWarehouseBills tWarehouseBills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
- tEnclosureMapper.deleteByFPid(tWarehouseBills.getfId());
- tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(tWarehouseBills.getfId());
- boolean businessStatus = "场地直装".equals(tWarehouseBills.getfBusinessType());
- JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- Date time = new Date();
- if ("0".equals(tWarehouseBills.getfChargetype())) {
- time = tWarehousebillsitemsMapper.selecMinBsDateByFPid(tWarehouseBills.getfId());
- }
- int i = 1;
- for (TWarehousebillsitems item : warehousebillsitemsList) {
- // 查询是否可以修改
- TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
- if (tWarehousebillsitems.getfBillstatus() == 40) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存明细第" + i + "行失败,已处理,请刷新网页");
- }
- if (StringUtils.isNull(item.getfWarehouselocid())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行未找到库区");
- }
- if (!businessStatus) {
- // 查询库容量 是否可入库
- int m = calculation(tWarehouseBills.getfWarehouseid(), item.getfGrossweight());
- if (m == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存总账失败-->入库毛重大于库容");
- }
- item.setfOriginalbilldate(item.getfBsdate());
- item.setfBillingway(tWarehouseBills.getfBillingway());
- if ("1".equals(tWarehouseBills.getfChargetype())) {
- time = item.getfBsdate();
- }
- item.setfChargedate(time);
- TGoods goods = tGoodsMapper.selectTGoodsById(item.getfGoodsid());
- if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(item.getfCntrno())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("仓库明细第"+i+"行未找到箱号");
- }
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item, goods.getIfCntrno());
- //复制报关单号和备注
- if ("SJRK".equals(billsType)){
- if (StringUtils.isNotEmpty(tWarehouseBills.getfCustomno())){
- item.setfCustomno(tWarehouseBills.getfCustomno());
- }
- if (StringUtils.isNotEmpty(tWarehouseBills.getRemark())){
- item.setRemark(tWarehouseBills.getRemark());
- }
- }
- if (StringUtils.isNotNull(tWhgenle)) {
- int i1 = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
- if (i1 <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存总账失败");
- }
- } else {
- if (instalTWhgenleg(tWarehouseBills, item, loginUser.getUser()) <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("新增库存总账失败");
- }
- }
- item.setfIsInventory(0L);
- } else {
- item.setfIsInventory(1L);
- }
- int num = 0;
- if (StringUtils.isNotNull(item.getfId())) {
- item.setfBillstatus(40L);
- item.setUpdateBy(loginUser.getUser().getUserName());
- item.setUpdateTime(new Date());
- if ("SJRK".equals(billsType)) {
- item.setfMblno(tWarehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
- }
- num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
- // 添加状态log
- insertTWarehousebillsLog(item, 40L, loginUser);
- }
- if (num <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("新增库存明细失败");
- }
- i++;
- }
- // 箱型数据
- if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
- int line = 0;
- for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
- line++;
- if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱型数据第" + line + "行数据缺少必填数据");
- }
- cntr.setfPid(tWarehouseBills.getfId());
- cntr.setfGoodsid(0L);
- cntr.setfPackageid("0");
- cntr.setfCntrweight(new BigDecimal(0));
- cntr.setCreateBy(loginUser.getUser().getUserName());
- cntr.setCreateTime(new Date());
- tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
- }
- }
- // 附件添加
- if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfPid(tWarehouseBills.getfId());
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- enclosure.setCreateTime(new Date());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- // 收款明细添加
- if (StringUtils.isNotEmpty(warehousebillsfeesDr) && !"[]".equals(warehousebillsfeesDr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(warehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- wbDr.setfPid(tWarehouseBills.getfId());
- wbDr.setfDc("D");
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- wbDr.setCreateTime(new Date());
- if (tWarehouseBills.getfBsdate() != null && !tWarehouseBills.getfBsdate().equals("")) {
- wbDr.setfBsdate(tWarehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- }
- // 付款明细添加
- if (StringUtils.isNotNull(warehousebillsfeesCr) && !"[]".equals(warehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(warehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(tWarehouseBills.getfId());
- wbCr.setfDc("C");
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- wbCr.setCreateTime(new Date());
- if (tWarehouseBills.getfBsdate() != null && !tWarehouseBills.getfBsdate().equals("")) {
- wbCr.setfBsdate(tWarehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- }
- //最后更新仓库主表
- tWarehouseBills.setfItemsStatus(4L);
- tWarehouseBills.setfBilltype(billsType);
- tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setUpdateTime(new Date());
- Long timestamp = DateUtils.getTimestamp(new Date());
- tWarehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(tWarehouseBills.getfId());
- tWarehouseBills.setfQty(itemInFo.getfQty());
- tWarehouseBills.setfNetweight(itemInFo.getfNetweight());
- tWarehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- map.put("fDateChanged", tWarehouseBills.getfDateChanged());
- map.put("warehousebills", tWarehouseBills);
- map.put("warehousebillsitems", warehousebillsitemsList);
- return AjaxResult.success("成功", map);
- }
- /**
- * 入库明细提交审批确认
- *
- * 待完善!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- */
- @Override
- @Transactional
- public AjaxResult addDetails(Long fId, String billsType,LoginUser loginUser) {
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- if (StringUtils.isNull(tWarehouseBills)) {
- return AjaxResult.error("未找到仓储信息,请确认是否存在");
- }
- List<TWarehousebillsitems> warehousebillsitemsList = tWarehousebillsitemsMapper.selectItemsStatusByPid(fId);
- if (StringUtils.isEmpty(warehousebillsitemsList)) {
- return AjaxResult.error("未找到仓储库存明细信息,请确认是否存在");
- }
- if (tWarehouseBills.getfItemstatus().longValue() == 4L
- || tWarehouseBills.getfItemstatus().longValue() == 5L
- || tWarehouseBills.getfItemstatus().longValue() == 6L){
- return AjaxResult.error("该单明细已提交审核,请勿重复提交");
- }
- for (TWarehousebillsitems item : warehousebillsitemsList) {
- if (item.getfBillstatus() != 40L || item.getfBillstatus() == 50L) {
- return AjaxResult.error("库存明细中存在审核中数据,无法再次提交请核");
- }
- }
- boolean isApprove;
- long itemStatus = 6L;
- Long actId = 0L;
- String key = null;
- if (billsType.equals("SJRKITEM")){
- actId = 170L;
- }else if (billsType.equals("SJCKITEM")){
- actId = 180L;
- }
- SysConfig sysConfig = queryWarehouseConfig(billsType);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- isApprove = true;
- itemStatus = 4L;
- tWarehouseBills.setfItemstatus(itemStatus);
- tWarehouseBills.setUpdateTime(new Date());
- tWarehouseBills.setUpdateBy(SecurityUtils.getUsername());
- } else {
- tWarehouseBills.setfItemstatus(itemStatus);
- tWarehouseBills.setUpdateTime(new Date());
- tWarehouseBills.setUpdateBy(SecurityUtils.getUsername());
- }
- tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- for (TWarehousebillsitems item : warehousebillsitemsList) {
- item.setUpdateTime(new Date());
- item.setUpdateBy(SecurityUtils.getUsername());
- item.setfItemstatus(itemStatus);
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(tWarehouseBills.getfId());
- auditItems.setActId(actId);//暂定
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(tWarehouseBills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(tWarehouseBills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(billsType);
- // 存储提单号(提单号)
- auditItems.setRefno3(tWarehouseBills.getfMblno());
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(SecurityUtils.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus("f_itemstatus");
- auditItems.setTimes(tWarehouseBills.getfTimes());
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- // Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- }
- return AjaxResult.success();
- }
- /**
- * 出库、调拨、货转 确认
- *
- * @param warehouseBills
- * @param warehousebillsitems
- * @param loginUser
- * @param billsType
- * @return
- */
- @Override
- @Transactional
- public AjaxResult updateCredit(String warehouseBills, String warehousebillsitems, String tEnclosure, String warehousebillsfeesCr,
- String warehousebillsfeesDr, LoginUser loginUser, String tCntr, String billsType) {
- Long fPid = null;
- Map<String, Object> map = new HashMap<>();
- TWarehouseBills tWarehouseBills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
- tWarehouseBills.setfItemsStatus(4L);
- Long timestamp = DateUtils.getTimestamp(new Date());
- tWarehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setUpdateTime(new Date());
- fPid = tWarehouseBills.getfId();
- tEnclosureMapper.deleteByFPid(fPid);
- tWarehousebillsfeesMapper.deleteByFPid(fPid);
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(fPid);
- JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- int i = 1;
- List<TFees> feesList = new ArrayList<>();
- List<TWarehousebillsfees> warehousebillsfees = new ArrayList<>();
- for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
- // 查询是否可以修改
- TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wbItem.getfId());
- if (tWarehousebillsitems.getfBillstatus() == 40) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存明细第" + i + "行失败,已处理,请刷新网页");
- }
- if (StringUtils.isNull(wbItem.getfWarehouselocid())) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行,未找到仓库信息");
- }
- TGoods goods = tGoodsMapper.selectTGoodsById(wbItem.getfGoodsid());
- if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(wbItem.getfCntrno())) {
- return AjaxResult.error("仓库明细第"+i+"行未找到箱号");
- }
- long warehouselocId = 0L;
- long transferWarehouselocid = 0L;
- if ("CKDB".equals(billsType) | "HWTG".equals(billsType)) {
- warehouselocId = wbItem.getfWarehouselocid();
- transferWarehouselocid = wbItem.getfTransferWarehouselocid();
- // wbItem.setfWarehouselocid(transferWarehouselocid);
- }
- // 查询总账是否存在
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
- // 入库数特殊不判断入账
- if ("SJCK".equals(billsType)) { // 出库 查询
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- // 库存 < 出库件数
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- }
- // 更新库存总账
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
- if (StringUtils.isNull(tWarehouseBills.getfBsdate()) || StringUtils.isNull(wbItem.getfChargedate())) {
- return AjaxResult.error("库存明细第" + i + "行请检查日期,操作终止");
- }
- long dateDay = DateUtils.getDateDay(tWarehouseBills.getfBsdate(), wbItem.getfChargedate());
- if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
- return AjaxResult.error("库存明细第" + i + "行请检查客户信息,操作终止");
- }
- /*long fCorpid = tWarehouseBills.getfCorpid();
- TGoods tGoods = tGoodsMapper.selectTGoodsById(wbItem.getfGoodsid());
- long fGoodsid = tGoods.getfTypeid();
- long fBillingway = wbItem.getfBillingway();
- long fQty = wbItem.getfQty();
- // 计算仓储费明细
- Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(fCorpid, fGoodsid, dateDay, fBillingway, fQty , 0L);
- if (StringUtils.isNull(objectMap)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行没有维护出库明细的仓储协议,操作终止");
- }
- Long feeId = (Long) objectMap.get("feeId");
- BigDecimal amt = (BigDecimal) objectMap.get("amt");
- TFees tFees = tFeesMapper.selectTFeesById(feeId);
- if (StringUtils.isNotNull(tFees)) {
- feesList.add(tFees);
- }
- TWarehousebillsfees fees = new TWarehousebillsfees();
- fees.setfPid(fPid);
- fees.setfFeeid(feeId);
- fees.setfCorpid(tWarehouseBills.getfCorpid());
- fees.setfFeeUnitid(fBillingway);
- fees.setfQty(new BigDecimal(1));
- fees.setfUnitprice(amt);
- fees.setfAmount(amt);
- fees.setfExrate(new BigDecimal(1));
- fees.setfCurrency("RMB");
- fees.setRemark(dateDay + "天" + tFees.getfName());
- warehousebillsfees.add(fees);*/
- }
- wbItem.setfBillstatus(40L);
- } else if ("CKDB".equals(billsType) || "HWTG".equals(billsType)) { // 调拨查询
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- } else { // 2、 库存足够 先 进行出库操作
- wbItem.setfWarehouselocid(warehouselocId);
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
- }
- if ("HWTG".equals(billsType)) {
- tWarehouseBills.setfTrademodeid(tWarehouseBills.getfNewTrademodeid());
- }
- // 3、 进行入库操作 查询是否存在库存
- wbItem.setfWarehouselocid(transferWarehouselocid); // 新库区
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
- if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
- instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
- } else { // 4、 存在 进行跟新库存
- updateTWhgenlegData(wbItem, tWhgenle1.getfId(), "SJRK");
- }
- }
- wbItem.setfWarehouselocid(warehouselocId);
- wbItem.setfBillstatus(40L);
- } else if ("HQZY".equals(billsType)) { // 货转
- wbItem.setfBillstatus(6L);
- wbItem.setfChargedate(tWarehouseBills.getfChargedate());
- wbItem.setfBillingway(tWarehouseBills.getfBillingway());
- if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存为空");
- } else { // 非空修改库存总账
- if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细第" + i + "行库存不足");
- } else { // 2、 库存足够 先 进行出库操作
- updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
- }
- long corpId = tWarehouseBills.getfCorpid();
- tWarehouseBills.setfCorpid(tWarehouseBills.getfTocorpid());
- // 3、 进行入库操作 查询是否存在库存
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
- if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
- instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
- } else { // 4、 存在 进行跟新库存
- updateTWhgenlegData(wbItem, tWhgenle1.getfId(), "SJRK");
- }
- tWarehouseBills.setfCorpid(corpId);
- }
- }
- i++;
- int num = 0;
- wbItem.setfPid(fPid);
- wbItem.setfBilltype(billsType);
- wbItem.setfBillno(tWarehouseBills.getfBillno());
- // wbItem.setfBsdate(tWarehouseBills.getfBsdate());
- if (StringUtils.isNotNull(wbItem.getfId())) {
- wbItem.setUpdateBy(loginUser.getUser().getUserName());
- wbItem.setUpdateTime(new Date());
- num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
- if ("SJCK".equals(billsType)) {
- // 添加状态log
- insertTWarehousebillsLog(wbItem, 40L, loginUser);
- }
- } else {
- wbItem.setCreateTime(new Date());
- wbItem.setCreateBy(loginUser.getUsername());
- num = tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
- }
- if (num <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("库存明细更新失败");
- }
- }
- // 箱型数据
- if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
- int line = 0;
- for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
- line++;
- if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱型数据第" + line + "行数据缺少必填数据");
- }
- cntr.setfPid(tWarehouseBills.getfId());
- cntr.setfGoodsid(0L);
- cntr.setfPackageid("0");
- cntr.setfCntrweight(new BigDecimal(0));
- cntr.setCreateBy(loginUser.getUser().getUserName());
- cntr.setCreateTime(new Date());
- tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
- }
- }
- // 附件添加
- if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfPid(tWarehouseBills.getfId());
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- enclosure.setCreateTime(new Date());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- // 收款明细添加
- if (StringUtils.isNotEmpty(warehousebillsfeesDr) && !"[]".equals(warehousebillsfeesDr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(warehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- wbDr.setfPid(tWarehouseBills.getfId());
- wbDr.setfDc("D");
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- wbDr.setCreateTime(new Date());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- }
- // 付款明细添加
- if (StringUtils.isNotNull(warehousebillsfeesCr) && !"[]".equals(warehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(warehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(tWarehouseBills.getfId());
- wbCr.setfDc("C");
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- wbCr.setCreateTime(new Date());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- }
- //从表更新完再查从表信息更新主表
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(tWarehouseBills.getfId());
- tWarehouseBills.setfQty(itemInFo.getfQty());
- tWarehouseBills.setfNetweight(itemInFo.getfNetweight());
- tWarehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- map.put("fPid", fPid);
- map.put("warehouse", tWarehouseBills);
- map.put("warehouseItem", warehousebillsitemsList);
- map.put("fees", feesList);
- map.put("warehousebillsfees", warehousebillsfees);
- // 添加成功 主键返回 前台
- return AjaxResult.success("成功", map);
- }
- /**
- * 打印作业单
- *
- * @param warehouseBills
- * @param warehousebillsitems
- * @param tEnclosure
- * @param tWarehousebillsfeesCr
- * @param tWarehousebillsfeesDr
- * @param loginUser
- * @param status
- * @param billtystatus
- * @return
- */
- @Override
- @Transactional
- public AjaxResult waitWarehousing(String warehouseBills, String warehousebillsitems,
- String tEnclosure, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
- LoginUser loginUser, String tCntr, Long status, String billtystatus) {
- Map<String, Object> map = new HashMap<>();
- List<TWarehousebillsitems> mapList = new ArrayList<>();
- if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
- return AjaxResult.error("未找到主表信息");
- }
- if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
- return AjaxResult.error("未找到入账信息");
- }
- TWarehouseBills tWarehouseBills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
- if (status == 20) {
- tWarehouseBills.setfItemsStatus(2L);
- } else if (status == 30) {
- tWarehouseBills.setfItemsStatus(3L);
- }
- Long timestamp = DateUtils.getTimestamp(new Date());
- tWarehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setUpdateTime(new Date());
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(tWarehouseBills.getfId());
- tWarehouseBills.setfQty(itemInFo.getfQty());
- tWarehouseBills.setfNetweight(itemInFo.getfNetweight());
- tWarehouseBills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- tEnclosureMapper.deleteByFPid(tWarehouseBills.getfId());
- tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(tWarehouseBills.getfId());
- JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- /**
- * 1、 查询回收表是否有可用数据
- * 2、 流水号生成 --> 打印一次 只记录一个号
- */
- Date time = new Date();
- String serialNumber = null;
- if (status == 20) {
- if ("RK".equals(billtystatus)) {
- serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
- } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
- serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
- } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
- serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
- } else if ("TG".equals(billtystatus)) { //生成 出库 流水号
- serialNumber = billnoSerialServiceImpl.getSerialNumber("TG", time);
- }
- }
- int i = 1;
- for (TWarehousebillsitems item : warehousebillsitemsList) {
- // 查询是否可以修改
- TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
- if (tWarehousebillsitems.getfBillstatus() == 30) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存明细第" + i + "行失败,已处理,请刷新网页");
- }
- if (item.getfBillstatus() < 30L) {
- if (item.getfSerialNumber() == null || item.getfSerialNumber().equals("")) {
- item.setfSerialNumber(serialNumber);
- }
- item.setfBillstatus(status);
- item.setUpdateTime(new Date());
- item.setUpdateBy(loginUser.getUser().getUserName());
- int num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
- // 添加状态log
- insertTWarehousebillsLog(item, status, loginUser);
- if (num <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存明细失败");
- }
- }
- mapList.add(item);
- i++;
- }
- // 箱型数据
- if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
- int line = 0;
- for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
- line++;
- if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱型数据第" + line + "行数据缺少必填数据");
- }
- cntr.setfPid(tWarehouseBills.getfId());
- cntr.setfGoodsid(0L);
- cntr.setfPackageid("0");
- cntr.setfCntrweight(new BigDecimal(0));
- cntr.setCreateBy(loginUser.getUser().getUserName());
- cntr.setCreateTime(new Date());
- tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
- }
- }
- // 附件添加
- if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfPid(tWarehouseBills.getfId());
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- enclosure.setCreateTime(new Date());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- // 收款明细添加
- if (StringUtils.isNotEmpty(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- wbDr.setfPid(tWarehouseBills.getfId());
- wbDr.setfDc("D");
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- wbDr.setCreateTime(new Date());
- if (tWarehouseBills.getfBsdate() != null && !tWarehouseBills.getfBsdate().equals("")) {
- wbDr.setfBsdate(tWarehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- }
- // 付款明细添加
- if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(tWarehouseBills.getfId());
- wbCr.setfDc("C");
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- wbCr.setCreateTime(new Date());
- if (tWarehouseBills.getfBsdate() != null && !tWarehouseBills.getfBsdate().equals("")) {
- wbCr.setfBsdate(tWarehouseBills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- }
- // 添加成功 返回 前台
- TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
- tWarehousebillsitems.setfPid(tWarehouseBills.getfId());
- List<TWarehousebillsitems> mapList1 = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
- map.put("fDateChanged", tWarehouseBills.getfDateChanged());
- map.put("warehousebillsitems", mapList);
- map.put("warehousebillsitems1", mapList1);
- return AjaxResult.success("成功", map);
- }
- /**
- * 生成计算仓储费信息
- *
- * @param warehouseBills
- * @param mapItem
- * @param loginUser
- * @return
- */
- public Map<String, Object> getWarehouseItems(TWarehouseBills warehouseBills, List<Map<String, Object>> mapItem, LoginUser loginUser) {
- Map<String, Object> map = new HashMap<>();
- long feeId = 0L;
- BigDecimal sumAmt = new BigDecimal(0);
- List<TWarehousebillsfees> itemsList = new ArrayList<>();
- List<SysDictData> taxRate = sysDictDataMapper.selectDictDataByType("tax_rate");
- for (Map<String, Object> item : mapItem) {
- if (StringUtils.isNull(item.get("fBillingway"))) {
- map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到库存总账的计费单位,请确认");
- return map;
- }
- Date fBsdate = (Date) item.get("fBsdate");
- long fCorpid = warehouseBills.getfCorpid();
- String fBilltype = (String) item.get("fBilltype");
- String fGoodsid = (String) item.get("fTypeid");
- if (StringUtils.isNotEmpty(fGoodsid)) {
- fGoodsid = "\""+fGoodsid+"\"";
- }
- long fId = Long.valueOf(String.valueOf(item.get("fId"))).longValue();
- // 累计计费天数
- long accumulatedDays = DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fOriginalbilldate"));
- // 库存天数
- long fInventoryDays = 0L;
- // 要计费天数
- long fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
- if ("SJCK".equals(fBilltype)) {
- fInventoryDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fOriginalbilldate"));
- fBillingDays = fInventoryDays;
- } else if ("HQZY".equals(fBilltype)) {
- fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), fBsdate);
- } else {
- fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
- fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
- }
- /*if ("KCZZ".equals(fBilltype)) {
- } else {
- fInventoryDays = Long.valueOf(String.valueOf(item.get("fBillingDays")));
- }*/
- Long dictLabel = Long.valueOf(String.valueOf(item.get("fBillingway")));
- BigDecimal fQty = acquiredQuantity(item, dictLabel);
- if (fQty.equals(BigDecimal.ZERO)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到计费单位,请确认");
- }
- // 计算仓储费明细
- Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(fCorpid, fGoodsid, fBillingDays, dictLabel, fQty, accumulatedDays);
- if (StringUtils.isNull(objectMap)) {
- map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到仓储费协议,请确认");
- return map;
- }
- String mblno = "";
- if (StringUtils.isNotNull(item.get("fMblno"))) {
- mblno = item.get("fMblno").toString();
- }
- String remark = objectMap.get("remark").toString();
- feeId = Long.valueOf(String.valueOf(objectMap.get("feeId"))).longValue();
- BigDecimal amt = (BigDecimal) objectMap.get("amt");
- map.put("feeId", feeId);
- map.put("itemFeeId", objectMap.get("feeId"));
- sumAmt = sumAmt.add(amt).setScale(2, BigDecimal.ROUND_HALF_UP);
- TWarehousebillsfees fees = new TWarehousebillsfees();
- fees.setfFeeid(feeId);
- fees.setfDc("D");
- fees.setfAmt(amt);
- fees.setSrcId(fId);
- fees.setfMblno(mblno);
- fees.setRemark(remark);
- fees.setfFeeunitid(2L);
- fees.setfAmount(sumAmt);
- fees.setfBillstatus(2L);
- fees.setfCurrency("RMB");
- fees.setfBsdate(fBsdate);
- fees.setfBillingQty(fQty);
- fees.setfUnitprice(sumAmt);
- fees.setfBilltype(fBilltype);
- fees.setfBillingDays(fBillingDays);
- fees.setCreateTime(new Date());
- fees.setfQty(new BigDecimal(1));
- fees.setfPid(warehouseBills.getfId());
- fees.setfInventoryDays(fInventoryDays);
- fees.setfExrate(new BigDecimal(1));
- fees.setfCorpid(warehouseBills.getfCorpid());
- fees.setfMarks(item.get("fMarks").toString());
- fees.setSrcBillNo((String) item.get("fBillno"));
- fees.setfChargedate((Date) item.get("fChargedate"));
- fees.setCreateBy(loginUser.getUser().getUserName());
- fees.setfProductName(item.get("fGoodsids").toString());
- if ("SJCK".equals(fBilltype)) {
- fees.setfBillingDeadline(fBsdate);
- } else {
- fees.setfBillingDeadline(warehouseBills.getfBillingDeadline());
- }
- fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
- fees.setfOriginalbilldate((Date) item.get("fOriginalbilldate"));
- fees.setfBillingway(Long.valueOf(String.valueOf(item.get("fBillingway"))).longValue());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
- itemsList.add(fees);
- }
- map.put("sumAmt", sumAmt);
- map.put("itemsList", itemsList);
- return map;
- }
- /**
- * 批量生成计算仓储费信息
- *
- * @param warehouseBills
- * @param mapItem
- * @param loginUser
- * @return
- */
- public Map<String, Object> getWarehouseItemsList(TWarehouseBills warehouseBills, List<Map<String, Object>> mapItem, LoginUser loginUser) {
- Map<String, Object> map = new HashMap<>();
- long feeId = 0L;
- BigDecimal sumAmt = new BigDecimal(0);
- List<TWarehousebillsfees> itemsList = new ArrayList<>();
- List<SysDictData> taxRate = sysDictDataMapper.selectDictDataByType("tax_rate");
- for (Map<String, Object> item : mapItem) {
- if (StringUtils.isNull(item.get("fBillingway"))) {
- map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到库存总账的计费单位,请确认");
- return map;
- }
- Date fBsdate = (Date) item.get("fBsdate");
- long fCorpid = warehouseBills.getfCorpid();
- String fBilltype = (String) item.get("fBilltype");
- String fGoodsid = (String) item.get("fTypeid");
- if (StringUtils.isNotEmpty(fGoodsid)) {
- fGoodsid = "\""+fGoodsid+"\"";
- }
- long fId = Long.valueOf(String.valueOf(item.get("fId"))).longValue();
- // 累计计费天数
- long accumulatedDays = DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fOriginalbilldate"));
- // 库存天数
- long fInventoryDays = 0L;
- // 要计费天数
- long fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
- if ("SJCK".equals(fBilltype)) {
- fInventoryDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fChargedate"));
- fBillingDays = fInventoryDays;
- } else if ("HQZY".equals(fBilltype)) {
- fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), fBsdate);
- } else {
- fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
- fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
- }
- /*if ("KCZZ".equals(fBilltype)) {
- } else {
- fInventoryDays = Long.valueOf(String.valueOf(item.get("fBillingDays")));
- }*/
- Long dictLabel = Long.valueOf(String.valueOf(item.get("fBillingway")));
- BigDecimal fQty = acquiredQuantity(item, dictLabel);
- if (fQty.equals(BigDecimal.ZERO)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到计费单位,请确认");
- }
- // 计算仓储费明细
- Map<String, Object> objectMap = tWarehouseAgreementService.getCarryingCost(fCorpid, fGoodsid, fBillingDays, dictLabel, fQty, accumulatedDays);
- if (StringUtils.isNull(objectMap)) {
- map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到仓储费协议,请确认");
- return map;
- }
- String mblno = "";
- if (StringUtils.isNotNull(item.get("fMblno"))) {
- mblno = item.get("fMblno").toString();
- }
- String remark = objectMap.get("remark").toString();
- feeId = Long.valueOf(String.valueOf(objectMap.get("feeId"))).longValue();
- BigDecimal amt = (BigDecimal) objectMap.get("amt");
- map.put("feeId", feeId);
- map.put("itemFeeId", objectMap.get("feeId"));
- sumAmt = sumAmt.add(amt).setScale(2, BigDecimal.ROUND_HALF_UP);
- TWarehousebillsfees fees = new TWarehousebillsfees();
- fees.setfFeeid(feeId);
- fees.setfDc("D");
- fees.setfAmt(amt);
- fees.setSrcId(fId);
- fees.setfMblno(mblno);
- fees.setRemark(remark);
- fees.setfFeeunitid(2L);
- fees.setfAmount(sumAmt);
- fees.setfBillstatus(2L);
- fees.setfCurrency("RMB");
- fees.setfBsdate(fBsdate);
- fees.setfBillingQty(fQty);
- fees.setfUnitprice(sumAmt);
- fees.setfBilltype(fBilltype);
- fees.setfBillingDays(fBillingDays);
- fees.setCreateTime(new Date());
- fees.setfQty(new BigDecimal(1));
- fees.setfPid(warehouseBills.getfId());
- fees.setfInventoryDays(fInventoryDays);
- fees.setfExrate(new BigDecimal(1));
- fees.setfCorpid(warehouseBills.getfCorpid());
- fees.setfMarks(item.get("fMarks").toString());
- fees.setSrcBillNo((String) item.get("fBillno"));
- fees.setfChargedate((Date) item.get("fChargedate"));
- fees.setCreateBy(loginUser.getUser().getUserName());
- fees.setfProductName(item.get("fGoodsids").toString());
- if ("SJCK".equals(fBilltype)) {
- fees.setfBillingDeadline(fBsdate);
- } else {
- fees.setfBillingDeadline(warehouseBills.getfBillingDeadline());
- }
- fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
- fees.setfOriginalbilldate((Date) item.get("fOriginalbilldate"));
- fees.setfBillingway(Long.valueOf(String.valueOf(item.get("fBillingway"))).longValue());
- //tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
- itemsList.add(fees);
- TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
- /*warehousebillsitems.setfId(fId);
- warehousebillsitems.setfStorageFeeDeadline(fBsdate);
- int i = tWarehousebillsitemsMapper.updateTWarehousebillsitems(warehousebillsitems);*/
- }
- map.put("sumAmt", sumAmt);
- map.put("itemsList", itemsList);
- return map;
- }
- /**
- * 新增库存费计算
- *
- * @param tWarehouseBills 主表的查询条件
- * @param loginUser 登录用户
- * @param billsType 状态
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult calculateStorageFees(TWarehouseBills tWarehouseBills, LoginUser loginUser, String billsType) {
- if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
- return AjaxResult.error("请选择客户信息");
- }
- long fPid = 0L;
- if (StringUtils.isNull(tWarehouseBills.getfId())) {
- // 生成流水号
- Date time = new Date();
- String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
- tWarehouseBills.setfBillno(billNo);
- if (StringUtils.isNull(tWarehouseBills.getfBillstatus())) {
- tWarehouseBills.setfBillstatus(2L);
- }
- tWarehouseBills.setfBilltype(billsType);
- tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setCreateTime(new Date());
- tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
- fPid = tWarehouseBills.getfId();
- } else {
- tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
- tWarehousebillsitemsMapper.deleteByFPid(tWarehouseBills.getfId());
- tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setUpdateTime(new Date());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- fPid = tWarehouseBills.getfId();
- }
- // 计划物资明细
- List<TWarehousebillsfees> itemsList = new ArrayList<>();
- BigDecimal bigDecimal = new BigDecimal(0);
- Map<String, Object> map = new HashMap<>();
- // 库存总账id
- long whgenlegFeeId = 0;
- // 计费单位
- long feeUnitid = 1;
- // 查询 出库 货转的库存明细
- List<Map<String, Object>> warehousebillsitemsList = tWarehousebillsitemsMapper.selectStorageFeeItemList(tWarehouseBills);
- if (warehousebillsitemsList.size() != 0) {
- Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, warehousebillsitemsList, loginUser);
- if (mapItem.containsKey("error")) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error((String) mapItem.get("error"));
- }
- itemsList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
- }
- List<Map<String, Object>> tWhgenlegs = tWhgenlegMapper.selectStorageFeeItemList(tWarehouseBills);
- if (tWhgenlegs.size() != 0) {
- Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, tWhgenlegs, loginUser);
- if (mapItem.containsKey("error")) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error((String) mapItem.get("error"));
- }
- List<TWarehousebillsfees> itemList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
- if (itemList.size() != 0) {
- for (TWarehousebillsfees ite : itemList) {
- itemsList.add(ite);
- }
- }
- }
- TFees tFees = new TFees();
- tFees.setfStatus("2");
- tFees.setDelFlag("0");
- List<TFees> feesList = tFeesMapper.selectTFeesList(tFees);
- if (itemsList.size() <= 0) {
- return AjaxResult.error("未找到合适的库存明细");
- }
- map.put("feesList", feesList);
- map.put("warehouseBills", tWarehouseBills);
- map.put("warehouseItemList", itemsList);
- return AjaxResult.success(map);
- }
- @Override
- @Transactional
- public AjaxResult calculateStorageFeesList(List<TWarehouseBills> tWarehouseBillsList, LoginUser loginUser, String billsType) {
- if (CollectionUtils.isEmpty(tWarehouseBillsList)){
- return AjaxResult.error("请输入筛选条件,再计算仓储费");
- }
- List<TWarehousebillsfees> list = new ArrayList<>();
- for (TWarehouseBills tWarehouseBills : tWarehouseBillsList) {
- if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
- return AjaxResult.error("请选择客户信息");
- }
- long fPid = 0L;
- /*if (StringUtils.isNull(tWarehouseBills.getfId())) {
- // 生成流水号
- Date time = new Date();
- String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
- tWarehouseBills.setfBillno(billNo);
- if (StringUtils.isNull(tWarehouseBills.getfBillstatus())) {
- tWarehouseBills.setfBillstatus(2L);
- }
- tWarehouseBills.setfBilltype(billsType);
- tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
- tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setCreateTime(new Date());
- //tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
- //fPid = tWarehouseBills.getfId();
- } else {
- //tWarehousebillsfeesMapper.deleteByFPid(tWarehouseBills.getfId());
- //tWarehousebillsitemsMapper.deleteByFPid(tWarehouseBills.getfId());
- tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBills.setUpdateTime(new Date());
- //tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
- //fPid = tWarehouseBills.getfId();
- }*/
- // 计划物资明细
- List<TWarehousebillsfees> itemsList = new ArrayList<>();
- BigDecimal bigDecimal = new BigDecimal(0);
- /*Map<String, Object> map = new HashMap<>();*/
- // 库存总账id
- long whgenlegFeeId = 0;
- // 计费单位
- long feeUnitid = 1;
- // 查询 出库 货转的库存明细
- List<Map<String, Object>> warehousebillsitemsList = tWarehousebillsitemsMapper.selectStorageFeeItemList(tWarehouseBills);
- if (warehousebillsitemsList.size() != 0) {
- Map<String, Object> mapItem = getWarehouseItemsList(tWarehouseBills, warehousebillsitemsList, loginUser);
- if (mapItem.containsKey("error")) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error((String) mapItem.get("error"));
- }
- itemsList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
- }
- /*List<Map<String, Object>> tWhgenlegs = tWhgenlegMapper.selectStorageFeeItemList(tWarehouseBills);
- if (tWhgenlegs.size() != 0) {
- Map<String, Object> mapItem = getWarehouseItems(tWarehouseBills, tWhgenlegs, loginUser);
- if (mapItem.containsKey("error")) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error((String) mapItem.get("error"));
- }
- List<TWarehousebillsfees> itemList = (List<TWarehousebillsfees>) mapItem.get("itemsList");
- if (itemList.size() != 0) {
- for (TWarehousebillsfees ite : itemList) {
- itemsList.add(ite);
- }
- }
- }*/
- TFees tFees = new TFees();
- tFees.setfStatus("2");
- tFees.setDelFlag("0");
- List<TFees> feesList = tFeesMapper.selectTFeesList(tFees);
- if (itemsList.size() <= 0) {
- return AjaxResult.error("未找到合适的库存明细");
- }
- /*map.put("feesList", feesList);
- map.put("warehouseBills", tWarehouseBills);
- map.put("warehouseItemList", itemsList);*/
- list.addAll(itemsList);
- }
- return AjaxResult.success(list);
- }
- /**
- * 计算出库仓储费
- * 待完成!!!!!!!!!
- * @param fId
- * @return
- */
- @Override
- public AjaxResult calculateOutStockFee(Long fId) {
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- if (StringUtils.isNull(tWarehouseBills)) {
- return AjaxResult.error("未找到出库信息,请确认是否存在出库");
- }
- return null;
- }
- /**
- * 查询仓储仓管员角色用户
- */
- @Override
- public AjaxResult queryClerkRoleList() {
- return AjaxResult.success(sysUserMapper.selectUserByRole("库管"));
- }
- /**
- * 仓储费计算提交以及暂存
- *
- * @param warehouseBills
- * @param warehouseItems
- * @param warehouseFees
- * @param loginUser
- * @param billsType
- * @return
- */
- @Override
- @Transactional
- public AjaxResult insertStorageFee(String warehouseBills, String warehouseItems, String warehouseFees, LoginUser loginUser, String billsType) {
- TWarehouseBills tWarehousebills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
- long fPid = 0L;
- boolean billstatus = tWarehousebills.getfBillstatus().equals(4L);
- if (billstatus && (StringUtils.isNull(warehouseItems) || "[]".equals(warehouseItems))) {
- return AjaxResult.error("未找到计费物资明细无法提交");
- }
- /*if (billstatus && (StringUtils.isNull(warehouseFees) || "[]".equals(warehouseFees))) {
- return AjaxResult.error("未找到应收款明细无法提交");
- }*/
- if (tWarehousebills.getfTimes() == null){
- tWarehousebills.setfTimes(1L);
- }else {
- tWarehousebills.setfTimes(tWarehousebills.getfTimes() + 1);
- }
- if (StringUtils.isNotNull(tWarehousebills.getfId())) {
- fPid = tWarehousebills.getfId();
- tWarehousebills.setUpdateTime(new Date());
- tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- tWarehousebillsfeesMapper.deleteByFPid(fPid);
- tWarehousebillsitemsMapper.deleteByFPid(fPid);
- } else {
- // 生成流水号
- Date time = new Date();
- String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
- tWarehousebills.setfBillno(billNo);
- tWarehousebills.setfDeptid(loginUser.getUser().getDeptId());
- tWarehousebills.setfBsdeptid(loginUser.getUser().getDeptId());
- tWarehousebills.setCreateBy(loginUser.getUser().getUserName());
- tWarehousebills.setCreateTime(new Date());
- tWarehousebills.setfBilltype(billsType);
- tWarehouseBillsMapper.insertTWarehousebills(tWarehousebills);
- fPid = tWarehousebills.getfId();
- }
- JSONArray warehouseJSON = JSONArray.parseArray(warehouseItems);
- List<TWarehousebillsfees> itemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees item : itemsList) {
- item.setfId(null);
- item.setSrcBillNo(tWarehousebills.getfBillno());
- item.setfPid(fPid);
- item.setfBillstatus(tWarehousebills.getfBillstatus());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(item);
- }
- if (StringUtils.isNotNull(warehouseFees) && !"[]".equals(warehouseFees)) {
- JSONArray feesJSON = JSONArray.parseArray(warehouseFees);
- List<TWarehousebillsfees> warehousebillsfeesList = JSONObject.parseArray(feesJSON.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees fees : warehousebillsfeesList) {
- fees.setfId(null);
- fees.setfPid(fPid);
- fees.setfDc("D");
- fees.setfBilltype("JSCCF");
- fees.setSrcBillNo(tWarehousebills.getfBillno());
- fees.setfBillstatus(tWarehousebills.getfBillstatus());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
- }
- }
- if (billstatus) {
- String key = "warehouse.storageFeeCalculation.ApprovalFlow";
- SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(fPid);
- auditItems.setActId(150L);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(tWarehousebills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(tWarehousebills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(tWarehousebills.getfBilltype());
- // 存储提单号(提单号)
- auditItems.setRefno3(tWarehousebills.getfMblno());
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(loginUser.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus("f_billstatus");
- auditItems.setTimes(tWarehousebills.getfTimes());
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- } else {
- AjaxResult ajaxResult = storageFeeFollow(fPid, 6L);
- String code = ajaxResult.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return ajaxResult;
- }
- }
- return AjaxResult.success(tWarehousebills);
- }
- @Override
- public AjaxResult insertStorageFeeList(List<StorageChargeInsert> storageChargeInsert, LoginUser loginUser, String billsType) {
- if (CollectionUtils.isEmpty(storageChargeInsert)){
- return AjaxResult.error("请选择要保存的数据");
- }
- for (StorageChargeInsert chargeInsert : storageChargeInsert) {
- TWarehouseBills tWarehousebills = JSONArray.parseObject(chargeInsert.getWarehouseBills(), TWarehouseBills.class);
- long fPid = 0L;
- boolean billstatus = tWarehousebills.getfBillstatus().equals(4L);
- if (billstatus && (StringUtils.isNull(chargeInsert.getWarehouseItems()) || "[]".equals(chargeInsert.getWarehouseItems()))) {
- return AjaxResult.error("未找到计费物资明细无法提交");
- }
- /*if (billstatus && (StringUtils.isNull(warehouseFees) || "[]".equals(warehouseFees))) {
- return AjaxResult.error("未找到应收款明细无法提交");
- }*/
- if (tWarehousebills.getfTimes() == null){
- tWarehousebills.setfTimes(1L);
- }else {
- tWarehousebills.setfTimes(tWarehousebills.getfTimes() + 1);
- }
- if (StringUtils.isNotNull(tWarehousebills.getfId())) {
- fPid = tWarehousebills.getfId();
- tWarehousebills.setUpdateTime(new Date());
- tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- tWarehousebillsfeesMapper.deleteByFPid(fPid);
- tWarehousebillsitemsMapper.deleteByFPid(fPid);
- } else {
- // 生成流水号
- Date time = new Date();
- String billNo = billnoSerialServiceImpl.getSerialNumber("JSCCF", time);
- tWarehousebills.setfBillno(billNo);
- tWarehousebills.setfDeptid(loginUser.getUser().getDeptId());
- tWarehousebills.setfBsdeptid(loginUser.getUser().getDeptId());
- tWarehousebills.setCreateBy(loginUser.getUser().getUserName());
- tWarehousebills.setCreateTime(new Date());
- tWarehousebills.setfBilltype(billsType);
- tWarehouseBillsMapper.insertTWarehousebills(tWarehousebills);
- fPid = tWarehousebills.getfId();
- }
- JSONArray warehouseJSON = JSONArray.parseArray(chargeInsert.getWarehouseItems());
- List<TWarehousebillsfees> itemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees item : itemsList) {
- item.setfId(null);
- item.setSrcBillNo(tWarehousebills.getfBillno());
- item.setfPid(fPid);
- item.setfBillstatus(tWarehousebills.getfBillstatus());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(item);
- }
- if (StringUtils.isNotNull(chargeInsert.getWarehouseFees()) && !"[]".equals(chargeInsert.getWarehouseFees())) {
- JSONArray feesJSON = JSONArray.parseArray(chargeInsert.getWarehouseFees());
- List<TWarehousebillsfees> warehousebillsfeesList = JSONObject.parseArray(feesJSON.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees fees : warehousebillsfeesList) {
- fees.setfId(null);
- fees.setfPid(fPid);
- fees.setfDc("D");
- fees.setfBilltype("JSCCF");
- fees.setSrcBillNo(tWarehousebills.getfBillno());
- fees.setfBillstatus(tWarehousebills.getfBillstatus());
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(fees);
- }
- }
- if (billstatus) {
- String key = "warehouse.storageFeeCalculation.ApprovalFlow";
- SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(fPid);
- auditItems.setActId(150L);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(tWarehousebills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(tWarehousebills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(billsType);
- // 存储提单号(提单号)
- auditItems.setRefno3(tWarehousebills.getfMblno());
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(loginUser.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus("f_billstatus");
- auditItems.setTimes(tWarehousebills.getfTimes());
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- } else {
- AjaxResult ajaxResult = storageFeeFollow(fPid, 6L);
- String code = ajaxResult.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return ajaxResult;
- }
- }
- }
- return AjaxResult.success();
- }
- /**
- * 根据id查询仓储费计算信息
- *
- * @param fId
- * @return
- */
- @Override
- public AjaxResult selectStorageFeeById(Long fId) {
- TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- if (StringUtils.isNull(tWarehouseBills)) {
- return AjaxResult.error("未找到信息,请刷新页面重试");
- }
- Map<String, Object> map = new HashMap<>();
- List<TWarehousebillsfees> feesList = new ArrayList<>();
- List<TWarehousebillsfees> itemsList = new ArrayList<>();
- TWarehousebillsfees warehousebillsfees = new TWarehousebillsfees();
- warehousebillsfees.setfPid(fId);
- List<TWarehousebillsfees> warehouseFeesList = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(warehousebillsfees);
- for (TWarehousebillsfees fees : warehouseFeesList) {
- if (StringUtils.isNotNull(fees.getSrcId())) {
- itemsList.add(fees);
- } else {
- feesList.add(fees);
- }
- }
- TGoods tGoods = new TGoods();
- tGoods.setfStatus("0");
- tGoods.setDelFlag("0");
- List<TGoods> goods = tGoodsMapper.selectTGoodsList(tGoods);
- TFees tFees = new TFees();
- tFees.setfStatus("2");
- tFees.setDelFlag("0");
- List<TFees> feesLists = tFeesMapper.selectTFeesList(tFees);
- // 查询联系人
- List<SysUser> sysUserList = new ArrayList<>();
- SysUser sysUser = sysUserMapper.selectUserByUserName(tWarehouseBills.getCreateBy());
- if (StringUtils.isNotNull(sysUser)) {
- sysUserList.add(sysUser);
- }
- TCorps corps = tCorpsMapper.selectTCorpsById(tWarehouseBills.getfCorpid());
- map.put("corps", corps);
- map.put("goodsList", goods);
- map.put("feesList", feesLists);
- map.put("sysUser", sysUserList);
- map.put("warehouse", tWarehouseBills);
- map.put("warehouseFeesList", feesList);
- map.put("warehouseItemsList", itemsList);
- return AjaxResult.success(map);
- }
- /**
- * 根据不同计费单位获取不同 计算库存明细数量
- *
- * @param item 库存明细
- * @param dictLabel 计费单位
- * @return 结果
- */
- public BigDecimal acquiredQuantity(Map<String, Object> item, Long dictLabel) {
- BigDecimal fQty = new BigDecimal(0);
- // 件数
- long boxNum = 1;
- // 毛重
- long grossWeight = 2;
- // 净重
- long netWeight = 3;
- // 尺码
- long size = 4;
- // 统一
- long fixed = 5;
- if (dictLabel.equals(boxNum)) {
- fQty = new BigDecimal(((Number) item.get("fQty")).doubleValue());
- return fQty.setScale(2, BigDecimal.ROUND_HALF_UP);
- } else if (dictLabel.equals(grossWeight)) {
- fQty = new BigDecimal(((Number) item.get("fGrossweight")).doubleValue());
- } else if (dictLabel.equals(netWeight)) {
- fQty = new BigDecimal(((Number) item.get("fNetweight")).doubleValue());
- } else if (dictLabel.equals(size)) {
- fQty = new BigDecimal(((Number) item.get("fVolumn")).doubleValue());
- } else if (dictLabel.equals(fixed)) {
- fQty = new BigDecimal(1);
- }
- //return fQty.setScale(2, BigDecimal.ROUND_HALF_UP);
- // 结果值除以1000 保留两位
- BigDecimal divisor = new BigDecimal("1000");
- BigDecimal result = fQty.divide(divisor, 2, BigDecimal.ROUND_HALF_UP);
- return result;
- }
- // 入库 收费明细 校验
- public Long check(BigDecimal number, BigDecimal unitPrice) {
- BigDecimal result1 = number.multiply(unitPrice);
- // 保留两位小数且四舍五入
- result1 = result1.setScale(2, BigDecimal.ROUND_HALF_UP);
- // 转换去掉小数点
- String result = result1.toString().replace(".", "");
- return Long.valueOf(result);
- }
- /**
- * 修改详情主表
- *
- * @param tWarehousebills 详情主表
- * @return 结果
- */
- @Override
- public int updateTWarehousebills(TWarehouseBills tWarehousebills) {
- tWarehousebills.setUpdateTime(DateUtils.getNowDate());
- return tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- }
- /**
- * 批量删除详情主表
- *
- * @param fIds 需要删除的详情主表ID
- * @return 结果
- */
- @Override
- public AjaxResult deleteTWarehousebillsByIds(Long[] fIds) {
- // 取出业务编号、 放入 billno_del
- for (Long id : fIds) {
- // 1、查询主表信息
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(id);
- // 查询对应库存明细是否允许删除
- if (tWarehousebillsitemsMapper.selectItemFStatusByFPid(id) != 0) {
- return AjaxResult.error("删除失败,该单据库存明细已入账");
- }
- // 2、业务编号、客存编号 放入 billno_del
- BillnoDel billnoDel = new BillnoDel();
- billnoDel.setBillType(tWarehousebills.getfBilltype());
- billnoDel.setBillNo(tWarehousebills.getfBillno());
- billnoDelMapper.insertBillnoDel(billnoDel);
- }
- tWarehouseBillsMapper.deleteTWarehousebillsByIds(fIds);
- return AjaxResult.success();
- }
- @Override
- public int deleteTWarehousebills(Long[] fIds) {
- // 取出业务编号、 放入 billno_del
- for (Long id : fIds) {
- // 1、查询主表信息
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(id);
- // 2、业务编号、客存编号 放入 billno_del
- BillnoDel billnoDel = new BillnoDel();
- billnoDel.setBillType(tWarehousebills.getfBilltype());
- billnoDel.setBillNo(tWarehousebills.getfBillno());
- billnoDelMapper.insertBillnoDel(billnoDel);
- }
- return tWarehouseBillsMapper.deleteKHTWarehousebillsByIds(fIds);
- }
- @Override
- public AjaxResult queryRemove(Long fId) {
- // 查询主表明细
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- // 查询仓库明细从表数据
- TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
- tWarehousebillsitems.setfPid(tWarehousebills.getfId());
- List<Map<String, Object>> mapList = tWarehousebillsitemsMapper.selectGoodsTransferitemsList(tWarehousebillsitems);
- // 查询仓库费用明细表数据
- TWarehousebillsfees tWarehousebillsfees = new TWarehousebillsfees();
- tWarehousebillsfees.setfPid(tWarehousebills.getfId());
- List<TWarehousebillsfees> warehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList(tWarehousebillsfees);
- // 查询附件表数据
- TEnclosure enclosure = new TEnclosure();
- enclosure.setfPid(tWarehousebills.getfId());
- List<TEnclosure> enclosures = tEnclosureMapper.selectTEnclosureList(enclosure);
- if (StringUtils.isNull(tWarehousebills)) {
- return AjaxResult.success("0");
- } else if (StringUtils.isNotNull(tWarehousebills)
- && StringUtils.isEmpty(warehousebillsfees)
- && StringUtils.isEmpty(enclosures)
- && StringUtils.isEmpty(mapList)) {
- return AjaxResult.success("1");
- } else {
- return AjaxResult.success("2");
- }
- }
- /**
- * 删除详情主表信息
- *
- * @param fId 详情主表ID
- * @return 结果
- */
- @Override
- public int deleteTWarehousebillsById(Long fId) {
- return tWarehouseBillsMapper.deleteTWarehousebillsById(fId);
- }
- @Override
- public String getWarehouseOutStockBillsNo(TWarehouseBills tWarehouseBills) {
- return null;
- }
- /**
- * 撤销入库
- *
- * @param fId
- * @param loginUser
- * @param billsType
- * @return
- */
- @Override
- @Transactional
- public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType) {
- // 查询 仓库主表信息、库存明细信息
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- // 修改主表信息
- tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
- tWarehousebills.setUpdateTime(new Date());
- tWarehousebills.setfBillstatus(2L); //撤销状态
- tWarehousebills.setfReviewDate(null);// 审核通过时间清空
- Long timestamp = DateUtils.getTimestamp(new Date());
- tWarehousebills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(tWarehousebills.getfId());
- tWarehousebills.setfQty(itemInFo.getfQty());
- tWarehousebills.setfNetweight(itemInFo.getfNetweight());
- tWarehousebills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(tWarehousebills.getfId(), 2L, new Date());
- if ("JSCCF".equals(tWarehousebills.getfBilltype())) {
- List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(fId);
- for (TWarehousebillsfees wareItem : feesList) {
- if (StringUtils.isNull(wareItem.getSrcId())) {
- continue;
- }
- if ("KCZZ".equals(wareItem.getfBilltype())) {
- TWhgenleg whgenleg = new TWhgenleg();
- whgenleg.setfId(wareItem.getSrcId());
- whgenleg.setfChargedate(wareItem.getfChargedate());
- int i = tWhgenlegMapper.updateTWhgenleg(whgenleg);
- if (i <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新库存费用状态失败,请联系管理员");
- }
- } else {
- TWarehousebillsitems billsItem = new TWarehousebillsitems();
- billsItem.setfId(wareItem.getSrcId());
- billsItem.setfBilltype(wareItem.getfBilltype());
- if (!"SJCK".equals(wareItem.getfBilltype())) {
- billsItem.setfChargedate(wareItem.getfBillingDeadline());
- tWarehousebillsitemsMapper.updateTWarehousebillsitems(billsItem);
- } else {
- billsItem.setfChargedate(wareItem.getfChargedate());
- }
- tWarehousebillsitemsMapper.agreementApprovalRejected(billsItem);
- }
- }
- }
- tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- return AjaxResult.success(tWarehousebills.getfDateChanged());
- }
- /**
- * 撤销已审核通过的接单入库信息
- * @param fId
- * @return
- */
- @Override
- @Transactional
- public AjaxResult withdrawOrdersById(Long fId) {
- // 查询 仓库主表信息、库存明细信息
- TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
- if (tWarehousebills.getWarehouseStatus() != 6L) {
- return AjaxResult.error("主单据状态异常,请确认单据状态是否已审核通过");
- }
- tWarehousebills.setUpdateTime(new Date());
- tWarehousebills.setWarehouseStatus(2L); //撤销状态
- tWarehousebills.setUpdateBy(SecurityUtils.getUsername());
- Long timestamp = DateUtils.getTimestamp(new Date());
- tWarehousebills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(tWarehousebills.getfId());
- tWarehousebills.setfQty(itemInFo.getfQty());
- tWarehousebills.setfNetweight(itemInFo.getfNetweight());
- tWarehousebills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- return AjaxResult.success(tWarehousebills.getfDateChanged());
- }
- /**
- * 查询单据是否允许变更
- * @param sysCheckCode
- * @return 结果
- */
- @Override
- public boolean checkCode(SysCheckCode sysCheckCode) {
- String dateChanged = "";
- switch (sysCheckCode.getfType()) {
- case "warehouse":
- // 查询仓储业务
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(sysCheckCode.getfId());
- if (StringUtils.isNull(warehouseBills)) {
- return false;
- }
- if (StringUtils.isNotNull(sysCheckCode.getfId()) && StringUtils.isEmpty(warehouseBills.getfDateChanged())) {
- Long timestamp = DateUtils.getTimestamp(new Date());
- warehouseBills.setUpdateTime(new Date());
- warehouseBills.setUpdateBy(SecurityUtils.getUsername());
- warehouseBills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
- return true;
- }
- dateChanged = warehouseBills.getfDateChanged();
- break;
- case "freight":
- // 查询运价维护业务
- TSeaprice seaprice = tSeapriceMapper.selectTSeapriceById(sysCheckCode.getfId());
- if (StringUtils.isNull(seaprice)) {
- return false;
- }
- if (StringUtils.isNotNull(sysCheckCode.getfId()) && StringUtils.isEmpty(seaprice.getfDateChanged())) {
- Long timestamp = DateUtils.getTimestamp(new Date());
- seaprice.setUpdateTime(new Date());
- seaprice.setUpdateBy(SecurityUtils.getUsername());
- seaprice.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- tSeapriceMapper.updateTSeaprice(seaprice);
- return true;
- }
- dateChanged = seaprice.getfDateChanged();
- break;
- }
- if (StringUtils.isEmpty(sysCheckCode.getCodeVal()) && StringUtils.isNotEmpty(dateChanged)) {
- return false;
- }
- // 是否符合数据库编码
- if (sysCheckCode.getCodeVal().equals(dateChanged)) {
- return true;
- }
- return false;
- }
- /**
- * 导入【入库明细箱信息】Excel
- * @param file 文件
- * @return
- */
- @Override
- public AjaxResult importLibraryInformation(MultipartFile file) {
- List<TWarehousebillsitems> itemList = new ArrayList<>();
- InputStream inputStream = null;
- try {
- inputStream = file.getInputStream();
- String originalFilename = file.getOriginalFilename();
- Workbook workbook = null;
- if (originalFilename.endsWith("xls")) {
- workbook = WorkbookFactory.create(inputStream);
- } else if (originalFilename.endsWith("xlsx")) {
- workbook = new XSSFWorkbook(inputStream);
- } else {
- return AjaxResult.error("文件后缀异常");
- }
- Sheet sheet = workbook.getSheetAt(0);
- int line = 0;
- for (Row rows : sheet) {
- line++;
- if (rows.getRowNum() == 0) {
- continue;
- }
- TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
- for (int a = 0; a < rows.getPhysicalNumberOfCells(); a++) {
- if (StringUtils.isNull(rows.getCell(a))) {
- continue;
- }
- Cell cell = rows.getCell(a);
- String value = filter(sheet.getRow(0), CellReference.convertNumToColString(cell.getColumnIndex()));
- switch (value) {
- case "箱号":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
- warehousebillsitems.setfCntrno(cell.getStringCellValue());
- }
- break;
- case "铅封号":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
- warehousebillsitems.setfSealno(cell.getStringCellValue());
- }
- break;
- case "预计件数":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
- warehousebillsitems.setfPlanqty(Long.valueOf(cell.getStringCellValue()));
- }
- break;
- case "预计毛重":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
- warehousebillsitems.setfPlangrossweight(new BigDecimal(cell.getStringCellValue()).setScale(2, BigDecimal.ROUND_HALF_UP));
- }
- break;
- case "预计净重":
- //设置单元格类型
- cell.setCellType(CellType.STRING);
- if (StringUtils.isNotEmpty(cell.getStringCellValue())) {
- warehousebillsitems.setfPlannetweight(new BigDecimal(cell.getStringCellValue()).setScale(2, BigDecimal.ROUND_HALF_UP));
- }
- break;
- }
- }
- if (StringUtils.isNotEmpty(warehousebillsitems.getfCntrno())) {
- itemList.add(warehousebillsitems);
- }
- }
- } catch (IOException e) {
- return AjaxResult.error("上传文件失败,请检查文件是否损坏");
- }
- String errinfo = "";
- int line = 1;
- for (TWarehousebillsitems li : itemList) {
- if (StringUtils.isEmpty(li.getfCntrno())) {
- errinfo = errinfo + "第" + line + "行箱号为空,";
- }
- if (StringUtils.isNull(li.getfPlanqty())) {
- errinfo = errinfo + "第" + line + "行预计件数为空,";
- } else {
- li.setfQty(li.getfPlanqty());
- }
- if (StringUtils.isNull(li.getfPlangrossweight())) {
- errinfo = errinfo + "第" + line + "行预计毛重为空,";
- } else {
- li.setfGrossweight(li.getfPlangrossweight());
- }
- if (StringUtils.isNull(li.getfPlannetweight())) {
- errinfo = errinfo + "第" + line + "行预计净重为空,";
- } else {
- li.setfNetweight(li.getfPlannetweight());
- }
- line++;
- }
- if (StringUtils.isEmpty(errinfo)) {
- return AjaxResult.success(itemList);
- } else {
- return AjaxResult.success(errinfo, itemList);
- }
- }
- @Override
- public AjaxResult getMblno(TWarehouseBills tWarehousebills) {
- String kh = billnoSerialServiceImpl.getMblno("KH", tWarehousebills.getfLoadportid(), tWarehousebills.getfDestportid(), tWarehousebills.getfVoyid());
- return AjaxResult.success(kh);
- }
- @Override
- @Transactional
- public AjaxResult orderExamine(TWarehouseBills tWarehouseBills, LoginUser loginUser) {
- String key = "";//键
- long actId = 0L;//活动id
- Long fPid = tWarehouseBills.getfId();
- String fidStatus = "";
- Long billStatus = 2L;
- //判断能否提交审核
- boolean b = this.judgmentMessage(tWarehouseBills.getfBilltype(), fPid);
- if (b == false){
- return AjaxResult.error("已提交审核请勿重复提交审核");
- }
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fPid);
- if ("XGDD".equals(tWarehouseBills.getfBilltype())) {
- TVoyage tVoyage = tVoyageMapper.selectTVoyageById(warehouseBills.getfVoyid());
- if (tVoyage.getfAtd() != null){
- Date date = new Date();
- int i = date.compareTo(tVoyage.getfAtd());
- if (i >= 0){
- return AjaxResult.error("当前日期已超过开船日期不能,不能变更!");
- }
- }
- actId = 471L;
- key = "khwarehouse.updateOrderMessage.ApprovalFlow";
- fidStatus = "f_updete_status";
- }else if ("XGTJ".equals(tWarehouseBills.getfBilltype())) {
- actId = 472L;
- key = "khwarehouse.submitUpdateOrderMessage.ApprovalFlow";
- fidStatus = "f_submit_update";
- }else if ("DDSC".equals(tWarehouseBills.getfBilltype())) {
- actId = 473L;
- key = "khwarehouse.deleteOrderMessage.ApprovalFlow";
- fidStatus = "f_delete_status";
- }
- boolean isApprove = false;//是否开启审批流
- SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
- if (StringUtils.isNull(sysConfig)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统参数异常,未找到开启审批流参数");
- }
- if ("0".equals(sysConfig.getConfigValue())) {
- isApprove = true;
- }
- if (isApprove) {
- billStatus = 4L;
- } else {
- billStatus = 6L;
- }
- TWarehouseBills housebills = new TWarehouseBills();
- housebills.setfId(fPid);
- if ("XGDD".equals(tWarehouseBills.getfBilltype())) {
- housebills.setfUpdeteStatus(billStatus);
- if (billStatus.longValue() == 6L){
- AjaxResult orderMessage = this.copyKhOrderMessage(fPid);
- String string = orderMessage.get("code").toString();
- if ("500".equals(string)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return orderMessage;
- }
- }
- }else if ("XGTJ".equals(tWarehouseBills.getfBilltype())) {
- housebills.setfSubmitUpdate(billStatus);
- }else if ("DDSC".equals(tWarehouseBills.getfBilltype())) {
- housebills.setfDeleteStatus(billStatus);
- if (billStatus.longValue() == 6L){
- housebills.setDelFlag("1");
- }
- }
- int i = tWarehouseBillsMapper.updateKaHeOrder(housebills);
- if (i <= 0){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("修改订单状态出错");
- }
- if (isApprove) {
- AuditItems auditItems = new AuditItems();
- auditItems.setLevelId(0L);
- auditItems.setBillId(fPid);
- auditItems.setActId(actId);
- auditItems.setIffinalItem("F");
- auditItems.setBillNo(warehouseBills.getfBillno());
- // 存储委托方(货权方)
- auditItems.setRefno1(warehouseBills.getfCorpid() + "");
- // 存储业务类型(业务类型)
- auditItems.setRefno2(tWarehouseBills.getfBilltype());
- // 存储提单号(提单号)
- if (StringUtils.isNotEmpty(warehouseBills.getfMblno())) {
- auditItems.setRefno3(warehouseBills.getfMblno());
- } else {
- auditItems.setRefno3(warehouseBills.getfBillno());
- }
- auditItems.setSendUserId(loginUser.getUser().getUserId());
- auditItems.setSendName(SecurityUtils.getUsername());
- auditItems.setSendTime(new Date());
- auditItems.setAuditUserId(loginUser.getUser().getUserId());
- auditItems.setAuditItem(new Date());
- auditItems.setAuditOpTime(new Date());
- auditItems.setAuditMsg("提交");
- auditItems.setAuditStatus("O");
- auditItems.setFidStatus(fidStatus);
- auditItems.setTimes(1L);
- AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
- // Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
- String code = approvalFlow.get("code").toString();
- // Long code = Long.valueOf(String.valueOf(ajaxResult.get("code"))).longValue();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- }
- return approvalFlow;
- }else {
- TWarehouseBills tWarehousebillsById = tWarehouseBillsMapper.selectTWarehousebillsById(fPid);
- if (tWarehousebillsById.getfSubmitUpdate().longValue() == 6L){
- TWarehouseBills bills = new TWarehouseBills();
- bills.setfId(tWarehousebillsById.getfId());
- bills.setfSubmitUpdate(2L);
- bills.setfUpdeteStatus(2L);
- tWarehouseBillsMapper.updateKaHeOrder(bills);
- }
- }
- return AjaxResult.success();
- }
- @Override
- @Transactional
- public AjaxResult waybillChanges(String tWarehousebills, String tWarehousebillsCntr, String tWarehousebillsCntritems, LoginUser loginUser, String billsType) {
- Date date = new Date();//修改时间
- String userName = loginUser.getUser().getUserName();//修改人
- //修改主表信息
- TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehousebills, TWarehouseBills.class);
- warehouseBills.setUpdateBy(userName);
- warehouseBills.setUpdateTime(date);
- TWarehouseBills tWarehousebillsById = tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId());
- if (tWarehousebillsById.getfUpdeteStatus().longValue() != 6L){
- return AjaxResult.error("修改审批未通过,请提交审批并且审批通过后再保存修改");
- }
- if (tWarehousebillsById.getfSubmitUpdate().longValue() == 4L
- || tWarehousebillsById.getfSubmitUpdate().longValue() == 5L
- || tWarehousebillsById.getfSubmitUpdate().longValue() == 6L){
- return AjaxResult.error("修改已提交审批,不支持修改");
- }
- int i = tWarehouseBillsMapper.updateKaHeOrder(warehouseBills);
- if (i<= 0){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新主表信息出错!");
- }
- //删除箱信息
- tWarehousebillsCntritemsMapper.deleteTWarehousebillsCntritemsfPid(warehouseBills.getfId());
- //修改货物信息
- if (StringUtils.isNotEmpty(tWarehousebillsCntr) && !"[]".equals(tWarehousebillsCntr)){
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(warehouseBills.getfId());
- JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsCntr.class);
- for (TWarehousebillsCntr warehousebillsCntr : tWarehousebillsCntrList) {
- if(warehousebillsCntr.getfId() == null){
- warehousebillsCntr.setfPid(warehouseBills.getfId());
- }
- if (warehousebillsCntr.getCreateTime() == null){
- warehousebillsCntr.setCreateTime(date);
- }else {
- warehousebillsCntr.setUpdateTime(date);
- }
- if (StringUtils.isNull(warehousebillsCntr.getCreateBy())){
- warehousebillsCntr.setCreateBy(userName);
- }else {
- warehousebillsCntr.setUpdateBy(userName);
- }
- tWarehousebillsCntrMapper.insertTWarehousebillsCntr(warehousebillsCntr);
- }
- }
- TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(warehouseBills.getfId());
- //修改箱信息
- if (StringUtils.isNotEmpty(tWarehousebillsCntritems) && !"[]".equals(tWarehousebillsCntritems)){
- JSONArray objects = JSONArray.parseArray(tWarehousebillsCntritems);
- List<TWarehousebillsCntritems> tWarehousebillsCntritemsList = JSONObject.parseArray(objects.toJSONString(), TWarehousebillsCntritems.class);
- for (TWarehousebillsCntritems warehousebillsCntritems : tWarehousebillsCntritemsList) {
- if(warehousebillsCntritems.getfId() == null){
- warehousebillsCntritems.setfPid(warehouseBills.getfId());
- }
- if (warehousebillsCntritems.getCreateTime() == null){
- warehousebillsCntritems.setCreateTime(date);
- }else {
- warehousebillsCntritems.setUpdateTime(date);
- }
- if (StringUtils.isNull(warehousebillsCntritems.getCreateBy())){
- warehousebillsCntritems.setCreateBy(userName);
- }else {
- warehousebillsCntritems.setUpdateBy(userName);
- }
- //判断箱是否存在,判断箱型是否一致
- AjaxResult ajaxResult = this.judgeBoxPile(warehousebillsCntritems, warehousebillsCntr.getfCntrid());
- String code = ajaxResult.get("code").toString();
- if ("500".equals(code)) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.success("error",ajaxResult.get("msg").toString());
- }
- tWarehousebillsCntritemsMapper.insertTWarehousebillsCntritems(warehousebillsCntritems);
- }
- }
- return AjaxResult.success();
- }
- @Override
- @Transactional
- public AjaxResult copyKhOrderMessage(Long fId) {
- int i = tWarehousebillsLoggerMapper.copyTwarehousebills(fId);
- tWarehousebillsCntrLoggerMapper.copyTwarehousebillsCntr(fId);
- tWarehousebillsCntritemsLoggerMapper.copyTwarehousebillsCntritems(fId);
- tWarehousebillsfeesLoggerMapper.copyTWarehousebillsfees(fId);
- if (i>0){
- return AjaxResult.success();
- }else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("运单变更记录日志出错");
- }
- }
- @Override
- public AjaxResult exportInventory(TWarehouseBills tWarehouseBills) {
- //获取船名
- TVessel tVessel = tVesselMapper.selectTVesselById(tWarehouseBills.getfVslid());
- //获取航次
- TVoyage tVoyage = tVoyageMapper.selectTVoyageById(tWarehouseBills.getfVoyid());
- //1.创建一个workbook,对应一个excel文件
- HSSFWorkbook wb = new HSSFWorkbook();
- //2.在workbook中添加一个sheet,对应Excel中的sheet
- HSSFSheet sheet = wb.createSheet("清单");
- //设置每一列的列宽
- sheet.setColumnWidth(0,256*15);
- sheet.setColumnWidth(1,256*20);
- sheet.setColumnWidth(2,256*20);
- sheet.setColumnWidth(3,256*20);
- sheet.setColumnWidth(4,256*15);
- sheet.setColumnWidth(5,256*15);
- sheet.setColumnWidth(6,256*15);
- sheet.setColumnWidth(7,256*35);
- sheet.setColumnWidth(8,256*15);
- sheet.setColumnWidth(9,256*15);
- sheet.setColumnWidth(10,256*15);
- sheet.setColumnWidth(11,256*20);
- sheet.setColumnWidth(12,256*35);
- sheet.setColumnWidth(13,256*35);
- sheet.setColumnWidth(14,256*25);
- sheet.setColumnWidth(15,256*25);
- //3.设置样式以及字体样式
- HSSFCellStyle titleStyle = ExcelUtils.createTitleCellStyle(wb);
- HSSFCellStyle headerStyle = ExcelUtils.createHeadCellStyle(wb);
- HSSFCellStyle contentStyle = ExcelUtils.createContentCellStyle(wb);
- //4.创建标题,合并标题单元格
- //行号
- int rowNum = 0;
- //创建第一行,索引从0开始(标题行)
- HSSFRow row0 = sheet.createRow(rowNum++);
- row0.setHeight((short) 800);// 设置行高
- String title = "青岛凯和志诚物流装船清单";
- HSSFCell c00 = row0.createCell(0);
- c00.setCellValue(title);
- c00.setCellStyle(contentStyle);
- // 合并单元格,参数依次为起始行,结束行,起始列,结束列 (索引0开始)
- sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 15));//标题合并单元格操作,总列数为16
- //第三行
- HSSFRow row1 = sheet.createRow(rowNum++);
- row1.setHeight((short)500);
- String string = "船名:"+tVessel.getfName()+" "+"航次:"+tVoyage.getfNo()+" "+"离港日期";
- String[] row_first = {string};
- for (int i = 0; i < row_first.length; i++) {
- HSSFCell tempCell = row1.createCell(i);
- tempCell.setCellValue(row_first[i]);
- tempCell.setCellStyle(contentStyle);
- }
- //合并单元格
- sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, 15));
- //第四行
- HSSFRow row3 = sheet.createRow(rowNum++);
- row3.setHeight((short)500);
- String[] row_third = {"序号","提单号","箱号","铅封号","尺寸","类型","重量","箱公司","始发港","目的港","货名","运输条款","订舱公司","收货公司名称","收货人地址","收货电话"};
- for (int i = 0; i < row_third.length; i++) {
- HSSFCell tempCell = row3.createCell(i);
- tempCell.setCellValue(row_third[i]);
- tempCell.setCellStyle(contentStyle);
- }
- //根据船名航次查询清单
- List<DeriveInventoryExcel> list = tWarehouseBillsMapper.deriveInventory(tWarehouseBills);
- for(int i = 0;i<list.size();i++){
- HSSFRow tempRow = sheet.createRow(rowNum++);
- tempRow.setHeight((short)500);
- //循环单元格填入数据
- for(int j=0;j<16;j++){
- HSSFCell tempCell = tempRow.createCell(j);
- tempCell.setCellStyle(contentStyle);
- String cellValue = "";
- if(j ==0){
- //序号
- cellValue = list.get(i).getRankNo().toString();
- }else if(j == 1){
- //提单号
- cellValue = list.get(i).getfMblno();
- }else if(j ==2){
- //箱号
- cellValue = list.get(i).getfCntrno();
- }else if(j == 3){
- //铅封号
- cellValue = list.get(i).getfSealno();
- }else if(j ==4){
- //尺寸
- cellValue = list.get(i).getMeasure();
- }else if(j == 5){
- //类型
- cellValue = list.get(i).getGenre();
- }else if(j == 6){
- //重量
- cellValue = list.get(i).getfCntrweight().toString();
- }else if(j ==7){
- //箱公司
- cellValue = list.get(i).getBoxCompany();
- }else if(j == 8){
- //始发港
- cellValue = list.get(i).getPortOfDeparture();
- }else if(j == 9){
- //目的港
- cellValue = list.get(i).getDestinationPort();
- }else if(j == 10){
- //货名
- cellValue = list.get(i).getGoodName();
- }else if(j == 11){
- //运输条款
- cellValue = list.get(i).getTransitClause();
- }else if( j == 12){
- //订舱公司
- cellValue = list.get(i).getBookingCompany();
- }else if(j == 13){
- //收货公司名称
- cellValue = list.get(i).getfConsigneername();
- }else if(j ==14){
- //收货公司地址
- cellValue = list.get(i).getfConsigneeattn();
- }else if(j == 15){
- //收货公司电话
- cellValue = list.get(i).getfConsigneetel();
- }
- tempCell.setCellValue(cellValue);
- }
- }
- //导出excel
- String fileName = "清单.xls";
- try {
- OutputStream out = null;
- out = new FileOutputStream(getAbsoluteFile(fileName));
- wb.write(out);
- if(null != wb && null != out){
- wb.write(out);
- wb.close();
- out.close();
- }
- return AjaxResult.success(fileName);
- }catch (Exception e){
- e.printStackTrace();
- return AjaxResult.error("导出Excel失败");
- }
- }
- @Override
- public AjaxResult deleteOrder(TWarehouseBills tWarehouseBills, LoginUser loginUser) {
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(tWarehouseBills.getfId());
- if (warehouseBills == null){
- return AjaxResult.error("未找到订单信息,请确认");
- }
- //修改订单状态
- TWarehouseBills bills = new TWarehouseBills();
- bills.setfId(tWarehouseBills.getfId());
- bills.setDelFlag("1");
- bills.setUpdateBy(loginUser.getUser().getUserName());
- bills.setUpdateTime(new Date());
- int i = tWarehouseBillsMapper.updateKaHeOrder(bills);
- if (i <= 0){
- return AjaxResult.error("删除订单失败");
- }
- //删除审批流
- int billId = auditItemsMapper.deleteAuditItemsByBillId(tWarehouseBills.getfId());
- return AjaxResult.success();
- }
- @Override
- @Transactional
- public AjaxResult batchModifyingVesselVoyage(Long[] fIds, Long fVessel, Long fVoyage,Long fCargoPlanning) {
- //先查要改的多个订单的船名航次是否一直
- Long fLoadportid = null;
- Long fDestportid = null;
- Integer fLaneid = null;
- if (fVessel != null && fVoyage != null){
- List<TWarehouseBills> tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsByIds(fIds);
- //循环判断是否存在已经离港出运或者到港卸货的船名航次
- if (CollectionUtils.isNotEmpty(tWarehouseBills) && fCargoPlanning.longValue() == 0){
- List<String> list = new ArrayList<>();
- List<String> boxMessage = new ArrayList<>();
- for (TWarehouseBills tWarehouseBill : tWarehouseBills) {
- if (tWarehouseBill.getfCargoPlanning().longValue() == 0){
- list.add(tWarehouseBill.getfBillno());
- }
- //查询货物信息中的箱量
- TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(tWarehouseBill.getfId());
- //查询箱信息数量
- List<TWarehousebillsCntritems> tWarehousebillsCntritems = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsByPId(tWarehouseBill.getfId());
- if (CollectionUtils.isEmpty(tWarehousebillsCntritems) || tWarehousebillsCntritems.size() != warehousebillsCntr.getfCntrcount()){
- boxMessage.add(tWarehouseBill.getfBillno());
- }
- }
- if (CollectionUtils.isNotEmpty(list) || CollectionUtils.isNotEmpty(boxMessage)){
- String message = "";
- if (CollectionUtils.isNotEmpty(boxMessage) && CollectionUtils.isNotEmpty(list)){
- StringBuffer stringBuffer = new StringBuffer("订单缺少箱信息或者箱量不足,订单号为:");
- stringBuffer.append(org.apache.commons.lang.StringUtils.join(boxMessage.toArray(), ","));
- StringBuffer buffer = new StringBuffer("订单已配船请勿重复配船,订单号为:");
- buffer.append(org.apache.commons.lang.StringUtils.join(list.toArray(), ","));
- message = message+stringBuffer.toString()+","+buffer.toString();
- }else if (CollectionUtils.isNotEmpty(boxMessage) && CollectionUtils.isEmpty(list)){
- StringBuffer stringBuffer = new StringBuffer("订单缺少箱信息或者箱量不足,订单号为:");
- stringBuffer.append(org.apache.commons.lang.StringUtils.join(boxMessage.toArray(), ","));
- message = message+stringBuffer.toString();
- }else if (CollectionUtils.isEmpty(boxMessage) && CollectionUtils.isNotEmpty(list)){
- StringBuffer buffer = new StringBuffer("订单已配船请勿重复配船,订单号为:");
- buffer.append(org.apache.commons.lang.StringUtils.join(list.toArray(), ","));
- message= message+buffer.toString();
- }
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error(message);
- }
- }
- ArrayList<TWarehouseBills> collect = tWarehouseBills.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TWarehouseBills -> TWarehouseBills.getfVslid() + ";"+ TWarehouseBills.getfVoyid()))), ArrayList::new));
- if (collect.size()>1){
- return AjaxResult.error("请选择相同的船名航次");
- }
- }else {
- List<TWarehouseBills> tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsByIds(fIds);
- if (CollectionUtils.isNotEmpty(tWarehouseBills) && fCargoPlanning.longValue() == 1){
- List<String> list = new ArrayList<>();
- for (TWarehouseBills tWarehouseBill : tWarehouseBills) {
- if (tWarehouseBill.getfArrivalStatus().longValue() != 0){
- list.add(tWarehouseBill.getfBillno());
- }
- }
- if (CollectionUtils.isNotEmpty(list)){
- StringBuffer stringBuffer = new StringBuffer("订单已离港出运或到港卸货,订单号为:");
- stringBuffer.append(org.apache.commons.lang.StringUtils.join(list.toArray(), ","));
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error(stringBuffer.toString());
- }
- }
- }
- //一致批量更改船名航次
- if (fVoyage != null){
- TVoyage voyage = tVoyageMapper.selectTVoyageById(fVoyage);
- fLoadportid = voyage.getfPortofloadid();
- fDestportid = voyage.getfDistinationid();
- fLaneid = voyage.getfLaneid();
- }
- int i = tWarehouseBillsMapper.updateTWarehousebillsByIds(fIds, fVessel, fVoyage,fCargoPlanning,
- fLoadportid,fDestportid,fLaneid);
- if (i>= 1){
- return AjaxResult.success();
- }else {
- return AjaxResult.error("批量更新失败");
- }
- }
- @Override
- public int updateKaHeOrder(TWarehouseBills tWarehousebills) {
- return tWarehouseBillsMapper.updateKaHeOrder(tWarehousebills);
- }
- @Override
- public List<SingleVoyageByShipExcel> singleVoyageByShip(TWarehouseBills tWarehouseBills) {
- return tWarehouseBillsMapper.singleVoyageByShip(tWarehouseBills);
- }
- private String getAbsoluteFile(String fileName) {
- String downloadPath = RuoYiConfig.getDownloadPath() + fileName;
- File desc = new File(downloadPath);
- if (!desc.getParentFile().exists())
- {
- desc.getParentFile().mkdirs();
- }
- return downloadPath;
- }
- /**
- * 判断能否提交审批
- * @param billType
- * @param fid
- * @return
- */
- public boolean judgmentMessage(String billType,Long fid){
- TWarehouseBills warehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(fid);
- if ("XGDD".equals(billType) && warehouseBills.getfUpdeteStatus() == 2L) {
- return true;
- }else if ("XGDD".equals(billType) && warehouseBills.getfUpdeteStatus() == 3L) {
- return true;
- } else if ("XGTJ".equals(billType) && warehouseBills.getfSubmitUpdate() == 2L) {
- return true;
- }else if ("XGTJ".equals(billType) && warehouseBills.getfSubmitUpdate() == 3L) {
- return true;
- } else if ("DDSC".equals(billType) && warehouseBills.getfDeleteStatus() == 2L) {
- return true;
- } else if ("DDSC".equals(billType) && warehouseBills.getfDeleteStatus() == 3L) {
- return true;
- }
- return false;
- }
- /**
- * 撤销入账
- *
- * @param warehouseBills 主表
- * @param warehousebillsitems 明细
- * @param loginUser 当前登录人
- * @param billsType 状态
- * @return 结果
- */
- @Override
- @Transactional
- public AjaxResult revokeTWarehousebillsById1(String warehouseBills, String warehousebillsitems, String tEnclosure,
- String warehousebillsfeesCr, String warehousebillsfeesDr, LoginUser loginUser, String tCntr, String billsType) {
- if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
- return AjaxResult.error("未找到主表信息");
- }
- if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
- return AjaxResult.error("未找到入账信息");
- }
- TWarehouseBills tWarehousebills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
- tWarehousebills.setfItemsStatus(1L); //撤销状态
- tWarehousebills.setUpdateTime(new Date());
- tWarehousebills.setUpdateBy(loginUser.getUsername());
- Long timestamp = DateUtils.getTimestamp(new Date());
- tWarehousebills.setfDateChanged(timestamp.toString() + (int) (Math.random() * 900) + 100);
- tEnclosureMapper.deleteByFPid(tWarehousebills.getfId());
- tWarehousebillsfeesMapper.deleteByFPid(tWarehousebills.getfId());
- tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(tWarehousebills.getfId());
- JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- /**
- * 流水号回收
- * 1、 获取所有流水号
- */
- List<String> serialNumberList = new ArrayList<>();
- if (StringUtils.isNotEmpty(warehousebillsitemsList)) {
- int i = 1;
- for (TWarehousebillsitems wb : warehousebillsitemsList) {
- TGoods goods = tGoodsMapper.selectTGoodsById(wb.getfGoodsid());
- if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(wb.getfCntrno())) {
- return AjaxResult.error("仓库明细第"+i+"行未找到箱号");
- }
- if (StringUtils.isNotNull(wb.getfSerialNumber())) {
- serialNumberList.add(wb.getfSerialNumber()); // 流水号回收
- }
- // 查询库存总账
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
- if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
- if (wb.getfIsInventory().equals(0L)) {
- if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) { // 非空 且 撤销数 <= 结余数
- updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
- } else { // 撤销数>结余数
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- }
- wb.setfBillstatus(10L);
- } else if ("SJCKRevoke".equals(billsType)) { // 撤销出库
- if (StringUtils.isNotNull(tWhgenle)) { // 非空
- updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行未查询到库存信息");
- }
- wb.setfBillstatus(10L);
- } else if ("CKDBRevoke".equals(billsType)) { // 调拨 撤销
- Long warehouselocid = wb.getfWarehouselocid();// 原货仓库
- Long transferWarehouselocid = wb.getfTransferWarehouselocid(); // 新仓库
- // 1、新货权方撤销入库
- // 查询库存总账
- wb.setfWarehouselocid(transferWarehouselocid);
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- // 2、原货权方撤销出库
- // 查询库存总账
- wb.setfWarehouselocid(warehouselocid);
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
- wb.setfBillstatus(10L);
- } else if ("HWTGRevoke".equals(billsType)) { // 调拨 撤销
- // 贸易方式
- Long oldfTrademodeid = tWarehousebills.getfTrademodeid();
- // 新贸易方式
- Long newfTrademodeid = tWarehousebills.getfNewTrademodeid();
- Long warehouselocid = wb.getfWarehouselocid();// 原货仓库
- Long transferWarehouselocid = wb.getfTransferWarehouselocid(); // 新仓库
- // 1、新货权方撤销入库
- // 查询库存总账
- wb.setfWarehouselocid(transferWarehouselocid);
- tWarehousebills.setfTrademodeid(newfTrademodeid); // 查询用新的
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- // 2、原货权方撤销出库
- // 查询库存总账
- wb.setfWarehouselocid(warehouselocid);
- tWarehousebills.setfTrademodeid(oldfTrademodeid); // 撤销回到旧的
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
- wb.setfBillstatus(10L);
- } else if ("HQZYRevoke".equals(billsType)) { // 货转撤销
- Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
- Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
- // 1、新货权方撤销入库
- // 查询库存总账
- tWarehousebills.setfCorpid(fTocorpid);
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
- } else {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
- }
- // 2、原货权方撤销出库
- // 查询库存总账
- tWarehousebills.setfCorpid(fCorpid);
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
- wb.setfBillstatus(1L);
- }
- i++;
- wb.setUpdateBy(loginUser.getUser().getUserName());
- wb.setUpdateTime(new Date());
- wb.setfSerialNumber(null);
- if (tWarehousebillsitemsMapper.updateTWarehousebillsitems(wb) <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("新增库存明细失败");
- }
- }
- }
- if (!"HQZYRevoke".equals(billsType)) {
- /**
- * 流水号回收
- * 2、 流水号去重
- * 3、 添加到 billno_del
- */
- List<String> serialNumberNewList = delRepeat(serialNumberList);
- serialNumberNewList.forEach(item -> {
- BillnoDel billnoDel = new BillnoDel();
- billnoDel.setBillType(item.substring(0, 2));
- billnoDel.setBillNo(item);
- billnoDelMapper.insertBillnoDel(billnoDel);
- });
- }
- // 箱型数据
- if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
- List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
- int line = 0;
- for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
- line++;
- if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("箱型数据第" + line + "行数据缺少必填数据");
- }
- cntr.setfPid(tWarehousebills.getfId());
- cntr.setfGoodsid(0L);
- cntr.setfPackageid("0");
- cntr.setfCntrweight(new BigDecimal(0));
- cntr.setCreateBy(loginUser.getUser().getUserName());
- cntr.setCreateTime(new Date());
- tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
- }
- }
- // 附件添加
- if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
- JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
- List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
- for (TEnclosure enclosure : tEnclosureList) {
- enclosure.setfPid(tWarehousebills.getfId());
- enclosure.setCreateBy(loginUser.getUser().getUserName());
- enclosure.setCreateTime(new Date());
- tEnclosureMapper.insertTEnclosure(enclosure);
- }
- }
- // 收款明细添加
- if (StringUtils.isNotEmpty(warehousebillsfeesDr) && !"[]".equals(warehousebillsfeesDr)) {
- JSONArray jsonDrArray = JSONArray.parseArray(warehousebillsfeesDr);
- List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
- wbDr.setfPid(tWarehousebills.getfId());
- wbDr.setfDc("D");
- wbDr.setCreateBy(loginUser.getUser().getUserName());
- wbDr.setCreateTime(new Date());
- if (tWarehousebills.getfBsdate() != null && !tWarehousebills.getfBsdate().equals("")) {
- wbDr.setfBsdate(tWarehousebills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
- }
- }
- // 付款明细添加
- if (StringUtils.isNotNull(warehousebillsfeesCr) && !"[]".equals(warehousebillsfeesCr)) {
- JSONArray jsonCrArray = JSONArray.parseArray(warehousebillsfeesCr);
- List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
- for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
- wbCr.setfPid(tWarehousebills.getfId());
- wbCr.setfDc("C");
- wbCr.setCreateBy(loginUser.getUser().getUserName());
- wbCr.setCreateTime(new Date());
- if (tWarehousebills.getfBsdate() != null && !tWarehousebills.getfBsdate().equals("")) {
- wbCr.setfBsdate(tWarehousebills.getfBsdate());
- }
- tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
- }
- }
- //从表更新完再查询主表信息修改入库件数
- TWarehousebillsitems itemInFo = tWarehousebillsitemsMapper.selectItemQtyByFPid(tWarehousebills.getfId());
- tWarehousebills.setfQty(itemInFo.getfQty());
- tWarehousebills.setfNetweight(itemInFo.getfNetweight());
- tWarehousebills.setfGrossweight(itemInFo.getfGrossweight());
- tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
- return AjaxResult.success(tWarehousebills.getfDateChanged());
- }
- public static List<String> delRepeat(List<String> list) {
- List<String> myList = list.stream().distinct().collect(Collectors.toList());
- return myList;
- }
- /**
- * 添加 库存明细状态
- *
- * @param wbItem
- * @param status
- * @param loginUser
- */
- public void insertTWarehousebillsLog(TWarehousebillsitems wbItem, Long status, LoginUser loginUser) {
- // 添加状态log
- TWarehousebillsLog tWarehousebillsLog = new TWarehousebillsLog();
- tWarehousebillsLog.setfPid(wbItem.getfPid());
- tWarehousebillsLog.setfItmeid(wbItem.getfId());
- tWarehousebillsLog.setfItmestatus(status);
- tWarehousebillsLog.setCreateTime(new Date());
- tWarehousebillsLog.setCreateBy(loginUser.getUser().getUserName());
- tWarehousebillsLogMapper.insertTWarehousebillsLog(tWarehousebillsLog);
- }
- /**
- * 删除 库存明细
- *
- * @param fid
- * @param tWarehousebillsitems
- */
- public void deleteBillsitems(Long fid, String tWarehousebillsitems) {
- List<Long> oldList = new ArrayList<Long>();
- List<Long> newList = new ArrayList<Long>();
- // 查询所有从表数据
- TWarehousebillsitems tWarehousebillsitem = new TWarehousebillsitems();
- tWarehousebillsitem.setfPid(fid);
- List<TWarehousebillsitems> warehousebillsitemsList = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitem);
- warehousebillsitemsList.forEach(wb ->
- oldList.add(wb.getfId())
- );
- // 获取提交从表数据ID
- if (tWarehousebillsitems != null) {
- JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
- List<TWarehousebillsitems> warehousebillsitemsLists = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
- warehousebillsitemsLists.forEach(wb ->
- newList.add(wb.getfId())
- );
- }
- // 删除多余的ID
- List<Long> reduce1 = oldList.stream().filter(item -> !newList.contains(item)).collect(toList());
- reduce1.forEach(id ->
- tWarehousebillsitemsMapper.deleteTWarehousebillsitemsById(id)
- );
- }
- /**
- * 库容-结余毛重
- *
- * @param fTotalgross
- * @param fGrossweightblc
- * @return
- */
- public static BigDecimal calculation1(String fTotalgross, String fGrossweightblc) {
- BigDecimal num1 = new BigDecimal(fTotalgross);
- BigDecimal num2 = new BigDecimal(fGrossweightblc);
- BigDecimal result = num1.subtract(num2);
- return result.setScale(2, BigDecimal.ROUND_HALF_UP);
- }
- /**
- * 判断 是否允许 入库
- *
- * @param fId
- */
- public int calculation(Long fId, BigDecimal fGrossweight) {
- // 仓库库容
- TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(fId);
- // 毛重公斤转化为吨
- fGrossweight = fGrossweight.divide(new BigDecimal(1000), 0, BigDecimal.ROUND_HALF_UP);
- // 总账使用
- List<Map<String, Object>> whouseList = tWhgenlegMapper.selectWareHouseListWhouse(fId);
- if (whouseList != null && whouseList.size() > 0) {
- String fTotalgross = null;
- String fGrossweightblc = null;
- for (Map<String, Object> m : whouseList) {
- for (String k : m.keySet()) {
- // 获取毛重库容
- if (k.equals("fTotalgross")) {
- fTotalgross = m.get(k).toString();
- }
- if (k.equals("fGrossweightD")) {
- fGrossweightblc = m.get(k).toString();
- }
- }
- }
- BigDecimal bd = new BigDecimal(fGrossweightblc);
- fGrossweightblc = bd.divide(new BigDecimal(1000), 0, BigDecimal.ROUND_HALF_UP).toString();
- BigDecimal result = calculation1(fTotalgross, fGrossweightblc);
- if (result.compareTo(fGrossweight) == -1) {
- return 0;// 结余库容小于入库数
- } else {
- return 1;
- }
- } else {
- if (tWarehouse.getfTotalgross() != null) {
- if (tWarehouse.getfTotalgross().compareTo(fGrossweight) == -1) {
- return 0;// 库容小于入库数
- } else {
- return 1;
- }
- } else {
- return 0;// 库容小于入库数
- }
- }
- }
- @Transactional
- public AjaxResult updateKaHeOrder(Long fPid, long fettle, Date auditItem) {
- if (StringUtils.isNull(fPid)) {
- return AjaxResult.error("协议更新状态未找到主表信息,请与管理员联系");
- }
- TWarehouseBills tWarehouseBills = new TWarehouseBills();
- tWarehouseBills.setfId(fPid);
- tWarehouseBills.setfBillstatus(fettle);
- if (fettle == 11L) {
- tWarehouseBills.setfReviewDate(auditItem);
- }
- int tFeeUpdateResult = tWarehouseBillsMapper.updateKaHeOrder(tWarehouseBills);
- if (tFeeUpdateResult <= 0) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("更新订单主表状态失败,请联系管理员");
- }
- return AjaxResult.success();
- }
- /**
- * 根据fid获取订单主表信息
- *
- * @param fid
- * @return
- */
- public TWarehouseBills selectKaHeById(Long fid) {
- return tWarehouseBillsMapper.selectTWarehousebillsById(fid);
- }
- /**
- * 查询是否开启审批流
- * @param billsType
- * @return
- */
- public SysConfig queryWarehouseConfig (String billsType) {
- String key = "";
- if ("SJRK".equals(billsType)) {
- key = "instock.orders.approval";
- } else if ("SJCK".equals(billsType)) {
- key = "outStock.orders.approvalFlow";
- } else if ("CKDB".equals(billsType)) {
- key = "stockTransfer.orders.approvalFlow";
- } else if ("HQZY".equals(billsType)) {
- key = "transfer.orders.approvalFlow";
- } else if ("HWTG".equals(billsType)) {
- key = "cargoClearance.orders.approvalFlow";
- } else if ("SJRKITEM".equals(billsType)) {
- key = "warehouse.inStockItem.ApprovalFlow";
- }else if ("SJCKITEM".equals(billsType)) {
- key = "warehouse.outStockItem.ApprovalFlow";
- }
- return sysConfigMapper.checkConfigKeyUnique(key);
- }
- /**
- * 查询是对应仓储类型活动号
- * @param billsType
- * @return
- */
- public Long queryWarehouseActId (String billsType) {
- long actId = 0L;
- if ("SJRK".equals(billsType)) {
- actId = 110L;
- } else if ("SJCK".equals(billsType)) {
- actId = 120L;
- } else if ("CKDB".equals(billsType)) {
- actId = 140L;
- } else if ("HQZY".equals(billsType)) {
- actId = 130L;
- } else if ("HWTG".equals(billsType)) {
- actId = 160L;
- }
- return actId;
- }
- /**
- * 校验仓储主表字段是否为空
- * 后续优化进入系统
- * @param warehousebill
- * @return
- */
- public String checkWarehouse (TWarehouseBills warehousebill) {
- if (StringUtils.isNull(warehousebill.getfCorpid())) {
- return "请维护主表客户信息";
- }
- if (StringUtils.isNull(warehousebill.getfBsdate())) {
- return "请维护主表业务日期";
- }
- if (StringUtils.isNull(warehousebill.getfWarehouseid())) {
- return "请维护主表仓库信息";
- }
- if (("SJRK".equals(warehousebill.getfBilltype()) || "SJCK".equals(warehousebill.getfBilltype()))
- && StringUtils.isNull(warehousebill.getfFeetunit())) {
- return "请维护主表业务计费单位";
- }
- if (("SJRK".equals(warehousebill.getfBilltype()) || "HQZY".equals(warehousebill.getfBilltype()))
- && StringUtils.isNull(warehousebill.getfChargedate())) {
- return "请维护主表仓储费计费日期";
- }
- if ("SJRK".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfGoodsid())) {
- return "请维护主表商品信息";
- }
- if (!"HQZY".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfStorekeeper())) {
- return "请维护主表仓管员信息";
- }
- if ("SJRK".equals(warehousebill.getfBilltype()) && StringUtils.isEmpty(warehousebill.getfMblno())) {
- return "请维护主表提单号";
- }
- if ("CKDB".equals(warehousebill.getfBilltype()) && StringUtils.isEmpty(warehousebill.getfBusinessType())) {
- return "请维护主表作业类型";
- }
- if (("HQZY".equals(warehousebill.getfBilltype()) || "HWTG".equals(warehousebill.getfBilltype()))
- && StringUtils.isNull(warehousebill.getfTrademodeid())) {
- return "请维护主表贸易方式";
- }
- if ("HWTG".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfNewTrademodeid())) {
- return "请维护主表新贸易方式";
- }
- return null;
- }
- /**
- * 获取最小仓储费计算日期
- * @param fId
- * @param date
- * @return
- */
- public boolean getFchargedate(Long fId,Date date) {
- Date fchargedate = tWarehousebillsitemsMapper.getFchargedate(fId);
- if (fchargedate == null){
- return true;
- }
- int i = date.compareTo(fchargedate);
- if (i == -1){
- return false;
- }else {
- return true;
- }
- }
- /**
- * 获取仓储费最小日期并更新入库明细的仓储费计算日期
- * @param fId
- * @return
- */
- public AjaxResult updateFchargeDate(Long fId) throws ParseException {
- Date fchargedate = tWarehousebillsitemsMapper.getFchargedate(fId);
- int i = tWarehousebillsitemsMapper.warehouseItemfChargedate(fId, fchargedate);
- if (i>0){
- return AjaxResult.success();
- }else if (i == 0){
- return AjaxResult.error("更新最小仓储费计算日期出错,请找管理员");
- }else {
- return AjaxResult.success();
- }
- }
- /**
- * 判断箱号是否存在 箱型是否一致
- * @param tWarehousebillsCntritems 箱信息表
- * @param fId 货物信息表箱类型ID
- * @return
- */
- public AjaxResult judgeBoxPile(TWarehousebillsCntritems tWarehousebillsCntritems,Long fId){
- //判断箱子是否存在
- TCntrno tCntrno = tCntrnoMapper.selectTCnTrNoByfNo(tWarehousebillsCntritems.getfCntrno());
- if (tCntrno == null){
- return AjaxResult.error("箱号"+tWarehousebillsCntritems.getfCntrno()+"不存在");
- }
- //判断箱型是否一致
- //TCntr tCntr = tCntrMapper.selectTCntrById(fId);//查询货物信息对应的箱类型
- TCntrno cnTrNo = tCntrnoMapper.selectTCnTrNoByfNo(tWarehousebillsCntritems.getfCntrno());//查询箱号对应的箱信息
- TCntr tCntr = tCntrMapper.selectTCntrById(cnTrNo.getfTypeid());//查询箱类型
- if (cnTrNo != null && cnTrNo.getfTypeid() == tWarehousebillsCntritems.getfCntrid()){
- if (tWarehousebillsCntritems.getfCntrid() != fId){
- TCntr cntr = tCntrMapper.selectTCntrById(fId);
- return AjaxResult.error("箱号"+tWarehousebillsCntritems.getfCntrno()+"跟货物信息中箱类型不一致,箱类型应为:"+cntr.getfNo());
- }
- }else if (cnTrNo != null && cnTrNo.getfTypeid() != tWarehousebillsCntritems.getfCntrid()){
- return AjaxResult.error("箱号"+tWarehousebillsCntritems.getfCntrno()+"跟基础信息中箱类型不一致,箱类型应为:"+tCntr.getfNo());
- }
- return AjaxResult.success();
- }
- @Override
- @Transactional
- public AjaxResult updateBoxMessage(TCntrnoMessage tCntrno,LoginUser loginUser) {
- String remark = tCntrno.getfVsl()+tCntrno.getfVoy();
- Date date = tCntrno.getfUpdatetime();
- //查询船名航次对应的信息
- TWarehouseBills tWarehouseBills = new TWarehouseBills();
- tWarehouseBills.setfVslid(tCntrno.getfVslid());
- tWarehouseBills.setfVoyid(tCntrno.getfVoyid());
- tWarehouseBills.setfCargoPlanning(0L);
- if (tCntrno.getUpdateStatus().longValue() == 1){
- tWarehouseBills.setfArrivalStatus(0);
- List<TWarehouseBills> tWarehouseBillsList = tWarehouseBillsMapper.webVersionOrderList(tWarehouseBills);
- if (CollectionUtils.isEmpty(tWarehouseBillsList)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("该船名航次未配船或已离港出运或到港卸船");
- }
- //获取地点ID
- Long aLong = tAddressMapper.selectTAddressByfName("在船");
- if (aLong == null){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统中缺少在船地点请维护");
- }
- //获取调箱动态ID
- String fOpCTnsTaTus = sysDictDataMapper.selectDictValue("f_opctnstatus", "装船");
- if (StringUtils.isEmpty(fOpCTnsTaTus)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统缺少箱动态装船请维护");
- }
- for (TWarehouseBills bills : tWarehouseBillsList) {
- //查询货物信息
- TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(bills.getfId());
- //查询订单箱信息
- TWarehousebillsCntritems tWarehousebillsCntritems = new TWarehousebillsCntritems();
- tWarehousebillsCntritems.setfPid(bills.getfId());
- List<TWarehousebillsCntritems> warehousebillsCntritems = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(tWarehousebillsCntritems);
- if (CollectionUtils.isNotEmpty(warehousebillsCntritems)){
- for (TWarehousebillsCntritems warehousebillsCntritem : warehousebillsCntritems) {
- TCntrno cntrno = new TCntrno();
- cntrno.setfNo(warehousebillsCntritem.getfCntrno());
- cntrno.setUpdateTime(date);
- cntrno.setUpdateBy(loginUser.getUser().getUserName());
- cntrno.setfUpdatetime(date);
- cntrno.setRemark(remark);
- cntrno.setfUpdateaddress(aLong.toString());
- cntrno.setfOpctnstatus(fOpCTnsTaTus);
- cntrno.setfCntrstatus(warehousebillsCntr.getfCntrstatus());
- tCntrnoMapper.updateTCntrnoByfNo(cntrno);
- //保存历史信息
- TCntrno cntrnoById = tCntrnoMapper.selectTCnTrNoByfNo(warehousebillsCntritem.getfCntrno());
- if (cntrnoById == null){
- continue;
- }
- if (cntrnoById.getfStatus().equals("T") || cntrnoById.getfStatus().equals("正常")) {
- cntrnoById.setfStatus("T");
- } else {
- cntrnoById.setfStatus("F");
- }
- TCntrtracking tCntrtracking = new TCntrtracking();
- BeanUtils.copyProperties(cntrnoById, tCntrtracking);
- tCntrtracking.setfId(null);
- tCntrtracking.setfVoy(tCntrno.getfVoy());//航次
- tCntrtracking.setfVsl(tCntrno.getfVsl());//船名
- tCntrtrackingMapper.insertTCntrtracking(tCntrtracking);
- }
- }
- //修改主表状态为离港出运
- TWarehouseBills warehouseBills = new TWarehouseBills();
- warehouseBills.setfId(bills.getfId());
- warehouseBills.setfArrivalStatus(1);
- tWarehouseBillsMapper.updateKaHeOrder(warehouseBills);
- }
- }else if (tCntrno.getUpdateStatus().longValue() == 2){
- tWarehouseBills.setfArrivalStatus(1);
- List<TWarehouseBills> tWarehouseBillsList = tWarehouseBillsMapper.webVersionOrderList(tWarehouseBills);
- if (CollectionUtils.isEmpty(tWarehouseBillsList)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("该船名航次未离港出运");
- }
- //获取调箱动态ID
- String fOpCTnsTaTus = sysDictDataMapper.selectDictValue("f_opctnstatus", "卸船");
- if (StringUtils.isEmpty(fOpCTnsTaTus)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return AjaxResult.error("系统缺少箱动态卸船请维护");
- }
- for (TWarehouseBills bills : tWarehouseBillsList) {
- //查询货物信息
- TWarehousebillsCntr warehousebillsCntr = tWarehousebillsCntrMapper.selectTWarehousebillsCntrByPId(bills.getfId());
- //查询订单箱信息
- TWarehousebillsCntritems tWarehousebillsCntritems = new TWarehousebillsCntritems();
- tWarehousebillsCntritems.setfPid(bills.getfId());
- List<TWarehousebillsCntritems> warehousebillsCntritems = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(tWarehousebillsCntritems);
- if (CollectionUtils.isNotEmpty(warehousebillsCntritems)){
- for (TWarehousebillsCntritems warehousebillsCntritem : warehousebillsCntritems) {
- TCntrno cntrno = new TCntrno();
- cntrno.setfNo(warehousebillsCntritem.getfCntrno());
- cntrno.setUpdateTime(date);
- cntrno.setUpdateBy(loginUser.getUser().getUserName());
- cntrno.setfUpdatetime(date);
- cntrno.setRemark(null);
- cntrno.setfUpdateaddress(bills.getfDestportid().toString());
- cntrno.setfOpctnstatus(fOpCTnsTaTus);
- cntrno.setfCntrstatus(warehousebillsCntr.getfCntrstatus());
- tCntrnoMapper.updateTCntrnoByfNo(cntrno);
- //保存历史信息
- TCntrno cntrnoById = tCntrnoMapper.selectTCnTrNoByfNo(warehousebillsCntritem.getfCntrno());
- if (cntrnoById.getfStatus().equals("T") || cntrnoById.getfStatus().equals("正常")) {
- cntrnoById.setfStatus("T");
- } else {
- cntrnoById.setfStatus("F");
- }
- TCntrtracking tCntrtracking = new TCntrtracking();
- BeanUtils.copyProperties(cntrnoById, tCntrtracking);
- tCntrtracking.setfId(null);
- tCntrtracking.setfVoy(tCntrno.getfVoy());//航次
- tCntrtracking.setfVsl(tCntrno.getfVsl());//船名
- tCntrtrackingMapper.insertTCntrtracking(tCntrtracking);
- }
- }
- //修改主表状态为已到港卸货
- TWarehouseBills warehouseBills = new TWarehouseBills();
- warehouseBills.setfId(bills.getfId());
- warehouseBills.setfArrivalStatus(2);
- tWarehouseBillsMapper.updateKaHeOrder(warehouseBills);
- }
- }else {
- return AjaxResult.error("请选择离岗出运或到港卸船");
- }
- return AjaxResult.success();
- }
- }
|