From b3b9bee28211617e767418466ea244671747d582 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 3 Nov 2021 20:15:52 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A4=84=E7=90=86=E9=83=A8=E5=88=86remote?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcResiUserController.java | 12 +--- .../service/impl/IcResiUserServiceImpl.java | 62 ++++++++++++------ .../main/resources/excel/ic_resi_info_cid.xls | Bin 80384 -> 80384 bytes 3 files changed, 46 insertions(+), 28 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index ed92350d41..4ed686ba22 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -329,14 +329,13 @@ public class IcResiUserController { @RequestMapping(value = "/exportExcel") public void exportExcel(/*@LoginUser TokenDto tokenDto,*/ @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws IOException { - pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc"); pageFormDTO.setPageFlag(false); CustomerFormResultDTO resiFormItems = getResiFormItems(pageFormDTO.getCustomerId()); Map itemMap = new HashMap<>(); for (FormItem formItem : resiFormItems.getItemList()) { - if (StringUtils.isNotBlank(formItem.getColumnName())){ + if (StringUtils.isBlank(formItem.getColumnName())){ continue; } if (formItem.getItemType().equals("checkbox") || formItem.getItemType().equals("select")){ @@ -344,7 +343,7 @@ public class IcResiUserController { } if (formItem.getChildGroup() != null) { for (FormItem2 item2 : formItem.getChildGroup().getItemList()) { - if (StringUtils.isNotBlank(item2.getColumnName())){ + if (StringUtils.isBlank(item2.getColumnName())){ continue; } if (item2.getItemType().equals("checkbox") || item2.getItemType().equals("select")){ @@ -357,7 +356,7 @@ public class IcResiUserController { for (FormGroupDTO groupItem : resiFormItems.getGroupList()) { if (groupItem.getItemList() != null) { for (FormItem2 item : groupItem.getItemList()) { - if (StringUtils.isNotBlank(item.getColumnName())){ + if (StringUtils.isBlank(item.getColumnName())){ continue; } if (item.getItemType().equals("checkbox") || item.getItemType().equals("select")){ @@ -383,10 +382,6 @@ public class IcResiUserController { if (item.getChildGroup() != null) { if (!item.getChildGroup().getTableName().equals(BASE_TABLE_NAME)) { - //itemMap = item.getChildGroup().getItemList().stream().filter(o -> o.getItemType().equals("checkbox")).collect(Collectors.toMap(o -> o.getColumnName().concat(o.getColumnNum() == 0 ? "" : o.getColumnNum().toString()), o -> ConvertUtils.sourceToTarget(o,FormItem.class))); - - - Map> resiChildMap = icResiUserService.getDataForExport(itemMap, pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), item.getChildGroup().getTableName(), pageFormDTO.getConditions()); resiChildMap.forEach((key,value)->{ value.putAll(resiMainList.get(key)); @@ -394,7 +389,6 @@ public class IcResiUserController { Map mapData2 = new HashMap<>(); mapData2.put("list", resiChildMap.values()); - System.out.println("========="+item.getChildGroup().getTableName()+" data:"+resiChildMap.size()); sheetMap.put(n.incrementAndGet(),mapData2); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index d2c5b2dbed..9b39543c43 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -92,10 +92,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -534,11 +534,11 @@ public class IcResiUserServiceImpl extends BaseServiceImpl headerColumnWrapper, List> dataRows, + private void persist(Map headerColumnWrapper, List> dataRows, String currUserAgencyId, Map checkBoxOptionColumnIdxAndLabel, String tableName, String currUserAgencyPids, String currentUserId) { for (Map row : dataRows) { - + // 当前行的列们 // List columnsOfCurrRow = new ArrayList<>(); @@ -594,7 +594,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> result = new LinkedHashMap<>(); mapList.stream().filter(Objects::nonNull).forEach(map -> { String resiId = (String) map.getOrDefault(UserConstant.IC_RESI_USER, ""); - formItemMap.forEach((k, v)->{ + for (Map.Entry e : formItemMap.entrySet()) { + String k = e.getKey(); + FormItem v = e.getValue(); Object temp = map.get(k); if (temp != null) { if (v.getOptionSourceType().equals("remote")) { - //todo 获取 options - } - if (v.getItemType().equals("checkbox")) { - v.getOptions().forEach(optionDTO -> { - map.put(optionDTO.getValue(), temp.toString().contains(optionDTO.getValue()) ? "是" : "否"); - }); - } else if (v.getItemType().equals("select")) { - v.getOptions().forEach(optionDTO -> { - map.put(optionDTO.getValue(), temp.toString().equals(optionDTO.getValue()) ? optionDTO.getLabel() : ""); - }); + try { + //todo 获取 options + Map stringMap = listRemoteOptions(new HashMap<>(), v.getOptionSourceValue(), null); + System.out.println("======remote:"+v.getLabel()+" "+JSON.toJSONString(stringMap)); + if ("checkbox".equals(v.getItemType())) { + stringMap.forEach((label, value) -> map.put(value, temp.toString().contains(value) ? "是" : "否")); + } else if ("select".equals(v.getItemType())) { + + stringMap.forEach((label,value)->{ + if (temp.toString().equals(value)){ + map.put(k, label); + } + }); + } + } catch (Exception ex) { + log.warn("listRemoteOptions url:{}",v.getOptionSourceValue()); + } + } else { + if ("checkbox".equals(v.getItemType())) { + v.getOptions().forEach(optionDTO -> { + map.put(optionDTO.getValue(), temp.toString().contains(optionDTO.getValue()) ? "是" : "否"); + }); + } else if ("select".equals(v.getItemType())) { + v.getOptions().forEach(optionDTO -> { + if (optionDTO.getLabel().equals(temp.toString())){ + map.put(k, optionDTO.getLabel()); + } + }); + } } } - }); + } if ("ic_resi_user".equals(baseTableName)) { resiId = (String) map.get("ID"); } @@ -1085,6 +1108,7 @@ public class IcResiUserServiceImpl extends BaseServiceImplFA5l8}Tq353f{0^yaA1mr32mr7AOptV*nmRfP9 zD6-XP5v`-`%+SGMydnV4`fh<-77OmZZRh<RQouQ2!q6;SE`eW|S*_%nexlI!&B1O2Y%gf{UPH*s6>L>ljQkKz?n{I80?#SDjqdN5)<<)Ajekxe4 zy6x{C*62HeDf-!9rT$)UPPDe-We~mlOP_K2~f6uH9Cp(re zIn#Odx}|G3cWv8u3zgE&d$~MaHLNJ@7+6|&+?3LR>(?IYI@yufHu8dgsIkm?@Kyax zW2tr3dHo75k!=0D#xY9iU{givn!pbf(Z{;IX;i93YH3ePS9E*R2$kw1wX5sl{SV(c z!{UN#yMET8A86h_Zz*-qJX%6)@!d-4s72$cojPd|wK>WmMmdjqpa`Q@JI$w=_%u)r zRZ-oRDhg6fw0+hp70EGmzd%>e4%%sdZ>5d29@3Tg%QD5+(Pk9yf?^BprcEfmnw*wg zYco{4aovD|9kkW1lxhZ}+D6)jYTF@YxP{GE&~=V(3mWGdJy%|jKKXkGDr|=I zCH(EC6jOn3bQcQs(a@&hj;;j{xe$*Vhbw6T>GIjbF08-cjkf&8=BmVo3(;2xhW-B=&Z{DB8H^ut4y~YNxR(|7{j8+r z7wN-vp~JI7l>yU_@ox(r+4y#rSPEr#u+NEl(d5RvIb%Y2x5IX-LALmO($ zM(1sa)BN~HYQ-b9dp{JGTKhT7v#&tcb6|hZ=eMgy@c5?ga@6d`oqN|!FzEtB!X;Ge zf$uL?ErKWQ8T1YlM(u&&FV-D;<1qKG=Da*?J*g0~-*zV=+}CSSe2s((nZ~-VZ@OuL zz7XE5i)S_Kt6C}(1CK*r#)U;fEOH-~BnJeMW z<*?Yn))(`g=rnQ1F%c$xrZwzVWj%kQp|+8}w2vuuIw4f`u-C?C99>Oxd>zroO}hNP z4*kKrMU3K{tb8curuZ8uqcXZSKUO{r(|>$S*-0!^TUaSbL?D4~2d-siV+V;zR!iFk{((4mC-_w%Bj-h~y^ zM`UrPM!IZagIXNzSXiziY>)$rwWm~=(kwsa(Li0mLznNNEAY?_@z52zI;6NVaFMHw z(-nK@N<4I>9=f3(y0U({27cmU{gkX5?x8DZoxZ>0bnPbyJA&nS&V_v~&ZBZcM(>Bj zsd67;hbT|~q;p7JsZ%x-Wt?f5Hf7Rg7^FPA%@}+SN1KXB8)C)uSclSpUCJqSJ%~RO zoYIMqIfFEPP6C-$lOb`!+h^b96p;B$cgh>Vyc6gnPRN_2+^J_#Sl_gGf2Qe-Q=gzt z>#9f|fq)|1;4lOamnn4LO%>?EP%bDa3sSOaD}%29!+`nh$3prBAAXqHeDC?qt4mSP@rho6Zu zY^9u=X$G|j%>uOwg+OgC4M!K$Mk5MEBSbSVkcBjf`u5lRLv6-ohJCX@*W}!mR z7NH{0R-t0hHlY&G6+)$;D|tOK1|AB$N~jF9U1%8S3qr#|JA}$XR|^F}*9cXBb_$IE zeNkv6=uZgao8d86yogbpb+m9 zwGeL-?ht6QjSQuBKbw)w9*XB$)u4ug)|Z; zjx0q|kde4b&Js;Ar-nx2gwRNw1{#TzKO=FBn~(uahMs2gUd)9Qbwv2 ziKEBpIA)B*kzyo{4NjsPRE-;KoHHWK^TNbFf7u|JK(PBap`&PePq zBe9!|#Lh7iT+;4{(?!YVH^pppBeAKC#0EAJo7G5c%pU#m<((eRoQ<;n?^oDE*W#gT z_0Y9>=;pXO*O@${%ypGVPgLg?zId@!-ucw=zy;s^p1UfmwtmA zGi~|Ge?Gc!Ato=f*@t$l<91xmSLSy!&;cvZkv@Gs6yOci=v3GMn}F+(n7^|Zr>95s zqWO#U=_i7E_m*>NTlD!8V^y?w+jbT4p*p9Fe9AZ5HoBo?P>PhLfY7H?GZh4DIFttB zUpq~^bP)GuCs$P=&yx% zSA0~6cg2r_?%t`2qea^bhp6P<168Vk-2-dzhc4)S_qOV9-aIekFg84IW4H29Z(J!Q84=b}M+2illZ`E32j-X?2_ik{g!Mn!-0$>$zmf1_VLISa>4@h2kuaIq5+c75zb zglC-C8HmDTCAvO#2Ewk7oq-H=ee4KCMd16`8Ho7aiKqUq@8JKw;*@2h-Ekp45qUz0 zU4KG|*X1WceK@GJaP4$HVO+C2QPov+=;nPRj~`a`R_2R%!M9uQ(R=v4`BdNErl#}q zz8cS*rr*C|Wc0S@a;ySg!&nu@rl*;9VY;Zd^s{|asxzqB3fQ+}ALQ-z(#?T zfjHWqF%qxkI|$AjAB&dX_oOdj;#u%VpLqT*e&U%+C-DGg8sdrPdqO<%JSD^v&(lIY z@$?A=kfc2$#1qdcp#spe4!NNy6VGRf#f1se(C-zCZYa7Fk24Pq5{n`Fd%16p#qSI8 zH1q?ZT+lxV@ig?D5Klw@D8$py^Pmzl?dGHK1t}~5{ZsVa2Yd3BWu~J5%FJ{W2=pGS zQpI{tG(|tQDX6~_9h1u?X3isZ2_*&>i=lMCWX`vqpaq#_Eh=cF65C`8+gm~5aXCV&0mmG4# z&7Dw8v`O$?Z0h?L>4p!3<5#^)oci2wbK>iwtKLs#KwkC!RfxmwXF?oqKNsR~`!^vD zw|^H3fL<2jXnO^8e5YD%MUVGQ%ji8^rBZvdveh_U`NAg|n_9LT z`R#n4lV*O?kv{hxtx`kv;#WV)xZ*#FK6sz#j&qJTZb~)3IESLE59M+K+o5#bnc)fU zX-im3+7go3wuB_MEg^|*L#VooKstU)iBDqN5|Y@qgd}z@y`f(`GdeSf)_wT(7jN9b zH-|*#VDpygM12+xX3sdC^Mut-Zwlprej$_#dP~R;dRr(DKO_B8C;<8op?uI>5U zKT*v!)4K&#?3WP<9Y2OzAhlyC;!yAxT-osmvFu4(8!J@I3-%7}Ptb~-;f<;Y$ z*vIi!!rO1TIj=K(eBNWhq+x=)oibi){!57Sp8po&yodKbyntBP%7y7&A^s)kf0!!m zLSAg%lS0mU*9q}j^Q-9Nzt~um(Pk;ypQ@-jD_ZfkV!^DtXN7p(< z>*5#cLn-7J>b#I2zioVU_YPHbVr+q0RdCNZRhZgmt(bBqu&~j)^Aprf>g5yHPgJ+2 F{2%rR{Yn4; delta 13295 zcmc(ldwf*Ywa3>vGbfKpGMT(HlP3g10trcY6Cjxk$U`9~A>pkOU*Ll(XzQ&nCbd=3 zB3L$;sL+bFtykM3b}G5o2hw{Lm1;$8ZM|xx_3>%{Q0b>?wN|;mb@n-XGRfxNtNpYx zA2RFvTWjxgX1~r}d#3+AfB$>_{co5i?GkU9`^7$Ap*Z3%7rT6=;;^q+6k5e1W|fNr z{z4J(PZ7)grQ&-0{{a3^{l#LBKO!btg<`c;Dt?c07sIy?zBYeh;!>;5if0nh`zJy~ zKP8G*N2|$STz!lRDQ$!varBY#lO4Uti{F`-H;^@uMgFFf)RR)b2xrwBnPP5Mljcrj z4I{5udXhVtdJ?_iB)Y7>P~Lf*NZoqoNeVPOdf5A@s>voe`p71$a`gNW@#8h|S={zz zj-x6CA+oMt7lJMUU612hJn1^$a-WO zjO^TLnzl&}%WPS{I4f8mPxr3neqf?QCn+oYAtyDy*oz-|4>SMQdNO1^iOk%y3~_C! zvK+IgFE7uTJ!!HB5kUsAE_!pT#g9VYOIt~Q+`s#k#PYmNL93J9VsBNWm|9h9bc^ch z7BRNE*6MZi=E`y6uIl-sqAK55kvLlY=TdXi0`d6F>hk(?xZ-qUb@$5N-`SV+En9nD z_xW3{qjGvEE{xVn^X*+?RBO3;S3}lZ?Ao&Ng!_GA{3avGXtAOkeef z4PtHEhTuZ7X$hS|YiSY9Bk}0`w#4Z6B}Tv?qiG%f)b@&oj&p;kprLp7QoL>LynD0Q z*HLM~nYmuuTq>b|7`KW{6=x=f?CVRmlBUHn3V}@L-%V}w4W`43!g5^Bx70661(N}Nau#_ zEvq7(4|cBX6>l$$nK>k`I8c^oTU6uEI7X+0RZlL-enxmXEK*?U432IZmR#3a5S+pFhmv_P0@O3Df1BxkX1I<;` z4w~mtC93Gb;Pk5L0P*Dy;(2XQ3`4YJ>SAYJ7_<~Vo*@R_dk|3wtJkrU19CO=F?j4a zgS&urIR#A2+C?-U`k5;?tvN^=5yQjvv%Hp_BznbAo$oll*y#lyK1U2se)-w(*adYd zGC|#nd>~%dc_jO=xW`bZM;3^8J<^v3TBax+v|LdJ2oLAD8=47Rshk1ODn(hK)rzvI zlkh}$%jLj#x}qTH3`M!1GZlqEYZc{z`ap4cr}-{QDoCNi6e>!gV$fNt(vlQkDd=qF z3xm#46ak&f#EXg#kMbCur<~=Wb&4uL>lIak&R0|gxs5R-@6zXtc2!t(LOmBQ88n6IiFw>NVPUjW$7}H7E_k(%V%x zDlw@|)M!l_ty!bBXtYVgwK$r8@^BH_6pc1jqfOIj(>2-*jW!cne0aaNY653zwAmVM zjz(+KXzfWY?leD7Egpn&yz(Xf58f|H+7I&JzCslN` zUX8X)qb=8HD>T|ljkbz3X9lY^fon9{>BBUhnmmr=VB^svEgmz{;*laP9v_Ys$L8M? z=PQdxfDGh*mlpT7w78F@#XT!6?oVlPCrXREPFmby(&BEC7I#iBInQeD6De{>NQ;|a zTHNT;;-;1sH?Xw0S*5i~S=@qB<93r4w-!&nHd=?t*NnZ7^Ab;<-4bsz^XUK%A+pha zV=H|bKdlOr*8`GA0rF2c@x1iN4USMKDs zgcOtWR6@$gIVs_p!HFYb^VNa01gDI-R3b*L-&A6t;vBsAoln#Fy_8B5_pD!J7$p9D z{tB`5f>L2VP(7XRgq-`~gvIYz7Nt4w>6GrgXV3}6;9l|WrxSn^BJaY5fpOT=UV?4r z>zl<{gZCzKE;`>x-)bR@C~@_M?Iw1RG8y56t`7Y7$O3U3?-mIc>%f1H(n0BpGC+I^ zEh95Qe1OLvQ3!OSqCC(|it<6XL!?s7ey~1T{)syandVbL&S{mdKqSRav5eR!L@w=tTIuEYU!#L{*k(pjDDtqJdV4 za+c^`Ars^!i3YCeB#APEG|()`EYWa==gq2M4hn8l6a;No#93mWB7VHwq9_maEk&Fp zdM#t%uq#G8;2Zc>kx`f^+Y~7hFa0%`?#_gP{-9ARLbpf7?bj~~+=s@Vj%tf`@fZ?0 z7i|=e><)>NE!#xdhJbica7j{BTB$}0YqW?)E7NG@BeW(y6&?BMDm5CuLBpx&y$`j2!81^#&cL1M zJ2@YD2L7ueo`Jg*@eCYriTgWw_`>rldHBN9DtY+A(<*uR;!P_x1Bafz@VrW%zKon# z&gqMqSINT{HLqOX@M&e!t?IV<@Z~lld4yzO369b2%E|L;x1tbM3Vb7gBd zM5g07>Nx_A;}A+@$&j~XP1z1rZwp&FPJxXj?j?ebBlLXO%5@xvJV(fJY($AX#}O)Z zOXNF_K9neMtmq%)B?=ungaSoQf&E^AV#l!`1xnc36?Q8sb@b5ou!TGsAG^zQL>PCx z5Vp#ki2Z+*7bthA5AmEX+XKhFc+Qz^(e*-+vw`5e*>>{gckl$-V7^1|AX%vVoG+PZ zkDRchG!u4oTqD+Kv@sfOtVXNVXyY_movZOgRcl$jCUCq)o1oDeG+LuZo0zJ}4Rlkg z=&bV18m&d6P10zSHQE%7HkINd`)QgcaJojDq0we)v{sEa%hMJQY5v)sI7FMH(b_ax zJ8J`;MFqn7$P~rw#CEnae{4&qp&!^w#7j=s(EMF;`ACd{7KfwDYh-D ze-pMi!?wl6*U0+%5y|6=V}7yX|z)`+I)?+K%*^8(c*G@wJ1fD+Nm1tG>x`c zqb<>Bof^&7t%Y5hz;2DURHOB1v|f$2%+*rX!sVL46&h`&Mq8!PR%^61shT{?Ih{oj zdAY{oY#dYO$*{%QxIJ)mj8P;m`C6JYllxu{Tbz*F;?O|Y;)EQ#1B7xujye57k*K;> zM(#%>XXL2r*09AHxh?i1k~4C9AXJM=pOv9IUI|;AlcOd?a!zjVcq(jhN^bA?ut>ze zE^F*U9OvYy2XUN}<5`M8&dKpm9)}v6z9B>RB9yaod&g~I{P>3>_ac&$a?He!io|Pf z;Bf?UT8^3!$!WPQjw6!Oa(m#GI@G!Sy0nV`&OsVCUCgySjayD?oUQXzZlhgDH=94- zR2F?l!cOk8gUAI#mQ=hFhZOA+V0-&0fw`o2rvE*;mG`R-@grY~0C zk#hE%{EqZb`lKezzjde*aBTF6bUboc*G^-4Dpw?++Dm_WL7H zSbq8fIDf31g`j?w9t;)3B@c#*i^bL>rG_P*c@@vvkL$&C4;(fO zvG~Bl=?1>-&8K{vzC?vRm=U=DVT{0^A=5sLQMkpQG64ArEG1_`OxG)6!EZmP|+M7HxDV~ zaf418GHxDGln>uQMLcXC9oSZ6lq5cSq(3{Ik4xMoXOh_VakV&dye`W1a`cHM++^_%T zb-_Y2als2S0!}~NO6LyZ*s979+m~bn-hPYdEAJ8&{3Y?+Z!b5@tybdYJ%vW%jxTi@ z;-RIt`xek+V&Us!jVf{R>rLl8KBWGIbXZZ47Sa=nazRfj3W1(dl!srv98r`H`njS4 z{zc4=H%j8RE8!QUSdYA)sPL~hlcyy3A{gZTM1_CxnVd&v%JOTbw6~dZ_-NwrF?mR0 z;z$;UB;HUkz0*ghFU*v~M-$KE7(K0Sl$YOU6!9U+FBI`12?o1c3;#srs3QJ}%5#c% z`F);`%6TZ5&grA~+ZGc)FN)F&iRL%YDG5ATi$1OXrPqM}kX13IH}ywe)4jR$*=EnLlJjM7k>5BoEAV)+K{r<#v|#KY+Ihwo zyGYHY7rln%FIeVcHz+?R|5kJ^{YDXQi(XR1+oJz=>F@0jTwg9yDbK0@M~`^rK1+wh z=w)@=JiT5a94pGp^Za^MIeC8lR#6B)7I|$D51&g52SQVg Date: Wed, 3 Nov 2021 23:14:20 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9excel=E8=A1=A8=E5=A4=B4=E8=A7=A3=E6=9E=90=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E4=BD=BF=E6=9B=B4=E9=80=9A=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/IcResiUserServiceImpl.java | 189 +++++++++++------- 1 file changed, 119 insertions(+), 70 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index e116058d4e..1ce99e36da 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -435,9 +435,12 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> headList = readListener.getHeadList(); List> dataList = readListener.getDataList(); @@ -458,10 +470,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> headers = mergeHead(headList); // 查询form相关信息 - CustomerFormQueryDTO form = new CustomerFormQueryDTO(); - form.setFormCode("resi_base_info"); - Result> result = operCustomizeOpenFeignClient.listItems(form); - List customerItems = getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败"); + List customerItems = listFormItems("resi_base_info"); // 清洗表头数据 Map abandonedHeaders = washHeaders(headers, customerItems); @@ -481,12 +490,57 @@ public class IcResiUserServiceImpl extends BaseServiceImpl formItem) ); - Map headerColumnWrapper = integrate(formItemMap, combinedHeaders, dataList, abandonedHeaders); + Map headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); // 持久化 persist(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, customerItems.get(0).getTableName(), currUserAgencyPids, currentUserId); - return headerColumnWrapper; + return headers; + } + + /** + * excel导入居民附加信息 + * @param excelPathName + * @param sheetNo + * @param headRowNumber + * @param currUserAgencyId + * @param currUserAgencyPids + * @param currentUserId + * @return + */ + private Object importIcResiExtraInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId) { + DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); + EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); + + List> headList = readListener.getHeadList(); + List> dataList = readListener.getDataList(); + + Map> headers = mergeHead(headList); + + // 查询form相关信息 + List customerItems = listFormItems("resi_base_info"); + + // 清洗表头数据 + Map abandonedHeaders = washHeaders(headers, customerItems); + + //合并多级表头 + HashMap> combinedHeaders = combineHeaders(headers); + + // 得到客户配置item数据 + Map formItemMap = customerItems.stream().collect( + Collectors.toMap(formItem -> { + String groupLabel = formItem.getGroupLabel(); + String label = formItem.getLabel(); + if (StringUtils.isNotBlank(groupLabel)) { + return groupLabel.concat(":").concat(label); + } else { + return label; + } + }, formItem -> formItem) + ); + Map headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); + + return formItemMap; } /** @@ -574,6 +628,18 @@ public class IcResiUserServiceImpl extends BaseServiceImpl listFormItems(String formCode) { + CustomerFormQueryDTO form = new CustomerFormQueryDTO(); + form.setFormCode(formCode); + Result> result = operCustomizeOpenFeignClient.listItems(form); + return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败"); + } + /** * @description 合并头 * @@ -626,14 +692,21 @@ public class IcResiUserServiceImpl extends BaseServiceImpl integrate(Map formItemMap, Map> combinedHeaders, - List> datas, Map abandonedHeaders) { + private Map convertExcelHeaders2DBColumnWrappers(Map formItemMap, Map> combinedHeaders, + List> datas, Map abandonedHeaders) { // HashMap> tables = new HashMap<>(); Map columns = new LinkedHashMap<>(combinedHeaders.size()); @@ -806,6 +879,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> * * @param headList * @return @@ -813,67 +887,42 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> mergeHead(List> headList) { - Map l1 = headList.get(0); - Map l2 = headList.get(1); - Map l3 = headList.get(2); - - String l1LastHeadName = ""; - String l2LastHeadName = ""; - - //Map resultMap = new HashMap<>(); - HashMap> result = new HashMap<>(); - - for (Map.Entry entry : l1.entrySet()) { - - StringBuilder headerNameConcatStr = new StringBuilder(); - Integer key = entry.getKey(); - String l1TempValue = entry.getValue(); + Map lastNotNullHeads = new LinkedHashMap<>(); + + Map> mergedHead = new LinkedHashMap<>(); + + int levelCount = headList.size(); - String l2TempValue = l2.get(key); - String l3TempValue = l3.get(key); + Map firstLevel = headList.get(0); + + // 遍历所有列 + for (Map.Entry column : firstLevel.entrySet()) { + Integer columIndex = column.getKey(); - if (StringUtils.isNotBlank(l1TempValue)) { - l1LastHeadName = l1TempValue; - } - - if (StringUtils.isNotBlank(l2TempValue)) { - l2LastHeadName = l2TempValue; - } - - // 开始拼接 - if (StringUtils.isNotBlank(l3TempValue)) { - //headerNameConcatStr.append(l1LastHeadName).append(":").append(l2LastHeadName).append(":").append(l3TempValue); - //resultMap.put(key, headerNameConcatStr.toString()); - ArrayList parts = new ArrayList<>(); - parts.add(l1LastHeadName); - parts.add(l2LastHeadName); - parts.add(l3TempValue); - result.put(key, parts); - continue; - } - - if (StringUtils.isNotBlank(l2TempValue)) { - //headerNameConcatStr.append(l1LastHeadName).append(":").append(l2LastHeadName); - //resultMap.put(key, headerNameConcatStr.toString()); - ArrayList parts = new ArrayList<>(); - parts.add(l1LastHeadName); - parts.add(l2LastHeadName); - result.put(key, parts); - continue; - } - - if (StringUtils.isNotBlank(l1TempValue)) { - //headerNameConcatStr.append(l1LastHeadName); - //resultMap.put(key, headerNameConcatStr.toString()); - ArrayList parts = new ArrayList<>(); - parts.add(l1LastHeadName); - result.put(key, parts); - continue; + List labels = new ArrayList<>(); + + // 竖着遍历该列的所有行 + for (int currentLevel = 0; currentLevel < levelCount; currentLevel ++) { + String label = headList.get(currentLevel).get(columIndex); + + if (StringUtils.isNotBlank(label)) { + lastNotNullHeads.put(currentLevel, label); + } else { + if (currentLevel == 0 || StringUtils.isBlank(headList.get(currentLevel - 1).get(columIndex))) { + label = lastNotNullHeads.get(currentLevel); + } + } + + if (StringUtils.isNotBlank(label)) { + labels.add(label); + } } + mergedHead.put(columIndex, labels); } - return result; + + return mergedHead; } /** From 03750f51f8d2a1e2fc32117364dc7620882d5243 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 4 Nov 2021 10:09:24 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=88=86=E7=B1=BB=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/IcResiUserDao.xml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml index cff59d414d..b3fce33028 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml @@ -54,11 +54,15 @@ - and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]} + + and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]} + - and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%') + + and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%') + @@ -78,11 +82,15 @@ - and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]} + + and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]} + - and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%') + + and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%') +