diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessStationInfoController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessStationInfoController.java index 6e89ef35d..1004783b0 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessStationInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessStationInfoController.java @@ -1,16 +1,19 @@ package com.jsowell.api.uniapp.business; +import com.alibaba.fastjson2.JSONObject; +import com.google.common.collect.ImmutableMap; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.response.RestApiResponse; +import com.jsowell.pile.dto.StationStatisticsInfoDTO; import com.jsowell.pile.service.PileStationInfoService; +import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** - * TODO + * 运营端小程序站点信息Controller * * @author Lemon * @Date 2024/7/16 13:44:06 @@ -22,15 +25,22 @@ public class BusinessStationInfoController extends BaseController { @Autowired private PileStationInfoService pileStationInfoService; - @GetMapping("/getStationStatisticsInfos/{merchantId}") - public RestApiResponse getStationStatisticsInfos(@PathVariable("merchantId") String merchantId) { + /** + * 获取站点统计信息 + * @param dto + * @return + */ + @PostMapping("/getStationStatisticsInfos") + public RestApiResponse getStationStatisticsInfos(@RequestBody StationStatisticsInfoDTO dto) { RestApiResponse response = null; try { - pileStationInfoService.getStationStatisticsInfos(merchantId); + List stationStatisticsInfos = pileStationInfoService.getStationStatisticsInfos(dto); + response = new RestApiResponse<>(ImmutableMap.of("stationStatisticsInfos", stationStatisticsInfos)); } catch (Exception e) { - + logger.error("获取站点统计信息 error", e); + response = new RestApiResponse<>(e); } - + logger.info("获取站点统计信息 params:{}, result:{}", JSONObject.toJSONString(dto), response); return response; } } diff --git a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java index 2e2f4ddb6..a125815ee 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -578,7 +578,9 @@ public class PileService { // reservedInfo.setStartTime(DateUtils.parseDate(dto.getStartTime())); reservedInfo.setStartTime(Time.valueOf(dto.getStartTime())); // reservedInfo.setEndTime(DateUtils.parseDate(dto.getEndTime())); - reservedInfo.setEndTime(Time.valueOf(dto.getEndTime())); + if (StringUtils.isNotBlank(dto.getEndTime())) { + reservedInfo.setEndTime(Time.valueOf(dto.getEndTime())); + } if (StringUtils.isNotBlank(dto.getFreq())) { reservedInfo.setReservationType("recurring"); reservedInfo.setFreq(dto.getFreq()); diff --git a/jsowell-admin/src/main/resources/application-dev.yml b/jsowell-admin/src/main/resources/application-dev.yml index 91cb329d5..9e16f48e4 100644 --- a/jsowell-admin/src/main/resources/application-dev.yml +++ b/jsowell-admin/src/main/resources/application-dev.yml @@ -9,7 +9,7 @@ spring: # redis 配置 redis: # 地址 - host: 192.168.2.2 + host: 192.168.2.46 # 端口,默认为6379 port: 6379 # 数据库索引 @@ -36,9 +36,9 @@ spring: druid: # 主库数据源 master: -# url: jdbc:mysql://192.168.2.2:3306/jsowell_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +# url: jdbc:mysql://192.168.2.46:3306/jsowell_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # username: jsowell_dev - url: jdbc:mysql://192.168.2.2:3306/jsowell_prd_copy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.2.46:3306/jsowell_prd_copy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: jsowell_prd_copy password: 123456 # 从库数据源 diff --git a/jsowell-admin/src/main/resources/application-sit.yml b/jsowell-admin/src/main/resources/application-sit.yml index 9a04e490f..a679f1868 100644 --- a/jsowell-admin/src/main/resources/application-sit.yml +++ b/jsowell-admin/src/main/resources/application-sit.yml @@ -8,7 +8,7 @@ spring: # redis 配置 redis: # 地址 - host: 192.168.2.2 + host: 192.168.2.46 # 端口,默认为6379 port: 6379 # 数据库索引 @@ -35,9 +35,9 @@ spring: druid: # 主库数据源 master: -# url: jdbc:mysql://192.168.2.2:3306/jsowell_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +# url: jdbc:mysql://192.168.2.46:3306/jsowell_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # username: jsowell_dev - url: jdbc:mysql://192.168.2.2:3306/jsowell_prd_copy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.2.46:3306/jsowell_prd_copy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: jsowell_prd_copy password: 123456 # 从库数据源 diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 3b272f275..7885257f1 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -936,10 +936,17 @@ public class SpringBootTestController { // 需要重新分账的订单信息(针对未分账的订单) public JSONArray getPaymentList() { String jsonArrayString = "[" + - "{\"orderCode\":\"C44529020684\", \"settleAmount\":\"15.67\", \"paymentId\":\"002212024050317243010632400358265659392\"}" + - "{\"orderCode\":\"C63381134165\", \"settleAmount\":\"39.65\", \"paymentId\":\"002212024052518295510640389353916465152\"}" + - "{\"orderCode\":\"C44778282947\", \"settleAmount\":\"8.38\", \"paymentId\":\"002212023101608315910559788773415297024\"}" + - "{\"orderCode\":\"C44778282947\", \"settleAmount\":\"8.38\", \"paymentId\":\"002212023101608315910559788773415297024\"}" + + "{\"orderCode\":\"C67926008811\", \"settleAmount\":\"14.91\", \"paymentId\":\"002212024020312191210599708616768860160\"}" + + "{\"orderCode\":\"C42430351162\", \"settleAmount\":\"29.91\", \"paymentId\":\"002212024020417400510600151759191855104\"}" + + "{\"orderCode\":\"C46840673835\", \"settleAmount\":\"49.91\", \"paymentId\":\"002212024020508232410600374051907993600\"}" + + "{\"orderCode\":\"C80418255104\", \"settleAmount\":\"49.91\", \"paymentId\":\"002212024020519172410600538637863464960\"}" + + "{\"orderCode\":\"C27663220132\", \"settleAmount\":\"49.92\", \"paymentId\":\"002212024020615260710600842821125234688\"}" + + "{\"orderCode\":\"C46848081446\", \"settleAmount\":\"24.36\", \"paymentId\":\"002212024020708224510601098662578515968\"}" + + "{\"orderCode\":\"C61630340544\", \"settleAmount\":\"49.91\", \"paymentId\":\"002212024020813363810601540042416410624\"}" + + "{\"orderCode\":\"C80011863345\", \"settleAmount\":\"14.91\", \"paymentId\":\"002212024021416374510603759951855538176\"}" + + "{\"orderCode\":\"C25198228680\", \"settleAmount\":\"4.91\", \"paymentId\":\"002212024021513502010604080206798815232\"}" + + "{\"orderCode\":\"C29771066410\", \"settleAmount\":\"49.92\", \"paymentId\":\"002212024021719245910604889199513939968\"}" + + "{\"orderCode\":\"C29391457129\", \"settleAmount\":\"9.90\", \"paymentId\":\"002212024022016543010605938491023716352\"}" + "]"; return JSONArray.parseArray(jsonArrayString); } @@ -953,7 +960,7 @@ public class SpringBootTestController { // TODO 获取默认结算账户,如需分给对应商户就填写正确的汇付会员id // AdapayMemberAccount adapayMemberAccount = adapayMemberAccountService.getDefault(); AdapayMemberAccount adapayMemberAccount = new AdapayMemberAccount(); - adapayMemberAccount.setAdapayMemberId("ACM23489463"); + adapayMemberAccount.setAdapayMemberId("ACM21943395"); for (int i = 0; i < paymentList.size(); i++) { JSONObject jsonObject = (JSONObject) paymentList.get(i); BigDecimal confirmAmt = jsonObject.getBigDecimal("settleAmount"); // 确认金额就是结算金额 @@ -1132,902 +1139,122 @@ public class SpringBootTestController { private List getPaymentIdList1() { List list = Lists.newArrayList(); - list.add("002212024043018112310631324989830565888"); - list.add("002212024043019002610631337336032174080"); - list.add("002212024043021035710631368417672151040"); - list.add("002212024043021230110631373218474573824"); - list.add("002212024043021305910631375223113998336"); - list.add("002212024043021402410631377591256563712"); - list.add("002212024043022005310631382746325123072"); - list.add("002212024043022082310631384634188455936"); - list.add("002212024043022111010631385334689894400"); - list.add("002212024043022125710631385783424430080"); - list.add("002212024043023364910631406889031012352"); - list.add("002212024050100555210631426784438468608"); - list.add("002212024050101564310631442096641081344"); - list.add("002212024050109513110631561583485607936"); - list.add("002212024050112190310631598711951347712"); - list.add("002212024050112193910631598863063289856"); - list.add("002212024050116145010631658047457914880"); - list.add("002212024050116381510631663941580558336"); - list.add("002212024050117261310631676011171102720"); - list.add("002212024050118082310631686625478639616"); - list.add("002212024050119163710631703795541143552"); - list.add("002212024050120142010631718319982743552"); - list.add("002212024050121123810631732992296861696"); - list.add("002212024050121190010631734593200664576"); - list.add("002212024050121395610631739863741218816"); - list.add("002212024050122151310631748742705299456"); - list.add("002212024050122190110631749697821020160"); - list.add("002212024050201233710631796154388787200"); - list.add("002212024050210121710631929198479224832"); - list.add("002212024050211275210631948218580688896"); - list.add("002212024050211345610631949997461180416"); - list.add("002212024050212045410631957538310795264"); - list.add("002212024050216401010632026811084804096"); - list.add("002212024050219303410632069693445677056"); - list.add("002212024050221070210632093971698348032"); - list.add("002212024050221294510632099687985299456"); - list.add("002212024050221313510632100149706813440"); - list.add("002212024050221503210632104919943057408"); - list.add("002212024050222073410632109206990041088"); - list.add("002212024050222123210632110455720312832"); - list.add("002212024050223115310632125389015003136"); - list.add("002212024050223534410632135924106735616"); - list.add("002212024050302061810632169283891560448"); - list.add("002212024050302072110632169550497955840"); - list.add("002212024050302415410632178245208326144"); - list.add("002212024050312071010632320496773603328"); - list.add("002212024050313432710632344729483972608"); - list.add("002212024050314473210632360852854390784"); - list.add("002212024050316154610632383057880256512"); - list.add("002212024050317243010632400358265659392"); - list.add("002212024050317470810632406053448794112"); - list.add("002212024050318272710632416199975546880"); - list.add("002212024050318275010632416293608984576"); - list.add("002212024050319033210632425277456105472"); - list.add("002212024050319314610632432386620755968"); - list.add("002212024050319414010632434873963094016"); - list.add("002212024050320373710632448956266516480"); - list.add("002212024050321075110632456566520229888"); - list.add("002212024050321211410632459931930566656"); - list.add("002212024050321213210632460006643376128"); - list.add("002212024050323312510632492696384372736"); - list.add("002212024050400200810632504953702948864"); - list.add("002212024050403191310632550020869328896"); - list.add("002212024050413471410632708069460885504"); - list.add("002212024050414214210632716743376449536"); - list.add("002212024050416193910632746424515403776"); - list.add("002212024050416490310632753822120263680"); - list.add("002212024050416592210632756418746486784"); - list.add("002212024050417175710632761097847648256"); - list.add("002212024050417541510632770230666211328"); - list.add("002212024050418181310632776261999329280"); - list.add("002212024050419441110632797897335046144"); - list.add("002212024050419493610632799259694223360"); - list.add("002212024050421154710632820948601737216"); - list.add("002212024050421215810632822506197004288"); - list.add("002212024050421315810632825023175761920"); - list.add("002212024050421373710632826444136550400"); - list.add("002212024050422203810632837270660923392"); - list.add("002212024050423153310632851089944977408"); - list.add("002212024050423253310632853606979407872"); - list.add("002212024050500491810632874684050923520"); - list.add("002212024050502260910632899054019194880"); - list.add("002212024050510141610633016861190995968"); - list.add("002212024050511083110633030514432622592"); - list.add("002212024050511285110633035632103231488"); - list.add("002212024050512580610633058089286045696"); - list.add("002212024050513184810633063298911457280"); - list.add("002212024050513375610633068113898582016"); - list.add("002212024050514561510633087824426250240"); - list.add("002212024050517411110633129329901801472"); - list.add("002212024050519042110633150262651727872"); - list.add("002212024050519171210633153492810022912"); - list.add("002212024050520324910633172525882097664"); - list.add("002212024050521110110633182135436259328"); - list.add("002212024050521295510633186892345597952"); - list.add("002212024050521343710633188078005858304"); - list.add("002212024050522111810633197308627619840"); - list.add("002212024050522163210633198623946874880"); - list.add("002212024050523255910633216103881990144"); - list.add("002212024050600044010633225835969843200"); - list.add("002212024050600413310633235121563308032"); - list.add("002212024050600574510633239197708009472"); - list.add("002212024050602042310633255966548492288"); - list.add("002212024050610174310633380116189081600"); - list.add("002212024050611404710633401021852626944"); - list.add("002212024050612180110633410389482094592"); - list.add("002212024050612215910633411388790079488"); - list.add("002212024050617145610633485113948450816"); - list.add("002212024050617592210633496294620635136"); - list.add("002212024050618413810633506932037992448"); - list.add("002212024050618441610633507595954372608"); - list.add("002212024050618452610633507890003259392"); - list.add("002212024050619070210633513324855398400"); - list.add("002212024050619085110633513779423780864"); - list.add("002212024050619115510633514552592248832"); - list.add("002212024050619141710633515148804173824"); - list.add("002212024050619402010633521702214385664"); - list.add("002212024050620283910633533862569549824"); - list.add("002212024050620563510633540892392669184"); - list.add("002212024050621041010633542802911068160"); - list.add("002212024050622063810633558523614158848"); - list.add("002212024050622134710633560320352141312"); - list.add("002212024050622163310633561016875040768"); - list.add("002212024050622210810633562170247692288"); - list.add("002212024050700214210633592513776656384"); - list.add("002212024050701014410633602585344942080"); - list.add("002212024050701060110633603664052457472"); - list.add("002212024050711570310633767504186675200"); - list.add("002212024050712283510633775436918112256"); - list.add("002212024050713220710633788911921213440"); - list.add("002212024050715025010633814254922690560"); - list.add("002212024050718152410633862716628385792"); - list.add("002212024050718262610633865496176594944"); - list.add("002212024050718562510633873040333152256"); - list.add("002212024050719034110633874870468161536"); - list.add("002212024050719051310633875253998579712"); - list.add("002212024050719144710633877663755554816"); - list.add("002212024050719215410633879454685421568"); - list.add("002212024050719585410633888766323142656"); - list.add("002212024050720202310633894172544294912"); - list.add("002212024050802105510633982383785484288"); - list.add("002212024050802530910633993014453022720"); - list.add("002212024050810364610634109688287150080"); - list.add("002212024050813165210634149978856820736"); - list.add("002212024050814172610634165217385615360"); - list.add("002212024050814185910634165608915505152"); - list.add("002212024050816394910634201053066448896"); - list.add("002212024050816402610634201205059637248"); - list.add("002212024050817332010634214518833111040"); - list.add("002212024050817343410634214827848458240"); - list.add("002212024050817401010634216239643684864"); - list.add("002212024050817541310634219776404570112"); - list.add("002212024050818261110634227819848646656"); - list.add("002212024050818342810634229903568314368"); - list.add("002212024050818413510634231695948976128"); - list.add("002212024050819054510634237774701965312"); - list.add("002212024050819060710634237869035962368"); - list.add("002212024050819284510634243565804756992"); - list.add("002212024050819544810634250120373014528"); - list.add("002212024050820591810634266351047643136"); - list.add("002212024050821213710634271970180272128"); - list.add("002212024050821260010634273071914881024"); - list.add("002212024050822453110634293081292951552"); - list.add("002212024050823071610634298555054755840"); - list.add("002212024050823180410634301276052361216"); - list.add("002212024050823281310634303826645823488"); - list.add("002212024050900244710634318065068220416"); - list.add("002212024050902263210634348703960608768"); - list.add("002212024050908253710634439069299814400"); - list.add("002212024050910042110634463918403944448"); - list.add("002212024050911570910634492304546353152"); - list.add("002212024050914130310634526503970783232"); - list.add("002212024050915351010634547167421218816"); - list.add("002212024050915412810634548754596573184"); - list.add("002212024050916305810634561211611287552"); - list.add("002212024050917432110634579427283144704"); - list.add("002212024050918240510634589676605116416"); - list.add("002212024050918304610634591362385096704"); - list.add("002212024050918314910634591626735460352"); - list.add("002212024050918341210634592225761619968"); - list.add("002212024050919141910634602320656506880"); - list.add("002212024050919262310634605356662493184"); - list.add("002212024050920163310634617980360933376"); - list.add("002212024050920564210634628085824950272"); - list.add("002212024050921025810634629662570536960"); - list.add("002212024050921442610634640100335988736"); - list.add("002212024050923352410634668025982660608"); - list.add("002212024051003105610634722264415027200"); - list.add("002212024051013243510634876695873150976"); - list.add("002212024051015001510634900771555348480"); - list.add("002212024051018041010634947054739935232"); - list.add("002212024051018392810634955936848363520"); - list.add("002212024051018494510634958527208857600"); - list.add("002212024051019101910634963702788845568"); - list.add("002212024051019175610634965618213347328"); - list.add("002212024051019284910634968355786522624"); - list.add("002212024051019462010634972766938148864"); - list.add("002212024051020100410634978737210068992"); - list.add("002212024051020360510634985286108921856"); - list.add("002212024051020460110634987786758348800"); - list.add("002212024051023450110635032833252151296"); - list.add("002212024051023515610635034573236813824"); - list.add("002212024051102510010635079635871485952"); - list.add("002212024051112035410635218779569364992"); - list.add("002212024051112234910635223789487325184"); - list.add("002212024051112565910635232134962823168"); - list.add("002212024051114090410635250279269085184"); - list.add("002212024051116405910635288508762775552"); - list.add("002212024051117392010635303193458176000"); - list.add("002212024051117392710635303221834092544"); - list.add("002212024051118062410635310004772769792"); - list.add("002212024051118093710635310814188089344"); - list.add("002212024051118182210635313017281490944"); - list.add("002212024051118474010635320388932677632"); - list.add("002212024051119010110635323748307517440"); - list.add("002212024051119355210635332519585071104"); - list.add("002212024051120101610635341174348791808"); - list.add("002212024051120433110635349543726415872"); - list.add("002212024051121135110635357177799843840"); - list.add("002212024051121440210635364773455962112"); - list.add("002212024051122255910635375332370386944"); - list.add("002212024051122450610635380142090563584"); - list.add("002212024051210125610635553241452851200"); - list.add("002212024051210240510635556044862300160"); - list.add("002212024051211350010635573891182202880"); - list.add("002212024051212350710635589021471432704"); - list.add("002212024051212524510635593458303614976"); - list.add("002212024051213515910635608365324656640"); - list.add("002212024051213580410635609896170786816"); - list.add("002212024051213585010635610091466334208"); - list.add("002212024051216042810635641705114181632"); - list.add("002212024051216451310635651962559217664"); - list.add("002212024051217003810635655842823483392"); - list.add("002212024051218261910635677405813735424"); - list.add("002212024051218335010635679295864639488"); - list.add("002212024051219431510635696766083465216"); - list.add("002212024051219492810635698329485115392"); - list.add("002212024051220241010635707061549572096"); - list.add("002212024051220294310635708458271698944"); - list.add("002212024051220483310635713197804720128"); - list.add("002212024051221035410635717061037064192"); - list.add("002212024051221044710635717283834298368"); - list.add("002212024051221093810635718502717927424"); - list.add("002212024051221362710635725253777371136"); - list.add("002212024051221415210635726617612980224"); - list.add("002212024051223223710635751972546621440"); - list.add("002212024051223235210635752286223671296"); - list.add("002212024051300091510635763705009950720"); - list.add("002212024051301194310635781440261140480"); - list.add("002212024051312012210635942917038321664"); - list.add("002212024051314491510635985165327200256"); - list.add("002212024051317492110636030490036686848"); - list.add("002212024051318033010636034050730926080"); - list.add("002212024051318085810636035425441488896"); - list.add("002212024051318193110636038082438578176"); - list.add("002212024051318282210636040307239358464"); - list.add("002212024051318321010636041265365819392"); - list.add("002212024051318354710636042173725609984"); - list.add("002212024051319243410636054449779740672"); - list.add("002212024051319314310636056249295982592"); - list.add("002212024051320472410636075295044874240"); - list.add("002212024051321282610636085622743711744"); - list.add("002212024051322522710636106764881829888"); - list.add("002212024051323224310636114383465693184"); - list.add("002212024051401542110636152542163542016"); - list.add("002212024051411091510636292186676416512"); - list.add("002212024051414443210636346364786204672"); - list.add("002212024051414510710636348024971419648"); - list.add("002212024051417161410636384542022512640"); - list.add("002212024051417413410636390916517343232"); - list.add("002212024051418202210636400680914984960"); - list.add("002212024051418423910636406291358621696"); - list.add("002212024051418561210636409701818761216"); - list.add("002212024051419055210636412134401216512"); - list.add("002212024051419155810636414673872551936"); - list.add("002212024051419555610636424733535215616"); - list.add("002212024051420020010636426257679953920"); - list.add("002212024051420410810636436106005286912"); - list.add("002212024051421220410636446408754282496"); - list.add("002212024051421412310636451268228718592"); - list.add("002212024051422101110636458519020683264"); - list.add("002212024051500092210636488510603214848"); - list.add("002212024051500155610636490164587114496"); - list.add("002212024051501581410636515909745319936"); - list.add("002212024051508180010636611480052129792"); - list.add("002212024051511552010636666171949543424"); - list.add("002212024051512421210636677966578507776"); - list.add("002212024051515591910636727575826059264"); - list.add("002212024051518033910636758864609656833"); - list.add("002212024051518334910636766455300321280"); - list.add("002212024051518344210636766675961548800"); - list.add("002212024051518452110636769358835277824"); - list.add("002212024051518554110636771959643738112"); - list.add("002212024051519072210636774896817000448"); - list.add("002212024051519345510636781832790724608"); - list.add("002212024051519521010636786170780307456"); - list.add("002212024051520045510636789383330172928"); - list.add("002212024051521154710636807215506477056"); - list.add("002212024051521411810636813638372777984"); - list.add("002212024051522085510636820588257513472"); - list.add("002212024051523005010636833653856649216"); - list.add("002212024051523164210636837645020786688"); - list.add("002212024051600355910636857595633504256"); - list.add("002212024051601055410636865126402973696"); - list.add("002212024051611251710637020999640289280"); - list.add("002212024051613431910637055735263252480"); - list.add("002212024051614340110637068496550662144"); - list.add("002212024051615185110637079776639176704"); - list.add("002212024051615241910637081153550798848"); - list.add("002212024051615290410637082349153980416"); - list.add("002212024051617402710637115412177129472"); - list.add("002212024051617463510637116956434219008"); - list.add("002212024051617523810637118477021929473"); - list.add("002212024051618060110637121848978837504"); - list.add("002212024051618213710637125774361456640"); - list.add("002212024051618293510637127776744411136"); - list.add("002212024051618582710637135043843985408"); - list.add("002212024051620043210637151673637855232"); - list.add("002212024051620440210637161613820874752"); - list.add("002212024051621053910637167055186808832"); - list.add("002212024051621201610637170731393409024"); - list.add("002212024051621204610637170859204841472"); - list.add("002212024051621435610637176687159595008"); - list.add("002212024051622445210637192022625538048"); - list.add("002212024051623543510637209566863671296"); - list.add("002212024051700231310637216772490956800"); - list.add("002212024051701330510637234355477135360"); - list.add("002212024051714213410637427748827525120"); - list.add("002212024051714575110637436880934690816"); - list.add("002212024051718234110637488679633350656"); - list.add("002212024051718345110637491492878249984"); - list.add("002212024051718405010637492998047105024"); - list.add("002212024051718405710637493026242408448"); - list.add("002212024051719122210637500934191558656"); - list.add("002212024051719224810637503559191031808"); - list.add("002212024051719404510637508073681301504"); - list.add("002212024051720394910637522939224621056"); - list.add("002212024051721012210637528361750573056"); - list.add("002212024051721334110637536497319526400"); - list.add("002212024051721351210637536876035817472"); - list.add("002212024051723305610637566004730814464"); - list.add("002212024051723384010637567947406536704"); - list.add("002212024051800104710637576030505385984"); - list.add("002212024051804343710637642425875517440"); - list.add("002212024051807512510637691955573407744"); - list.add("002212024051810025410637725041519308800"); - list.add("002212024051812274710637761502457180160"); - list.add("002212024051813512210637782536765894656"); - list.add("002212024051816333610637823366838378496"); - list.add("002212024051818191310637849943775686656"); - list.add("002212024051818474210637857111851741184"); - list.add("002212024051819514210637873219349057536"); - list.add("002212024051820195710637880326874951680"); - list.add("002212024051820442710637886493369495552"); - list.add("002212024051820511010637888185779048448"); - list.add("002212024051821233410637896338357841920"); - list.add("002212024051821310010637898210528296960"); - list.add("002212024051821384410637900155900735488"); - list.add("002212024051823301810637928229633568768"); - list.add("002212024051823471310637932490649526272"); - list.add("002212024051823583510637935349289381888"); - list.add("002212024051900324710637943956640497664"); - list.add("002212024051901223310637956480751394816"); - list.add("002212024051901434010637961792305295360"); - list.add("002212024051908534810638070042186444800"); - list.add("002212024051909110510638074391202164736"); - list.add("002212024051910220310638092247880155136"); - list.add("002212024051913062410638133608688087040"); - list.add("002212024051914243010638153265296920576"); - list.add("002212024051916014710638177748041822208"); - list.add("002212024051916380010638186861697941504"); - list.add("002212024051916473310638189265253117952"); - list.add("002212024051917370010638201710251327488"); - list.add("002212024051917573510638206887311572992"); - list.add("002212024051918034810638208452334145536"); - list.add("002212024051918513110638220463191490560"); - list.add("002212024051918513410638220475464921088"); - list.add("002212024051919193410638227521867419648"); - list.add("002212024051920082410638239810385301504"); - list.add("002212024051921224210638258506205540352"); - list.add("002212024051921522810638265999373692928"); - list.add("002212024051921561110638266933482942464"); - list.add("002212024051923434010638293985118982144"); - list.add("002212024051923583710638297745058934784"); - list.add("002212024052000023710638298753347956736"); - list.add("002212024052000350310638306914740424704"); - list.add("002212024052009295410638441513661739008"); - list.add("002212024052010395910638459152374509568"); - list.add("002212024052012091110638481596937691136"); - list.add("002212024052012114710638482250908758016"); - list.add("002212024052016173910638544128993640448"); - list.add("002212024052016205410638544943821078528"); - list.add("002212024052016391110638549548109590528"); - list.add("002212024052017465910638566608788852736"); - list.add("002212024052018305010638577645677207552"); - list.add("002212024052018452910638581329465749504"); - list.add("002212024052019493410638597458114457600"); - list.add("002212024052019494310638597495903940608"); - list.add("002212024052019541110638598618402127872"); - list.add("002212024052020053310638601478271643648"); - list.add("002212024052020093110638602480346181632"); - list.add("002212024052020363910638609305646645248"); - list.add("002212024052020580410638614696162816000"); - list.add("002212024052021414710638625696770031616"); - list.add("002212024052022143310638633944575356928"); - list.add("002212024052022540710638643900676378624"); - list.add("002212024052023012910638645753926410240"); - list.add("002212024052023063510638647037726363648"); - list.add("002212024052101514210638688591886135296"); - list.add("002212024052102482210638702851313614848"); - list.add("002212024052109463010638808080072073216"); - list.add("002212024052111310210638834384029429760"); - list.add("002212024052111494210638839082504908800"); - list.add("002212024052112372710638851101086810112"); - list.add("002212024052115210010638892259763793920"); - list.add("002212024052115521410638900117358850048"); - list.add("002212024052116413510638912539323400192"); - list.add("002212024052118205410638937533553012736"); - list.add("002212024052118230710638938090345926656"); - list.add("002212024052118310110638940079452540928"); - list.add("002212024052118441610638943413191032832"); - list.add("002212024052118561710638946435939414016"); - list.add("002212024052118592410638947221626204160"); - list.add("002212024052119093010638949764176789504"); - list.add("002212024052119531610638960776527147008"); - list.add("002212024052119540710638960991243730944"); - list.add("002212024052120294610638969962212605952"); - list.add("002212024052121003310638977707817906176"); - list.add("002212024052121105810638980332102332416"); - list.add("002212024052122521510639005817547190272"); - list.add("002212024052123231010639013600189984768"); - list.add("002212024052123340510639016345031192576"); - list.add("002212024052200001410639022926672527360"); - list.add("002212024052200160410639026912002240512"); - list.add("002212024052201200010639043000430833664"); - list.add("002212024052210402710639184044417314816"); - list.add("002212024052212445510639215367360655360"); - list.add("002212024052217132010639282917262028800"); - list.add("002212024052217445010639290844809981952"); - list.add("002212024052218063010639296296892542976"); - list.add("002212024052218154210639298610751057920"); - list.add("002212024052218274310639301635115974656"); - list.add("002212024052218503610639307393467658240"); - list.add("002212024052218572410639309105399377920"); - list.add("002212024052219062210639311361612517376"); - list.add("002212024052219081210639311823813238784"); - list.add("002212024052219271310639316608681488384"); - list.add("002212024052219415510639320308406767616"); - list.add("002212024052221030010639340712080486400"); - list.add("002212024052221053010639341342659051520"); - list.add("002212024052221283610639347156902703104"); - list.add("002212024052221541610639353617282215936"); - list.add("002212024052222075410639357045141098496"); - list.add("002212024052222112310639357923119955968"); - list.add("002212024052222202610639360201800269824"); - list.add("002212024052222494910639367593069887488"); - list.add("002212024052223022010639370745487486976"); - list.add("002212024052223150510639373952158224384"); - list.add("002212024052223302310639377804064526336"); - list.add("002212024052223331710639378534060240896"); - list.add("002212024052312395110639576478608060416"); - list.add("002212024052313180310639586091978293248"); - list.add("002212024052314185110639601394513833984"); - list.add("002212024052315063810639613417021304832"); - list.add("002212024052315560210639625848828129280"); - list.add("002212024052316223710639632540005494784"); - list.add("002212024052317590210639656803389911040"); - list.add("002212024052318101010639659606966775808"); - list.add("002212024052318244610639663281071816704"); - list.add("002212024052318364510639666297571831808"); - list.add("002212024052319025510639672881111089152"); - list.add("002212024052319055910639673653578412032"); - list.add("002212024052319260410639678706244673536"); - list.add("002212024052321405210639712632353918976"); - list.add("002212024052323085410639734785623150592"); - list.add("002212024052323254610639739028991094784"); - list.add("002212024052401094910639765216491532288"); - list.add("002212024052401155010639766728842194944"); - list.add("002212024052411353810639922708458565632"); - list.add("002212024052412190510639933640580890624"); - list.add("002212024052413105310639946677096067072"); - list.add("002212024052416242310639995374876332032"); - list.add("002212024052417440310640015421829910528"); - list.add("002212024052418420510640030027263492096"); - list.add("002212024052419051010640035837305815040"); - list.add("002212024052419520610640047646782353408"); - list.add("002212024052420045910640050888439455744"); - list.add("002212024052420255610640056161993068544"); - list.add("002212024052420330310640057953969541120"); - list.add("002212024052420380410640059213395283968"); - list.add("002212024052420424510640060391637893120"); - list.add("002212024052421362310640073892609015808"); - list.add("002212024052421423910640075469052014592"); - list.add("002212024052422364510640089082365108224"); - list.add("002212024052422405910640090149112995840"); - list.add("002212024052423062410640096543868076032"); - list.add("002212024052423333810640103396406140928"); - list.add("002212024052500065110640111757081546752"); - list.add("002212024052501061810640126715827453952"); - list.add("002212024052502085210640142463731892224"); - list.add("002212024052503325110640163596476309504"); - list.add("002212024052507111210640218547004862464"); - list.add("002212024052508575910640245420086751232"); - list.add("002212024052511061110640277681974382592"); - list.add("002212024052512493910640303722588553216"); - list.add("002212024052512524310640304495188021248"); - list.add("002212024052513052710640307699478388736"); - list.add("002212024052513121410640309406330097664"); - list.add("002212024052513411910640316723898191872"); - list.add("002212024052515122210640339637215109120"); - list.add("002212024052515523710640349766601875456"); - list.add("002212024052517240510640372784232030208"); - list.add("002212024052517281010640373813960732672"); - list.add("002212024052518045610640383066092965888"); - list.add("002212024052518083010640383963792826368"); - list.add("002212024052518105710640384577744367616"); - list.add("002212024052518295510640389353916465152"); - list.add("002212024052518570610640396195268956160"); - list.add("002212024052519123810640400102167355392"); - list.add("002212024052519525310640410230835920896"); - list.add("002212024052522193410640447144601604096"); - list.add("002212024052522213610640447656563990528"); - list.add("002212024052522335510640450755378700288"); - list.add("002212024052600270910640479251163471872"); - list.add("002212024052601071710640489351803146240"); - list.add("002212024052603413510640528183376252928"); - list.add("002212024052604185110640537561013436416"); - list.add("002212024052604541310640546460817031168"); - list.add("002212024052608584210640607987523633152"); - list.add("002212024052609465310640620113133080576"); - list.add("002212024052610104910640626136103010304"); - list.add("002212024052610365710640632716088991744"); - list.add("002212024052611551210640652406221119488"); - list.add("002212024052612243010640659780141158400"); - list.add("002212024052614552810640697772581830656"); - list.add("002212024052616164710640718238285844480"); - list.add("002212024052616393810640723986623533056"); - list.add("002212024052616431610640724899572236288"); - list.add("002212024052617041710640730189583245312"); - list.add("002212024052617055210640730588757319680"); - list.add("002212024052618121210640747280405757952"); - list.add("002212024052618513810640757206609182720"); - list.add("002212024052618525610640757533429620736"); - list.add("002212024052618595810640759303547543552"); - list.add("002212024052619033310640760202974093312"); - list.add("002212024052619053410640760711095799808"); - list.add("002212024052619531110640772696042356736"); - list.add("002212024052620401210640784526541266944"); - list.add("002212024052621474010640801504633131008"); - list.add("002212024052621504410640802277971476480"); - list.add("002212024052621532610640802957428727808"); - list.add("002212024052622004910640804816911036416"); - list.add("002212024052700093910640837237465571328"); - list.add("002212024052700102410640837425556299776"); - list.add("002212024052708273810640962557188337664"); - list.add("002212024052710101510640988381051895808"); - list.add("002212024052712354410641024993289064448"); - list.add("002212024052712430910641026860149784576"); - list.add("002212024052714050110641047466063794176"); - list.add("002212024052717484610641103772497608704"); - list.add("002212024052718251810641112966796615680"); - list.add("002212024052718344410641115339836977152"); - list.add("002212024052718415110641117129592029184"); - list.add("002212024052718441110641117719363715072"); - list.add("002212024052718573410641121088452005888"); - list.add("002212024052719094110641124134654611456"); - list.add("002212024052719202110641126818882097152"); - list.add("002212024052719343210641130389065850880"); - list.add("002212024052720072710641138672747397120"); - list.add("002212024052722160510641171045482512384"); - list.add("002212024052722161110641171072126509056"); - list.add("002212024052722422010641177649357504512"); - list.add("002212024052723140810641185652054519808"); - list.add("002212024052723411010641192456769343488"); - list.add("002212024052800445410641208495057104896"); - list.add("002212024052812014310641378822007709696"); - list.add("002212024052812065410641380128689262592"); - list.add("002212024052817320810641461974408458240"); - list.add("002212024052817480410641465983407505408"); - list.add("002212024052818350310641477808075005952"); - list.add("002212024052818554510641483016985923584"); - list.add("002212024052819131010641487399594377216"); - list.add("002212024052819151610641487930871025664"); - list.add("002212024052819253310641490518100250624"); - list.add("002212024052819301810641491710871560192"); - list.add("002212024052819552310641498024760729600"); - list.add("002212024052821465510641526092010721280"); - list.add("002212024052821480610641526392294490112"); - list.add("002212024052821490310641526628583837696"); - list.add("002212024052822081610641531464850210816"); - list.add("002212024052822213810641534830741573632"); - list.add("002212024052822454910641540914918678528"); - list.add("002212024052823344910641553247676416000"); - list.add("002212024052823422410641555155823726592"); - list.add("002212024052900193510641564513321390080"); - list.add("002212024052900403010641569775665123328"); - list.add("002212024052901412310641585100208865280"); - list.add("002212024052913255810641762411144122368"); - list.add("002212024052916333110641809609151856640"); - list.add("002212024052917131510641819612138516480"); - list.add("002212024052917523410641829505509433344"); - list.add("002212024052918020110641831882572505088"); - list.add("002212024052918323410641839569103708160"); - list.add("002212024052918334710641839875261542400"); - list.add("002212024052918475110641843416680742912"); - list.add("002212024052920125310641864817807429632"); - list.add("002212024052921355810641885725264564224"); - list.add("002212024052921471010641888544789970944"); - list.add("002212024052921500610641889280507011072"); - list.add("002212024052922054210641893205857091584"); - list.add("002212024052922104110641894462678339584"); - list.add("002212024052922123610641894945913683968"); - list.add("002212024052922215610641897293401251840"); - list.add("002212024052922503910641904520267943936"); - list.add("002212024052922531010641905153305858048"); - list.add("002212024052923373910641916349713334272"); - list.add("002212024052923530710641920240082194432"); - list.add("002212024053000291410641929329194782720"); - list.add("002212024053004065310641984103257866240"); - list.add("002212024053008564410642057044157386752"); - list.add("002212024053012082610642105289063907328"); - list.add("002212024053012434510642114174968684544"); - list.add("002212024053014424810642144137180635136"); - list.add("002212024053016443010642174761172942848"); - list.add("002212024053018432710642204698525253632"); - list.add("002212024053019081610642210940880236544"); - list.add("002212024053019215610642214382977105920"); - list.add("002212024053019274510642215844769280000"); - list.add("002212024053021055210642240536005165056"); - list.add("002212024053021055210642240536936300544"); - list.add("002212024053021131810642242407645667328"); - list.add("002212024053021231310642244903307427840"); - list.add("002212024053023113310642272167870410752"); - list.add("002212024053023170210642273545724440576"); - list.add("002212024053023430110642280086702080000"); - list.add("002212024053100041110642285412860149760"); - list.add("002212024053107143010642393706322300928"); - list.add("002212024053111560710642464577909002240"); - list.add("002212024053112145910642469323146739712"); - list.add("002212024053112454110642477050264522752"); - list.add("002212024053115172610642515237973090304"); - list.add("002212024053116254010642532409659699200"); - list.add("002212024053118102510642558771585953792"); - list.add("002212024053118291410642563507174039552"); - list.add("002212024053119492410642583680556568576"); - list.add("002212024053120084110642588534245376000"); - list.add("002212024053120090610642588641829273600"); - list.add("002212024013008060410598195363803480064"); - list.add("002212024013008130010598197109908156416"); - list.add("002212024013019392410598369846177918976"); - list.add("002212024013108410410598566558256963584"); - list.add("002212024013108505610598569040739135488"); - list.add("002212024013110011810598586751293992960"); - list.add("002212024013112032710598617491298971648"); - list.add("002212024020108052910598919992595804160"); - list.add("002212024020108304410598926348483653632"); - list.add("002212024020108363910598927835231076352"); - list.add("002212024020111390410598973743414730752"); - list.add("002212024020114322110599017350088626176"); - list.add("002212024020114474410599021222320615424"); - list.add("002212024020115092510599026678041018368"); - list.add("002212024020119590210599099564427669504"); - list.add("002212024020207054910599267366398578688"); - list.add("002212024020208262510599287646486110208"); - list.add("002212024020214265010599378351836442624"); - list.add("002212024020215343210599395386694881280"); - list.add("002212024020307373210599637734226214912"); - list.add("002212024020316072110599766035400572928"); - list.add("002212024020322230010599860568206397440"); - list.add("002212024020408093410600008184035123200"); - list.add("002212024020409244810600027116138618880"); - list.add("002212024020508184010600372861536260096"); - list.add("002212024020514283510600465955553648640"); - list.add("002212024020517003910600504221174415360"); - list.add("002212024020521230310600570256004050944"); - list.add("002212024020608155210600734545404710912"); - list.add("002212024020608382510600740220346396672"); - list.add("002212024020608451110600741920730718208"); - list.add("002212024020609124110600748841333379072"); - list.add("002212024020614411210600831517739819008"); - list.add("002212024020708312310601100837498085376"); - list.add("002212024020714333610601191990266511360"); - list.add("002212024020808475610601467388114333696"); - list.add("002212024020810053710601486939065114624"); - list.add("002212024020811101310601503195798601728"); - list.add("002212024020813113610601533745412943872"); - list.add("002212024020908390010601827531082936320"); - list.add("002212024020910022910601848539790401536"); - list.add("002212024020910361810601857048976125952"); - list.add("002212024020914165310601912561811931136"); - list.add("002212024020914461510601919951398666240"); - list.add("002212024020918534910601982251957444608"); - list.add("002212024021120334410602732175872696320"); - list.add("002212024021122380810602763479644069888"); - list.add("002212024021214122510602998599363010560"); - list.add("002212024021315415910603383530189070336"); - list.add("002212024021400083110603511002905235456"); - list.add("002212024021416051710603751779179274240"); - list.add("002212024021423023410603856791162929152"); - list.add("002212024021511412210604047750442496000"); - list.add("002212024021514072810604084516702027776"); - list.add("002212024021515430710604108588191272960"); - list.add("002212024021523001310604218587504525312"); - list.add("002212024021608381110604364039677882368"); - list.add("002212024021623020310604581439817023488"); - list.add("002212024021722362610604937380427948032"); - list.add("002212024021808001010605079249543716864"); - list.add("002212024021808104810605081925655490560"); - list.add("002212024021808185910605083981192704000"); - list.add("002212024021810383210605119103427313664"); - list.add("002212024021908582810605456306802053120"); - list.add("002212024022109131310606184796175687680"); - list.add("002212024022119525210606345768395419648"); - list.add("002212024022218212410606685138835025920"); - list.add("002212024022307485310606888346055372800"); - list.add("002212024022308550410606905004268617728"); - list.add("002212024022408553910607267536671035392"); - list.add("002212024022517022910607752442171338752"); - list.add("002212024022521075910607814222629285888"); - list.add("002212024022609245810607999689369276416"); - list.add("002212024022708185910608345472558899200"); - list.add("002212024022808171110608707409136111616"); - list.add("002212024022808415410608713630598144000"); - list.add("002212024022908220310609071021906227200"); - list.add("002212024022908291710609072841400475648"); - list.add("002212024022908495410609078031603834880"); - list.add("002212024022908535210609079026622164992"); - list.add("002212024022920294410609254148826947584"); - list.add("002212024030108013710609428267015561216"); - list.add("002212024030108192710609432753644294144"); - list.add("002212024030109255810609449496542498816"); - list.add("002212024030110432610609468990032666624"); - list.add("002212024030114414110609528945117454336"); - list.add("002212024030200361910609678590595244032"); - list.add("002212024030300003710610031994312007680"); - list.add("002212024030408224710610520757550407680"); - list.add("002212024030408314410610523009898565632"); - list.add("002212024030422585110610741225040171008"); - list.add("002212024030508104110610880098894979072"); - list.add("002212024030508365710610886712358817792"); - list.add("002212024030508490010610889744259559424"); - list.add("002212024030521512910611086662637559808"); - list.add("002212024030608175710611244317067141120"); - list.add("002212024030708090510611604472871477248"); - list.add("002212024030708282910611609355581992960"); - list.add("002212024030708502610611614878784106496"); - list.add("002212024030709174810611621767196659712"); - list.add("002212024030719534010611781785478717440"); - list.add("002212024030807594010611964492124340224"); - list.add("002212024030822443910612187206556524544"); - list.add("002212024030906325510612305048975122432"); - list.add("002212024030907350010612320673259941888"); - list.add("002212024030915525410612445973697167360"); - list.add("002212024030916303810612455470245429248"); - list.add("002212024030921533110612536725873057792"); - list.add("002212024031017202310612830374738165760"); - list.add("002212024031020531910612883964449075200"); - list.add("002212024031023432510612926769309773824"); - list.add("002212024031108301510613059352027627520"); - list.add("002212024031109563110613081060800557056"); - list.add("002212024031114040910613143380055498752"); - list.add("002212024031208192510613419012528644096"); - list.add("002212024031208341810613422759090114560"); - list.add("002212024031208412810613424562076852224"); - list.add("002212024031308225010613782262091567104"); - list.add("002212024031308360610613785598963986432"); - list.add("002212024031308371210613785876779442176"); - list.add("002212024031308422110613787173562695680"); - list.add("002212024031408241810614145019098722304"); - list.add("002212024031508224410614507010081640448"); - list.add("002212024031508590910614516174918074368"); - list.add("002212024031509281210614523487750299648"); - list.add("002212024031510283910614538700956971008"); - list.add("002212024031515211110614612316401750016"); - list.add("002212024031520151910614686339450355712"); - list.add("002212024031609341910614887414428016640"); - list.add("002212024031718294510615384546949754880"); - list.add("002212024031808035610615589445707841536"); - list.add("002212024031808260710615595025820246016"); - list.add("002212024031815323210615702336330211328"); - list.add("002212024031815375110615703677041405952"); - list.add("002212024031911254310616002613799657472"); - list.add("002212024032008101710616315817846980608"); - list.add("002212024032011532310616371961915990016"); - list.add("002212024032108120110616678642146373632"); - list.add("002212024032108354410616684610730549248"); - list.add("002212024032108424510616686374340608000"); - list.add("002212024032114381810616775853463097344"); - list.add("002212024032208245610617044281046831104"); - list.add("002212024032208312010617045888861618176"); - list.add("002212024032208434810617049027454844928"); - list.add("002212024032323465610617638697148858368"); - list.add("002212024032402541210617685824652591104"); - list.add("002212024032508523610618138407486066688"); - list.add("002212024032520172810618310759024463872"); - list.add("002212024032608315810618495600729882624"); - list.add("002212024032608391310618497425932648448"); - list.add("002212024032608510410618500408262008832"); - list.add("002212024032708422710618860627711471616"); - list.add("002212024032714244610618946776453619712"); - list.add("002212024032808424210619223076450693120"); - list.add("002212024032814205310619308187015802880"); - list.add("002212024032907525410619572932763545600"); - list.add("002212024032908303010619582395874840576"); - list.add("002212024032908500610619587327303061504"); - list.add("002212024032911524710619633303216230400"); - list.add("002212024032923193810619806154641907712"); - list.add("002212024033016321410620066014643077120"); - list.add("002212024033016343310620066598362058752"); - list.add("002212024033020173810620122738665811968"); - list.add("002212024040108490910620674253468303360"); - list.add("002212024040109022110620677573939793920"); - list.add("002212024040208244810621030511414784000"); - list.add("002212024040308254910621393156197027840"); - list.add("002212024040308393710621396627855544320"); - list.add("002212024040308404410621396912069971968"); - list.add("002212024040309543710621415504291794944"); - list.add("002212024040311170810621436271049670656"); - list.add("002212024040323530210621626497573154816"); - list.add("002212024040402372510621667866323075072"); - list.add("002212024040408542210621762730175643648"); - list.add("002212024040415481010621866867580702720"); - list.add("002212024040512391510622181710707392512"); - list.add("002212024040516392110622242135366791168"); - list.add("002212024040614223510622570105679126528"); - list.add("002212024040623165710622704580477042688"); - list.add("002212024040809150910623217512072990720"); - list.add("002212024040811153710623247826547335168"); - list.add("002212024040908295510623568517415526400"); - list.add("002212024040908523110623574205092974592"); - list.add("002212024040911290310623613595104657408"); - list.add("002212024041009232810623944378227253248"); - list.add("002212024041107493210624283130019381248"); - list.add("002212024041108193110624290674609082368"); - list.add("002212024041208114810624651118629326848"); - list.add("002212024041208300810624655733583732736"); - list.add("002212024041209162410624667378518835200"); - list.add("002212024041210260110624684896674537472"); - list.add("002212024041214283110624745923243118592"); - list.add("002212024041420442210625565287085670400"); - list.add("002212024041507423510625730932126121984"); - list.add("002212024041508341410625743931251539968"); - list.add("002212024041521063510625933262427582464"); - list.add("002212024041609581110626127442457104384"); - list.add("002212024041707543510626458728699969536"); - list.add("002212024041708271210626466935588491264"); - list.add("002212024041708532810626473545384984576"); - list.add("002212024041808322310626830625628844032"); - list.add("002212024041808581710626837143647076352"); - list.add("002212024041810270010626859470992621568"); - list.add("002212024041810323510626860875480481792"); - list.add("002212024041816371210626952633348419584"); - list.add("002212024041820424210627014417214259200"); - list.add("002212024041908145410627188615932936192"); - list.add("002212024041908295410627192392017481728"); - list.add("002212024042012450810627619008926924800"); - list.add("002212024042012542310627621336262328320"); - list.add("002212024042023094310627776190762885120"); - list.add("002212024042109541010627938373800124416"); - list.add("002212024042207451110628268298934329344"); - list.add("002212024042220074210628455161424855040"); - list.add("002212024042307511610628632220004851712"); - list.add("002212024042308012110628634756814118912"); - list.add("002212024042308204710628639647745916928"); - list.add("002212024042309213010628654927362727936"); - list.add("002212024042407541510628995359758417920"); - list.add("002212024042419503110629175610779844608"); - list.add("002212024042507593310629359080569290752"); - list.add("002212024042508162210629363310436741120"); - list.add("002212024042508444810629370468299612160"); - list.add("002212024042510044010629390566508900352"); - list.add("002212024042608042610629722695250190336"); - list.add("002212024042608254110629728043720839168"); - list.add("002212024042608495310629734132524331008"); - list.add("002212024042613574610629811616614793216"); - list.add("002212024042808054110630447788521406464"); - list.add("002212024042809245110630467710966120448"); - list.add("002212024042823254410630679326345379840"); - list.add("002212024042907322310630801794375454720"); - list.add("002212024042913113810630887168829394944"); - list.add("002212024043008265210631177893526605824"); - list.add("002212024043008304710631178879007895552"); - list.add("002212024043008514610631184158888271872"); - list.add("002212024043008590110631185985480146944"); - list.add("002212024043009003010631186356933967872"); - list.add("002212024043010533110631214799365967872"); - list.add("002212024050107092310631520782677000192"); - list.add("002212024050107525610631531743152410624"); - list.add("002212024050416563310632755709779451904"); - list.add("002212024050515232310633094653215678464"); - list.add("002212024050520055610633165758466428928"); - list.add("002212024050520481310633176399665774592"); - list.add("002212024050607533110633343829061480448"); - list.add("002212024050607564510633344642827370496"); - list.add("002212024050608283810633352666908696576"); - list.add("002212024050608393610633355426893475840"); + + list.add("002212024020209484310599308359376400384"); + list.add("002212024020210271910599318075130855424"); + list.add("002212024020212541710599355059612233728"); + list.add("002212024020213102110599359102390714368"); + list.add("002212024020216131410599405125300551680"); + list.add("002212024020217093710599419315385958400"); + list.add("002212024020217473410599428865474797568"); + list.add("002212024020310524610599686864093933568"); + list.add("002212024020311461610599700328538521600"); + list.add("002212024020312191210599708616768860160"); + list.add("002212024020316231310599770024630005760"); + list.add("002212024020317284610599786522318110720"); + list.add("002212024020320430710599835430821130240"); + list.add("002212024020407435510600001726333087744"); + list.add("002212024020410182010600040588758065152"); + list.add("002212024020411534710600064609071640576"); + list.add("002212024020417400510600151759191855104"); + list.add("002212024020507172410600357444209025024"); + list.add("002212024020508232410600374051907993600"); + list.add("002212024020518441410600530289171918848"); + list.add("002212024020519172410600538637863464960"); + list.add("002212024020609570510600760018361991168"); + list.add("002212024020615260710600842821125234688"); + list.add("002212024020616351310600860210705182720"); + list.add("002212024020708224510601098662578515968"); + list.add("002212024020717081110601230892282519552"); + list.add("002212024020717535710601242409709817856"); + list.add("002212024020720104910601276856179843072"); + list.add("002212024020811091710601502961240539136"); + list.add("002212024020812204910601520965132042240"); + list.add("002212024020812433910601526711751221248"); + list.add("002212024020813215410601536336834174976"); + list.add("002212024020813363810601540042416410624"); + list.add("002212024020816530510601589483749486592"); + list.add("002212024020911345910601871817422499840"); + list.add("002212024020911450510601874358973591552"); + list.add("002212024020913082310601895323803398144"); + list.add("002212024020917285510601960885797601280"); + list.add("002212024020923321510602052324288184320"); + list.add("002212024021015493410602298273655889920"); + list.add("002212024021018355210602340125127766016"); + list.add("002212024021112433910602613873231818752"); + list.add("002212024021114122910602636230311387136"); + list.add("002212024021119502010602721250099175424"); + list.add("002212024021208045810602906128065474560"); + list.add("002212024021212582910602979995000197120"); + list.add("002212024021311431310603323439251013632"); + list.add("002212024021414124810603723473701003264"); + list.add("002212024021416374510603759951855538176"); + list.add("002212024021512373810604061909971976192"); + list.add("002212024021513502010604080206798815232"); + list.add("002212024021612390610604424667854565376"); + list.add("002212024021614382210604454682567995392"); + list.add("002212024021618161210604509502316036096"); + list.add("002212024021619055910604522029036945408"); + list.add("002212024021714081110604809473864318976"); + list.add("002212024021717341410604861328137609216"); + list.add("002212024021719245910604889199513939968"); + list.add("002212024021722055310604929693275873280"); + list.add("002212024021803175510605008216941998080"); + list.add("002212024021820155710605264413833666560"); + list.add("002212024021820565210605274710090215424"); + list.add("002212024022013144410605883186159243264"); + list.add("002212024022015500710605922290279325696"); + list.add("002212024022016461910605936431721140224"); + list.add("002212024022016543010605938491023716352"); + list.add("002212024022108493010606178825546194944"); + list.add("002212024022109065810606183221123031040"); + list.add("002212024022113324010606250086104989696"); + list.add("002212024022210211210606564292809359361"); + list.add("002212024022213031810606605083995381760"); + list.add("002212024022214024510606620047016292352"); + list.add("002212024022308440810606902252803698688"); + list.add("002212024022312132810606954931922223104"); + list.add("002212024022312402710606961722464624640"); + list.add("002212024022411491510607311227746832384"); + list.add("002212024022413485910607341357879222272"); + list.add("002212024022415144310607362932927844352"); + list.add("002212024022514535410607720081572339712"); + list.add("002212024022516074310607738658967334912"); + list.add("002212024022518273010607773838208716800"); + list.add("002212024022521492210607824639666380800"); + list.add("002212024022608485210607990606768402432"); + list.add("002212024022612165010608042943269646336"); + list.add("002212024022613560810608067933733871616"); + list.add("002212024022614550810608082781125435392"); + list.add("002212024022619595410608159475797643264"); + list.add("002212024022707371010608334950978772992"); + list.add("002212024022709081310608357864529403904"); + list.add("002212024022712154510608405058006364160"); + list.add("002212024022712392810608411027829477376"); + list.add("002212024022806403310608683092124008448"); + list.add("002212024022808034910608704044328509440"); + list.add("002212024022809225610608723956677173248"); + list.add("002212024022811132410608751753355546624"); + list.add("002212024022814331510608802048514699264"); + list.add("002212024022909583510609095314062401536"); + list.add("002212024022909590510609095441475489792"); + list.add("002212024022910250510609101983075561472"); + list.add("002212024022912330510609134197927157760"); + list.add("002212024022917224110609207074815569920"); + list.add("002212024030108482510609440044237148160"); + list.add("002212024030109285810609450248058269696"); + list.add("002212024030111440410609484246637305856"); + list.add("002212024030116454210609560155036897280"); + list.add("002212024030118321310609586961187037184"); + list.add("002212024030207504610609787924464230400"); + list.add("002212024030213181410609870333334548480"); + list.add("002212024030213314010609873716453998592"); + list.add("002212024030216253510609917482750660608"); + list.add("002212024030218075010609943216166612992"); + list.add("002212024030218462710609952931726209024"); + list.add("002212024030219175910609960867252908032"); + list.add("002212024030219320010609964395170324480"); + list.add("002212024030220365110609980716001165312"); return list; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationStatisticsInfoDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationStatisticsInfoDTO.java new file mode 100644 index 000000000..76767bb8a --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/StationStatisticsInfoDTO.java @@ -0,0 +1,24 @@ +package com.jsowell.pile.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * TODO + * + * @author Lemon + * @Date 2024/7/23 15:52:34 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class StationStatisticsInfoDTO { + private String merchantId; + + private String startTime; + + private String endTime; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java index 6c92e1efa..646e51533 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java @@ -118,4 +118,6 @@ public interface PileStationInfoMapper { List NXJTQueryStationsInfo(@Param("dto") NXJTQueryStationInfoDTO dto); PileStationInfo queryInfoByDeptId(@Param("deptId") String deptId); + + List getStationInfosByMerchantIds(@Param("list") List merchantIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileStationInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileStationInfoService.java index 636ef1573..680bd0083 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileStationInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileStationInfoService.java @@ -5,6 +5,7 @@ import com.jsowell.pile.domain.PileStationInfo; import com.jsowell.pile.dto.FastCreateStationDTO; import com.jsowell.pile.dto.QueryStationDTO; import com.jsowell.pile.dto.QueryStationInfoDTO; +import com.jsowell.pile.dto.StationStatisticsInfoDTO; import com.jsowell.pile.dto.amap.GetStationInfoDTO; import com.jsowell.pile.dto.lutongyunting.BindParkingPlatformDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO; @@ -152,9 +153,11 @@ public interface PileStationInfoService { //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 后管小程序 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ + public List getStationInfosByMerchantIds(List merchantIds); + /** * 获取站点统计信息 - * @param merchantId + * @param dto */ - List getStationStatisticsInfos(String merchantId); + List getStationStatisticsInfos(StationStatisticsInfoDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java index 046077b06..d1e1d4d84 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java @@ -10,29 +10,29 @@ import com.jsowell.common.core.domain.entity.SysUser; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.core.redis.RedisCache; +import com.jsowell.common.enums.thirdparty.BusinessInformationExchangeEnum; +import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.*; import com.jsowell.common.util.ip.AddressUtils; import com.jsowell.pile.domain.PileBasicInfo; import com.jsowell.pile.domain.PileStationInfo; +import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.domain.ThirdpartyParkingConfig; -import com.jsowell.pile.dto.FastCreateStationDTO; -import com.jsowell.pile.dto.QueryStationDTO; -import com.jsowell.pile.dto.QueryStationInfoDTO; +import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.amap.GetStationInfoDTO; import com.jsowell.pile.dto.lutongyunting.BindParkingPlatformDTO; import com.jsowell.pile.dto.ningxiajiaotou.NXJTQueryStationInfoDTO; import com.jsowell.pile.mapper.PileStationInfoMapper; import com.jsowell.pile.service.*; import com.jsowell.pile.util.UserUtils; -import com.jsowell.pile.vo.base.MerchantInfoVO; -import com.jsowell.pile.vo.base.PileInfoVO; -import com.jsowell.pile.vo.base.StationInfoVO; -import com.jsowell.pile.vo.base.ThirdPartyStationInfoVO; +import com.jsowell.pile.vo.SupStationStatsVO; +import com.jsowell.pile.vo.base.*; import com.jsowell.pile.vo.ningxiajiaotou.NXJTStationInfoVO; import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO; import com.jsowell.pile.vo.uniapp.customer.CurrentTimePriceDetails; +import com.jsowell.pile.vo.web.MerchantOrderReportVO; import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.system.service.SysDeptService; import com.jsowell.system.service.SysUserService; @@ -44,9 +44,13 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -88,6 +92,9 @@ public class PileStationInfoServiceImpl implements PileStationInfoService { @Autowired private OrderBasicInfoService orderBasicInfoService; + @Autowired + private SettleOrderReportService settleOrderReportService; + /** * 查询充电站信息 @@ -623,16 +630,115 @@ public class PileStationInfoServiceImpl implements PileStationInfoService { return pileStationInfoMapper.queryInfoByDeptId(deptId); } + @Override + public List getStationInfosByMerchantIds(List merchantIds){ + return pileStationInfoMapper.getStationInfosByMerchantIds(merchantIds); + } /** * 获取站点统计信息 - * @param merchantId + * @param dto */ @Override - public List getStationStatisticsInfos(String merchantId) { - // 根据运营商id查出所有站点id + public List getStationStatisticsInfos(StationStatisticsInfoDTO dto) { + String merchantId = dto.getMerchantId(); + // 获取当前登录账号的运营商权限 + List merchantInfoVOList = UserUtils.getMerchantInfoVOList(); + List merchantIds = new ArrayList<>(); + List resultList = new ArrayList<>(); + if (StringUtils.isBlank(merchantId)) { + merchantIds = merchantInfoVOList.stream() + .map(MerchantInfoVO::getMerchantId) + .collect(Collectors.toList()); + }else { + merchantIds.add(merchantId); + } + // 根据运营商ids查出所有站点id + List pileStationInfos = getStationInfosByMerchantIds(merchantIds); + if (CollectionUtils.isEmpty(pileStationInfos)) { + // 未查到该运营商下的站点 + throw new BusinessException(ReturnCodeEnum.CODE_SELECT_INFO_IS_NULL); + } + List stationIds = pileStationInfos.stream() + .map(x -> String.valueOf(x.getId())) + .collect(Collectors.toList()); + // 创建DecimalFormat对象并设置格式 + DecimalFormat df = new DecimalFormat("0.00%"); + // 根据站点ids查询站点营收报表 + List list = settleOrderReportService.queryOrderReport(stationIds, dto.getStartTime(), dto.getEndTime()); + if (CollectionUtils.isEmpty(list)) { + throw new BusinessException(ReturnCodeEnum.CODE_SELECT_INFO_IS_NULL); + } + // 根据站点id分组,将充电度数、充电金额、充电次数进行累加 + Map collect = list.stream() + .sorted(Comparator.comparing(SettleOrderReport::getStationId)) + // .filter(vo -> vo.getChargingTime() != null && vo.getTotalPower() != null) + .collect(Collectors.toMap(SettleOrderReport::getStationId, Function.identity(), + (a, b) -> { + a.setUseElectricity(a.getUseElectricity().add(b.getUseElectricity())); + a.setTotalAmount(a.getTotalAmount().add(b.getTotalAmount())); + a.setChargeNum(String.valueOf(Integer.parseInt(a.getChargeNum()) + Integer.parseInt(b.getChargeNum()))); + return a; + })); - return null; + + for (Map.Entry entry: collect.entrySet()) { + String stationId = entry.getKey(); + SettleOrderReport report = entry.getValue(); + + // 查询枪口列表 + List uniAppConnectorList = pileConnectorInfoService.getUniAppConnectorList(Long.parseLong(stationId)); + + int chargingConnectorNum = Constants.zero; // 充电中 + int freeConnectorNum = Constants.zero; // 空闲 + int occupiedConnectorNum = Constants.zero; // 占用 + int hangingConnectorNum = Constants.zero; // 挂起 + int offlineConnectorNum = Constants.zero; // 离线 + int faultConnectorNum = Constants.zero; // 故障 + + for (ConnectorInfoVO connectorInfoVO : uniAppConnectorList) { + String connectorStatus = connectorInfoVO.getConnectorStatus(); + if (StringUtils.equals(PileConnectorDataBaseStatusEnum.FREE.getValue(), connectorStatus)) { + // 空闲 + freeConnectorNum += 1; + }else if (StringUtils.equals(PileConnectorDataBaseStatusEnum.OCCUPIED_NOT_CHARGED.getValue(), connectorStatus)) { + // 占用(未充电) + occupiedConnectorNum += 1; + }else if (StringUtils.equals(PileConnectorDataBaseStatusEnum.OCCUPIED_CHARGING.getValue(), connectorStatus)) { + // 充电中 + chargingConnectorNum += 1; + }else if (StringUtils.equals(PileConnectorDataBaseStatusEnum.OFF_NETWORK.getValue(), connectorStatus)) { + // 离线 + offlineConnectorNum += 1; + }else if(StringUtils.equals(PileConnectorDataBaseStatusEnum.FAULT.getValue(), connectorStatus)) { + // 故障 + faultConnectorNum += 1; + } + } + // 计算枪口可使用率 + int totalConnectorNum = uniAppConnectorList.size(); + double connectorAvailability = (double) freeConnectorNum / totalConnectorNum; + String format = df.format(connectorAvailability); + + StationStatisticsInfosVO vo = StationStatisticsInfosVO.builder() + .stationId(stationId) + // .stationName(pileStationInfo.getStationName()) + .chargeDegree(report.getUseElectricity()) + .chargeAmount(report.getTotalAmount()) + .orderQuantity(Integer.parseInt(report.getChargeNum())) + .connectorAvailability(format) + .chargingConnectorNum(chargingConnectorNum) + .freeConnectorNum(freeConnectorNum) + .occupiedConnectorNum(occupiedConnectorNum) + .hangingConnectorNum(hangingConnectorNum) + .offlineConnectorNum(offlineConnectorNum) + .faultConnectorNum(faultConnectorNum) + .build(); + + resultList.add(vo); + } + + return resultList; } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/StationStatisticsInfosVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/StationStatisticsInfosVO.java index c854136d3..71bdfa25d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/StationStatisticsInfosVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/business/StationStatisticsInfosVO.java @@ -18,6 +18,17 @@ import java.math.BigDecimal; @AllArgsConstructor @Builder public class StationStatisticsInfosVO { + + /** + * 站点id + */ + private String stationId; + + /** + * 站点名称 + */ + private String stationName; + /** * 充电度数 */ @@ -41,30 +52,30 @@ public class StationStatisticsInfosVO { /** * 充电中的设备数量 */ - private Integer chargingPileNum; + private Integer chargingConnectorNum; /** * 空闲中的设备数量 */ - private Integer freePileNum; + private Integer freeConnectorNum; /** * 占用中的设备数量 */ - private Integer occupiedPileNum; + private Integer occupiedConnectorNum; /** * 挂起中的设备数量 */ - private Integer hangingPileNum; + private Integer hangingConnectorNum; /** * 离线设备数量 */ - private Integer offlinePileNum; + private Integer offlineConnectorNum; /** * 故障桩数量 */ - private Integer faultPileNum; + private Integer faultConnectorNum; } diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml index 4296bf5a9..c557f04f0 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml @@ -597,4 +597,14 @@ where del_flag = '0' and dept_id = #{deptId,jdbcType=VARCHAR} + + \ No newline at end of file