From 3716d820832df8d4f1dbd3134b98f22c098b0150 Mon Sep 17 00:00:00 2001 From: HouXinyu <2283543175@qq.com> Date: Tue, 17 Dec 2024 17:05:16 +0800 Subject: [PATCH] end --- .../5b23e521-053a-47c0-ae28-a98b513bc6ec.xml | 1334 ----------------- .../supermarket/dao/impl/productionImpl.class | Bin 8560 -> 8560 bytes .../dialog/InDialog$MyItemListener.class | Bin 950 -> 950 bytes .../lingnan/supermarket/dialog/InDialog.class | Bin 6160 -> 6156 bytes .../ProductionDialog$MyItemListener.class | Bin 1991 -> 1991 bytes .../ProductionDialog$MyItemListener1.class | Bin 1860 -> 1860 bytes .../supermarket/dialog/ProductionDialog.class | Bin 9432 -> 9267 bytes .../dialog/SupplierInfDialog.class | Bin 4049 -> 4049 bytes .../com/lingnan/supermarket/dto/Buffer.class | Bin 330 -> 330 bytes .../lingnan/supermarket/dto/OutOrder.class | Bin 1484 -> 1484 bytes .../lingnan/supermarket/dto/OutRecord.class | Bin 1047 -> 1047 bytes .../supermarket/dto/base/BaseDomain.class | Bin 568 -> 568 bytes .../supermarket/dto/base/BaseProduction.class | Bin 2549 -> 2549 bytes .../lingnan/supermarket/table/InOrderTM.class | Bin 2814 -> 2814 bytes .../supermarket/table/InRecordTM.class | Bin 2267 -> 2267 bytes .../table/SupplierTableModel.class | Bin 2239 -> 2239 bytes .../lingnan/supermarket/utils/DateUtil.class | Bin 879 -> 879 bytes .../lingnan/supermarket/utils/EmailTest.class | Bin 532 -> 532 bytes .../supermarket/utils/TimeAndOrder.class | Bin 1712 -> 1712 bytes .../view/ProdCatalogView$MyItemListener.class | Bin 2155 -> 2155 bytes .../supermarket/view/ProdCatalogView.class | Bin 5711 -> 5546 bytes .../supermarket/dao/impl/productionImpl.java | 306 ++-- .../lingnan/supermarket/dialog/InDialog.java | 246 ++- .../supermarket/dialog/ProductionDialog.java | 239 ++- .../supermarket/dialog/SupplierInfDialog.java | 112 +- .../com/lingnan/supermarket/dto/Buffer.java | 5 +- .../com/lingnan/supermarket/dto/OutOrder.java | 43 +- .../lingnan/supermarket/dto/OutRecord.java | 30 +- .../supermarket/dto/base/BaseDomain.java | 7 +- .../supermarket/dto/base/BaseProduction.java | 94 +- .../supermarket/dto/base/BsDomain.java | 8 +- .../lingnan/supermarket/table/InOrderTM.java | 93 +- .../lingnan/supermarket/table/InRecordTM.java | 68 +- .../supermarket/table/SupplierTableModel.java | 97 +- .../lingnan/supermarket/utils/DateUtil.java | 11 +- .../lingnan/supermarket/utils/EmailTest.java | 1 - .../lingnan/supermarket/utils/JDBCUtil.java | 2 +- .../com/lingnan/supermarket/utils/Test.java | 2 +- .../supermarket/utils/TimeAndOrder.java | 11 +- .../supermarket/view/ProdCatalogView.java | 158 +- 40 files changed, 784 insertions(+), 2083 deletions(-) delete mode 100644 Supermarket/bin/.idea/dataSources/5b23e521-053a-47c0-ae28-a98b513bc6ec.xml diff --git a/Supermarket/bin/.idea/dataSources/5b23e521-053a-47c0-ae28-a98b513bc6ec.xml b/Supermarket/bin/.idea/dataSources/5b23e521-053a-47c0-ae28-a98b513bc6ec.xml deleted file mode 100644 index 7c2a72a..0000000 --- a/Supermarket/bin/.idea/dataSources/5b23e521-053a-47c0-ae28-a98b513bc6ec.xml +++ /dev/null @@ -1,1334 +0,0 @@ - - - - - lower/lower - InnoDB - InnoDB - |root||root|localhost|ALTER|G -|root||root|localhost|ALTER ROUTINE|G -|root||root|localhost|CREATE|G -|root||root|localhost|CREATE ROUTINE|G -|root||root|localhost|CREATE TABLESPACE|G -|root||root|localhost|CREATE TEMPORARY TABLES|G -|root||root|localhost|CREATE USER|G -|root||root|localhost|CREATE VIEW|G -|root||root|localhost|DELETE|G -|root||root|localhost|DROP|G -|root||root|localhost|EVENT|G -|root||root|localhost|EXECUTE|G -|root||root|localhost|FILE|G -|root||root|localhost|INDEX|G -|root||root|localhost|INSERT|G -|root||root|localhost|LOCK TABLES|G -|root||root|localhost|PROCESS|G -|root||root|localhost|REFERENCES|G -|root||root|localhost|RELOAD|G -|root||root|localhost|REPLICATION CLIENT|G -|root||root|localhost|REPLICATION SLAVE|G -|root||root|localhost|SELECT|G -|root||root|localhost|SHOW DATABASES|G -|root||root|localhost|SHOW VIEW|G -|root||root|localhost|SHUTDOWN|G -|root||mysql.session|localhost|SUPER|G -|root||root|localhost|SUPER|G -|root||root|localhost|TRIGGER|G -|root||root|localhost|UPDATE|G -|root||root|localhost|grant option|G -performance_schema|schema||mysql.session|localhost|SELECT|G -sys|schema||mysql.sys|localhost|TRIGGER|G - 5.7.44 - - - big5 - 1 - - - big5 - - - dec8 - 1 - - - dec8 - - - cp850 - 1 - - - cp850 - - - hp8 - 1 - - - hp8 - - - koi8r - 1 - - - koi8r - - - latin1 - - - latin1 - 1 - - - latin1 - - - latin1 - - - latin1 - - - latin1 - - - latin1 - - - latin1 - - - latin2 - - - latin2 - 1 - - - latin2 - - - latin2 - - - latin2 - - - swe7 - 1 - - - swe7 - - - ascii - 1 - - - ascii - - - ujis - 1 - - - ujis - - - sjis - 1 - - - sjis - - - hebrew - 1 - - - hebrew - - - tis620 - 1 - - - tis620 - - - euckr - 1 - - - euckr - - - koi8u - 1 - - - koi8u - - - gb2312 - 1 - - - gb2312 - - - greek - 1 - - - greek - - - cp1250 - 1 - - - cp1250 - - - cp1250 - - - cp1250 - - - cp1250 - - - gbk - 1 - - - gbk - - - latin5 - 1 - - - latin5 - - - armscii8 - 1 - - - armscii8 - - - utf8 - 1 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - utf8 - - - ucs2 - 1 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - ucs2 - - - cp866 - 1 - - - cp866 - - - keybcs2 - 1 - - - keybcs2 - - - macce - 1 - - - macce - - - macroman - 1 - - - macroman - - - cp852 - 1 - - - cp852 - - - latin7 - - - latin7 - 1 - - - latin7 - - - latin7 - - - utf8mb4 - 1 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - utf8mb4 - - - cp1251 - - - cp1251 - - - cp1251 - - - cp1251 - 1 - - - cp1251 - - - utf16 - 1 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16 - - - utf16le - 1 - - - utf16le - - - cp1256 - 1 - - - cp1256 - - - cp1257 - - - cp1257 - - - cp1257 - 1 - - - utf32 - 1 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - utf32 - - - binary - 1 - - - geostd8 - 1 - - - geostd8 - - - cp932 - 1 - - - cp932 - - - eucjpms - 1 - - - eucjpms - - - gb18030 - 1 - - - gb18030 - - - gb18030 - - - utf8_general_ci - - - latin1_swedish_ci - - - latin1_swedish_ci - - - latin1_swedish_ci - - - utf8_general_ci - - - latin1_swedish_ci - - - utf8mb4_unicode_ci - - - utf8_general_ci - - - utf8mb4_general_ci - - - localhost - - - localhost - - - localhost - - - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - InnoDB - utf8mb4_unicode_ci -
- - varchar(20)|0s - 1 - 1 - - - varchar(20)|0s - 2 - - - float|0s - 3 - - - float|0s - 4 - - - int(11)|0s - 5 - - - int(11)|0s - 6 - - - int(11)|0s - 7 - - - varchar(20)|0s - 8 - - - varchar(20)|0s - 9 - - - float|0s - 10 - - - int(11)|0s - 0 - 11 - - - supplyId - id - supplierinf - - - id2 - id - prodcatalog - - - id - btree - 1 - - - name - btree - 1 - - - supplyId - btree - - - id2 - btree - - - 1 - 1 - PRIMARY - - - name - - - varchar(30)|0s - 1 - 1 - - - float|0s - 2 - - - timestamp|0s - CURRENT_TIMESTAMP - 1 - CURRENT_TIMESTAMP - 3 - - - varchar(15)|0s - 4 - - - int(11)|0s - 2 - 5 - - - int(11)|0s - 1 - 6 - - - iNumber - btree - 1 - - - 1 - 1 - PRIMARY - - - varchar(30)|0s - 1 - - - varchar(20)|0s - 2 - - - int(11)|0s - 3 - - - float|0s - 4 - - - iNumber - iNumber - inorder - - - iNumber - btree - - - varchar(20)|0s - 1 - 1 - - - varchar(20)|0s - 2 - - - float|0s - 3 - - - float|0s - 4 - - - int(11)|0s - 5 - - - int(11)|0s - 6 - - - int(11)|0s - 7 - - - varchar(20)|0s - 8 - - - varchar(20)|0s - 9 - - - float|0s - 10 - - - int(11)|0s - 0 - 11 - - - supplyId - id - supplierinf - - - id2 - id - prodcatalog - - - id - btree - 1 - - - name - btree - 1 - - - supplyId - btree - - - id2 - btree - - - 1 - 1 - PRIMARY - - - name - - - varchar(30)|0s - 1 - 1 - - - float|0s - 2 - - - timestamp|0s - CURRENT_TIMESTAMP - 1 - CURRENT_TIMESTAMP - 3 - - - varchar(15)|0s - 4 - - - int(11)|0s - 1 - 5 - - - oNumber - btree - 1 - - - 1 - 1 - PRIMARY - - - varchar(30)|0s - 1 - - - varchar(20)|0s - 2 - - - int(11)|0s - 3 - - - float|0s - 4 - - - oNumber - oNumber - outorder - - - oNumber - btree - - - varchar(20)|0s - 1 - 1 - - - varchar(20)|0s - 2 - - - id - btree - 1 - - - 1 - 1 - PRIMARY - - - varchar(20)|0s - 1 - 1 - - - varchar(20)|0s - 2 - - - float|0s - 3 - - - float|0s - 4 - - - int(11)|0s - 5 - - - int(11)|0s - 6 - - - int(11)|0s - 7 - - - varchar(20)|0s - 8 - - - varchar(20)|0s - 9 - - - float|0s - 10 - - - int(11)|0s - 1 - 11 - - - id2 - id - prodcatalog - - - id - btree - 1 - - - name - btree - 1 - - - id2 - btree - - - 1 - 1 - PRIMARY - - - name - - - varchar(30)|0s - 1 - - - timestamp|0s - CURRENT_TIMESTAMP - 1 - CURRENT_TIMESTAMP - 2 - - - varchar(20)|0s - 3 - - - enum('+', '-')|0e - 4 - - - int(11)|0s - 5 - - - 9 - int(11)|0s - 1 - 1 - - - varchar(30)|0s - 2 - - - varchar(50)|0s - 3 - - - varchar(11)|0s - 4 - - - varchar(50)|0s - 5 - - - int(11)|0s - 1 - 6 - - - id - btree - 1 - - - name - btree - 1 - - - 1 - 1 - PRIMARY - - - name - - - 7 - int(11)|0s - 1 - 1 - - - varchar(15)|0s - 2 - - - varchar(255)|0s - 3 - - - varchar(20)|0s - 1 - 4 - - - varchar(11)|0s - 5 - - - int(11)|0s - 1 - 6 - - - varchar(50)|0s - 7 - - - int(11)|0s - 1 - 8 - - - id - btree - 1 - - - name - btree - 1 - - - 1 - 1 - PRIMARY - - - name - -
-
\ No newline at end of file diff --git a/Supermarket/bin/com/lingnan/supermarket/dao/impl/productionImpl.class b/Supermarket/bin/com/lingnan/supermarket/dao/impl/productionImpl.class index 90154e98d1d825e496bff5427776d616a8f7b802..f0d9b625633ae0f7950722099fffc419ff144d05 100644 GIT binary patch delta 253 zcmWO1J4-@w9Eb7ed%*r>C%aganbK0w5?!dUgL1?!F5+ZFZqapbjJ7VcgiFvGvx2O%I>(X@~8wem`1m;_*lqPxR2j=b1P!q#g-pUSmA@pky!I^6}M2zhVq&fP@B_RGb+NHzKLB6sc9x z)%96C&EYgpRExy4#E3GCX_*NHOe;%9IRX_ZXoWR}6qToBu9!Ei+tyvJ);j5pL?FkG RW3T8qC_4^)#2MJ{`9J4ZF!cZc delta 253 zcmWO1J4-@w9Eb7ed!+s)Cnd|tOlc`-2@4EQ7dmBB1ma{wZqapbjJ7VggiFvGvl0iRj~r9M6pMLXlVId85KR8+@?KCkK3S z$Tvq4$MQJimj-{Fn=j0l)+_6^Vy&UcLlnq>`l6OGYV1)K5X_R!6QX#hSHz zeYt?AahxWIt4KnVq*Y>20mGVNOfv+UWm*fARc1+ZtSF>nu9?@Zo7QbDHh=PKnLv&$ R$Ihx_uj<(M5hq~3r~mj8F#rGn diff --git a/Supermarket/bin/com/lingnan/supermarket/dialog/InDialog$MyItemListener.class b/Supermarket/bin/com/lingnan/supermarket/dialog/InDialog$MyItemListener.class index 9c4f5cdf8dd208bcc06006ec14e2ab0c55e170bd..ece0731b49137816975d0d59b044636674870504 100644 GIT binary patch delta 31 mcmdnSzKwl@ATwjlWFcl>-g*WOh6V-!hDHWahNj6m%w7O|#0NP5 delta 31 mcmdnSzKwl@ATwjrWFcl>-ZlmfhIR%4h7JZ%hR(@3%w7O~f(Kgw diff --git a/Supermarket/bin/com/lingnan/supermarket/dialog/InDialog.class b/Supermarket/bin/com/lingnan/supermarket/dialog/InDialog.class index a5e905bb4be4160804ee956a6cbbe00073198a4c..9b3cfaa5437309435bca985c6274b3d78b9af51c 100644 GIT binary patch delta 368 zcmWNLODF?y9LGODkpq&M=AgWavRdQfUkc`%4%#_BWBH`Ox6%bEveLzO+5x0)C0RJH{w*g69;aZ@zR1%krmq5p`9~2xK-B& zx_G9WH(Y$s!wcOPGe!W&2>P{6;tjrQb0r*! zPw~lQNO{9FG0c#FpCo3g zKC#OSd%UvGCkK3S$TwkrIpU9FiRMHSIF&5U#K3u)ShU+_IxvWH~h1<%XkVb0M z$lt;!e`*JjI5{~eMJ^70m-k-p_1^o;n&-{C3EJ#@qRB!_E;yJ=-mRW91`(7^(oEYrm{Jp}3H zl0L%p^Tq%l4DrLTL|~UVMns20QWzB@W0HeYER0Jj6Jo_BO-wQi=)E(EHktCiCmO^b zh)wc{+lN677KvgB4J*X6N+xSczD@%h3bUy&Tk4@7yMnmbQO5#Iv&S6!YAcA31I0Y# zj3aJ2=8+R#IptGzzBuQb3w{;;k1L5JBpR+IjT

rXWnBV*vt~ B2{Zrz delta 47 zcmX@kf1H2ALN-R_$&1)l%c?VQFlsP}GioxZF={cGFlsY+G3qcR1KF93`jfNRV*v-& B33LDe diff --git a/Supermarket/bin/com/lingnan/supermarket/dialog/ProductionDialog$MyItemListener1.class b/Supermarket/bin/com/lingnan/supermarket/dialog/ProductionDialog$MyItemListener1.class index dec8820617ec2b565ec5c5e75e9a7f055488be58..5218b80bef4ef8f431388c0851e96aa2ca8b4e9f 100644 GIT binary patch delta 47 zcmX@YcZ6?)A{(RbWF@xQvW5&Cj7AIsjK&P|j3x~FjHV0@jAjhMKz1af#pGLTSpeb! B2=o8| delta 47 zcmX@YcZ6?)A{(ReWF@xQvgQmNj1~+6jFt@Yj8+W#jMfYej5Z9xKz1af-Q-(rSpepI B2`T^p diff --git a/Supermarket/bin/com/lingnan/supermarket/dialog/ProductionDialog.class b/Supermarket/bin/com/lingnan/supermarket/dialog/ProductionDialog.class index eb9ddd9b7bdfd317108ca96cb4b324da8e7c8ad9..071ffeca47d3663ba07a2e1ff1931165f68d8a4d 100644 GIT binary patch delta 4129 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 delta 4230 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 ALjV8( diff --git a/Supermarket/bin/com/lingnan/supermarket/dialog/SupplierInfDialog.class b/Supermarket/bin/com/lingnan/supermarket/dialog/SupplierInfDialog.class index d2ff2fec881d72aea4035d3082bc1e53d02001b3..f33b384cbdede745a74dc5446892297cd476c6ec 100644 GIT binary patch delta 235 zcmWO0J4=Fb9L4ePZ^-2-n}S-D1_^1&L4>l%yxofuXZS443-iaTCZ^e&wv^E!8b@s7#KJK)PE@+^bH)X33V5jE zrK^@P0VV`_A;ddj=0y1<#uw-O5a*W!D=zutO4doq4r$pXBUZ9vCnqkh#m9|A$xDiY zq{x&iGf(>d=JX%O(J`F> delta 235 zcmWlTJ4=Fb9EG3Xpvzl11-bOn5Fsr(SQ?d<7t*{`Udx7T@dA|>LNusJoJ3M+l^k4L z0*Cg#K)5vot$u)Z{mX%~oCnS`(I@)HyC(X0p#90q4jQ|x;b0RdHugARpA*#y4!Om} zJ#HEt)5Jp;FMWKB@bjstF9LiMQOB*WCv!^$r8-!jFLc>Evp;@D}(%GSyu7MGnw@nmBF(2m^D~6fa029 zaU~XgMqRLYI*SIY5m4M1EWR2jZVndz02H?YirWIk-54FgVwJ2KtZqOtcd**Mto#7m CjvDI# delta 129 zcmX@ZeTI7j6Eh?0WCv!^$r8-!j66V=Eh|3*D}%sfSyu7MGnw@ng}}1+m^D~Mf#PCd zaU~XgMhUQZI*SIYG*DayEWR2jE(aF>02EgQiYo!d-56ECVwJ2Ktm;594Y1n1to#6& CI2oG& diff --git a/Supermarket/bin/com/lingnan/supermarket/dto/OutRecord.class b/Supermarket/bin/com/lingnan/supermarket/dto/OutRecord.class index b638aa9e0c1656432e05b3ca63d8abe49b9f4978..bf5f1cdf2bab2674457195ec2e20f9b1078062e0 100644 GIT binary patch delta 75 zcmbQvF`Z*WJQE}PI(ZY5#^g85GLyeC=`+fKMXZ@MSd|%A8B`{JWEP)X U&#cd=0Tw?36xRic>jA~p00sjSivR!s delta 79 zcmbQvF`Z*WJQE}9zHUIzs diff --git a/Supermarket/bin/com/lingnan/supermarket/dto/base/BaseProduction.class b/Supermarket/bin/com/lingnan/supermarket/dto/base/BaseProduction.class index f07322e152cdc8fd8da9fcc863742fe898efb428..54c198b397263844c98ce89596c81d3432eaafdd 100644 GIT binary patch delta 269 zcmW;DF{?pw9L90~oZmT4cc6s40)LDDV7Ug1TbII0kz%m8%EEA$W3W(^?r%4E1zv-9 zpu7O3>~}c3r)PWm^nK!NoV~4#S`Wv-TIrIL_@(~Muxz2{7oeuIC)YxJBr z{SWdw5GxJn7xg60G+9649e5Z1t@|*qbKgo2(r0<`of)F6%NRDH)dFXxd`E$m8T^NS tg)itq%E}VHqPJ7d{L+u`2)?G@;Tw7}w6cZo=%dh?1N{vDgDd?Nrr%e%M9TmG delta 269 zcmW;CK?*@p7=~dd_dnOofaqRCijZ#;9lj53RTn;%9;{Cr`c@72o_!-j_=x`Wt(!^Y{FIRibV^;N kteWw@!WZx*{S9ByOM#I!d_zA5*6nrV?$9lCNBsqvKb&DcMgRZ+ diff --git a/Supermarket/bin/com/lingnan/supermarket/table/InOrderTM.class b/Supermarket/bin/com/lingnan/supermarket/table/InOrderTM.class index c9bf084b27b5d5cf0df048c96d538d7dc2126b3e..6797053eaf87be65cf4cd24d1c85a3926a69461e 100644 GIT binary patch delta 177 zcmWN}$qGSn7>4oZ6rJPfq(q96l4HR_B+8JIg@wpGWFA(^u&`Hh1K-MBSlGJ_8@D3= z-sSV_{rP|X=UlgZI0z6UNQ#K;^{O+0o20z-zLiofjh8H8auP5ORzbC*@+G2_MU1*u zm9J6K>JoCj8%;d4)Kf?KE;c<9^vN(F&yWfuYK& z?mOrE*+2Wa(X9|3Y?6e@6On`7@W%0zke5EQ(#mBBk|jn?!p70cD_2l$kvJt0qotMQ zYgDzmM160!Nq`m++N$s1&{a>D5UCo!G=MF!InXj!Hz+X!JfgG!2zhk S5h&s^S&Ji&(QEQd4mAL!uoII2 diff --git a/Supermarket/bin/com/lingnan/supermarket/utils/DateUtil.class b/Supermarket/bin/com/lingnan/supermarket/utils/DateUtil.class index 7129ff21db99579e81d6ca680e876b99e4a0aa28..4dd8b8123e9b5cc4fd7f54be3ce7ca1d88ae2a06 100644 GIT binary patch delta 21 ccmaFQ_MUA6D>Ek-0|x^SgBSzfWIpCZ05|^w^8f$< delta 21 ccmaFQ_MUA6D>J7s0|$dBgBXMOWIpCZ066jl4gdfE diff --git a/Supermarket/bin/com/lingnan/supermarket/utils/EmailTest.class b/Supermarket/bin/com/lingnan/supermarket/utils/EmailTest.class index 2a92b224352d35631162291e09e9b8eeaeda8f4b..41a0d5c22ad85618801683cbebdd2fa09b1cc754 100644 GIT binary patch delta 19 bcmbQjGKFQsCPqfK$(tE1727VxvWDsJIV-RJ~WDsL80rG4aWEk8SWEuP!6d3Xulo?7G j)EH_R)EU|sv?rfrUBzq4z{Owz)N9Qk&R{pWfz1E_?1>CP delta 83 zcmdnMyMcGZ6joCa237`f27U$!21y2K200+qWRPbtVNhbQWl&{sV^Cx82a4n~=rEKp j=rhzZ7%;Rkm`py&x{BA1fs4VBfserjsNa2Z1DgQ=20{$u diff --git a/Supermarket/bin/com/lingnan/supermarket/view/ProdCatalogView$MyItemListener.class b/Supermarket/bin/com/lingnan/supermarket/view/ProdCatalogView$MyItemListener.class index d5cd8dd71da6457f5b2e4347f29d2b7c5c234ea0..ef32f75bf94d12fcc6fc36bb61b08de34baea25d 100644 GIT binary patch delta 55 zcmaDY@LFJl4m)GZWL@_4svQg*44n)D3|$QJ4BZU+3_T1E4807&41Ej4W$48 delta 55 zcmaDY@LFJl4m;!A$-3<8RTnaFFf3vaU|7r`&#;6+pJ6G31H%f2V1|_p2|#`t!)k_H KhBcEJIkEt@at^=% diff --git a/Supermarket/bin/com/lingnan/supermarket/view/ProdCatalogView.class b/Supermarket/bin/com/lingnan/supermarket/view/ProdCatalogView.class index 006a9068bdcd33cde5e92c68ec354cdae728cc8e..110284fc239deb7509c93dbc23b2829f5223f851 100644 GIT binary patch delta 2272 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 findAllproduction() { Vector productions = new Vector(); - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 - String SQL = "select * from production where delmark = 1"; + String SQL = "select * from production where delmark = 1"; // SQL查询语句,只查询未被删除的商品 PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { - preparedStatement = conn.prepareStatement(SQL); + preparedStatement = conn.prepareStatement(SQL); // 创建PreparedStatement对象 - resultSet = preparedStatement.executeQuery(); + resultSet = preparedStatement.executeQuery(); // 执行查询,获取结果集 - while (resultSet.next()) { + while (resultSet.next()) { // 遍历结果集 Production production = new Production(); - production.setId(resultSet.getString("id")); - production.setName(resultSet.getString("name")); - production.setInPrice(resultSet.getFloat("inPrice")); - production.setOutPrice(resultSet.getFloat("OutPrice")); - production.setLife(resultSet.getInt("life")); - production.setSum(resultSet.getInt("sum")); - production.setSupplyId(resultSet.getInt("supplyId")); - production.setId2(resultSet.getString("id2")); - production.setName2(resultSet.getString("name2")); - production.setDelmark(resultSet.getInt("delmark")); - productions.add(production); + production.setId(resultSet.getString("id")); // 设置商品ID + production.setName(resultSet.getString("name")); // 设置商品名称 + production.setInPrice(resultSet.getFloat("inPrice")); // 设置进价 + production.setOutPrice(resultSet.getFloat("OutPrice")); // 设置售价 + production.setLife(resultSet.getInt("life")); // 设置保质期 + production.setSum(resultSet.getInt("sum")); // 设置库存数量 + production.setSupplyId(resultSet.getInt("supplyId")); // 设置供应商ID + production.setId2(resultSet.getString("id2")); // 设置商品类别ID + production.setName2(resultSet.getString("name2")); // 设置商品类别名称 + production.setDelmark(resultSet.getInt("delmark")); // 设置删除标记 + productions.add(production); // 将商品信息添加到Vector中 } } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(resultSet, preparedStatement, conn); + JDBCUtil.close(resultSet, preparedStatement, conn); // 关闭数据库资源 } - return productions; + return productions; // 返回所有商品信息 } /* 用于收银系统,通过商品id返回所有信息 */ public Production findByIdProduction(String id) { Production production = new Production(); - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { preparedStatement = conn - .prepareStatement("select * from production where id=? and delmark = 1"); - preparedStatement.setString(1, id); - resultSet = preparedStatement.executeQuery(); - - if (resultSet.next()) { - production.setId(resultSet.getString("id")); - production.setName(resultSet.getString("name")); - production.setInPrice(resultSet.getFloat("inPrice")); - production.setOutPrice(resultSet.getFloat("OutPrice")); - production.setLife(resultSet.getInt("life")); - production.setSum(resultSet.getInt("sum")); - production.setSupplyId(resultSet.getInt("supplyId")); - production.setId2(resultSet.getString("id2")); - production.setName2(resultSet.getString("name2")); - production.setDelmark(resultSet.getInt("delmark")); + .prepareStatement("select * from production where id=? and delmark = 1"); // 查询指定ID且未被删除的商品 + preparedStatement.setString(1, id); // 设置查询参数 + resultSet = preparedStatement.executeQuery(); // 执行查询 + + if (resultSet.next()) { // 如果找到商品 + production.setId(resultSet.getString("id")); // 设置商品ID + production.setName(resultSet.getString("name")); // 设置商品名称 + production.setInPrice(resultSet.getFloat("inPrice")); // 设置进价 + production.setOutPrice(resultSet.getFloat("OutPrice")); // 设置售价 + production.setLife(resultSet.getInt("life")); // 设置保质期 + production.setSum(resultSet.getInt("sum")); // 设置库存数量 + production.setSupplyId(resultSet.getInt("supplyId")); // 设置供应商ID + production.setId2(resultSet.getString("id2")); // 设置商品类别ID + production.setName2(resultSet.getString("name2")); // 设置商品类别名称 + production.setDelmark(resultSet.getInt("delmark")); // 设置删除标记 } else { System.out.println("未找到"); - return null; + return null; // 如果未找到商品,返回null } } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(resultSet, preparedStatement, conn); + JDBCUtil.close(resultSet, preparedStatement, conn); // 关闭数据库资源 } - return production; + return production; // 返回商品信息 } @Override @@ -94,35 +94,35 @@ public class productionImpl implements productionService { * 由一个商品名查找并输出全部商品信息 */ Vector productions = new Vector(); - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { - preparedStatement = conn.prepareStatement("select * from production where name like ? and delmark = 1"); - String s='%'+name+'%'; - preparedStatement.setString(1, s); - resultSet = preparedStatement.executeQuery(); + preparedStatement = conn.prepareStatement("select * from production where name like ? and delmark = 1"); // 模糊查询商品名称 + String s = '%' + name + '%'; // 构造模糊查询字符串 + preparedStatement.setString(1, s); // 设置查询参数 + resultSet = preparedStatement.executeQuery(); // 执行查询 - while (resultSet.next()) { + while (resultSet.next()) { // 遍历结果集 Production production = new Production(); - production.setId(resultSet.getString("id")); - production.setName(resultSet.getString("name")); - production.setInPrice(resultSet.getFloat("inPrice")); - production.setOutPrice(resultSet.getFloat("OutPrice")); - production.setLife(resultSet.getInt("life")); - production.setSum(resultSet.getInt("sum")); - production.setSupplyId(resultSet.getInt("supplyId")); - production.setId2(resultSet.getString("id2")); - production.setName2(resultSet.getString("name2")); - production.setDelmark(resultSet.getInt("delmark")); - productions.add(production); + production.setId(resultSet.getString("id")); // 设置商品ID + production.setName(resultSet.getString("name")); // 设置商品名称 + production.setInPrice(resultSet.getFloat("inPrice")); // 设置进价 + production.setOutPrice(resultSet.getFloat("OutPrice")); // 设置售价 + production.setLife(resultSet.getInt("life")); // 设置保质期 + production.setSum(resultSet.getInt("sum")); // 设置库存数量 + production.setSupplyId(resultSet.getInt("supplyId")); // 设置供应商ID + production.setId2(resultSet.getString("id2")); // 设置商品类别ID + production.setName2(resultSet.getString("name2")); // 设置商品类别名称 + production.setDelmark(resultSet.getInt("delmark")); // 设置删除标记 + productions.add(production); // 将商品信息添加到Vector中 } } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(resultSet, preparedStatement, conn); + JDBCUtil.close(resultSet, preparedStatement, conn); // 关闭数据库资源 } - return productions; + return productions; // 返回所有匹配的商品信息 } @Override @@ -131,34 +131,34 @@ public class productionImpl implements productionService { */ public Production findByNameProduction(String name) { Production production = new Production(); - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { preparedStatement = conn - .prepareStatement("select * from production where name=?"); - preparedStatement.setString(1, name); - resultSet = preparedStatement.executeQuery(); - - if (resultSet.next()) { - production.setId(resultSet.getString("id")); - production.setName(resultSet.getString("name")); - production.setInPrice(resultSet.getFloat("inPrice")); - production.setOutPrice(resultSet.getFloat("OutPrice")); - production.setLife(resultSet.getInt("life")); - production.setSum(resultSet.getInt("sum")); - production.setSupplyId(resultSet.getInt("supplyId")); - production.setDelmark(resultSet.getInt("delmark")); + .prepareStatement("select * from production where name=?"); // 精确查询商品名称 + preparedStatement.setString(1, name); // 设置查询参数 + resultSet = preparedStatement.executeQuery(); // 执行查询 + + if (resultSet.next()) { // 如果找到商品 + production.setId(resultSet.getString("id")); // 设置商品ID + production.setName(resultSet.getString("name")); // 设置商品名称 + production.setInPrice(resultSet.getFloat("inPrice")); // 设置进价 + production.setOutPrice(resultSet.getFloat("OutPrice")); // 设置售价 + production.setLife(resultSet.getInt("life")); // 设置保质期 + production.setSum(resultSet.getInt("sum")); // 设置库存数量 + production.setSupplyId(resultSet.getInt("supplyId")); // 设置供应商ID + production.setDelmark(resultSet.getInt("delmark")); // 设置删除标记 } else { - return null; + return null; // 如果未找到商品,返回null } } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(resultSet, preparedStatement, conn); + JDBCUtil.close(resultSet, preparedStatement, conn); // 关闭数据库资源 } - return production; + return production; // 返回商品信息 } @Override @@ -167,39 +167,39 @@ public class productionImpl implements productionService { */ public int addProduction(Production p) { int flag = 0; - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 PreparedStatement preparedStatement = null; PreparedStatement preparedStatement1 = null; - ResultSet resultSet1=null; + ResultSet resultSet1 = null; // 假设商品不存在 try { - preparedStatement1 = conn.prepareStatement("select * from production where id=?"); - preparedStatement1.setString(1, p.getId()); - resultSet1=preparedStatement1.executeQuery(); - if(resultSet1.next()){ - return flag=2; + preparedStatement1 = conn.prepareStatement("select * from production where id=?"); // 检查商品是否已存在 + preparedStatement1.setString(1, p.getId()); // 设置查询参数 + resultSet1 = preparedStatement1.executeQuery(); // 执行查询 + if (resultSet1.next()) { + return flag = 2; // 如果商品已存在,返回2 } - preparedStatement = conn.prepareStatement("insert into production values(?,?,?,?,?,?,?,?,?,?,?)"); - preparedStatement.setString(1, p.getId()); - preparedStatement.setString(2, p.getName()); - preparedStatement.setFloat(3, p.getInPrice()); - preparedStatement.setFloat(4, p.getOutPrice()); - preparedStatement.setInt(5, p.getLife()); - preparedStatement.setInt(6, p.getSum()); - preparedStatement.setInt(7, p.getSupplyId()); - preparedStatement.setString(8, p.getId2()); - preparedStatement.setString(9, p.getName2()); - preparedStatement.setFloat(10, 0); - preparedStatement.setInt(11, 1); - preparedStatement.executeUpdate(); - flag=1; + preparedStatement = conn.prepareStatement("insert into production values(?,?,?,?,?,?,?,?,?,?,?)"); // 插入新商品 + preparedStatement.setString(1, p.getId()); // 设置商品ID + preparedStatement.setString(2, p.getName()); // 设置商品名称 + preparedStatement.setFloat(3, p.getInPrice()); // 设置进价 + preparedStatement.setFloat(4, p.getOutPrice()); // 设置售价 + preparedStatement.setInt(5, p.getLife()); // 设置保质期 + preparedStatement.setInt(6, p.getSum()); // 设置库存数量 + preparedStatement.setInt(7, p.getSupplyId()); // 设置供应商ID + preparedStatement.setString(8, p.getId2()); // 设置商品类别ID + preparedStatement.setString(9, p.getName2()); // 设置商品类别名称 + preparedStatement.setFloat(10, 0); // 设置未知字段 + preparedStatement.setInt(11, 1); // 设置删除标记为1(未删除) + preparedStatement.executeUpdate(); // 执行插入 + flag = 1; // 插入成功,返回1 } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(null, preparedStatement, conn); + JDBCUtil.close(null, preparedStatement, conn); // 关闭数据库资源 } - return flag; + return flag; // 返回操作结果 } @Override @@ -208,22 +208,21 @@ public class productionImpl implements productionService { */ public int deleteProduction(String id) { int flag = 0; - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 PreparedStatement preparedStatement = null; try { preparedStatement = conn - .prepareStatement("delete from production where id = ?"); - preparedStatement.setString(1, id); - preparedStatement.executeUpdate(); - flag = 1; + .prepareStatement("delete from production where id = ?"); // 删除指定ID的商品 + preparedStatement.setString(1, id); // 设置查询参数 + preparedStatement.executeUpdate(); // 执行删除 + flag = 1; // 删除成功,返回1 } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(null, preparedStatement, conn); + JDBCUtil.close(null, preparedStatement, conn); // 关闭数据库资源 } - return flag; - + return flag; // 返回操作结果 } @Override @@ -232,98 +231,99 @@ public class productionImpl implements productionService { */ public int updateProduction(Production p) { int flag = 0; - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 PreparedStatement preparedStatement = null; try { preparedStatement = conn - .prepareStatement("update production set name=?,inPrice=?,OutPrice=?,life=?,sum=?,delmark=? where id = ? and supplyId=?"); + .prepareStatement("update production set name=?,inPrice=?,OutPrice=?,life=?,sum=?,delmark=? where id = ? and supplyId=?"); // 更新商品信息 - preparedStatement.setString(1, p.getName()); - preparedStatement.setFloat(2, p.getInPrice()); - preparedStatement.setFloat(3, p.getOutPrice()); - preparedStatement.setInt(4, p.getLife()); - preparedStatement.setInt(5, p.getSum()); - preparedStatement.setInt(6, p.getDelmark()); - preparedStatement.setString(7, p.getId()); - preparedStatement.setInt(8, p.getSupplyId()); + preparedStatement.setString(1, p.getName()); // 设置商品名称 + preparedStatement.setFloat(2, p.getInPrice()); // 设置进价 + preparedStatement.setFloat(3, p.getOutPrice()); // 设置售价 + preparedStatement.setInt(4, p.getLife()); // 设置保质期 + preparedStatement.setInt(5, p.getSum()); // 设置库存数量 + preparedStatement.setInt(6, p.getDelmark()); // 设置删除标记 + preparedStatement.setString(7, p.getId()); // 设置商品ID + preparedStatement.setInt(8, p.getSupplyId()); // 设置供应商ID - preparedStatement.executeUpdate(); - flag = 1; + preparedStatement.executeUpdate(); // 执行更新 + flag = 1; // 更新成功,返回1 } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(null, preparedStatement, conn); + JDBCUtil.close(null, preparedStatement, conn); // 关闭数据库资源 } - return flag; + return flag; // 返回操作结果 } @Override public Vector findProductionById2(String id) { /** - * 由一个商品类别id2查找并输出全部商品 + * 由一个商品类别id2查找并输出全部商品 */ Vector productions = new Vector(); - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { - if(id.equals("0")) - preparedStatement = conn.prepareStatement("select * from production where delmark = 1"); - else - {preparedStatement = conn.prepareStatement("select * from production where id2= ? and delmark = 1"); - preparedStatement.setString(1, id);} - resultSet = preparedStatement.executeQuery(); - - while (resultSet.next()) { + if (id.equals("0")) + preparedStatement = conn.prepareStatement("select * from production where delmark = 1"); // 查询所有未删除的商品 + else { + preparedStatement = conn.prepareStatement("select * from production where id2= ? and delmark = 1"); // 查询指定类别ID且未删除的商品 + preparedStatement.setString(1, id); // 设置查询参数 + } + resultSet = preparedStatement.executeQuery(); // 执行查询 + + while (resultSet.next()) { // 遍历结果集 Production production = new Production(); - production.setId(resultSet.getString("id")); - production.setName(resultSet.getString("name")); - production.setInPrice(resultSet.getFloat("inPrice")); - production.setOutPrice(resultSet.getFloat("OutPrice")); - production.setLife(resultSet.getInt("life")); - production.setSum(resultSet.getInt("sum")); - production.setSupplyId(resultSet.getInt("supplyId")); - production.setId2(resultSet.getString("id2")); - production.setName2(resultSet.getString("name2")); - production.setDelmark(resultSet.getInt("delmark")); - productions.add(production); + production.setId(resultSet.getString("id")); // 设置商品ID + production.setName(resultSet.getString("name")); // 设置商品名称 + production.setInPrice(resultSet.getFloat("inPrice")); // 设置进价 + production.setOutPrice(resultSet.getFloat("OutPrice")); // 设置售价 + production.setLife(resultSet.getInt("life")); // 设置保质期 + production.setSum(resultSet.getInt("sum")); // 设置库存数量 + production.setSupplyId(resultSet.getInt("supplyId")); // 设置供应商ID + production.setId2(resultSet.getString("id2")); // 设置商品类别ID + production.setName2(resultSet.getString("name2")); // 设置商品类别名称 + production.setDelmark(resultSet.getInt("delmark")); // 设置删除标记 + productions.add(production); // 将商品信息添加到Vector中 } } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(resultSet, preparedStatement, conn); + JDBCUtil.close(resultSet, preparedStatement, conn); // 关闭数据库资源 } - return productions; + return productions; // 返回所有匹配的商品信息 } + @Override /** * 更新商品数量和价格 */ - public boolean updateProductionSum(String prodId,int sum) { + public boolean updateProductionSum(String prodId, int sum) { boolean flag = false; - Connection conn = JDBCUtil.getConn(); + Connection conn = JDBCUtil.getConn(); // 获取数据库连接 PreparedStatement preparedStatement = null; try { preparedStatement = conn - .prepareStatement("update production set sum=?+(select sum from(select sum from production where id = ? and delmark=1 ) p) where id = ? and delmark=1;"); + .prepareStatement("update production set sum=?+(select sum from(select sum from production where id = ? and delmark=1 ) p) where id = ? and delmark=1;"); // 更新商品库存数量 - preparedStatement.setInt(1, sum); - preparedStatement.setString(2, prodId); - preparedStatement.setString(3, prodId); + preparedStatement.setInt(1, sum); // 设置新增库存数量 + preparedStatement.setString(2, prodId); // 设置商品ID + preparedStatement.setString(3, prodId); // 设置商品ID - if(preparedStatement.executeUpdate()==1); - flag = true; + if (preparedStatement.executeUpdate() == 1) + flag = true; // 更新成功,返回true } catch (SQLException e) { e.printStackTrace(); } finally { - JDBCUtil.close(null, preparedStatement, conn); + JDBCUtil.close(null, preparedStatement, conn); // 关闭数据库资源 } - return flag; + return flag; // 返回操作结果 } - -} +} \ No newline at end of file diff --git a/Supermarket/src/com/lingnan/supermarket/dialog/InDialog.java b/Supermarket/src/com/lingnan/supermarket/dialog/InDialog.java index b0b28cb..0f720b0 100644 --- a/Supermarket/src/com/lingnan/supermarket/dialog/InDialog.java +++ b/Supermarket/src/com/lingnan/supermarket/dialog/InDialog.java @@ -30,195 +30,157 @@ import com.lingnan.supermarket.table.OutTableModel; import com.lingnan.supermarket.view.InView; import com.lingnan.supermarket.view.OutView; +// 定义一个继承自JDialog的类InDialog,用于显示添加商品的对话框 +public class InDialog extends JDialog implements ActionListener { -public class InDialog extends JDialog implements ActionListener{ - - - private JPanel prodIdPanel,sumPanel,phonePanel,opePanel; - - private JLabel prodIdLabel,sumLabel; - private JTextField prodIdTF,sumTF; - - private JButton addBtn,cancelBtn; - + // 定义面板、标签、文本框、按钮等组件 + private JPanel prodIdPanel, sumPanel, phonePanel, opePanel; + private JLabel prodIdLabel, sumLabel; + private JTextField prodIdTF, sumTF; + private JButton addBtn, cancelBtn; + // 定义OutTableModel对象,用于表格数据模型 private OutTableModel outTableModel = new OutTableModel(); + // 定义Production对象和productionImpl对象,用于处理商品数据 private Production production; private productionImpl productionImpl; + // 定义Vector集合,用于存储商品数据 private Vector v; + // 定义User对象,用于存储用户信息 private User user; + // 定义JFrame对象,用于存储父窗口 private JFrame JFramparent; + // 定义JComboBox对象和字符串数组,用于商品编号选择 private JComboBox combo; private String allProdId[] = null; private Vector vAll; private static String catalog; - public InDialog(JFrame parent,Vector v,User user) { - super(parent,"添加商品"); - - setSize(250,200); - setLocationRelativeTo(null); - setModal(true); - setResizable(false); - this.setLayout(new FlowLayout()); - JFramparent=parent; - this.v=v; - this.user = user; - initView(); - - + // 构造方法,初始化对话框并设置相关属性 + public InDialog(JFrame parent, Vector v, User user) { + super(parent, "添加商品"); // 调用父类构造方法,设置对话框标题 + + setSize(250, 200); // 设置对话框大小 + setLocationRelativeTo(null); // 设置对话框居中显示 + setModal(true); // 设置对话框为模态对话框 + setResizable(false); // 禁止调整对话框大小 + this.setLayout(new FlowLayout()); // 设置布局为流式布局 + JFramparent = parent; // 保存父窗口 + this.v = v; // 保存商品数据集合 + this.user = user; // 保存用户信息 + initView(); // 初始化界面 } - - - - + // 初始化界面方法 private void initView() { - prodIdPanel = new JPanel(); - prodIdLabel = new JLabel("编号"); - - - productionImpl= new productionImpl(); - vAll=productionImpl.findAllproduction(); - allProdId = new String[vAll.size()]; - for(int i=0;i(allProdId); - combo.addItemListener(new MyItemListener()); - - prodIdPanel.add(prodIdLabel); - prodIdPanel.add(combo); - - - - sumPanel = new JPanel(); - sumLabel = new JLabel("数量"); - sumTF = new JTextField(10); - sumPanel.add(sumLabel); - sumPanel.add(sumTF); - - - opePanel = new JPanel(); - addBtn = new JButton("添加"); - cancelBtn = new JButton("取消"); - addBtn.addActionListener(this); - cancelBtn.addActionListener(this); - opePanel.add(addBtn); - opePanel.add(cancelBtn); - - Container container = getContentPane(); - container.add(prodIdPanel); - container.add(sumPanel); - container.add(opePanel); + catalog = allProdId[0]; // 默认选择第一个商品编号 + System.out.println(allProdId[0]); // 打印默认商品编号 + combo = new JComboBox(allProdId); // 创建商品编号下拉框 + combo.addItemListener(new MyItemListener()); // 添加下拉框监听器 + + prodIdPanel.add(prodIdLabel); // 将商品编号标签添加到面板 + prodIdPanel.add(combo); // 将商品编号下拉框添加到面板 + + sumPanel = new JPanel(); // 创建数量面板 + sumLabel = new JLabel("数量"); // 创建数量标签 + sumTF = new JTextField(10); // 创建数量文本框 + sumPanel.add(sumLabel); // 将数量标签添加到面板 + sumPanel.add(sumTF); // 将数量文本框添加到面板 + + opePanel = new JPanel(); // 创建操作面板 + addBtn = new JButton("添加"); // 创建添加按钮 + cancelBtn = new JButton("取消"); // 创建取消按钮 + addBtn.addActionListener(this); // 为添加按钮添加事件监听器 + cancelBtn.addActionListener(this); // 为取消按钮添加事件监听器 + opePanel.add(addBtn); // 将添加按钮添加到面板 + opePanel.add(cancelBtn); // 将取消按钮添加到面板 + + Container container = getContentPane(); // 获取内容面板 + container.add(prodIdPanel); // 将商品编号面板添加到内容面板 + container.add(sumPanel); // 将数量面板添加到内容面板 + container.add(opePanel); // 将操作面板添加到内容面板 } - /*将数组传到inview的刷新方法里面再刷新*/ - public Vector getVector(){ - return v; + // 获取商品数据集合的方法 + public Vector getVector() { + return v; // 返回商品数据集合 } - - //下拉框监听 - static class MyItemListener implements ItemListener{ - + // 下拉框监听器类 + static class MyItemListener implements ItemListener { @Override public void itemStateChanged(ItemEvent e) { - JComboBox cb=(JComboBox)e.getSource(); - String select=(String) cb.getSelectedItem(); - catalog=select; + JComboBox cb = (JComboBox) e.getSource(); // 获取事件源 + String select = (String) cb.getSelectedItem(); // 获取选中的商品编号 + catalog = select; // 更新当前选中的商品编号 } - } - - - - - - - + // 事件处理方法 @Override public void actionPerformed(ActionEvent e) { - Object source = e.getSource(); - if(source==addBtn){ - //1.判断是否存在这个商品 - //2.如果存在就获取这条商品记录为一个对象 - //3.判断购物缓冲区是否有这个记录 - //3.1如果有update数量和price - //3.2如果没有就insert这条记录,把sum更新 - //保存到数据库 - //关闭对话框 - //刷新table - - - String prodId =catalog; - System.out.println("proId="+prodId); - System.out.println("vatalog="+catalog); - - if(sumTF.getText().equals("")) { - JOptionPane.showMessageDialog(this,"请输入完整","提示",JOptionPane.ERROR_MESSAGE); + Object source = e.getSource(); // 获取事件源 + if (source == addBtn) { // 如果事件源是添加按钮 + String prodId = catalog; // 获取选中的商品编号 + System.out.println("proId=" + prodId); // 打印商品编号 + System.out.println("vatalog=" + catalog); // 打印当前选中的商品编号 + + if (sumTF.getText().equals("")) { // 如果数量文本框为空 + JOptionPane.showMessageDialog(this, "请输入完整", "提示", JOptionPane.ERROR_MESSAGE); // 提示输入完整信息 return; } - int sum = Integer.parseInt(sumTF.getText()) ; + int sum = Integer.parseInt(sumTF.getText()); // 获取输入的数量 - if(sum<0) {/*判断输入大于0*/ - JOptionPane.showMessageDialog(this,"请输入大于0的数量","提示",JOptionPane.ERROR_MESSAGE); + if (sum < 0) { // 如果数量小于0 + JOptionPane.showMessageDialog(this, "请输入大于0的数量", "提示", JOptionPane.ERROR_MESSAGE); // 提示输入大于0的数量 return; } - //TODO 参数校验 - /*/判断是已添加,未添加还是不存在*/ - productionImpl productionImpl = new productionImpl(); - production = new Production(); - production = productionImpl.findByIdProduction(prodId); + // 参数校验 + productionImpl productionImpl = new productionImpl(); // 创建productionImpl对象 + production = new Production(); // 创建Production对象 + production = productionImpl.findByIdProduction(prodId); // 根据商品编号查找商品 - - if(production!=null) {/*商品库有这个商品存在*/ + if (production != null) { // 如果商品存在 int mark = 0; - for(Production p:v) { - - if(p.getId().equals(prodId)){/*如果数组中存在相同商品就更新数量和价格*/ - sum=p.getSum()+sum;/*数量*/ - p.setSum(sum); - p.setPrice(sum*p.getInPrice());/*进货价格*/ - mark = 1; + for (Production p : v) { // 遍历商品数据集合 + if (p.getId().equals(prodId)) { // 如果集合中存在相同商品 + sum = p.getSum() + sum; // 更新数量 + p.setSum(sum); // 设置数量 + p.setPrice(sum * p.getInPrice()); // 更新价格 + mark = 1; // 标记为已存在 break; } - } - if(mark==0) {/*插入新的*/ + if (mark == 0) { // 如果集合中不存在相同商品 System.out.println("缓存区不存在,插入新的数据"); - production.setSum(sum);/*更新价格和数量后插入心的*/ - production.setPrice(sum*production.getInPrice()); - v.add(production); - + production.setSum(sum); // 设置数量 + production.setPrice(sum * production.getInPrice()); // 设置价格 + v.add(production); // 将商品添加到集合 } - System.out.println("插入后v的大小"+v.size()); - this.dispose(); - JOptionPane.showMessageDialog(this,"添加成功","提示",JOptionPane.ERROR_MESSAGE); - - + System.out.println("插入后v的大小" + v.size()); // 打印集合大小 + this.dispose(); // 关闭对话框 + JOptionPane.showMessageDialog(this, "添加成功", "提示", JOptionPane.ERROR_MESSAGE); // 提示添加成功 + } else { // 如果商品不存在 + JOptionPane.showMessageDialog(this, "商品不存在", "提示", JOptionPane.ERROR_MESSAGE); // 提示商品不存在 } - - - else {/*商品库没有这个商品*/ - JOptionPane.showMessageDialog(this,"商品不存在","提示",JOptionPane.ERROR_MESSAGE); - } - } - else if(source == cancelBtn) { - - this.dispose(); + } else if (source == cancelBtn) { // 如果事件源是取消按钮 + this.dispose(); // 关闭对话框 } } - - -} +} \ No newline at end of file diff --git a/Supermarket/src/com/lingnan/supermarket/dialog/ProductionDialog.java b/Supermarket/src/com/lingnan/supermarket/dialog/ProductionDialog.java index 152c9ae..0a00aa3 100644 --- a/Supermarket/src/com/lingnan/supermarket/dialog/ProductionDialog.java +++ b/Supermarket/src/com/lingnan/supermarket/dialog/ProductionDialog.java @@ -17,7 +17,6 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; -import com.lingnan.supermarket.*; import com.lingnan.supermarket.dao.SupplierInfService; import com.lingnan.supermarket.dao.productionService; import com.lingnan.supermarket.dao.impl.SupplierInfImpl; @@ -28,172 +27,179 @@ import com.lingnan.supermarket.dto.Production; import com.lingnan.supermarket.dto.SupplierInf; import com.lingnan.supermarket.table.ProdCatalogTM; import com.lingnan.supermarket.view.StorageView; -import com.lingnan.supermarket.view.SupplierView; -import com.lingnan.supermarket.view.ProdCatalogView.MyItemListener; +/** + * 商品信息添加对话框类 + * 继承自JDialog,用于显示商品信息添加界面 + */ public class ProductionDialog extends JDialog implements ActionListener { + // 定义各个面板,用于组织界面布局 private JPanel namePanel, addressPanel, contactPanel, - opePanel,idPanel,inpricePanel,outpricePanel,lifePanel, - sumPanel,supplyidPanel,id2Panel,name2Panel; + opePanel, idPanel, inpricePanel, outpricePanel, lifePanel, + sumPanel, supplyidPanel, id2Panel, name2Panel; + // 定义各个标签,用于显示提示信息 private JLabel nameLabel, addressLabel, contactLabel, - idLabel,inpriceLabel,outpriceLabel,lifeLabel,sumLabel, - supplyidLabel,id2Label,name2Label; + idLabel, inpriceLabel, outpriceLabel, lifeLabel, sumLabel, + supplyidLabel, id2Label, name2Label; + + // 定义各个文本框,用于用户输入数据 private JTextField nameTF, addressTF, contactTF, - idTF,inpriceTF,outpriceTF,lifeTF,sumTF, - supplyidTF,id2TF,name2TF; + idTF, inpriceTF, outpriceTF, lifeTF, sumTF, + supplyidTF, id2TF, name2TF; + // 定义保存和取消按钮 private JButton saveBtn, cancelBtn; + // 商品服务接口的实现类,用于操作商品数据 private productionService productionService = new productionImpl(); - //下拉类别 - private String log[]=null; - private ArrayListalog=null; - private ProdCatalogTM prodCatalogTM; - private ProdCatalog pc; - private prodCatalogImpl pci; - private JComboBox combo; - private String id2; - private String name2; - - //下拉供应商类别 - private String superlier[]=null; - private ArrayListasuperlier=null; - private SupplierInf si; - private SupplierInfImpl sii; - private JComboBox combo1; - private int supplyid; - - private StorageView storageView; - - private Production production; - + // 下拉类别相关变量 + private String log[] = null; // 商品类别名称数组 + private ArrayList alog = null; // 商品类别名称列表 + private ProdCatalogTM prodCatalogTM; // 商品类别表格模型 + private ProdCatalog pc; // 商品类别对象 + private prodCatalogImpl pci; // 商品类别服务实现类 + private JComboBox combo; // 商品类别下拉框 + private String id2; // 商品类别ID + private String name2; // 商品类别名称 + + // 下拉供应商类别相关变量 + private String superlier[] = null; // 供应商名称数组 + private ArrayList asuperlier = null; // 供应商名称列表 + private SupplierInf si; // 供应商对象 + private SupplierInfImpl sii; // 供应商服务实现类 + private JComboBox combo1; // 供应商下拉框 + private int supplyid; // 供应商ID + + private StorageView storageView; // 库存视图 + + private Production production; // 商品对象 + + /** + * 构造函数,初始化对话框 + * @param parent 父窗口 + */ public ProductionDialog(JFrame parent) { - super(parent, "添加"); - + super(parent, "添加"); // 调用父类构造函数,设置标题为“添加” + // 设置对话框大小 setSize(350, 500); + // 设置对话框居中显示 setLocationRelativeTo(null); + // 设置为模态对话框,即打开对话框时,父窗口不可操作 setModal(true); - setResizable(false); + setResizable(false); // 禁止调整对话框大小 + // 设置布局为流式布局 this.setLayout(new FlowLayout()); + // 初始化视图 initView(); } + /** + * 初始化视图 + */ private void initView() { + // 商品编号面板 idPanel = new JPanel(); idLabel = new JLabel("商品编号"); idTF = new JTextField(15); idPanel.add(idLabel); idPanel.add(idTF); - + // 商品名称面板 namePanel = new JPanel(); nameLabel = new JLabel("名称"); nameTF = new JTextField(15); namePanel.add(nameLabel); namePanel.add(nameTF); - + // 进货单价面板 inpricePanel = new JPanel(); inpriceLabel = new JLabel("进货单价"); inpriceTF = new JTextField(15); inpricePanel.add(inpriceLabel); inpricePanel.add(inpriceTF); + // 购买单价面板 outpricePanel = new JPanel(); outpriceLabel = new JLabel("购买单价"); outpriceTF = new JTextField(15); outpricePanel.add(outpriceLabel); outpricePanel.add(outpriceTF); - + // 保质期面板 lifePanel = new JPanel(); lifeLabel = new JLabel("保质期(月份数)"); lifeTF = new JTextField(15); lifePanel.add(lifeLabel); lifePanel.add(lifeTF); - + // 库存面板 sumPanel = new JPanel(); sumLabel = new JLabel("库存"); sumTF = new JTextField(15); sumPanel.add(sumLabel); sumPanel.add(sumTF); - //供应商名下拉框 传递supplyid + // 供应商名下拉框面板 supplyidPanel = new JPanel(); supplyidLabel = new JLabel("供应商"); -// supplyidTF = new JTextField(15); + sii = new SupplierInfImpl(); // 创建供应商服务实现类对象 + this.asuperlier = sii.findNameSupplier(); // 获取所有供应商名称 + this.superlier = new String[asuperlier.size()]; // 初始化供应商名称数组 + for (int i = 0; i < asuperlier.size(); i++) + superlier[i] = asuperlier.get(i); // 将供应商名称存入数组 - sii=new SupplierInfImpl(); - this.asuperlier=sii.findNameSupplier(); - this.superlier=new String[asuperlier.size()]; - for(int i=0;i(superlier); - combo1.addItemListener(new MyItemListener1()); + combo1 = new JComboBox(superlier); // 创建供应商下拉框 + combo1.addItemListener(new MyItemListener1()); // 添加下拉框监听器 supplyidPanel.add(supplyidLabel); supplyidPanel.add(combo1); - - - - - /* id2Panel = new JPanel(); - id2Label = new JLabel("分类id"); - id2TF = new JTextField(id2,15); - id2Panel.add(id2Label); - id2Panel.add(id2TF);*/ - //类名下拉框 + // 类名下拉框面板 name2Panel = new JPanel(); name2Label = new JLabel("类名"); - pci=new prodCatalogImpl(); - this.alog=pci.findNameProdCatalog(); - this.log=new String[alog.size()]; - for(int i=0;i(log); - combo.addItemListener(new MyItemListener()); + pci = new prodCatalogImpl(); // 创建商品类别服务实现类对象 + this.alog = pci.findNameProdCatalog(); // 获取所有商品类别名称 + this.log = new String[alog.size()]; // 初始化商品类别名称数组 + for (int i = 0; i < alog.size(); i++) + log[i] = alog.get(i); // 将商品类别名称存入数组 + + combo = new JComboBox(log); // 创建商品类别下拉框 + combo.addItemListener(new MyItemListener()); // 添加下拉框监听器 name2Panel.add(name2Label); name2Panel.add(combo); - + // 地址面板 addressPanel = new JPanel(); addressLabel = new JLabel("地址"); addressTF = new JTextField(15); addressPanel.add(addressLabel); addressPanel.add(addressTF); + // 电话面板 contactPanel = new JPanel(); contactLabel = new JLabel("电话"); contactTF = new JTextField(15); contactPanel.add(contactLabel); contactPanel.add(contactTF); + // 操作按钮面板 opePanel = new JPanel(); saveBtn = new JButton("保存"); cancelBtn = new JButton("取消"); - saveBtn.addActionListener(this); - cancelBtn.addActionListener(this); + saveBtn.addActionListener(this); // 添加保存按钮监听器 + cancelBtn.addActionListener(this); // 添加取消按钮监听器 opePanel.add(saveBtn); opePanel.add(cancelBtn); + // 将所有面板添加到容器中 Container container = getContentPane(); container.add(idPanel); container.add(namePanel); @@ -202,20 +208,19 @@ public class ProductionDialog extends JDialog implements ActionListener { container.add(lifePanel); container.add(sumPanel); container.add(supplyidPanel); -// container.add(id2Panel); container.add(name2Panel); container.add(opePanel); } + /** + * 按钮点击事件处理 + * @param e 事件对象 + */ @Override public void actionPerformed(ActionEvent e) { Object source = e.getSource(); if (source == saveBtn) { - // 思路获取数据 - // 保存到数据库 - // 关闭对话框 - // 刷新table - + // 获取输入的数据 String name = nameTF.getText(); String id = idTF.getText(); float inprice = Float.parseFloat((inpriceTF.getText())); @@ -223,26 +228,25 @@ public class ProductionDialog extends JDialog implements ActionListener { int life = Integer.parseInt(lifeTF.getText()); int sum = Integer.parseInt(sumTF.getText()); - - - // TODO 参数校验 + // 参数校验 if (this.production == null) { - if(supplyid==-1){ + if (supplyid == -1) { JOptionPane.showMessageDialog(this, "商品检索出错", "提示", JOptionPane.ERROR_MESSAGE); return; } - if(supplyid==0){ + if (supplyid == 0) { JOptionPane.showMessageDialog(this, "请选择商品名", "提示", JOptionPane.ERROR_MESSAGE); return; } - if(id2.equals("0")){ + if (id2.equals("0")) { JOptionPane.showMessageDialog(this, "请选择商品类", "提示", JOptionPane.ERROR_MESSAGE); return; } + // 创建商品对象并设置属性 Production production = new Production(); production.setId(id); production.setName(name); @@ -253,69 +257,58 @@ public class ProductionDialog extends JDialog implements ActionListener { production.setSupplyId(supplyid); production.setId2(id2); production.setName2(name2); + + // 调用服务接口添加商品 int result = productionService.addProduction(production); - // int result = 1; if (result == 1) { - JOptionPane.showMessageDialog(this, "添加成功", "提示", JOptionPane.INFORMATION_MESSAGE); - this.dispose(); - } else if(result == 2){ + this.dispose(); // 关闭对话框 + } else if (result == 2) { JOptionPane.showMessageDialog(this, "已存在该商品", "提示", JOptionPane.ERROR_MESSAGE); - } - else { + } else { JOptionPane.showMessageDialog(this, "出错!添加失败", "提示", JOptionPane.ERROR_MESSAGE); } - }/*else{ - //更新 - SupplierInf supplierInf= new SupplierInf(); - supplierInf.setName(name); - supplierInf.setAddress(address); - supplierInf.setContact(contact); - supplierInf.setId(this.supplierInf.getId()); - - int result = supplierInfService.updateSupplierInf(supplierInf); - if(result==1){ - JOptionPane.showMessageDialog(this, "更新成功", "提示", - JOptionPane.INFORMATION_MESSAGE); - } - }*/ - + } } else if (source == cancelBtn) { - + // 关闭对话框 this.dispose(); } } + + /** + * 商品类别下拉框监听器 + */ public class MyItemListener implements ItemListener { @Override public void itemStateChanged(ItemEvent e) { JComboBox cb = (JComboBox) e.getSource(); - name2 = (String) cb.getSelectedItem(); - pci =new prodCatalogImpl(); - for(int i=0;i InOrders; - private inOrderServiceImpl inOrderImpl= new inOrderServiceImpl(); - private InOrder inOrder ; + // 入库订单数据集合 + private Vector InOrders; - String iNumber ;/*订单号*/ + // 入库订单服务实现类 + private inOrderServiceImpl inOrderImpl = new inOrderServiceImpl(); + // 当前操作的入库订单对象 + private InOrder inOrder; + // 订单号 + String iNumber; + + //加载所有入库订单记录 public void allInOrderRecord() { - //将添加的商品加入到静态变量Vector数组中 - /*prod = InDialog.getProduction();*/ + // 从数据库中获取所有入库订单记录 InOrders = inOrderImpl.findAllInOrder(); } - //查找分类结果 + //根据分类查找入库订单记录(0:全部,1:已入库,2:待入库,3:已取消) public void resultOfFind(int catalog) { - if(catalog==0) + if (catalog == 0) { + // 加载所有入库订单记录 InOrders = inOrderImpl.findAllInOrder(); - else + } else { + // 根据状态查找入库订单记录 InOrders = inOrderImpl.FindStatus(catalog); + } } - //根据订单查找 + // 根据订单号查找入库订单记录 public void resultOfNumber(String Number) { - InOrders=new Vector(); + InOrders = new Vector(); inOrder = inOrderImpl.findByIdinOrder(Number); InOrders.add(inOrder); } + //获取表格行数 @Override public int getRowCount() { return InOrders.size(); } - /* public Float getAllPrice() { - return BufferImpl.InBufferAllPrice(); - } - */ + // 获取表格列数 @Override public int getColumnCount() { return columnName.length; } + //获取指定单元格的值 @Override public Object getValueAt(int rowIndex, int columnIndex) { inOrder = InOrders.get(rowIndex); -/* System.out.println( "id="+users.get(rowIndex).getId()); - System.out.println("rowIndex"+rowIndex); - System.out.println("columnIndex"+columnIndex);*/ - iNumber=inOrder.getiNumber(); - if(columnIndex==0) { - return inOrder.getiNumber(); - }else if(columnIndex==1) { - return inOrder.getAllInPrice(); - }else if(columnIndex==2) { - return inOrder.getInDate(); - }else if(columnIndex==3) { - return inOrder.getPrincipal(); - }else if(columnIndex==4) { + iNumber = inOrder.getiNumber(); + + // 根据列索引返回对应的数据 + if (columnIndex == 0) { + return inOrder.getiNumber(); // 订单号 + } else if (columnIndex == 1) { + return inOrder.getAllInPrice(); // 总价 + } else if (columnIndex == 2) { + return inOrder.getInDate(); // 时间 + } else if (columnIndex == 3) { + return inOrder.getPrincipal(); // 负责人 + } else if (columnIndex == 4) { + // 根据状态返回对应的字符串 String status = null; - if(inOrder.getStatus()==1) - status= "已入库"; - else if(inOrder.getStatus()==2) - status= "待入库"; - else if(inOrder.getStatus()==3) - status= "已取消"; + if (inOrder.getStatus() == 1) + status = "已入库"; + else if (inOrder.getStatus() == 2) + status = "待入库"; + else if (inOrder.getStatus() == 3) + status = "已取消"; return status; - }else { + } else { return null; } } - public String getINumber() { /*返回要修改或删除的记录*/ + //获取当前操作的订单号 + public String getINumber() { return iNumber; } - + //获取指定列的列名 @Override public String getColumnName(int column) { return columnName[column]; } - - -} +} \ No newline at end of file diff --git a/Supermarket/src/com/lingnan/supermarket/table/InRecordTM.java b/Supermarket/src/com/lingnan/supermarket/table/InRecordTM.java index e09bc0b..d5a65ed 100644 --- a/Supermarket/src/com/lingnan/supermarket/table/InRecordTM.java +++ b/Supermarket/src/com/lingnan/supermarket/table/InRecordTM.java @@ -9,83 +9,83 @@ import javax.swing.table.AbstractTableModel; import com.lingnan.supermarket.dto.Buffer; import com.lingnan.supermarket.dto.InOrder; import com.lingnan.supermarket.dto.InRecord; -import com.lingnan.supermarket.dto.Buffer; import com.lingnan.supermarket.dto.Production; import com.lingnan.supermarket.dto.User; import com.lingnan.supermarket.dao.UserService; import com.lingnan.supermarket.dao.impl.*; import com.lingnan.supermarket.dialog.InDialog; +//用于管理入库记录的表格数据 +public class InRecordTM extends AbstractTableModel { -public class InRecordTM extends AbstractTableModel{ - - private String [] columnName = {"订单号","id","数量","金额"}; + // 表格列名数组 + private String[] columnName = { "订单号", "id", "数量", "金额" }; + // 商品数据访问对象 private productionImpl prodDao = new productionImpl(); - private Vector InRecords; + // 入库记录数据集合 + private Vector InRecords; + // 入库记录服务实现类 private inRecordServiceImpl inRecordImpl = new inRecordServiceImpl(); - private InRecord inRecord= new InRecord(); + // 当前操作的入库记录对象 + private InRecord inRecord = new InRecord(); - private String iNumber ;/*订单号*/ - + // 订单号 + private String iNumber; + //构造函数,初始化订单号 public InRecordTM(String iNumber) { - this.iNumber=iNumber; + this.iNumber = iNumber; } + //根据订单号查找入库记录 public void findInRecordByINumber() { - //将添加的商品加入到静态变量Vector数组中 - /*prod = InDialog.getProduction();*/ + // 将添加的商品加入到静态变量 Vector 数组中 + // prod = InDialog.getProduction(); InRecords = inRecordImpl.findByIdinRecord(iNumber); } - + //获取表格的行数 @Override public int getRowCount() { return InRecords.size(); } - /* public Float getAllPrice() { - return BufferImpl.InBufferAllPrice(); - } - */ + //获取表格的列数 @Override public int getColumnCount() { return columnName.length; } + //获取指定单元格的值 @Override public Object getValueAt(int rowIndex, int columnIndex) { inRecord = InRecords.get(rowIndex); -/* System.out.println( "id="+users.get(rowIndex).getId()); - System.out.println("rowIndex"+rowIndex); - System.out.println("columnIndex"+columnIndex);*/ - iNumber=inRecord.getiNumber(); - if(columnIndex==0) { - return inRecord.getiNumber(); - }else if(columnIndex==1) { - return inRecord.getId(); - }else if(columnIndex==2) { - return inRecord.getSum(); - }else if(columnIndex==3) { - return inRecord.getInPrice(); - }else { + iNumber = inRecord.getiNumber(); + if (columnIndex == 0) { + return inRecord.getiNumber(); // 返回订单号 + } else if (columnIndex == 1) { + return inRecord.getId(); // 返回商品ID + } else if (columnIndex == 2) { + return inRecord.getSum(); // 返回数量 + } else if (columnIndex == 3) { + return inRecord.getInPrice(); // 返回金额 + } else { return null; } } - public String getINumber() { /*返回要修改或删除的记录*/ + //获取订单 + public String getINumber() { return iNumber; } - + // 获取指定列的列名 @Override public String getColumnName(int column) { return columnName[column]; } - - -} +} \ No newline at end of file diff --git a/Supermarket/src/com/lingnan/supermarket/table/SupplierTableModel.java b/Supermarket/src/com/lingnan/supermarket/table/SupplierTableModel.java index 479fa7a..1c42f62 100644 --- a/Supermarket/src/com/lingnan/supermarket/table/SupplierTableModel.java +++ b/Supermarket/src/com/lingnan/supermarket/table/SupplierTableModel.java @@ -3,91 +3,90 @@ package com.lingnan.supermarket.table; import java.util.List; import java.util.Vector; - - import javax.swing.table.AbstractTableModel; import com.lingnan.supermarket.dto.SupplierInf; import com.lingnan.supermarket.dao.SupplierInfService; -import com.lingnan.supermarket.dao.impl.*; - +import com.lingnan.supermarket.dao.impl.SupplierInfImpl; -public class SupplierTableModel extends AbstractTableModel{ +// 管理供应商信息的表格数据 +public class SupplierTableModel extends AbstractTableModel { - private String [] columnName = {"id","名称","地址","电话","邮箱"}; + // 定义表格的列名数组 + private String[] columnName = { "id", "名称", "地址", "电话", "邮箱" }; - //private SupplierInfImpl supplierDao = new SupplierInfImpl(); + // 创建 SupplierInfService 对象,用于与数据库交互 private SupplierInfService supplierInfService = new SupplierInfImpl(); + // 创建 SupplierInf 对象,用于存储单个供应商信息 private SupplierInf supplierInf = new SupplierInf(); + // 创建 Vector 集合,用于存储所有供应商信息 private Vector suppliers; - private int id=0; + // 定义一个整型变量 id,用于存储供应商的唯一标识符 + private int id = 0; + // 加载所有供应商信息的方法 public void all() { - //查找全部数据 + // 从数据库中查找全部供应商信息 suppliers = supplierInfService.findAllSupplierInf(); } + // 根据供应商名称加载供应商信息的方法 public void Byname(SupplierInf supplierInf) { + // 根据供应商名称查找供应商信息 suppliers = supplierInfService.findByNameSupplierInf(supplierInf); - } - + // 获取表格行数的方法 @Override public int getRowCount() { - return suppliers.size(); + return suppliers.size(); // 返回供应商集合的大小 } + // 获取表格列数的方法 @Override public int getColumnCount() { - return columnName.length; + return columnName.length; // 返回列名数组的长度 } + // 获取指定单元格值的方法 @Override public Object getValueAt(int rowIndex, int columnIndex) { - SupplierInf prod = suppliers.get(rowIndex); - //id = supplierInf.getId(); -/* System.out.println( "id="+users.get(rowIndex).getId()); - System.out.println("rowIndex"+rowIndex); - System.out.println("columnIndex"+columnIndex);*/ - if(columnIndex==0) { - return prod.getId(); - }else if(columnIndex==1) { - return prod.getName(); - }else if(columnIndex==2) { - return prod.getAddress(); - }else if(columnIndex==3) { - return prod.getContact(); - }else if(columnIndex==4){ - return prod.getEmail(); - } - else { - return null; + SupplierInf prod = suppliers.get(rowIndex); // 获取指定行的供应商对象 + // 根据列索引返回对应的供应商信息 + if (columnIndex == 0) { + return prod.getId(); // 返回供应商的唯一标识符 + } else if (columnIndex == 1) { + return prod.getName(); // 返回供应商的名称 + } else if (columnIndex == 2) { + return prod.getAddress(); // 返回供应商的地址 + } else if (columnIndex == 3) { + return prod.getContact(); // 返回供应商的联系电话 + } else if (columnIndex == 4) { + return prod.getEmail(); // 返回供应商的邮箱 + } else { + return null; // 如果列索引无效,返回 null } } + // 获取指定列名的方法 @Override public String getColumnName(int column) { - return columnName[column]; + return columnName[column]; // 返回列名数组中指定索引的列名 } -/* - public int getId() { - return id; - } - public int getValueAt(int rowIndex){ - SupplierInf supplierInf = suppliers.get(rowIndex); - id=suppliers.get(rowIndex).getId(); - //System.out.println("rowIndex"+rowIndex); - //System.out.println("columnIndex"+columnIndex); - return supplierInf.getId(); - } - - */ - - - -} + /* + * + * public int getId() { + * return id; + * } + * + * public int getValueAt(int rowIndex){ + * SupplierInf supplierInf = suppliers.get(rowIndex); + * id = suppliers.get(rowIndex).getId(); + * return supplierInf.getId(); + * } + */ +} \ No newline at end of file diff --git a/Supermarket/src/com/lingnan/supermarket/utils/DateUtil.java b/Supermarket/src/com/lingnan/supermarket/utils/DateUtil.java index 8297759..6a08315 100644 --- a/Supermarket/src/com/lingnan/supermarket/utils/DateUtil.java +++ b/Supermarket/src/com/lingnan/supermarket/utils/DateUtil.java @@ -3,17 +3,8 @@ package com.lingnan.supermarket.utils; import java.text.SimpleDateFormat; import java.util.Date; -// DateUtil类,从名称可以推测是用于处理日期相关操作的工具类 +// 用于处理日期相关操作的工具类 public class DateUtil { - - /** - * dateToString方法用于将给定的Date类型日期对象按照指定的格式转换为字符串表示形式。 - * - * @param date 要进行格式化的Date类型日期对象,代表一个具体的时间点,例如某个操作发生的时间等。 - * @param pattern 用于指定日期格式化的模式字符串,例如"yyyy-MM-dd HH:mm:ss"表示年-月-日 时:分:秒的格式。 - * 如果传入的pattern为null,则默认使用"yyyy-MM-dd HH:mm:ss"格式进行格式化。 - * @return 返回一个按照指定格式(或默认格式)格式化后的日期字符串,方便在界面显示、数据存储等场景使用。 - */ public static String dateToString(Date date, String pattern) { // 创建SimpleDateFormat对象,它是Java中用于格式化日期的类,通过指定的模式将日期转换为相应格式的字符串。 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(); diff --git a/Supermarket/src/com/lingnan/supermarket/utils/EmailTest.java b/Supermarket/src/com/lingnan/supermarket/utils/EmailTest.java index 7fcaf89..103c0c5 100644 --- a/Supermarket/src/com/lingnan/supermarket/utils/EmailTest.java +++ b/Supermarket/src/com/lingnan/supermarket/utils/EmailTest.java @@ -3,7 +3,6 @@ package com.lingnan.supermarket.utils; import javax.mail.MessagingException; import javax.mail.internet.AddressException; -// EmailTest类 public class EmailTest { //Java程序的入口点 diff --git a/Supermarket/src/com/lingnan/supermarket/utils/JDBCUtil.java b/Supermarket/src/com/lingnan/supermarket/utils/JDBCUtil.java index 22a58b4..665556f 100644 --- a/Supermarket/src/com/lingnan/supermarket/utils/JDBCUtil.java +++ b/Supermarket/src/com/lingnan/supermarket/utils/JDBCUtil.java @@ -9,7 +9,7 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; -// JDBCUtil工具类,用于管理数据库连接相关的操作,如加载数据库配置、获取数据库连接以及释放相关资源等 +// 用于管理数据库连接相关的操作,如加载数据库配置、获取数据库连接以及释放相关资源等 public class JDBCUtil { // 用于存储数据库连接相关的配置信息,通过读取配置文件将配置项加载到该对象中 diff --git a/Supermarket/src/com/lingnan/supermarket/utils/Test.java b/Supermarket/src/com/lingnan/supermarket/utils/Test.java index ab6921b..5213aa7 100644 --- a/Supermarket/src/com/lingnan/supermarket/utils/Test.java +++ b/Supermarket/src/com/lingnan/supermarket/utils/Test.java @@ -1,6 +1,6 @@ package com.lingnan.supermarket.utils; -//测试类,用于演示静态代码块的使用 +//用于演示静态代码块的使用 public class Test { static { System.out.println("tasdasd."); // 打印一条测试信息 diff --git a/Supermarket/src/com/lingnan/supermarket/utils/TimeAndOrder.java b/Supermarket/src/com/lingnan/supermarket/utils/TimeAndOrder.java index 11d404f..e88deb4 100644 --- a/Supermarket/src/com/lingnan/supermarket/utils/TimeAndOrder.java +++ b/Supermarket/src/com/lingnan/supermarket/utils/TimeAndOrder.java @@ -4,17 +4,8 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Random; -//具类,用于生成订单号和时间戳 +//生成订单号和时间戳 public class TimeAndOrder { - - /** - * 生成订单号和当前时间戳。 - * 订单号由用户名、随机数、当前时间戳和另一个随机数组成。 - * 时间戳格式为 "yyyy-MM-dd HH:mm:ss"。 - * - * @param username 用户名,用于生成订单号的一部分。 - * @return 返回一个字符串数组,包含订单号和当前时间戳。 - */ public static String[] TimeAndOrder(String username) { // 创建一个长度为2的字符串数组,用于存储订单号和时间戳 String[] s = new String[2]; diff --git a/Supermarket/src/com/lingnan/supermarket/view/ProdCatalogView.java b/Supermarket/src/com/lingnan/supermarket/view/ProdCatalogView.java index d41bef9..7a946b4 100644 --- a/Supermarket/src/com/lingnan/supermarket/view/ProdCatalogView.java +++ b/Supermarket/src/com/lingnan/supermarket/view/ProdCatalogView.java @@ -29,166 +29,136 @@ import com.lingnan.supermarket.table.StorageTableModel; import com.lingnan.supermarket.table.UserTableModel; import com.lingnan.supermarket.utils.FontUtil; -public class ProdCatalogView extends JPanel { +/** + * 商品目录视图类 + * 继承自JPanel,用于显示商品目录的界面 + */ +public class ProdCatalogView extends JPanel { - // 上面 + // 顶部工具栏面板 private JPanel toolBarPanel; + // 搜索面板 private JPanel searchPanel; private JLabel logLabel, locationLabel; private JTextField nameSearchTF; private JButton searchBtn; + // 操作面板 private JPanel opePanel; private JButton addBtn, updateBtn, deleteBtn; - private String catalog = "0"; - private JComboBox combo; - private String log[]=null; - private ArrayListalog=null; - private ProdCatalogTM prodCatalogTM; - private ProdCatalog pc; - private prodCatalogImpl pci; + // 商品类别相关变量 + private String catalog = "0"; // 当前选中的商品类别ID + private JComboBox combo; // 商品类别下拉框 + private String log[] = null; // 商品类别名称数组 + private ArrayList alog = null; // 商品类别名称列表 + private ProdCatalogTM prodCatalogTM; // 商品类别表格模型 + private ProdCatalog pc; // 商品类别对象 + private prodCatalogImpl pci; // 商品类别服务实现类 - // 中间 + // 中间表格相关变量 private JScrollPane tableScrollPane; private JTable prodCatalogTable; - // 下面 + // 底部面板 private JPanel bottomPanel; private JLabel countInfoLabel; - private JFrame jFrame; + private JFrame jFrame; // 父窗口 + // 构造函数,初始化商品目录视图 public ProdCatalogView(JFrame jFrame) { - this.setLayout(new BorderLayout()); - initView(); - this.jFrame = jFrame; + this.setLayout(new BorderLayout()); // 设置布局为BorderLayout + initView(); // 初始化视图 + this.jFrame = jFrame; // 保存父窗口 } - + //初始化视图 private void initView() { - + // 初始化顶部工具栏面板 toolBarPanel = new JPanel(new BorderLayout()); + // 初始化搜索面板 searchPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); locationLabel = new JLabel("商品目录"); - locationLabel.setFont(new FontUtil().userFont); - locationLabel.setForeground(new Color(18, 150, 219)); + locationLabel.setFont(new FontUtil().userFont); // 设置字体 + locationLabel.setForeground(new Color(18, 150, 219)); // 设置颜色 logLabel = new JLabel("分类"); nameSearchTF = new JTextField(10); searchBtn = new JButton("搜索", new ImageIcon("static\\icon\\search.png")); -// opePanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); -// addBtn = new JButton(new ImageIcon("static\\icon\\add.png")); -// updateBtn = new JButton(new ImageIcon("static\\icon\\update.png")); -// deleteBtn = new JButton(new ImageIcon("static\\icon\\delete.png")); - -// addBtn.addActionListener(this); -// updateBtn.addActionListener(this); -// deleteBtn.addActionListener(this); - -// opePanel.add(addBtn); -// opePanel.add(updateBtn); -// opePanel.add(deleteBtn); - - pci=new prodCatalogImpl(); - this.alog=pci.findNameProdCatalog(); - this.log=new String[alog.size()]; - for(int i=0;i(log); // 创建商品类别下拉框 + combo.addItemListener(new MyItemListener()); // 添加下拉框监听器 - - combo = new JComboBox(log); - combo.addItemListener(new MyItemListener()); - + // 将组件添加到搜索面板 searchPanel.add(locationLabel); searchPanel.add(logLabel); searchPanel.add(combo); - /* - * searchPanel.add(nameSearchTF); searchPanel.add(searchBtn); - */ + // 将搜索面板添加到工具栏面板的左侧 toolBarPanel.add(searchPanel, "West"); -// toolBarPanel.add(opePanel, "East"); - // 中间表格 + // 初始化中间表格 prodCatalogTM = new ProdCatalogTM(); - prodCatalogTM.all(); + prodCatalogTM.all(); // 加载所有商品类别数据 prodCatalogTable = new JTable(prodCatalogTM); - prodCatalogTable.setFont(FontUtil.tableFont); - prodCatalogTable.setRowHeight(50); + prodCatalogTable.setFont(FontUtil.tableFont); // 设置表格字体 + prodCatalogTable.setRowHeight(50); // 设置表格行高 tableScrollPane = new JScrollPane(prodCatalogTable); - // 下面 + // 初始化底部面板 bottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); countInfoLabel = new JLabel("总共" + prodCatalogTable.getRowCount() + "条"); bottomPanel.add(countInfoLabel); - this.add(toolBarPanel, "North"); - this.add(tableScrollPane, "Center");/* 将表格放到中间 */ - this.add(bottomPanel, "South"); + // 将各个面板添加到主面板 + this.add(toolBarPanel, "North"); // 顶部工具栏 + this.add(tableScrollPane, "Center"); // 中间表格 + this.add(bottomPanel, "South"); // 底部信息 - setVisible(true); + setVisible(true); // 设置可见 } -// @Override -// public void actionPerformed(ActionEvent e) { -// Object source = e.getSource(); -// if (addBtn == source) { -// UserDialog userDialog = new UserDialog(jFrame); -// userDialog.setVisible(true); -// } else if (updateBtn == source) { -// -// } else if (deleteBtn == source) { -// -// } -// } - + //商品类别下拉框监听器 public class MyItemListener implements ItemListener { @Override public void itemStateChanged(ItemEvent e) { JComboBox cb = (JComboBox) e.getSource(); - String catalog1 = (String) cb.getSelectedItem(); - pci =new prodCatalogImpl(); - for(int i=0;i