From b9739b52673a605bbf04eaa8d1472c22a3bbb3a7 Mon Sep 17 00:00:00 2001 From: houhuan Date: Mon, 5 May 2025 19:38:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/converter.cpython-39.pyc | Bin 9634 -> 10084 bytes .../excel/__pycache__/merger.cpython-39.pyc | Bin 10601 -> 11921 bytes .../__pycache__/processor.cpython-39.pyc | Bin 20651 -> 20861 bytes app/core/excel/converter.py | 23 + app/core/excel/merger.py | 212 ++-- app/core/excel/processor.py | 12 +- logs/__main__.log | 68 ++ logs/app.core.excel.converter.log | 332 ++++++ logs/app.core.excel.merger.log | 219 ++++ logs/app.core.excel.processor.log | 1020 +++++++++++++++++ logs/app.core.ocr.baidu_ocr.log | 7 + logs/app.core.ocr.table_ocr.log | 118 ++ logs/app.services.ocr_service.log | 46 + logs/app.services.order_service.log | 59 + 14 files changed, 2040 insertions(+), 76 deletions(-) diff --git a/app/core/excel/__pycache__/converter.cpython-39.pyc b/app/core/excel/__pycache__/converter.cpython-39.pyc index 16a9c48188397ca6e7d509943125cee19a661b6e..e562d0ceec8ca5b98f3a78ad4e4795455beaa6a5 100644 GIT binary patch delta 2415 zcma)8YfKbZ6rMXXJNtgXK7eI`1w~n9h%OeLPuw`1T8TU2*YnAGnlIkxEpakf;ePWyLa63$;?)go)ZG zBqsC-)IpupMcuR@A=1J@k$R~QEI(KQS_D=xSS2(FR_UM^H^Uf0Lmfh-jQ=P;>W=^N zGhWVJqjGdhy_#+S@r8@`=kL5Xck}GR`1zLb;;pmu*%|EoW9HKQl`kG&_|UNDKDaXb z&DU+wXx;XDHDc17FjR8^bvc`w>l)Q)bF-?du^qY_jW)#^ zo9kn01G;K7R@W4Z#iI4G=`W=OApu@#>e#pqh6`qq!2OS`ta@VGU-A=6@$@Cr4O#I+ zpjN^gZM*CNG<7KAr)(8u7th*;NpRX>KPi$hf8SX{%K2B$*7iyatU{aVlWD~#a?_4GNr@x9!@S?zk zvKu9W{C=P;xI_ej5zUnXOp!BUvXGJvVVsO!=SzXIPC09$3M1EqNpXr0Ath!NYG!0g z%!o|X9*%aU%uLK$sAYNzIqRTaeY9^< z!YOv{fn3(-=7hQZMud!w2&3g77Ov04L<2Jg4Jwf~&OW*mt*ku%YOzI0sMgtj!4NEzv(XUbL#+RQ6TD~(*- z&G(h|d!ETf9OLEDkT>uI%w#)&U~>^!ltmYDi5~uI=}0&Tjr}5a<*!0`df>MQeo2qS zM?zgPyvJ_-L+H7&%S>U`QaD)DlyOi8v%Di{Gt5FAB|^rLlCm;&>W9X~9I(|gz7aUs z5CsenP0b|&6REjXU_#bp_){d~WKQjO=7b)1tMCkq$B2MaQNWydDz+h^9#E*uc$o=0 zeasH%XNqovFb&|Dr9Q5f)f^rt$w4M|7>ed8(k*3N8F$75N4ZF!*CKN>&o~)*k6L{~ zrhu7P0X*$`vfPCA7A&t<7cO2$vV^PU)dzyWC~94K#=qAvidtX|W9d4KA!K}`OlMqT z9$KCz!2J{RteT^!y}O37VjV_fTf&oe{;({xHxbeoRH+9WyQc@_a~-x!@2^_FKeA!k zRD=Ot zb4Cqq;}I xmBg0=GP0#M9QAGW9V&0r`yy_w3*)e4=gdcVdG(%(PHfPNHjZ9H%THBT{R_eYL5=_b delta 1977 zcma)7O>7%Q6rPz~@A@ZRJITg&6919JNt~$Qgr7j#qR^lg6-W`TFbzRb>dB9j%8Axa z)kfn+P$UFGRish*Q4^HVLr@Qh%0dFftrt#QxF8Fp9HO>|st1lpNW8apNu3Z0kM`U5 zX5M_?^X!|M-LbD;HKx2?H-X>kZ|2r>*q3=Ca8^Fm?X_(Jx zgJ`DYY4a)#mwz#Jn))9Z9)(FsZ#9u)(h=yRT{0EO`1fTJkpsa9y)M5CtZO5v6Ox%= zq-}>1BB*5)0gLo1D>QMMCTn!%n!FZ_oMM|Q*96^SB_^2l?aFx3A=swI^(}gpmXw<3 zv^}-vxopo-)Hj{nE$9uxJ(7ibR$Z6Bp#X`+&%YmHtG*Q>39oX?iig${C`fSg-vE zsSx;jKR>b}7n|Hrl+x`Bddp~a9-~Qn4=1;?MYf%2#_QSJ=wXfQS zaAp@kMakuh`*%hXM-%d1`xDi@HzJL2wr=lK+b@=e{WTZS6A7RI_0IeekrxD;t zfirW-%4Mf3-nxU&^5VE%mIhi40CKQ1Ne9aloeOjrYv8fN7wab3SUuWa$D!vD#t`<@ z&Y=5-q=}*alW3kocm-hGw=|Vqn3~PyXD96gym}|pE{3^8crXc>7Um(8_?@hQ)|%p^ zs^X?@^cAP#XU{Mv#ilB%{5kQ(Y5*1D2nvFVkU)460ncOWC4>_Q_#Z5+b1RLocPdx& zz&^ZLeee`;O+ZFG%g# Covl0o diff --git a/app/core/excel/__pycache__/merger.cpython-39.pyc b/app/core/excel/__pycache__/merger.cpython-39.pyc index dda2ab032b2b9925982da01ae54c44bebbcde3c8..c2627eec5d06d1f3513ec269cda41b4bd5ebea72 100644 GIT binary patch delta 4398 zcmZu!Yj9h|6~24#)wSN1^|CB0j^a2E!H_YOG7vnpX-vv93qwI1JX@ zb9c`gXsMlCXLfl~mn1hXxV0 zU~Sq;)qZITO`(#7T5!vVh4kriO~F>GU|YL%TEg}PrH+tPK_$(M$Mx7TBX>x{F6_i* z*Kt&88Inp?-Ay%-$OF&FC0hw5rFIDHpbqRFkqdu=cPoGEQmvKR>!^x|OszE!_E6ht zX+h@GjD5^C6w)=@v?Xq#EhQO}QgIt3V5wT-Mb*%K&1* zG6~-lGD5#D;v?A|6h?>?K3VTy#v8tVKoyOBLfsWf45^rDfvzHSeDNnmok!N!Sqq3- zdAfb2HrgioKI)?mh$55O^%LVRYKPLxU#?QVvXRo8k9UC9cH0nQN-)egw z&9Q&B4fn*5;mPOpR8~(XGVvp+1Wpn1ICzrVx!4C{j!|#_4#LlPkstQvk6^81a- zrKS40#_Ml4&YWAka3M;b1k;x)i0D%N7(>1XY!5?+JOY9p@^xuukG<^MiXLX?eVvMp z>}9|6Z9RAhJc>NorHf}9$4@p-URs_zL4-B{+U2>qrMKS#)#ukLX8NCBJ1R(2KU9)zLCH)VUV=8$F0+Bcuhq*|AC|W@@DnDve zkME2Y{m@xF{dV(}pEQoWw>)!v)i9|>Z@Vu#sXSA-)sTwq;MM%q%wl!6QGMlRM-gFp z>Rh8T`xQfo$8MghFJAfH%@+1WIQ%qU`Lsl(gYFW7V~#rDVe*)|Pa?fw5+Wv(dwBah zAYfzNqltVzh2zOwrZ}1{n0|a)4SOF>C-r1*G=JY;*u9Z1cFNn8SyPGh&BB)FjyLA7 zL+Q;|YmH0OJEP~3(XtXxxUD%rp^K-cSC^x>0j6o5d9!)+1NcxHCw^{@U-Mwmz?~?} zo(gntALI#XdM=YL=!S(PvO_7dhwIdICYLm{L_wd(r^sXM)xcd(S_(Qz=M9;p45d(f z*05x9&!>o?kyJJ@nj-ytobCScWGb(xb6FCDek@3Kz>7Sy`mK4;UBW2OMVjIA0+HrB>HE$;0kv9|gP1KY*rWS7kf$ zC_%-EoJf{E$cln8Jc^3K@bG>Fd1a@fAr%FYRn?IA{ads0aVqj6D_HG(9MTjwyxkCy z_pB>#JG||}gGaL>(`xU4h8x0qVG<__$sSpQ>BDGp8#~vxR znZ4dlRJdI3WTDVzbcyway35#E0hEC|#9Fff;sOj}7r&>m8@EnNbwsV$#jV2*uy{Ho z+=ji!<(d;ah0U{O^WAK#xv*b&_|`leH+w*2M_*Z@Rz3xo0wW5v_!Q0&_1jX1RI=$7 zYMVm550^xhsx^h$_{|3Qwu*y56WRqa2$_ET_FJ%U`&b@4;L2U|2%FSlEKea);hL~^ za?diB_wnl7RK*dz;kaC~Q#*!QR`Q2-pG57$t=NTqLo)8d8=-m+j>2!#86XP$KCZQ4 zR~-#|Ap*Z991sugsbN3R3|_NyM8=Lm8PIrC!^#5=mf%n;TLsoTW2ozfOWl^y&H)|_rS!~L?NEe;?y|Ff(ukB z>J~*j%@#J?o(zzUU=Zh<%<>lDBFY8F3X3(AjNWkvnsIw7hqhp#b*8oF;P2aixL>3j#w1TzQg9 zrV0f>R<0{Ey=&W(_GBiN$O_ef^|?eQ&5ec)CL9t<4pD_-MmM*s!ZQ^}91tGye32xN zBnqi`j=%+6Xo9_Pfc>Lu<2_zL5U!tClx}z;vKx+lw;Yl+c&mzA^(tN@ zBl*8p&8vji!y9iei!bCG5G^T#SpDPID!lCng;9_@_RIK5aX^AQ|8wDRhnk+EF4oqDwuTphtS*12( zcVk;g19H=Xoh3NwB^&fPBZq+E@HoY!PTf^=0|2?Oo4VqyD?I=q>V}?&B2JA(3RR%S zDm<;gX6;mMmw+BRYhKz$HChG=-yzi%I8>&pMfXt;ZtH-d)LmBrI{dW&XuROXndcqC z4n2SwMZnA*D+6L<5s3R7*o%+BQ(z_`9({ls6sBeWjZmgn-KLK_019j|z5m6kz!Ab>T z>@4|T@Z(M(jG_gE(FRR8{gL8lZ1<*HHhq5WSmWZc#>~0qv7?JKZ!EKSmM*^s?5A<< z#L`b+YF>VsT~vG6{H9YKCS$71Heag(BWW&txOkN{Uz;Wm0u+S~aaLFegBaq3#9Kl- zkda|XyC&DA`5UAJ;N~&#GAwW)iYcN)dj-J^HJQp}%)=n)3qK43z@9?vUu_%Md{2bE z<#jyHS%KgwML}-OTrOM?Y_rH2Fp$liQNnLF!BELDXiaLpJ9^>IK)vf2oq&_WtkAtT zq=6G(jG4=3*oC?YVCb|9H0#2029RXn|qv@<+$pUF87z#*|=2~q$lg#BO z4BJpjj~9-lQo5mzXP(!MmIHhC=@Xfh;Re)+59Y{d0vvQAkjk*8bq=)<$^wCOK&in@ zE};wXB1ie0Y|rK$?E=~+cvldafC)#Fth#yYnKoW9F5S?=&_Ri*wTLv7a9XMAeHQ-(gBKii3lQ&>i z_SxnLnql^y-bZ%>coaC@QAAZ`@l#XwIE7d@#6|a7G>5LVnG?_{~I$APg;^$l^r7yhkjs pd9b^3Hc!rSk2kr8b39Yj)0x5!zVn3RDmlkSx1UEJu=dy!{|91w^eg}X delta 3225 zcmY*bZ*UXG6~Em(o&L+RB-^sVe+$MUhB2XO33Uk&mr`2D0Fyc;5Leb7Mz(Cpdnd5n zRRl2sL*j{<4Na#p8Od#@p-m|%bZ7}Q?et?aoqp(t&ZW~%XOO|4=(NL!{+UkSJ7F-= z+`ISQzJ0s@RZs~O~@M4n+k2y#cWsXk8 zWh&THWNJaR+=5OMrj2NGgtrMg>|t7?Qu129GC8LVDa^G%3Yz6Vs~javXYSJ;q4g=# zWSSIQ!Ug?Y*w3ORm3hj9D9afNx}$lS?{(U!31!hUXJ){&oR#52Eq_3zP*>#u} zyak`-6Fx}j7k(BTq2^!U9m2PzltKa~!v8Kjr5aWvyzeTPC=N4z9X-OotPA&mOSlV^ z`C&=4q_Hpz?<(nKWw{3|rFMaUj5sp7K#E|*76_}G*9w8OQV5DbDO^_ilp`}Rtx%x` zQ-F0GCRkgFuzJ=|ooHDtgdIMbfnnIq%3;5jKmB6u7u{*vR{1HPBw*&~8;l-ILHXeH44Z&+KDH3_o3s(yv}4r0+` zBFI)jfvNK;R*T?rgrNP(K}A!nx;Z*|m?(uPQKq^u&u3XPCSonHs^~PP)UcfW$~Pcs zA^K_*Q&+VfrNhKYyb#bM@}IUoKub zf3N(0<@?v~ek2#)JAMDwn|E%1eE045?|$&XW*G6#?fE;uxLKKbr!qIYq(NWV9ot>^ z6;K`oKvXWCsmN0>9hi$O#9DN0;V;W_tg{u>d;~s-Rkza|%B zom-Az3?{mFWuY>Aaq;5SrL%8w$6E*9rL$-6UH=KVp6Kl2UzO>)J@RjLUo2kM_#Oy! zs`4nBzXC2k0Afl#Y(8Zxc`O>_*tq^V7~ScSN4zf1|7h{tub>dsDZ(gU@02Q6Pdhc5-`bXMhR*kX`cXxG+K?di(iQJ$XW#-N$Y#=}#do2hr8C)- zttU-uGH39;@`d>4UZ&izRWm=x6HYic#*(9k?fue3%E(#i>{uekH$n^Fjm?xDJrpu? zMk<}m3>-6(%;1M=s_%gjWAa3nGt+jDCau&l!#pJa8SnGhq0wY6XE52@xWi`?gZE&z z7v&EdI|h$}s`xbOBVn~()kuhhiHFvM?SrSDYG{)t5}^UA6Ak|LnogYme{~PG`e+1t zdEf~VAH1O_38^|}BsvWc+26FkCJ3Xr;cztEr8 zafD|$$bu|9L|JUMND5w|l~mz%SS=@jlFdWFfk08{Ve}vl84?;&(JUdtp|!2Sg=?YZ{guYTFv)Ux(0L;PfQTf%F(NCisZ_a%*$31N@dE zpq6DgycikL_-czT+fY|^Sc9d}eVpJ_TvedxjAwIWNj?HTZh)}qz8!oUTF$Z_uWdW{ zywH{J00qi`Q+9yvu+dWRAzxfrTDZjf=WBO2>M3F_&h5|v#M^PYloq_pz z)Zp+|Y!~1tGim#*?7&!l)Zpn9KZkxO&{!&I*)E>Vk1^Xl1n=D7q^%~0hHSr?<<`LQ zWF~KzJOkn0M6e3zQ}S$kGntS-XkYiN-!w8t$}-ph0Nex7Y1C{lj56dnA7(X}t#iZ7 zXRK-+UX%Z6Z`FSbY0U$&t)q2In0f%MfKx(Mz@iGc1|9xt*uk)mXlh7}s1ZVm{y&c% zQzNvVOeJKpDF$D@t_US`cF$(WnZji+|3aYP+4DR+<~&q92_knY4bPG z=Rpn0W63K&?c67KuInTXGQDnnkF8H+QrX<3?Hw|#0rQw)SPq12PufDhIAPkZ6C8EK zF`t&9uBTT!2y8>!LV-tLB2Vl$*Mva%ZCX`8wF5<`(FN2OJz!DjZI#M&rZ-TRuWV&L1_@ z!z4z-YKX)EG$&6@OPW<4bOH51vFTWjzlV+5MCODgPi}~jvb?zAGPy3F+j!vr!l`2L diff --git a/app/core/excel/__pycache__/processor.cpython-39.pyc b/app/core/excel/__pycache__/processor.cpython-39.pyc index 04515c2746ecdbe32347833e00088d675771b328..2aa6a98f19df8afafc2bac80cbfd09d021ffebf6 100644 GIT binary patch delta 2253 zcma)6YfzL`82-+;>;emWVc81^!r}#3^0H!yAfO{5q8Ut?=IVqS2Nc5H_3VOy-?kK` z242>V8jY8B9ZW^jnAOQfR7@>rYP76B?KD$AL~WX}e&mm8wBGkyq{h)1c4wdOeV_BZ zm-C+U?XfVqe~@UM8jV_j&z1veYdu>BwB;6^8C(PWD&Xg}$MKbx%A^~sM8DFn3Mx9< z_%X{T0U9qULQ0wxCPBjNK2<1QQb`J$lrE$T$a(F)g#VZ>;u5J6zKJw>U%WqAj@8Jq zL!+^p(b%DpSefY}evPCFB~vX`hDCVl;2A(ePgBC8U(=!YfuM^>$y8G+EEin4ae_}9 zB<<&kfL|X8>8L@{>=kJ0enprNVTIrl?E>hbU21$ygm!-%@l5Ekn^cK@DaMM_EGenQ zB0zi^uyN^N1!y{$YBcFMurg#T6RZT;8V?pEht({wU>|#h{aP#?10jWPm7WIZXU|Ngq_Oen}5Z&Pc%tu~jHKQPMvw>KX(VHjHXI zDd11>rG|`BN{obKFh~YidX-L=3?UP>gb4(S{#2j&p%3S1lu|J@v|xni!*aQ?9P%Dh z0rMmy#Hw(ou7%L7Wuyj9C>3)+ok0I%Q{_K7l{{!TKiG4!B!=Mlu)uO*{XDoW3byHyIT`B+KbdJxj4C~>slI`^_}7_}Yuxa*MTt5}tbdUyQ8KMH z2Z)RrM01wF*jp#A)cpZhl!b= z&fZ~gB+5P2d3`LZaJ8<3<`!E$WGf%EPEQj_ArXoArz*)x^kOF1dZHz13VshHJ(0#7 zuadZVG&f7N0kX2!`Ged-@&TWbmu2V$!lqz5kZ(b7N1S=<3E2_(E`K($bR#ttHAXfQ z?H+{p`GkUHHaVse{a7Gaj`${T-I}IGpCi%Pwx%vN#?3rjP(*g~9}03vb>#1YIwkpo zue8r6ZTx_}oji!7&3KDgwqtk#b8o1lPM_1E^wzss13SqF3SS{tBl?+61v$mptX{I0 zClxIvoqTnXNp%*h@8KJZCKUFeIRl{>0UNg^#Cje?;spSQdToP~Hn2JR$m!xuqW%y@eT48a!g0R1^n~g#n*IErQWNRtrm`ifBS;+M zYs+fMQT|!kPL&G@H?J*ULk{pW<%MuWzm_jj27q1_DVcj$k=>4p4g?FrMuchv3Bk{+ zDppJ%T|O$Z%}8$nI7*^q9eWyG8J`Wwan3gY?3s>-k2M0D{lz!n!PaSaJM`);%zNr_$E2*JRIcGY8C7#xjF`T#2=grGvtj&u*YF9|6bX pPGGL4i5GwMqjgLVXL)>7H3=t5dqFb}uL1)*M+jqe5 zc4G{X?{(gYWQev18ZtwG217umMk8u4!Y`9W|B&Dm6HN?%{6XS5w@~~sm-NXw&pGEg z_ndp*JvvKP9m~AVB5>XCdjWp2pEdESw?4mns~XqiMncRLAgA#Ux3U7I2-qyvk{Xx`E9pMyn7k ztF$~|6-jFxSh>>jf(2@jHy$h);k0tbks?IN@Ch}xkXsWfTga6*d(y$JDY8}ViQD52 z?vS(t6CbxP=2j4zz#SlxBSq{quan3;JLKgqRjA5Io3>K{ZZNY4s>-dYu|eDcdVK_P ziPwM86W2i&!qgv-GOo0T2Qa}?8?(7J|+688{g&q9;5ji*zympqMo zaMN@;edf4|6f}1>FGqtH-t}Krb$LuD5%I~4$wmxCO>t*NWrYB< z6TiXx{R5*XF8y{jd0+JY_1WOBXHuidUiLObd>T891)1}tt7h&Xq7;TT2eA1s`Bl65(Tnk3>n$MI(jgIdQk9 zh@2CnHI2quB+iQ^%hr((#nEL0Mh6lRQC_=^oDxTBE6G7|vv!UCCeZ8Cw&j0nrJb0u z6TyqH3t=_FZiFsTT(@OzHhe*4y-4o^xIjioJDZQLgav2~0bCKOx>NbX=zfmyg}7T^ zsAJ@+*jnEz5+f`492q+OHbr z+svzjXS|XH+Jh_yGq)oo5ai30>hif>NA3m!z6oX^WJh81QCs}|;$#vQu63UJ+ZdjS zfG71E(Ev;uW3r_V|01GYel-$hCoy9XGi {new_quantity}, 单价: {price} -> {new_price}, 单位: {unit} -> {target_unit}") result['quantity'] = new_quantity diff --git a/app/core/excel/merger.py b/app/core/excel/merger.py index fcc4838..ca35f9f 100644 --- a/app/core/excel/merger.py +++ b/app/core/excel/merger.py @@ -125,20 +125,23 @@ class PurchaseOrderMerger: # 打印列名,用于调试 logger.debug(f"Excel文件的列名: {df.columns.tolist()}") - # 检查是否有特殊表头结构(如在第3行) - special_header = False - if len(df) > 3: # 确保有足够的行 - row3 = df.iloc[3].astype(str) - header_keywords = ['行号', '条形码', '条码', '商品名称', '规格', '单价', '数量', '金额', '单位'] - # 计算匹配的关键词数量 - matches = sum(1 for keyword in header_keywords if any(keyword in str(val) for val in row3.values)) - # 如果匹配了至少3个关键词,认为第3行是表头 - if matches >= 3: - logger.info(f"检测到特殊表头结构,使用第3行作为列名") - # 创建新的数据帧,使用第3行作为列名,数据从第4行开始 - header_row = df.iloc[3] - data_rows = df.iloc[4:].reset_index(drop=True) - # 为每一列分配一个名称(避免重复的列名) + # 处理特殊情况:检查是否需要读取指定行作为标题行 + for header_row_idx in range(5): # 检查前5行 + if len(df) <= header_row_idx: + continue + + potential_header = df.iloc[header_row_idx].astype(str) + header_keywords = ['条码', '条形码', '商品条码', '商品名称', '规格', '单价', '数量', '金额', '单位', '必填'] + matches = sum(1 for keyword in header_keywords if any(keyword in str(val) for val in potential_header.values)) + + if matches >= 3: # 如果至少匹配3个关键词,认为是表头 + logger.info(f"检测到表头在第 {header_row_idx+1} 行") + + # 使用此行作为列名,数据从下一行开始 + header_row = potential_header + data_rows = df.iloc[header_row_idx+1:].reset_index(drop=True) + + # 为每一列分配名称(避免重复的列名) new_columns = [] for i, col in enumerate(header_row): col_str = str(col) @@ -146,45 +149,77 @@ class PurchaseOrderMerger: new_columns.append(f"Col_{i}") else: new_columns.append(col_str) + # 使用新列名创建新的DataFrame data_rows.columns = new_columns df = data_rows - special_header = True logger.debug(f"重新构建的数据帧列名: {df.columns.tolist()}") + break # 定义可能的列名映射 column_mapping = { '条码': ['条码', '条形码', '商品条码', 'barcode', '商品条形码', '条形码', '商品条码', '商品编码', '商品编号', '条形码', '条码(必填)'], - '采购量': ['数量', '采购数量', '购买数量', '采购数量', '订单数量', '采购数量', '采购量(必填)'], - '采购单价': ['单价', '价格', '采购单价', '销售价', '采购单价(必填)'], + '采购量': ['数量', '采购数量', '购买数量', '采购数量', '订单数量', '采购数量', '采购量(必填)', '采购量', '数量(必填)'], + '采购单价': ['单价', '价格', '采购单价', '销售价', '采购单价(必填)', '单价(必填)', '价格(必填)'], '赠送量': ['赠送量', '赠品数量', '赠送数量', '赠品'] } + # 显示所有列名,用于调试 + all_columns = df.columns.tolist() + logger.info(f"列名: {all_columns}") + # 映射实际的列名 mapped_columns = {} for target_col, possible_names in column_mapping.items(): - for col in df.columns: - # 移除列名中的空白字符和括号内容以进行比较 - clean_col = re.sub(r'\s+', '', str(col)) - clean_col = re.sub(r'(.*?)', '', clean_col) # 移除括号内容 + for col in all_columns: + # 清理列名以进行匹配 + col_str = str(col).strip() + + # 直接匹配整个列名 + if col_str in possible_names: + mapped_columns[target_col] = col + logger.info(f"直接匹配列名: {col_str} -> {target_col}") + break + + # 移除列名中的空白字符进行比较 + clean_col = re.sub(r'\s+', '', col_str) for name in possible_names: clean_name = re.sub(r'\s+', '', name) - clean_name = re.sub(r'(.*?)', '', clean_name) # 移除括号内容 + # 完全匹配 if clean_col == clean_name: mapped_columns[target_col] = col + logger.info(f"清理后匹配列名: {col_str} -> {target_col}") break + # 部分匹配(列名包含关键词) + elif clean_name in clean_col: + mapped_columns[target_col] = col + logger.info(f"部分匹配列名: {col_str} -> {target_col}") + break + if target_col in mapped_columns: break + + # 如果没有找到匹配,尝试模糊匹配 + if target_col not in mapped_columns: + for col in all_columns: + col_str = str(col).strip().lower() + for name in possible_names: + name_lower = name.lower() + if name_lower in col_str: + mapped_columns[target_col] = col + logger.info(f"模糊匹配列名: {col} -> {target_col}") + break + if target_col in mapped_columns: + break # 如果找到了必要的列,重命名列 if mapped_columns: - # 如果没有找到条码列,无法继续处理 - if '条码' not in mapped_columns: - logger.error(f"未找到条码列: {file_path}") - return None - - df = df.rename(columns=mapped_columns) - logger.info(f"列名映射结果: {mapped_columns}") + rename_dict = {mapped_columns[key]: key for key in mapped_columns} + logger.info(f"列名重命名映射: {rename_dict}") + df = df.rename(columns=rename_dict) + logger.info(f"重命名后的列名: {df.columns.tolist()}") + else: + logger.warning(f"未找到可映射的列名: {file_path}") return df @@ -233,21 +268,31 @@ class PurchaseOrderMerger: # 处理赠送量列不存在的情况 if '赠送量' not in df.columns: - df['赠送量'] = pd.NA + df['赠送量'] = 0 - # 选择需要的列 - selected_df = df[['条码', '采购量', '采购单价', '赠送量']].copy() + # 选择并清理需要的列 + cleaned_df = pd.DataFrame() - # 清理和转换数据 - selected_df['条码'] = selected_df['条码'].apply(lambda x: format_barcode(x) if pd.notna(x) else x) - selected_df['采购量'] = pd.to_numeric(selected_df['采购量'], errors='coerce') - selected_df['采购单价'] = pd.to_numeric(selected_df['采购单价'], errors='coerce') - selected_df['赠送量'] = pd.to_numeric(selected_df['赠送量'], errors='coerce') + # 清理条码 - 确保是字符串且无小数点 + cleaned_df['条码'] = df['条码'].apply(lambda x: format_barcode(x) if pd.notna(x) else '') - # 过滤无效行 - valid_df = selected_df.dropna(subset=['条码', '采购量']) + # 清理采购量 - 确保是数字 + cleaned_df['采购量'] = pd.to_numeric(df['采购量'], errors='coerce').fillna(0) - processed_dfs.append(valid_df) + # 清理单价 - 确保是数字并保留4位小数 + cleaned_df['采购单价'] = pd.to_numeric(df['采购单价'], errors='coerce').fillna(0).round(4) + + # 清理赠送量 - 确保是数字 + cleaned_df['赠送量'] = pd.to_numeric(df['赠送量'], errors='coerce').fillna(0) + + # 过滤无效行 - 条码为空或采购量为0的行跳过 + valid_df = cleaned_df[(cleaned_df['条码'] != '') & (cleaned_df['采购量'] > 0)] + + if len(valid_df) > 0: + processed_dfs.append(valid_df) + logger.info(f"处理文件 {i+1}: 有效记录 {len(valid_df)} 行") + else: + logger.warning(f"处理文件 {i+1}: 没有有效记录") if not processed_dfs: logger.warning("没有有效的数据帧用于合并") @@ -257,26 +302,27 @@ class PurchaseOrderMerger: merged_df = pd.concat(processed_dfs, ignore_index=True) # 按条码和单价分组,合并相同商品 - merged_df['采购单价'] = merged_df['采购单价'].round(4) # 四舍五入到4位小数,避免浮点误差 + # 四舍五入到4位小数,避免浮点误差导致相同价格被当作不同价格 + merged_df['采购单价'] = merged_df['采购单价'].round(4) # 对于同一条码和单价的商品,合并数量和赠送量 - grouped = merged_df.groupby(['条码', '采购单价'], as_index=False).agg({ + result = merged_df.groupby(['条码', '采购单价'], as_index=False).agg({ '采购量': 'sum', - '赠送量': lambda x: sum(x.dropna()) if len(x.dropna()) > 0 else pd.NA + '赠送量': 'sum' }) - # 计算其他信息 - grouped['采购金额'] = grouped['采购量'] * grouped['采购单价'] - # 排序,按条码升序 - result = grouped.sort_values('条码').reset_index(drop=True) + result = result.sort_values('条码').reset_index(drop=True) + + # 设置为0的赠送量设为空 + result.loc[result['赠送量'] == 0, '赠送量'] = pd.NA logger.info(f"合并完成,共 {len(result)} 条商品记录") return result def create_merged_purchase_order(self, df: pd.DataFrame) -> Optional[str]: """ - 创建合并的采购单文件 + 创建合并的采购单文件,完全按照银豹格式要求 Args: df: 合并后的数据帧 @@ -289,39 +335,55 @@ class PurchaseOrderMerger: template_workbook = xlrd.open_workbook(self.template_path, formatting_info=True) template_sheet = template_workbook.sheet_by_index(0) + # 首先分析模板结构,确定关键列的位置 + logger.info(f"分析模板结构") + for i in range(min(5, template_sheet.nrows)): + row_values = [str(cell.value).strip() for cell in template_sheet.row(i)] + logger.debug(f"模板第{i+1}行: {row_values}") + + # 银豹模板的标准列位置: + # 条码列(商品条码): B列(索引1) + barcode_col = 1 + # 采购量列: C列(索引2) + quantity_col = 2 + # 赠送量列: D列(索引3) + gift_col = 3 + # 采购单价列: E列(索引4) + price_col = 4 + + # 找到数据开始行 - 通常是第二行(索引1) + data_start_row = 1 + # 创建可写的副本 output_workbook = xlcopy(template_workbook) output_sheet = output_workbook.get_sheet(0) - # 填充商品信息 - start_row = 4 # 从第5行开始填充数据(索引从0开始) + # 设置单价的格式样式(保留4位小数) + price_style = xlwt.XFStyle() + price_style.num_format_str = '0.0000' + # 数量格式 + quantity_style = xlwt.XFStyle() + quantity_style.num_format_str = '0' + + # 遍历数据并填充到Excel for i, (_, row) in enumerate(df.iterrows()): - r = start_row + i + r = data_start_row + i - # 序号 - output_sheet.write(r, 0, i + 1) - # 商品编码(条码) - output_sheet.write(r, 1, row['条码']) - # 商品名称(合并单没有名称信息,留空) - output_sheet.write(r, 2, "") - # 规格(合并单没有规格信息,留空) - output_sheet.write(r, 3, "") - # 单位(合并单没有单位信息,留空) - output_sheet.write(r, 4, "") - # 单价 - output_sheet.write(r, 5, row['采购单价']) - # 采购数量 - output_sheet.write(r, 6, row['采购量']) - # 采购金额 - output_sheet.write(r, 7, row['采购金额']) - # 税率 - output_sheet.write(r, 8, 0) - # 赠送量 - if pd.notna(row['赠送量']): - output_sheet.write(r, 9, row['赠送量']) - else: - output_sheet.write(r, 9, "") + # 只填充银豹采购单格式要求的4个列:条码、采购量、赠送量、采购单价 + + # 条码(必填)- B列(1) + output_sheet.write(r, barcode_col, row['条码']) + + # 采购量(必填)- C列(2) + output_sheet.write(r, quantity_col, float(row['采购量']), quantity_style) + + # 赠送量 - D列(3) + if pd.notna(row['赠送量']) and float(row['赠送量']) > 0: + output_sheet.write(r, gift_col, float(row['赠送量']), quantity_style) + + # 采购单价(必填)- E列(4) + output_sheet.write(r, price_col, float(row['采购单价']), price_style) # 生成输出文件名 timestamp = datetime.now().strftime("%Y%m%d%H%M%S") @@ -329,7 +391,7 @@ class PurchaseOrderMerger: # 保存文件 output_workbook.save(output_file) - logger.info(f"合并采购单已保存到: {output_file}") + logger.info(f"合并采购单已保存到: {output_file},共{len(df)}条记录") return output_file except Exception as e: diff --git a/app/core/excel/processor.py b/app/core/excel/processor.py index 00902d0..3609d3a 100644 --- a/app/core/excel/processor.py +++ b/app/core/excel/processor.py @@ -255,12 +255,22 @@ class ExcelProcessor: 'barcode': barcode, 'name': str(row[column_mapping['name']]) if column_mapping.get('name') else '', 'quantity': quantity_value, - 'price': float(row[column_mapping['price']]) if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]) else 0, + 'price': 0, 'unit': str(row[column_mapping['unit']]) if column_mapping.get('unit') and not pd.isna(row[column_mapping['unit']]) else '', 'specification': '', 'package_quantity': None } + # 处理价格字段 - 清理可能的换行符和空格 + if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]): + price_str = str(row[column_mapping['price']]) + # 清理换行符、空格并替换逗号 + price_str = price_str.replace('\n', '').replace(' ', '').replace(',', '.') + try: + product['price'] = float(price_str) + except ValueError: + logger.warning(f"价格转换失败,原始值: '{price_str}',使用默认值0") + # 清理单位 if product['unit'] == 'nan' or product['unit'] == 'None': product['unit'] = '' diff --git a/logs/__main__.log b/logs/__main__.log index 5d1d9ac..b882748 100644 --- a/logs/__main__.log +++ b/logs/__main__.log @@ -198,3 +198,71 @@ 2025-05-02 22:40:56,996 - __main__ - INFO - 发现 1 个采购单文件 2025-05-02 22:40:56,996 - __main__ - WARNING - 只有1个采购单文件 D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls,无需合并 2025-05-02 22:40:56,996 - __main__ - INFO - === 完整流程处理成功(只有一个文件,跳过合并)=== +2025-05-03 12:54:57,235 - __main__ - INFO - === 流程步骤 1: OCR识别 === +2025-05-03 12:54:57,236 - __main__ - INFO - 批量处理所有图片 +2025-05-03 12:55:00,228 - __main__ - INFO - OCR处理完成,总计: 1,成功: 1 +2025-05-03 12:55:00,228 - __main__ - INFO - === 流程步骤 2: Excel处理 === +2025-05-03 12:55:00,229 - __main__ - INFO - 处理最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx +2025-05-03 12:55:14,451 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls +2025-05-03 12:55:14,451 - __main__ - INFO - === 流程步骤 3: 订单合并 === +2025-05-03 12:55:14,452 - __main__ - INFO - 发现 1 个采购单文件 +2025-05-03 12:55:14,452 - __main__ - WARNING - 只有1个采购单文件 D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls,无需合并 +2025-05-03 12:55:14,452 - __main__ - INFO - === 完整流程处理成功(只有一个文件,跳过合并)=== +2025-05-03 14:44:17,320 - __main__ - INFO - === 流程步骤 1: OCR识别 === +2025-05-03 14:44:17,320 - __main__ - INFO - 批量处理所有图片 +2025-05-03 14:44:19,916 - __main__ - INFO - OCR处理完成,总计: 1,成功: 1 +2025-05-03 14:44:19,917 - __main__ - INFO - === 流程步骤 2: Excel处理 === +2025-05-03 14:44:19,921 - __main__ - INFO - 处理最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx +2025-05-03 14:44:26,125 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls +2025-05-03 14:44:26,125 - __main__ - INFO - === 流程步骤 3: 订单合并 === +2025-05-03 14:44:26,125 - __main__ - INFO - 发现 2 个采购单文件 +2025-05-03 14:44:26,126 - __main__ - INFO - 合并所有采购单文件: 2 个 +2025-05-03 14:44:30,400 - __main__ - ERROR - 订单合并失败 +2025-05-03 14:45:44,522 - __main__ - INFO - 批量处理模式 +2025-05-03 14:45:47,101 - __main__ - INFO - 批量处理完成,总计: 1,成功: 1 +2025-05-03 14:45:58,809 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503144404.xlsx +2025-05-03 14:46:03,478 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls +2025-05-03 14:53:52,353 - __main__ - INFO - === 流程步骤 1: OCR识别 === +2025-05-03 14:53:52,354 - __main__ - INFO - 批量处理所有图片 +2025-05-03 14:53:54,304 - __main__ - INFO - OCR处理完成,总计: 1,成功: 1 +2025-05-03 14:53:54,304 - __main__ - INFO - === 流程步骤 2: Excel处理 === +2025-05-03 14:53:54,305 - __main__ - INFO - 处理最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx +2025-05-03 14:53:55,098 - __main__ - ERROR - Excel处理失败 +2025-05-03 15:43:36,733 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503145328.xlsx +2025-05-03 15:43:37,414 - __main__ - ERROR - Excel处理失败 +2025-05-05 18:55:02,303 - __main__ - INFO - === 流程步骤 1: OCR识别 === +2025-05-05 18:55:02,304 - __main__ - INFO - 批量处理所有图片 +2025-05-05 18:55:04,011 - __main__ - INFO - OCR处理完成,总计: 1,成功: 1 +2025-05-05 18:55:04,012 - __main__ - INFO - === 流程步骤 2: Excel处理 === +2025-05-05 18:55:04,014 - __main__ - INFO - 处理最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx +2025-05-05 18:55:13,152 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185454.xls +2025-05-05 18:55:13,152 - __main__ - INFO - === 流程步骤 3: 订单合并 === +2025-05-05 18:55:13,153 - __main__ - INFO - 发现 1 个采购单文件 +2025-05-05 18:55:13,153 - __main__ - WARNING - 只有1个采购单文件 D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185454.xls,无需合并 +2025-05-05 18:55:13,153 - __main__ - INFO - === 完整流程处理成功(只有一个文件,跳过合并)=== +2025-05-05 18:59:17,853 - __main__ - INFO - 批量处理模式 +2025-05-05 18:59:23,223 - __main__ - INFO - 批量处理完成,总计: 2,成功: 2 +2025-05-05 19:00:26,075 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185842.xlsx +2025-05-05 19:00:44,019 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:02:32,169 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:02:44,931 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:02:54,875 - __main__ - INFO - 合并所有采购单文件: 2 个 +2025-05-05 19:02:54,901 - __main__ - ERROR - 订单合并失败 +2025-05-05 19:15:12,554 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:15:22,303 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:18:54,542 - __main__ - INFO - 合并所有采购单文件: 2 个 +2025-05-05 19:18:54,840 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505191854.xls +2025-05-05 19:19:59,315 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:20:09,861 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:22:18,533 - __main__ - INFO - 处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:22:28,611 - __main__ - INFO - Excel处理成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:22:37,226 - __main__ - INFO - 合并所有采购单文件: 2 个 +2025-05-05 19:22:37,407 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192237.xls +2025-05-05 19:28:36,770 - __main__ - INFO - 合并所有采购单文件: 2 个 +2025-05-05 19:28:36,856 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192836.xls +2025-05-05 19:29:16,917 - __main__ - INFO - 合并所有采购单文件: 2 个 +2025-05-05 19:29:17,073 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192917.xls +2025-05-05 19:30:06,156 - __main__ - INFO - 合并所有采购单文件: 2 个 +2025-05-05 19:30:06,305 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505193006.xls +2025-05-05 19:30:28,309 - __main__ - INFO - 合并所有采购单文件: 2 个 +2025-05-05 19:30:28,426 - __main__ - INFO - 订单合并成功,输出文件: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505193028.xls diff --git a/logs/app.core.excel.converter.log b/logs/app.core.excel.converter.log index 1abe662..b3d5efd 100644 --- a/logs/app.core.excel.converter.log +++ b/logs/app.core.excel.converter.log @@ -653,3 +653,335 @@ 2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 从名称推断规格(容量): 12.9L桶装水 -> 12.9L*1 2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 解析容量规格: 12.9L*1 -> 12.9L*1 2025-05-02 22:40:53,274 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 0.0, 单位: 桶 +2025-05-03 12:55:01,092 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 3箱 -> 数量=3.0, 单位=箱 +2025-05-03 12:55:01,093 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 550纯净水24入白膜 -> 1*24 +2025-05-03 12:55:01,094 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-03 12:55:01,094 - app.core.excel.converter - INFO - 箱单位处理: 数量: 3.0 -> 72.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶 +2025-05-03 12:55:01,094 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 12:55:01,095 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 450果园30%橙子15入纸箱 -> 1*15 +2025-05-03 12:55:01,095 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:01,095 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶 +2025-05-03 12:55:01,095 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱 +2025-05-03 12:55:01,096 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 445水溶C血橙15入纸箱 -> 1*15 +2025-05-03 12:55:01,096 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:01,096 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 30.0, 单价: 56.0 -> 3.7333333333333334, 单位: 箱 -> 瓶 +2025-05-03 12:55:01,264 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱 +2025-05-03 12:55:01,265 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 445水溶C柠檬15纸箱 -> 1*15 +2025-05-03 12:55:01,265 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:01,266 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 30.0, 单价: 56.0 -> 3.7333333333333334, 单位: 箱 -> 瓶 +2025-05-03 12:55:01,266 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 3箱 -> 数量=3.0, 单位=箱 +2025-05-03 12:55:01,266 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 445水溶C青皮桔15纸箱 -> 1*15 +2025-05-03 12:55:01,267 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:01,267 - app.core.excel.converter - INFO - 箱单位处理: 数量: 3.0 -> 45.0, 单价: 56.0 -> 3.7333333333333334, 单位: 箱 -> 瓶 +2025-05-03 12:55:01,268 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 12:55:01,269 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 445水溶C西柚15纸箱 -> 1*15 +2025-05-03 12:55:01,269 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:01,269 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 56.0 -> 3.7333333333333334, 单位: 箱 -> 瓶 +2025-05-03 12:55:01,270 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 3箱 -> 数量=3.0, 单位=箱 +2025-05-03 12:55:01,270 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 500树叶茉莉花茶15纸箱 -> 1*15 +2025-05-03 12:55:01,271 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:01,271 - app.core.excel.converter - INFO - 箱单位处理: 数量: 3.0 -> 45.0, 单价: 55.0 -> 3.6666666666666665, 单位: 箱 -> 瓶 +2025-05-03 12:55:01,271 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 12:55:06,817 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 500树叶乌龙茶15纸箱 -> 1*15 +2025-05-03 12:55:06,817 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:06,818 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 55.0 -> 3.6666666666666665, 单位: 箱 -> 瓶 +2025-05-03 12:55:06,818 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱 +2025-05-03 12:55:06,818 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 500树叶绿茶15纸箱 -> 1*15 +2025-05-03 12:55:06,819 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:06,819 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 30.0, 单价: 55.0 -> 3.6666666666666665, 单位: 箱 -> 瓶 +2025-05-03 12:55:06,819 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 12:55:06,820 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 900树叶青柑普洱12入纸箱 -> 1*12 +2025-05-03 12:55:06,820 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-03 12:55:06,820 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 12.0, 单价: 62.0 -> 5.166666666666667, 单位: 箱 -> 瓶 +2025-05-03 12:55:06,821 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 12:55:06,821 - app.core.excel.converter - INFO - 从名称推断规格(纸箱): 410苏打天然水柠檬15纸箱 -> 1*15 +2025-05-03 12:55:06,821 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 12:55:06,821 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 43.0 -> 2.8666666666666667, 单位: 箱 -> 瓶 +2025-05-03 12:55:06,822 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 5桶 -> 数量=5.0, 单位=桶 +2025-05-03 12:55:06,823 - app.core.excel.converter - INFO - 从名称推断规格(容量): 12.9L桶装水 -> 12.9L*1 +2025-05-03 12:55:10,474 - app.core.excel.converter - INFO - 解析容量规格: 12.9L*1 -> 12.9L*1 +2025-05-03 12:55:10,474 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 16.0, 单位: 桶 +2025-05-03 12:55:10,474 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1桶 -> 数量=1.0, 单位=桶 +2025-05-03 12:55:10,475 - app.core.excel.converter - INFO - 从名称推断规格(容量): 12.9L桶装水 -> 12.9L*1 +2025-05-03 12:55:10,475 - app.core.excel.converter - INFO - 解析容量规格: 12.9L*1 -> 12.9L*1 +2025-05-03 12:55:10,475 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 0.0, 单位: 桶 +2025-05-03 14:44:20,723 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:44:20,726 - app.core.excel.converter - INFO - 从名称推断规格(白膜): 550水24白膜 -> 1*24 +2025-05-03 14:44:20,728 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-03 14:44:20,728 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 24.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶 +2025-05-03 14:44:20,729 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱 +2025-05-03 14:44:20,729 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶茉莉花茶6入纸箱装 -> 1*6 +2025-05-03 14:44:20,729 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6 +2025-05-03 14:44:20,730 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 12.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶 +2025-05-03 14:44:20,730 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:44:20,730 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶乌龙茶6入纸箱装 -> 1*6 +2025-05-03 14:44:20,731 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6 +2025-05-03 14:44:20,731 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 6.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶 +2025-05-03 14:44:20,939 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:44:20,939 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶青柑普洱茶6入纸箱装 -> 1*6 +2025-05-03 14:44:20,939 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6 +2025-05-03 14:44:20,940 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 6.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶 +2025-05-03 14:44:20,940 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:44:20,941 - app.core.excel.converter - INFO - 从名称推断规格(直接格式): 410-农夫山泉-原味1*15-纸箱装 -> 1*15 +2025-05-03 14:44:20,941 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 14:44:20,941 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 43.0 -> 2.8666666666666667, 单位: 箱 -> 瓶 +2025-05-03 14:44:20,942 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 5箱 -> 数量=5.0, 单位=箱 +2025-05-03 14:44:20,942 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 5L水4入白膜 -> 1*4 +2025-05-03 14:44:20,943 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4 +2025-05-03 14:44:20,943 - app.core.excel.converter - INFO - 箱单位处理: 数量: 5.0 -> 20.0, 单价: 29.0 -> 7.25, 单位: 箱 -> 瓶 +2025-05-03 14:44:20,944 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:44:20,944 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 5L水4入白膜 -> 1*4 +2025-05-03 14:44:20,944 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4 +2025-05-03 14:44:20,944 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 4.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶 +2025-05-03 14:45:59,495 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:45:59,496 - app.core.excel.converter - INFO - 从名称推断规格(白膜): 550水24白膜 -> 1*24 +2025-05-03 14:45:59,498 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-03 14:45:59,499 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 24.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶 +2025-05-03 14:45:59,499 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 2箱 -> 数量=2.0, 单位=箱 +2025-05-03 14:45:59,500 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶茉莉花茶6入纸箱装 -> 1*6 +2025-05-03 14:45:59,500 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6 +2025-05-03 14:45:59,500 - app.core.excel.converter - INFO - 箱单位处理: 数量: 2.0 -> 12.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶 +2025-05-03 14:45:59,501 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:45:59,502 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶乌龙茶6入纸箱装 -> 1*6 +2025-05-03 14:45:59,502 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6 +2025-05-03 14:45:59,503 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 6.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶 +2025-05-03 14:45:59,535 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:45:59,535 - app.core.excel.converter - INFO - 从名称推断规格(入纸箱): 1.5树叶青柑普洱茶6入纸箱装 -> 1*6 +2025-05-03 14:45:59,535 - app.core.excel.converter - INFO - 解析二级规格: 1*6 -> 1*6 +2025-05-03 14:45:59,535 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 6.0, 单价: 50.0 -> 8.333333333333334, 单位: 箱 -> 瓶 +2025-05-03 14:45:59,536 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:45:59,536 - app.core.excel.converter - INFO - 从名称推断规格(直接格式): 410-农夫山泉-原味1*15-纸箱装 -> 1*15 +2025-05-03 14:45:59,536 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-03 14:45:59,536 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 15.0, 单价: 43.0 -> 2.8666666666666667, 单位: 箱 -> 瓶 +2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 5箱 -> 数量=5.0, 单位=箱 +2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 5L水4入白膜 -> 1*4 +2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4 +2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 箱单位处理: 数量: 5.0 -> 20.0, 单价: 29.0 -> 7.25, 单位: 箱 -> 瓶 +2025-05-03 14:45:59,537 - app.core.excel.converter - INFO - 从数量提取单位(基本格式): 1箱 -> 数量=1.0, 单位=箱 +2025-05-03 14:45:59,538 - app.core.excel.converter - INFO - 从名称推断规格(入白膜): 5L水4入白膜 -> 1*4 +2025-05-03 14:45:59,538 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4 +2025-05-03 14:45:59,538 - app.core.excel.converter - INFO - 箱单位处理: 数量: 1.0 -> 4.0, 单价: 0.0 -> 0, 单位: 箱 -> 瓶 +2025-05-05 18:55:05,289 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 18:55:05,289 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 24.0, 单价: 40.0 -> 1.6666666666666667, 单位: 件 -> 瓶 +2025-05-05 18:55:05,290 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-05 18:55:05,291 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 50.0 -> 3.3333333333333335, 单位: 件 -> 瓶 +2025-05-05 18:55:05,291 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-05 18:55:05,291 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 50.0 -> 3.3333333333333335, 单位: 件 -> 瓶 +2025-05-05 18:55:05,293 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-05 18:55:05,293 - app.core.excel.converter - INFO - 件单位处理: 数量: 1.0 -> 15.0, 单价: 50.0 -> 3.3333333333333335, 单位: 件 -> 瓶 +2025-05-05 18:55:05,293 - app.core.excel.converter - INFO - 解析二级规格: 1*15 -> 1*15 +2025-05-05 18:55:05,294 - app.core.excel.converter - INFO - 件单位处理: 数量: 3.0 -> 45.0, 单价: 43.0 -> 2.8666666666666667, 单位: 件 -> 瓶 +2025-05-05 18:55:05,501 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 18:55:05,501 - app.core.excel.converter - INFO - 件单位处理: 数量: 5.0 -> 120.0, 单价: 22.0 -> 0.9166666666666666, 单位: 件 -> 瓶 +2025-05-05 18:55:05,502 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 18:55:05,502 - app.core.excel.converter - INFO - 件单位处理: 数量: 3.0 -> 72.0, 单价: 43.0 -> 1.7916666666666667, 单位: 件 -> 瓶 +2025-05-05 19:00:26,699 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:00:26,700 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 12.0, 单位: 包 +2025-05-05 19:00:26,704 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 19:00:26,704 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.0, 单位: 包 +2025-05-05 19:00:26,705 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96 +2025-05-05 19:00:26,705 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 2.4, 单位: 包 +2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 解析二级规格: 1*16 -> 1*16 +2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 6.0, 单价: 8.5, 单位: 提 +2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 解析二级规格: 1*16 -> 1*16 +2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 10.5, 单位: 提 +2025-05-05 19:00:26,706 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20 +2025-05-05 19:00:26,735 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 6.5, 单位: 提 +2025-05-05 19:00:26,736 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:00:26,736 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 12.5, 单位: 提 +2025-05-05 19:00:26,737 - app.core.excel.converter - INFO - 解析二级规格: 1*18 -> 1*18 +2025-05-05 19:00:26,737 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 8.5, 单位: 提 +2025-05-05 19:00:26,738 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20 +2025-05-05 19:00:26,738 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 8.5, 单位: 提 +2025-05-05 19:00:26,742 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:00:26,742 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.2, 单位: 包 +2025-05-05 19:00:26,743 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 19:00:26,743 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 7.5, 单位: 包 +2025-05-05 19:00:26,744 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 19:00:26,744 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.5, 单位: 包 +2025-05-05 19:00:26,745 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30 +2025-05-05 19:00:26,745 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.6, 单位: 包 +2025-05-05 19:00:30,734 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:00:30,735 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 包 +2025-05-05 19:00:30,735 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 19:00:30,736 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.0, 单位: 包 +2025-05-05 19:00:30,736 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:00:30,736 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.2, 单位: 包 +2025-05-05 19:00:30,737 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2025-05-05 19:00:30,737 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 2.8, 单位: 包 +2025-05-05 19:00:30,738 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:00:30,738 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 6.2, 单位: 包 +2025-05-05 19:00:30,739 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 19:00:30,739 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 6.0, 单位: 包 +2025-05-05 19:00:30,741 - app.core.excel.converter - INFO - 解析二级规格: 1*60 -> 1*60 +2025-05-05 19:00:30,741 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 2.3, 单位: 包 +2025-05-05 19:00:30,741 - app.core.excel.converter - INFO - 解析二级规格: 1*24 -> 1*24 +2025-05-05 19:00:30,742 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.6, 单位: 包 +2025-05-05 19:00:34,622 - app.core.excel.converter - INFO - 解析二级规格: 1*16 -> 1*16 +2025-05-05 19:00:34,622 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 6.2, 单位: 包 +2025-05-05 19:00:34,623 - app.core.excel.converter - INFO - 解析二级规格: 1*36 -> 1*36 +2025-05-05 19:00:34,623 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 5.6, 单位: 包 +2025-05-05 19:00:34,624 - app.core.excel.converter - INFO - 解析二级规格: 1*72 -> 1*72 +2025-05-05 19:00:34,624 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 1.2, 单位: 个 +2025-05-05 19:00:34,625 - app.core.excel.converter - WARNING - 无法解析规格: 380g,使用默认值1*1 +2025-05-05 19:00:34,625 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶 +2025-05-05 19:00:34,625 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:00:34,626 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 14.5, 单位: 瓶 +2025-05-05 19:00:34,626 - app.core.excel.converter - INFO - 解析二级规格: 1*1 -> 1*1 +2025-05-05 19:00:34,626 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 16.5, 单位: 瓶 +2025-05-05 19:02:32,865 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:02:32,865 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶 +2025-05-05 19:02:32,865 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶 +2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶 +2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4 +2025-05-05 19:02:32,866 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 32.5, 单位: 瓶 +2025-05-05 19:02:32,867 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:02:32,867 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.5, 单位: 袋 +2025-05-05 19:02:32,926 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2025-05-05 19:02:32,926 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒 +2025-05-05 19:02:32,927 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2025-05-05 19:02:32,927 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒 +2025-05-05 19:02:32,927 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:02:32,927 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双 +2025-05-05 19:02:32,934 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:02:32,934 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 瓶 +2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 11.5, 单位: 瓶 +2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 15.18, 单位: 套 +2025-05-05 19:02:32,935 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20 +2025-05-05 19:02:32,936 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 22.1, 单位: 套 +2025-05-05 19:02:32,936 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80 +2025-05-05 19:02:36,892 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.37, 单位: 瓶 +2025-05-05 19:02:36,893 - app.core.excel.converter - INFO - 解析二级规格: 1*60 -> 1*60 +2025-05-05 19:02:36,893 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 1.0, 单价: 112.0, 单位: 盒 +2025-05-05 19:02:36,894 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96 +2025-05-05 19:02:36,894 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 15.5, 单位: 盒 +2025-05-05 19:02:36,894 - app.core.excel.converter - INFO - 解析二级规格: 1*5 -> 1*5 +2025-05-05 19:02:36,894 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 10.0, 单位: 板 +2025-05-05 19:02:36,895 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:02:36,895 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.5, 单位: 个 +2025-05-05 19:02:36,896 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2025-05-05 19:02:36,896 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 个 +2025-05-05 19:15:13,224 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:15:13,225 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶 +2025-05-05 19:15:13,225 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:15:13,226 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶 +2025-05-05 19:15:13,226 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:15:13,227 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶 +2025-05-05 19:15:13,229 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4 +2025-05-05 19:15:13,229 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 32.5, 单位: 瓶 +2025-05-05 19:15:13,229 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:15:13,230 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.5, 单位: 袋 +2025-05-05 19:15:13,232 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2025-05-05 19:15:13,232 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒 +2025-05-05 19:15:13,233 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2025-05-05 19:15:13,233 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒 +2025-05-05 19:15:13,234 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:15:13,234 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双 +2025-05-05 19:15:13,242 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:15:13,242 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 瓶 +2025-05-05 19:15:13,243 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:15:13,243 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 11.5, 单位: 瓶 +2025-05-05 19:15:13,244 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2025-05-05 19:15:13,245 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 15.18, 单位: 套 +2025-05-05 19:15:13,246 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20 +2025-05-05 19:15:13,246 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 22.1, 单位: 套 +2025-05-05 19:15:16,010 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80 +2025-05-05 19:15:16,011 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.37, 单位: 瓶 +2025-05-05 19:15:16,013 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定单价: 3.7333333333333334 +2025-05-05 19:15:16,013 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30 +2025-05-05 19:15:16,013 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定规格: 1*30, 包装数量=(1, 30, None) +2025-05-05 19:15:16,013 - app.core.excel.converter - INFO - 特殊条码处理: 6901826888138, 数量: 1.0 -> 30.0, 单价: 112.0 -> 3.7333333333333334, 单位: 盒 -> 瓶 +2025-05-05 19:15:16,014 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96 +2025-05-05 19:15:16,014 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 15.5, 单位: 盒 +2025-05-05 19:15:16,015 - app.core.excel.converter - INFO - 解析二级规格: 1*5 -> 1*5 +2025-05-05 19:15:16,015 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 10.0, 单位: 板 +2025-05-05 19:15:16,015 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:15:16,015 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.5, 单位: 个 +2025-05-05 19:15:16,016 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2025-05-05 19:15:16,016 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 个 +2025-05-05 19:20:00,079 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:20:00,081 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶 +2025-05-05 19:20:00,082 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:20:00,082 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶 +2025-05-05 19:20:00,082 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:20:00,113 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶 +2025-05-05 19:20:00,118 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4 +2025-05-05 19:20:00,118 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 32.5, 单位: 瓶 +2025-05-05 19:20:00,119 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:20:00,119 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.5, 单位: 袋 +2025-05-05 19:20:00,121 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2025-05-05 19:20:00,121 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒 +2025-05-05 19:20:00,122 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2025-05-05 19:20:00,122 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒 +2025-05-05 19:20:00,123 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:20:00,123 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双 +2025-05-05 19:20:00,139 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:20:00,139 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 瓶 +2025-05-05 19:20:00,141 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:20:00,141 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 11.5, 单位: 瓶 +2025-05-05 19:20:01,512 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2025-05-05 19:20:01,512 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 15.18, 单位: 套 +2025-05-05 19:20:01,513 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20 +2025-05-05 19:20:01,513 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 22.1, 单位: 套 +2025-05-05 19:20:01,514 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80 +2025-05-05 19:20:01,514 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.37, 单位: 瓶 +2025-05-05 19:20:01,515 - app.core.excel.converter - INFO - 解析二级规格: 1*10 -> 1*10 +2025-05-05 19:20:01,515 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 1.0, 单价: 296.0, 单位: 盒 +2025-05-05 19:20:01,515 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定单价: 3.7333333333333334 +2025-05-05 19:20:01,516 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30 +2025-05-05 19:20:01,516 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定规格: 1*30, 包装数量=(1, 30, None) +2025-05-05 19:20:01,516 - app.core.excel.converter - INFO - 特殊条码处理: 6901826888138, 数量: 1.0 -> 30.0, 单价: 112.0 -> 3.7333333333333334, 单位: 盒 -> 瓶 +2025-05-05 19:20:01,517 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96 +2025-05-05 19:20:01,517 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 15.5, 单位: 盒 +2025-05-05 19:20:01,517 - app.core.excel.converter - INFO - 解析二级规格: 1*5 -> 1*5 +2025-05-05 19:20:01,518 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 10.0, 单位: 板 +2025-05-05 19:20:01,519 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:20:01,519 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.5, 单位: 个 +2025-05-05 19:20:01,519 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2025-05-05 19:20:04,679 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 个 +2025-05-05 19:22:19,763 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:22:19,763 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶 +2025-05-05 19:22:19,765 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:22:19,765 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 24.0, 单位: 瓶 +2025-05-05 19:22:19,770 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:22:19,770 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 19.0, 单位: 瓶 +2025-05-05 19:22:19,772 - app.core.excel.converter - INFO - 解析二级规格: 1*4 -> 1*4 +2025-05-05 19:22:19,773 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 32.5, 单位: 瓶 +2025-05-05 19:22:19,774 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:22:19,774 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 2.0, 单价: 12.5, 单位: 袋 +2025-05-05 19:22:19,776 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2025-05-05 19:22:19,777 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒 +2025-05-05 19:22:19,778 - app.core.excel.converter - INFO - 解析二级规格: 1*100 -> 1*100 +2025-05-05 19:22:19,778 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 2.0, 单价: 14.0, 单位: 盒 +2025-05-05 19:22:19,823 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:22:19,823 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双 +2025-05-05 19:22:19,824 - app.core.excel.converter - INFO - 解析二级规格: 1*12 -> 1*12 +2025-05-05 19:22:19,824 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 12.0, 单价: 6.0, 单位: 双 +2025-05-05 19:22:19,825 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:22:19,825 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 11.5, 单位: 瓶 +2025-05-05 19:22:19,826 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:22:19,826 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 11.5, 单位: 瓶 +2025-05-05 19:22:19,827 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2025-05-05 19:22:19,827 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 15.18, 单位: 套 +2025-05-05 19:22:19,829 - app.core.excel.converter - INFO - 解析二级规格: 1*20 -> 1*20 +2025-05-05 19:22:19,829 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 22.1, 单位: 套 +2025-05-05 19:22:19,831 - app.core.excel.converter - INFO - 解析二级规格: 1*80 -> 1*80 +2025-05-05 19:22:19,831 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 5.0, 单价: 10.37, 单位: 瓶 +2025-05-05 19:22:19,831 - app.core.excel.converter - INFO - 解析二级规格: 1*10 -> 1*10 +2025-05-05 19:22:19,831 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 1.0, 单价: 296.0, 单位: 盒 +2025-05-05 19:22:19,833 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定单价: 3.7333333333333334 +2025-05-05 19:22:19,833 - app.core.excel.converter - INFO - 解析二级规格: 1*30 -> 1*30 +2025-05-05 19:22:22,721 - app.core.excel.converter - INFO - 特殊条码(6901826888138)使用固定规格: 1*30, 包装数量=(1, 30, None) +2025-05-05 19:22:22,721 - app.core.excel.converter - INFO - 特殊条码处理: 6901826888138, 数量: 1.0 -> 30.0, 单价: 112.0 -> 3.7333333333333334, 单位: 盒 -> 瓶 +2025-05-05 19:22:22,721 - app.core.excel.converter - INFO - 解析二级规格: 1*96 -> 1*96 +2025-05-05 19:22:22,723 - app.core.excel.converter - INFO - 提/盒单位(二级规格)处理: 保持原样 数量: 3.0, 单价: 15.5, 单位: 盒 +2025-05-05 19:22:22,723 - app.core.excel.converter - INFO - 解析二级规格: 1*5 -> 1*5 +2025-05-05 19:22:22,723 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 1.0, 单价: 10.0, 单位: 板 +2025-05-05 19:22:22,723 - app.core.excel.converter - INFO - 解析二级规格: 1*48 -> 1*48 +2025-05-05 19:22:22,724 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 4.5, 单位: 个 +2025-05-05 19:22:22,724 - app.core.excel.converter - INFO - 解析二级规格: 1*40 -> 1*40 +2025-05-05 19:22:22,724 - app.core.excel.converter - INFO - 其他单位处理: 保持原样 数量: 3.0, 单价: 3.6, 单位: 个 diff --git a/logs/app.core.excel.merger.log b/logs/app.core.excel.merger.log index 35a0c9e..6daf103 100644 --- a/logs/app.core.excel.merger.log +++ b/logs/app.core.excel.merger.log @@ -182,3 +182,222 @@ 2025-05-02 22:40:41,147 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls 2025-05-02 22:40:56,995 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 2025-05-02 22:40:56,996 - app.core.excel.merger - INFO - 找到 1 个采购单Excel文件 +2025-05-03 12:54:57,233 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-03 12:54:57,235 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 12:55:14,451 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-03 12:55:14,452 - app.core.excel.merger - INFO - 找到 1 个采购单Excel文件 +2025-05-03 14:44:17,319 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-03 14:44:17,319 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 14:44:26,125 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-03 14:44:26,125 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-03 14:44:26,126 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-03 14:44:26,126 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-03 14:44:26,131 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls +2025-05-03 14:44:26,133 - app.core.excel.merger - INFO - 列名映射结果: {'条码': '条码(必填)', '采购量': '采购量(必填)', '采购单价': '采购单价(必填)', '赠送量': '赠送量'} +2025-05-03 14:44:30,398 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls +2025-05-03 14:44:30,399 - app.core.excel.merger - INFO - 列名映射结果: {'条码': '条码(必填)', '采购量': '采购量(必填)', '采购单价': '采购单价(必填)', '赠送量': '赠送量'} +2025-05-03 14:44:30,399 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件 +2025-05-03 14:44:30,399 - app.core.excel.merger - WARNING - 数据帧 0 缺少必要的列: ['条码', '采购量', '采购单价'] +2025-05-03 14:44:30,399 - app.core.excel.merger - WARNING - 数据帧 1 缺少必要的列: ['条码', '采购量', '采购单价'] +2025-05-03 14:44:30,399 - app.core.excel.merger - WARNING - 没有有效的数据帧用于合并 +2025-05-03 14:44:30,400 - app.core.excel.merger - ERROR - 合并采购单失败 +2025-05-03 14:45:44,521 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-03 14:45:44,521 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 14:45:58,808 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-03 14:45:58,809 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 14:53:52,352 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-03 14:53:52,353 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 15:43:36,732 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-03 15:43:36,733 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 18:55:02,301 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 18:55:02,303 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 18:55:13,152 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 18:55:13,153 - app.core.excel.merger - INFO - 找到 1 个采购单Excel文件 +2025-05-05 18:59:17,851 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 18:59:17,851 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:00:26,074 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:00:26,075 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:02:32,167 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:02:32,168 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:02:54,873 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:02:54,873 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:02:54,874 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:02:54,874 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:02:54,875 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:02:54,878 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:02:54,888 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:02:54,894 - app.core.excel.merger - INFO - 列名映射结果: {'条码': '条码(必填)', '采购量': '采购量(必填)', '采购单价': '采购单价(必填)', '赠送量': '赠送量'} +2025-05-05 19:02:54,899 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:02:54,900 - app.core.excel.merger - INFO - 列名映射结果: {'条码': '条码(必填)', '采购量': '采购量(必填)', '采购单价': '采购单价(必填)', '赠送量': '赠送量'} +2025-05-05 19:02:54,900 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件 +2025-05-05 19:02:54,901 - app.core.excel.merger - WARNING - 数据帧 0 缺少必要的列: ['条码', '采购量', '采购单价'] +2025-05-05 19:02:54,901 - app.core.excel.merger - WARNING - 数据帧 1 缺少必要的列: ['条码', '采购量', '采购单价'] +2025-05-05 19:02:54,901 - app.core.excel.merger - WARNING - 没有有效的数据帧用于合并 +2025-05-05 19:02:54,901 - app.core.excel.merger - ERROR - 合并采购单失败 +2025-05-05 19:15:12,553 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:15:12,554 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:18:54,516 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:18:54,519 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:18:54,538 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:18:54,540 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:18:54,548 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:18:54,551 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:18:54,617 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:18:54,620 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:18:54,620 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:18:54,625 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:18:54,631 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:18:54,635 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:18:54,635 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:18:54,638 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:18:54,650 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:18:54,655 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:18:54,655 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:18:54,656 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:18:54,658 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:18:54,668 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:18:54,669 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:18:54,679 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:18:54,681 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件 +2025-05-05 19:18:54,758 - app.core.excel.merger - INFO - 合并完成,共 46 条商品记录 +2025-05-05 19:18:54,835 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505191854.xls +2025-05-05 19:19:59,314 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:19:59,314 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:22:18,527 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:22:18,530 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:22:37,220 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:22:37,221 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:22:37,223 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:22:37,226 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:22:37,227 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:22:37,234 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:22:37,242 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:22:37,249 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:22:37,250 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:22:37,250 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:22:37,251 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:22:37,251 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:22:37,251 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:22:37,253 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:22:37,272 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:22:37,284 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:22:37,284 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:22:37,284 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:22:37,285 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:22:37,285 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:22:37,286 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:22:37,287 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:22:37,287 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件 +2025-05-05 19:22:37,338 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录 +2025-05-05 19:22:37,403 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192237.xls +2025-05-05 19:28:36,767 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:28:36,768 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:28:36,769 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:28:36,770 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:28:36,771 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:28:36,773 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:28:36,781 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:28:36,783 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:28:36,784 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:28:36,785 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:28:36,785 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:28:36,786 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:28:36,786 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:28:36,787 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:28:36,795 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:28:36,797 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:28:36,797 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:28:36,797 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:28:36,798 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:28:36,798 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:28:36,798 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:28:36,799 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:28:36,800 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件 +2025-05-05 19:28:36,807 - app.core.excel.merger - INFO - 处理文件 1: 有效记录 20 行 +2025-05-05 19:28:36,817 - app.core.excel.merger - INFO - 处理文件 2: 有效记录 27 行 +2025-05-05 19:28:36,830 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录 +2025-05-05 19:28:36,853 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192836.xls +2025-05-05 19:29:16,909 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:29:16,912 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:29:16,913 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:29:16,916 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:29:16,918 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:29:16,922 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:29:16,941 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:29:16,946 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:29:16,946 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:29:16,947 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:29:16,947 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:29:16,948 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:29:16,948 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:29:16,950 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:29:16,957 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:29:16,961 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:29:16,962 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:29:16,963 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:29:16,964 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:29:16,964 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:29:16,971 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:29:16,975 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:29:16,976 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件 +2025-05-05 19:29:16,988 - app.core.excel.merger - INFO - 处理文件 1: 有效记录 20 行 +2025-05-05 19:29:17,003 - app.core.excel.merger - INFO - 处理文件 2: 有效记录 27 行 +2025-05-05 19:29:17,020 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录 +2025-05-05 19:29:17,034 - app.core.excel.merger - INFO - 分析模板结构 +2025-05-05 19:29:17,068 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505192917.xls,共47条记录 +2025-05-05 19:30:06,154 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:30:06,154 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:30:06,155 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:30:06,156 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:30:06,156 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:30:06,157 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:30:06,166 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:30:06,173 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:30:06,178 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:30:06,179 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:30:06,180 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:30:06,180 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:30:06,182 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:30:06,183 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:30:06,198 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:30:06,200 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:30:06,202 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:30:06,202 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:30:06,202 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:30:06,203 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:30:06,204 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:30:06,205 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:30:06,205 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件 +2025-05-05 19:30:06,222 - app.core.excel.merger - INFO - 处理文件 1: 有效记录 20 行 +2025-05-05 19:30:06,236 - app.core.excel.merger - INFO - 处理文件 2: 有效记录 27 行 +2025-05-05 19:30:06,252 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录 +2025-05-05 19:30:06,268 - app.core.excel.merger - INFO - 分析模板结构 +2025-05-05 19:30:06,303 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505193006.xls,共47条记录 +2025-05-05 19:30:28,307 - app.core.excel.merger - INFO - 初始化PurchaseOrderMerger +2025-05-05 19:30:28,308 - app.core.excel.merger - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:30:28,308 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:30:28,308 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:30:28,309 - app.core.excel.merger - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的采购单Excel文件 +2025-05-05 19:30:28,311 - app.core.excel.merger - INFO - 找到 2 个采购单Excel文件 +2025-05-05 19:30:28,320 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:30:28,321 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:30:28,323 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:30:28,324 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:30:28,334 - app.core.excel.merger - INFO - 成功读取采购单文件: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:30:28,335 - app.core.excel.merger - INFO - 列名: ['商品名称', '条码(必填)', '采购量(必填)', '赠送量', '采购单价(必填)'] +2025-05-05 19:30:28,335 - app.core.excel.merger - INFO - 直接匹配列名: 条码(必填) -> 条码 +2025-05-05 19:30:28,335 - app.core.excel.merger - INFO - 直接匹配列名: 采购量(必填) -> 采购量 +2025-05-05 19:30:28,335 - app.core.excel.merger - INFO - 直接匹配列名: 采购单价(必填) -> 采购单价 +2025-05-05 19:30:28,336 - app.core.excel.merger - INFO - 直接匹配列名: 赠送量 -> 赠送量 +2025-05-05 19:30:28,336 - app.core.excel.merger - INFO - 列名重命名映射: {'条码(必填)': '条码', '采购量(必填)': '采购量', '采购单价(必填)': '采购单价', '赠送量': '赠送量'} +2025-05-05 19:30:28,337 - app.core.excel.merger - INFO - 重命名后的列名: ['商品名称', '条码', '采购量', '赠送量', '采购单价'] +2025-05-05 19:30:28,337 - app.core.excel.merger - INFO - 开始合并 2 个采购单文件 +2025-05-05 19:30:28,351 - app.core.excel.merger - INFO - 处理文件 1: 有效记录 20 行 +2025-05-05 19:30:28,358 - app.core.excel.merger - INFO - 处理文件 2: 有效记录 27 行 +2025-05-05 19:30:28,383 - app.core.excel.merger - INFO - 合并完成,共 47 条商品记录 +2025-05-05 19:30:28,391 - app.core.excel.merger - INFO - 分析模板结构 +2025-05-05 19:30:28,421 - app.core.excel.merger - INFO - 合并采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\合并采购单_20250505193028.xls,共47条记录 diff --git a/logs/app.core.excel.processor.log b/logs/app.core.excel.processor.log index 2d3c33f..e9fc06c 100644 --- a/logs/app.core.excel.processor.log +++ b/logs/app.core.excel.processor.log @@ -1799,3 +1799,1023 @@ ValueError: could not convert string to float: '1件' 2025-05-02 22:40:56,990 - app.core.excel.processor - INFO - 条码 6921168594054 填充:采购量=5.0,赠品数量1.0 2025-05-02 22:40:56,993 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls 2025-05-02 22:40:56,995 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls +2025-05-03 12:54:57,232 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-03 12:54:57,233 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 12:55:00,228 - app.core.excel.processor - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的Excel文件 +2025-05-03 12:55:00,229 - app.core.excel.processor - INFO - 找到最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx +2025-05-03 12:55:00,230 - app.core.excel.processor - INFO - 开始处理Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx +2025-05-03 12:55:01,063 - app.core.excel.processor - INFO - 成功读取Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx, 共 15 行 +2025-05-03 12:55:01,070 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 35 +2025-05-03 12:55:01,071 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-03 12:55:01,088 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 14 行有效数据 +2025-05-03 12:55:01,088 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条形码 +2025-05-03 12:55:01,088 - app.core.excel.processor - INFO - 使用条码列: 条形码 +2025-05-03 12:55:01,088 - app.core.excel.processor - INFO - 找到name列: 商品名称 +2025-05-03 12:55:01,088 - app.core.excel.processor - INFO - 找到quantity列: 订单数量 +2025-05-03 12:55:01,088 - app.core.excel.processor - INFO - 找到price列: 销售价 +2025-05-03 12:55:01,088 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条形码', 'name': '商品名称', 'quantity': '订单数量', 'price': '销售价'} +2025-05-03 12:55:01,091 - app.core.excel.processor - INFO - 是否存在规格列: False +2025-05-03 12:55:01,091 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6921168560509, 名称=550纯净水24入白膜, 规格=, 数量=3.0, 单位=, 单价=0.0 +2025-05-03 12:55:01,092 - app.core.excel.processor - INFO - 从数量提取单位: 3箱 -> 箱 +2025-05-03 12:55:01,093 - app.core.excel.processor - INFO - 从商品名称推断规格: 550纯净水24入白膜 -> 1*24, 包装数量=24 +2025-05-03 12:55:01,093 - app.core.excel.processor - INFO - 从商品名称推断规格: 550纯净水24入白膜 -> 1*24, 包装数量=24 +2025-05-03 12:55:01,094 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6921168532001, 名称=450果园30%橙子15入纸箱, 规格=, 数量=1.0, 单位=, 单价=0.0 +2025-05-03 12:55:01,094 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 12:55:01,095 - app.core.excel.processor - INFO - 从商品名称推断规格: 450果园30%橙子15入纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,095 - app.core.excel.processor - INFO - 从商品名称推断规格: 450果园30%橙子15入纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,095 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6921168560189, 名称=445水溶C血橙15入纸箱, 规格=, 数量=2.0, 单位=, 单价=56.0 +2025-05-03 12:55:01,096 - app.core.excel.processor - INFO - 从数量提取单位: 2箱 -> 箱 +2025-05-03 12:55:01,096 - app.core.excel.processor - INFO - 从商品名称推断规格: 445水溶C血橙15入纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,096 - app.core.excel.processor - INFO - 从商品名称推断规格: 445水溶C血橙15入纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,264 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6921168500956, 名称=445水溶C柠檬15纸箱, 规格=, 数量=2.0, 单位=, 单价=56.0 +2025-05-03 12:55:01,264 - app.core.excel.processor - INFO - 从数量提取单位: 2箱 -> 箱 +2025-05-03 12:55:01,265 - app.core.excel.processor - INFO - 从商品名称推断规格: 445水溶C柠檬15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,265 - app.core.excel.processor - INFO - 从商品名称推断规格: 445水溶C柠檬15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,266 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6921168559244, 名称=445水溶C青皮桔15纸箱, 规格=, 数量=3.0, 单位=, 单价=56.0 +2025-05-03 12:55:01,266 - app.core.excel.processor - INFO - 从数量提取单位: 3箱 -> 箱 +2025-05-03 12:55:01,267 - app.core.excel.processor - INFO - 从商品名称推断规格: 445水溶C青皮桔15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,267 - app.core.excel.processor - INFO - 从商品名称推断规格: 445水溶C青皮桔15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,268 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6921168500970, 名称=445水溶C西柚15纸箱, 规格=, 数量=1.0, 单位=, 单价=56.0 +2025-05-03 12:55:01,268 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 12:55:01,269 - app.core.excel.processor - INFO - 从商品名称推断规格: 445水溶C西柚15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,269 - app.core.excel.processor - INFO - 从商品名称推断规格: 445水溶C西柚15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,270 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6921168558049, 名称=500树叶茉莉花茶15纸箱, 规格=, 数量=3.0, 单位=, 单价=55.0 +2025-05-03 12:55:01,270 - app.core.excel.processor - INFO - 从数量提取单位: 3箱 -> 箱 +2025-05-03 12:55:01,270 - app.core.excel.processor - INFO - 从商品名称推断规格: 500树叶茉莉花茶15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,270 - app.core.excel.processor - INFO - 从商品名称推断规格: 500树叶茉莉花茶15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:01,271 - app.core.excel.processor - INFO - 第8行: 提取商品信息 条码=6921168558032, 名称=500树叶乌龙茶15纸箱, 规格=, 数量=1.0, 单位=, 单价=55.0 +2025-05-03 12:55:01,271 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 12:55:06,817 - app.core.excel.processor - INFO - 从商品名称推断规格: 500树叶乌龙茶15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:06,817 - app.core.excel.processor - INFO - 从商品名称推断规格: 500树叶乌龙茶15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:06,818 - app.core.excel.processor - INFO - 第9行: 提取商品信息 条码=6921168558018, 名称=500树叶绿茶15纸箱, 规格=, 数量=2.0, 单位=, 单价=55.0 +2025-05-03 12:55:06,818 - app.core.excel.processor - INFO - 从数量提取单位: 2箱 -> 箱 +2025-05-03 12:55:06,819 - app.core.excel.processor - INFO - 从商品名称推断规格: 500树叶绿茶15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:06,819 - app.core.excel.processor - INFO - 从商品名称推断规格: 500树叶绿茶15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:06,819 - app.core.excel.processor - INFO - 第10行: 提取商品信息 条码=6921168598649, 名称=900树叶青柑普洱12入纸箱, 规格=, 数量=1.0, 单位=, 单价=62.0 +2025-05-03 12:55:06,820 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 12:55:06,820 - app.core.excel.processor - INFO - 从商品名称推断规格: 900树叶青柑普洱12入纸箱 -> 1*12, 包装数量=12 +2025-05-03 12:55:06,820 - app.core.excel.processor - INFO - 从商品名称推断规格: 900树叶青柑普洱12入纸箱 -> 1*12, 包装数量=12 +2025-05-03 12:55:06,821 - app.core.excel.processor - INFO - 第11行: 提取商品信息 条码=6921168595006, 名称=410苏打天然水柠檬15纸箱, 规格=, 数量=1.0, 单位=, 单价=43.0 +2025-05-03 12:55:06,821 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 12:55:06,821 - app.core.excel.processor - INFO - 从商品名称推断规格: 410苏打天然水柠檬15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:06,821 - app.core.excel.processor - INFO - 从商品名称推断规格: 410苏打天然水柠檬15纸箱 -> 1*15, 包装数量=15 +2025-05-03 12:55:06,822 - app.core.excel.processor - INFO - 第12行: 提取商品信息 条码=6921168594054, 名称=12.9L桶装水, 规格=, 数量=5.0, 单位=, 单价=16.0 +2025-05-03 12:55:06,822 - app.core.excel.processor - INFO - 从数量提取单位: 5桶 -> 桶 +2025-05-03 12:55:06,824 - app.core.excel.processor - INFO - 从商品名称推断规格: 12.9L桶装水 -> 12.9L*1, 包装数量=1 +2025-05-03 12:55:06,824 - app.core.excel.processor - INFO - 从商品名称推断规格: 12.9L桶装水 -> 12.9L*1, 包装数量=1 +2025-05-03 12:55:10,474 - app.core.excel.processor - INFO - 第13行: 提取商品信息 条码=6921168594054, 名称=12.9L桶装水, 规格=, 数量=1.0, 单位=, 单价=0.0 +2025-05-03 12:55:10,475 - app.core.excel.processor - INFO - 从数量提取单位: 1桶 -> 桶 +2025-05-03 12:55:10,475 - app.core.excel.processor - INFO - 从商品名称推断规格: 12.9L桶装水 -> 12.9L*1, 包装数量=1 +2025-05-03 12:55:10,475 - app.core.excel.processor - INFO - 从商品名称推断规格: 12.9L桶装水 -> 12.9L*1, 包装数量=1 +2025-05-03 12:55:10,476 - app.core.excel.processor - INFO - 提取到 13 个商品信息 +2025-05-03 12:55:10,487 - app.core.excel.processor - INFO - 开始处理13 个产品信息 +2025-05-03 12:55:10,487 - app.core.excel.processor - INFO - 处理商品: 条码=6921168560509, 数量=72.0, 单价=0, 是否赠品=True +2025-05-03 12:55:10,487 - app.core.excel.processor - INFO - 发现赠品:条码6921168560509, 数量=72.0 +2025-05-03 12:55:10,487 - app.core.excel.processor - INFO - 处理商品: 条码=6921168532001, 数量=15.0, 单价=0, 是否赠品=True +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 发现赠品:条码6921168532001, 数量=15.0 +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 处理商品: 条码=6921168560189, 数量=30.0, 单价=3.7333333333333334, 是否赠品=False +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 发现正常商品:条码6921168560189, 数量=30.0, 单价=3.7333333333333334 +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 处理商品: 条码=6921168500956, 数量=30.0, 单价=3.7333333333333334, 是否赠品=False +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 发现正常商品:条码6921168500956, 数量=30.0, 单价=3.7333333333333334 +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 处理商品: 条码=6921168559244, 数量=45.0, 单价=3.7333333333333334, 是否赠品=False +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 发现正常商品:条码6921168559244, 数量=45.0, 单价=3.7333333333333334 +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 处理商品: 条码=6921168500970, 数量=15.0, 单价=3.7333333333333334, 是否赠品=False +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 发现正常商品:条码6921168500970, 数量=15.0, 单价=3.7333333333333334 +2025-05-03 12:55:10,488 - app.core.excel.processor - INFO - 处理商品: 条码=6921168558049, 数量=45.0, 单价=3.6666666666666665, 是否赠品=False +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 发现正常商品:条码6921168558049, 数量=45.0, 单价=3.6666666666666665 +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 处理商品: 条码=6921168558032, 数量=15.0, 单价=3.6666666666666665, 是否赠品=False +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 发现正常商品:条码6921168558032, 数量=15.0, 单价=3.6666666666666665 +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 处理商品: 条码=6921168558018, 数量=30.0, 单价=3.6666666666666665, 是否赠品=False +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 发现正常商品:条码6921168558018, 数量=30.0, 单价=3.6666666666666665 +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 处理商品: 条码=6921168598649, 数量=12.0, 单价=5.166666666666667, 是否赠品=False +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 发现正常商品:条码6921168598649, 数量=12.0, 单价=5.166666666666667 +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 处理商品: 条码=6921168595006, 数量=15.0, 单价=2.8666666666666667, 是否赠品=False +2025-05-03 12:55:10,489 - app.core.excel.processor - INFO - 发现正常商品:条码6921168595006, 数量=15.0, 单价=2.8666666666666667 +2025-05-03 12:55:14,444 - app.core.excel.processor - INFO - 处理商品: 条码=6921168594054, 数量=5.0, 单价=16.0, 是否赠品=False +2025-05-03 12:55:14,444 - app.core.excel.processor - INFO - 发现正常商品:条码6921168594054, 数量=5.0, 单价=16.0 +2025-05-03 12:55:14,444 - app.core.excel.processor - INFO - 处理商品: 条码=6921168594054, 数量=1.0, 单价=0.0, 是否赠品=True +2025-05-03 12:55:14,444 - app.core.excel.processor - INFO - 发现赠品:条码6921168594054, 数量=1.0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 分组后共12 个不同条码的商品 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168560509 处理结果:只有赠品,数量=72.0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168532001 处理结果:只有赠品,数量=15.0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168560189 处理结果:正常商品数量30.0,单价3.7333333333333334,赠品数量0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168500956 处理结果:正常商品数量30.0,单价3.7333333333333334,赠品数量0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168559244 处理结果:正常商品数量45.0,单价3.7333333333333334,赠品数量0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168500970 处理结果:正常商品数量15.0,单价3.7333333333333334,赠品数量0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168558049 处理结果:正常商品数量45.0,单价3.6666666666666665,赠品数量0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168558032 处理结果:正常商品数量15.0,单价3.6666666666666665,赠品数量0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168558018 处理结果:正常商品数量30.0,单价3.6666666666666665,赠品数量0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168598649 处理结果:正常商品数量12.0,单价5.166666666666667,赠品数量0 +2025-05-03 12:55:14,445 - app.core.excel.processor - INFO - 条码 6921168595006 处理结果:正常商品数量15.0,单价2.8666666666666667,赠品数量0 +2025-05-03 12:55:14,446 - app.core.excel.processor - INFO - 条码 6921168594054 处理结果:正常商品数量5.0,单价16.0,赠品数量1.0 +2025-05-03 12:55:14,446 - app.core.excel.processor - INFO - 条码 6921168560509 填充:仅有赠品,采购量=0,赠品数量=72.0 +2025-05-03 12:55:14,446 - app.core.excel.processor - INFO - 条码 6921168532001 填充:仅有赠品,采购量=0,赠品数量=15.0 +2025-05-03 12:55:14,446 - app.core.excel.processor - INFO - 条码 6921168594054 填充:采购量=5.0,赠品数量1.0 +2025-05-03 12:55:14,449 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls +2025-05-03 12:55:14,450 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250502214456.xls +2025-05-03 14:44:17,318 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-03 14:44:17,319 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 14:44:19,917 - app.core.excel.processor - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的Excel文件 +2025-05-03 14:44:19,921 - app.core.excel.processor - INFO - 找到最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx +2025-05-03 14:44:19,923 - app.core.excel.processor - INFO - 开始处理Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx +2025-05-03 14:44:20,690 - app.core.excel.processor - INFO - 成功读取Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx, 共 9 行 +2025-05-03 14:44:20,693 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 35 +2025-05-03 14:44:20,693 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-03 14:44:20,717 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 8 行有效数据 +2025-05-03 14:44:20,717 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条形码 +2025-05-03 14:44:20,717 - app.core.excel.processor - INFO - 使用条码列: 条形码 +2025-05-03 14:44:20,718 - app.core.excel.processor - INFO - 找到name列: 商品名称 +2025-05-03 14:44:20,718 - app.core.excel.processor - INFO - 找到quantity列: 订单数量 +2025-05-03 14:44:20,718 - app.core.excel.processor - INFO - 找到price列: 销售价 +2025-05-03 14:44:20,718 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条形码', 'name': '商品名称', 'quantity': '订单数量', 'price': '销售价'} +2025-05-03 14:44:20,721 - app.core.excel.processor - INFO - 是否存在规格列: False +2025-05-03 14:44:20,722 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6921168509256, 名称=550水24白膜, 规格=, 数量=1.0, 单位=, 单价=0.0 +2025-05-03 14:44:20,725 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:44:20,727 - app.core.excel.processor - INFO - 从商品名称推断规格: 550水24白膜 -> 1*24, 包装数量=24 +2025-05-03 14:44:20,727 - app.core.excel.processor - INFO - 从商品名称推断规格: 550水24白膜 -> 1*24, 包装数量=24 +2025-05-03 14:44:20,729 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6921168561445, 名称=1.5树叶茉莉花茶6入纸箱装, 规格=, 数量=2.0, 单位=, 单价=50.0 +2025-05-03 14:44:20,729 - app.core.excel.processor - INFO - 从数量提取单位: 2箱 -> 箱 +2025-05-03 14:44:20,729 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶茉莉花茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:44:20,729 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶茉莉花茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:44:20,730 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6921168561452, 名称=1.5树叶乌龙茶6入纸箱装, 规格=, 数量=1.0, 单位=, 单价=50.0 +2025-05-03 14:44:20,730 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:44:20,731 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶乌龙茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:44:20,731 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶乌龙茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:44:20,938 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6921168561469, 名称=1.5树叶青柑普洱茶6入纸箱装, 规格=, 数量=1.0, 单位=, 单价=50.0 +2025-05-03 14:44:20,939 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:44:20,939 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶青柑普洱茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:44:20,939 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶青柑普洱茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:44:20,940 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6921168562473, 名称=410-农夫山泉-原味1*15-纸箱装, 规格=, 数量=1.0, 单位=, 单价=43.0 +2025-05-03 14:44:20,940 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:44:20,941 - app.core.excel.processor - INFO - 从商品名称推断规格: 410-农夫山泉-原味1*15-纸箱装 -> 1*15, 包装数量=15 +2025-05-03 14:44:20,941 - app.core.excel.processor - INFO - 从商品名称推断规格: 410-农夫山泉-原味1*15-纸箱装 -> 1*15, 包装数量=15 +2025-05-03 14:44:20,942 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6921168593545, 名称=5L水4入白膜, 规格=, 数量=5.0, 单位=, 单价=29.0 +2025-05-03 14:44:20,942 - app.core.excel.processor - INFO - 从数量提取单位: 5箱 -> 箱 +2025-05-03 14:44:20,942 - app.core.excel.processor - INFO - 从商品名称推断规格: 5L水4入白膜 -> 1*4, 包装数量=4 +2025-05-03 14:44:20,943 - app.core.excel.processor - INFO - 从商品名称推断规格: 5L水4入白膜 -> 1*4, 包装数量=4 +2025-05-03 14:44:20,943 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6921168593545, 名称=5L水4入白膜, 规格=, 数量=1.0, 单位=, 单价=0.0 +2025-05-03 14:44:20,944 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:44:20,944 - app.core.excel.processor - INFO - 从商品名称推断规格: 5L水4入白膜 -> 1*4, 包装数量=4 +2025-05-03 14:44:20,944 - app.core.excel.processor - INFO - 从商品名称推断规格: 5L水4入白膜 -> 1*4, 包装数量=4 +2025-05-03 14:44:20,945 - app.core.excel.processor - INFO - 提取到 7 个商品信息 +2025-05-03 14:44:20,958 - app.core.excel.processor - INFO - 开始处理7 个产品信息 +2025-05-03 14:44:20,958 - app.core.excel.processor - INFO - 处理商品: 条码=6921168509256, 数量=24.0, 单价=0, 是否赠品=True +2025-05-03 14:44:20,958 - app.core.excel.processor - INFO - 发现赠品:条码6921168509256, 数量=24.0 +2025-05-03 14:44:26,116 - app.core.excel.processor - INFO - 处理商品: 条码=6921168561445, 数量=12.0, 单价=8.333333333333334, 是否赠品=False +2025-05-03 14:44:26,117 - app.core.excel.processor - INFO - 发现正常商品:条码6921168561445, 数量=12.0, 单价=8.333333333333334 +2025-05-03 14:44:26,117 - app.core.excel.processor - INFO - 处理商品: 条码=6921168561452, 数量=6.0, 单价=8.333333333333334, 是否赠品=False +2025-05-03 14:44:26,117 - app.core.excel.processor - INFO - 发现正常商品:条码6921168561452, 数量=6.0, 单价=8.333333333333334 +2025-05-03 14:44:26,117 - app.core.excel.processor - INFO - 处理商品: 条码=6921168561469, 数量=6.0, 单价=8.333333333333334, 是否赠品=False +2025-05-03 14:44:26,117 - app.core.excel.processor - INFO - 发现正常商品:条码6921168561469, 数量=6.0, 单价=8.333333333333334 +2025-05-03 14:44:26,117 - app.core.excel.processor - INFO - 处理商品: 条码=6921168562473, 数量=15.0, 单价=2.8666666666666667, 是否赠品=False +2025-05-03 14:44:26,117 - app.core.excel.processor - INFO - 发现正常商品:条码6921168562473, 数量=15.0, 单价=2.8666666666666667 +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 处理商品: 条码=6921168593545, 数量=20.0, 单价=7.25, 是否赠品=False +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 发现正常商品:条码6921168593545, 数量=20.0, 单价=7.25 +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 处理商品: 条码=6921168593545, 数量=4.0, 单价=0, 是否赠品=True +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 发现赠品:条码6921168593545, 数量=4.0 +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 分组后共6 个不同条码的商品 +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 条码 6921168509256 处理结果:只有赠品,数量=24.0 +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 条码 6921168561445 处理结果:正常商品数量12.0,单价8.333333333333334,赠品数量0 +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 条码 6921168561452 处理结果:正常商品数量6.0,单价8.333333333333334,赠品数量0 +2025-05-03 14:44:26,118 - app.core.excel.processor - INFO - 条码 6921168561469 处理结果:正常商品数量6.0,单价8.333333333333334,赠品数量0 +2025-05-03 14:44:26,119 - app.core.excel.processor - INFO - 条码 6921168562473 处理结果:正常商品数量15.0,单价2.8666666666666667,赠品数量0 +2025-05-03 14:44:26,119 - app.core.excel.processor - INFO - 条码 6921168593545 处理结果:正常商品数量20.0,单价7.25,赠品数量4.0 +2025-05-03 14:44:26,119 - app.core.excel.processor - INFO - 条码 6921168509256 填充:仅有赠品,采购量=0,赠品数量=24.0 +2025-05-03 14:44:26,119 - app.core.excel.processor - INFO - 条码 6921168593545 填充:采购量=20.0,赠品数量4.0 +2025-05-03 14:44:26,122 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls +2025-05-03 14:44:26,124 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls +2025-05-03 14:45:44,520 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-03 14:45:44,521 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 14:45:58,807 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-03 14:45:58,808 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 14:45:58,809 - app.core.excel.processor - INFO - 开始处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503144404.xlsx +2025-05-03 14:45:59,464 - app.core.excel.processor - INFO - 成功读取Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503144404.xlsx, 共 9 行 +2025-05-03 14:45:59,478 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 35 +2025-05-03 14:45:59,479 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-03 14:45:59,493 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 8 行有效数据 +2025-05-03 14:45:59,493 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条形码 +2025-05-03 14:45:59,494 - app.core.excel.processor - INFO - 使用条码列: 条形码 +2025-05-03 14:45:59,494 - app.core.excel.processor - INFO - 找到name列: 商品名称 +2025-05-03 14:45:59,494 - app.core.excel.processor - INFO - 找到quantity列: 订单数量 +2025-05-03 14:45:59,494 - app.core.excel.processor - INFO - 找到price列: 销售价 +2025-05-03 14:45:59,494 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条形码', 'name': '商品名称', 'quantity': '订单数量', 'price': '销售价'} +2025-05-03 14:45:59,494 - app.core.excel.processor - INFO - 是否存在规格列: False +2025-05-03 14:45:59,495 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6921168509256, 名称=550水24白膜, 规格=, 数量=1.0, 单位=, 单价=0.0 +2025-05-03 14:45:59,496 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:45:59,497 - app.core.excel.processor - INFO - 从商品名称推断规格: 550水24白膜 -> 1*24, 包装数量=24 +2025-05-03 14:45:59,497 - app.core.excel.processor - INFO - 从商品名称推断规格: 550水24白膜 -> 1*24, 包装数量=24 +2025-05-03 14:45:59,499 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6921168561445, 名称=1.5树叶茉莉花茶6入纸箱装, 规格=, 数量=2.0, 单位=, 单价=50.0 +2025-05-03 14:45:59,500 - app.core.excel.processor - INFO - 从数量提取单位: 2箱 -> 箱 +2025-05-03 14:45:59,500 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶茉莉花茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:45:59,500 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶茉莉花茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:45:59,500 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6921168561452, 名称=1.5树叶乌龙茶6入纸箱装, 规格=, 数量=1.0, 单位=, 单价=50.0 +2025-05-03 14:45:59,501 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:45:59,502 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶乌龙茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:45:59,502 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶乌龙茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:45:59,535 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6921168561469, 名称=1.5树叶青柑普洱茶6入纸箱装, 规格=, 数量=1.0, 单位=, 单价=50.0 +2025-05-03 14:45:59,535 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:45:59,535 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶青柑普洱茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:45:59,535 - app.core.excel.processor - INFO - 从商品名称推断规格: 1.5树叶青柑普洱茶6入纸箱装 -> 1*6, 包装数量=6 +2025-05-03 14:45:59,536 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6921168562473, 名称=410-农夫山泉-原味1*15-纸箱装, 规格=, 数量=1.0, 单位=, 单价=43.0 +2025-05-03 14:45:59,536 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:45:59,536 - app.core.excel.processor - INFO - 从商品名称推断规格: 410-农夫山泉-原味1*15-纸箱装 -> 1*15, 包装数量=15 +2025-05-03 14:45:59,536 - app.core.excel.processor - INFO - 从商品名称推断规格: 410-农夫山泉-原味1*15-纸箱装 -> 1*15, 包装数量=15 +2025-05-03 14:45:59,537 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6921168593545, 名称=5L水4入白膜, 规格=, 数量=5.0, 单位=, 单价=29.0 +2025-05-03 14:45:59,537 - app.core.excel.processor - INFO - 从数量提取单位: 5箱 -> 箱 +2025-05-03 14:45:59,537 - app.core.excel.processor - INFO - 从商品名称推断规格: 5L水4入白膜 -> 1*4, 包装数量=4 +2025-05-03 14:45:59,537 - app.core.excel.processor - INFO - 从商品名称推断规格: 5L水4入白膜 -> 1*4, 包装数量=4 +2025-05-03 14:45:59,537 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6921168593545, 名称=5L水4入白膜, 规格=, 数量=1.0, 单位=, 单价=0.0 +2025-05-03 14:45:59,537 - app.core.excel.processor - INFO - 从数量提取单位: 1箱 -> 箱 +2025-05-03 14:45:59,538 - app.core.excel.processor - INFO - 从商品名称推断规格: 5L水4入白膜 -> 1*4, 包装数量=4 +2025-05-03 14:45:59,538 - app.core.excel.processor - INFO - 从商品名称推断规格: 5L水4入白膜 -> 1*4, 包装数量=4 +2025-05-03 14:45:59,538 - app.core.excel.processor - INFO - 提取到 7 个商品信息 +2025-05-03 14:45:59,547 - app.core.excel.processor - INFO - 开始处理7 个产品信息 +2025-05-03 14:45:59,547 - app.core.excel.processor - INFO - 处理商品: 条码=6921168509256, 数量=24.0, 单价=0, 是否赠品=True +2025-05-03 14:45:59,548 - app.core.excel.processor - INFO - 发现赠品:条码6921168509256, 数量=24.0 +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 处理商品: 条码=6921168561445, 数量=12.0, 单价=8.333333333333334, 是否赠品=False +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 发现正常商品:条码6921168561445, 数量=12.0, 单价=8.333333333333334 +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 处理商品: 条码=6921168561452, 数量=6.0, 单价=8.333333333333334, 是否赠品=False +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 发现正常商品:条码6921168561452, 数量=6.0, 单价=8.333333333333334 +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 处理商品: 条码=6921168561469, 数量=6.0, 单价=8.333333333333334, 是否赠品=False +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 发现正常商品:条码6921168561469, 数量=6.0, 单价=8.333333333333334 +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 处理商品: 条码=6921168562473, 数量=15.0, 单价=2.8666666666666667, 是否赠品=False +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 发现正常商品:条码6921168562473, 数量=15.0, 单价=2.8666666666666667 +2025-05-03 14:46:03,470 - app.core.excel.processor - INFO - 处理商品: 条码=6921168593545, 数量=20.0, 单价=7.25, 是否赠品=False +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 发现正常商品:条码6921168593545, 数量=20.0, 单价=7.25 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 处理商品: 条码=6921168593545, 数量=4.0, 单价=0, 是否赠品=True +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 发现赠品:条码6921168593545, 数量=4.0 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 分组后共6 个不同条码的商品 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 条码 6921168509256 处理结果:只有赠品,数量=24.0 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 条码 6921168561445 处理结果:正常商品数量12.0,单价8.333333333333334,赠品数量0 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 条码 6921168561452 处理结果:正常商品数量6.0,单价8.333333333333334,赠品数量0 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 条码 6921168561469 处理结果:正常商品数量6.0,单价8.333333333333334,赠品数量0 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 条码 6921168562473 处理结果:正常商品数量15.0,单价2.8666666666666667,赠品数量0 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 条码 6921168593545 处理结果:正常商品数量20.0,单价7.25,赠品数量4.0 +2025-05-03 14:46:03,471 - app.core.excel.processor - INFO - 条码 6921168509256 填充:仅有赠品,采购量=0,赠品数量=24.0 +2025-05-03 14:46:03,472 - app.core.excel.processor - INFO - 条码 6921168593545 填充:采购量=20.0,赠品数量4.0 +2025-05-03 14:46:03,475 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls +2025-05-03 14:46:03,478 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250503144404.xls +2025-05-03 14:53:52,351 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-03 14:53:52,352 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 14:53:54,304 - app.core.excel.processor - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的Excel文件 +2025-05-03 14:53:54,305 - app.core.excel.processor - INFO - 找到最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx +2025-05-03 14:53:54,305 - app.core.excel.processor - INFO - 开始处理Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx +2025-05-03 14:53:55,082 - app.core.excel.processor - INFO - 成功读取Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx, 共 6 行 +2025-05-03 14:53:55,083 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 40 +2025-05-03 14:53:55,084 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-03 14:53:55,093 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 5 行有效数据 +2025-05-03 14:53:55,096 - app.core.excel.processor - ERROR - 未找到条码列,无法处理 +2025-05-03 14:53:55,096 - app.core.excel.processor - INFO - 列名映射结果: {} +2025-05-03 14:53:55,096 - app.core.excel.processor - INFO - 是否存在规格列: True +2025-05-03 14:53:55,097 - app.core.excel.processor - INFO - 提取到 0 个商品信息 +2025-05-03 14:53:55,097 - app.core.excel.processor - WARNING - 未提取到有效商品信息 +2025-05-03 15:43:36,731 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-03 15:43:36,732 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-03 15:43:36,734 - app.core.excel.processor - INFO - 开始处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503145328.xlsx +2025-05-03 15:43:37,374 - app.core.excel.processor - INFO - 成功读取Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503145328.xlsx, 共 6 行 +2025-05-03 15:43:37,376 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 45 +2025-05-03 15:43:37,376 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-03 15:43:37,410 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 5 行有效数据 +2025-05-03 15:43:37,413 - app.core.excel.processor - ERROR - 未找到条码列,无法处理 +2025-05-03 15:43:37,413 - app.core.excel.processor - INFO - 列名映射结果: {} +2025-05-03 15:43:37,413 - app.core.excel.processor - INFO - 是否存在规格列: True +2025-05-03 15:43:37,413 - app.core.excel.processor - INFO - 提取到 0 个商品信息 +2025-05-03 15:43:37,414 - app.core.excel.processor - WARNING - 未提取到有效商品信息 +2025-05-05 18:55:02,299 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 18:55:02,301 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 18:55:04,013 - app.core.excel.processor - INFO - 搜索目录 D:\My Documents\python\orc-order-v2\data\output 中的Excel文件 +2025-05-05 18:55:04,014 - app.core.excel.processor - INFO - 找到最新的Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx +2025-05-05 18:55:04,016 - app.core.excel.processor - INFO - 开始处理Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx +2025-05-05 18:55:05,256 - app.core.excel.processor - INFO - 成功读取Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx, 共 9 行 +2025-05-05 18:55:05,264 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 40 +2025-05-05 18:55:05,264 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-05 18:55:05,282 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 8 行有效数据 +2025-05-05 18:55:05,282 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条形码 +2025-05-05 18:55:05,282 - app.core.excel.processor - INFO - 使用条码列: 条形码 +2025-05-05 18:55:05,282 - app.core.excel.processor - INFO - 找到name列: 商品名称 +2025-05-05 18:55:05,283 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2025-05-05 18:55:05,283 - app.core.excel.processor - INFO - 找到unit列: 单位 +2025-05-05 18:55:05,283 - app.core.excel.processor - INFO - 找到price列: 销售价 +2025-05-05 18:55:05,283 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条形码', 'name': '商品名称', 'quantity': '数量', 'unit': '单位', 'price': '销售价'} +2025-05-05 18:55:05,286 - app.core.excel.processor - INFO - 是否存在规格列: False +2025-05-05 18:55:05,287 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6902083890636, 名称=娃哈哈大爽歪歪200g*24, 规格=, 数量=1.0, 单位=件, 单价=40.0 +2025-05-05 18:55:05,288 - app.core.excel.processor - INFO - 从商品名称提取重量/容量规格: 娃哈哈大爽歪歪200g*24 -> 1*24, 包装数量=24 +2025-05-05 18:55:05,290 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6902083922658, 名称=娃哈哈瓶装大AD450ml*15, 规格=, 数量=1.0, 单位=件, 单价=50.0 +2025-05-05 18:55:05,290 - app.core.excel.processor - INFO - 从商品名称提取重量/容量规格: 娃哈哈瓶装大AD450ml*15 -> 1*15, 包装数量=15 +2025-05-05 18:55:05,291 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6902083814052, 名称=娃哈哈瓶装大AD草莓味450ml*15, 规格=, 数量=1.0, 单位=件, 单价=50.0 +2025-05-05 18:55:05,291 - app.core.excel.processor - INFO - 从商品名称提取重量/容量规格: 娃哈哈瓶装大AD草莓味450ml*15 -> 1*15, 包装数量=15 +2025-05-05 18:55:05,292 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6902083814045, 名称=娃哈哈瓶装大AD水蜜桃450ml*15, 规格=, 数量=1.0, 单位=件, 单价=50.0 +2025-05-05 18:55:05,293 - app.core.excel.processor - INFO - 从商品名称提取重量/容量规格: 娃哈哈瓶装大AD水蜜桃450ml*15 -> 1*15, 包装数量=15 +2025-05-05 18:55:05,293 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6902083911027, 名称=娃哈哈大苏打水甜味500ml*15, 规格=, 数量=3.0, 单位=件, 单价=43.0 +2025-05-05 18:55:05,293 - app.core.excel.processor - INFO - 从商品名称提取重量/容量规格: 娃哈哈大苏打水甜味500ml*15 -> 1*15, 包装数量=15 +2025-05-05 18:55:05,294 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6902083881405, 名称=娃哈哈纯净水(红标)596ml*24, 规格=, 数量=5.0, 单位=件, 单价=22.0 +2025-05-05 18:55:05,501 - app.core.excel.processor - INFO - 从商品名称提取重量/容量规格: 娃哈哈纯净水(红标)596ml*24 -> 1*24, 包装数量=24 +2025-05-05 18:55:05,501 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6902083894443, 名称=娃哈哈苏打水甜味350ml*24, 规格=, 数量=3.0, 单位=件, 单价=43.0 +2025-05-05 18:55:05,502 - app.core.excel.processor - INFO - 从商品名称提取重量/容量规格: 娃哈哈苏打水甜味350ml*24 -> 1*24, 包装数量=24 +2025-05-05 18:55:05,503 - app.core.excel.processor - INFO - 提取到 7 个商品信息 +2025-05-05 18:55:05,515 - app.core.excel.processor - INFO - 开始处理7 个产品信息 +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 处理商品: 条码=6902083890636, 数量=24.0, 单价=1.6666666666666667, 是否赠品=False +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 发现正常商品:条码6902083890636, 数量=24.0, 单价=1.6666666666666667 +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 处理商品: 条码=6902083922658, 数量=15.0, 单价=3.3333333333333335, 是否赠品=False +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 发现正常商品:条码6902083922658, 数量=15.0, 单价=3.3333333333333335 +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 处理商品: 条码=6902083814052, 数量=15.0, 单价=3.3333333333333335, 是否赠品=False +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 发现正常商品:条码6902083814052, 数量=15.0, 单价=3.3333333333333335 +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 处理商品: 条码=6902083814045, 数量=15.0, 单价=3.3333333333333335, 是否赠品=False +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 发现正常商品:条码6902083814045, 数量=15.0, 单价=3.3333333333333335 +2025-05-05 18:55:05,516 - app.core.excel.processor - INFO - 处理商品: 条码=6902083911027, 数量=45.0, 单价=2.8666666666666667, 是否赠品=False +2025-05-05 18:55:05,518 - app.core.excel.processor - INFO - 发现正常商品:条码6902083911027, 数量=45.0, 单价=2.8666666666666667 +2025-05-05 18:55:05,518 - app.core.excel.processor - INFO - 处理商品: 条码=6902083881405, 数量=120.0, 单价=0.9166666666666666, 是否赠品=False +2025-05-05 18:55:05,518 - app.core.excel.processor - INFO - 发现正常商品:条码6902083881405, 数量=120.0, 单价=0.9166666666666666 +2025-05-05 18:55:05,518 - app.core.excel.processor - INFO - 处理商品: 条码=6902083894443, 数量=72.0, 单价=1.7916666666666667, 是否赠品=False +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 发现正常商品:条码6902083894443, 数量=72.0, 单价=1.7916666666666667 +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 分组后共7 个不同条码的商品 +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 条码 6902083890636 处理结果:正常商品数量24.0,单价1.6666666666666667,赠品数量0 +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 条码 6902083922658 处理结果:正常商品数量15.0,单价3.3333333333333335,赠品数量0 +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 条码 6902083814052 处理结果:正常商品数量15.0,单价3.3333333333333335,赠品数量0 +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 条码 6902083814045 处理结果:正常商品数量15.0,单价3.3333333333333335,赠品数量0 +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 条码 6902083911027 处理结果:正常商品数量45.0,单价2.8666666666666667,赠品数量0 +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 条码 6902083881405 处理结果:正常商品数量120.0,单价0.9166666666666666,赠品数量0 +2025-05-05 18:55:05,519 - app.core.excel.processor - INFO - 条码 6902083894443 处理结果:正常商品数量72.0,单价1.7916666666666667,赠品数量0 +2025-05-05 18:55:05,533 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185454.xls +2025-05-05 18:55:13,151 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185454.xls +2025-05-05 18:59:17,851 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 18:59:17,851 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:00:26,073 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:00:26,074 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:00:26,076 - app.core.excel.processor - INFO - 开始处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185842.xlsx +2025-05-05 19:00:26,671 - app.core.excel.processor - INFO - 成功读取Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185842.xlsx, 共 32 行 +2025-05-05 19:00:26,673 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 35 +2025-05-05 19:00:26,673 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-05 19:00:26,695 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 31 行有效数据 +2025-05-05 19:00:26,695 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条码 +2025-05-05 19:00:26,695 - app.core.excel.processor - INFO - 使用条码列: 条码 +2025-05-05 19:00:26,695 - app.core.excel.processor - INFO - 找到name列(部分匹配): 商品全名 +2025-05-05 19:00:26,696 - app.core.excel.processor - INFO - 找到specification列: 规格 +2025-05-05 19:00:26,696 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2025-05-05 19:00:26,696 - app.core.excel.processor - INFO - 找到unit列: 单位 +2025-05-05 19:00:26,696 - app.core.excel.processor - INFO - 找到price列: 单价 +2025-05-05 19:00:26,696 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条码', 'name': '商品全名', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价'} +2025-05-05 19:00:26,696 - app.core.excel.processor - INFO - 是否存在规格列: True +2025-05-05 19:00:26,697 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6922868285266, 名称=心相印80片杀菌湿巾XCA080, 规格=, 数量=3.0, 单位=包, 单价=12.0 +2025-05-05 19:00:26,698 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:00:26,700 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6914068023359, 名称=洁柔30片湿巾纸, 规格=, 数量=3.0, 单位=包, 单价=5.0 +2025-05-05 19:00:26,704 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2025-05-05 19:00:26,705 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6922868284283, 名称=心相印10片湿巾纸杀菌, 规格=, 数量=12.0, 单位=包, 单价=2.4 +2025-05-05 19:00:26,705 - app.core.excel.processor - INFO - 解析规格: 1*96 -> 包装数量=96 +2025-05-05 19:00:26,705 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6914068012261, 名称=洁柔百花135软抽JR069, 规格=, 数量=6.0, 单位=提, 单价=8.5 +2025-05-05 19:00:26,706 - app.core.excel.processor - INFO - 解析规格: 1*16 -> 包装数量=16 +2025-05-05 19:00:26,706 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6914068012957, 名称=洁柔古龙150软抽JR060, 规格=, 数量=3.0, 单位=提, 单价=10.5 +2025-05-05 19:00:26,706 - app.core.excel.processor - INFO - 解析规格: 1*16 -> 包装数量=16 +2025-05-05 19:00:26,706 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6943836502161, 名称=千唯200欧典小软抽, 规格=, 数量=2.0, 单位=提, 单价=6.5 +2025-05-05 19:00:26,706 - app.core.excel.processor - INFO - 解析规格: 1*20 -> 包装数量=20 +2025-05-05 19:00:26,736 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6903244675208, 名称=DT15130心相印茶语6个装, 规格=, 数量=3.0, 单位=提, 单价=12.5 +2025-05-05 19:00:26,736 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:00:26,737 - app.core.excel.processor - INFO - 第8行: 提取商品信息 条码=6949288699398, 名称=9939家洁丝125*180六装抽纸, 规格=, 数量=3.0, 单位=提, 单价=8.5 +2025-05-05 19:00:26,737 - app.core.excel.processor - INFO - 解析规格: 1*18 -> 包装数量=18 +2025-05-05 19:00:26,738 - app.core.excel.processor - INFO - 第9行: 提取商品信息 条码=6949288677884, 名称=7884家洁丝三装抽纸, 规格=, 数量=2.0, 单位=提, 单价=8.5 +2025-05-05 19:00:26,738 - app.core.excel.processor - INFO - 解析规格: 1*20 -> 包装数量=20 +2025-05-05 19:00:26,738 - app.core.excel.processor - ERROR - 提取第11行商品信息时出错: could not convert string to float: '单价' +Traceback (most recent call last): + File "D:\My Documents\python\orc-order-v2\app\core\excel\processor.py", line 258, in extract_product_info + 'price': float(row[column_mapping['price']]) if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]) else 0, +ValueError: could not convert string to float: '单价' +2025-05-05 19:00:26,742 - app.core.excel.processor - INFO - 第12行: 提取商品信息 条码=6926052512725, 名称=8704自由点430舒睡超薄夜棉, 规格=, 数量=3.0, 单位=包, 单价=6.2 +2025-05-05 19:00:26,742 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:00:26,743 - app.core.excel.processor - INFO - 第13行: 提取商品信息 条码=6926052515276, 名称=自由点益生菌8片日用卫生巾, 规格=, 数量=3.0, 单位=包, 单价=7.5 +2025-05-05 19:00:26,743 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2025-05-05 19:00:26,744 - app.core.excel.processor - INFO - 第14行: 提取商品信息 条码=6926052501620, 名称=自由点无感七口棉柔8片口用, 规格=, 数量=3.0, 单位=包, 单价=6.5 +2025-05-05 19:00:26,744 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2025-05-05 19:00:26,744 - app.core.excel.processor - INFO - 第15行: 提取商品信息 条码=6903244370776, 名称=8808七度空间8片丝柔夜用超长, 规格=, 数量=3.0, 单位=包, 单价=6.6 +2025-05-05 19:00:26,745 - app.core.excel.processor - INFO - 解析规格: 1*30 -> 包装数量=30 +2025-05-05 19:00:26,745 - app.core.excel.processor - INFO - 第16行: 提取商品信息 条码=6903244370967, 名称=6205七度空间5片夜用棉柔, 规格=, 数量=3.0, 单位=包, 单价=3.6 +2025-05-05 19:00:26,745 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:00:30,735 - app.core.excel.processor - INFO - 第17行: 提取商品信息 条码=6934660522258, 名称=苏菲10片弹力贴身日用棉柔, 规格=, 数量=3.0, 单位=包, 单价=5.0 +2025-05-05 19:00:30,735 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2025-05-05 19:00:30,736 - app.core.excel.processor - INFO - 第18行: 提取商品信息 条码=6934660528618, 名称=苏菲350超熟睡棉柔4片, 规格=, 数量=3.0, 单位=包, 单价=4.2 +2025-05-05 19:00:30,736 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:00:30,737 - app.core.excel.processor - INFO - 第19行: 提取商品信息 条码=6934660539157, 名称=苏菲9片小翅膀护垫, 规格=, 数量=3.0, 单位=包, 单价=2.8 +2025-05-05 19:00:30,737 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2025-05-05 19:00:30,738 - app.core.excel.processor - INFO - 第20行: 提取商品信息 条码=6922731882509, 名称=ABC亲柔立围8片夜用k82, 规格=, 数量=5.0, 单位=包, 单价=6.2 +2025-05-05 19:00:30,738 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:00:30,739 - app.core.excel.processor - ERROR - 提取第22行商品信息时出错: could not convert string to float: '单价' +Traceback (most recent call last): + File "D:\My Documents\python\orc-order-v2\app\core\excel\processor.py", line 258, in extract_product_info + 'price': float(row[column_mapping['price']]) if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]) else 0, +ValueError: could not convert string to float: '单价' +2025-05-05 19:00:30,739 - app.core.excel.processor - INFO - 第23行: 提取商品信息 条码=6923589462400, 名称=62400高洁丝10片日棉, 规格=, 数量=3.0, 单位=包, 单价=6.0 +2025-05-05 19:00:30,739 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2025-05-05 19:00:30,741 - app.core.excel.processor - INFO - 第24行: 提取商品信息 条码=6923589469195, 名称=6919高洁丝10片迷你190日用, 规格=, 数量=5.0, 单位=包, 单价=2.3 +2025-05-05 19:00:30,741 - app.core.excel.processor - INFO - 解析规格: 1*60 -> 包装数量=60 +2025-05-05 19:00:30,741 - app.core.excel.processor - INFO - 第25行: 提取商品信息 条码=6923589467009, 名称=高洁丝迷你卫生巾臻选, 规格=, 数量=3.0, 单位=包, 单价=4.6 +2025-05-05 19:00:30,741 - app.core.excel.processor - INFO - 解析规格: 1*24 -> 包装数量=24 +2025-05-05 19:00:30,742 - app.core.excel.processor - INFO - 第26行: 提取商品信息 条码=6923589466156, 名称=6615高洁丝8片日用极薄棉柔, 规格=, 数量=5.0, 单位=包, 单价=6.2 +2025-05-05 19:00:30,742 - app.core.excel.processor - INFO - 解析规格: 1*16 -> 包装数量=16 +2025-05-05 19:00:34,623 - app.core.excel.processor - INFO - 第27行: 提取商品信息 条码=6934660521510, 名称=苏菲安心裤F码, 规格=, 数量=3.0, 单位=包, 单价=5.6 +2025-05-05 19:00:34,623 - app.core.excel.processor - INFO - 解析规格: 1*36 -> 包装数量=36 +2025-05-05 19:00:34,623 - app.core.excel.processor - INFO - 第28行: 提取商品信息 条码=6901404300854, 名称=85g上海硫磺皂, 规格=, 数量=3.0, 单位=个, 单价=1.2 +2025-05-05 19:00:34,623 - app.core.excel.processor - INFO - 解析规格: 1*72 -> 包装数量=72 +2025-05-05 19:00:34,624 - app.core.excel.processor - INFO - 第29行: 提取商品信息 条码=4897031010292, 名称=380g蔻斯汀花瓣沐浴露茉莉, 规格=, 数量=2.0, 单位=瓶, 单价=19.0 +2025-05-05 19:00:34,625 - app.core.excel.processor - INFO - 第30行: 提取商品信息 条码=6903148171813, 名称=200g潘婷洗发水烫染修护, 规格=, 数量=3.0, 单位=瓶, 单价=14.5 +2025-05-05 19:00:34,625 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:00:34,626 - app.core.excel.processor - INFO - 第31行: 提取商品信息 条码=6902088951875, 名称=175g清扬洗发水男士防脱发, 规格=, 数量=2.0, 单位=瓶, 单价=16.5 +2025-05-05 19:00:34,626 - app.core.excel.processor - INFO - 解析规格: 1*1 -> 包装数量=1 +2025-05-05 19:00:34,626 - app.core.excel.processor - INFO - 提取到 27 个商品信息 +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 开始处理27 个产品信息 +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 处理商品: 条码=6922868285266, 数量=3.0, 单价=12.0, 是否赠品=False +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 发现正常商品:条码6922868285266, 数量=3.0, 单价=12.0 +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 处理商品: 条码=6914068023359, 数量=3.0, 单价=5.0, 是否赠品=False +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 发现正常商品:条码6914068023359, 数量=3.0, 单价=5.0 +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 处理商品: 条码=6922868284283, 数量=12.0, 单价=2.4, 是否赠品=False +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 发现正常商品:条码6922868284283, 数量=12.0, 单价=2.4 +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 处理商品: 条码=6914068012261, 数量=6.0, 单价=8.5, 是否赠品=False +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 发现正常商品:条码6914068012261, 数量=6.0, 单价=8.5 +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 处理商品: 条码=6914068012957, 数量=3.0, 单价=10.5, 是否赠品=False +2025-05-05 19:00:34,636 - app.core.excel.processor - INFO - 发现正常商品:条码6914068012957, 数量=3.0, 单价=10.5 +2025-05-05 19:00:34,637 - app.core.excel.processor - INFO - 处理商品: 条码=6943836502161, 数量=2.0, 单价=6.5, 是否赠品=False +2025-05-05 19:00:34,637 - app.core.excel.processor - INFO - 发现正常商品:条码6943836502161, 数量=2.0, 单价=6.5 +2025-05-05 19:00:34,637 - app.core.excel.processor - INFO - 处理商品: 条码=6903244675208, 数量=3.0, 单价=12.5, 是否赠品=False +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 发现正常商品:条码6903244675208, 数量=3.0, 单价=12.5 +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 处理商品: 条码=6949288699398, 数量=3.0, 单价=8.5, 是否赠品=False +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 发现正常商品:条码6949288699398, 数量=3.0, 单价=8.5 +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 处理商品: 条码=6949288677884, 数量=2.0, 单价=8.5, 是否赠品=False +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 发现正常商品:条码6949288677884, 数量=2.0, 单价=8.5 +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 处理商品: 条码=6926052512725, 数量=3.0, 单价=6.2, 是否赠品=False +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 发现正常商品:条码6926052512725, 数量=3.0, 单价=6.2 +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 处理商品: 条码=6926052515276, 数量=3.0, 单价=7.5, 是否赠品=False +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 发现正常商品:条码6926052515276, 数量=3.0, 单价=7.5 +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 处理商品: 条码=6926052501620, 数量=3.0, 单价=6.5, 是否赠品=False +2025-05-05 19:00:38,803 - app.core.excel.processor - INFO - 发现正常商品:条码6926052501620, 数量=3.0, 单价=6.5 +2025-05-05 19:00:38,804 - app.core.excel.processor - INFO - 处理商品: 条码=6903244370776, 数量=3.0, 单价=6.6, 是否赠品=False +2025-05-05 19:00:38,804 - app.core.excel.processor - INFO - 发现正常商品:条码6903244370776, 数量=3.0, 单价=6.6 +2025-05-05 19:00:38,804 - app.core.excel.processor - INFO - 处理商品: 条码=6903244370967, 数量=3.0, 单价=3.6, 是否赠品=False +2025-05-05 19:00:38,804 - app.core.excel.processor - INFO - 发现正常商品:条码6903244370967, 数量=3.0, 单价=3.6 +2025-05-05 19:00:38,804 - app.core.excel.processor - INFO - 处理商品: 条码=6934660522258, 数量=3.0, 单价=5.0, 是否赠品=False +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 发现正常商品:条码6934660522258, 数量=3.0, 单价=5.0 +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 处理商品: 条码=6934660528618, 数量=3.0, 单价=4.2, 是否赠品=False +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 发现正常商品:条码6934660528618, 数量=3.0, 单价=4.2 +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 处理商品: 条码=6934660539157, 数量=3.0, 单价=2.8, 是否赠品=False +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 发现正常商品:条码6934660539157, 数量=3.0, 单价=2.8 +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 处理商品: 条码=6922731882509, 数量=5.0, 单价=6.2, 是否赠品=False +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 发现正常商品:条码6922731882509, 数量=5.0, 单价=6.2 +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 处理商品: 条码=6923589462400, 数量=3.0, 单价=6.0, 是否赠品=False +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 发现正常商品:条码6923589462400, 数量=3.0, 单价=6.0 +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 处理商品: 条码=6923589469195, 数量=5.0, 单价=2.3, 是否赠品=False +2025-05-05 19:00:38,805 - app.core.excel.processor - INFO - 发现正常商品:条码6923589469195, 数量=5.0, 单价=2.3 +2025-05-05 19:00:38,806 - app.core.excel.processor - INFO - 处理商品: 条码=6923589467009, 数量=3.0, 单价=4.6, 是否赠品=False +2025-05-05 19:00:38,806 - app.core.excel.processor - INFO - 发现正常商品:条码6923589467009, 数量=3.0, 单价=4.6 +2025-05-05 19:00:38,806 - app.core.excel.processor - INFO - 处理商品: 条码=6923589466156, 数量=5.0, 单价=6.2, 是否赠品=False +2025-05-05 19:00:38,806 - app.core.excel.processor - INFO - 发现正常商品:条码6923589466156, 数量=5.0, 单价=6.2 +2025-05-05 19:00:38,806 - app.core.excel.processor - INFO - 处理商品: 条码=6934660521510, 数量=3.0, 单价=5.6, 是否赠品=False +2025-05-05 19:00:38,806 - app.core.excel.processor - INFO - 发现正常商品:条码6934660521510, 数量=3.0, 单价=5.6 +2025-05-05 19:00:38,806 - app.core.excel.processor - INFO - 处理商品: 条码=6901404300854, 数量=3.0, 单价=1.2, 是否赠品=False +2025-05-05 19:00:38,806 - app.core.excel.processor - INFO - 发现正常商品:条码6901404300854, 数量=3.0, 单价=1.2 +2025-05-05 19:00:42,487 - app.core.excel.processor - INFO - 处理商品: 条码=4897031010292, 数量=2.0, 单价=19.0, 是否赠品=False +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 发现正常商品:条码4897031010292, 数量=2.0, 单价=19.0 +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 处理商品: 条码=6903148171813, 数量=3.0, 单价=14.5, 是否赠品=False +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 发现正常商品:条码6903148171813, 数量=3.0, 单价=14.5 +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 处理商品: 条码=6902088951875, 数量=2.0, 单价=16.5, 是否赠品=False +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 发现正常商品:条码6902088951875, 数量=2.0, 单价=16.5 +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 分组后共27 个不同条码的商品 +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 条码 6922868285266 处理结果:正常商品数量3.0,单价12.0,赠品数量0 +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 条码 6914068023359 处理结果:正常商品数量3.0,单价5.0,赠品数量0 +2025-05-05 19:00:42,488 - app.core.excel.processor - INFO - 条码 6922868284283 处理结果:正常商品数量12.0,单价2.4,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6914068012261 处理结果:正常商品数量6.0,单价8.5,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6914068012957 处理结果:正常商品数量3.0,单价10.5,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6943836502161 处理结果:正常商品数量2.0,单价6.5,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6903244675208 处理结果:正常商品数量3.0,单价12.5,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6949288699398 处理结果:正常商品数量3.0,单价8.5,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6949288677884 处理结果:正常商品数量2.0,单价8.5,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6926052512725 处理结果:正常商品数量3.0,单价6.2,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6926052515276 处理结果:正常商品数量3.0,单价7.5,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6926052501620 处理结果:正常商品数量3.0,单价6.5,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6903244370776 处理结果:正常商品数量3.0,单价6.6,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6903244370967 处理结果:正常商品数量3.0,单价3.6,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6934660522258 处理结果:正常商品数量3.0,单价5.0,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6934660528618 处理结果:正常商品数量3.0,单价4.2,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6934660539157 处理结果:正常商品数量3.0,单价2.8,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6922731882509 处理结果:正常商品数量5.0,单价6.2,赠品数量0 +2025-05-05 19:00:42,489 - app.core.excel.processor - INFO - 条码 6923589462400 处理结果:正常商品数量3.0,单价6.0,赠品数量0 +2025-05-05 19:00:42,490 - app.core.excel.processor - INFO - 条码 6923589469195 处理结果:正常商品数量5.0,单价2.3,赠品数量0 +2025-05-05 19:00:42,490 - app.core.excel.processor - INFO - 条码 6923589467009 处理结果:正常商品数量3.0,单价4.6,赠品数量0 +2025-05-05 19:00:42,490 - app.core.excel.processor - INFO - 条码 6923589466156 处理结果:正常商品数量5.0,单价6.2,赠品数量0 +2025-05-05 19:00:42,490 - app.core.excel.processor - INFO - 条码 6934660521510 处理结果:正常商品数量3.0,单价5.6,赠品数量0 +2025-05-05 19:00:42,490 - app.core.excel.processor - INFO - 条码 6901404300854 处理结果:正常商品数量3.0,单价1.2,赠品数量0 +2025-05-05 19:00:42,490 - app.core.excel.processor - INFO - 条码 4897031010292 处理结果:正常商品数量2.0,单价19.0,赠品数量0 +2025-05-05 19:00:42,490 - app.core.excel.processor - INFO - 条码 6903148171813 处理结果:正常商品数量3.0,单价14.5,赠品数量0 +2025-05-05 19:00:42,490 - app.core.excel.processor - INFO - 条码 6902088951875 处理结果:正常商品数量2.0,单价16.5,赠品数量0 +2025-05-05 19:00:44,017 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:00:44,019 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185842.xls +2025-05-05 19:02:32,165 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:02:32,167 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:02:32,169 - app.core.excel.processor - INFO - 开始处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:02:32,845 - app.core.excel.processor - INFO - 成功读取Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx, 共 26 行 +2025-05-05 19:02:32,847 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 35 +2025-05-05 19:02:32,847 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-05 19:02:32,862 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 25 行有效数据 +2025-05-05 19:02:32,862 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条码 +2025-05-05 19:02:32,862 - app.core.excel.processor - INFO - 使用条码列: 条码 +2025-05-05 19:02:32,862 - app.core.excel.processor - INFO - 找到name列(部分匹配): 商品全名 +2025-05-05 19:02:32,862 - app.core.excel.processor - INFO - 找到specification列: 规格 +2025-05-05 19:02:32,862 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2025-05-05 19:02:32,863 - app.core.excel.processor - INFO - 找到unit列: 单位 +2025-05-05 19:02:32,863 - app.core.excel.processor - INFO - 找到price列: 单价 +2025-05-05 19:02:32,863 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条码', 'name': '商品全名', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价'} +2025-05-05 19:02:32,863 - app.core.excel.processor - INFO - 是否存在规格列: True +2025-05-05 19:02:32,864 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6902088127225, 名称=720g力士沐浴露樱花柔润, 规格=, 数量=2.0, 单位=瓶, 单价=24.0 +2025-05-05 19:02:32,864 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:02:32,865 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6902088310801, 名称=720g力士沐浴露幽莲魅肤, 规格=, 数量=2.0, 单位=瓶, 单价=24.0 +2025-05-05 19:02:32,865 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:02:32,866 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6902088421200, 名称=400g多芬沐浴露樱花甜香, 规格=, 数量=2.0, 单位=瓶, 单价=19.0 +2025-05-05 19:02:32,866 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:02:32,866 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6902022135316, 名称=3kg蓝刀亮深层洁净自然清香, 规格=, 数量=2.0, 单位=瓶, 单价=32.5 +2025-05-05 19:02:32,866 - app.core.excel.processor - INFO - 解析规格: 1*4 -> 包装数量=4 +2025-05-05 19:02:32,867 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6902022138256, 名称=1kg袋装蓝月亮深洁清香, 规格=, 数量=2.0, 单位=袋, 单价=12.5 +2025-05-05 19:02:32,867 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:02:32,867 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6970731334498, 名称=L号倍丝柔女士一次性内裤4条装, 规格=, 数量=2.0, 单位=盒, 单价=14.0 +2025-05-05 19:02:32,867 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2025-05-05 19:02:32,926 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6970731334504, 名称=x1倍丝柔女士一次性内裤4条装, 规格=, 数量=2.0, 单位=盒, 单价=14.0 +2025-05-05 19:02:32,926 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2025-05-05 19:02:32,927 - app.core.excel.processor - INFO - 第8行: 提取商品信息 条码=6934925983107, 名称=3706洁丽雅女士新款隐形袜, 规格=, 数量=12.0, 单位=双, 单价=6.0 +2025-05-05 19:02:32,927 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:02:32,927 - app.core.excel.processor - INFO - 第9行: 提取商品信息 条码=6942203405654, 名称=3040洁丽雅男士新款隐形袜, 规格=, 数量=12.0, 单位=双, 单价=6.0 +2025-05-05 19:02:32,931 - app.core.excel.processor - WARNING - 无法从商品名'3040洁丽雅男士新款隐形袜' 推断规格 +2025-05-05 19:02:32,933 - app.core.excel.processor - ERROR - 提取第11行商品信息时出错: could not convert string to float: '单价' +Traceback (most recent call last): + File "D:\My Documents\python\orc-order-v2\app\core\excel\processor.py", line 258, in extract_product_info + 'price': float(row[column_mapping['price']]) if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]) else 0, +ValueError: could not convert string to float: '单价' +2025-05-05 19:02:32,934 - app.core.excel.processor - INFO - 第12行: 提取商品信息 条码=6901294179592, 名称=80ML六神驱蚊喷雾花露水, 规格=, 数量=5.0, 单位=瓶, 单价=11.5 +2025-05-05 19:02:32,934 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:02:32,934 - app.core.excel.processor - INFO - 第13行: 提取商品信息 条码=6901294175341, 名称=80ml六神止痒花露水, 规格=, 数量=3.0, 单位=瓶, 单价=11.5 +2025-05-05 19:02:32,934 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:02:32,935 - app.core.excel.processor - INFO - 第14行: 提取商品信息 条码=6907861191417, 名称=5155彩虹蚊香液1+1器无味, 规格=, 数量=5.0, 单位=套, 单价=15.18 +2025-05-05 19:02:32,935 - app.core.excel.processor - INFO - 解析规格: 1*40 -> 包装数量=40 +2025-05-05 19:02:32,935 - app.core.excel.processor - INFO - 第15行: 提取商品信息 条码=6907861191127, 名称=5113彩虹双瓶乖乖无味蚊香液, 规格=, 数量=5.0, 单位=套, 单价=22.1 +2025-05-05 19:02:32,935 - app.core.excel.processor - INFO - 解析规格: 1*20 -> 包装数量=20 +2025-05-05 19:02:32,936 - app.core.excel.processor - INFO - 第16行: 提取商品信息 条码=6907861050196, 名称=彩虹单瓶Q5105蚊香液无味36ml, 规格=, 数量=5.0, 单位=瓶, 单价=10.37 +2025-05-05 19:02:32,936 - app.core.excel.processor - INFO - 解析规格: 1*80 -> 包装数量=80 +2025-05-05 19:02:36,892 - app.core.excel.processor - ERROR - 提取第17行商品信息时出错: could not convert string to float: '2\n96' +Traceback (most recent call last): + File "D:\My Documents\python\orc-order-v2\app\core\excel\processor.py", line 258, in extract_product_info + 'price': float(row[column_mapping['price']]) if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]) else 0, +ValueError: could not convert string to float: '2\n96' +2025-05-05 19:02:36,893 - app.core.excel.processor - INFO - 第18行: 提取商品信息 条码=6901826888138, 名称=南孚5号电池两粒装, 规格=, 数量=1.0, 单位=盒, 单价=112.0 +2025-05-05 19:02:36,893 - app.core.excel.processor - INFO - 解析规格: 1*60 -> 包装数量=60 +2025-05-05 19:02:36,893 - app.core.excel.processor - INFO - 第19行: 提取商品信息 条码=6923146100370, 名称=杜蕾斯玻尿酸避孕套3只装, 规格=, 数量=3.0, 单位=盒, 单价=15.5 +2025-05-05 19:02:36,893 - app.core.excel.processor - INFO - 解析规格: 1*96 -> 包装数量=96 +2025-05-05 19:02:36,894 - app.core.excel.processor - INFO - 第20行: 提取商品信息 条码=6973043880493, 名称=南孚纽扣电池CR2032, 规格=, 数量=1.0, 单位=板, 单价=10.0 +2025-05-05 19:02:36,894 - app.core.excel.processor - INFO - 解析规格: 1*5 -> 包装数量=5 +2025-05-05 19:02:36,894 - app.core.excel.processor - INFO - 第23行: 提取商品信息 条码=6972118660114, 名称=家丽欣6011一次性胶杯, 规格=, 数量=3.0, 单位=个, 单价=4.5 +2025-05-05 19:02:36,895 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:02:36,895 - app.core.excel.processor - INFO - 第24行: 提取商品信息 条码=6956934838605, 名称=83860云蕾双排纸杯50只, 规格=, 数量=3.0, 单位=个, 单价=3.6 +2025-05-05 19:02:36,896 - app.core.excel.processor - INFO - 解析规格: 1×40 -> 包装数量=40 +2025-05-05 19:02:36,896 - app.core.excel.processor - INFO - 提取到 19 个商品信息 +2025-05-05 19:02:36,904 - app.core.excel.processor - INFO - 开始处理19 个产品信息 +2025-05-05 19:02:36,904 - app.core.excel.processor - INFO - 处理商品: 条码=6902088127225, 数量=2.0, 单价=24.0, 是否赠品=False +2025-05-05 19:02:36,904 - app.core.excel.processor - INFO - 发现正常商品:条码6902088127225, 数量=2.0, 单价=24.0 +2025-05-05 19:02:36,904 - app.core.excel.processor - INFO - 处理商品: 条码=6902088310801, 数量=2.0, 单价=24.0, 是否赠品=False +2025-05-05 19:02:36,905 - app.core.excel.processor - INFO - 发现正常商品:条码6902088310801, 数量=2.0, 单价=24.0 +2025-05-05 19:02:36,905 - app.core.excel.processor - INFO - 处理商品: 条码=6902088421200, 数量=2.0, 单价=19.0, 是否赠品=False +2025-05-05 19:02:36,905 - app.core.excel.processor - INFO - 发现正常商品:条码6902088421200, 数量=2.0, 单价=19.0 +2025-05-05 19:02:36,905 - app.core.excel.processor - INFO - 处理商品: 条码=6902022135316, 数量=2.0, 单价=32.5, 是否赠品=False +2025-05-05 19:02:36,905 - app.core.excel.processor - INFO - 发现正常商品:条码6902022135316, 数量=2.0, 单价=32.5 +2025-05-05 19:02:36,905 - app.core.excel.processor - INFO - 处理商品: 条码=6902022138256, 数量=2.0, 单价=12.5, 是否赠品=False +2025-05-05 19:02:40,770 - app.core.excel.processor - INFO - 发现正常商品:条码6902022138256, 数量=2.0, 单价=12.5 +2025-05-05 19:02:40,770 - app.core.excel.processor - INFO - 处理商品: 条码=6970731334498, 数量=2.0, 单价=14.0, 是否赠品=False +2025-05-05 19:02:40,770 - app.core.excel.processor - INFO - 发现正常商品:条码6970731334498, 数量=2.0, 单价=14.0 +2025-05-05 19:02:40,770 - app.core.excel.processor - INFO - 处理商品: 条码=6970731334504, 数量=2.0, 单价=14.0, 是否赠品=False +2025-05-05 19:02:40,770 - app.core.excel.processor - INFO - 发现正常商品:条码6970731334504, 数量=2.0, 单价=14.0 +2025-05-05 19:02:40,770 - app.core.excel.processor - INFO - 处理商品: 条码=6934925983107, 数量=12.0, 单价=6.0, 是否赠品=False +2025-05-05 19:02:40,770 - app.core.excel.processor - INFO - 发现正常商品:条码6934925983107, 数量=12.0, 单价=6.0 +2025-05-05 19:02:40,770 - app.core.excel.processor - INFO - 处理商品: 条码=6942203405654, 数量=12.0, 单价=6.0, 是否赠品=False +2025-05-05 19:02:40,771 - app.core.excel.processor - INFO - 发现正常商品:条码6942203405654, 数量=12.0, 单价=6.0 +2025-05-05 19:02:40,771 - app.core.excel.processor - INFO - 处理商品: 条码=6901294179592, 数量=5.0, 单价=11.5, 是否赠品=False +2025-05-05 19:02:40,771 - app.core.excel.processor - INFO - 发现正常商品:条码6901294179592, 数量=5.0, 单价=11.5 +2025-05-05 19:02:40,771 - app.core.excel.processor - INFO - 处理商品: 条码=6901294175341, 数量=3.0, 单价=11.5, 是否赠品=False +2025-05-05 19:02:40,771 - app.core.excel.processor - INFO - 发现正常商品:条码6901294175341, 数量=3.0, 单价=11.5 +2025-05-05 19:02:40,771 - app.core.excel.processor - INFO - 处理商品: 条码=6907861191417, 数量=5.0, 单价=15.18, 是否赠品=False +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 发现正常商品:条码6907861191417, 数量=5.0, 单价=15.18 +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 处理商品: 条码=6907861191127, 数量=5.0, 单价=22.1, 是否赠品=False +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 发现正常商品:条码6907861191127, 数量=5.0, 单价=22.1 +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 处理商品: 条码=6907861050196, 数量=5.0, 单价=10.37, 是否赠品=False +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 发现正常商品:条码6907861050196, 数量=5.0, 单价=10.37 +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 处理商品: 条码=6901826888138, 数量=1.0, 单价=112.0, 是否赠品=False +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 发现正常商品:条码6901826888138, 数量=1.0, 单价=112.0 +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 处理商品: 条码=6923146100370, 数量=3.0, 单价=15.5, 是否赠品=False +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 发现正常商品:条码6923146100370, 数量=3.0, 单价=15.5 +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 处理商品: 条码=6973043880493, 数量=1.0, 单价=10.0, 是否赠品=False +2025-05-05 19:02:40,772 - app.core.excel.processor - INFO - 发现正常商品:条码6973043880493, 数量=1.0, 单价=10.0 +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 处理商品: 条码=6972118660114, 数量=3.0, 单价=4.5, 是否赠品=False +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 发现正常商品:条码6972118660114, 数量=3.0, 单价=4.5 +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 处理商品: 条码=6956934838605, 数量=3.0, 单价=3.6, 是否赠品=False +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 发现正常商品:条码6956934838605, 数量=3.0, 单价=3.6 +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 分组后共19 个不同条码的商品 +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 条码 6902088127225 处理结果:正常商品数量2.0,单价24.0,赠品数量0 +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 条码 6902088310801 处理结果:正常商品数量2.0,单价24.0,赠品数量0 +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 条码 6902088421200 处理结果:正常商品数量2.0,单价19.0,赠品数量0 +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 条码 6902022135316 处理结果:正常商品数量2.0,单价32.5,赠品数量0 +2025-05-05 19:02:40,774 - app.core.excel.processor - INFO - 条码 6902022138256 处理结果:正常商品数量2.0,单价12.5,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6970731334498 处理结果:正常商品数量2.0,单价14.0,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6970731334504 处理结果:正常商品数量2.0,单价14.0,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6934925983107 处理结果:正常商品数量12.0,单价6.0,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6942203405654 处理结果:正常商品数量12.0,单价6.0,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6901294179592 处理结果:正常商品数量5.0,单价11.5,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6901294175341 处理结果:正常商品数量3.0,单价11.5,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6907861191417 处理结果:正常商品数量5.0,单价15.18,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6907861191127 处理结果:正常商品数量5.0,单价22.1,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6907861050196 处理结果:正常商品数量5.0,单价10.37,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6901826888138 处理结果:正常商品数量1.0,单价112.0,赠品数量0 +2025-05-05 19:02:44,925 - app.core.excel.processor - INFO - 条码 6923146100370 处理结果:正常商品数量3.0,单价15.5,赠品数量0 +2025-05-05 19:02:44,926 - app.core.excel.processor - INFO - 条码 6973043880493 处理结果:正常商品数量1.0,单价10.0,赠品数量0 +2025-05-05 19:02:44,926 - app.core.excel.processor - INFO - 条码 6972118660114 处理结果:正常商品数量3.0,单价4.5,赠品数量0 +2025-05-05 19:02:44,926 - app.core.excel.processor - INFO - 条码 6956934838605 处理结果:正常商品数量3.0,单价3.6,赠品数量0 +2025-05-05 19:02:44,929 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:02:44,931 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:02:54,872 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:02:54,873 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:15:12,553 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:15:12,553 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:15:12,554 - app.core.excel.processor - INFO - 开始处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:15:13,196 - app.core.excel.processor - INFO - 成功读取Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx, 共 26 行 +2025-05-05 19:15:13,202 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 35 +2025-05-05 19:15:13,202 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-05 19:15:13,220 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 25 行有效数据 +2025-05-05 19:15:13,220 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条码 +2025-05-05 19:15:13,220 - app.core.excel.processor - INFO - 使用条码列: 条码 +2025-05-05 19:15:13,220 - app.core.excel.processor - INFO - 找到name列(部分匹配): 商品全名 +2025-05-05 19:15:13,220 - app.core.excel.processor - INFO - 找到specification列: 规格 +2025-05-05 19:15:13,220 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2025-05-05 19:15:13,220 - app.core.excel.processor - INFO - 找到unit列: 单位 +2025-05-05 19:15:13,221 - app.core.excel.processor - INFO - 找到price列: 单价 +2025-05-05 19:15:13,221 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条码', 'name': '商品全名', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价'} +2025-05-05 19:15:13,222 - app.core.excel.processor - INFO - 是否存在规格列: True +2025-05-05 19:15:13,223 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6902088127225, 名称=720g力士沐浴露樱花柔润, 规格=, 数量=2.0, 单位=瓶, 单价=24.0 +2025-05-05 19:15:13,224 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:15:13,225 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6902088310801, 名称=720g力士沐浴露幽莲魅肤, 规格=, 数量=2.0, 单位=瓶, 单价=24.0 +2025-05-05 19:15:13,225 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:15:13,226 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6902088421200, 名称=400g多芬沐浴露樱花甜香, 规格=, 数量=2.0, 单位=瓶, 单价=19.0 +2025-05-05 19:15:13,226 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:15:13,228 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6902022135316, 名称=3kg蓝刀亮深层洁净自然清香, 规格=, 数量=2.0, 单位=瓶, 单价=32.5 +2025-05-05 19:15:13,229 - app.core.excel.processor - INFO - 解析规格: 1*4 -> 包装数量=4 +2025-05-05 19:15:13,229 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6902022138256, 名称=1kg袋装蓝月亮深洁清香, 规格=, 数量=2.0, 单位=袋, 单价=12.5 +2025-05-05 19:15:13,229 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:15:13,231 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6970731334498, 名称=L号倍丝柔女士一次性内裤4条装, 规格=, 数量=2.0, 单位=盒, 单价=14.0 +2025-05-05 19:15:13,232 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2025-05-05 19:15:13,233 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6970731334504, 名称=x1倍丝柔女士一次性内裤4条装, 规格=, 数量=2.0, 单位=盒, 单价=14.0 +2025-05-05 19:15:13,233 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2025-05-05 19:15:13,234 - app.core.excel.processor - INFO - 第8行: 提取商品信息 条码=6934925983107, 名称=3706洁丽雅女士新款隐形袜, 规格=, 数量=12.0, 单位=双, 单价=6.0 +2025-05-05 19:15:13,234 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:15:13,235 - app.core.excel.processor - INFO - 第9行: 提取商品信息 条码=6942203405654, 名称=3040洁丽雅男士新款隐形袜, 规格=, 数量=12.0, 单位=双, 单价=6.0 +2025-05-05 19:15:13,239 - app.core.excel.processor - WARNING - 无法从商品名'3040洁丽雅男士新款隐形袜' 推断规格 +2025-05-05 19:15:13,239 - app.core.excel.processor - ERROR - 提取第11行商品信息时出错: could not convert string to float: '单价' +Traceback (most recent call last): + File "D:\My Documents\python\orc-order-v2\app\core\excel\processor.py", line 258, in extract_product_info + 'price': float(row[column_mapping['price']]) if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]) else 0, +ValueError: could not convert string to float: '单价' +2025-05-05 19:15:13,241 - app.core.excel.processor - INFO - 第12行: 提取商品信息 条码=6901294179592, 名称=80ML六神驱蚊喷雾花露水, 规格=, 数量=5.0, 单位=瓶, 单价=11.5 +2025-05-05 19:15:13,242 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:15:13,243 - app.core.excel.processor - INFO - 第13行: 提取商品信息 条码=6901294175341, 名称=80ml六神止痒花露水, 规格=, 数量=3.0, 单位=瓶, 单价=11.5 +2025-05-05 19:15:13,243 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:15:13,243 - app.core.excel.processor - INFO - 第14行: 提取商品信息 条码=6907861191417, 名称=5155彩虹蚊香液1+1器无味, 规格=, 数量=5.0, 单位=套, 单价=15.18 +2025-05-05 19:15:13,244 - app.core.excel.processor - INFO - 解析规格: 1*40 -> 包装数量=40 +2025-05-05 19:15:13,245 - app.core.excel.processor - INFO - 第15行: 提取商品信息 条码=6907861191127, 名称=5113彩虹双瓶乖乖无味蚊香液, 规格=, 数量=5.0, 单位=套, 单价=22.1 +2025-05-05 19:15:13,245 - app.core.excel.processor - INFO - 解析规格: 1*20 -> 包装数量=20 +2025-05-05 19:15:13,247 - app.core.excel.processor - INFO - 第16行: 提取商品信息 条码=6907861050196, 名称=彩虹单瓶Q5105蚊香液无味36ml, 规格=, 数量=5.0, 单位=瓶, 单价=10.37 +2025-05-05 19:15:13,247 - app.core.excel.processor - INFO - 解析规格: 1*80 -> 包装数量=80 +2025-05-05 19:15:16,011 - app.core.excel.processor - ERROR - 提取第17行商品信息时出错: could not convert string to float: '2\n96' +Traceback (most recent call last): + File "D:\My Documents\python\orc-order-v2\app\core\excel\processor.py", line 258, in extract_product_info + 'price': float(row[column_mapping['price']]) if column_mapping.get('price') and not pd.isna(row[column_mapping['price']]) else 0, +ValueError: could not convert string to float: '2\n96' +2025-05-05 19:15:16,013 - app.core.excel.processor - INFO - 第18行: 提取商品信息 条码=6901826888138, 名称=南孚5号电池两粒装, 规格=, 数量=1.0, 单位=盒, 单价=112.0 +2025-05-05 19:15:16,013 - app.core.excel.processor - INFO - 解析规格: 1*60 -> 包装数量=60 +2025-05-05 19:15:16,014 - app.core.excel.processor - INFO - 第19行: 提取商品信息 条码=6923146100370, 名称=杜蕾斯玻尿酸避孕套3只装, 规格=, 数量=3.0, 单位=盒, 单价=15.5 +2025-05-05 19:15:16,014 - app.core.excel.processor - INFO - 解析规格: 1*96 -> 包装数量=96 +2025-05-05 19:15:16,014 - app.core.excel.processor - INFO - 第20行: 提取商品信息 条码=6973043880493, 名称=南孚纽扣电池CR2032, 规格=, 数量=1.0, 单位=板, 单价=10.0 +2025-05-05 19:15:16,014 - app.core.excel.processor - INFO - 解析规格: 1*5 -> 包装数量=5 +2025-05-05 19:15:16,015 - app.core.excel.processor - INFO - 第23行: 提取商品信息 条码=6972118660114, 名称=家丽欣6011一次性胶杯, 规格=, 数量=3.0, 单位=个, 单价=4.5 +2025-05-05 19:15:16,015 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:15:16,016 - app.core.excel.processor - INFO - 第24行: 提取商品信息 条码=6956934838605, 名称=83860云蕾双排纸杯50只, 规格=, 数量=3.0, 单位=个, 单价=3.6 +2025-05-05 19:15:16,016 - app.core.excel.processor - INFO - 解析规格: 1×40 -> 包装数量=40 +2025-05-05 19:15:16,016 - app.core.excel.processor - INFO - 提取到 19 个商品信息 +2025-05-05 19:15:16,023 - app.core.excel.processor - INFO - 开始处理19 个产品信息 +2025-05-05 19:15:16,023 - app.core.excel.processor - INFO - 处理商品: 条码=6902088127225, 数量=2.0, 单价=24.0, 是否赠品=False +2025-05-05 19:15:16,023 - app.core.excel.processor - INFO - 发现正常商品:条码6902088127225, 数量=2.0, 单价=24.0 +2025-05-05 19:15:16,023 - app.core.excel.processor - INFO - 处理商品: 条码=6902088310801, 数量=2.0, 单价=24.0, 是否赠品=False +2025-05-05 19:15:16,023 - app.core.excel.processor - INFO - 发现正常商品:条码6902088310801, 数量=2.0, 单价=24.0 +2025-05-05 19:15:16,024 - app.core.excel.processor - INFO - 处理商品: 条码=6902088421200, 数量=2.0, 单价=19.0, 是否赠品=False +2025-05-05 19:15:16,024 - app.core.excel.processor - INFO - 发现正常商品:条码6902088421200, 数量=2.0, 单价=19.0 +2025-05-05 19:15:19,149 - app.core.excel.processor - INFO - 处理商品: 条码=6902022135316, 数量=2.0, 单价=32.5, 是否赠品=False +2025-05-05 19:15:19,150 - app.core.excel.processor - INFO - 发现正常商品:条码6902022135316, 数量=2.0, 单价=32.5 +2025-05-05 19:15:19,150 - app.core.excel.processor - INFO - 处理商品: 条码=6902022138256, 数量=2.0, 单价=12.5, 是否赠品=False +2025-05-05 19:15:19,150 - app.core.excel.processor - INFO - 发现正常商品:条码6902022138256, 数量=2.0, 单价=12.5 +2025-05-05 19:15:19,150 - app.core.excel.processor - INFO - 处理商品: 条码=6970731334498, 数量=2.0, 单价=14.0, 是否赠品=False +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 发现正常商品:条码6970731334498, 数量=2.0, 单价=14.0 +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 处理商品: 条码=6970731334504, 数量=2.0, 单价=14.0, 是否赠品=False +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 发现正常商品:条码6970731334504, 数量=2.0, 单价=14.0 +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 处理商品: 条码=6934925983107, 数量=12.0, 单价=6.0, 是否赠品=False +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 发现正常商品:条码6934925983107, 数量=12.0, 单价=6.0 +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 处理商品: 条码=6942203405654, 数量=12.0, 单价=6.0, 是否赠品=False +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 发现正常商品:条码6942203405654, 数量=12.0, 单价=6.0 +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 处理商品: 条码=6901294179592, 数量=5.0, 单价=11.5, 是否赠品=False +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 发现正常商品:条码6901294179592, 数量=5.0, 单价=11.5 +2025-05-05 19:15:19,151 - app.core.excel.processor - INFO - 处理商品: 条码=6901294175341, 数量=3.0, 单价=11.5, 是否赠品=False +2025-05-05 19:15:19,152 - app.core.excel.processor - INFO - 发现正常商品:条码6901294175341, 数量=3.0, 单价=11.5 +2025-05-05 19:15:19,152 - app.core.excel.processor - INFO - 处理商品: 条码=6907861191417, 数量=5.0, 单价=15.18, 是否赠品=False +2025-05-05 19:15:19,152 - app.core.excel.processor - INFO - 发现正常商品:条码6907861191417, 数量=5.0, 单价=15.18 +2025-05-05 19:15:19,152 - app.core.excel.processor - INFO - 处理商品: 条码=6907861191127, 数量=5.0, 单价=22.1, 是否赠品=False +2025-05-05 19:15:19,152 - app.core.excel.processor - INFO - 发现正常商品:条码6907861191127, 数量=5.0, 单价=22.1 +2025-05-05 19:15:19,152 - app.core.excel.processor - INFO - 处理商品: 条码=6907861050196, 数量=5.0, 单价=10.37, 是否赠品=False +2025-05-05 19:15:19,152 - app.core.excel.processor - INFO - 发现正常商品:条码6907861050196, 数量=5.0, 单价=10.37 +2025-05-05 19:15:19,153 - app.core.excel.processor - INFO - 处理商品: 条码=6901826888138, 数量=30.0, 单价=3.7333333333333334, 是否赠品=False +2025-05-05 19:15:19,153 - app.core.excel.processor - INFO - 发现正常商品:条码6901826888138, 数量=30.0, 单价=3.7333333333333334 +2025-05-05 19:15:19,153 - app.core.excel.processor - INFO - 处理商品: 条码=6923146100370, 数量=3.0, 单价=15.5, 是否赠品=False +2025-05-05 19:15:19,153 - app.core.excel.processor - INFO - 发现正常商品:条码6923146100370, 数量=3.0, 单价=15.5 +2025-05-05 19:15:19,153 - app.core.excel.processor - INFO - 处理商品: 条码=6973043880493, 数量=1.0, 单价=10.0, 是否赠品=False +2025-05-05 19:15:19,153 - app.core.excel.processor - INFO - 发现正常商品:条码6973043880493, 数量=1.0, 单价=10.0 +2025-05-05 19:15:19,153 - app.core.excel.processor - INFO - 处理商品: 条码=6972118660114, 数量=3.0, 单价=4.5, 是否赠品=False +2025-05-05 19:15:19,154 - app.core.excel.processor - INFO - 发现正常商品:条码6972118660114, 数量=3.0, 单价=4.5 +2025-05-05 19:15:19,154 - app.core.excel.processor - INFO - 处理商品: 条码=6956934838605, 数量=3.0, 单价=3.6, 是否赠品=False +2025-05-05 19:15:19,154 - app.core.excel.processor - INFO - 发现正常商品:条码6956934838605, 数量=3.0, 单价=3.6 +2025-05-05 19:15:19,154 - app.core.excel.processor - INFO - 分组后共19 个不同条码的商品 +2025-05-05 19:15:19,154 - app.core.excel.processor - INFO - 条码 6902088127225 处理结果:正常商品数量2.0,单价24.0,赠品数量0 +2025-05-05 19:15:22,295 - app.core.excel.processor - INFO - 条码 6902088310801 处理结果:正常商品数量2.0,单价24.0,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6902088421200 处理结果:正常商品数量2.0,单价19.0,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6902022135316 处理结果:正常商品数量2.0,单价32.5,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6902022138256 处理结果:正常商品数量2.0,单价12.5,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6970731334498 处理结果:正常商品数量2.0,单价14.0,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6970731334504 处理结果:正常商品数量2.0,单价14.0,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6934925983107 处理结果:正常商品数量12.0,单价6.0,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6942203405654 处理结果:正常商品数量12.0,单价6.0,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6901294179592 处理结果:正常商品数量5.0,单价11.5,赠品数量0 +2025-05-05 19:15:22,296 - app.core.excel.processor - INFO - 条码 6901294175341 处理结果:正常商品数量3.0,单价11.5,赠品数量0 +2025-05-05 19:15:22,297 - app.core.excel.processor - INFO - 条码 6907861191417 处理结果:正常商品数量5.0,单价15.18,赠品数量0 +2025-05-05 19:15:22,297 - app.core.excel.processor - INFO - 条码 6907861191127 处理结果:正常商品数量5.0,单价22.1,赠品数量0 +2025-05-05 19:15:22,297 - app.core.excel.processor - INFO - 条码 6907861050196 处理结果:正常商品数量5.0,单价10.37,赠品数量0 +2025-05-05 19:15:22,297 - app.core.excel.processor - INFO - 条码 6901826888138 处理结果:正常商品数量30.0,单价3.7333333333333334,赠品数量0 +2025-05-05 19:15:22,297 - app.core.excel.processor - INFO - 条码 6923146100370 处理结果:正常商品数量3.0,单价15.5,赠品数量0 +2025-05-05 19:15:22,297 - app.core.excel.processor - INFO - 条码 6973043880493 处理结果:正常商品数量1.0,单价10.0,赠品数量0 +2025-05-05 19:15:22,297 - app.core.excel.processor - INFO - 条码 6972118660114 处理结果:正常商品数量3.0,单价4.5,赠品数量0 +2025-05-05 19:15:22,298 - app.core.excel.processor - INFO - 条码 6956934838605 处理结果:正常商品数量3.0,单价3.6,赠品数量0 +2025-05-05 19:15:22,301 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:15:22,303 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:18:54,502 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:18:54,507 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:19:59,313 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:19:59,313 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:19:59,315 - app.core.excel.processor - INFO - 开始处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:19:59,995 - app.core.excel.processor - INFO - 成功读取Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx, 共 26 行 +2025-05-05 19:20:00,006 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 35 +2025-05-05 19:20:00,007 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-05 19:20:00,068 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 25 行有效数据 +2025-05-05 19:20:00,068 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条码 +2025-05-05 19:20:00,069 - app.core.excel.processor - INFO - 使用条码列: 条码 +2025-05-05 19:20:00,069 - app.core.excel.processor - INFO - 找到name列(部分匹配): 商品全名 +2025-05-05 19:20:00,076 - app.core.excel.processor - INFO - 找到specification列: 规格 +2025-05-05 19:20:00,077 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2025-05-05 19:20:00,077 - app.core.excel.processor - INFO - 找到unit列: 单位 +2025-05-05 19:20:00,077 - app.core.excel.processor - INFO - 找到price列: 单价 +2025-05-05 19:20:00,077 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条码', 'name': '商品全名', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价'} +2025-05-05 19:20:00,077 - app.core.excel.processor - INFO - 是否存在规格列: True +2025-05-05 19:20:00,078 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6902088127225, 名称=720g力士沐浴露樱花柔润, 规格=, 数量=2.0, 单位=瓶, 单价=24.0 +2025-05-05 19:20:00,079 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:20:00,081 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6902088310801, 名称=720g力士沐浴露幽莲魅肤, 规格=, 数量=2.0, 单位=瓶, 单价=24.0 +2025-05-05 19:20:00,081 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:20:00,082 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6902088421200, 名称=400g多芬沐浴露樱花甜香, 规格=, 数量=2.0, 单位=瓶, 单价=19.0 +2025-05-05 19:20:00,082 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:20:00,117 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6902022135316, 名称=3kg蓝刀亮深层洁净自然清香, 规格=, 数量=2.0, 单位=瓶, 单价=32.5 +2025-05-05 19:20:00,118 - app.core.excel.processor - INFO - 解析规格: 1*4 -> 包装数量=4 +2025-05-05 19:20:00,118 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6902022138256, 名称=1kg袋装蓝月亮深洁清香, 规格=, 数量=2.0, 单位=袋, 单价=12.5 +2025-05-05 19:20:00,119 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:20:00,119 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6970731334498, 名称=L号倍丝柔女士一次性内裤4条装, 规格=, 数量=2.0, 单位=盒, 单价=14.0 +2025-05-05 19:20:00,119 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2025-05-05 19:20:00,121 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6970731334504, 名称=x1倍丝柔女士一次性内裤4条装, 规格=, 数量=2.0, 单位=盒, 单价=14.0 +2025-05-05 19:20:00,121 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2025-05-05 19:20:00,122 - app.core.excel.processor - INFO - 第8行: 提取商品信息 条码=6934925983107, 名称=3706洁丽雅女士新款隐形袜, 规格=, 数量=12.0, 单位=双, 单价=6.0 +2025-05-05 19:20:00,123 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:20:00,124 - app.core.excel.processor - INFO - 第9行: 提取商品信息 条码=6942203405654, 名称=3040洁丽雅男士新款隐形袜, 规格=, 数量=12.0, 单位=双, 单价=6.0 +2025-05-05 19:20:00,135 - app.core.excel.processor - WARNING - 无法从商品名'3040洁丽雅男士新款隐形袜' 推断规格 +2025-05-05 19:20:00,136 - app.core.excel.processor - WARNING - 价格转换失败,原始值: '单价',使用默认值0 +2025-05-05 19:20:00,137 - app.core.excel.processor - INFO - 第11行: 提取商品信息 条码=条码, 名称=商品全名, 规格=, 数量=0, 单位=单位, 单价=0 +2025-05-05 19:20:00,139 - app.core.excel.processor - INFO - 第12行: 提取商品信息 条码=6901294179592, 名称=80ML六神驱蚊喷雾花露水, 规格=, 数量=5.0, 单位=瓶, 单价=11.5 +2025-05-05 19:20:00,139 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:20:00,141 - app.core.excel.processor - INFO - 第13行: 提取商品信息 条码=6901294175341, 名称=80ml六神止痒花露水, 规格=, 数量=3.0, 单位=瓶, 单价=11.5 +2025-05-05 19:20:00,141 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:20:00,141 - app.core.excel.processor - INFO - 第14行: 提取商品信息 条码=6907861191417, 名称=5155彩虹蚊香液1+1器无味, 规格=, 数量=5.0, 单位=套, 单价=15.18 +2025-05-05 19:20:01,511 - app.core.excel.processor - INFO - 解析规格: 1*40 -> 包装数量=40 +2025-05-05 19:20:01,512 - app.core.excel.processor - INFO - 第15行: 提取商品信息 条码=6907861191127, 名称=5113彩虹双瓶乖乖无味蚊香液, 规格=, 数量=5.0, 单位=套, 单价=22.1 +2025-05-05 19:20:01,513 - app.core.excel.processor - INFO - 解析规格: 1*20 -> 包装数量=20 +2025-05-05 19:20:01,513 - app.core.excel.processor - INFO - 第16行: 提取商品信息 条码=6907861050196, 名称=彩虹单瓶Q5105蚊香液无味36ml, 规格=, 数量=5.0, 单位=瓶, 单价=10.37 +2025-05-05 19:20:01,513 - app.core.excel.processor - INFO - 解析规格: 1*80 -> 包装数量=80 +2025-05-05 19:20:01,514 - app.core.excel.processor - INFO - 第17行: 提取商品信息 条码=6901826817237, 名称=南孚电池5号5粒装, 规格=, 数量=1.0, 单位=盒, 单价=296.0 +2025-05-05 19:20:01,514 - app.core.excel.processor - INFO - 解析规格: 1*10 -> 包装数量=10 +2025-05-05 19:20:01,515 - app.core.excel.processor - INFO - 第18行: 提取商品信息 条码=6901826888138, 名称=南孚5号电池两粒装, 规格=, 数量=1.0, 单位=盒, 单价=112.0 +2025-05-05 19:20:01,515 - app.core.excel.processor - INFO - 解析规格: 1*60 -> 包装数量=60 +2025-05-05 19:20:01,516 - app.core.excel.processor - INFO - 第19行: 提取商品信息 条码=6923146100370, 名称=杜蕾斯玻尿酸避孕套3只装, 规格=, 数量=3.0, 单位=盒, 单价=15.5 +2025-05-05 19:20:01,516 - app.core.excel.processor - INFO - 解析规格: 1*96 -> 包装数量=96 +2025-05-05 19:20:01,517 - app.core.excel.processor - INFO - 第20行: 提取商品信息 条码=6973043880493, 名称=南孚纽扣电池CR2032, 规格=, 数量=1.0, 单位=板, 单价=10.0 +2025-05-05 19:20:01,517 - app.core.excel.processor - INFO - 解析规格: 1*5 -> 包装数量=5 +2025-05-05 19:20:01,518 - app.core.excel.processor - INFO - 第23行: 提取商品信息 条码=6972118660114, 名称=家丽欣6011一次性胶杯, 规格=, 数量=3.0, 单位=个, 单价=4.5 +2025-05-05 19:20:01,518 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:20:01,519 - app.core.excel.processor - INFO - 第24行: 提取商品信息 条码=6956934838605, 名称=83860云蕾双排纸杯50只, 规格=, 数量=3.0, 单位=个, 单价=3.6 +2025-05-05 19:20:01,519 - app.core.excel.processor - INFO - 解析规格: 1×40 -> 包装数量=40 +2025-05-05 19:20:04,680 - app.core.excel.processor - INFO - 提取到 21 个商品信息 +2025-05-05 19:20:04,689 - app.core.excel.processor - INFO - 开始处理21 个产品信息 +2025-05-05 19:20:04,690 - app.core.excel.processor - INFO - 处理商品: 条码=6902088127225, 数量=2.0, 单价=24.0, 是否赠品=False +2025-05-05 19:20:04,690 - app.core.excel.processor - INFO - 发现正常商品:条码6902088127225, 数量=2.0, 单价=24.0 +2025-05-05 19:20:04,690 - app.core.excel.processor - INFO - 处理商品: 条码=6902088310801, 数量=2.0, 单价=24.0, 是否赠品=False +2025-05-05 19:20:04,690 - app.core.excel.processor - INFO - 发现正常商品:条码6902088310801, 数量=2.0, 单价=24.0 +2025-05-05 19:20:04,690 - app.core.excel.processor - INFO - 处理商品: 条码=6902088421200, 数量=2.0, 单价=19.0, 是否赠品=False +2025-05-05 19:20:04,690 - app.core.excel.processor - INFO - 发现正常商品:条码6902088421200, 数量=2.0, 单价=19.0 +2025-05-05 19:20:04,690 - app.core.excel.processor - INFO - 处理商品: 条码=6902022135316, 数量=2.0, 单价=32.5, 是否赠品=False +2025-05-05 19:20:04,690 - app.core.excel.processor - INFO - 发现正常商品:条码6902022135316, 数量=2.0, 单价=32.5 +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 处理商品: 条码=6902022138256, 数量=2.0, 单价=12.5, 是否赠品=False +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 发现正常商品:条码6902022138256, 数量=2.0, 单价=12.5 +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 处理商品: 条码=6970731334498, 数量=2.0, 单价=14.0, 是否赠品=False +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 发现正常商品:条码6970731334498, 数量=2.0, 单价=14.0 +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 处理商品: 条码=6970731334504, 数量=2.0, 单价=14.0, 是否赠品=False +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 发现正常商品:条码6970731334504, 数量=2.0, 单价=14.0 +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 处理商品: 条码=6934925983107, 数量=12.0, 单价=6.0, 是否赠品=False +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 发现正常商品:条码6934925983107, 数量=12.0, 单价=6.0 +2025-05-05 19:20:04,691 - app.core.excel.processor - INFO - 处理商品: 条码=6942203405654, 数量=12.0, 单价=6.0, 是否赠品=False +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 发现正常商品:条码6942203405654, 数量=12.0, 单价=6.0 +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 处理商品: 条码=条码, 数量=0, 单价=0, 是否赠品=True +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 发现赠品:条码条码, 数量=0 +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 处理商品: 条码=6901294179592, 数量=5.0, 单价=11.5, 是否赠品=False +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 发现正常商品:条码6901294179592, 数量=5.0, 单价=11.5 +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 处理商品: 条码=6901294175341, 数量=3.0, 单价=11.5, 是否赠品=False +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 发现正常商品:条码6901294175341, 数量=3.0, 单价=11.5 +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 处理商品: 条码=6907861191417, 数量=5.0, 单价=15.18, 是否赠品=False +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 发现正常商品:条码6907861191417, 数量=5.0, 单价=15.18 +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 处理商品: 条码=6907861191127, 数量=5.0, 单价=22.1, 是否赠品=False +2025-05-05 19:20:04,692 - app.core.excel.processor - INFO - 发现正常商品:条码6907861191127, 数量=5.0, 单价=22.1 +2025-05-05 19:20:04,693 - app.core.excel.processor - INFO - 处理商品: 条码=6907861050196, 数量=5.0, 单价=10.37, 是否赠品=False +2025-05-05 19:20:04,693 - app.core.excel.processor - INFO - 发现正常商品:条码6907861050196, 数量=5.0, 单价=10.37 +2025-05-05 19:20:04,693 - app.core.excel.processor - INFO - 处理商品: 条码=6901826817237, 数量=1.0, 单价=296.0, 是否赠品=False +2025-05-05 19:20:04,693 - app.core.excel.processor - INFO - 发现正常商品:条码6901826817237, 数量=1.0, 单价=296.0 +2025-05-05 19:20:08,081 - app.core.excel.processor - INFO - 处理商品: 条码=6901826888138, 数量=30.0, 单价=3.7333333333333334, 是否赠品=False +2025-05-05 19:20:08,081 - app.core.excel.processor - INFO - 发现正常商品:条码6901826888138, 数量=30.0, 单价=3.7333333333333334 +2025-05-05 19:20:08,081 - app.core.excel.processor - INFO - 处理商品: 条码=6923146100370, 数量=3.0, 单价=15.5, 是否赠品=False +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 发现正常商品:条码6923146100370, 数量=3.0, 单价=15.5 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 处理商品: 条码=6973043880493, 数量=1.0, 单价=10.0, 是否赠品=False +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 发现正常商品:条码6973043880493, 数量=1.0, 单价=10.0 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 处理商品: 条码=6972118660114, 数量=3.0, 单价=4.5, 是否赠品=False +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 发现正常商品:条码6972118660114, 数量=3.0, 单价=4.5 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 处理商品: 条码=6956934838605, 数量=3.0, 单价=3.6, 是否赠品=False +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 发现正常商品:条码6956934838605, 数量=3.0, 单价=3.6 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 分组后共21 个不同条码的商品 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 条码 6902088127225 处理结果:正常商品数量2.0,单价24.0,赠品数量0 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 条码 6902088310801 处理结果:正常商品数量2.0,单价24.0,赠品数量0 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 条码 6902088421200 处理结果:正常商品数量2.0,单价19.0,赠品数量0 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 条码 6902022135316 处理结果:正常商品数量2.0,单价32.5,赠品数量0 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 条码 6902022138256 处理结果:正常商品数量2.0,单价12.5,赠品数量0 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 条码 6970731334498 处理结果:正常商品数量2.0,单价14.0,赠品数量0 +2025-05-05 19:20:08,083 - app.core.excel.processor - INFO - 条码 6970731334504 处理结果:正常商品数量2.0,单价14.0,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6934925983107 处理结果:正常商品数量12.0,单价6.0,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6942203405654 处理结果:正常商品数量12.0,单价6.0,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 条码 处理结果:只有赠品,数量=0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6901294179592 处理结果:正常商品数量5.0,单价11.5,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6901294175341 处理结果:正常商品数量3.0,单价11.5,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6907861191417 处理结果:正常商品数量5.0,单价15.18,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6907861191127 处理结果:正常商品数量5.0,单价22.1,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6907861050196 处理结果:正常商品数量5.0,单价10.37,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6901826817237 处理结果:正常商品数量1.0,单价296.0,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6901826888138 处理结果:正常商品数量30.0,单价3.7333333333333334,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6923146100370 处理结果:正常商品数量3.0,单价15.5,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6973043880493 处理结果:正常商品数量1.0,单价10.0,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6972118660114 处理结果:正常商品数量3.0,单价4.5,赠品数量0 +2025-05-05 19:20:08,084 - app.core.excel.processor - INFO - 条码 6956934838605 处理结果:正常商品数量3.0,单价3.6,赠品数量0 +2025-05-05 19:20:08,085 - app.core.excel.processor - INFO - 条码 条码 填充:仅有赠品,采购量=0,赠品数量=0 +2025-05-05 19:20:08,088 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:20:09,861 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:22:18,526 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:22:18,527 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:22:18,533 - app.core.excel.processor - INFO - 开始处理Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:22:19,563 - app.core.excel.processor - INFO - 成功读取Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx, 共 22 行 +2025-05-05 19:22:19,575 - app.core.excel.processor - INFO - 找到可能的表头行: 第1行,评分: 35 +2025-05-05 19:22:19,575 - app.core.excel.processor - INFO - 识别到表头在第 1 行 +2025-05-05 19:22:19,749 - app.core.excel.processor - INFO - 使用表头行重新读取数据,共 21 行有效数据 +2025-05-05 19:22:19,749 - app.core.excel.processor - INFO - 找到精确匹配的条码列: 条码 +2025-05-05 19:22:19,749 - app.core.excel.processor - INFO - 使用条码列: 条码 +2025-05-05 19:22:19,749 - app.core.excel.processor - INFO - 找到name列(部分匹配): 商品全名 +2025-05-05 19:22:19,749 - app.core.excel.processor - INFO - 找到specification列: 规格 +2025-05-05 19:22:19,750 - app.core.excel.processor - INFO - 找到quantity列: 数量 +2025-05-05 19:22:19,750 - app.core.excel.processor - INFO - 找到unit列: 单位 +2025-05-05 19:22:19,750 - app.core.excel.processor - INFO - 找到price列: 单价 +2025-05-05 19:22:19,750 - app.core.excel.processor - INFO - 列名映射结果: {'barcode': '条码', 'name': '商品全名', 'specification': '规格', 'quantity': '数量', 'unit': '单位', 'price': '单价'} +2025-05-05 19:22:19,750 - app.core.excel.processor - INFO - 是否存在规格列: True +2025-05-05 19:22:19,753 - app.core.excel.processor - INFO - 第1行: 提取商品信息 条码=6902088127225, 名称=720g力士沐浴露樱花柔润, 规格=, 数量=2.0, 单位=瓶, 单价=24.0 +2025-05-05 19:22:19,755 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:22:19,765 - app.core.excel.processor - INFO - 第2行: 提取商品信息 条码=6902088310801, 名称=720g力士沐浴露幽莲魅肤, 规格=, 数量=2.0, 单位=瓶, 单价=24.0 +2025-05-05 19:22:19,765 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:22:19,766 - app.core.excel.processor - INFO - 第3行: 提取商品信息 条码=6902088421200, 名称=400g多芬沐浴露樱花甜香, 规格=, 数量=2.0, 单位=瓶, 单价=19.0 +2025-05-05 19:22:19,769 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:22:19,772 - app.core.excel.processor - INFO - 第4行: 提取商品信息 条码=6902022135316, 名称=3kg蓝刀亮深层洁净自然清香, 规格=, 数量=2.0, 单位=瓶, 单价=32.5 +2025-05-05 19:22:19,772 - app.core.excel.processor - INFO - 解析规格: 1*4 -> 包装数量=4 +2025-05-05 19:22:19,773 - app.core.excel.processor - INFO - 第5行: 提取商品信息 条码=6902022138256, 名称=1kg袋装蓝月亮深洁清香, 规格=, 数量=2.0, 单位=袋, 单价=12.5 +2025-05-05 19:22:19,773 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:22:19,774 - app.core.excel.processor - INFO - 第6行: 提取商品信息 条码=6970731334498, 名称=L号倍丝柔女士一次性内裤4条装, 规格=, 数量=2.0, 单位=盒, 单价=14.0 +2025-05-05 19:22:19,774 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2025-05-05 19:22:19,777 - app.core.excel.processor - INFO - 第7行: 提取商品信息 条码=6970731334504, 名称=x1倍丝柔女士一次性内裤4条装, 规格=, 数量=2.0, 单位=盒, 单价=14.0 +2025-05-05 19:22:19,777 - app.core.excel.processor - INFO - 解析规格: 1*100 -> 包装数量=100 +2025-05-05 19:22:19,822 - app.core.excel.processor - INFO - 第8行: 提取商品信息 条码=6934925983107, 名称=3706洁丽雅女士新款隐形袜, 规格=, 数量=12.0, 单位=双, 单价=6.0 +2025-05-05 19:22:19,823 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:22:19,823 - app.core.excel.processor - INFO - 第9行: 提取商品信息 条码=6942203405654, 名称=3040洁丽雅男士新款隐形袜, 规格=, 数量=12.0, 单位=双, 单价=6.0 +2025-05-05 19:22:19,824 - app.core.excel.processor - INFO - 解析规格: 1*12 -> 包装数量=12 +2025-05-05 19:22:19,824 - app.core.excel.processor - INFO - 第10行: 提取商品信息 条码=6901294179592, 名称=80ML六神驱蚊喷雾花露水, 规格=, 数量=5.0, 单位=瓶, 单价=11.5 +2025-05-05 19:22:19,824 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:22:19,825 - app.core.excel.processor - INFO - 第11行: 提取商品信息 条码=6901294175341, 名称=80ml六神止痒花露水, 规格=, 数量=3.0, 单位=瓶, 单价=11.5 +2025-05-05 19:22:19,825 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:22:19,827 - app.core.excel.processor - INFO - 第12行: 提取商品信息 条码=6907861191417, 名称=5155彩虹蚊香液1+1器无味, 规格=, 数量=5.0, 单位=套, 单价=15.18 +2025-05-05 19:22:19,827 - app.core.excel.processor - INFO - 解析规格: 1*40 -> 包装数量=40 +2025-05-05 19:22:19,828 - app.core.excel.processor - INFO - 第13行: 提取商品信息 条码=6907861191127, 名称=5113彩虹双瓶乖乖无味蚊香液, 规格=, 数量=5.0, 单位=套, 单价=22.1 +2025-05-05 19:22:19,828 - app.core.excel.processor - INFO - 解析规格: 1*20 -> 包装数量=20 +2025-05-05 19:22:19,830 - app.core.excel.processor - INFO - 第14行: 提取商品信息 条码=6907861050196, 名称=彩虹单瓶Q5105蚊香液无味36ml, 规格=, 数量=5.0, 单位=瓶, 单价=10.37 +2025-05-05 19:22:19,830 - app.core.excel.processor - INFO - 解析规格: 1*80 -> 包装数量=80 +2025-05-05 19:22:19,831 - app.core.excel.processor - INFO - 第15行: 提取商品信息 条码=6901826817237, 名称=南孚电池5号5粒装, 规格=, 数量=1.0, 单位=盒, 单价=296.0 +2025-05-05 19:22:19,831 - app.core.excel.processor - INFO - 解析规格: 1*10 -> 包装数量=10 +2025-05-05 19:22:19,832 - app.core.excel.processor - INFO - 第16行: 提取商品信息 条码=6901826888138, 名称=南孚5号电池两粒装, 规格=, 数量=1.0, 单位=盒, 单价=112.0 +2025-05-05 19:22:19,833 - app.core.excel.processor - INFO - 解析规格: 1*60 -> 包装数量=60 +2025-05-05 19:22:22,721 - app.core.excel.processor - INFO - 第17行: 提取商品信息 条码=6923146100370, 名称=杜蕾斯玻尿酸避孕套3只装, 规格=, 数量=3.0, 单位=盒, 单价=15.5 +2025-05-05 19:22:22,721 - app.core.excel.processor - INFO - 解析规格: 1*96 -> 包装数量=96 +2025-05-05 19:22:22,723 - app.core.excel.processor - INFO - 第18行: 提取商品信息 条码=6973043880493, 名称=南孚纽扣电池CR2032, 规格=, 数量=1.0, 单位=板, 单价=10.0 +2025-05-05 19:22:22,723 - app.core.excel.processor - INFO - 解析规格: 1*5 -> 包装数量=5 +2025-05-05 19:22:22,723 - app.core.excel.processor - INFO - 第19行: 提取商品信息 条码=6972118660114, 名称=家丽欣6011一次性胶杯, 规格=, 数量=3.0, 单位=个, 单价=4.5 +2025-05-05 19:22:22,723 - app.core.excel.processor - INFO - 解析规格: 1*48 -> 包装数量=48 +2025-05-05 19:22:22,724 - app.core.excel.processor - INFO - 第20行: 提取商品信息 条码=6956934838605, 名称=83860云蕾双排纸杯50只, 规格=, 数量=3.0, 单位=个, 单价=3.6 +2025-05-05 19:22:22,724 - app.core.excel.processor - INFO - 解析规格: 1×40 -> 包装数量=40 +2025-05-05 19:22:22,724 - app.core.excel.processor - INFO - 提取到 20 个商品信息 +2025-05-05 19:22:22,734 - app.core.excel.processor - INFO - 开始处理20 个产品信息 +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 处理商品: 条码=6902088127225, 数量=2.0, 单价=24.0, 是否赠品=False +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 发现正常商品:条码6902088127225, 数量=2.0, 单价=24.0 +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 处理商品: 条码=6902088310801, 数量=2.0, 单价=24.0, 是否赠品=False +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 发现正常商品:条码6902088310801, 数量=2.0, 单价=24.0 +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 处理商品: 条码=6902088421200, 数量=2.0, 单价=19.0, 是否赠品=False +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 发现正常商品:条码6902088421200, 数量=2.0, 单价=19.0 +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 处理商品: 条码=6902022135316, 数量=2.0, 单价=32.5, 是否赠品=False +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 发现正常商品:条码6902022135316, 数量=2.0, 单价=32.5 +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 处理商品: 条码=6902022138256, 数量=2.0, 单价=12.5, 是否赠品=False +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 发现正常商品:条码6902022138256, 数量=2.0, 单价=12.5 +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 处理商品: 条码=6970731334498, 数量=2.0, 单价=14.0, 是否赠品=False +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 发现正常商品:条码6970731334498, 数量=2.0, 单价=14.0 +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 处理商品: 条码=6970731334504, 数量=2.0, 单价=14.0, 是否赠品=False +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 发现正常商品:条码6970731334504, 数量=2.0, 单价=14.0 +2025-05-05 19:22:22,735 - app.core.excel.processor - INFO - 处理商品: 条码=6934925983107, 数量=12.0, 单价=6.0, 是否赠品=False +2025-05-05 19:22:25,771 - app.core.excel.processor - INFO - 发现正常商品:条码6934925983107, 数量=12.0, 单价=6.0 +2025-05-05 19:22:25,772 - app.core.excel.processor - INFO - 处理商品: 条码=6942203405654, 数量=12.0, 单价=6.0, 是否赠品=False +2025-05-05 19:22:25,772 - app.core.excel.processor - INFO - 发现正常商品:条码6942203405654, 数量=12.0, 单价=6.0 +2025-05-05 19:22:25,772 - app.core.excel.processor - INFO - 处理商品: 条码=6901294179592, 数量=5.0, 单价=11.5, 是否赠品=False +2025-05-05 19:22:25,772 - app.core.excel.processor - INFO - 发现正常商品:条码6901294179592, 数量=5.0, 单价=11.5 +2025-05-05 19:22:25,772 - app.core.excel.processor - INFO - 处理商品: 条码=6901294175341, 数量=3.0, 单价=11.5, 是否赠品=False +2025-05-05 19:22:25,772 - app.core.excel.processor - INFO - 发现正常商品:条码6901294175341, 数量=3.0, 单价=11.5 +2025-05-05 19:22:25,772 - app.core.excel.processor - INFO - 处理商品: 条码=6907861191417, 数量=5.0, 单价=15.18, 是否赠品=False +2025-05-05 19:22:25,772 - app.core.excel.processor - INFO - 发现正常商品:条码6907861191417, 数量=5.0, 单价=15.18 +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 处理商品: 条码=6907861191127, 数量=5.0, 单价=22.1, 是否赠品=False +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 发现正常商品:条码6907861191127, 数量=5.0, 单价=22.1 +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 处理商品: 条码=6907861050196, 数量=5.0, 单价=10.37, 是否赠品=False +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 发现正常商品:条码6907861050196, 数量=5.0, 单价=10.37 +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 处理商品: 条码=6901826817237, 数量=1.0, 单价=296.0, 是否赠品=False +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 发现正常商品:条码6901826817237, 数量=1.0, 单价=296.0 +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 处理商品: 条码=6901826888138, 数量=30.0, 单价=3.7333333333333334, 是否赠品=False +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 发现正常商品:条码6901826888138, 数量=30.0, 单价=3.7333333333333334 +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 处理商品: 条码=6923146100370, 数量=3.0, 单价=15.5, 是否赠品=False +2025-05-05 19:22:25,773 - app.core.excel.processor - INFO - 发现正常商品:条码6923146100370, 数量=3.0, 单价=15.5 +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 处理商品: 条码=6973043880493, 数量=1.0, 单价=10.0, 是否赠品=False +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 发现正常商品:条码6973043880493, 数量=1.0, 单价=10.0 +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 处理商品: 条码=6972118660114, 数量=3.0, 单价=4.5, 是否赠品=False +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 发现正常商品:条码6972118660114, 数量=3.0, 单价=4.5 +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 处理商品: 条码=6956934838605, 数量=3.0, 单价=3.6, 是否赠品=False +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 发现正常商品:条码6956934838605, 数量=3.0, 单价=3.6 +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 分组后共20 个不同条码的商品 +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 条码 6902088127225 处理结果:正常商品数量2.0,单价24.0,赠品数量0 +2025-05-05 19:22:25,774 - app.core.excel.processor - INFO - 条码 6902088310801 处理结果:正常商品数量2.0,单价24.0,赠品数量0 +2025-05-05 19:22:25,775 - app.core.excel.processor - INFO - 条码 6902088421200 处理结果:正常商品数量2.0,单价19.0,赠品数量0 +2025-05-05 19:22:25,775 - app.core.excel.processor - INFO - 条码 6902022135316 处理结果:正常商品数量2.0,单价32.5,赠品数量0 +2025-05-05 19:22:25,775 - app.core.excel.processor - INFO - 条码 6902022138256 处理结果:正常商品数量2.0,单价12.5,赠品数量0 +2025-05-05 19:22:25,775 - app.core.excel.processor - INFO - 条码 6970731334498 处理结果:正常商品数量2.0,单价14.0,赠品数量0 +2025-05-05 19:22:25,775 - app.core.excel.processor - INFO - 条码 6970731334504 处理结果:正常商品数量2.0,单价14.0,赠品数量0 +2025-05-05 19:22:25,775 - app.core.excel.processor - INFO - 条码 6934925983107 处理结果:正常商品数量12.0,单价6.0,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6942203405654 处理结果:正常商品数量12.0,单价6.0,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6901294179592 处理结果:正常商品数量5.0,单价11.5,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6901294175341 处理结果:正常商品数量3.0,单价11.5,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6907861191417 处理结果:正常商品数量5.0,单价15.18,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6907861191127 处理结果:正常商品数量5.0,单价22.1,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6907861050196 处理结果:正常商品数量5.0,单价10.37,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6901826817237 处理结果:正常商品数量1.0,单价296.0,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6901826888138 处理结果:正常商品数量30.0,单价3.7333333333333334,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6923146100370 处理结果:正常商品数量3.0,单价15.5,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6973043880493 处理结果:正常商品数量1.0,单价10.0,赠品数量0 +2025-05-05 19:22:28,604 - app.core.excel.processor - INFO - 条码 6972118660114 处理结果:正常商品数量3.0,单价4.5,赠品数量0 +2025-05-05 19:22:28,605 - app.core.excel.processor - INFO - 条码 6956934838605 处理结果:正常商品数量3.0,单价3.6,赠品数量0 +2025-05-05 19:22:28,609 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:22:28,611 - app.core.excel.processor - INFO - 采购单已保存到: D:\My Documents\python\orc-order-v2\data\output\采购单_微信图片_20250505185908.xls +2025-05-05 19:22:37,218 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:22:37,219 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:28:36,765 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:28:36,766 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:29:16,906 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:29:16,908 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:30:06,153 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:30:06,154 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls +2025-05-05 19:30:28,306 - app.core.excel.processor - INFO - 初始化ExcelProcessor +2025-05-05 19:30:28,307 - app.core.excel.processor - INFO - 初始化完成,模板文件: templates\银豹-采购单模板.xls diff --git a/logs/app.core.ocr.baidu_ocr.log b/logs/app.core.ocr.baidu_ocr.log index 1976ee7..d6b5d0a 100644 --- a/logs/app.core.ocr.baidu_ocr.log +++ b/logs/app.core.ocr.baidu_ocr.log @@ -45,3 +45,10 @@ 2025-05-02 22:26:49,226 - app.core.ocr.baidu_ocr - ERROR - 无法获取访问令牌,无法进行表格识别 2025-05-02 22:29:11,192 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 2025-05-02 22:40:41,390 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2025-05-03 12:54:57,596 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2025-05-03 14:44:17,623 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2025-05-03 14:45:44,807 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2025-05-03 14:53:52,624 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2025-05-05 18:55:02,724 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2025-05-05 18:59:18,198 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 +2025-05-05 18:59:18,237 - app.core.ocr.baidu_ocr - INFO - 成功获取访问令牌 diff --git a/logs/app.core.ocr.table_ocr.log b/logs/app.core.ocr.table_ocr.log index fec7ae5..ad9063f 100644 --- a/logs/app.core.ocr.table_ocr.log +++ b/logs/app.core.ocr.table_ocr.log @@ -311,3 +311,121 @@ 2025-05-02 22:40:43,841 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250502214456.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx 2025-05-02 22:40:43,845 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1 2025-05-02 22:40:43,845 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 +2025-05-03 12:54:57,229 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-03 12:54:57,230 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 12:54:57,230 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-03 12:54:57,231 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 12:54:57,236 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理 +2025-05-03 12:54:57,237 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1 +2025-05-03 12:54:57,239 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250502214456.jpg +2025-05-03 12:55:00,226 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250502214456.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx +2025-05-03 12:55:00,228 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1 +2025-05-03 12:55:00,228 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 +2025-05-03 14:44:17,316 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-03 14:44:17,316 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 14:44:17,317 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-03 14:44:17,317 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 14:44:17,320 - app.core.ocr.table_ocr - INFO - 找到 2 个图片文件,其中 1 个未处理 +2025-05-03 14:44:17,321 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1 +2025-05-03 14:44:17,323 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503144404.jpg +2025-05-03 14:44:19,906 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503144404.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx +2025-05-03 14:44:19,914 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1 +2025-05-03 14:44:19,916 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 +2025-05-03 14:45:44,518 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-03 14:45:44,519 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 14:45:44,519 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-03 14:45:44,520 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 14:45:44,523 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理 +2025-05-03 14:45:44,523 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1 +2025-05-03 14:45:44,525 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503144404.jpg +2025-05-03 14:45:47,099 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503144404.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx +2025-05-03 14:45:47,100 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1 +2025-05-03 14:45:47,101 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 +2025-05-03 14:45:58,805 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-03 14:45:58,805 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 14:45:58,805 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-03 14:45:58,806 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 14:53:52,350 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-03 14:53:52,350 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 14:53:52,350 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-03 14:53:52,351 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 14:53:52,354 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理 +2025-05-03 14:53:52,354 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1 +2025-05-03 14:53:52,355 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503145328.jpg +2025-05-03 14:53:54,302 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250503145328.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx +2025-05-03 14:53:54,304 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1 +2025-05-03 14:53:54,304 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 +2025-05-03 15:43:36,730 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-03 15:43:36,730 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-03 15:43:36,730 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-03 15:43:36,731 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 18:55:02,297 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 18:55:02,298 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 18:55:02,298 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 18:55:02,298 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 18:55:02,305 - app.core.ocr.table_ocr - INFO - 找到 1 个图片文件,其中 1 个未处理 +2025-05-05 18:55:02,305 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 1 +2025-05-05 18:55:02,313 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185454.jpg +2025-05-05 18:55:04,006 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185454.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx +2025-05-05 18:55:04,011 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 1/1 +2025-05-05 18:55:04,011 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 1, 成功: 1 +2025-05-05 18:59:17,849 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 18:59:17,849 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 18:59:17,850 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 18:59:17,850 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 18:59:17,854 - app.core.ocr.table_ocr - INFO - 找到 2 个图片文件,其中 2 个未处理 +2025-05-05 18:59:17,854 - app.core.ocr.table_ocr - INFO - 处理批次 1/1, 大小: 2 +2025-05-05 18:59:17,856 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185842.jpg +2025-05-05 18:59:17,856 - app.core.ocr.table_ocr - INFO - 开始处理图片: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185908.jpg +2025-05-05 18:59:21,953 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185908.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185908.xlsx +2025-05-05 18:59:23,220 - app.core.ocr.table_ocr - INFO - 图片处理成功: D:\My Documents\python\orc-order-v2\data\input\微信图片_20250505185842.jpg, 输出文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185842.xlsx +2025-05-05 18:59:23,222 - app.core.ocr.table_ocr - INFO - 批次处理完成, 成功: 2/2 +2025-05-05 18:59:23,222 - app.core.ocr.table_ocr - INFO - 所有图片处理完成, 总计: 2, 成功: 2 +2025-05-05 19:00:26,072 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:00:26,072 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:00:26,072 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:00:26,073 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:02:32,159 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:02:32,160 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:02:32,160 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:02:32,163 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:02:54,871 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:02:54,871 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:02:54,871 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:02:54,871 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:15:12,551 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:15:12,551 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:15:12,551 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:15:12,551 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:18:54,491 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:18:54,493 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:18:54,495 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:18:54,497 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:19:59,311 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:19:59,311 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:19:59,311 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:19:59,312 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:22:18,524 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:22:18,524 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:22:18,525 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:22:18,525 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:22:37,216 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:22:37,217 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:22:37,217 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:22:37,217 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:28:36,763 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:28:36,763 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:28:36,764 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:28:36,764 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:29:16,901 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:29:16,902 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:29:16,903 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:29:16,903 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:30:06,151 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:30:06,152 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:30:06,152 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:30:06,152 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:30:28,305 - app.core.ocr.table_ocr - INFO - 使用输入目录: D:\My Documents\python\orc-order-v2\data\input +2025-05-05 19:30:28,305 - app.core.ocr.table_ocr - INFO - 使用输出目录: D:\My Documents\python\orc-order-v2\data\output +2025-05-05 19:30:28,305 - app.core.ocr.table_ocr - INFO - 使用临时目录: D:\My Documents\python\orc-order-v2\data\temp +2025-05-05 19:30:28,306 - app.core.ocr.table_ocr - INFO - OCR处理器初始化完成,输入目录: D:\My Documents\python\orc-order-v2\data\input, 输出目录: D:\My Documents\python\orc-order-v2\data\output diff --git a/logs/app.services.ocr_service.log b/logs/app.services.ocr_service.log index 2753bb7..68725fd 100644 --- a/logs/app.services.ocr_service.log +++ b/logs/app.services.ocr_service.log @@ -131,3 +131,49 @@ 2025-05-02 22:40:41,142 - app.services.ocr_service - INFO - 初始化OCRService 2025-05-02 22:40:41,144 - app.services.ocr_service - INFO - OCRService初始化完成 2025-05-02 22:40:41,147 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2025-05-03 12:54:57,227 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-03 12:54:57,231 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-03 12:54:57,236 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2025-05-03 14:44:17,313 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-03 14:44:17,318 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-03 14:44:17,320 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2025-05-03 14:45:44,517 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-03 14:45:44,520 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-03 14:45:44,522 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2025-05-03 14:45:58,804 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-03 14:45:58,806 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-03 14:53:52,349 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-03 14:53:52,351 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-03 14:53:52,354 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2025-05-03 15:43:36,728 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-03 15:43:36,731 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 18:55:02,295 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 18:55:02,298 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 18:55:02,304 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2025-05-05 18:59:17,848 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 18:59:17,850 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 18:59:17,853 - app.services.ocr_service - INFO - OCRService开始批量处理图片, batch_size=None, max_workers=None +2025-05-05 19:00:26,070 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:00:26,073 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:02:32,157 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:02:32,165 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:02:54,869 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:02:54,871 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:15:12,549 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:15:12,551 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:18:54,489 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:18:54,499 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:19:59,311 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:19:59,312 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:22:18,523 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:22:18,525 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:22:37,215 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:22:37,218 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:28:36,762 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:28:36,765 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:29:16,899 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:29:16,904 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:30:06,149 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:30:06,152 - app.services.ocr_service - INFO - OCRService初始化完成 +2025-05-05 19:30:28,304 - app.services.ocr_service - INFO - 初始化OCRService +2025-05-05 19:30:28,306 - app.services.ocr_service - INFO - OCRService初始化完成 diff --git a/logs/app.services.order_service.log b/logs/app.services.order_service.log index 785474b..9a4908d 100644 --- a/logs/app.services.order_service.log +++ b/logs/app.services.order_service.log @@ -140,3 +140,62 @@ 2025-05-02 22:40:41,144 - app.services.order_service - INFO - 初始化OrderService 2025-05-02 22:40:41,147 - app.services.order_service - INFO - OrderService初始化完成 2025-05-02 22:40:43,849 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx +2025-05-03 12:54:57,231 - app.services.order_service - INFO - 初始化OrderService +2025-05-03 12:54:57,235 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-03 12:55:00,229 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250502214456.xlsx +2025-05-03 14:44:17,318 - app.services.order_service - INFO - 初始化OrderService +2025-05-03 14:44:17,319 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-03 14:44:19,922 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503144404.xlsx +2025-05-03 14:44:26,126 - app.services.order_service - INFO - OrderService开始合并所有采购单 +2025-05-03 14:45:44,520 - app.services.order_service - INFO - 初始化OrderService +2025-05-03 14:45:44,522 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-03 14:45:58,806 - app.services.order_service - INFO - 初始化OrderService +2025-05-03 14:45:58,809 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-03 14:45:58,809 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503144404.xlsx +2025-05-03 14:53:52,351 - app.services.order_service - INFO - 初始化OrderService +2025-05-03 14:53:52,353 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-03 14:53:54,305 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250503145328.xlsx +2025-05-03 15:43:36,731 - app.services.order_service - INFO - 初始化OrderService +2025-05-03 15:43:36,733 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-03 15:43:36,733 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250503145328.xlsx +2025-05-05 18:55:02,299 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 18:55:02,303 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 18:55:04,016 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:\My Documents\python\orc-order-v2\data\output\微信图片_20250505185454.xlsx +2025-05-05 18:59:17,850 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 18:59:17,853 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:00:26,073 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:00:26,075 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:00:26,076 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185842.xlsx +2025-05-05 19:02:32,165 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:02:32,169 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:02:32,169 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:02:54,871 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:02:54,874 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:02:54,875 - app.services.order_service - INFO - OrderService开始合并所有采购单 +2025-05-05 19:15:12,551 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:15:12,554 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:15:12,554 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:18:54,500 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:18:54,536 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:18:54,546 - app.services.order_service - INFO - OrderService开始合并所有采购单 +2025-05-05 19:19:59,313 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:19:59,314 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:19:59,315 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:22:18,525 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:22:18,532 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:22:18,533 - app.services.order_service - INFO - OrderService开始处理指定Excel文件: D:/My Documents/python/orc-order-v2/data/output/微信图片_20250505185908.xlsx +2025-05-05 19:22:37,218 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:22:37,221 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:22:37,227 - app.services.order_service - INFO - OrderService开始合并所有采购单 +2025-05-05 19:28:36,765 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:28:36,768 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:28:36,770 - app.services.order_service - INFO - OrderService开始合并所有采购单 +2025-05-05 19:29:16,905 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:29:16,912 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:29:16,918 - app.services.order_service - INFO - OrderService开始合并所有采购单 +2025-05-05 19:30:06,152 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:30:06,155 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:30:06,156 - app.services.order_service - INFO - OrderService开始合并所有采购单 +2025-05-05 19:30:28,306 - app.services.order_service - INFO - 初始化OrderService +2025-05-05 19:30:28,308 - app.services.order_service - INFO - OrderService初始化完成 +2025-05-05 19:30:28,309 - app.services.order_service - INFO - OrderService开始合并所有采购单