From 2d9112ad08f4b656d69141176e322eedb1d1c987 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 1 Nov 2022 16:26:13 +0800 Subject: [PATCH] Merge branch 'dev_tripreport' of E:\work\workSpace\epmet-cloud with conflicts. --- .../com/epmet/dto/IcTripReportRecordDTO.java | 53 ++++++++++++++++-- .../IcTripReportRecordController.java | 37 ++++++++++++ .../entity/IcTripReportRecordEntity.java | 2 +- .../excel/data/IcTripReportExcelData.java | 4 +- .../impl/IcTripReportRecordServiceImpl.java | 27 +++++++++ .../excel/trip_report_import_template.xlsx | Bin 9824 -> 9855 bytes 6 files changed, 116 insertions(+), 7 deletions(-) diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java index 21b26ce7be..b3d8819d76 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/IcTripReportRecordDTO.java @@ -85,7 +85,7 @@ public class IcTripReportRecordDTO implements Serializable { * 身份证号 */ @ColumnWidth(22) - @ExcelProperty("身份证号") + @ExcelProperty("证件号") private String idCard; /** @@ -128,7 +128,7 @@ public class IcTripReportRecordDTO implements Serializable { * 详细地址 */ @ColumnWidth(35) - @ExcelProperty("详细地址") + @ExcelProperty("现居地详细地址") private String detailAddress; /** @@ -238,22 +238,42 @@ public class IcTripReportRecordDTO implements Serializable { * 交通方式,来源字典表(traffic_type) */ private String trafficType; + /** + * 交通方式-中国字 + */ + @ColumnWidth(50) + @ExcelProperty("返回方式") + private String trafficTypeName; /** * 其他返回方式,交通方式为其他时此列需要有值 */ + @ColumnWidth(50) + @ExcelProperty("其他返回方式") private String trafficTypeExplain; /** * 来源地详细信息 source_address字段的说明 */ private String sourceDetailAddress; /** - * 疫苗接种针次 (0针 1针 2针 3针)【小寨子】 + * 疫苗接种针次 (0 1 2 3)【小寨子】 */ private String vaccineNum; + /** + * 疫苗接种针次 -中国字(0针 1针 2针 3针) + */ + @ColumnWidth(50) + @ExcelProperty("疫苗接种针次") + private String vaccineNumName; /** * 是否有48小时核算记录 0:否 1:是 【小寨子】 */ private String isNatRecord; + /** + * 是否有48小时核算记录 0:否 1:是 【小寨子】-中国字 + */ + @ColumnWidth(50) + @ExcelProperty("48小时核酸检测") + private String isNatRecordName; /** * 户籍地 【磐石】 */ @@ -267,28 +287,49 @@ public class IcTripReportRecordDTO implements Serializable { */ private String describe; /** - * 48小时核算检查结果(阴性 阳性)【磐石】 + * 48小时核算检查结果(0:阴性 1:阳性)【磐石】 */ private String natOutcome; + /** + * 48小时核算检查结果(阴性 阳性)【磐石】-中国字 + */ + private String natOutcomeName; /** * 7天内旅居史情况,字典表(sojourn_history)【磐石】 */ private String sojournHistory; + /** + * 7天内旅居史情况,字典表(sojourn_history)【磐石】-中国字 + */ + private String sojournHistoryName; /** * 隔离状态,字典表(isolate_type)【磐石】 */ private String isolateType; + /** + * 隔离状态,字典表(isolate_type)【磐石】-中国字 + */ + private String isolateTypeName; /** * 是否落实"落地检" 0:否 1:是【磐石】 */ private String isArriveCheck; + /** + * 是否落实"落地检" 0:否 1:是【磐石】-中国字 + */ + private String isArriveCheckName; /** * 是否达到曹县 0:否 1:是【磐石】 */ private String isArrive; + /** + * 是否达到曹县 0:否 1:是【磐石】-中国字 + */ + private String isArriveName; /** * 上报时间【磐石】 */ + @JsonFormat(pattern = "yyyy-MM-dd") private Date reportingTime; /** * 管控措施【磐石】 @@ -298,4 +339,8 @@ public class IcTripReportRecordDTO implements Serializable { * 行程记录类型,字典表(trip_data_type)【磐石】 */ private String tripDataType; + /** + * 行程记录类型,字典表(trip_data_type)【磐石】-中国字 + */ + private String tripDataTypeName; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java index 316610e690..185189cfb7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java @@ -368,6 +368,43 @@ public class IcTripReportRecordController implements ResultDataResolver { return new Result(); } + /** + * pc:磐石-行程上报-导出 + */ + @NoRepeatSubmit + @PostMapping("psexport") + public void psEexport(@LoginUser TokenDto tokenDto, @RequestBody PageTripReportFormDTO formDTO, HttpServletResponse response) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); + // formDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); + // formDTO.setUserId("35005df15fb0f7c791344f0b424870b7"); + formDTO.setIsPage(false); + ExcelWriter excelWriter = null; + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + int pageNo = formDTO.getPageNo(); + try { + // 这里 需要指定写用哪个class去写 + String today= DateUtils.format(new Date(),DateUtils.DATE_PATTERN_MMDD); + String fileName = "行程上报信息".concat(today); + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcTripReportRecordDTO.class).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + do { + data = icTripReportRecordService.page(formDTO); + formDTO.setPageNo(++pageNo); + excelWriter.write(data.getList(), writeSheet); + } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size() == formDTO.getPageSize()); + + } catch (Exception e) { + log.error("export exception", e); + } finally { + // 千万别忘记finish 会帮忙关闭流 + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + /** * @Description 【重点行程名单】列表 * @param tokenDto diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java index 5feb599051..35bde836c4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/entity/IcTripReportRecordEntity.java @@ -148,7 +148,7 @@ public class IcTripReportRecordEntity extends BaseEpmetEntity { */ private String describe; /** - * 48小时核算检查结果(阴性 阳性)【磐石】 + * 48小时核算检查结果(0:阴性 1:阳性)【磐石】 */ private String natOutcome; /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcTripReportExcelData.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcTripReportExcelData.java index af4c6aae75..89afb8d7f1 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcTripReportExcelData.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/data/IcTripReportExcelData.java @@ -19,8 +19,8 @@ public class IcTripReportExcelData { @ExcelProperty("姓名") private String name; - @NotBlank(message = "身份证号为必填项") - @ExcelProperty("身份证号") + @NotBlank(message = "证件号为必填项") + @ExcelProperty("证件号") private String idCard; @NotBlank(message = "手机号为必填项") diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java index 9b21c1c212..67f2e06383 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcTripReportRecordServiceImpl.java @@ -75,6 +75,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -117,6 +118,22 @@ public class IcTripReportRecordServiceImpl extends BaseServiceImpl data = PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()) .doSelectPageInfo(() -> baseDao.pageList(formDTO)); List list = data.getList(); + if(CollectionUtils.isEmpty(list)){ + return new PageData(list, data.getTotal()); + } + //获取需要的字典表数据 + //交通方式 + Result> trafficTypeMap = adminOpenFeignClient.dictMap(DictTypeEnum.TRAFFIC_TYPE.getCode()); + Map tMap = trafficTypeMap.getData().entrySet().stream().collect(Collectors.toMap(entry -> entry.getValue(), entry -> entry.getKey())); + //7天内旅居史情况 + Result> sojournHistoryMap = adminOpenFeignClient.dictMap(DictTypeEnum.SOJOURN_HISTORY.getCode()); + Map sMap = sojournHistoryMap.getData().entrySet().stream().collect(Collectors.toMap(entry -> entry.getValue(), entry -> entry.getKey())); + //隔离状态 + Result> isolateTypeMap = adminOpenFeignClient.dictMap(DictTypeEnum.ISOLATE_TYPE.getCode()); + Map iMap = isolateTypeMap.getData().entrySet().stream().collect(Collectors.toMap(entry -> entry.getValue(), entry -> entry.getKey())); + //行程记录类型 + Result> tripDataTypeMap = adminOpenFeignClient.dictMap(DictTypeEnum.TRIP_DATA_TYPE.getCode()); + Map tdMap = tripDataTypeMap.getData().entrySet().stream().collect(Collectors.toMap(entry -> entry.getValue(), entry -> entry.getKey())); //3.查询最近一次通知时间、核算检测关注名单 if (CollectionUtils.isNotEmpty(list)) { Map latestNotice = new HashMap<>(); @@ -141,6 +158,16 @@ public class IcTripReportRecordServiceImpl extends BaseServiceImpltgse-WE(WpDXptTpwjIV-#8S7uMk6jt&=QG zXGtxTfq`M+{=;F*Qb~NWvaQjCfyAK}f#my2H6HS1sWfhfjhJYfH&K)BqXwph56^`P zSa6t7X*)avQ(&%b9$KYicbd*1$^VwzI4a_{TZNrJtft9{C<-{ z%Z+0(^bfP?Jfqd5HL`V%JbR>0lp4qW-Z1|G009600{~D<0|XQR1^@^E001EX2C?yC zLIMB)GXwwt6aWAKcx*3oXkl_?WK(oMn8E_iKhoK#&;8bK6&Z_@vNu$lLDKSYWR z;Dbq%zV)H~0R&bdfmzBfO??9s6b00%VcW782!f=w1^R(2Y|Ee7JG=YDU+ADTF)M8o zlX;nY&zv*&&bbp@dz(r!Z={TpkZ}kJOFUvE9F=1Uyct5TUOr<3h*8uCjzy9(mO^Mt zQqWrX@uQ%ks0=-el@N-5t7`fw$0^acl!_=za$3SPvms|v5tVK;o1Bu)NRgNlmn1cn zY>sfuo8yO7==bAHm_3H(?+2VNd|QKQ)V_VS;&oI5j`mdY%Pin}za- zb()%+KVj|jUvxJ$_x?)Y^g8x ze}HQP4t@AH0JBUC9ts71n;j)WlW!I| z0&0?zsunkYoA*7>X+OSkZ0Q<%zD3-QjLNDkVb>%x%UyKjrx(NbnzH0m!<`v6adAh! z#lHNw`{o<%4e_r0CB{?&39jFfmz1trisG9~>==HTtgs7j=EQRh3Xk4G@mC%;W&x99 zE1Ig-700k#nM-JS50OFUbIZg7Vy+$RQZB^9wn0IEe}8GMe7W16S@4b-Bzbt=kq=R8 zT9cJ-JJ|V|g*SfcUZTe3IkvG$@eCXwOCJ;BoSTLX#x`rI$0@VK=0s-vB_UT#m=0_z z?CJ+X*sg|2t!v!JHlTYN`0t}Y54Z&-lvs=OeWcMaaMuT(G{bXaZPPxnKeT3a*^v** zNCS0$Li!omoM3CQq@Z%O3@<>kNo)`USIMzhEM>_tZi01_5n--!v= z8uDmbxdGd5;i-f?u!cOSUast5s)kIkMoi6ea|aXX5oiZ%qTMd0ddLK8v{RkCa*Iuk zkO|gkC$!5CP$+?RutpnIcbaq%GQk=#X=Si~&!@L60l__6v_w#>Jj8I5um>J_n1DD( zl7J($Gk7QpIlGDcqp~dAs%;c=lmuNV@o zH_^VldKdxffPoJg8lJ&Cs1(*4uDfbmxrWj+Lr5=%uo7ZSeStC%C`STiC{T_C%85XK z(FMw>Kp6>?u|Sy!lxdoxfb(Jxf-~|S1QO4)#Dfy+Ej3g=h@%=eoY=ce5`a?9MLFk+ z2u;gE`UQ|IVjvZK$+)%GX_Y78B-0;i>Uk5~S5+ru#5<%w>*1{7^E)`B= zOw^i2;@(<5ISL^8P;glY+^|_57u#0?Kcdx9yVe=O|T|RY=ya_G1r0u!pRH{iO29WT=K5^>glX+&&ZL7gSDr;Yi{7%Wy6riPd28F~9!>{) z{U=YS7y5AT?X#odTP0oFfA;~DcNX-2eN>u0x!BXsd*j3DXb%|o_uEP&84kEWDR$D4 z0uw;#B64IIWbkgYpn)W2F+W6`r_FkVT935SNhNPqAw@I`V6V|Ez0!iB+HDz}orz_P zq0lmoS*8n?6;edY0QMR!n>@rUXf}yitXvAs3Ia9}%qpaaW&!NqnKgsy?wMhKTd+dS z#MR8~$-WBf%eH(fONMQeP0u#mD^~cDza$&oU9IT^O3zq8A&0~x&m&%j$UnwLNE%gI zBcxWFwMIR01?tN8U;R?L`{KDA7ZZXa%Bu38sy0T_xY8OIsixll{A~%bi^eV$xcqNw zLM`bJfQe*I2z}K{ zcId_bZ*>0w009600{~D<0|XQR1^@^E001EX_6vl3PXPb`X955K5da9Y@*5lhe_u<( zFcih#1;0bddz+*cmC|Rutbta<>JWG$ff@{q&~oRy!1YOwPH#oO4OB*sCV` z1nXq0OGFcbBG9}QQm;$&QZM6c6gkhdU`?x`L>)M^sLsy{ZgSpQc(Sbl>m|4-khIIW zDbdDzlVj}o1{8BiaOfbeTC123e@DBZJbKwhCl{XSe+Z8|M6DSoTVSxb3PNp`@11Q`>&5z`qTF zI+PgEAfgZ}A4?pS*X-`TUZN@`X&RF(&PYvZo{^l8_x}Bp`99`&p$;kjBT^a@T9d2% zB0$p_@d&7f+^1io`UU_1|NjF3P)h>@lhGv@vv?lk1q7tS(>0S{BsmENvGHO;0ssIr zlc6M20dte}Bsu|KlQ1PF8-AM|B|-%N03;Cr02lxO00000000000001elW`?01@;Ss id{2|1B^3enleZ;40eh47B|QN_lQbqK2B;$d0000WPw&J4 delta 2712 zcmV;J3TO5IOyEqgod^UTdt={|p$Hy-Z^AGPy-(VIh6pwev<-#QefuMtCkqmwL6 zr%5A}fq`M>{=;FbN=baSa^Ii{1BpW|0?GHaYCRP5N@-jV8!^$g@1h~y2MtUMA6`lo zu;h?aX*)av6JT!NKJJx{-AOuyr1)EM<*10;t`&CvjK`84Hp-N?<3QdWFY>O3H>wOZ zhb+CjrT&1uq1x7g!$Y2>aZGZ5LEZa9Bl^fpFa9HXHl{Mn8E_iKhoKwqg+CUWDSL#21AnzSNLMW+> zv#8WBXg|OrZa@N?VpFv{h~$I>2vJhuwwMS+AgD;owpaW@ha{@f32LQC zvzdF&oHO^%8DZ^hHWPUx=e4w|Bq(l)r6RJDRM*qWMuK|z;yE3sBAPBK>rzHlk#q30g&xgj&5|`|})|Ydp;8uEu}7 zpgcm>8MZ^_d1(H)>&UY_PqQ3e3wjBr@1c2w8kcwsWD8)NdrsqDjA$H2b?k`Rc4*kB zTSPxAq>A4-4Jsyo+UxlzweX;f&N}xPeFxm)gRT$9+vxiMce}!}@Wu3;9&8y4+61@l z+4mlD`3cL%qulChl;t>{Tj68m)nGjKY-=8luyp|6n%5DrH=%0IgA#tQP-7Ha3~v(y zH50y;ZgN8^aj`hgBA%7!bfI|_el*~63f6?=UB4E`(Hut3I%<|4a7r}kQO-tN|Tez7B_$Ay!Ylg?Z-EcEnQ>Jw}{)3QCXEG?3!d| zxr>hc^kVp4QNh0#F$DT!Sy@xlG0U6QG9cW9m6k^ z6?WmxoOq5w;n7sC~EMRhMMN`$f;uw}Ia|tc)Au`B(Zkc#M%(a7E%7u8?HYk7C z?=P*DFL&EB3*Iq@BoEI!au2npHCgGl1I^DYyzx`_5;ZQ*v5ifNXAl5c`j`;s+%#-( zwpmL(PMIe*Co<uK=&#TzmK>b6=sAITamtxEE)#k z`oNQBcy6q1+9&ph){HJY@tHY%P`)OsO7QNd}@SDutu8Dt~fxU1lGYCDXQ*t=^$i+HDc1r;Gcg_Z&?CD zc(z!Hpji19!%e~-MC4%t;v7jf9HE_?hoUWKH&J|4mW5lbjrJTRo35#^Ql{{14vJ-9 zP@~)S$VP$|0Vew^gEbt~Vv^WRq?cC@BS0N6aF3zk8Qg|PzD0!NT3V_%CSH>5h#DUKsgmCBY`p&C=-D)O;Z#IUK~LPMm~Z-;(3-tP-4BM zhRO%=uEq@~jxLh~pj2>CF1R8>%Od(BqLM`nL_{@RH6Gh-hRHCnBPm zMd%y>wHzngK^Ac;B2X?LN1_^(i|V)lk_+pk0FsOAv;dL>Hj^<>=J|h&0a9VcRD<&( zDnG{9k)id*0YSN)IV^zWwx-V^ji7o_t%1T{Hnf8XmC}{l!J`65ZVQJ6kerm`0!U8E z35UQ*kocX;1f4@z3y(2cE)`B=Ow^i2qHZmp90ibka&X8t^QMs$HnF6e2kW@0_8V@r z9yVe=O|T|!q7uJ=5oxuAQI=XJj9GKyQZ~SWwe)rc zC$3BS#0}?RJ{q|*iw&2C&3hw-$vB$mbgcyy4KbLXt!*4iz&9}F`fU7!Y3*jtq(d-Q zo<%&1-ZE9)_8i8%wQY2J)4^W<$}dE_N!Rw@eE{X11$}=Xm8MTF_Vn|^ zac?@>1IGRRwh~E(11>O%ophwY1u(jZ9C-#AyxT2kAc;i7ekt93@m!9J2|*EMP5Dnv8zX64 zX^o3aQ}2KNwuIP4W0wkC{x>tBmh>VUUw-$^{nx*h?mqwi#UFpqOMidz6I)(<_T$SR z{w&>n`s-i6f4SY{T&P*Uh7Fw<-ok?Hu<;yPy&8OsdHe&IKTxs?HvN)N___^lm+)@` zhO7u$0RR6308mQ<1QY-U00;m803iSigxtVW?i6{Y8hXn$a!uguNwme>cF8z zd486QmWjr~lWkhCUV)1O$v7t30&To+8OBa*Ky#M_hY8}Uv6}mTaI|aOa`C~}fKx&) zu?Ej2_Z;`YxSfdTfRtiFwp&{d04Xrkpuu>DX+rUj*MrsW&w)XiIkoa#8#*20&e>9o z;^f{tH5qriU9!uD7$HB!Z;ubpL)BQBepdoenM=Wh1@0SLcFKHh8x1PQv)g`yHFy3o zEPJIu-gf1U)XFGS=WRch@lkg=NvzH#@ z1q2>@W8ag0BsmEU2CIr80ssIClfWcX4N?pM0C;RKb98xZWpk5ZB@~l1B^m)flTRfk z8-2wM#6txD03;Cr02lxO000000000000017laM7V1q+1S&QO!UB^3eHlh!3Z0bG+6 SCOrWnlT#)p28km80001G@9B#G