From f1f0bf275adada9c3c6614e06cdcf45fae11c031 Mon Sep 17 00:00:00 2001 From: xiaowuler Date: Mon, 21 Mar 2022 13:39:52 +0800 Subject: [PATCH] modify sone codes --- .../xxljobexecutor/dao/IDataRepository.java | 1 + .../dao/impl/DataRepository.java | 51 +++++++++++++--- .../model/domain/RadarBlock.java | 24 ++++++++ .../service/impl/RadarService.java | 57 ++++++++++++++++-- .../core/weather/resolver/RadarReader.java | 2 + .../core/weather/resolver/RadarReader$1.class | Bin 1345 -> 1345 bytes .../core/weather/resolver/RadarReader.class | Bin 3049 -> 4152 bytes .../target/maven-archiver/pom.properties | 2 +- .../compile/default-compile/inputFiles.lst | 38 ++++++------ .../target/radar-core-1.0.0-SNAPSHOT.jar | Bin 36966 -> 37429 bytes 10 files changed, 143 insertions(+), 32 deletions(-) create mode 100644 04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/domain/RadarBlock.java diff --git a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/dao/IDataRepository.java b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/dao/IDataRepository.java index f3e37de..f929007 100644 --- a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/dao/IDataRepository.java +++ b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/dao/IDataRepository.java @@ -14,4 +14,5 @@ import com.ping.chuan.ahpmsdp.xxljobexecutor.model.dao.DealInfo; */ public interface IDataRepository { void insert(String keyspace, String tableName, Date initialTime, Date forecastTime, int timeEffect, Map>> columns); + void insert(String keyspace, String tableName, Date initialTime, Date forecastTime, String station, Map columns, int maxCount); } diff --git a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/dao/impl/DataRepository.java b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/dao/impl/DataRepository.java index 20d9d36..1fd7a2a 100644 --- a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/dao/impl/DataRepository.java +++ b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/dao/impl/DataRepository.java @@ -38,17 +38,32 @@ public class DataRepository implements IDataRepository { return; } - groupInsert(keyspace, tableName, targetColumns, targetValues); + groupInsert(keyspace, tableName, targetColumns, targetValues, maxInsertCount, 2); } - private void groupInsert(String keyspace, String tableName, List columns, List values){ - int len = CalcUtil.calcClip(columns.size() - 2, maxInsertCount); + @Override + public void insert(String keyspace, String tableName, Date initialTime, Date forecastTime, String station, Map columns, int maxCount) { + List targetColumns = prepareRadarColumnNames(columns.keySet()); + List targetValues = prepareColumnValues(initialTime, forecastTime, station, columns.values()); + + if (targetColumns.size() <= maxCount){ + Insert builder = QueryBuilder.insertInto(keyspace, tableName) + .values(targetColumns, targetValues); + cassandraTemplate.getSession().execute(builder); + return; + } + + groupInsert(keyspace, tableName, targetColumns, targetValues, maxCount, 3); + } + + private void groupInsert(String keyspace, String tableName, List columns, List values, int maxCount, int limit){ + int len = CalcUtil.calcClip(columns.size() - limit, maxCount); for(int index = 0; index < len; index ++){ - int startIndex = (index) * maxInsertCount + 2; - List targetColumns = columns.stream().limit(2).collect(Collectors.toList()); - targetColumns.addAll(columns.stream().skip(startIndex).limit(maxInsertCount).collect(Collectors.toList())); - List targetValues = values.stream().limit(2).collect(Collectors.toList()); - targetValues.addAll(values.stream().skip(startIndex).limit(maxInsertCount).collect(Collectors.toList())); + int startIndex = (index) * maxCount + limit; + List targetColumns = columns.stream().limit(limit).collect(Collectors.toList()); + targetColumns.addAll(columns.stream().skip(startIndex).limit(maxCount).collect(Collectors.toList())); + List targetValues = values.stream().limit(limit).collect(Collectors.toList()); + targetValues.addAll(values.stream().skip(startIndex).limit(maxCount).collect(Collectors.toList())); Insert builder = QueryBuilder.insertInto(keyspace, tableName) .values(targetColumns, targetValues); cassandraTemplate.getSession().execute(builder); @@ -65,6 +80,16 @@ public class DataRepository implements IDataRepository { return columns; } + private List prepareRadarColumnNames(Set columnSet){ + List columns = new ArrayList<>(); + columns.add("initial_time"); + columns.add("forecast_time"); + columns.add("station"); + columns.add("create_time"); + columns.addAll(columnSet); + return columns; + } + private List prepareColumnValues(Date initialTime, Date forecastTime, int timeEffect, Collection>> values){ List columns = new ArrayList<>(); columns.add(initialTime); @@ -74,4 +99,14 @@ public class DataRepository implements IDataRepository { columns.addAll(values); return columns; } + + private List prepareColumnValues(Date initialTime, Date forecastTime, String station, Collection values){ + List columns = new ArrayList<>(); + columns.add(initialTime); + columns.add(forecastTime); + columns.add(station); + columns.add(new Date()); + columns.addAll(values); + return columns; + } } diff --git a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/domain/RadarBlock.java b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/domain/RadarBlock.java new file mode 100644 index 0000000..4c99adf --- /dev/null +++ b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/domain/RadarBlock.java @@ -0,0 +1,24 @@ +package com.ping.chuan.ahpmsdp.xxljobexecutor.model.domain; + +import java.util.List; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import com.xiaowuler.radar.core.weather.domain.CutConfiguration; +import com.xiaowuler.radar.core.weather.domain.MomentBlock; +import com.xiaowuler.radar.core.weather.domain.Radial; +import com.xiaowuler.radar.core.weather.domain.RadialHeader; + +/** + * @describe: leida + * @author: xiaowuler + * @createTime: 2022-03-18 16:57 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class RadarBlock { + private CutConfiguration cutConfiguration; + private List radials; +} diff --git a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/service/impl/RadarService.java b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/service/impl/RadarService.java index 16cc05f..6d15831 100644 --- a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/service/impl/RadarService.java +++ b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/service/impl/RadarService.java @@ -1,14 +1,28 @@ package com.ping.chuan.ahpmsdp.xxljobexecutor.service.impl; +import com.ping.chuan.ahpmsdp.xxljobexecutor.dao.IDataRepository; +import com.ping.chuan.ahpmsdp.xxljobexecutor.dao.IDealInfoRepository; +import com.ping.chuan.ahpmsdp.xxljobexecutor.model.constant.StateConstant; +import com.ping.chuan.ahpmsdp.xxljobexecutor.model.constant.TimeConstant; import com.ping.chuan.ahpmsdp.xxljobexecutor.model.dao.DealInfo; import com.ping.chuan.ahpmsdp.xxljobexecutor.model.dao.MetaInfo; import com.ping.chuan.ahpmsdp.xxljobexecutor.model.domain.Coordinate; +import com.ping.chuan.ahpmsdp.xxljobexecutor.model.domain.RadarBlock; import com.ping.chuan.ahpmsdp.xxljobexecutor.service.IRadarService; +import com.ping.chuan.ahpmsdp.xxljobexecutor.util.GZipUtils; + import org.springframework.stereotype.Service; -import java.util.Map; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; +import com.fasterxml.jackson.databind.ObjectMapper; import com.xiaowuler.radar.core.exceptions.RadarReadException; +import com.xiaowuler.radar.core.weather.domain.CommonBlock; +import com.xiaowuler.radar.core.weather.domain.CutConfiguration; +import com.xiaowuler.radar.core.weather.domain.Radial; import com.xiaowuler.radar.core.weather.resolver.RadarReader; /** @@ -16,16 +30,51 @@ import com.xiaowuler.radar.core.weather.resolver.RadarReader; */ @Service public class RadarService implements IRadarService { + + private static final ObjectMapper mapper = new ObjectMapper(); + + private final IDataRepository dataRepository; + private final IDealInfoRepository dealInfoRepository; + public RadarService(IDataRepository dataRepository, IDealInfoRepository dealInfoRepository){ + this.dataRepository = dataRepository; + this.dealInfoRepository = dealInfoRepository; + } + @Override public String read(Map.Entry> entry) { + SimpleDateFormat sdf = new SimpleDateFormat(TimeConstant.YYYYMM_STR); + String keyspace = "data_%s".formatted(sdf.format( entry.getKey().getInitialTime())); + String error = null; try { RadarReader radarReader = new RadarReader(); radarReader.read(entry.getKey().getLocalPath()); + Map columns = toColumns(radarReader.getRadarBlock().getCommonBlock()); + toColumns(columns, radarReader.getRadarBlock().getCommonBlock().getCutConfigurations(), radarReader.getRadarBlock().getRadialBlock().getRadials()); + dataRepository.insert(keyspace, entry.getValue().getKey().toTableName(), entry.getKey().getInitialTime(), entry.getKey().getInitialTime(), radarReader.getRadarBlock().getCommonBlock().getSiteConfiguration().getSiteCode(), columns, 2); + entry.getKey().setState(StateConstant.SUCCESS); + } catch (RadarReadException | IOException e) { + entry.getKey().setState(StateConstant.FAILED); + entry.getKey().setMessage(e.getMessage()); + error = e.getMessage(); + } + dealInfoRepository.insert(keyspace, entry.getKey()); + return Objects.isNull(error) ? "文件解析成功" : "文件解析失败,%s".formatted(error); + } + + private Map toColumns(CommonBlock commonBlock) throws IOException { + return new LinkedHashMap<>(){{ + put("site_configuration", GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getSiteConfiguration()))); + put("task_configuration", GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getTaskConfiguration()))); + put("generic_header", GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getGenericHeader()))); + }}; + } - } catch (RadarReadException e) { - e.printStackTrace(); + private void toColumns(Map columns, List cutConfigurations, List radials) throws IOException { + for(int index = 0, len = cutConfigurations.size(); index < len; index++){ + int num = index + 1; + List targetRadial = radials.stream().filter(r -> r.getRadialHeader().getElevationNumber() == num).collect(Collectors.toList()); + columns.put("col_%s".formatted(index), GZipUtils.compress(mapper.writeValueAsBytes(new RadarBlock(cutConfigurations.get(index), targetRadial)))); } - return null; } } diff --git a/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java b/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java index 113db2a..57e6768 100644 --- a/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java +++ b/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; +import lombok.Data; import lombok.extern.slf4j.Slf4j; import com.xiaowuler.radar.core.custom.impl.CustomRadarInputStream; import com.xiaowuler.radar.core.exceptions.RadarReadException; @@ -17,6 +18,7 @@ import com.xiaowuler.radar.core.weather.domain.*; * @createTime: 2022-03-09 11:09 */ @Slf4j +@Data public class RadarReader implements Serializable { private static final double DEG2RAD = Math.PI / 180; diff --git a/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader$1.class b/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader$1.class index 52ecab3184ed73dd6091a5e904ed1cb26316697c..d8cbdc7abf6329664fe1df075ea699fc36c233e8 100644 GIT binary patch delta 25 gcmX@eb&zYrBNko-20jKw23ZCr1|0_F$?sW$09DBa?*IS* delta 25 gcmX@eb&zYrBNkpc20jLP23ZCL1|0^)$?sW$09A1X=Kufz diff --git a/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader.class b/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader.class index 14fb3f83e540954478426640bea742368146712e..edadb33ea473c5caae215deca1b954a322fb194e 100644 GIT binary patch literal 4152 zcmbVP=~o-q75_aUX@nSrOuz=m#deKTiN$gf#~6#nm?b6^BmtL%(6o%DF^m~z$Y=yM z-IpZYXp$~&;xt{-r2gV_8n-ESO^%a(Y0v3D(JxJp`>CIMPE+^yW(0_>&9N~vcka9I zuD^TV<1hcYbsIn%-c}G0h+WX;wUnt@Q>h`%omLPONN4TY)I~$H7Ye5Cq#P}$IjOAe z=&5WW?{dwUoikIt9z7x#2d%k+JL)>RHXB75!YUL*1i~GLWw>1ewTaBS8Oj;fR604P zAS%$dqpby<{z&tB-Ztk+c&0{lEvGw;4@OZARobZ(SV&~KZpzn)G$BkOj*ihcNmKqzb4d0n6^A&azM;J)?h^#Y>WuA7rSj(aV;52xdumE|($z%TVHFSHQv!QtwHdwFwz8W0l;KX3 z%Db8+eS2U#cx**X1(Ik|(5#{btpf4Q*66tIIJP6uw2i_NeP^c~dqF#A>K+JF0>^i( zoW2@vejR>mDTv|-9+Vh-NT9CNWT}BDSX32{;5hS?wHara|O+m%mEdT;*3D$ zlMDpIi)s4qgd|KKG>(WSGx;CU@7?0ERw3cTvb3R@Ms~OIdvf?8GXFf(> zZUu9)q*BFM5ye@2M!}ehr|>k9w7K#FTGq9lO9JH#*@vFM;nIrqnp!@ePHsi0f@cJ3 zyxbagYE*X&%`_GzIM_3N{f|C0($gm(_*=P(*fGs4a5czrm*dNiy((i^`fy?PobH_U zce5R`nmMLXBefNo_n$W`&D?%;3UuyVpN}z+=qBB&ElJ-RQq%O)oi+%*ww+C^&X?^5 zE)_)18>T+TnJhbf9gM{i3GDV=+Ryc{T)-2i5PzXE&1m|5!}j>okq z=zf$b&1P&Xqq(ehVnF^&POv(WoFT_amKhKOES87iV>5gmA6t{TaXKcq&l}GfI?dFUj~Y{4E;tlOY!T?#w4r07uPfcfZI$_r4c>Nd{Wivw zG5e)OEglP;sJ1+VnFfiT#?pf-?yYQKg`OB09O|dGK~4&ys9>^46&pk%uI(3`O}84T zcllU@QKTbl7OxG_QM=$|^#S6Jknw=!AOA;W2B~^j&$~mq>^VXse%iL(yz6LlL%KU{ z=kiryT#n)=cvZn`aw1(3Xk5pwVa?k!ddj!!A4_Xv_?bX`NwyN}W$P440d>%_bjO>BdS1aVIV!iLWxHq< z{EEi^wJkNZX4Ee3ratNe6fZ4akcV=?d~bhX}tv4~SZX z_ye9GLn|m7Z@z)hP|I-B3d+ZuT5q7@_lULJM9ph>xMdl8ucBr6w>Z#z3ynbQACM@+ z3XY6Z@aX#|gTA051?z+FU#BktdXYeb_wJ#U1bQLgWtimiI4b$v$JGXUwVz)HJo$sX zdn9NfiNiQSEcNi~F@6oB8Bg*)qH)(TdR@t%bI4L#l6SEjbW)52=P|{%q^4mo+5n!w z1t7U{qhOF*kMQ?7IDE=v#hEsF%bILl zx`~GmEzKNWszKWf>6!Mh;ESYG+T4vVk&4lB z3|}S{riMbqt3^M*CMEH8@_6IoQ))=@Ej5IiZlLSB zCosvUucWp_NvNnq$jjH3&F><%*@OCRH-7`)EN(tYUu2%bP0d97_NI6H5^H%5dkrN$ z=5?*8=N-z(cIs_z`ZYqqYt4T|)fI%wt~Gyvs-c#qWt{dtN%Rl1QTk5?TmOuT`rx0i z>nhaN`rtAKJ&E8os`2}zG=7PDs$X-W7tiAb8m}c(UnK4W?3?}g7I|f8qFdi474&dl zi?9;;H)6#7NAeGtZvN-rjX`;-EqdS1x6DFFx-ISdAS|`-Ct)@J6s1*ZU&sq;QO(QT zCjquUp6&>CdZF%%r>7ZcB;I@#O6xK*lb!pv53tGKS`4s^7*e#9*Yz9jy(xOF2B6xWX zrU$+KKzVi5O^p5y2P9quJ8KoHHH_gEeg*IY{E%-sNy_mfQZe#=%&*tI=NtGrdDY~V O^DY1V0&n6i)c+Swo%9y~ delta 1351 zcmY*YTT@$A7+pKbIVU+BPBDZgV1)((O+wPNlv|)s+DergD73bM^+KAaX&@$;q!$s5 z*GFdT?5Dozldsl}f@Q|m8E2gF&7a_-|3Js_vi3nso6OmJ?eBb-^{xG#?SsDs=YRhD z!S?`0@TmcpfW4BvnN5|lVL!GKqwW$*2|D=Yb2T|hrxEEnsO0`6$+ zk^%Ehc&g6_O9eCwv_&&}As6b^V!1G`-1Z5KNTCl|k)tMTJfqzGcYfKh186g_-$D=} zfg$B0KNDw~I`FK40~Ve`r~FlnF8XlLLReAKa-~WwZ=gq@b+6R)?OcAXUaXXT2%y(O z9}baWsZtQ|XDZb~s#dx-xRT0L3Wa=i+)n{w7UJlaw_MXrNgOtivTy`P!maiH3P@q>%nVn`NQ>m=pSTpdkoG_D(0Pj=a zMYz$SG$F+foW)DDWr$rE=R@gm?Ber%OFpmYE z1kR(G$rvo!m`tPXylBksz_--Dg{IlWTzm)iQarhZmT%CS*hc$Z97}wQt}l_8`x=q{ z2Z#d6?~rg~2LnrV9DF$D*>yCOW4q_!J$B+^4^ebG`$?9GQgpSup(qZMhU(IV188b+ zfSS?iG#_UBDlCQ`j3UC2K1y+jK{0j^cX}Em?`Hll;AN(ZQJ9OkM8sbH>r zvbl|sp3T+X%>c$%iC5FQvQ0c~^M>>QrYdPOWCpd(T-pkGc@A0s2UXH`$PRk=M#ii_ zL#fh92EZ6Uj&ZU)&QYJB2$K}x1RI)inqMbRl6c(cGOi#;ipqAC$mO6skrHGX*N8k0 zDiCSRoxyd^md*;JC=z*D=STx9geFZVyOX!@#N;Xc)#R-?K5w&F_3`+Iop`|K4{Xol)O|$M42vf+wUT`Zjm<`v4!|6SV&ezWLMx diff --git a/04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties b/04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties index b66d66c..153707c 100644 --- a/04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties +++ b/04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Fri Mar 18 15:26:32 CST 2022 +#Fri Mar 18 17:07:47 CST 2022 groupId=com.xiaowuler artifactId=radar-core version=1.0.0-SNAPSHOT diff --git a/04.系统编码/03.radar-resolver/radar-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/04.系统编码/03.radar-resolver/radar-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 2fb11b9..5848a97 100644 --- a/04.系统编码/03.radar-resolver/radar-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/04.系统编码/03.radar-resolver/radar-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,19 +1,19 @@ -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\RadarBlock.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\SiteConfiguration.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\Radial.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\custom\ICustomInputStream.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\GenericHeader.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\CommonBlock.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\util\ByteUtils.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\RadialBlock.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\MomentHeader.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\resolver\RadarReader.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\enums\RadarSuffixEnum.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\RadialHeader.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\CutConfiguration.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\custom\impl\CustomRadarInputStream.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\MomentData.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\custom\impl\CustomerDataOutputStream.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\TaskConfiguration.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\exceptions\RadarReadException.java -C:\Project\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\MomentBlock.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\exceptions\RadarReadException.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\custom\ICustomInputStream.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\custom\impl\CustomRadarInputStream.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\MomentBlock.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\util\ByteUtils.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\Radial.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\SiteConfiguration.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\CommonBlock.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\custom\impl\CustomerDataOutputStream.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\CutConfiguration.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\enums\RadarSuffixEnum.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\TaskConfiguration.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\RadarBlock.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\RadialBlock.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\RadialHeader.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\GenericHeader.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\resolver\RadarReader.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\MomentHeader.java +E:\Projects\2021\AnhuiPublicMeteorologicalServiceDataPlatform\04.系统编码\03.radar-resolver\radar-core\src\main\java\com\xiaowuler\radar\core\weather\domain\MomentData.java diff --git a/04.系统编码/03.radar-resolver/radar-core/target/radar-core-1.0.0-SNAPSHOT.jar b/04.系统编码/03.radar-resolver/radar-core/target/radar-core-1.0.0-SNAPSHOT.jar index 519b6e5f1623b90025d6d52fee9d17715a29f79d..876ec62a38115b03bf825179cb9f824a21c8c636 100644 GIT binary patch delta 4321 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 delta 3739 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 S>liSv3~f)|!4(mP