| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934 |
- package lingtao.net.util;
- import lingtao.net.bean.Product;
- import lingtao.net.vo.FunReturnVo;
- import org.springframework.util.StringUtils;
- import java.text.DecimalFormat;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.stream.Collectors;
- public class PriceUtils {
- DecimalFormat df = new DecimalFormat("0.00");
- int countArr[] = {500, 1000, 2000, 3000, 5000, 10000, 20000};
- /**
- * 卷标标签价格
- *
- * @param kind
- * @param area
- * @param count
- * @param craft
- * @param tang
- * @param yinbai
- * @return
- */
- public List<Product> rollLabelPrice(String kind, Double area, int count, String[] craft, String yinbai, String tang, double[] tangPrices) {
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- // 最低收费
- double lowerPrice = 0.0;
- // 印工价格
- double yinrPrice = 0.0;
- // 平方单价
- double danjia = 0.0;
- // 总价
- double price = 0.0;
- // 根据报的尺寸、数量算面积(保留2位小数)
- area = Double.valueOf(df.format(area * count));
- if (area <= 20) {
- yinrPrice = 260;
- lowerPrice = 550;
- } else if (area <= 150) {
- yinrPrice = 300;
- lowerPrice = 600;
- }
- switch (kind) {
- /**
- * 0:格底铜版纸卷标 1:格底PP合成纸 2:8丝光白PVC 3:5丝格底透明 4:格底哑金/哑银 5:格底银平光 6:单防热敏纸(底纸白色)
- * 7:三防热敏纸(底纸蓝色)
- */
- case "0":
- // 根据面积得到单价
- if (area <= 20) {
- danjia = 8;
- } else if (area <= 150) {
- danjia = 8;
- } else if (area <= 200) {
- danjia = 10.5;
- } else {
- danjia = 10.3;
- }
- break;
- case "1":
- // 根据面积得到单价
- if (area <= 20) {
- danjia = 10;
- } else if (area <= 150) {
- danjia = 10;
- } else if (area <= 200) {
- danjia = 12.5;
- } else {
- danjia = 12.3;
- }
- break;
- case "2":
- // 根据面积得到单价
- if (area <= 20) {
- danjia = 10;
- } else if (area <= 150) {
- danjia = 10;
- } else if (area <= 200) {
- danjia = 12.5;
- } else {
- danjia = 12.3;
- }
- break;
- case "3":
- // 根据面积得到单价
- if (area <= 20) {
- danjia = 10;
- } else if (area <= 150) {
- danjia = 10;
- } else if (area <= 200) {
- danjia = 12.5;
- } else {
- danjia = 12.3;
- }
- break;
- case "4":
- // 根据面积得到单价
- if (area <= 20) {
- danjia = 12;
- } else if (area <= 150) {
- danjia = 12;
- } else if (area <= 200) {
- danjia = 15;
- } else {
- danjia = 14.8;
- }
- break;
- case "5":
- // 根据面积得到单价
- if (area <= 20) {
- danjia = 12;
- } else if (area <= 150) {
- danjia = 12;
- } else if (area <= 200) {
- danjia = 15;
- } else {
- danjia = 14.8;
- }
- break;
- case "6":
- // 根据面积得到单价
- if (area <= 20) {
- danjia = 9;
- } else if (area <= 150) {
- danjia = 9;
- } else if (area <= 200) {
- danjia = 11;
- } else {
- danjia = 10.8;
- }
- break;
- case "7":
- // 根据面积得到单价
- if (area <= 20) {
- danjia = 9.5;
- } else if (area <= 150) {
- danjia = 9.5;
- } else if (area <= 200) {
- danjia = 11.5;
- } else {
- danjia = 11.3;
- }
- break;
- }
- // 加上覆膜的价格 (覆哑膜/亮膜 0.6元/平方, 镭射膜1元/平方)
- if (!StringUtils.isEmpty(craft)) {
- if ("大雪花镭射膜".equals(craft[0])) {
- danjia = danjia + 1;
- } else if ("覆哑膜".equals(craft[0])) {
- danjia = danjia + 0.8;
- } else {
- danjia = danjia + 0.6;
- }
- }
- price = Math.ceil(Math.max(area * danjia + yinrPrice + count * 0.01, lowerPrice));
- // 如果有印白工艺:2元一平方,最低收费200元
- if (!StringUtils.isEmpty(yinbai)) {
- price = price + (area * 2 > 200 ? area * 2 : 200);
- }
- double tang_price = 0;
- if (!StringUtils.isEmpty(tang) && "烫金".equals(tang)) {
- int[] bigCountArr = {500, 1000, 2000, 3000, 5000, 10000};
- for (int i = 0; i < bigCountArr.length; i++) {
- if (count >= bigCountArr[i]) {
- tang_price = price + tangPrices[i];
- }
- }
- }
- pro.setCount(count);
- pro.setPrice(Math.max(tang_price, price));
- list.add(pro);
- /*
- * for (int i = 0; i < countArr.length; i++) { if (countArr[i] < count) {
- * continue; } if (countArr[i] * area <= 150) { danjia = 15; } else if
- * (countArr[i] * area <= 200) { danjia = 14.5; } else { danjia = 14; } if
- * (!StringUtils.isEmpty(craft)) { if (!"大雪花镭射膜".equals(craft[0])) { danjia =
- * danjia + 1; } else { danjia = danjia + 0.6; } } pro = new Product();
- * pro.setCount(countArr[i]); pro.setPrice(Math.ceil(countArr[i] * area * danjia
- * > 550 ? countArr[i] * area * danjia : 550)); list.add(pro); }
- */
- return list;
- }
- /**
- * 合版封套自定义尺寸
- *
- * @param kind
- * @param count
- * @param min
- * @param priceArr
- * @return
- */
- public List<Product> getEnvelope(String kind, int count, int min, int[] priceArr) {
- int countArr[] = {200, 500, 1000, 2000, 5000, 10000};
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(Math.ceil(min * priceArr[i] + 80 + 0.05 * countArr[i] + 30 + 0.06 * countArr[i]));
- list.add(pro);
- }
- return list;
- }
- /**
- * 房卡套特殊尺寸
- *
- * @param count
- * @param min
- * @return
- */
- public List<Product> getRoomCard(int count, int min) {
- int countArr[] = {200, 500, 1000, 2000, 5000, 10000};
- int priceArr[] = {40, 50, 70, 90, 160, 300};
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(Math.ceil(min * priceArr[i] + 0.05 * countArr[i] + 60 + 30 + 0.06 * countArr[i]));
- list.add(pro);
- }
- return list;
- }
- /**
- * 打印不干胶带纯烫金价格
- *
- * @param kind
- * @param addPrice
- * @param yinbai
- */
- public Product getA(String kind, Double width, Double length, int count, double price, double addPrice,
- Integer number, String craftTang, String yinbai) {
- //List<Product> list = new ArrayList<Product>();
- if ("印白墨".equals(yinbai)) {
- price = 50;
- addPrice = 30;
- } else if ("黑白".equals(yinbai)) {
- price = 40;
- }
- double l = 425;
- double w = 285;
- if ("0".equals(kind) || "4".equals(kind)) {
- l = 430;
- w = 290;
- }
- // 哑金不干胶
- if ("5".equals(kind)) {
- l = 390;
- w = 270;
- }
- Product pro = new Product();
- // 数量*款数就是张数
- count = count * number;
- // 换成毫米每边+2
- length = length * 10 + 4;
- width = width * 10 + 4;
- if ((length > l || width > w) && (length > w || width > l))
- return null;
- // 一张大纸能做多少个此类尺寸的不干胶
- double max = Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length));
- // 报的数量需要多少张大纸
- int num = (int) Math.ceil(count / max);
- price = price + (num - 1) * addPrice;
- if ("纯烫金".equals(craftTang) || "彩色印刷+烫金/银".equals(craftTang)) {
- // 一张纸张价格+大纸张数*addPrice + 每张烫金+20块(1张起收)(5*5cm内30元一张)
- if (width < 54 && length < 54) {
- price += num * 60;
- } else {
- price += num * 40;
- }
- }
- if ("彩色印刷+烫金/银".equals(craftTang)) {
- price = price > 80 ? price : 80;
- }
- // if ("印白墨".equals(yinbai)) {
- // // 透明不干胶,印白墨工艺,每张大纸+20(1张起收)
- // price = price + num * 20;
- // }
- // if(number > 1) {
- // price = price + (number - 1) * 15;
- // }
- pro.setCount(count / number);
- pro.setPrice(Math.ceil(price));
- return pro;
- }
- /**
- * 哑银不干胶价格
- *
- * @param kind
- * @param addPrice
- * @param yinbai
- */
- public List<Product> getYy(String kind, Double width, Double length, int count, double price, double addPrice,
- Integer number, String craftTang, String yinbai) {
- List<Product> list = new ArrayList<Product>();
- double l = 420;
- double w = 285;
- // 换成毫米每边+2
- length = length * 10 + 4;
- width = width * 10 + 4;
- if ((length > l || width > w) && (length > w || width > l))
- return null;
- // 一张大纸能做多少个此类尺寸的不干胶
- double max = Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length));
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- if ("印白墨".equals(yinbai)) {
- price = 50;
- addPrice = 30;
- }
- Product pro = new Product();
- // 数量*款数就是张数
- count = countArr[i] * number;
- // 报的数量需要多少张大纸
- int num = (int) Math.ceil(count / max);
- if ("纯烫金".equals(craftTang)) {
- // 一张纸张价格+大纸张数*addPrice + 每张烫金+20块(1张起收)(5*5cm内30元一张)
- if (width < 54 && length < 54) {
- price = price + (num - 1) * addPrice + num * 30;
- } else {
- price = price + (num - 1) * addPrice + num * 20;
- }
- } else if ("彩色印刷+烫金/银".equals(craftTang)) {
- if (width <= 154 && length <= 154) {
- price = price + (count * 0.15 + 200 > 200 ? count * 0.15 + 200 : 200);
- } else if (width > 154 || length > 154) {
- price = price + (count * 0.13 + 180 > 210 ? count * 0.13 + 180 : 210);
- }
- } else {
- price = price + (num - 1) * addPrice;
- }
- if (number > 1) {
- price = price + (number - 1) * 5;
- }
- // if ("印白墨".equals(yinbai)) {
- // // 透明不干胶,印白墨工艺,每张大纸+20(1张起收)
- // price = price + num * 20;
- // }
- pro.setCount(count / number);
- /*if (length == 14.0 && width == 14.0) {
- price = price * 2;
- }*/
- pro.setPrice(Math.ceil(price));
- list.add(pro);
- }
- return list;
- }
- // 不干胶常规数量美纹纸价格计算
- public List<Product> getMeiWenZhiPrice(Double length, Double width, int count, Integer number, String craftMo) {
- List<Product> priceList = new ArrayList<>();
- int[][] prices = new int[][]{
- {79, 107, 134, 272, 343, 685, 1030, 1374, 1787, 2322, 2748, 3302, 4351},
- {84, 112, 139, 277, 348, 690, 1035, 1379, 1792, 2327, 2753, 3307, 4356},
- {161, 222, 278, 553, 690, 1377, 2065, 2748, 3584, 4653, 5505, 6614, 8712},
- {318, 443, 552, 1101, 1377, 2753, 4119, 5475, 7128, 9108, 10613, 12435, 13068},
- {475, 661, 828, 1652, 2066, 4129, 6178, 8213, 10692, 13662, 15920, 18652, 19602},
- {788, 1099, 1380, 2743, 3430, 6856, 10272, 13613, 17721, 22275, 25542, 29700, 32670},
- {1575, 2188, 2747, 5485, 6859, 13712, 20543, 27225, 35442, 44550, 51084, 59400, 65340},
- {3150, 4355, 5494, 10930, 13662, 27324, 40887, 54054, 69894, 87120, 99000, 114444, 121968},
- };
- int[] count_list = new int[]{200, 500, 1000, 2000, 3000, 5000, 10000, 20000};
- double[] areas = new double[]{26, 37, 49.6, 82, 127, 171, 231, 295, 361, 451, 600.5, 902, 1199};
- double area = length * width;
- for (int i = 0; i < count_list.length; i++) {
- int count_item = count_list[i];
- if (priceList.size() > 2) {
- break;
- }
- if (count > count_item) {
- continue;
- }
- int count_index = Arrays.binarySearch(count_list, count_item);
- double price = 0;
- if (count_index >= 0) {
- price = new PriceUtils().TablePrice(area, prices[count_index], areas);
- }
- Product product = new Product();
- product.setCount(count_item);
- product.setPrice(Math.ceil(price));
- priceList.add(product);
- }
- return priceList;
- }
- /**
- * 插卡遍历添加价格
- */
- private List<Product> acountInsertCardPrice(int count, List<Product> list, Double[] priceArr) {
- int countArr[] = {200, 500, 1000, 2000, 3000, 5000, 10000};
- Product pro;
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(priceArr[i]);
- list.add(pro);
- }
- return list;
- }
- /**
- * 菱形单面直角插排
- */
- public List<Product> getInsertCard(String size, int count) {
- List<Product> list = new ArrayList<>();
- if ("4.5*4.5".equals(size)) {
- Double priceArr[] = {40.0, 50.0, 80.0, 120.0, 160.0, 270.0, 480.0};
- list = acountInsertCardPrice(count, list, priceArr);
- } else if ("5*5".equals(size)) {
- Double priceArr[] = {50.0, 60.0, 80.0, 130.0, 140.0, 300.0, 520.0};
- list = acountInsertCardPrice(count, list, priceArr);
- } else {
- Double priceArr[] = {40.0, 50.0, 70.0, 110.0, 160.0, 260.0, 480.0};
- list = acountInsertCardPrice(count, list, priceArr);
- }
- return list;
- }
- // 9*5.4cm(一个名片位)以内价格
- public List<Product> oneCradPrice(int count) {
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- int countArr[] = {1000, 2000, 5000, 10000, 20000};
- int priceArr[] = {70, 110, 250, 500, 900};
- if (count <= 20000) {
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(Math.ceil(priceArr[i]));
- list.add(pro);
- }
- } else {
- pro = new Product();
- pro.setCount(count);
- pro.setPrice(Math.ceil(count * 0.045));
- list.add(pro);
- }
- return list;
- }
- /**
- * 普通吊牌/服装吊牌 300/350克直角打孔吊牌价格
- *
- * @param dto
- * @param width
- * @param length
- * @param count
- * @param priceList
- * @return
- */
- public List<Product> tags300PriceCraftZhi(Product dto, Double width, Double length, int count,
- List<Product> priceList) {
- double l1;
- double w1;
- double l2;
- double w2;
- int min;
- l1 = Math.ceil(length / 9);
- w1 = Math.ceil(width / 5.4);
- l2 = Math.ceil(width / 9);
- w2 = Math.ceil(length / 5.4);
- // 产品位数
- min = (int) Math.min(l1 * w1, l2 * w2);
- if (min == 1) {
- double priceArr[] = {43, 52, 70, 110, 186, 242, 250, 500};
- priceList = new PriceUtils().acountTags300PriceCraftZhi(count, priceArr);
- } else if (min == 2) {
- double priceArr[] = {48, 70, 75, 110, 180, 230, 270, 520};
- priceList = new PriceUtils().acountTags300PriceCraftZhi(count, priceArr);
- } else if (min == 3) {
- double priceArr[] = {68, 93, 155, 276, 369, 484, 578, 1111};
- priceList = new PriceUtils().acountTags300PriceCraftZhi(count, priceArr);
- } else if (min == 4) {
- double priceArr[] = {80, 100, 186, 333, 496, 617, 736, 1417};
- priceList = new PriceUtils().acountTags300PriceCraftZhi(count, priceArr);
- }
- if (min > 1) {
- for (Product product : priceList) {
- product.setPrice(Math.floor(product.getPrice() * 0.98));
- }
- }
- if ("不覆膜".equals(dto.getCraftMo())) {
- for (Product product : priceList) {
- product.setPrice(Math.floor(product.getPrice() * 0.98));
- }
- }
- // 300克的模切材质才有第二尺寸
- // 第二尺寸不为空
- if (!StringUtils.isEmpty(dto.getSize1())) {
- String size1 = dto.getSize1();
- Double length1 = null;
- Double width1 = null;
- List<Product> priceListSecond = new ArrayList<Product>();
- length1 = Double.valueOf(size1.substring(0, size1.indexOf("*")));
- if (size1.indexOf(("*"), size1.indexOf("*") + 1) == -1) {
- width1 = Double.valueOf(size1.substring(size1.indexOf("*") + 1));
- } else {
- width1 = Double
- .valueOf(size1.substring(size1.indexOf("*") + 1, size1.indexOf(("*"), size1.indexOf("*") + 1)));
- }
- length1 = Math.abs(length1);
- width1 = Math.abs(width1);
- l1 = Math.ceil(length1 / 9);
- w1 = Math.ceil(width1 / 5.4);
- l2 = Math.ceil(width1 / 9);
- w2 = Math.ceil(length1 / 5.4);
- // 产品位数
- min = (int) Math.min(l1 * w1, l2 * w2);
- if (min == 1) {
- double priceArr[] = {43, 52, 72, 128, 186, 242, 276, 526};
- priceListSecond = new PriceUtils().acountTags300PriceCraftZhi(count, priceArr);
- } else if (min == 2) {
- double priceArr[] = {48, 78, 110, 202, 283, 351, 419, 805};
- priceListSecond = new PriceUtils().acountTags300PriceCraftZhi(count, priceArr);
- } else if (min == 3) {
- double priceArr[] = {68, 93, 155, 276, 369, 484, 578, 1111};
- priceListSecond = new PriceUtils().acountTags300PriceCraftZhi(count, priceArr);
- } else if (min == 4) {
- double priceArr[] = {80, 100, 186, 333, 496, 617, 736, 1417};
- priceListSecond = new PriceUtils().acountTags300PriceCraftZhi(count, priceArr);
- }
- if (min > 1) {
- for (Product product : priceListSecond) {
- product.setPrice(Math.floor(product.getPrice() * 0.98));
- }
- }
- if ("不覆膜".equals(dto.getCraftMo())) {
- for (Product product : priceListSecond) {
- product.setPrice(Math.floor(product.getPrice() * 0.98));
- }
- }
- // 如果俩个价格一样,后一位价格+10
- for (int i = 0; i < priceListSecond.size() - 1; i++) {
- if (priceListSecond.get(i).getPrice().equals(priceListSecond.get(i + 1).getPrice())) {
- priceListSecond.get(i + 1).setPrice(priceListSecond.get(i + 1).getPrice() + 10);
- }
- }
- // 俩个尺寸的价格相加 再*0.96
- for (int i = 0; i < priceList.size(); i++) {
- priceList.get(i).setPrice((priceList.get(i).getPrice() + priceListSecond.get(i).getPrice()) * 0.95);
- }
- }
- return priceList;
- }
- /**
- * 吊牌300克直角打孔价格计算
- */
- public List<Product> acountTags300PriceCraftZhi(int count, double[] priceArr) {
- int countArr[] = {200, 500, 1000, 2000, 3000, 4000, 5000, 10000};
- List<Product> list = new ArrayList<>();
- Product pro = new Product();
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(priceArr[i]);
- list.add(pro);
- }
- return list;
- }
- /**
- * 其他吊牌300克 异形模切价格
- *
- * @param dto
- * @param number
- * @param width
- * @param length
- * @param area
- * @param count
- * @param priceList
- * @return
- */
- public List<Product> tags300PriceCraftMo(Product dto, Integer number, Double width, Double length, Double area,
- int count, List<Product> priceList) {
- if (((length <= 9 && width <= 5.4) || (length <= 5.4 && width <= 9))) {
- length = 9.0;
- width = 5.4;
- area = length * width / 10000;
- }
- List<Product> priceList2 = new ArrayList<Product>();
- // 有工艺(覆膜)
- if ("双面覆哑膜".equals(dto.getCraftMo())) {
- double priceArr[] = {27, 18, 15, 14, 14, 14};
- priceList = new PriceUtils().acountTags300PriceCraftMo(area, count, number, priceArr);
- priceList2 = new PriceUtils().acountTags300PriceCraftMo(0.00486, count, number, priceArr);
- } else if ("不覆膜".equals(dto.getCraftMo())) {
- double priceArr[] = {26, 17, 14, 13, 13, 13};
- priceList = new PriceUtils().acountTags300PriceCraftMo(area, count, number, priceArr);
- priceList2 = new PriceUtils().acountTags300PriceCraftMo(0.00486, count, number, priceArr);
- }
- // 自定义尺寸和固定尺寸对比价格。
- for (int i = 0; i < priceList.size(); i++) {
- for (int j = 0; j < priceList2.size(); j++) {
- if (priceList.get(j).getPrice() < priceList2.get(j).getPrice()) {
- priceList.get(j).setPrice(priceList2.get(j).getPrice() + 5);
- }
- }
- }
- // 第二尺寸不为空
- if (!StringUtils.isEmpty(dto.getSize1())) {
- String size1 = dto.getSize1();
- Double length1 = null;
- Double width1 = null;
- Double area1 = null;
- List<Product> priceListSecond = new ArrayList<Product>();
- length1 = Double.valueOf(size1.substring(0, size1.indexOf("*")));
- if (size1.indexOf(("*"), size1.indexOf("*") + 1) == -1) {
- width1 = Double.valueOf(size1.substring(size1.indexOf("*") + 1));
- } else {
- width1 = Double
- .valueOf(size1.substring(size1.indexOf("*") + 1, size1.indexOf(("*"), size1.indexOf("*") + 1)));
- }
- length1 = Math.abs(length1);
- width1 = Math.abs(width1);
- if (((length1 <= 9 && width1 <= 5.4) || (length1 <= 5.4 && width1 <= 9))) {
- length1 = 9.0;
- width1 = 5.4;
- area1 = length1 * width1 / 10000;
- }
- List<Product> priceList3 = new ArrayList<Product>();
- // 有工艺(覆膜)
- if ("双面覆哑膜".equals(dto.getCraftMo())) {
- double priceArr[] = {27, 18, 15, 14, 14, 14};
- priceListSecond = new PriceUtils().acountTags300PriceCraftMo(area1, count, number, priceArr);
- priceList3 = new PriceUtils().acountTags300PriceCraftMo(0.00486, count, number, priceArr);
- } else if ("不覆膜".equals(dto.getCraftMo())) {
- double priceArr[] = {26, 17, 14, 13, 13, 13};
- priceListSecond = new PriceUtils().acountTags300PriceCraftMo(area1, count, number, priceArr);
- priceList3 = new PriceUtils().acountTags300PriceCraftMo(0.00486, count, number, priceArr);
- }
- // 自定义尺寸和固定尺寸对比价格。
- for (int i = 0; i < priceListSecond.size(); i++) {
- for (int j = 0; j < priceList3.size(); j++) {
- if (priceListSecond.get(j).getPrice() < priceList3.get(j).getPrice()) {
- priceListSecond.get(j).setPrice(priceList3.get(j).getPrice() + 5);
- }
- }
- }
- // 俩个尺寸的价格相加 再*0.96
- for (int i = 0; i < priceList.size(); i++) {
- priceList.get(i).setPrice((priceList.get(i).getPrice() + priceListSecond.get(i).getPrice()) * 0.95);
- }
- }
- return priceList;
- }
- /**
- * 其他吊牌300克异形模切价格计算===》 不复膜的 计算方法:长*宽*数量500张*22+每款设计费7元+绳子10元
- *
- * @param area
- * @param count
- * @param number
- * @param priceArr
- * @return
- */
- public List<Product> acountTags300PriceCraftMo(Double area, int count, Integer number, double[] priceArr) {
- int countArr[] = {500, 1000, 2000, 3000, 5000, 10000};
- // 数量大于1万,单独报价;
- List<Product> list = new ArrayList<>();
- Product pro = new Product();
- // 设计费 7元/款
- double designFee = 7;
- // 绳子 1分5一条
- double shengzi = 0.015;
- if (count > 10000) {
- pro.setCount(count);
- pro.setPrice(Math.ceil(area * count * priceArr[priceArr.length - 1] + designFee + count * shengzi));
- list.add(pro);
- } else {
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(Math.ceil(area * countArr[i] * priceArr[i] + designFee + countArr[i] * shengzi));
- list.add(pro);
- }
- }
- return list;
- }
- /**
- * 服装吊牌 300克异形模切价格
- *
- * @param dto
- * @param number
- * @param width
- * @param length
- * @param area
- * @param count
- * @param priceList
- * @return
- */
- public List<Product> tagClothes300PriceCraftMo(Product dto, Integer number, Double width, Double length, Double area, int count, List<Product> priceList) {
- if (((length <= 9 && width <= 5.4) || (length <= 5.4 && width <= 9))) {
- priceList = new PriceUtils().oneCradPrice(count);
- if ("不覆膜".equals(dto.getCraftMo())) {
- for (Product product : priceList) {
- product.setPrice(Math.floor(product.getPrice() * 0.98));
- }
- }
- } else {
- // 有工艺(覆膜)
- if ("双面覆哑膜".equals(dto.getCraftMo())) {
- double priceArr[] = {18, 15, 14, 14};
- // double priceArr[] = { 13, 12, 11.5, 10 };
- priceList = new PriceUtils().acountTagClothes300PriceCraftMo(area, count, number, priceArr);
- } else if ("不覆膜".equals(dto.getCraftMo())) {
- double priceArr[] = {17, 14, 13, 13};
- // double priceArr[] = { 12, 11, 10.5, 9 };
- priceList = new PriceUtils().acountTagClothes300PriceCraftMo(area, count, number, priceArr);
- }
- // 对比固定价格
- /*List<Product> priceList2 = new PriceUtils().oneCradPrice(count);
- if ("不覆膜".equals(dto.getCraftMo())) {
- for (Product product : priceList2) {
- product.setPrice(Math.floor(product.getPrice() * 0.98));
- }
- }*/
- /*for (int i = 0; i < priceList.size(); i++) {
- for (int j = 0; j < priceList2.size(); j++) {
- if (priceList.get(j).getPrice() < priceList2.get(j).getPrice()) {
- priceList.get(j).setPrice(priceList2.get(j).getPrice() + 10);
- }
- }
- }*/
- // 末尾变成0
- /*for (Product product : priceList) {
- product.setPrice(product.getPrice() - product.getPrice() % 10);
- }*/
- // 如果俩个价格一样,后一位价格+10
- for (int i = 0; i < priceList.size() - 1; i++) {
- if (priceList.get(i).getPrice().equals(priceList.get(i + 1).getPrice())) {
- priceList.get(i + 1).setPrice(priceList.get(i + 1).getPrice() + 10);
- }
- if (width == 6 && length == 6 && priceList.get(i).getCount() == 1000) {
- priceList.get(i).setPrice(priceList.get(i).getPrice() + 8);
- }
- }
- }
- // 300克的材质才有第二尺寸
- // 第二尺寸不为空
- if (!StringUtils.isEmpty(dto.getSize1())) {
- String size1 = dto.getSize1();
- Double length1 = null;
- Double width1 = null;
- List<Product> priceListSecond = new ArrayList<Product>();
- length1 = Double.valueOf(size1.substring(0, size1.indexOf("*")));
- if (size1.indexOf(("*"), size1.indexOf("*") + 1) == -1) {
- width1 = Double.valueOf(size1.substring(size1.indexOf("*") + 1));
- } else {
- width1 = Double
- .valueOf(size1.substring(size1.indexOf("*") + 1, size1.indexOf(("*"), size1.indexOf("*") + 1)));
- }
- length1 = Math.abs(length1);
- width1 = Math.abs(width1);
- double area1 = length1 * width1 / 10000;
- if (((length1 <= 10.5 && width1 <= 5.5) || (length1 <= 5.5 && width1 <= 10.5))) {
- priceListSecond = new PriceUtils().oneCradPrice(count);
- if ("不覆膜".equals(dto.getCraftMo())) {
- for (Product product : priceListSecond) {
- product.setPrice(Math.floor(product.getPrice() * 0.98));
- }
- }
- } else {
- // 有工艺(覆膜)
- if ("双面覆哑膜".equals(dto.getCraftMo())) {
- double priceArr[] = {18, 15, 14, 14};
- // double priceArr[] = { 13, 12, 11.5, 10 };
- priceListSecond = new PriceUtils().acountTagClothes300PriceCraftMo(area1, count, number, priceArr);
- } else if ("不覆膜".equals(dto.getCraftMo())) {
- double priceArr[] = {17, 14, 13, 13};
- priceListSecond = new PriceUtils().acountTagClothes300PriceCraftMo(area, count, number, priceArr);
- }
- // 对比固定价格
- List<Product> priceList2 = new PriceUtils().oneCradPrice(count);
- if ("不覆膜".equals(dto.getCraftMo())) {
- for (Product product : priceList2) {
- product.setPrice(Math.floor(product.getPrice() * 0.98));
- }
- }
- for (int i = 0; i < priceListSecond.size(); i++) {
- for (int j = 0; j < priceList2.size(); j++) {
- if (priceListSecond.get(j).getPrice() < priceList2.get(j).getPrice()) {
- priceListSecond.get(j).setPrice(priceList2.get(j).getPrice() + 10);
- }
- }
- }
- // 末尾变成0
- for (Product product : priceListSecond) {
- product.setPrice(product.getPrice() - product.getPrice() % 10);
- }
- // 如果俩个价格一样,后一位价格+10
- for (int i = 0; i < priceListSecond.size() - 1; i++) {
- if (priceListSecond.get(i).getPrice().equals(priceListSecond.get(i + 1).getPrice())) {
- priceListSecond.get(i + 1).setPrice(priceListSecond.get(i + 1).getPrice() + 10);
- }
- }
- }
- // 俩个尺寸的价格相加 再*0.96
- for (int i = 0; i < priceList.size(); i++) {
- priceList.get(i).setPrice((priceList.get(i).getPrice() + priceListSecond.get(i).getPrice()) * 0.95);
- }
- }
- return priceList;
- }
- /**
- * 服装吊牌300克异形模切价格计算===》 不复膜的 计算方法:长*宽*数量500张*22+每款设计费7元+绳子10元
- *
- * @param area
- * @param count
- * @param number
- * @param priceArr
- * @return
- */
- public List<Product> acountTagClothes300PriceCraftMo(Double area, int count, Integer number, double[] priceArr) {
- int countArr[] = {1000, 2000, 5000, 10000};
- // 数量大于1万,单独报价;
- List<Product> list = new ArrayList<>();
- Product pro = new Product();
- // 设计费 7元/款
- double designFee = 7;
- // 绳子 1分5一条
- double shengzi = 0.015;
- if (count > 10000) {
- pro.setCount(count);
- pro.setPrice(Math.ceil(area * count * priceArr[priceArr.length - 1] + number * designFee));
- list.add(pro);
- } else {
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- /* pro.setPrice(Math.ceil(area * countArr[i] * priceArr[i] + number * designFee
- + countArr[i] * shengzi));*/
- pro.setPrice(Math.ceil(area * countArr[i] * priceArr[i] + designFee));
- list.add(pro);
- }
- }
- return list;
- }
- /**
- * 600克 吊牌
- *
- * @param dto
- * @param kind
- * @param kind2
- * @param area
- * @param count
- * @return
- */
- public List<Product> tags600Price(Product dto, String kind, String kind2, Double area, int count) {
- List<Product> priceList;
- priceList = new PriceUtils().getTag600PriceFirst(kind, kind2, area, count, true);
- // 600克的材质才有第二尺寸
- // 第二尺寸不为空
- if (!StringUtils.isEmpty(dto.getSize1())) {
- String size1 = dto.getSize1();
- Double length1 = null;
- Double width1 = null;
- List<Product> priceList2 = new ArrayList<Product>();
- length1 = Double.valueOf(size1.substring(0, size1.indexOf("*")));
- if (size1.indexOf(("*"), size1.indexOf("*") + 1) == -1) {
- width1 = Double.valueOf(size1.substring(size1.indexOf("*") + 1));
- } else {
- width1 = Double
- .valueOf(size1.substring(size1.indexOf("*") + 1, size1.indexOf(("*"), size1.indexOf("*") + 1)));
- }
- length1 = Math.abs(length1);
- width1 = Math.abs(width1);
- double area1 = length1 * width1 / 10000;
- priceList2 = new PriceUtils().getTag600PriceFirst(kind, kind2, area1, count, false);
- // 俩个尺寸的价格相加
- for (int i = 0; i < priceList.size(); i++) {
- priceList.get(i).setPrice((priceList.get(i).getPrice() + priceList2.get(i).getPrice()) * 0.95);
- }
- }
- return priceList;
- }
- /**
- * 吊牌600/800克自定义尺寸价格
- *
- * @param kind 600克/800克
- * @param kind2 种类
- * @param area 单个产品的面积
- * @param count 报的数量
- * @param flag 是否要加绳子费用
- * @return
- */
- public List<Product> getTag600PriceFirst(String kind, String kind2, double area, int count, boolean flag) {
- // 数量大于1万,单独报价;
- if (count > 10000) {
- return null;
- }
- List<Product> list = new ArrayList<>();
- double shengzi = 0;
- if ("4".equals(kind)) {
- if ("无".equals(kind2)) {
- double priceArr[] = {50, 34, 27, 27, 26, 25};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- } else if ("单面烫黄金".equals(kind2)) {
- double priceArr[] = {68, 48, 37, 36, 35, 34};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- } else if ("单面烫镭射银".equals(kind2)) {
- double priceArr[] = {82, 58, 45, 43, 42, 41};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- } else if ("双面烫黄金".equals(kind2)) {
- double priceArr[] = {108, 72, 56, 54, 52, 50};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- } else if ("双面烫镭射银".equals(kind2)) {
- double priceArr[] = {123, 87, 68, 65, 63, 60};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- } else if ("击凸".equals(kind2) || "压凹".equals(kind2)) {
- double priceArr[] = {75, 50, 40, 40, 39, 38};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- } else if ("单面烫黄金+凹凸".equals(kind2)) {
- double priceArr[] = {93, 63, 48, 48, 47, 46};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- } else if ("单面烫金+压凹".equals(kind2)) {
- double priceArr[] = {93, 63, 48, 48, 47, 46};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- } else if ("单面烫金+击凸".equals(kind2)) {
- double priceArr[] = {93, 63, 48, 48, 47, 46};
- list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- }
- }
- if ("6".equals(kind)) {
- double price = 0;
- int[][] prices = {
- {144, 148, 166, 188, 193, 210, 232, 249, 251, 273, 317, 392, 464, 476, 674, 1028, 1802},
- {228, 238, 248, 255, 256, 258, 260, 268, 270, 278, 322, 397, 469, 481, 679, 1033, 1807},
- {330, 345, 350, 380, 386, 390, 420, 428, 430, 465, 538, 665, 780, 800, 1108, 1665, 2920},
- {480, 520, 530, 560, 568, 580, 591, 629, 633, 686, 791, 971, 1141, 1170, 1644, 2486, 4329},
- {800, 820, 860, 870, 880, 900, 955, 1016, 1023, 1107, 1276, 1563, 1838, 1885, 2645, 3997, 6955},
- {1400, 1430, 1450, 1527, 1560, 1690, 1852, 1969, 1982, 2145, 2470, 3022, 3549, 3640, 5102, 7702, 13390}
- };
- int[] count_list = {500, 1000, 2000, 3000, 5000, 10000};
- double[] areas = {16, 25, 30, 35, 36, 40, 45, 48.6, 49, 54, 64, 81, 97.2, 100, 145.8, 225, 400};
- if ("单面烫黄金".equals(kind2)) {
- prices = new int[][]{
- {190, 190, 221, 252, 258, 283, 315, 338, 340, 372, 435, 539, 641, 658, 938, 1438, 2530},
- {195, 195, 226, 257, 263, 288, 319, 343, 345, 377, 439, 544, 646, 663, 943, 1443, 2535},
- {315, 350, 366, 413, 418, 456, 504, 535, 538, 585, 681, 845, 1001, 1027, 1459, 2229, 3913},
- {468, 468, 538, 608, 622, 678, 748, 799, 805, 876, 1016, 1254, 1482, 1521, 2152, 3276, 5733},
- {764, 764, 877, 991, 1014, 1105, 1219, 1301, 1310, 1423, 1651, 2038, 2406, 2470, 3494, 5314, 9295},
- {1495, 1495, 1716, 1937, 1981, 2158, 2379, 2538, 2555, 2776, 3218, 3970, 4686, 4810, 6799, 10335, 18070}
- };
- } else if ("单面烫镭射银".equals(kind2)) {
- prices = new int[][]{
- {190, 190, 221, 252, 258, 283, 315, 338, 340, 372, 435, 539, 641, 658, 938, 1438, 2530},
- {195, 195, 226, 257, 263, 288, 319, 343, 345, 377, 439, 544, 646, 663, 943, 1443, 2535},
- {315, 350, 366, 413, 418, 456, 504, 535, 538, 585, 681, 845, 1001, 1027, 1459, 2229, 3913},
- {468, 468, 538, 608, 622, 678, 748, 799, 805, 876, 1016, 1254, 1482, 1521, 2152, 3276, 5733},
- {764, 764, 877, 991, 1014, 1105, 1219, 1301, 1310, 1423, 1651, 2038, 2406, 2470, 3494, 5314, 9295},
- {1495, 1495, 1716, 1937, 1981, 2158, 2379, 2538, 2555, 2776, 3218, 3970, 4686, 4810, 6799, 10335, 18070}
- };
- } else if ("击凸".equals(kind2) || "压凹".equals(kind2)) {
- prices = new int[][]{
- {196, 196, 229, 261, 268, 295, 326, 350, 352, 385, 450, 560, 665, 684, 976, 1496, 2635},
- {201, 201, 234, 266, 273, 299, 331, 355, 357, 390, 455, 565, 670, 689, 981, 1501, 2639},
- {345, 350, 398, 451, 462, 505, 558, 596, 600, 654, 760, 942, 1114, 1144, 1625, 2475, 4344},
- {507, 507, 585, 663, 678, 741, 819, 876, 881, 959, 1115, 1380, 1634, 1677, 2379, 3627, 6357},
- {829, 829, 955, 1082, 1107, 1209, 1336, 1427, 1437, 1563, 1817, 2249, 2659, 2730, 3871, 5899, 10335},
- {1625, 1625, 1872, 2119, 2168, 2366, 2613, 2791, 2810, 3057, 3551, 4391, 5192, 5330, 7553, 11505, 20150}
- };
- } else if ("双面烫黄金".equals(kind2)) {
- prices = new int[][]{
- {270, 380, 442, 504, 516, 566, 630, 676, 680, 744, 870, 1078, 1282, 1316, 1876, 2876, 5060},
- {278, 390, 452, 514, 526, 576, 638, 686, 690, 754, 878, 1088, 1292, 1326, 1886, 2886, 5070},
- {460, 630, 732, 826, 836, 912, 1008, 1070, 1076, 1170, 1362, 1690, 2002, 2054, 2918, 4458, 7826},
- {682, 936, 1076, 1216, 1244, 1356, 1496, 1598, 1610, 1752, 2032, 2508, 2964, 3042, 4304, 6552, 11466},
- {1118, 1528, 1754, 1982, 2028, 2210, 2438, 2602, 2620, 2846, 3302, 4076, 4812, 4940, 6988, 10628, 18590},
- {2194, 2990, 3432, 3874, 3962, 4316, 4758, 5076, 5110, 5552, 6436, 7940, 9372, 9620, 13598, 20670, 36140}
- };
- } else if ("双面烫镭射银".equals(kind2)) {
- prices = new int[][]{
- {270, 380, 442, 504, 516, 566, 630, 676, 680, 744, 870, 1078, 1282, 1316, 1876, 2876, 5060},
- {278, 390, 452, 514, 526, 576, 638, 686, 690, 754, 878, 1088, 1292, 1326, 1886, 2886, 5070},
- {460, 630, 732, 826, 836, 912, 1008, 1070, 1076, 1170, 1362, 1690, 2002, 2054, 2918, 4458, 7826},
- {682, 936, 1076, 1216, 1244, 1356, 1496, 1598, 1610, 1752, 2032, 2508, 2964, 3042, 4304, 6552, 11466},
- {1118, 1528, 1754, 1982, 2028, 2210, 2438, 2602, 2620, 2846, 3302, 4076, 4812, 4940, 6988, 10628, 18590},
- {2194, 2990, 3432, 3874, 3962, 4316, 4758, 5076, 5110, 5552, 6436, 7940, 9372, 9620, 13598, 20670, 36140}
- };
- } else if ("单面烫黄金+凹凸".equals(kind2)) {
- prices = new int[][]{
- {239, 239, 279, 321, 329, 361, 403, 433, 435, 477, 559, 698, 830, 853, 1222, 1877, 3310},
- {244, 244, 284, 326, 334, 366, 408, 438, 440, 482, 564, 703, 835, 858, 1227, 1882, 3315},
- {397, 430, 460, 524, 537, 588, 651, 697, 702, 766, 894, 1110, 1316, 1352, 1925, 2943, 5174},
- {585, 585, 678, 772, 791, 865, 959, 1027, 1034, 1128, 1315, 1634, 1937, 1989, 2831, 4329, 7605},
- {959, 959, 1111, 1264, 1294, 1417, 1570, 1680, 1692, 1844, 2150, 2670, 3165, 3250, 4625, 7069, 12415},
- {1885, 1885, 2184, 2483, 2542, 2782, 3081, 3296, 3320, 3619, 4217, 5233, 6203, 6370, 9061, 13845, 24310}
- };
- } else if ("单面烫金+压凹".equals(kind2)) {
- prices = new int[][]{
- {239, 239, 279, 321, 329, 361, 403, 433, 435, 477, 559, 698, 830, 853, 1222, 1877, 3310},
- {244, 244, 284, 326, 334, 366, 408, 438, 440, 482, 564, 703, 835, 858, 1227, 1882, 3315},
- {397, 430, 460, 524, 537, 588, 651, 697, 702, 766, 894, 1110, 1316, 1352, 1925, 2943, 5174},
- {585, 585, 678, 772, 791, 865, 959, 1027, 1034, 1128, 1315, 1634, 1937, 1989, 2831, 4329, 7605},
- {959, 959, 1111, 1264, 1294, 1417, 1570, 1680, 1692, 1844, 2150, 2670, 3165, 3250, 4625, 7069, 12415},
- {1885, 1885, 2184, 2483, 2542, 2782, 3081, 3296, 3320, 3619, 4217, 5233, 6203, 6370, 9061, 13845, 24310}
- };
- } else if ("单面烫金+击凸".equals(kind2)) {
- prices = new int[][]{
- {239, 239, 279, 321, 329, 361, 403, 433, 435, 477, 559, 698, 830, 853, 1222, 1877, 3310},
- {244, 244, 284, 326, 334, 366, 408, 438, 440, 482, 564, 703, 835, 858, 1227, 1882, 3315},
- {397, 430, 460, 524, 537, 588, 651, 697, 702, 766, 894, 1110, 1316, 1352, 1925, 2943, 5174},
- {585, 585, 678, 772, 791, 865, 959, 1027, 1034, 1128, 1315, 1634, 1937, 1989, 2831, 4329, 7605},
- {959, 959, 1111, 1264, 1294, 1417, 1570, 1680, 1692, 1844, 2150, 2670, 3165, 3250, 4625, 7069, 12415},
- {1885, 1885, 2184, 2483, 2542, 2782, 3081, 3296, 3320, 3619, 4217, 5233, 6203, 6370, 9061, 13845, 24310}
- };
- }
- for (int i = 0; i < count_list.length; i++) {
- int count_item = count_list[i];
- if (list.size() > 2) {
- break;
- }
- if (count > count_item) {
- continue;
- }
- int count_index = Arrays.binarySearch(count_list, count_item);
- price = 0;
- if (count_index >= 0) {
- price = new PriceUtils().TablePrice(area * 10000, prices[count_index], areas);
- }
- Product product = new Product();
- product.setCount(count_item);
- product.setPrice(Math.ceil(price));
- list.add(product);
- }
- // if ("单面烫黄金".equals(kind2)) {
- // double priceArr[] = {68, 48, 37, 36, 35, 34};
- // list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- // } else if ("击凸".equals(kind2) || "压凹".equals(kind2)) {
- // double priceArr[] = {75, 50, 40, 40, 39, 38};
- // list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- // } else if ("单面烫黄金+凹凸".equals(kind2)) {
- // double priceArr[] = {93, 63, 48, 48, 47, 46};
- // list = acountTag600Price(area, count, priceArr, shengzi, flag, list);
- // }
- }
- return list;
- }
- /**
- * 吊牌600/800克价格计算
- *
- * @param area
- * @param count
- * @param priceArr
- * @param shengzi
- * @param flag
- * @return
- */
- private List<Product> acountTag600Price(double area, int count, double[] priceArr, double shengzi, boolean flag,
- List<Product> list) {
- int countArr[] = {500, 1000, 2000, 3000, 5000, 10000};
- Product pro = new Product();
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- /*if (countArr[i] == 500) {
- continue;
- }*/
- pro = new Product();
- if (countArr[i] == 500) {
- shengzi = 20;
- } else if (countArr[i] == 1000) {
- shengzi = 30;
- } else if (countArr[i] == 2000) {
- shengzi = 50;
- } else {
- shengzi = 0.03;
- }
- pro.setCount(countArr[i]);
- if (flag) {
- pro.setPrice(
- Math.ceil(area * countArr[i] * priceArr[i] + (shengzi > 1 ? shengzi : shengzi * countArr[i])));
- } else {
- pro.setPrice(Math.ceil(area * countArr[i] * priceArr[i]));
- }
- list.add(pro);
- }
- return list;
- }
- /**
- * 异形杯套价格计算
- *
- * @param count
- * @return
- */
- public List<Product> getCupSetPrice(int count) {
- List<Product> list = new ArrayList<>();
- Product pro = new Product();
- int countArr[] = {500, 1000, 2000, 3000, 5000, 10000};
- double priceArr[] = {700, 780, 820, 900, 1300, 1800};
- if (count <= 10000) {
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(priceArr[i]);
- list.add(pro);
- }
- } else {
- pro = new Product();
- pro.setCount(count);
- pro.setPrice(Math.ceil(count * 0.25));
- list.add(pro);
- }
- return list;
- }
- /**
- * 手提袋价格计算
- *
- * @param
- * @param kai 产品开数
- * @return 报价:〔数量除以开数+*纸张《正度或者大度》+印工〔1千印X内150元,每超出1千印另加50元计算》+固定刀版收费200元+粘成品工钱.3*数量(小于200元按2⑾0元算〉〉*.5备注:以上报价展开尺寸最大为1000*700KM超出这个尺寸按以上报价*2倍计算
- */
- public List<Product> getPriceHanding(int count, int kai, double price, double m) {
- List<Product> list = new ArrayList<>();
- int countArr[] = {500, 1000, 2000, 4000, 10000, 20000, 30000};
- Product pro = new Product();
- if (count >= 100) {
- if (count < 670) {
- pro.setCount(count);
- pro.setPrice(Math.ceil((count / kai * price + 150 + 200 + 200) * m));
- list.add(pro);
- } else {
- pro.setCount(count);
- pro.setPrice(Math.ceil(
- (count / kai * price + (150 + Math.ceil((count - 1000) / 1000) * 50) + 200 + count * 0.3) * m));
- list.add(pro);
- }
- }
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || countArr[i] == list.get(0).getCount()) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- if (countArr[i] == 500) {
- pro.setPrice(Math.ceil(
- (countArr[i] / kai * price + (150 + Math.ceil((countArr[i] - 1000) / 1000) * 50) + 200 + 200)
- * m));
- } else {
- pro.setPrice(Math.ceil((countArr[i] / kai * price + (150 + Math.ceil((countArr[i] - 1000) / 1000) * 50)
- + 200 + countArr[i] * 0.3) * m));
- }
- list.add(pro);
- }
- return list;
- }
- /**
- * 计算手提袋大度开数
- *
- * @param length
- * @param width
- * @return
- */
- public static String getDa(double length, double width) {
- double l1 = Math.floor(1194 / length);
- double w1 = Math.floor(889 / width);
- double l2 = Math.floor(1194 / width);
- double w2 = Math.floor(889 / length);
- int maxDa = (int) Math.max(l1 * w1, l2 * w2);
- if (w1 != 2) {
- return "" + maxDa;
- } else {
- double ll1 = Math.floor(length / length);
- double ww1 = Math.floor(889 / width);
- double ll2 = Math.floor(length / width);
- double ww2 = Math.floor(889 / length);
- int maxxa = (int) Math.max(ll1 * ww1, ll2 * ww2);
- double lll1 = Math.floor((1194 - length) / length);
- double www1 = Math.floor(889 / width);
- double lll2 = Math.floor(length / width);
- double www2 = Math.floor(889 / length);
- int maxxb = (int) Math.max(lll1 * www1, lll2 * www2);
- maxDa = maxxb + maxxa;
- return "" + maxDa;
- }
- }
- /**
- * 正度开数
- *
- * @param length
- * @param width
- * @return
- */
- public static String getZheng(double length, double width) {
- double l1 = Math.floor(1092 / length);
- double w1 = Math.floor(787 / width);
- double l2 = Math.floor(1092 / width);
- double w2 = Math.floor(787 / length);
- int maxZheng = (int) Math.max(l1 * w1, l2 * w2);
- if (w1 != 2) {
- return "+" + maxZheng;
- } else {
- double ll1 = Math.floor(length / length);
- double ww1 = Math.floor(787 / width);
- double ll2 = Math.floor(length / width);
- double ww2 = Math.floor(787 / length);
- int maxxa = (int) Math.max(ll1 * ww1, ll2 * ww2);
- double lll1 = Math.floor((1092 - length) / length);
- double www1 = Math.floor(787 / width);
- double lll2 = Math.floor(length / width);
- double www2 = Math.floor(787 / length);
- int maxxb = (int) Math.max(lll1 * www1, lll2 * www2);
- maxZheng = maxxb + maxxa;
- return "" + maxZheng;
- }
- }
- /**
- * 金属标价格计算 ===>最大印刷面积290*190MM 成品尺寸一边加1.5MM 算大张要几张 起步价90元
- * 10张以内不含10张100+25*(数量-2) 20张以内 数量*24 30张以内 数量*22 超过30张*20
- *
- * @param list
- * @param width
- * @param length
- * @param count
- * @param number
- * @return
- */
- public List<Product> getMetalPrice(List<Product> list, Double width, Double length, int count, Integer number) {
- /*if (length == 1) {
- length = 2.0;
- }
- if (width == 1) {
- width = 2.0;
- }*/
- // 最大尺寸29*19cm ,加出血一边5mm
- double l = 295;
- double w = 195;
- Product pro = new Product();
- // 第一张大纸价格
- double price = 0;
- // 换成毫米每边+3
- length = length * 10 + 2 * 1.5;
- width = width * 10 + 2 * 1.5;
- // 数量*款数就是张数
- // count = count * number;
- if ((length > l || width > w) && (length > w || width > l))
- return null;
- // 一张大纸29*19cm 能做多少个此类尺寸的金属标
- double max = Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length));
- // 报的数量需要多少张大纸
- int num = (int) Math.ceil((count * number) / max);
- int numUnit = (int) Math.ceil((count) / max);
- boolean isNumnber = false;
- if (numUnit == 1) {
- isNumnber = true;
- }
- double mulit = 1;
- /*
- * if (num > 2) { price = price + 25 * (num - 2); }
- */
- double design = 0;
- if (!isNumnber) {
- if (numUnit <= 2) {
- price = 80;
- } else if (numUnit < 6) {
- price = 80 + 24 * (numUnit - 2);
- } else if (numUnit < 10) {
- price = 80 + 23 * (numUnit - 2);
- } else if (numUnit < 16) {
- price = 80 + 21 * (numUnit - 2);
- } else if (numUnit < 30) {
- price = 200 + 12 * (numUnit - 2);
- } else if (numUnit < 51) {
- price = 280 + 9 * (numUnit - 2);
- } else if (numUnit < 100) {
- price = Math.ceil((numUnit * 9) / 0.64);
- } else if (numUnit < 300) {
- price = Math.ceil((numUnit * 9) / 0.645);
- } else {
- price = Math.ceil((numUnit * 9) / 0.646);
- }
- mulit = number;
- } else {
- price = 80;
- mulit = Math.ceil(num / numUnit);
- }
- price = Math.ceil(price * mulit);
- pro.setCount(count);
- pro.setPrice(Math.ceil(price + design));
- float d = (float) num / (float) 30;
- if (number > 1) {
- d = d * number;
- }
- pro.setWeight(String.valueOf(df.format(d)));
- list.add(pro);
- return list;
- }
- /**
- * UV转印贴
- *
- * @param area
- * @param type
- * @return
- */
- private double f_getUvPrice(double area, int type) {//根据面积获取价格
- double price = 0, lastPrice = 0;
- double areaArr[] = {0.1, 0.12, 0.15, 0.2, 0.3, 0.4, 0.5, 1, 3, 5, 7, 9, 10, 20, 50, 100, 200, 500, 1000, 5000};
- double priceArr[] = {450, 420, 400, 380, 360, 340, 300, 225, 200, 175, 170, 150, 145, 125, 120, 110, 100, 90, 80, 70};
- double lessPriceArr[] = {215, 215, 215, 215, 215, 215, 215, 200, 170, 160, 150, 140, 135, 115, 110, 100, 90, 80, 70, 60};
- double areaArrSmall[] = {0.03, 0.1};
- double priceArrSmall[] = {30, 50};
- for (int i = 0; i < areaArr.length; i++) {
- if (areaArr[i] < area) {
- continue;
- }
- if (i > 0) {
- if (type == 2) {
- lastPrice = Math.ceil(lessPriceArr[i - 1] * areaArr[i - 1]);
- } else {
- lastPrice = Math.ceil(priceArr[i - 1] * areaArr[i - 1]);
- }
- }
- if (type == 2) {
- price = Math.ceil(lessPriceArr[i] * area);
- } else {
- price = Math.ceil(priceArr[i] * area);
- }
- if (lastPrice > price) {
- price = lastPrice;
- }
- break;
- }
- if (type == 3) {
- for (int i = 0; i < areaArrSmall.length; i++) {
- if (areaArrSmall[i] < area) {
- continue;
- }
- if (i > 0) {
- lastPrice = Math.ceil(priceArrSmall[i - 1]);
- }
- price = Math.ceil(priceArrSmall[i]);
- if (lastPrice > price) {
- price = lastPrice;
- }
- break;
- }
- }
- //最低价65
- if (price == 0) {
- price = 65 * area;
- }
- return price;
- }
- public List<Product> UVStickerPrice(double length, double width, int count, int number, String yinse, String[] zhuan) {
- List<Product> list = new ArrayList<Product>();
- int countArr[] = {10, 20, 30, 50, 100, 200, 300, 400, 500, 800, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000, 50000};
- Product pro;
- int oldCount = count;
- int isInArr = 0;
- double price = 0, mqPrice = 0, lastPrice;
- if (!StringUtils.isEmpty(zhuan) && ("专金".equals(zhuan[0]) || "专银".equals(zhuan[0]) || "印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0]))
- && count < 100) {
- // if (!StringUtils.isEmpty(zhuan) && ("专金".equals(zhuan[0]) || "专银".equals(zhuan[0])) && count < 100) {
- // 烫金100个起
- count = 100;
- }
- double area = (length + 0.3 * 2) * (width + 0.3 * 2) * count / 10000 * number;
- if (!StringUtils.isEmpty(zhuan)) {
- //工艺价格另算
- area = (length + 0.3 * 2) * (width + 0.3 * 2) * count / 10000;
- }
- double lastArea = 0;
- int index = Arrays.binarySearch(countArr, oldCount);
- if (index >= 0) {
- isInArr = 1;
- }
- if (isInArr != 1) {
- price = f_getUvPrice(area, 1);
- price = price > 45 ? price : 45;
- if (area <= 0.2) {
- mqPrice = count * 0.05;
- mqPrice = mqPrice > 5 ? mqPrice : 5;
- Math.ceil(price += mqPrice);
- }
- if (!StringUtils.isEmpty(zhuan)) {
- if ("烫金".equals(zhuan[0]) || "烫银".equals(zhuan[0]) || "烫蓝".equals(zhuan[0]) || "烫红".equals(zhuan[0]) || "烫黑".equals(zhuan[0]) || "镭射银".equals(zhuan[0]) || "镭射金".equals(zhuan[0]) || "玫瑰金".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- } else if ("印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (45 * area);
- price = price > 103 ? price : 103;
- } else if ("双面贴".equals(zhuan[0])) {
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- }
- }
- pro = new Product();
- pro.setPrice(Math.ceil(price));
- pro.setWeight(String.valueOf(df.format(area)));
- pro.setCount(oldCount);
- list.add(pro);
- }
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- if (list.size() > 2) {
- break;
- } else {
- area = (length + 0.3 * 2) * (width + 0.3 * 2) * countArr[i] / 10000 * number;
- if (i > 0) {
- lastArea = (length + 0.3 * 2) * (width + 0.3 * 2) * countArr[i - 1] / 10000 * number;
- }
- if (!StringUtils.isEmpty(zhuan)) {
- //工艺价格另算
- area = (length + 0.3 * 2) * (width + 0.3 * 2) * countArr[i] / 10000;
- if (i > 0) {
- lastArea = (length + 0.3 * 2) * (width + 0.3 * 2) * countArr[i - 1] / 10000;
- }
- }
- // 报价面积,平方米(加一边3mm出血)
- price = f_getUvPrice(area, 1);
- price = price > 45 ? price : 45;
- lastPrice = f_getUvPrice(lastArea, 1);
- if (area <= 0.2) {
- mqPrice = countArr[i] * 0.05;
- mqPrice = mqPrice > 5 ? mqPrice : 5;
- Math.ceil(price += mqPrice);
- }
- if (lastArea <= 0.2 && i > 0) {
- mqPrice = countArr[i - 1] * 0.05;
- mqPrice = mqPrice > 5 ? mqPrice : 5;
- Math.ceil(lastPrice += mqPrice);
- }
- if (area > 0.1) {
- if (lastPrice >= price) {//判断上一个尺寸
- price = Math.ceil(lastPrice * 1.1);
- }
- }
- if (!StringUtils.isEmpty(zhuan)) {
- if ("烫金".equals(zhuan[0]) || "烫银".equals(zhuan[0]) || "烫蓝".equals(zhuan[0]) || "烫红".equals(zhuan[0]) || "烫黑".equals(zhuan[0]) || "镭射银".equals(zhuan[0]) || "镭射金".equals(zhuan[0]) || "玫瑰金".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- // lastPrice = lastPrice + (45 * area);
- // lastPrice = lastPrice > 103 ? lastPrice : 103;
- } else if ("印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (45 * area);
- price = price > 103 ? price : 103;
- // lastPrice = lastPrice + (45 * area);
- // lastPrice = lastPrice > 103 ? lastPrice : 103;
- } else if ("双面贴".equals(zhuan[0])) {
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- }
- }
- pro = new Product();
- pro.setPrice(Math.ceil(price));
- pro.setWeight(String.valueOf(df.format(area)));
- pro.setCount(countArr[i]);
- list.add(pro);
- }
- }
- // if (!StringUtils.isEmpty(zhuan) && ("烫金".equals(zhuan[0]) || "烫银".equals(zhuan[0]) || "印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0]))) {
- // for (Product product : list) {
- // product.setPrice(Math.ceil(product.getPrice() + 60));
- // }
- // }
- if (!StringUtils.isEmpty(zhuan) && ("专金".equals(zhuan[0]) || "专银".equals(zhuan[0]))) {
- for (Product product : list) {
- product.setPrice(Math.ceil(product.getPrice() + 80));
- }
- }
- if (length >= 44 || width >= 44) {
- if (width > length) {
- length = width;
- }
- for (Product product : list) {
- product.setPrice(Math.ceil(product.getPrice() + length * 0.6));
- }
- }
- return list;
- }
- public Product getUVCenterPrice(double length, double width, int count, int number, String[] zhuan, Boolean isSmall) {
- double areaArr[] = {0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 1, 3, 5, 7, 9, 10, 20, 50, 100, 200, 500, 1000, 5000};
- int priceArr[] = {50, 60, 76, 108, 136, 150, 225, 600, 875, 1190, 1350, 1450, 2500, 6000, 11000, 20000, 45000, 80000, 350000};
- double areaArrSmall[] = {0.03, 0.1};
- int priceArrSmall[] = {30, 50};
- double mqPrice = 0;
- double area = (length + 0.3 * 2) * (width + 0.3 * 2) * count / 10000 * number;
- if (!StringUtils.isEmpty(zhuan)) {
- //工艺价格另算
- area = (length + 0.3 * 2) * (width + 0.3 * 2) * count / 10000;
- }
- double price = TablePrice(area, priceArr, areaArr);
- price = price > 45 ? price : 45;
- if (area < 0.1 && area > 0 && isSmall) {
- price = TablePrice(area, priceArrSmall, areaArrSmall);
- if (price == 0) {
- price = Math.ceil(65 * area);
- }
- }
- if (area <= 0.2 && area >= 0.1) {
- mqPrice = count * 0.05;
- mqPrice = mqPrice > 5 ? mqPrice : 5;
- Math.ceil(price += mqPrice);
- }
- if (!StringUtils.isEmpty(zhuan)) {
- if ("烫金".equals(zhuan[0]) || "烫哑金".equals(zhuan[0]) || "烫哑银".equals(zhuan[0]) || "烫银".equals(zhuan[0]) || "烫亮金".equals(zhuan[0]) || "烫银".equals(zhuan[0]) || "烫蓝".equals(zhuan[0]) || "烫红".equals(zhuan[0]) || "烫黑".equals(zhuan[0]) || "玫瑰金".equals(zhuan[0]) || "镭射银".equals(zhuan[0]) || "镭射金".equals(zhuan[0]) || "炫彩镭射".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- } else if ("印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (45 * area);
- price = price > 80 ? price : 80;
- } else if ("双面贴".equals(zhuan[0])) {
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- }
- }
- Product pro = new Product();
- pro.setPrice(Math.ceil(price));
- pro.setCount(count);
- return pro;
- }
- public List<Product> UVStickerSmallPriceV2(double length, double width, int count, int number, String yinse, String[] zhuan, Boolean isSmall) {
- List<Product> list = new ArrayList<>();
- int countArr[] = {10, 20, 30, 50, 100, 200, 300, 400, 500, 800, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000, 50000};
- int oldCount = count;
- if (!StringUtils.isEmpty(zhuan) && ("专金".equals(zhuan[0]) || "专银".equals(zhuan[0])) && count < 100) {
- // 烫金100个起
- count = 100;
- }
- Product firstProduct = getUVCenterPrice(length, width, count, number, zhuan, isSmall);
- firstProduct.setCount(oldCount);
- list.add(firstProduct);
- for (int i = 0; i < countArr.length; i++) {
- if (list.size() > 3) {
- break;
- }
- int currentCount = countArr[i];
- if (currentCount <= count) {
- continue;
- }
- list.add(getUVCenterPrice(length, width, currentCount, number, zhuan, isSmall));
- }
- if (!StringUtils.isEmpty(zhuan) && ("专金".equals(zhuan[0]) || "专银".equals(zhuan[0]))) {
- for (Product product : list) {
- product.setPrice(Math.ceil(product.getPrice() + 60));
- }
- }
- if (length >= 44 || width >= 44) {
- if (width > length) {
- length = width;
- }
- for (Product product : list) {
- product.setPrice(Math.ceil(product.getPrice() + length * 0.6));
- }
- }
- return list;
- }
- /**
- * 小面积UV转印贴报价:
- *
- * @param length
- * @param width
- * @param count
- * @param zhuan
- * @param yinse 印色
- * @return
- */
- public List<Product> UVStickerSmallPrice(double length, double width, int count, int number, String yinse, String[] zhuan) {
- List<Product> list = new ArrayList<Product>();
- int countArr[] = {10, 20, 30, 50, 100, 200, 300, 400, 500, 800, 1000, 2000, 3000, 5000, 10000, 20000, 30000, 40000, 50000};
- Product pro;
- int isInArr = 0;
- int oldCount = count;
- double price = 0, mqPrice = 0, lastPrice, list_lastPrice = 0;
- if (!StringUtils.isEmpty(zhuan) && ("专金".equals(zhuan[0]) || "专银".equals(zhuan[0]) || "印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0]))
- && count < 100) {
- // if (!StringUtils.isEmpty(zhuan) && ("专金".equals(zhuan[0]) || "专银".equals(zhuan[0])) && count < 100) {
- // 烫金100个起
- count = 100;
- }
- double area = (length + 0.3 * 2) * (width + 0.3 * 2) * count / 10000 * number;
- if (!StringUtils.isEmpty(zhuan)) {
- //工艺价格另算
- area = (length + 0.3 * 2) * (width + 0.3 * 2) * count / 10000;
- }
- double lastArea = 0;
- int index = Arrays.binarySearch(countArr, oldCount);
- if (index >= 0) {
- isInArr = 1;
- }
- if (isInArr != 1) {
- price = f_getUvPrice(area, 1);
- price = price > 45 ? price : 45;
- if (area < 0.1 && area > 0) {
- price = f_getUvPrice(area, 3);
- }
- if (area <= 0.2 && area >= 0.1) {
- mqPrice = count * 0.05;
- mqPrice = mqPrice > 5 ? mqPrice : 5;
- Math.ceil(price += mqPrice);
- }
- if (!StringUtils.isEmpty(zhuan)) {
- if ("烫金".equals(zhuan[0]) || "烫哑金".equals(zhuan[0]) || "烫亮金".equals(zhuan[0]) || "烫银".equals(zhuan[0]) || "烫蓝".equals(zhuan[0]) || "烫红".equals(zhuan[0]) || "烫黑".equals(zhuan[0]) || "镭射银".equals(zhuan[0]) || "镭射金".equals(zhuan[0]) || "玫瑰金".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- } else if ("印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (45 * area);
- price = price > 103 ? price : 103;
- } else if ("双面贴".equals(zhuan[0])) {
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- }
- }
- pro = new Product();
- list_lastPrice = Math.max(Math.ceil(price), list_lastPrice);
- pro.setPrice(list_lastPrice);
- pro.setWeight(String.valueOf(df.format(area)));
- pro.setCount(oldCount);
- list.add(pro);
- }
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- if (list.size() > 2) {
- break;
- } else {
- area = (length + 0.3 * 2) * (width + 0.3 * 2) * countArr[i] / 10000 * number;
- if (i > 0) {
- lastArea = (length + 0.3 * 2) * (width + 0.3 * 2) * countArr[i - 1] / 10000 * number;
- }
- if (!StringUtils.isEmpty(zhuan)) {
- //工艺价格另算
- area = (length + 0.3 * 2) * (width + 0.3 * 2) * countArr[i] / 10000;
- if (i > 0) {
- lastArea = (length + 0.3 * 2) * (width + 0.3 * 2) * countArr[i - 1] / 10000;
- }
- }
- // 报价面积,平方米(加一边3mm出血)
- price = f_getUvPrice(area, 1);
- price = price > 45 ? price : 45;
- lastPrice = f_getUvPrice(lastArea, 1);
- if (area < 0.1 && area > 0) {
- price = f_getUvPrice(area, 3);
- lastPrice = f_getUvPrice(lastArea, 3);
- }
- if (area <= 0.2 && area >= 0.1) {
- mqPrice = countArr[i] * 0.05;
- mqPrice = mqPrice > 5 ? mqPrice : 5;
- Math.ceil(price += mqPrice);
- }
- if (lastArea <= 0.2 && area >= 0.1 && i > 0) {
- mqPrice = countArr[i - 1] * 0.05;
- mqPrice = mqPrice > 5 ? mqPrice : 5;
- Math.ceil(lastPrice += mqPrice);
- }
- if (area > 0.1) {
- if (lastPrice >= price) {//判断上一个尺寸
- price = Math.ceil(lastPrice * 1.1);
- }
- }
- if (!StringUtils.isEmpty(zhuan)) {
- if ("烫金".equals(zhuan[0]) || "烫哑金".equals(zhuan[0]) || "烫亮金".equals(zhuan[0]) || "烫银".equals(zhuan[0]) || "烫蓝".equals(zhuan[0]) || "烫红".equals(zhuan[0]) || "烫黑".equals(zhuan[0]) || "镭射银".equals(zhuan[0]) || "镭射金".equals(zhuan[0]) || "玫瑰金".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- // lastPrice = lastPrice + (45 * area);
- // lastPrice = lastPrice > 103 ? lastPrice : 103;
- } else if ("印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0])) {
- // 起步价+58元
- price = price + (45 * area);
- price = price > 103 ? price : 103;
- // lastPrice = lastPrice + (45 * area);
- // lastPrice = lastPrice > 103 ? lastPrice : 103;
- } else if ("双面贴".equals(zhuan[0])) {
- price = price + (40 * area);
- price = price > 80 ? price : 80;
- }
- }
- pro = new Product();
- list_lastPrice = Math.max(Math.ceil(price), list_lastPrice);
- pro.setPrice(list_lastPrice);
- pro.setWeight(String.valueOf(df.format(area)));
- pro.setCount(countArr[i]);
- list.add(pro);
- }
- }
- // if (!StringUtils.isEmpty(zhuan) && ("烫金".equals(zhuan[0]) || "烫银".equals(zhuan[0]) || "印刷+烫金".equals(zhuan[0]) || "印刷+烫银".equals(zhuan[0]))) {
- // for (Product product : list) {
- // product.setPrice(Math.ceil(product.getPrice() + 60));
- // }
- // }
- if (!StringUtils.isEmpty(zhuan) && ("专金".equals(zhuan[0]) || "专银".equals(zhuan[0]))) {
- for (Product product : list) {
- product.setPrice(Math.ceil(product.getPrice() + 60));
- }
- }
- if (length >= 44 || width >= 44) {
- if (width > length) {
- length = width;
- }
- for (Product product : list) {
- product.setPrice(Math.ceil(product.getPrice() + length * 0.6));
- }
- }
- return list;
- }
- /**
- * 少数量(小于10)UV转印贴报价:
- *
- * @param length
- * @param width
- * @param count
- * @param zhuan
- * @param number 印色
- * @return
- */
- public List<Product> UVStickerLessPrice(double length, double width, int count, int number, String[] zhuan) {
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- double area = (length + 0.3 * 2) * (width + 0.3 * 2) * count / 10000;
- if (!StringUtils.isEmpty(zhuan) && count < 25) {
- return list;
- }
- double price = f_getUvPrice(area, 2);
- pro.setPrice(price > 80 ? price : 80);
- pro.setCount(count);
- list.add(pro);
- if (!StringUtils.isEmpty(zhuan)) {
- for (Product product : list) {
- product.setPrice(Math.floor(product.getPrice() + 60 + (30 * area > 15 ? 30 * area : 15)));
- }
- }
- return list;
- }
- /**
- * 条幅
- *
- * @param kind2
- * @param number
- */
- public static List<Product> bannerPrice(String kind2, double length, double width, int count, Integer number, String role) {
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- // 一条条幅的长度
- length = length / 100.0;
- width = width / 100.0;
- double area = length * width * count;
- double price = 0;
- if ("彩色条幅".equals(kind2)) {
- //拼多多价格
- if (role.indexOf("1045") > -1) {
- if (width == 0.5 || length == 0.5) {
- double widthArr[] = {3, 4, 5, 6, 7, 8};
- double unitArr[] = {19, 17.5, 17, 17, 17, 17};
- double baseArr[] = {40, 50, 60, 75, 85, 96};
- for (int i = 0; i < widthArr.length; i++) {
- if (widthArr[i] < width || widthArr[i] < length) {
- continue;
- }
- price = unitArr[i] * area;
- price = price > baseArr[i] ? price : baseArr[i];
- break;
- }
- } else {
- if (area <= 1) {
- price = 45;
- } else if (area <= 2) {
- price = 35 * area;
- } else if (area <= 3) {
- price = 33 * area;
- } else if (area <= 4) {
- price = 32 * area;
- } else if (area <= 5) {
- price = 30 * area;
- } else if (area <= 10) {
- price = 28 * area;
- } else {
- price = 25 * area;
- }
- }
- price = price > 40 ? price : 40;
- } else {
- if (width == 0.5 && length == 3 || width == 3 && length == 0.5) {
- price = 30 * area;
- } else if (width == 0.5 && length == 5 || width == 5 && length == 0.5) {
- price = 24 * area;
- } else if (area <= 1) {
- price = 45;
- } else if (area <= 2) {
- price = 35 * area;
- } else if (area <= 3) {
- price = 33 * area;
- } else if (area <= 4) {
- price = 32 * area;
- } else if (area <= 5) {
- price = 30 * area;
- } else if (area <= 10) {
- price = 28 * area;
- } else {
- price = 25 * area;
- }
- price = price > 45 ? price : 45;
- }
- } else {
- double[] areas = null;
- int[] prices = null;
- double last_price = 0;
- double min_price = 0;
- if ((width == 0.5 && length == 3 && count == 1) || (width == 3 && length == 0.5 && count == 1)) {
- price = 24 * area;
- } else {
- areas = new double[]{1, 2, 3, 4, 5, 10};
- prices = new int[]{35, 30, 24, 21, 18, 16};
- last_price = 13;
- min_price += 40;
- price = Math.max(TableUnitPrice(area, prices, areas, last_price), min_price);
- }
- }
- pro.setCount(count);
- pro.setPrice(Math.ceil(price));
- list.add(pro);
- return list;
- }
- /**
- * 桌贴0.38磨砂背胶价格计算 ======》 最大印刷尺寸40*45CM 最低起步价100元 每增加一张加30元 设计费每款加8元
- * <p>
- * 0.38桌贴(磨砂、哑光、亮光) 最大打印面积 395*445MM 成品最小做到1CM 每边加上1.5MM出血 起步价90元
- * 单面印刷不带胶每增加一张单面加30元 双面打印不带胶每增加一张加36元, 带胶加40元一张 10张以上不分单双面带不带胶 均20元/张
- * 款数不同的每款加上1元的设计费
- *
- * @param list
- * @param width
- * @param length
- * @param count
- * @param number
- * @return
- */
- public List<Product> getDeskSticker(List<Product> list, Double width, Double length, int count, Integer number,
- String craftShua, String craftJiao) {
- // 最大尺寸435*385mm ,加出血一边3mm
- double l = 435;
- double w = 385;
- Product pro = new Product();
- // 价格
- double price = 0;
- // 换成毫米每边+1.5
- length = length * 10 + 2 * 1.5;
- width = width * 10 + 2 * 1.5;
- // 数量*款数就是张数
- count = count * number;
- if ((length > l || width > w) && (length > w || width > l))
- return null;
- // 一张大纸45*40cm 能做多少个此类尺寸的桌贴
- double max = Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length));
- // 报的数量需要多少张大纸
- int num = (int) Math.ceil(count / max);
- if ("单面".equals(craftShua)) {
- if (num > 10) {
- price = 70 + num * 28 + (number - 1);
- } else {
- price = 80 + num * 30 + (number - 1);
- }
- } else if ("双面".equals(craftShua)) {
- if ("背胶".equals(craftJiao)) {
- price = 100 + num * 40 + (number - 1);
- } else {
- price = 100 + num * 36 + (number - 1);
- }
- }
- pro.setCount(count / number);
- pro.setPrice(price > 90 ? price : 90);
- list.add(pro);
- return list;
- }
- /**
- * 桌贴0.38PVC亮光异型卡片 印刷价格
- *
- * @param list
- * @param width
- * @param length
- * @param count
- * @return
- */
- public List<Product> getDeskSticker(List<Product> list, Double width, Double length, int count) {
- double danjia;
- int countArr[] = {500, 1000, 2000, 3000, 5000, 10000};
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- // 面积平方米
- double area = width * length * countArr[i] / 10000;
- Product pro = new Product();
- if (area <= 0.45) {
- danjia = 110;
- } else if (area <= 0.9) {
- danjia = 150;
- } else if (area <= 5) {
- danjia = 100;
- } else if (area <= 10) {
- danjia = 70;
- } else if (area <= 15) {
- danjia = 55;
- } else if (area <= 20) {
- danjia = 50;
- } else if (area <= 30) {
- danjia = 40;
- } else {
- danjia = 30;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(area * danjia > 120 ? area * danjia : 120);
- list.add(pro);
- }
- for (int i = 0; i < list.size() - 1; i++) {
- if (list.get(i + 1).getPrice() - list.get(i).getPrice() < 100) {
- list.get(i + 1).setPrice(list.get(i + 1).getPrice() + 100);
- }
- }
- return list;
- }
- /**
- * 桌贴0.38PVC亮光异型卡片 打印价格
- *
- * @param number
- * @param width
- * @param length
- * @param count
- * @param craftJiao
- * @return 不同款内容的报价:成本核算 有效打印面积 380*420MM 起步价120元 每增加一张单面加30元
- * 双面打印在每增加一张加36元,带胶加每增加一张加40元 10张以上单双面均加22元/张
- */
- public List<Product> getDeskStickerPrint(Double width, Double length, int count, int number, String craftJiao) {
- List<Product> list = new ArrayList<Product>();
- // 有效打印面积 420*380MM,加出血一边3mm
- double l = 426;
- double w = 386;
- Product pro = new Product();
- // 第一张大纸价格
- double price = 120;
- // 换成毫米每边+3
- length = length * 10 + 2 * 3;
- width = width * 10 + 2 * 3;
- // 数量 * 款数就是张数
- count = count * number;
- if ((length > l || width > w) && (length > w || width > l))
- return null;
- // 一张大纸420*380mm 能做多少个此类尺寸的桌贴
- double max = Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length));
- // 报的数量需要多少张大纸
- int num = (int) Math.ceil(count / max);
- // 价格计算
- if ("背胶".equals(craftJiao)) {
- price = price + (num - 1) * 40;
- } else {
- if (num > 10) {
- price = price + (num - 1) * 22;
- } else {
- // 单面
- if ("单面".equals(craftJiao)) {
- price = price + (num - 1) * 30;
- } else if ("双面".equals(craftJiao)) {// 双面
- price = price + (num - 1) * 36;
- }
- }
- }
- pro.setCount(count / number);
- pro.setPrice(price);
- list.add(pro);
- return list;
- }
- /**
- * 滴塑价格计算======> 滴塑 出血位每边加1.5MM 滴塑最大印刷面积43*30CM 起步价80元 2张100元 3张120元 4张150元
- * 5张180元 10张260元 11张以上*25元
- *
- * @param list
- * @param width
- * @param length
- * @param count
- * @param number
- * @param dto
- * @return
- */
- public static List<Product> getDisuPrice(List<Product> list, Double width, Double length, int count, Integer number, Product dto) {
- List<String> craft = dto.getCraft() != null ? Arrays.asList(dto.getCraft()) : new ArrayList<>();
- // 最大尺寸43*30cm
- double l = 430;
- double w = 300;
- Product pro = new Product();
- // 第一张大纸价格
- double price = 80;
- if (craft.size() > 0) {//工艺起步价120
- price = 120;
- }
- // 换成毫米每边+3
- length = length * 10 + 2 * 1.5;
- width = width * 10 + 2 * 1.5;
- // 数量*款数就是张数
- count = count * number;
- if ((length - 3 > l || width - 3 > w) && (length - 3 > w || width - 3 > l)) {
- return null;
- }
- // 一张大纸43*30 能做多少个此类尺寸的
- double max = Math.max(Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length)), 1);
- // 报的数量需要多少张大纸
- int num = (int) Math.ceil(count / max);
- if (num <= 10) {
- price = price + (num - 1) * 20;
- } else if (num > 10) {
- price = num * 25;
- }
- price += 10 * craft.size() * num;
- if (dto.getN_mq_num() > 0) {
- price += 10 * dto.getN_mq_num();
- }
- price = Math.ceil(price + (number - 1) * 8);
- pro.setCount(count / number);
- pro.setPrice(price);
- list.add(pro);
- return list;
- }
- /**
- * 毕业证书价格计算
- *
- * @param count
- */
- public List<Product> getDiploma(int count) {
- List<Product> list = new ArrayList<Product>();
- // 数量
- int countArr[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 500, 1000};
- // 价格
- double priceArray[] = {90, 110, 120, 140, 160, 190, 210, 230, 240, 270, 480, 740, 920, 1200};
- Product pro = new Product();
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- if (list.size() == 4) {
- return list;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(priceArray[i]);
- list.add(pro);
- }
- return list;
- }
- /**
- * 复印纸价格计算
- *
- * @param count
- * @param kind3
- * @param kind2
- * @param kind
- * @param size
- * @return
- */
- public List<Product> getCopyPaper(String kind, String kind2, String kind3, int count, String size) {
- List<Product> list = new ArrayList<Product>();
- double price = 0;
- if ("彩色".equals(kind)) {
- if ("80克双胶纸".equals(kind2)) {
- if ("19*13".equals(size)) {
- if (count == 10) {
- price = 70;
- } else if (count == 20) {
- price = 90;
- } else if (count == 50) {
- price = 150;
- }
- } else if ("28.5*21".equals(size)) {
- if (count == 10) {
- price = 160;
- } else if (count == 20) {
- price = 320;
- } else if (count == 50) {
- price = 900;
- }
- }
- }
- } else {
- if ("60克双胶纸".equals(kind2)) {
- if ("19*13".equals(size)) {
- if (count == 10) {
- if ("单面".equals(kind3)) {
- price = 50;
- } else {
- price = 70;
- }
- } else if (count == 20) {
- if ("单面".equals(kind3)) {
- price = 60;
- } else {
- price = 90;
- }
- } else if (count == 50) {
- if ("单面".equals(kind3)) {
- price = 110;
- } else {
- price = 150;
- }
- }
- } else if ("28.5*21".equals(size)) {
- if (count == 10) {
- if ("单面".equals(kind3)) {
- price = 110;
- } else {
- price = 150;
- }
- } else if (count == 20) {
- if ("单面".equals(kind3)) {
- price = 160;
- } else {
- price = 220;
- }
- } else if (count == 50) {
- if ("单面".equals(kind3)) {
- price = 380;
- } else {
- price = 520;
- }
- }
- }
- } else if ("80克双胶纸".equals(kind2)) {
- if ("19*13".equals(size)) {
- if (count == 10) {
- if ("单面".equals(kind3)) {
- price = 60;
- } else {
- price = 90;
- }
- } else if (count == 20) {
- if ("单面".equals(kind3)) {
- price = 80;
- } else {
- price = 120;
- }
- } else if (count == 50) {
- if ("单面".equals(kind3)) {
- price = 180;
- } else {
- price = 220;
- }
- }
- } else if ("28.5*21".equals(size)) {
- if (count == 10) {
- if ("单面".equals(kind3)) {
- price = 130;
- } else {
- price = 180;
- }
- } else if (count == 20) {
- if ("单面".equals(kind3)) {
- price = 220;
- } else {
- price = 260;
- }
- } else if (count == 50) {
- if ("单面".equals(kind3)) {
- price = 520;
- } else {
- price = 780;
- }
- }
- }
- }
- }
- Product pro = new Product();
- pro = new Product();
- pro.setCount(count);
- pro.setPrice(Math.ceil(price));
- list.add(pro);
- return list;
- }
- /**
- * 婚礼卡价格计算
- *
- * @param length
- * @param width
- * @param count
- * @param number
- * @param craftMo
- * @param craftShua
- * @return
- */
- public List<Product> getWeddingCardPrice(Double length, Double width, int count, Integer number, String craftMo,
- String craftShua) {
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- double weight = 0;
- if ("直角".equals(craftMo) && count <= 300 && ((length == 13 && width == 5.4) || (length == 5.4 && width == 13))) {
- if ("单面印刷".equals(craftShua)) {
- // 数量
- int countArr[] = {100, 200, 300};
- // 价格
- double priceArray[] = {70, 126, 183};
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(priceArray[i]);
- list.add(pro);
- }
- // 根据款数重新算价格
- for (Product product : list) {
- product.setWeight(df.format(length * width * product.getCount() / 10000 * 0.3 * number));
- product.setPrice(Math.ceil(product.getPrice() * number));
- }
- } else if ("双面印刷".equals(craftShua)) {
- // 数量
- int countArr[] = {100, 200, 300};
- // 价格
- double priceArray[] = {108, 189, 275};
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(priceArray[i]);
- list.add(pro);
- }
- // 根据款数重新算价格
- for (Product product : list) {
- product.setPrice(Math.ceil(product.getPrice() * number));
- }
- }
- } else {
- // 转成毫米
- weight = length * width * count / 10000 * 0.3 * number;
- length = length * 10;
- width = width * 10;
- if (count <= 300) {
- double l = 420;
- double w = 285;
- // 打印的加上出血(一边2毫米)
- length = length + 4;
- width = width + 4;
- double price = 0.0;
- // 5张以内价格
- double fixPrice = 50;
- // 每增加1张多少钱
- double zhang = 6;
- // 设计费
- double designFee = 0.0;
- // 婚礼卡,直角工艺每增加一张5元
- if ("直角".equals(craftMo)) {
- zhang = 5;
- }
- /*
- * 婚礼卡设计费成品尺寸90X54MM以内每款收10元 140X100MM以内每款收15元 210X140MM以内30元 210X285MM以内40元
- * 420X285MM以内60元 大于420X285MM80元
- */
- // 设计费不带出血的尺寸
- if ((length - 4 <= 90 && width - 4 <= 54) || (length - 4 <= 54 && width - 4 <= 90)) {
- designFee = 10;
- } else if ((length - 4 <= 140 && width - 4 <= 100) || (length - 4 <= 140 && width - 4 <= 100)) {
- designFee = 15;
- } else if ((length - 4 <= 210 && width - 4 <= 140) || (length - 4 <= 140 && width - 4 <= 210)) {
- designFee = 30;
- } else if ((length - 4 <= 285 && width - 4 - 4 <= 210) || (length - 4 <= 210 && width - 4 <= 285)) {
- designFee = 40;
- } else if ((length - 4 <= 420 && width - 4 <= 285) || (length - 4 <= 285 && width - 4 <= 420)) {
- designFee = 60;
- } else {
- designFee = 80;
- }
- // 一张l/w 大的纸张能做多少个此类尺寸的产品
- double max = Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length));
- // 报的数量需要多少张大纸
- // 需要多少张大纸 = 数量 * 款数 /每张做多少个 ===总数量/每张多少个
- int num = (int) Math.ceil(count * number / max);
- // 5张以内价格 + 每张费用(第6张起收)+ 设计费 * 款数 + 0.1 * 总数量 (排号费)
- price = fixPrice + (num - 5 > 0 ? num - 5 : 0) * zhang + designFee * number + 0.1 * count * number;
- Product dto = new Product();
- dto.setCount(count);
- dto.setPrice(Math.ceil(price));
- list.add(dto);
- } else {
- // 数量
- int countArr[] = {500, 1000, 2000};
- // 价格
- double priceArray[] = {230, 400, 760};
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(priceArray[i]);
- list.add(pro);
- }
- // 根据款数重新算价格
- for (Product product : list) {
- product.setWeight(df.format(weight));
- product.setPrice(Math.ceil(product.getPrice() * number));
- }
- }
- }
- return list;
- }
- /**
- * 贡缎布产品价格
- */
- public static List<Product> satinClothPrice(String kind2, Double length, Double width, int count, Integer number) {
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- double area = length * width / 10000;
- double price = 0, dj = 0;
- if (area < 0.25) {
- dj = 40;
- } else {
- dj = 35;
- }
- area *= count;
- if ("6".equals(kind2)) {
- price = price + 30;
- }
- price = Math.ceil(area * dj > 40 ? area * dj : 40);
- pro.setCount(count);
- pro.setPrice(price * number);
- list.add(pro);
- return list;
- }
- /**
- * 餐垫纸
- *
- * @param kind
- * @param length
- * @param width
- * @param count
- * @return
- */
- public List<Product> getPlaceMatPrice(String kind, Double length, Double width, int count) {
- List<Product> list = new ArrayList<>();
- length = length * 10;
- width = width * 10;
- // Double priceArr[] = { 40.0, 50.0, 80.0, 120.0, 160.0, 270.0, 480.0 };
- // list = acountInsertCardPrice(count, list, priceArr);
- if ((length <= 285 && width <= 210) || length <= 210 && width <= 285) {
- Double priceArr[] = {46.0, 68.0, 117.0, 157.0, 236.0, 457.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 436 && width <= 285 || length <= 285 && width <= 436) {
- Double priceArr[] = {88.0, 122.0, 191.0, 269.0, 457.0, 896.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 638 && width <= 285 || length <= 285 && width <= 638) {
- Double priceArr[] = {137.0, 204.0, 350.0, 489.0, 810.0, 1482.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 852 && width <= 285 || length <= 285 && width <= 852) {
- Double priceArr[] = {183.0, 272.0, 466.0, 652.0, 975.0, 1681.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 1050 && width <= 285 || length <= 285 && width <= 2050) {
- Double priceArr[] = {229.0, 340.0, 582.0, 815.0, 1279.0, 2470.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 587 && width <= 428 || length <= 428 && width <= 587) {
- Double priceArr[] = {195.0, 262.0, 408.0, 554.0, 869.0, 1659.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 638 && width <= 428 || length <= 428 && width <= 638) {
- Double priceArr[] = {252.0, 352.0, 570.0, 755.0, 1191.0, 2263.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 779 && width <= 428 || length <= 428 && width <= 778) {
- Double priceArr[] = {321.0, 430.0, 691.0, 951.0, 1434.0, 2765.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 880 && width <= 428 || length <= 428 && width <= 880) {
- Double priceArr[] = {349.0, 484.0, 796.0, 1051.0, 1681.0, 3258.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 1050 && width <= 428 || length <= 428 && width <= 1050) {
- Double priceArr[] = {419.0, 587.0, 900.0, 1191.0, 1985.0, 3748.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 638 && width <= 574 || length <= 574 && width <= 638) {
- Double priceArr[] = {274.0, 408.0, 699.0, 927.0, 1535.0, 2964.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 779 && width <= 529 || length <= 529 && width <= 779) {
- Double priceArr[] = {321.0, 430.0, 691.0, 951.0, 1434.0, 2765.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 880 && width <= 580 || length <= 580 && width <= 880) {
- Double priceArr[] = {349.0, 484.0, 796.0, 1051.0, 1681.0, 3258.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- } else if (length <= 863 && width <= 638 || length <= 638 && width <= 863) {
- Double priceArr[] = {411.0, 612.0, 993.0, 1390.0, 2303.0, 4446.0};
- list = acountPlaceMatPrice(kind, count, list, priceArr);
- }
- return list;
- }
- /**
- * 餐垫纸遍历添加价格
- */
- private List<Product> acountPlaceMatPrice(String kind, int count, List<Product> list, Double[] priceArr) {
- int countArr[] = {500, 1000, 2000, 3000, 5000, 10000};
- Product pro;
- double beishu = 1;
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- if (countArr[i] <= 500) {
- beishu = 2.2;
- } else if (countArr[i] <= 3000) {
- beishu = 1.8;
- } else {
- beishu = 1.5;
- }
- // 55克 比80克便宜2分钱一张
- if ("1".equals(kind)) {
- pro.setPrice(Math.ceil(priceArr[i] * beishu - countArr[i] * 0.02));
- } else if ("0".equals(kind)) {// 80克
- pro.setPrice(Math.ceil(priceArr[i] * beishu));
- } else if ("2".equals(kind)) {// 100克
- pro.setPrice(Math.ceil(priceArr[i] * beishu * 1.5));
- }
- list.add(pro);
- }
- return list;
- }
- /**
- * 硫酸纸吊牌价格
- *
- * @param count
- */
- public List<Product> getAcidTagsPrice(Double length, Double width, String size1, int count) {
- List<Product> list = new ArrayList<>();
- int countArr[] = {1000, 2000, 5000, 10000};
- if ((length > 6.8 || width > 3) && (length > 3 || width > 6.8)) {
- int priceArr[] = {200, 360, 720, 1300};
- list = acountAcidTagsPrice(count, list, countArr, priceArr);
- } else {
- int priceArr[] = {180, 320, 620, 1100};
- list = acountAcidTagsPrice(count, list, countArr, priceArr);
- }
- return list;
- }
- /**
- * 硫酸纸吊牌价格计算
- *
- * @param count
- * @param list
- * @param countArr
- * @param priceArr
- */
- private List<Product> acountAcidTagsPrice(int count, List<Product> list, int[] countArr, int[] priceArr) {
- Product pro;
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(Math.ceil(priceArr[i]));
- list.add(pro);
- }
- return list;
- }
- /**
- * 号码布价格计算
- *
- * @param kind
- * @param num
- * @param width
- * @param length
- * @param list
- * @param count
- * @return
- */
- public List<Product> getHmbPrice(String kind, int num, Double length, Double width, int count, List<Product> list) {
- Product pro;
- double price = 0;
- if (length == 240 && width == 200 || length == 200 && width == 240) {
- if (kind.equals("春亚布")) {
- price = num * count * 1.8;
- } else {
- price = num * count * 2.5;
- }
- } else if (length == 200 && width == 140 || length == 140 && width == 200) {
- if (kind.equals("春亚布")) {
- price = num * count * 1.5;
- } else {
- price = num * count * 1.3;
- }
- } else {
- if (kind.equals("春亚布")) {
- price = num * count * 1.5;
- } else {
- price = num * count * 1.8;
- }
- }
- pro = new Product();
- pro.setCount(count);
- pro.setPrice(Math.ceil(price) > 50 ? price : 50);
- list.add(pro);
- return list;
- }
- /**
- * 锦旗价格计算
- *
- * @param kind
- * @param num
- * @param width
- * @param length
- * @param list
- * @param count
- * @return
- */
- public List<Product> getJQPrice(String kind, int num, Double length, Double width, int count, List<Product> list) {
- Product pro;
- double price = 0;
- if (length == 60 && width == 90 || length == 90 && width == 60) {
- if (kind.equals("小龙须黄字")) {
- price = num * count * 45;
- } else if (kind.equals("小龙须3d镀金")) {
- price = num * count * 86;
- } else if (kind.equals("大龙须黄字")) {
- price = num * count * 66;
- } else if (kind.equals("大龙须3d镀金")) {
- price = num * count * 88;
- } else {
- price = num * count * 130;
- }
- } else if (length == 70 && width == 110 || length == 110 && width == 70) {
- if (kind.equals("小龙须黄字")) {
- price = num * count * 47;
- } else if (kind.equals("小龙须3d镀金")) {
- price = num * count * 88;
- } else if (kind.equals("大龙须黄字")) {
- price = num * count * 80;
- } else {
- price = num * count * 98;
- }
- } else if (length == 80 && width == 120 || length == 120 && width == 80) {
- if (kind.equals("小龙须黄字")) {
- price = num * count * 85;
- } else if (kind.equals("小龙须3d镀金")) {
- price = num * count * 125;
- } else if (kind.equals("大龙须黄字")) {
- price = num * count * 90;
- } else {
- price = num * count * 140;
- }
- } else if (length == 70 && width == 120 || length == 120 && width == 70) {
- price = num * count * 158;
- } else {
- price = num * count * 220;
- }
- pro = new Product();
- pro.setCount(count);
- pro.setPrice(Math.ceil(price));
- list.add(pro);
- return list;
- }
- /**
- * 彩旗价格计算
- *
- * @param num
- * @param width
- * @param length
- * @param list
- * @param count
- * @return
- */
- public List<Product> getCQPrice(int num, Double length, Double width, int count, List<Product> list) {
- Product pro;
- double price = 0;
- if (length == 40 && width == 80 || length == 80 && width == 40) {
- price = num * count * 80;
- } else if (length == 60 && width == 90 || length == 90 && width == 60) {
- price = num * count * 130;
- } else if (length == 70 && width == 120 || length == 120 && width == 70) {
- price = num * count * 158;
- } else {
- price = num * count * 220;
- }
- pro = new Product();
- pro.setCount(count);
- pro.setPrice(Math.ceil(price));
- list.add(pro);
- return list;
- }
- /**
- * 封口贴铜板不干胶价格计算
- *
- * @param num
- * @param list
- * @return
- */
- public List<Product> getFktPrice(int num, List<Product> list) {
- Product pro;
- double price = 0;
- for (int i = 1; i < countArr.length; i++) {
- if (countArr[i] == 1000) {
- price = 50.0 * num;
- } else if (countArr[i] == 2000) {
- price = 80.0 * num;
- } else if (countArr[i] == 3000) {
- price = 150.0 * num;
- } else if (countArr[i] == 5000) {
- price = 175.0 * num;
- } else if (countArr[i] == 10000) {
- price = 240.0 * num;
- } else {
- price = 450.0 * num;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(Math.ceil(price));
- list.add(pro);
- }
- return list;
- }
- /**
- * PVC亮光异型卡片价格计算
- *
- * @param dto
- * @param number
- * @param width
- * @param length
- * @param area
- * @param count
- * @param priceList
- * @return
- */
- /*public List<Product> getPVCPrice(String kindValue,int count,double width, double length, List<Product> list) {
- Product pro;
- double price = 0,dj = 0, bz = 1;
- double area = (width*length)/10000;
- int countArr[] = { 500, 1000, 2000, 5000, 10000 };
- if(area <= 0.0016) {
- bz = 2.7;
- }else if(area <= 0.0025) {
- bz = 1.8;
- }else if(area <= 0.0036) {
- bz = 1.3;
- }else if(area <= 0.0042) {
- bz = 1.05;
- }
- for(int i = 0; i< countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- if(kindValue.equals("2")) {
- if(countArr[i] == 500) {
- dj = 45;
- }else if(countArr[i] == 1000) {
- dj = 34;
- }else if(countArr[i] == 2000) {
- dj = 31;
- }else if(countArr[i] == 5000) {
- dj = 29;
- }else if(countArr[i] == 10000) {
- dj = 28;
- }
- }else {
- if(countArr[i] == 500) {
- dj = 63;
- }else if(countArr[i] == 1000) {
- dj = 54;
- }else if(countArr[i] == 2000) {
- dj = 50;
- }else if(countArr[i] == 5000) {
- dj = 48;
- }else if(countArr[i] == 10000) {
- dj = 47;
- }
- }
- price = bz*dj*countArr[i]*area;
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(price);
- list.add(pro);
- }
- return list;
- }*/
- /**
- * 硫酸纸价格计算
- *
- * @param dto
- * @param width
- * @param length
- * @param count
- * @param list
- * @return
- */
- public List<Product> getLszPrice(Product dto, double width, double length, int count, List<Product> list) {
- double price = 0, dj = 0, area = 0;
- String craft[] = dto.getCraft();
- int lszCountArr[] = new int[]{500, 1000, 2000, 3000, 5000, 10000, 20000};
- for (int i = 0; i < lszCountArr.length; i++) {
- Product pro = new Product();
- if (lszCountArr[i] < count || list.size() > 3) {
- continue;
- }
- if ((width <= 6.8 && length <= 3) || (width <= 6.8 && length <= 3)) {
- if ("直角".equals(craft[0])) {
- dj = 14.5;
- } else {
- dj = 36.5;
- }
- } else if ((width <= 9 && length <= 5) || (width <= 9 && length <= 5)) {
- if ("直角".equals(craft[0])) {
- dj = 14.5;
- } else {
- dj = 36.5;
- }
- } else if ((width <= 10 && length <= 14) || (width <= 14 && length <= 10)) {
- if ("直角".equals(craft[0])) {
- dj = 11.5;
- } else {
- dj = 17.5;
- }
- } else if ((width <= 21 && length <= 14) || (width <= 14 && length <= 21)) {
- if ("直角".equals(craft[0])) {
- dj = 9.6;
- } else {
- dj = 12.1;
- }
- } else if ((width <= 21 && length <= 28.5) || (width <= 28.5 && length <= 21)) {
- if ("直角".equals(craft[0])) {
- dj = 7.6;
- } else {
- dj = 11.1;
- }
- } else {
- if ("直角".equals(craft[0])) {
- dj = 7.2;
- } else {
- dj = 10.7;
- }
- }
- dj *= 2;//按照供应商成本价2倍计算
- if (lszCountArr[i] == 500) {
- area = width * length * 800 / 10000;
- } else {
- area = width * length * lszCountArr[i] / 10000;
- if ((width >= 21 && length >= 28.5) || (width >= 28.5 && length >= 21)) {
- area *= 0.85;
- }
- }
- price = Math.ceil(dj * area);
- pro.setPrice(price > 80 ? price : 80);
- //烫金工艺
- if ("烫金".equals(dto.getCraftTang())) {
- area = length * width / 10000;
- double tangPrice = 0;
- double tangPriceArr[] = new double[4];
- if (area <= 0.005) {
- tangPriceArr = new double[]{90.0, 135.0, 205.0, 255.0, 425, 850, 1700};
- } else if (area <= 0.01) {
- tangPriceArr = new double[]{95.0, 140.0, 225.0, 300.0, 500, 1000, 2000};
- } else if (area <= 0.015) {
- tangPriceArr = new double[]{100.0, 145.0, 245.0, 325.0, 545, 1090, 2180};
- } else if (area <= 0.025) {
- tangPriceArr = new double[]{115.0, 165.0, 280.0, 380.0, 635, 1270, 2540};
- } else if (area <= 0.035) {
- tangPriceArr = new double[]{135.0, 205.0, 335.0, 468.0, 780, 1560, 3120};
- } else {
- tangPriceArr = new double[]{145.0, 225.0, 380.0, 535.0, 895, 1790, 3580};
- }
- tangPrice = tangPriceArr[i] * 1.4 > 135 ? tangPriceArr[i] * 1.4 : 135;
- pro.setPrice(Math.ceil(pro.getPrice() + tangPrice));
- }
- pro.setCount(lszCountArr[i]);
- list.add(pro);
- }
- return list;
- }
- /**
- * 80克硫酸纸价格计算
- *
- * @param dto
- * @param width
- * @param length
- * @param count
- * @param list
- * @return
- */
- public List<Product> get80LszPrice(Product dto, double width, double length, int count, List<Product> list) {
- double dj = 0;
- double l = 420;
- double w = 285;
- length *= 10;
- width *= 10;
- Product pro = new Product();
- double max = Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length));
- List<String> craft_list = dto.getCraft() == null ? new ArrayList<>() : Arrays.asList(dto.getCraft());
- // 报的数量需要多少张大纸
- int num = (int) Math.ceil(count / max);
- // if (count <= 1000) {
- // dj = 150;
- // } else {
- // dj = 150 + Math.ceil(count / 1000) * 20;
- // }
- if (dto.getKindValue().equals("2")) {
- dj = 0.86;
- } else {
- dj = 0.5;
- }
- pro.setPrice(130 + Math.ceil((num + 100) * dj));
- if (craft_list.contains("异形") || craft_list.contains("异形模切")) {
- pro.setPrice(Math.ceil(pro.getPrice() * 1.5));
- }
- double area = 0;
- if ("烫金".equals(dto.getCraftTang())) {
- int lszCountArr[] = new int[]{500, 1000, 2000, 3000, 5000, 10000, 20000};
- int i = 0;
- for (int j = 0; j < lszCountArr.length; j++) {
- if (lszCountArr[i] > count) {
- break;
- }
- i = j;
- }
- area = length * width / 10000;
- double tangPrice = 0;
- double tangPriceArr[] = new double[4];
- if (area <= 0.005) {
- tangPriceArr = new double[]{135, 189, 287, 357, 595, 1190, 2380};
- } else if (area <= 0.01) {
- tangPriceArr = new double[]{135, 196, 315, 420, 700, 1400, 2800};
- } else if (area <= 0.015) {
- tangPriceArr = new double[]{140, 203, 343, 455, 763, 1526, 3052};
- } else if (area <= 0.025) {
- tangPriceArr = new double[]{161, 231, 392, 532, 889, 1778, 3556};
- } else if (area <= 0.035) {
- tangPriceArr = new double[]{189, 287, 469, 655.2, 1092, 2184, 4368};
- } else {
- tangPriceArr = new double[]{203, 315, 532, 749, 1253, 2506, 5012};
- }
- tangPrice = tangPriceArr[i] * 1.4 > 135 ? tangPriceArr[i] * 1.4 : 135;
- pro.setPrice(Math.ceil(pro.getPrice() + tangPrice));
- }
- pro.setCount(count);
- list.add(pro);
- return list;
- }
- /**
- * 常规刚古水纹超白不干胶计算
- *
- * @param number
- * @param width
- * @param length
- * @param count
- * @return
- */
- public List<Product> getGgSwPrice(double length, double width, int count, int number) {
- double price = 0, area = 0;
- List<Product> list = new ArrayList<Product>();
- Product pro = null;
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count || list.size() > 3) {
- continue;
- }
- pro = new Product();
- area = (length * width * countArr[i]) / 10000;
- price = 70 * area * number;
- pro.setPrice(Math.ceil(price > 80 ? price : 80));
- pro.setCount(countArr[i]);
- list.add(pro);
- }
- return list;
- }
- /**
- * 帆布计算
- *
- * @param dto
- * @param number
- * @param width
- * @param length
- * @param count
- * @param list
- * @return
- */
- public List<Product> getFbPrice(Product dto, Integer number, Double width, Double length, int count, List<Product> list) {
- Product pro = new Product();
- double price = 0, dj = 0;
- String[] craft = dto.getCraft();
- if ("套餐".equals(dto.getStickerKind())) {
- pro.setCount(count);
- pro.setPrice(198.0);
- list.add(pro);
- } else {
- double area = length * width * count / 10000;
- double d = length * width * count / 10000;
- if (length == 100 && width == 45) {
- price = 40 * number * count;
- if (craft != null) {
- for (int i = 0; i < craft.length; i++) {
- if (craft[i].equals("缝兜")) {
- price += number * 10;
- } else {
- continue;
- }
- }
- }
- pro.setCount(count);
- pro.setPrice(price);
- list.add(pro);
- }/*else if(length == 45 && width == 45){
- price = 30 * number * count;
- if(craft != null) {
- for(int i = 0; i< craft.length; i++) {
- if(craft[i].equals("缝兜")) {
- price += number * 10;
- }else {
- continue;
- }
- }
- }
- pro.setPrice(price);
- }*/ else {
- if (d <= 0.2) {
- area *= number;
- }
- if (area <= 0.2) {
- price = 45;
- } else if (area <= 0.5) {
- dj = 80;
- } else if (area <= 0.7) {
- dj = 75;
- } else if (area <= 0.9) {
- dj = 70;
- } else if (area <= 1) {
- dj = 68;
- } else if (area <= 1.9) {
- dj = 65;
- } else if (area <= 3) {
- dj = 60;
- } else {
- dj = 55;
- }
- if (d > 0.2) {
- price = area * dj * number;
- } else {
- if (area <= 0.2) {
- price = 45;
- } else {
- price = area * dj;
- }
- }
- if (craft != null) {
- for (int i = 0; i < craft.length; i++) {
- if (craft[i].equals("缝兜")) {
- price += number * 10;
- } else {
- continue;
- }
- }
- }
- /*if(d > 3 && number > 1) {
- price += (number-1) * 20;
- }*/
- price = Math.ceil(price > 45 ? price : 45);
- double other_price = 0;
- if (length * width < 40 * 50) {
- int total = count * number;
- for (int i = 1; i <= total; i++) {
- other_price = getFBPirce(width, length, i, 1);
- if (other_price > 45) {
- price = 45 + (total - i + 1) * 6;
- break;
- }
- }
- }
- pro.setPrice(price);
- pro.setCount(count);
- pro.setWeight(df.format(area * 0.28 * number));
- list.add(pro);
- }
- }
- return list;
- }
- public double getFBPirce(double length, double width, int count, int number) {
- double area = length * width * count / 10000;
- double d = length * width * count / 10000;
- double price = 0, dj = 0;
- if (length == 100 && width == 45) {
- price = 40 * number * count;
- } else {
- if (d <= 0.2) {
- area *= number;
- }
- if (area <= 0.2) {
- price = 45;
- } else if (area <= 0.5) {
- dj = 80;
- } else if (area <= 0.7) {
- dj = 75;
- } else if (area <= 0.9) {
- dj = 70;
- } else if (area <= 1) {
- dj = 68;
- } else if (area <= 1.9) {
- dj = 65;
- } else if (area <= 3) {
- dj = 60;
- } else {
- dj = 55;
- }
- if (d > 0.2) {
- price = area * dj * number;
- } else {
- if (area <= 0.2) {
- price = 45;
- } else {
- price = area * dj;
- }
- }
- price = Math.ceil(price > 45 ? price : 45);
- }
- return price;
- }
- public double getTestPrice(double length, double width, int count, int number,
- double[] areas, double[] prices, double minPrice, double lastPrice) {
- final int total = count * number;
- for (int i = 1; i <= total; i++) {
- double currentPrice = new PriceUtils().getOptimizedPrice(
- length,
- width,
- i, // 当前数量
- 1, // number 参数固定为1
- areas,
- prices,
- minPrice,
- lastPrice
- );
- if (currentPrice > minPrice) {
- // 计算累加价格:基础价 + 剩余项*6
- return minPrice + (total - i + 1) * 6;
- }
- }
- // 未触发条件时返回基础最低价
- return minPrice;
- }
- public double getOptimizedPrice(double length, double width, int count, int number,
- double[] areas, double[] prices, double minPrice, double lastPrice) {
- final double area = length * width * count / 10000;
- final boolean isSmallArea = area <= 0.2;
- // 计算调整后的面积值
- final double adjustedArea = isSmallArea ? area * number : area;
- // 确定单价基准
- double unitPrice = isSmallArea ? minPrice : lastPrice;
- if (!isSmallArea) {
- for (int i = 0; i < areas.length; i++) {
- if (adjustedArea <= areas[i]) {
- unitPrice = prices[i];
- break;
- }
- }
- }
- // 计算基础价格
- double basePrice = isSmallArea ? minPrice : adjustedArea * unitPrice;
- // 应用数量系数
- double finalPrice = (area > 0.2) ? basePrice * number : basePrice;
- // 确保最低价格并取整
- return Math.ceil(Math.max(finalPrice, minPrice));
- }
- /**
- * 亚克力计算
- *
- * @param dto
- * @param number
- * @param width
- * @param length
- * @param count
- * @param list
- * @return
- */
- public List<Product> getYklPrice(Product dto, Integer number, Double width, Double length, int count, List<
- Product> list) {
- Product pro = new Product();
- double price = 0, dj = 0;
- double l = 1200;
- double w = 2400;
- double area = length * width * count / 10000;
- String kind = dto.getKind2Value();
- length = length * 10;
- width = width * 10;
- if ((length > l || width > w) && (length > w || width > l))
- return null;
- // 一张大纸能做多少个此类尺寸的不干胶
- double max = Math.max(Math.floor(l / length) * Math.floor(w / width),
- Math.floor(l / width) * Math.floor(w / length));
- // 报的数量需要多少张大纸
- int num = (int) Math.ceil(count / max);
- if (num > 1) {
- if (kind.equals("1")) {
- dj = 317;
- } else if (kind.equals("2")) {
- dj = 357;
- } else if (kind.equals("3")) {
- dj = 477;
- } else if (kind.equals("4")) {
- dj = 375;
- } else {
- dj = 415;
- }
- price = dj * 1.8 + dj * 1.5 * (num - 1);
- pro.setPrice(Math.ceil(price));
- } else {
- if (area <= 0.02) {
- dj = 1800;
- } else if (area <= 0.03) {
- dj = 1300;
- } else if (area <= 0.05) {
- dj = 1000;
- } else if (area <= 0.06) {
- dj = 900;
- } else if (area <= 0.07) {
- dj = 800;
- } else if (area <= 0.08) {
- dj = 700;
- } else if (area <= 0.16) {
- dj = 650;
- } else if (area <= 0.25) {
- dj = 550;
- } else if (area <= 0.4) {
- dj = 500;
- } else if (area <= 0.5) {
- dj = 400;
- } else if (area <= 0.6) {
- dj = 350;
- } else if (area <= 0.8) {
- dj = 300;
- } else if (area <= 1) {
- dj = 280;
- } else if (area <= 2) {
- dj = 250;
- } else if (area <= 3) {
- dj = 240;
- } else if (area <= 4) {
- dj = 230;
- } else if (area <= 5) {
- dj = 225;
- }
- price = area * dj * 2.5;
- if (kind.equals("5")) {
- price = price * 1.2;
- } else {
- if (kind.equals("2")) {
- price = price * 1.1;
- } else if (kind.equals("3")) {
- price = price * 1.3;
- }
- }
- }
- double weight = 0;
- if (kind.equals("1") || kind.equals("4")) {
- weight = area * number * 2.26;
- } else if (kind.equals("2") || kind.equals("5")) {
- weight = area * number * 3.06;
- } else if (kind.equals("3")) {
- weight = area * number * 5.11;
- }
- pro.setPrice(Math.ceil(price > 50 ? price : 50));
- pro.setCount(count);
- pro.setWeight(String.valueOf(df.format(weight)));
- list.add(pro);
- return list;
- }
- /**
- * 灯布计算
- *
- * @param width
- * @param length
- * @param count
- * @param list
- * @return
- */
- public List<Product> getDbPrice(String kind, Double width, Double length, int count, List<Product> list, int number) {
- //11-550灯布 12-520灯布 13-550黑底灯布
- Product pro = new Product();
- double price = 0, dj = 0;
- double area = length * width * count / 10000;
- double[] areas = {};
- double[] prices = {};
- double last_price = 0;
- double min_price = 0;
- if ("11".equals(kind)) {
- areas = new double[]{5, 10,};
- prices = new double[]{20, 18};
- last_price = 17;
- min_price = 55 + 15;
- } else if ("12".equals(kind)) {
- areas = new double[]{5, 10,};
- prices = new double[]{16, 12};
- last_price = 10;
- min_price = 50 + 15;
- } else {
- areas = new double[]{5, 10,};
- prices = new double[]{24, 20};
- last_price = 18;
- min_price = 60 + 15;
- }
- if (width * length < 40 * 50) {
- price = new PriceUtils().getTestPrice(length, width, count, number, areas, prices, min_price, last_price);
- } else {
- dj = last_price;
- for (int i = 0; i < areas.length; i++) {
- if (area <= areas[i]) {
- dj = prices[i];
- break;
- }
- }
- price = Math.max(area * dj, min_price);
- }
- if (number > 1 && width * length >= 40 * 50) {
- pro.setPrice(Math.ceil(price * number));
- } else {
- pro.setPrice(Math.ceil(price));
- }
- pro.setWeight(String.valueOf(df.format(width * length * 0.55 / 10000)));
- pro.setCount(count);
- list.add(pro);
- return list;
- }
- /**
- * 串旗计算
- *
- * @param width
- * @param length
- * @param count
- * @param num
- * @param list
- * @return
- */
- public List<Product> getCqPrice(Double width, Double length, int count, int num, List<Product> list) {
- Product pro = new Product();
- double price = 0, dj = 0;
- double area = (width * length) / 10000;
- if (area <= 0.042) {
- price = 50 + 5 * count * num;
- } else if (area <= 0.1125) {
- dj = 120;
- } else if (area <= 0.2) {
- dj = 110;
- } else if (area <= 0.5) {
- dj = 100;
- } else if (area <= 0.7) {
- dj = 95;
- } else if (area <= 0.9) {
- dj = 90;
- } else if (area <= 1) {
- dj = 85;
- } else {
- dj = 80;
- }
- if (area > 0.042) {
- price = dj * area * count * num;
- }
- price = Math.ceil(price > 50 ? price : 50);
- double wei = area * 0.29 * count * num;
- pro.setPrice(price);
- pro.setCount(count);
- pro.setWeight(df.format(wei));
- list.add(pro);
- return list;
- }
- /**
- * 桌布
- *
- * @param length
- * @param width
- * @param count
- * @param number
- * @return
- */
- public List<Product> getTableClothPrice(Double length, Double width, int count, Integer
- number, List<Product> priceList) {
- double price = 0, dj = 0;
- if (length <= 0.8 && width <= 0.8) {
- dj = 77;
- } else if ((length <= 0.8 && width <= 1.6) || (length <= 1.6 && width <= 0.8)) {
- dj = 43;
- } else if ((length <= 1.2 && width <= 1.6) || (length <= 1.6 && width <= 1.2)) {
- dj = 29;
- } else if ((length <= 1.4 && width <= 1.6) || (length <= 1.6 && width <= 1.4)) {
- dj = 28;
- } else if ((length <= 1.6 && width <= 2.0) || (length <= 2.0 && width <= 1.6)) {
- dj = 27;
- }/*else if((length <= 1.8 && width <= 2.0) || (length <= 2.0 && width <= 1.8)) {
- dj = 26;
- }else if((length <= 1.6 && width <= 2.5) || (length <= 2.5 && width <= 1.6)) {
- dj = 26;
- }*/ else {
- dj = 26;
- }
- Product pro = new Product();
- List<Product> list = new ArrayList<Product>();
- price = length * width * count * number * dj;
- pro.setCount(count);
- pro.setPrice(Math.ceil(price > 50 ? price : 50));
- pro.setWeight(df.format(0.3 * length * width * count * number));
- list.add(pro);
- return list;
- }
- public List<Product> getShkPrice(String size, int count, Integer number) {
- int[] countArr = {200, 500, 1000, 2000, 5000, 10000};
- double[] priceArr = {};
- List<Product> list = new ArrayList<Product>();
- Product pro = new Product();
- if (size.equals("9*5.4")) {
- priceArr = new double[]{25.0, 26.0, 27.0, 50.0, 110.0, 200.0};
- } else if (size.equals("9*11")) {
- priceArr = new double[]{27.0, 37.0, 45.0, 80.0, 210.0, 400.0};
- } else if (size.equals("8*11")) {
- priceArr = new double[]{27.0, 37.0, 45.0, 80.0, 210.0, 400.0};
- } else if (size.equals("7*14")) {
- priceArr = new double[]{27.0, 37.0, 45.0, 80.0, 210.0, 400.0};
- } else if (size.equals("8*14")) {
- priceArr = new double[]{44.0, 46.0, 72.0, 120.0, 260.0, 500.0};
- } else if (size.equals("10*15")) {
- priceArr = new double[]{44.0, 66.0, 88.0, 150.0, 350.0, 600.0};
- } else if (size.equals("11*18")) {
- priceArr = new double[]{61.0, 83.0, 94.0, 160.0, 400.0, 650.0};
- } else if (size.equals("9*9")) {
- priceArr = new double[]{30.0, 41.0, 44.0, 75.0, 200.0, 400.0};
- } else {
- priceArr = new double[]{44.0, 66.0, 88.0, 120.0, 260.0, 500.0};
- }
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- if (list.size() > 3) {
- break;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(Math.ceil(number * priceArr[i]));
- list.add(pro);
- }
- return list;
- }
- public List<Product> getSdkPrice(int count, Integer number) {
- int[] countArr = {50, 100, 500, 1000, 2000, 5000, 10000};
- double[] priceArr = new double[]{339, 599, 1800.0, 3000.0, 4800.0, 8000.0, 15000.0};
- Product pro = new Product();
- List<Product> list = new ArrayList<Product>();
- for (int i = 0; i < countArr.length; i++) {
- if (countArr[i] < count) {
- continue;
- }
- if (list.size() > 3) {
- break;
- }
- pro = new Product();
- pro.setCount(countArr[i]);
- pro.setPrice(Math.ceil(number * priceArr[i]));
- list.add(pro);
- }
- return list;
- }
- public double TableNextPrice(double area, double[] price_list, double[] areas) {
- double price = 0;
- double last_price = 0;
- for (int i = 0; i < areas.length; i++) {
- if (area <= areas[i]) {
- price = price_list[i];
- break;
- }
- last_price = price_list[i];
- }
- return price == 0 ? last_price : price;
- }
- public double TablePrice(double area, int[] price_list, double[] areas) {
- double price = 0;
- int startIndex = 0;
- int endIndex = 0;
- for (int i = 0; i < areas.length; i++) {
- if (area > areas[i]) {
- startIndex = endIndex;
- endIndex = Math.min(i + 1, areas.length - 1);
- }
- }
- if (startIndex == endIndex && startIndex == 0) {
- price = price_list[endIndex];
- } else if (startIndex == endIndex) {
- price = (price_list[endIndex] / areas[endIndex]) * area;
- } else {
- price = ((areas[endIndex] - area) / (areas[endIndex] - areas[startIndex])) * price_list[startIndex] + ((area - areas[startIndex]) / (areas[endIndex] - areas[startIndex])) * price_list[endIndex];
- }
- return price;
- }
- public static double TableDoublePrice(double area, double[] price_list, double[] areas) {
- double price = 0;
- int startIndex = 0;
- int endIndex = 0;
- for (int i = 0; i < areas.length; i++) {
- if (area > areas[i]) {
- startIndex = endIndex;
- endIndex = Math.min(i + 1, areas.length - 1);
- }
- }
- if (startIndex == endIndex && startIndex == 0) {
- price = price_list[endIndex];
- } else if (startIndex == endIndex) {
- price = (price_list[endIndex] / areas[endIndex]) * area;
- } else {
- price = ((areas[endIndex] - area) / (areas[endIndex] - areas[startIndex])) * price_list[startIndex] + ((area - areas[startIndex]) / (areas[endIndex] - areas[startIndex])) * price_list[endIndex];
- }
- return price;
- }
- public static double TableUnitPrice(double area, int[] price_list, double[] areas, double last_price) {
- double price = 0;
- int startIndex = 0;
- int endIndex = 0;
- boolean islast = false;
- for (int i = 0; i < areas.length; i++) {
- if (area > areas[i]) {
- startIndex = endIndex;
- endIndex = Math.min(i + 1, areas.length - 1);
- }
- if (area == areas[i]) {
- endIndex = startIndex = i;
- }
- if (area > areas[i] && i == areas.length - 1) {
- islast = true;
- }
- }
- if (startIndex == endIndex && startIndex == 0) {
- price = price_list[endIndex] * area;
- } else if (startIndex == endIndex) {
- price = (price_list[endIndex] * areas[endIndex] / areas[endIndex]) * area;
- } else {
- double end_price = price_list[endIndex] * areas[endIndex];
- double start_price = price_list[startIndex] * areas[startIndex];
- price = ((areas[endIndex] - area) / (areas[endIndex] - areas[startIndex])) * start_price + ((area - areas[startIndex]) / (areas[endIndex] - areas[startIndex])) * end_price;
- }
- price = islast ? last_price * area : price;
- return Math.ceil(price);
- }
- public double CalculatePrice(List<String> craft_list, double count, int coNumber, double countNum, double area) {
- if (craft_list.contains("烫画")) {
- double basePrice = 0;
- area = area / 10000;
- if (area < 7.5) {
- basePrice = 90;
- } else {
- basePrice = 70;
- }
- return Math.max(Math.ceil(area * basePrice), 50);
- }
- double price = 0;
- if (craft_list.contains("冷转印")) {
- double banfei = 200;
- if (countNum > 1) {
- price = 200 * countNum;
- banfei = 0;
- count = Math.abs(count - countNum);
- }
- if (count > 0) {
- if (count <= 5) {
- price += 200;
- } else if (count < 75) {
- price += 14 * count + banfei;
- } else {
- if (count < 89) {
- count = 89;
- }
- price += 14 * count;
- }
- }
- price = price + (coNumber - 1) * 100;
- }
- return Math.ceil(price);
- }
- public static List<Product> getYinBaiPrice(List<Product> productList, double width, double length) {
- double miniprice = 50;
- double miniarea = 9;
- //cm
- double[] prices = {7.2, 4.6, 4, 2.8, 2.5, 2.24, 2.02, 1.92, 1.63, 1.56, 1.34, 1.26, 1.25, 1.04, 0.86, 0.64};
- double[] areas = {9, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 140, 210, 420};
- double area = width * length;
- double craft_price = 0;
- if (area < miniarea) {
- craft_price = miniprice;
- } else {
- for (int i = 1; i < areas.length; i++) {
- if (area < areas[i]) {
- craft_price = prices[i - 1] * area;
- break;
- }
- }
- if (craft_price == 0) {
- craft_price = prices[prices.length - 1] * area;
- }
- }
- for (Product pro : productList) {
- pro.setPrice(Math.ceil(pro.getPrice() + craft_price));
- }
- return productList;
- }
- public FunReturnVo getBagTagPrice(String kind2Value, String kindValue) {
- FunReturnVo vo = new FunReturnVo();
- if ("1".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{420, 627, 1056, 1980, 2920, 4785, 9240});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{726, 1073, 1914, 2723, 4290, 7920});
- }
- vo.setLength(25.0);
- vo.setHeight(23.0);
- vo.setWidth(15.0);
- }
- if ("2".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{480, 644, 1089, 2046, 2970, 4785, 9240});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{743, 1089, 1947, 2772, 4372, 8085});
- }
- vo.setLength(24.0);
- vo.setHeight(26.5);
- vo.setWidth(14.0);
- }
- if ("3".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{480, 730, 1320, 2330, 3300, 5280, 9800});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{770, 1200, 2380, 3400, 5300, 9500});
- }
- vo.setLength(28.0);
- vo.setHeight(26.5);
- vo.setWidth(15.0);
- }
- if ("4".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{420, 576, 896, 1600, 2304, 3760, 7040});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{576, 880, 1568, 2256, 3600, 6880});
- }
- vo.setLength(13.0);
- vo.setHeight(16.0);
- vo.setWidth(8.0);
- }
- if ("5".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{450, 733, 980, 1700, 2500, 4000, 7600});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{651, 890, 1480, 2150, 3450, 6625});
- }
- vo.setLength(11.0);
- vo.setHeight(25.0);
- vo.setWidth(9.5);
- }
- if ("6".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{390, 658, 1030, 1800, 2600, 4200, 8350});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{593, 1000, 1720, 2500, 4000, 7800});
- }
- vo.setLength(16.0);
- vo.setHeight(23.0);
- vo.setWidth(8.0);
- }
- if ("7".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{320, 520, 860, 1550, 2240, 3750, 6900});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{500, 890, 1530, 2130, 3430, 6280});
- }
- vo.setLength(21.0);
- vo.setHeight(27.0);
- vo.setWidth(11.0);
- }
- if ("8".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{400, 540, 1100, 1640, 2400, 3950, 7380});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{560, 980, 1640, 2230, 3600, 6580});
- }
- vo.setLength(21.0);
- vo.setHeight(26.5);
- vo.setWidth(14.0);
- }
- if ("9".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{500, 760, 1200, 2260, 3300, 5200, 9910});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{700, 1100, 1920, 2800, 4400, 8500});
- }
- vo.setLength(25.0);
- vo.setHeight(27.0);
- vo.setWidth(17.0);
- }
- if ("10".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{600, 970, 1450, 2480, 3600, 5450, 9380});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{910, 1350, 2300, 3400, 5100, 8600});
- }
- vo.setLength(32.0);
- vo.setHeight(27.0);
- vo.setWidth(11.0);
- }
- if ("11".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{1192, 1600, 2800, 4100, 6500, 11280});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{920, 1350, 2250, 3500, 6350, 10800});
- }
- vo.setLength(32.0);
- vo.setHeight(39.0);
- vo.setWidth(11.0);
- }
- if ("12".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{1419, 2013, 3234, 4800, 7672, 11385});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{1338, 1898, 3069, 4500, 7260, 10395});
- }
- vo.setLength(25.0);
- vo.setHeight(32.0);
- vo.setWidth(13.0);
- }
- if ("31".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{528, 875, 1650, 2426, 3878, 7590});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{680, 957, 1716, 2475, 3878, 7095});
- }
- vo.setLength(23.0);
- vo.setHeight(21.0);
- vo.setWidth(15.0);
- }
- if ("37".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{600, 990, 1848, 2723, 4455, 8580});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{710, 1040, 1848, 2624, 4125, 7755});
- }
- vo.setLength(23.0);
- vo.setHeight(21.0);
- vo.setWidth(11.0);
- }
- if ("38".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{600, 924, 1650, 2376, 3878, 7260});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{600, 908, 1617, 2328, 3713, 7095});
- }
- vo.setLength(21.0);
- vo.setHeight(21.0);
- vo.setWidth(14.0);
- }
- if ("62".equals(kind2Value)) {
- if ("0".equals(kindValue)) {
- vo.setBase_price(new double[]{578, 975, 1848, 2673, 5360, 10240});
- }
- if ("1".equals(kindValue)) {
- vo.setBase_price(new double[]{693, 1008, 1749, 2475, 4960, 9600});
- }
- vo.setLength(24.0);
- vo.setHeight(32.0);
- vo.setWidth(14.0);
- }
- return vo;
- }
- }
|