From 90254d15d7681ea38a237887b094fa9b4fc540ed Mon Sep 17 00:00:00 2001 From: gaorl Date: Fri, 30 Jun 2023 16:03:10 +0800 Subject: [PATCH] =?UTF-8?q?feature=EF=BC=9A=E8=AE=A2=E5=8D=95=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E8=87=AA=E8=A1=8C=E7=BC=96=E7=A0=81=E8=B6=8516?= =?UTF-8?q?=E4=BD=8D=E3=80=81=E6=98=8E=E7=BB=86=E5=90=88=E5=B9=B6=E7=89=A9?= =?UTF-8?q?=E6=96=99=E7=BC=96=E7=A0=81=E4=B8=8D=E5=85=81=E8=AE=B8=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E3=80=81=E5=BC=80=E7=A5=A8=E6=98=8E=E7=BB=86=E5=85=88?= =?UTF-8?q?=E5=8E=BB=E5=BC=80=E7=A5=A8=E5=90=8D=E7=A7=B0=E3=80=81=E5=86=8D?= =?UTF-8?q?=E5=8F=96=E7=89=A9=E6=96=99=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OrderExcelReadServiceImpl.java | 2 +- .../service/impl/OrderInfoServiceImpl.java | 4 ++-- .../service/impl/OrderMergeServiceImpl.java | 3 ++- .../impl/CommonInterfaceServiceImpl.java | 6 +++++- .../main/resources/download/OrderExcel.xlsx | Bin 13566 -> 13198 bytes 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderExcelReadServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderExcelReadServiceImpl.java index 9d9cbfed..1cba47a0 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderExcelReadServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderExcelReadServiceImpl.java @@ -911,7 +911,7 @@ public class OrderExcelReadServiceImpl implements OrderExcelReadService { } // 自行编码 - if (!StringUtils.isBlank(orderExcel.getZxbm()) && GbkUtils.getGbkLength(orderExcel.getZxbm()) > ConfigureConstant.INT_16) { + if (!StringUtils.isBlank(orderExcel.getZxbm()) && GbkUtils.getGbkLength(orderExcel.getZxbm()) > ConfigureConstant.INT_18) { isValid = true; resultList .add(buildReturnMap(orderExcel.getRowIndex(), NewExcelEnum.ORDERITEM_ZXBM.getCellName(), ExcelErrorMessageEnum.ORDERINFO_9701, false)); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java index 18129d8b..ea16e0cf 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java @@ -2032,9 +2032,9 @@ public class OrderInfoServiceImpl implements OrderInfoService { } List collect ; if(itemList != null){ - collect = orderItemInfos.stream().filter(t -> itemList.contains(t.getId()) && StringUtils.isNotBlank(t.getSpbm())).collect(Collectors.toList()); + collect = orderItemInfos.stream().filter(t -> itemList.contains(t.getId()) && StringUtils.isNotBlank(t.getSpbm()) && StringUtils.isNotBlank(t.getZxbm())).collect(Collectors.toList()); }else{ - collect = orderItemInfos.stream().filter(t -> StringUtils.isNotBlank(t.getSpbm())).collect(Collectors.toList()); + collect = orderItemInfos.stream().filter(t -> StringUtils.isNotBlank(t.getSpbm()) && StringUtils.isNotBlank(t.getZxbm())).collect(Collectors.toList()); } //税编为空的不允许合并 if(orderItemInfos.size() != collect.size()){ diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderMergeServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderMergeServiceImpl.java index e38a9f0a..c5555c79 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderMergeServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderMergeServiceImpl.java @@ -936,7 +936,7 @@ public class OrderMergeServiceImpl implements OrderMergeService { //集合求差集,不参与合并的明细 List mergeOutItem = orderItemInfos.stream().filter(t -> !mergeInItem.contains(t)).collect(Collectors.toList()); String sksbCode = orderInfo.getSksbCode(); - boolean termType = OrderInfoEnum.TAX_EQUIPMENT_FGBW.equals(sksbCode) || OrderInfoEnum.TAX_EQUIPMENT_FGUKEY.equals(sksbCode); + boolean termType = OrderInfoEnum.TAX_EQUIPMENT_FGBW.getKey().equals(sksbCode) || OrderInfoEnum.TAX_EQUIPMENT_FGUKEY.getKey().equals(sksbCode); //获取合并规则 String mergeRuleType = queryMergeCommodityRuleType(orderInfo.getNsrsbh()); //根据配置去判断合并规则 @@ -945,6 +945,7 @@ public class OrderMergeServiceImpl implements OrderMergeService { t.setXmdw(StringUtils.isBlank(t.getXmdw())?"":t.getXmdw()); t.setGgxh(StringUtils.isBlank(t.getGgxh())?"":t.getGgxh()); t.setZxbm(StringUtils.isBlank(t.getZxbm())?"":t.getZxbm()); + t.setXmdj(StringUtils.isBlank(t.getXmdj())?"":t.getXmdj()); return t; }).collect(Collectors.groupingBy(t->OrderMergeUtil.getOrderItemInfoKey(t, mergeRuleType))); List orderItemInfoList = new ArrayList<>(); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java index 7159e8d4..407c5f6e 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java @@ -855,7 +855,11 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { String spmc = item.getXmmc(); StringBuilder stringBuilder = new StringBuilder(); if (StringUtils.isBlank(spmc)) { - spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc().trim()).toString(); + if(StringUtils.isNotBlank(commodity.getXmmc())){ + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getInvoiceName().trim()).toString(); + }else{ + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc().trim()).toString(); + } } else if (StringUtil.checkStr(spmc, commodity.getSpjc())) { spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(spmc.trim()).toString(); } diff --git a/order-management-consumer/src/main/resources/download/OrderExcel.xlsx b/order-management-consumer/src/main/resources/download/OrderExcel.xlsx index 1ab45574b17082c5c714a0dfe90b3e3d6c9b3ec5..cbf7fe1261ef4b8f5552e6bf9eb8d01562d9f581 100644 GIT binary patch delta 7410 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 CVY(dv delta 7721 zcmZ8`bx_>T_T>OG=-}=I3le0oAi*U_aQEO4Ah;7gxa$m(puyb(1PwAsAipPFLS^673!x>W5pX8g`Z(aCr--y zbjrIRJUp3ii3hU;2%WV0^66K8bmWhX>bJU*y`iqLjz5V>qG2spZp|Lty=zGch@}Cn zV&24P!29igLPd|i0Y1$-f8SS3=b(Wmk!+34(XYnF8McGguw**N&fi-iygJ zilpBTuAfFUM2MWX80J#3nnu&+S_sOIqcJ7RU?E?1hI~C_s{MvImkUE_`UViBJ1D(q z*P0BS7Mfn+sHD2%&}OjQ!MQVZ|M}TRN`?S0K3u{29V^mStz14HU9%VLQLbT=`7u?g zWM|)cw3=Z`rjkB>5qa|Kt8(d^_IBEYPsB>wRqseNz6y-~=I>o^2$Se0h9 zu;nK=V+y{z-Q7o(U{!1Vk){H&G_tOD*dwC7zRVmV-(f5dh9zmV*IJ{bfjf(`6zFBk zUGMa?XxEnREM8(pt+{R{_Ua8DnwWV08hPuve*!|h)oq*iY^LG z)Wjfh+x#o1XN-SU2rmtwx_;bttGr#PyA;;f_8sOf`&D%g zW46Kj_sO*FXN6xl(z!nuF$Q)hPx=q_Fv#*9ILu(8tNivi@vCl?Yr#p^;Tj(fQS1G^ zt$%YQ0YQ?Fe{rq@yjbSgBWI&4_%DR}y|7v&3+2XRyerC=DJ;K{&WbfZp*;Wybq>RXHXIB>xNqqWBN!J?w34JUw{+9bo@Lf3}XPOBOH5hrBOO!S`m}k;(WG zdb*YGa;|v2%qN#=tcWUu`Ij7sRPT=4(V-4g3i+C$F5TGy$09raK~0=E$1$8-)@h6f zQ9~P~h)-qd?0-)mjx0l80nYYm6Eb?Qp243#lo|_%+@jkm@G}F-QG2R9t>c zZ^Hr6)*AVB6HFr@NZ%rfTY_RkJL&dh*Rv|Daj#^662NxW1wSe4V-z>IP^&9KYxFE% zP_SnIOWmA@V^H52{?IRe7sb8v2^8V1pS$iCTXTBw_Z$y{yS`kK{dMck=UZ+)s_ZJSoW?tV?Tc|}Y?HmLFGT|7bpF-c5(J>bcvS}CN^;!s01 z!O~Tm^|&u?$^}8bq!PMCyfM^Zi4RkP1C1z$4Gk}+4QfCOro=?~F-K4*%2%fj*L3gh z-(%#>jt~sTrMY~x7o`KQZ}!cGRtG%_V{cens*Yp%#o|F1U#4BKcCSgv)HO!o`ddV5 zuHRccM@|6B=#$u{FMnR3qokO533w~i^`zV(>}LDb+}zppvylj4(JY5a)uj*5=x}KyCHMXnv1Gv zd)yk3xc;^O#rTy=OO)pagX^}t-^YuOjF@3YrydVR(ceZ5Im^W9k>)R|;%>I}-R3(1 z>m~Y?q@K@LbOZZ8Z(Ahyn&+L&A@fy((zWd=eqY}((;b2Z>ouZJjB6L1J1*N2RAVl1 zC)t=X%$P43(RlbS7@2tBekq(h?uYX4JBF&sDFaes$Xm}Dug$D07!Rf5Qmo!ahKQh( zaS&wDnC$!5raki<>23-VB1S1}axnG-h-^Pcx+c|YfXU!O<42T7S3Hgm<&%a=orwF& zM(f8ohIfm`F+D~kh_642EoH>iy$T9rv{6G|;$ni$1elZ4+cOA5vRf4u7@Wyl8Iu#^ zOo$aRKlsVQ-ewxdqD;k;TB!#UfO9n*q}Ie@QDTnS(FJm~pwZdd(6U#B6v=*o8ZY5c z2ivFlGdD1wWNQ2_A-_CR@-1h7@Tkf=$s*3ltOV#LGy)E4|GGGk9x4$H4b; zH{2IfO?)Q$ejudjmswnXmhH^Cw##tWX74j~KCDm=OX9b!@~!9Te0EN_i} z!~Lm>k17SS__l&@kC4smeQnILXYIqMbLN`S82!S|;fHqtYvK_*#zgG-R{Get-R}pF zYhQC#Z%D!dpDLfMgXVzGuU7~L01nGLo=B9`zlx|4R5zGtzayz&k4%#?ANWv1h*hH> zHa<^9U(mnGU2tctSEAS(;N04Z55Lz>IU{J0soBuCpGPTQEEkv zxH>Hd%noT0ud1gdGsMLR2EOH}PHEc4l9yNlqUn~Z8j`A0fGFQoM>3wGkIU<}Yws8{ zkHMnT7@E|B>b}UX!zs1Q`cbpWwj+wPO2^LYdy0J{6+Ec6Atm0BmihB^nvEu#uFEm% znfS>3fPv$B(-f41cd)cR7@-YIMKzzvkOpOv$#KHqtzwl|e>o~6d)A#URCea)pF&zc z97`y9rXF6j2dI^7OshERtHZdO=XDN9xR$S?3{~LS@6w7lPpAy=;7}f<#Pf@>We6YqMO{H z<0qyCK&vRmJJC?hetUm5q})*$$3d>4z83Hz`_k5y?vX0bmQQ(gDKdKbJZwyIecdjg43a7p4toi+VPEI9wqnZTi!U%CD2}nnvK>?;{C)wK z<-vVv0cX5&7jlje$YE4dV15?J?YCz{b(NdIKRnKcQWmlGS%b3*udyj~hCZcnt_uNA zp2!}!2i;H!Bq~MM_FY29q%8Wdgk1)|yW>uEF#`cT&6}GP&^%%bi4WsR4g(%sMUC-c zFfJ($&+&jy6Z(b>%RNp_PUBgYN z@)o|LM8S(tOVd(c>MkQS+`m|fB4BK$jhLG)Pwc1HsUB?hVL@`^A8pwP%Ueq{*z<>E z#jm|2Li|ni(F8WWaG*!NHFq;_*RxC}nB|6i6dZ1HRIx}O(ZYgoV7tMyu`Rk1d4O9* zLdS&{xLS`;9bD%`HjPWB-LL*HytMG7^edxHKAWo*J*ZPIag*>Bx^a=5hghI4&uzylyLm9qMxLtbD}F_iI%&@96?wW8v66XkxrrNV@x zAZwO}f*D#lZ)P;>2U(_yp~I(?xRXVLoveuOtX(LS8&_TRljL+9+%vB$kqr?UHLB`=zfGQYB%T*jFL%fQWPR1$D+atsgu!4L1I?3hm+>HAVCK)>91cd_I% z+^qa8xwJzcOXA`7LDFRf2t0RGMWd9>-y44KDGi=4ED%A3)3ko2gh$EZICQHKCQiIq zvy02w)(ecf8=tr1s)PP*F`f`Gf7-V8-KEU~ zdsjN*wR4pw{7&D&OERwU5O^hl_i9QgsY~~$^vG3=rFLrd7t-C|57oz@il`YCSp0F@ z#>cj%@_^z*+HU9bqqN4RIkefKDI4!kb6ZaH61K^R#F20x@k>|IgQN5ogAxnFtq&hT z$5+BiZZZvvdQB12hP*_$P#1#UGA;`NpR_OlGh7DOiPvC9n+|hq=DYq$oV+c_iUCxKVcttD&=E?Q-Xk5>=(8c369kR6M}PL!7i3 zahzB%Q$-4}U6Qg;7r|1dFr{H?gNY9x!t}FA9fKfRUA?cyWssNqLML&J1c6>AEh)Qg z=@Q#q0@Ru+7VvpM+fLn~S!RPMMX2eLAO|<)#5hPOM6Tj3ah}!leBqMC1xPkz;W-LX zU-XMOW!R`toK-bWO_fUKO;r>9X!X=N3<~Eo&gMN)Y7g8zYU*JeB5p+JnyKoY&z8(f`?iIl`)*?hIFGrj|Sa@ zw)W)$nHnaUfPq%%GJ82!tI=kH^)tDhYv~5B6yv`DNeZMiLM2Lb@Z*JApR2?#NcvR?#Gw=Q&nFjYho!d7-D3UX8du++ulI>>JLjFq!vl;naj= zd$UAF%A4+ml06nz;DFm{VWOT54HYofgz52^3f!&O*M7p!Fdiz5SrMVs9mj#d!b9I> z(;x=W#_Pda6$p(GwAU219p&szT$F27bT!n+$_WSc2Aui~`KC;nMJh8~ruBJ>i&yCQ zzY3wXshI^BSVk( z_fYQhi^ENp9iP38K2%~WQ?|*B5!q9~Oa26C;p|7N`xEpfkVS8R>SU{jupIH~1;<(} z54D7=VX4-z&BMQ+p2UF#d{QM;wWA^nVgxAuT#k9 z(M^;_J)tv~riad>nWqkt!ow?bGt@Wcwi^8!&TmG?$8naytn=$b4+^apt-22Nz&U8nFv<%Oy9kT4fp7Hd6{vOyy^{SB3 z%jKV0FqwhQ>5t}Fkl!33_o0cZJ6B4N(PAI-7V1+rc_}JJD)u_Y>@|3%Ej*Tw7~u@` zA2URlsV#RTST6Or1TFZ(Vk2hbbM1kV!8*FbbKgpTFlh2i-j#t?k^U^Zp73@zAUQm- z%dtMWcDp_qt8U*s>aJ<4@XQXPJvVA(Aj1W>cd@Z@bgnuoabHz<#L>c09b<`$pZ{Z5 zO6F@+Zpu22{rbmrg{9ZH9_X-Ml(e}lr-E$579Zf)0kFf!R zy8E&U7A!cA9o*&Oty*#LD$)KJ)GNE~u0S1Fuk)ID=!^TGk4JgmXIOo0nVHoZx7298 z2t`KlXv5|*Ke=|gf(UW2a+3SG;G>zICw`(KfA;jPj($o>xet08(N6MJr}Io6z_m;Y zJQza-oyC=8eCxKZ+*)!*LwbPxtiG0`#}o6wcgM45O4SS#Z)l)`ZVuJc%L2P!w<7_787)T*cwx(qre*!f+EHW1u zpV!`|)lCYLaOOZXhminwz2|u!ouBB4L}_!dIU-eVXI5tqg85pSKzu$jxzbXRSRTF% zW*d}3OgVEgRfzR$H_SLo#a7SU_Y*2qFPk%iswbT?} z>|e6kil6vU{5LX9L00!%3P@lr$_Lss%PyHwlS zV6t-|!!&J=#+OQb!^7%*!K*NAR_fS`6KZ# zp#~jd5_GWNXJ7WBVb)#loLj3+%8}H!e&ugNh2D+}h=|Ad$@`VBDP)k^bN2Wq7D2aW zz+BbUYy*)zK>k}+SG+Bxd^wKoZ%w!5HE3t|;kPwv_LKgJy^)@YsEms`Nx% zP(rPS@DJ zq(|G}Jnkm#%T0Vpb&z(qd&ZHIZ!OiEudX0LS+e#qawj!;aQn3IPIchD#sTBK3XPmZ z%)M(WJUSQGfrOUeI=JZPhkG8l%fD<1@b2Roeq%3}016OCP(h<#b`Xok$~>uNBP+Eu0l%0L&U#Hifnx-P{3w0pg?Le@7k$x0e--!WqFEu#UPebwrA z9{;oCn-9Jrk!Guj;W2}iW3&?+a1iZw!U7f`AZ~DlS>YhvyZxqd3@YZC7E-is>U0#H zKYEyxC;)x+a~UeGL)ViR!F||0Tgk`i)UvapcpUdN4o6-;$;V3f;lahi94d}qWZH`F ztvpXA$Uoj2In;&v$V+PWR{hv9jMJ;tSJQaLdf_OZa5IkZW9WIyD z!#tjF#_zYzN8L=lVqN?xm96ovXO^`v!rfzN#YY0?QZ}#Uo8c9{|K3>YaveYM{l?1h zOVGdNlc(o~sE7dGXx#sDM-c=t5`+_s27v~nLj8q>pohJn`Tw1yf0V=jGZ>%I`M9~ldH$b6D=!aE c7w3PuT^cHoe@tKy2>Q=_`ls+7>|eY81)ABW5dZ)H