From 1f2cf8c3133f8c0785bd6d4d772b15c5bdeebb5e Mon Sep 17 00:00:00 2001 From: qiankunpingtai Date: Mon, 1 Apr 2019 17:07:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E5=B1=80=E4=BF=AE=E6=94=B9=E7=89=A9?= =?UTF-8?q?=E7=90=86=E5=88=A0=E9=99=A4=E4=B8=BA=E9=80=BB=E8=BE=91=E5=88=A0?= =?UTF-8?q?=E9=99=A4=EF=BC=8C=E5=90=8C=E6=97=B6=E4=BF=AE=E6=94=B9=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=AF=AD=E5=8F=A5=E8=BF=87=E6=BB=A4=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- erp_web/js/pages/financial/financial_base.js | 7 +- erp_web/js/pages/manage/supplier.js | 7 +- erp_web/pages/manage/account.html | 7 +- erp_web/pages/manage/app.html | 7 +- erp_web/pages/manage/depot.html | 7 +- erp_web/pages/manage/functions.html | 7 +- erp_web/pages/manage/inOutItem.html | 7 +- erp_web/pages/manage/role.html | 7 +- erp_web/pages/manage/systemConfig.html | 7 +- erp_web/pages/manage/unit.html | 7 +- erp_web/pages/materials/material.html | 7 +- erp_web/pages/materials/person.html | 7 +- sql/华夏ERP数据库设计汇总.xlsx | Bin 84713 -> 84644 bytes .../jsh/erp/constants/ExceptionConstants.java | 227 +++++++++++++++++- .../jsh/erp/controller/AccountController.java | 24 ++ .../erp/controller/AccountHeadController.java | 24 ++ .../erp/controller/AccountItemController.java | 24 ++ .../com/jsh/erp/controller/AppController.java | 24 ++ .../jsh/erp/controller/DepotController.java | 23 ++ .../erp/controller/DepotItemController.java | 23 ++ .../erp/controller/FunctionsController.java | 23 ++ .../erp/controller/InOutItemController.java | 23 ++ .../erp/controller/MaterialController.java | 23 ++ .../MaterialPropertyController.java | 49 ++++ .../jsh/erp/controller/PersonController.java | 23 ++ .../jsh/erp/controller/RoleController.java | 25 ++ .../erp/controller/SupplierController.java | 26 ++ .../controller/SystemConfigController.java | 49 ++++ .../jsh/erp/controller/UnitController.java | 48 ++++ .../controller/UserBusinessController.java | 27 +++ .../mappers/AccountHeadMapperEx.java | 3 + .../mappers/AccountItemMapperEx.java | 2 + .../datasource/mappers/AccountMapperEx.java | 3 + .../erp/datasource/mappers/AppMapperEx.java | 3 + .../datasource/mappers/DepotHeadMapperEx.java | 3 + .../datasource/mappers/DepotItemMapperEx.java | 9 + .../erp/datasource/mappers/DepotMapperEx.java | 3 + .../datasource/mappers/FunctionsMapperEx.java | 3 + .../datasource/mappers/InOutItemMapperEx.java | 3 + .../datasource/mappers/MaterialMapperEx.java | 3 + .../mappers/MaterialPropertyMapperEx.java | 3 + .../datasource/mappers/PersonMapperEx.java | 3 + .../erp/datasource/mappers/RoleMapperEx.java | 3 + .../datasource/mappers/SupplierMapperEx.java | 3 + .../mappers/SystemConfigMapperEx.java | 3 + .../erp/datasource/mappers/UnitMapperEx.java | 3 + .../mappers/UserBusinessMapperEx.java | 13 + .../erp/service/account/AccountService.java | 16 +- .../accountHead/AccountHeadService.java | 23 +- .../accountItem/AccountItemService.java | 25 +- .../com/jsh/erp/service/app/AppService.java | 20 ++ .../jsh/erp/service/depot/DepotService.java | 23 +- .../service/depotHead/DepotHeadService.java | 19 +- .../service/depotItem/DepotItemService.java | 26 +- .../service/functions/FunctionsService.java | 22 +- .../service/inOutItem/InOutItemService.java | 22 +- .../erp/service/material/MaterialService.java | 24 +- .../MaterialPropertyService.java | 21 ++ .../orgaUserRel/OrgaUserRelService.java | 3 + .../jsh/erp/service/person/PersonService.java | 24 +- .../com/jsh/erp/service/role/RoleService.java | 28 +++ .../serialNumber/SerialNumberService.java | 6 +- .../erp/service/supplier/SupplierService.java | 16 +- .../systemConfig/SystemConfigService.java | 22 +- .../com/jsh/erp/service/unit/UnitService.java | 24 +- .../com/jsh/erp/service/user/UserService.java | 10 +- .../userBusiness/UserBusinessService.java | 18 +- .../mapper_xml/AccountHeadMapperEx.xml | 29 ++- .../mapper_xml/AccountItemMapperEx.xml | 17 +- .../resources/mapper_xml/AccountMapperEx.xml | 58 +++-- src/main/resources/mapper_xml/AppMapperEx.xml | 12 + .../mapper_xml/DepotHeadMapperEx.xml | 109 ++++++--- .../mapper_xml/DepotItemMapperEx.xml | 226 +++++++++++------ .../resources/mapper_xml/DepotMapperEx.xml | 13 + .../mapper_xml/FunctionsMapperEx.xml | 12 + .../mapper_xml/InOutItemMapperEx.xml | 12 + .../resources/mapper_xml/MaterialMapperEx.xml | 44 +++- .../mapper_xml/MaterialPropertyMapperEx.xml | 12 + .../resources/mapper_xml/PersonMapperEx.xml | 12 + .../resources/mapper_xml/RoleMapperEx.xml | 12 + .../mapper_xml/SerialNumberMapperEx.xml | 9 +- .../resources/mapper_xml/SupplierMapperEx.xml | 13 + .../mapper_xml/SystemConfigMapperEx.xml | 12 + .../resources/mapper_xml/UnitMapperEx.xml | 12 + .../mapper_xml/UserBusinessMapperEx.xml | 15 ++ 85 files changed, 1632 insertions(+), 224 deletions(-) create mode 100644 src/main/java/com/jsh/erp/controller/MaterialPropertyController.java create mode 100644 src/main/java/com/jsh/erp/controller/SystemConfigController.java create mode 100644 src/main/java/com/jsh/erp/controller/UnitController.java create mode 100644 src/main/java/com/jsh/erp/datasource/mappers/UserBusinessMapperEx.java create mode 100644 src/main/resources/mapper_xml/UserBusinessMapperEx.xml diff --git a/erp_web/js/pages/financial/financial_base.js b/erp_web/js/pages/financial/financial_base.js index 874e4ccd..a9e37e5d 100644 --- a/erp_web/js/pages/financial/financial_base.js +++ b/erp_web/js/pages/financial/financial_base.js @@ -486,8 +486,11 @@ { $.ajax({ type:"post", - url: "/accountHead/" + accountHeadID + "/delete", + url: "/accountHead/batchDeleteAccountHeadByIds", dataType: "json", + data:{ + ids: accountHeadID + }, success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -576,7 +579,7 @@ //批量删除 $.ajax({ type:"post", - url: "/accountHead/batchDelete", + url: "/accountHead/batchDeleteAccountHeadByIds", dataType: "json", async : false, data: ({ diff --git a/erp_web/js/pages/manage/supplier.js b/erp_web/js/pages/manage/supplier.js index bb95183a..8c71d20a 100644 --- a/erp_web/js/pages/manage/supplier.js +++ b/erp_web/js/pages/manage/supplier.js @@ -170,8 +170,11 @@ var supplierTotalInfo = supplierInfo.split("AaBb"); $.ajax({ type:"post", - url: "/supplier/" + supplierTotalInfo[0] + "/delete", + url: "/supplier/batchDeleteSupplierByIds", dataType: "json", + data: ({ + ids : supplierTotalInfo[0] + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -210,7 +213,7 @@ } $.ajax({ type:"post", - url: "/supplier/batchDelete", + url: "/supplier/batchDeleteSupplierByIds", dataType: "json", async : false, data: ({ diff --git a/erp_web/pages/manage/account.html b/erp_web/pages/manage/account.html index f3a00aec..afbdd180 100644 --- a/erp_web/pages/manage/account.html +++ b/erp_web/pages/manage/account.html @@ -225,8 +225,11 @@ var accountTotalInfo = accountInfo.split("AaBb"); $.ajax({ type: "post", - url: "/account/" + accountTotalInfo[0] + "/delete", + url: "/account/batchDeleteAccountByIds", dataType: "json", + data: ({ + ids: accountTotalInfo[0] + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -264,7 +267,7 @@ } $.ajax({ type: "post", - url: "/account/batchDelete", + url: "/account/batchDeleteAccountByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/manage/app.html b/erp_web/pages/manage/app.html index 4d8f47af..ae793d78 100644 --- a/erp_web/pages/manage/app.html +++ b/erp_web/pages/manage/app.html @@ -270,8 +270,11 @@ if (r) { $.ajax({ type: "post", - url: "/app/" + appID + "/delete", + url: "/app/batchDeleteAppByIds", dataType: "json", + data: ({ + ids: appID + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -309,7 +312,7 @@ } $.ajax({ type: "post", - url: "/app/batchDelete", + url: "/app/batchDeleteAppByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/manage/depot.html b/erp_web/pages/manage/depot.html index baebe71b..2c294125 100644 --- a/erp_web/pages/manage/depot.html +++ b/erp_web/pages/manage/depot.html @@ -255,8 +255,11 @@ if (r) { $.ajax({ type: "post", - url: "/depot/" + depotID + "/delete", + url: "/depot/batchDeleteDepotByIds", dataType: "json", + data: ({ + ids: depotID + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -294,7 +297,7 @@ } $.ajax({ type: "post", - url: "/depot/batchDelete", + url: "/depot/batchDeleteDepotByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/manage/functions.html b/erp_web/pages/manage/functions.html index 9eabea9c..d0592cbe 100644 --- a/erp_web/pages/manage/functions.html +++ b/erp_web/pages/manage/functions.html @@ -268,8 +268,11 @@ if (r) { $.ajax({ type: "post", - url: "/functions/" + functionsID + "/delete", + url: "/functions/batchDeleteFunctionsByIds", dataType: "json", + data: ({ + ids: functionsID + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -307,7 +310,7 @@ } $.ajax({ type: "post", - url: "/functions/batchDelete", + url: "/functions/batchDeleteFunctionsByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/manage/inOutItem.html b/erp_web/pages/manage/inOutItem.html index 1ef0954a..f61b8880 100644 --- a/erp_web/pages/manage/inOutItem.html +++ b/erp_web/pages/manage/inOutItem.html @@ -225,8 +225,11 @@ var inOutItemTotalInfo = inOutItemInfo.split("AaBb"); $.ajax({ type: "post", - url: "/inOutItem/" + inOutItemTotalInfo[0] + "/delete", + url: "/inOutItem/batchDeleteInOutItemByIds", dataType: "json", + data: ({ + ids: inOutItemTotalInfo[0] + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -264,7 +267,7 @@ } $.ajax({ type: "post", - url: "/inOutItem/batchDelete", + url: "/inOutItem/batchDeleteInOutItemByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/manage/role.html b/erp_web/pages/manage/role.html index abad95c1..c1970f70 100644 --- a/erp_web/pages/manage/role.html +++ b/erp_web/pages/manage/role.html @@ -203,8 +203,11 @@ if (r) { $.ajax({ type: "post", - url: "/role/" + roleID + "/delete", + url: "/role/batchDeleteRoleByIds", dataType: "json", + data: ({ + ids: roleID, + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -242,7 +245,7 @@ } $.ajax({ type: "post", - url: "/role/batchDelete", + url: "/role/batchDeleteRoleByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/manage/systemConfig.html b/erp_web/pages/manage/systemConfig.html index d9da5789..9c9718fe 100644 --- a/erp_web/pages/manage/systemConfig.html +++ b/erp_web/pages/manage/systemConfig.html @@ -192,8 +192,11 @@ if (r) { $.ajax({ type: "post", - url: "/systemConfig/" + systemConfigId + "/delete", + url: "/systemConfig/batchDeleteSystemConfigByIds", dataType: "json", + data: ({ + ids: systemConfigId + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -235,7 +238,7 @@ } else { $.ajax({ type: "post", - url: "/systemConfig/batchDelete", + url: "/systemConfig/batchDeleteSystemConfigByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/manage/unit.html b/erp_web/pages/manage/unit.html index be36d4ad..7b352659 100644 --- a/erp_web/pages/manage/unit.html +++ b/erp_web/pages/manage/unit.html @@ -197,8 +197,11 @@ if (r) { $.ajax({ type: "post", - url: "/unit/" + unitID + "/delete", + url: "/unit/batchDeleteUnitByIds", dataType: "json", + data: ({ + ids: unitID + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -237,7 +240,7 @@ } $.ajax({ type: "post", - url: "/unit/batchDelete", + url: "/unit/batchDeleteUnitByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/materials/material.html b/erp_web/pages/materials/material.html index 5ea4ff23..bb52820a 100644 --- a/erp_web/pages/materials/material.html +++ b/erp_web/pages/materials/material.html @@ -771,8 +771,11 @@ if (r) { $.ajax({ type: "post", - url: "/material/" + materialID + "/delete", + url: "/material/batchDeleteMaterialByIds", dataType: "json", + data: ({ + ids: materialID + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -811,7 +814,7 @@ } $.ajax({ type: "post", - url: "/material/batchDelete", + url: "/material/batchDeleteMaterialByIds", dataType: "json", async: false, data: ({ diff --git a/erp_web/pages/materials/person.html b/erp_web/pages/materials/person.html index fd43819c..6803f865 100644 --- a/erp_web/pages/materials/person.html +++ b/erp_web/pages/materials/person.html @@ -249,8 +249,11 @@ if (r) { $.ajax({ type: "post", - url: "/person/" + personID + "/delete", + url: "/person/batchDeletePersonByIds", dataType: "json", + data: ({ + ids: personID + }), success: function (res) { if(res && res.code == 200) { $("#searchBtn").click(); @@ -289,7 +292,7 @@ } $.ajax({ type: "post", - url: "/person/batchDelete", + url: "/person/batchDeletePersonByIds", dataType: "json", async: false, data: ({ diff --git a/sql/华夏ERP数据库设计汇总.xlsx b/sql/华夏ERP数据库设计汇总.xlsx index 5913f39cc9815d4f1f18857bdfedc1772ce121da..06b216c57a74dc5507fa1b4926f0ddc3765096e5 100644 GIT binary patch delta 19358 zcmaI6WmF|Ww=9S@+R)g+-Q8*2-QC@3+#2WL?(XjH?(W(+H16&WkN)nxGjC?SnLnq_ zs;t-`bV>525LU%PF!QaEeGBIz`m(OT|ox{>|-RuZ}RD z(gRL{Sq|YZgI)Q=ASG?3=tpgT!#K$b;VjtVQRGXjgM^OCg@75;kR}f6?nH=a03tMu z`6>ZyD&J*w)`gn3xN2Rht!A-L+oDbku=@{-pKN}+ZB$_a%8tXp$I`qdO*bagIOzE^ zD(j~whadKx+ub&KyGfs#v!MTyMYMt*@N+|aOu8o9Rj(sV)89~zrL77wAskbXlh{mq z`8`(I@SghC!ClkGMhQ6}Bd5g+oFNuM4e$_HI)1)Ap25|#L!{!txuL)-g=r%<-I`cY&^t!aH(Hrl=R&8ug7kP1GPG5iGc_7~3jorUjx>S+vy6@b% z>)iJrkB%0YI)Q_6jye;&ix6uExTFvAjvb@zw`aO!Lt0Co`p=(!9&R-&$W~KquFWQY z9!SmPCTh{+zxc^@KVB4XS|s6nf%?XmlJ+o{Ha(~(YR~2m^{Wu)yXGf|!YC?q9Az+f zj3Bv@sR8v_H?m( zgvimpK!(flJ>;k|=o(Qf`diwHLetE8>2~bxQx)O&5yW6Slnysm7yW3^4 z3LOfP`4FWPx_2y-S43iaXfD0?S&IJ+Pyu&Etu~Iv{@16}bU!@3gRt&s1uQ(QuKd@1 zdii$=_!dD*dxFy}T z&7biGzS9<)*pVnn4M}S8JHgTM?1W|{eRP_@s$V5<-j zq)O>3uG0ZS2EJEdtfze1M_T)5m@|zVb)qV)4kXGKK4C z7W)<_Bt38iI%sx)`F9M{)d{owRm7eV^@Xk`C51$PzTg{$aIEt(5`C2B&!w!+h7Z}~0bX4B|j6(pPqR_>LENRBqzu<*@c-RaoE`Jqnn^tp$VBZBh?+1+Q1qjavdr zSC~7{B}!L`+y4{h9|Z6P8U2D_17~|{wB2G*I|^)ioME%v^mCM&SDtWBzVvWHPK)z4 zgHjU{A1R(MQlRPEq~ZBT z`s#iDB-{6s;NWEca9AjE)7!3?uFjc$W+eDp_K$Ot0ur!)Z9dq(i<%%QkZK4(BEq@S zP`Vz2`^&)UzVw8UWo3O;zvF+ezANe=Gqo-HCHl!_JQURma0o;SRu{~xhYXV5f;ZwH zAi>w{uWW=NZu5;Q)qm9^Z>qOk=x5%TP2DwmJ4O;UVw_*{pYJWQ|I|AnUoyxi`>HLK zCjKMEIQ@?l7T*2^4tIfPMTfDs$o=&DsE1Y(>Q|EZznJ4;M1~e0&S>|p$+7*(m;HZm zOK5kzin#%$_m!UsW4R)baBYq=>-9M$>ChS-VvisT+9LQ$uvw1k|DNIh!D!$>dcnn4 zQ8NS2+`e)!TCe|4(+WoL?7+NZOj$C9eOx?e7+Dpz#;8_lgQ9#~(C{V034Vj+b8cys zyMOG*x>#?29PW-+@iXt7kBRR zT%KPOGLU8S_dhO@WB;FA_M71$2V~{N{ePkN$AK~B7W|({hxOr!O}P3Ttff;VqLk{!XW!RB1ugB-%|~0-HJU>&Sdz`Yy=iB3DxSiadLrA*H>~!8}$qS zuW1Z6VbZ3H_#x){gp26?xYjS26mpNpUaW>%*3JB%$eNYew*Q{-U{ME{P=CDg6HZ2X z{7c3K31kZiBr(UGBI*qFUlQWe|8_d1{EsiyXW)S>T=A=Pf@~K5e?TckhPdXy!bHC~ z7D!k_OxO^woEXz#9(bvEIc7k74I^|s2c0-DkH0%GBUhfo@b|h@JuxC2Y>e@joE&}9 z;XwN_F;%SpF=J88WE4*#?tC^Qt*g3X%}T6JoZn>B|4Z@8*|O3K<9q1bKe6e!E2NY; zwh1`eUq%|-XRM?9ACH>Ur#}YbG3j>F-(k+3jeJ$*CTkge`O9|=asCAq%V*{~eci6sWek&gfWeWFT`Qo1r7o^n(V{SiM8>ynWzt0$AG5lPc&`45K?f9cGhUU60+c5n z$mIGh+o2423?2W@Bn_G!FUgD}3WcXutl3;m`3FBn8<=(SH0y9sR6Gvj6;t;VvDeQP zADs;BP@j`)vK1TO&J2#GC%c_Leh$9#9hh8l-rqP$UX(Q(K8=pAV8#Ky&vYE~Pc3hs zPk&sW7k}DtvN%{mY4X+fd)!M{{UOCx)8o;5pRZroe1Dm&)>Bw}T%9_@vOTS(kQp@U zbi03EDCTp0zbWJ};Fwzt&I+uZ_Ne|m6e~}bQ@wWy}{&DtxP0z0C`h2?wstC`^+80ztwkbQOFHC=Kr?K6OYhk-{ z5f(kHU3Pgt*EiF9x4yiTo)LZT_ZnI>AN(S#SS((I zZ~CqDbNEzEuR_<`V5%%ui>oBC>E-Nr!Hj;DE(6EnT&R|Gs{A*wS%>3`xfpFhIr*pk z{T_NZ@MF`~`>t<-8q?}r6kCUzS`)IIo|n-JtF_TzQ?jwKwdcj1)W34$k7gNM74LiV zLUmS^_s7}Eplvlr^T6DqhD^c(?CQRBy{L_)yw{78aO2BIvhC-?sk>u?*PXsr^U2Rn zk!Iirq0Zxy9uR1%6&kz9`%7aM@BLsQxqSNb;N+NIrrfxuQtO^W=(?h+>*?%%iLcB3 zfxdi`XI@P)s^Nb2aUz+1ll#+>leo?Cq|dS`ZQ*{X$-g9ZZFQ6H+4z1Z_|mgv;P3CA zlO<2$%!To3wM~zvmv!E%eQ`^C=W!acO*dhnuaRL@G6vB6JkKVv9KXBcWzmb^T0k^`{7;yS!%(p9flOuo^A+{49Jwlmy$)#CQJT!?80$e|6sd$adGzq zY#2MZ&$cwj)R>|x3!{qKOs74LR=)!B6m*j^if|1=`wDCX;Wkomx$6Z4MT7%3xT48+%tkPnjdFo%QsV5z@} zF*I-si4nHF5^N2|vH(+F8;EJu9}-yAd-Q%oyADIsB`PUF*<(!ke^aBKgMU1;WIyuO zLo*f&R}#|9mB1*i^?7=(J!vuUpz98+Hg18cB+E+w;j+qfCE}9*lvbvnFyDCvw+g}8 zP&>vVPMayiNR%e7>c28y>H#-^8{$!MBH2OFN=86b#qG8E>IEEr&+8PnkIykj`ccbc zFOZH4z^GI!1H)IZ(M?1%R!I75WSpJ*IP29VTvPP}pL*^#-Apd&Eq0FF;;Cywo}yJ; z1~%0bv41+%Np9{8<5=3 zZWLG>%eC1^J~>c9jrQ3$L*n}oJnb1P!RU;%jqVKAZ$I1WQsa2y>fUM0u-K(jot>HN zVSbGg8l9#nx~f&mR`%X%d%tB}`<8b0iE4z;cBvdN zx*(Bi*{$dC>5(S)0#i9KbG(GYRbvi1FuR5QEtp0`YU3El^yt6!+bJjJhPch)|Jcl+ z(<@=eN4w>ohl}GLUsr-vNv|zS`Q1e zv+B}$3@M#6oVoR@mXjV!!Ax!Eg;v`XM$?KZ{X2Ugb|~|~(triLCn6M`L`Ji+jjOgj zL-Z&$Vba637eO(rmN5>8#hSFfDAcsRGEC+T<{Ik@yYqDB&@yZ$n~#Lh&@TfU!v%VI zo}Wit*H3du-_$-(v=930F|}jV<^^SZF<%aEv-Lh+-nHB~lF%-Hy~X7MKR?dL5BdI3 zFg<|@%LOCuiA^A=jCZD;5!U8*`zZC_736+Gua#KL0a-BrT-)A)un+?gpfz?&U_ z)3z2XOQ+`~i0vm+hg6&~h*W=q*PG~gI>V~YtjQ@rfPmy6#9zl_0-2fUT&=AllXarj z*nSLe!rdXjZsyYie;IJ7uTeMfgG0QFXE%P0bL!ACajo`8@oca?=uUyzd5CjHP7)an zA{g5T1Jd|U%qd$_l4!NdtnxXI-6TLkl)~1_NUyW#O&;&SQL|orv(%n^(xRJY9M z&I@>W?MWP+8^8Ol#f(wt%(_=g};O_o#px{Jx)e z&Rk>tGkGF~>JI@4hgg3e%A|O%n3Q)fsk|k0TB+s+st&Y=0qXai@L7E; z3gH4biTA@#DuXdYsG1=7v4@yYPWy?N=6SvKhh4J8P#E*yow|rwItY$;p^U!EZRlz~ zBiHIFDd9~|pm`?F<-F2pQ^8y3$O@wQ|Y}UhcM{cW*B-lyYm8>qxM_12r_iy7OMQg zNu?rm@D?inB{|<7NCa(q(fA&n^`TTftF4z4fh_54AO+wu`@W1c6MP!5r(o<&6(^RS z&<)|&&T+>-^myqu7zlqNWN_c{p!OFtEK>&+yVR%PAxytwSrXE?MvbP}XjE3hweYzW z(E&8hwJ|l)8rhk_R;cGVl>ikET5rG8$r*$0&?p*P3FU~Uh(w!i$mTcOq(g;U3|5KG zG&)^Au$GMR9b%~?GKR1jVBA$kDCT}|g_Wsc;d(DL*(+;}z@KLae?!1}wXSWDKdK&2 z!ROAJ3rS<{=^Vip-oRufErW4vE@>p9l-^(C%uZ;Qk)&B|l^B$7QMyvvsb#DP{`o3q%`_WsIt#JHE=mvJWlz(C^>l{E zmTeSbD>AK{IW1v{F}z;fEDf~0GbmV+{S_3jEj&*mnZJZEgaC)2w_tw^%HzF6WEBO9iMw9LKE)Ko-UJuPLdEfr5 z!kfN`{x-dV3vWuR&&d0CwS_Ak*UQQA*7fpYs|NV?XV07=s2fMRDEJ-IGvn_HH*Xrk z%j@t?ZvSi%aLGn2J@|dwb$4~)dUShg`>dt$CkN(q6Pw_Dx#~-D^rfveL}sMwn6*b8 zV%}MkclUiP-_wZLYI|jLXf~ep-5X4_`*!p(eMP|4Vc>|UR~b)n_J>H+>%818Q1aXD8$EQox|~Dz)snQ_?j|}? z5sH}O+}nlT+v4Z@yIi#^Ftp*LGx|JF4|w5H=$SqKY2dxJi6Z-V0_n}Dc`21v(&xDrb$VHn?0un$*Rp?dp6UYYOHZ3Yss# zNKE*&ld08jTKaiSe`wHSCEoUn{-BAG7>UKs%@kEJlsc9L`rT?OQ|rZ1p3?jg(s;?h z5}RBbU-HU$3p+PFmivuKvbi9;u>vu_7UaE52SBee}XV5R%*G(yC$)Yv`W=xluONwQBVUVAW!uW=}E+E1QTv$YHO_UK$Cn z^2*fN^gD<@DjoQh9OJ*YfMn?(m-RjUPK?i79<$Nds2`KS{6;N@7ayA;o91Y7GvTz1 z4-OM*_8E*V)Yq?WcS_=^URV;tq#FZV<(YJ2U?PYWUs`Ru}R=tk_bbT(*R$U!ND> zi9z0nYdT2{O_>X+bGn$%H!oc!fUv7PcHEfX9|KWcnozd%L{gFihR&b$`eg%ud<(Ut zPO~o{V7%cJm87cg_uYfIIPc*zAP+V&0fog@tYhr?g?>fF0p`Fl}GtL*Z-X$iHA0!V8lK5j#P z^1HpW=aOW9-T?meC3B1E6ob+(Gg*^-DK<|OHcoav_kK^gwjP(OnpLyBQA97MfdJt= zd4ZlClH_!WbYJ6$^Mzjaj!-!vYx7(L4>jo_jRx0Js=9f0ji>U!9h{09dOBcd z(>*Qve)7j@`C8SQjfxb{640$$6joOg`b zV6JE^;ScGl&wc5jU?d%{LeA14R9Hj%Q$S_Zme|<*Tu`w8`}QcIu-M5+_@n@VT|NQA zs{If5V{gQPKBdm1ar*j zIGe6w4a2J}Khz@+3%ndfbYx`m7SSv-h?~C?IOrEDwV`+N7Zo`_=LtEwPu7zw8y%xB zSktBbxjMkox*8C9hs7gcp>gd~9rk2xlLzUE^2m14F@g6t?yV=1k$#YrgR2dsIXy9m zt@()&nFU1Ic+18uNfccF+6R9`n1R%9xuvmD3ga5u5o5=SdrzT5oI}*NoEO47i(>bp z61Sm1msmc*$Bn$W^dSqyJ0_PG1-50;q}?5wiS~2t_JewFDb0^s)%=vQ@efyG_L3l? z3!M(~*cm&+<7P}Dqh0Crmtv8k?1mf_Ia*yomIs1j8rC##^u?yWysyOfulXO#I;`n> zxK84sFSXU*`5IY>OM>jixfT>wxZxDhla*+RKObl|E3dZiSOSu%Cn;<@#tyz`Ow7B1 zBdbxgZ~Fud?mZbx^VpHAw1QG;1a|nCa^g23nnd1jMN%vzD2kI6LTpIhD1P#H>A;S3@d>83^~8qs+t)n}*DqbDb8%ugWGo4|-!#XnT*<{td| z2=F&|S`=VoVr9U$RH?YIi!40}YrV0sF$9)dFY%xz2SWqLPUYvARH0 z1Ud?WsSZLPvsvJ(*oaw4{iZQD`R=!Ul%iJ;(^}7(9=$!V?uWCilh(b36-AZYO5lf> zOs34yO!5l5az@8)-ra+?A*K9{^~P{!Gcu?*~Xue@HS|Vyv3OlyV>CiAv{bInXNvNlv>M|J7G<5 z>(@6@o9}}Wx-yjZ>IaHuqcV1Cp0$_n>whMf?(e5!EoZv`&y-D1yxOtR#L8zeYDyk< z3-QA}Oo917F260P6I;$&Y+b8gdbWjd$WwBLH zN%M8Ao zH-;06CM_AZX~l8W5^^p3UJb282wckbzVztfa)QqGER>vvT2peTo@22)QOi~HObcTG zQLG|3#&%z~l8jhP(Bxk_i=~3JHBR*ci?(L*OS2=%{s?WaRFLu=}+nooX*6L2u;ilJ-DXRWv z?ooIirYp0OOsY5-F-}zZzP4F?hG6wx0I|87CN8&`L@(F7x>OLM@>`Ohqg4`}!!Vpj zZ)MM^z@s1VS3o5k#77Oc>;Ontnxaxd{An28`xtmo#^5r#{i1nU3@iaAPPdlS9lo8A zo0ynETaCFxbEplKDY4g3rt8|ZCL=HI-b)y&6y-FI4ViGHpq{F3jJ6fnR2{gYBJSW& z>YAz+%O*Bp&Q;c-4BnK55`7f3RrbXr!&aTRgCq-I4`u!u8pZmR-eU5etD>vzUtM(5 z0-8x}H13;mKQhG%(Zvn~Rg>9F&UpT1U)Hap%>|1gW+k-To*W*zo`v>@_~1LC&1Tr% z80&r?W|uR6I)w|rN=M($Tm;0Xdf7l)`FMsrm)-Vroi5VlSoJ+u1k+(nA=%uIJozHK zsOqDM)T;?GzqJU2S^M0M2nID}VbNVUCw_fPr0QyCHP9~fjV*UzmuL0-{U|z#v8_f4 zohK+SnWOpW&mML|EgPcp1crTOebboxOYW+NID+K^P8R7Mv0Jp!mEiVIW5=Sj_d={?;_C5G z3~B3*gmA_8L7E-p7$;vH23HfIu)9XXvrZ0virF|0G}$Zyt@mWQ7u#)qLxWyb!iJIP zs)J&~i2Wj6#FBa7+=6q{LY|C?7bFIbmzIfN6_L{$)dA+UAZTYoe znhNspVrN#}*@v7F_i}AcPot|#vJ7iev35*hgkmpK*(oE9EC+eAGq*q(E{wsqPgZA+mAi>|i*gz^bFBQlUDE zpeg^2%$%^Iik~+p9~~|oS&sa)`X`zWt-8t`SY4eq0xk5c6POXXGJPq7!47Er5j+W$T7~kHQYSoi!Z-!K% zS|PlWjpi7i!6oJ>NU%Zn2&RRhk0OE~Zo0ao56 zVHTU>r#9b8lC9JG+4Em zO}NxNPtmR;8!ld?)sPOtY*FAY40CHMxz>PfV^IIv;HoON!fZP$v}{g?63?}-X^Tx- zi%<4HMKxV+{fO7vB)<}jo7#({rKV~(xD<@qjHU+rMK{bDrFC??KK+Lyx?!YsZ<9<`>qPxf8(rlZ zNlp9CvT)V-h;_y3T-$va+*e-_f&ZGcs-?@58)Wv{BG%h9nr&_tsh3Vjtx@3UsQvTR z%`*<>EUGHB>hD}Sv=?I^(^yxw|Rc32`sWt=FVg7vR(P@lA0)?;~dyd zMx08nGb}TBZP)eND&nN0%0fcpkGkt-h`9+2xp+=$|8XoOwxR-pfg;ta3V7Bc?MzCq z4bvwDlh+8*v7z0XK+q4g=ACE8@YMb{E>YfG37;>>d)e*MTFf1i2VN@iO>QCX>NCJt)4lr8G-{uX@K z3zOg5TVb~!k>_QS#0HblI9quLHNRpf7h=Amt|mD0KW|)#8gx+PD$*|fzQ6+JOn8M+ z9imQE;DytYAe~vC{G)nnhc9AX+rc=o644gsjq@k^dhY4kuhzo2gRuJ1ObG=IZvRS^ ziDnRozcXR&=xCg#T(&d}k2L0!fpHv*H-ZbbS=4H*y)<}mI<$6l&dM#=nsB%f(s$rh zZ5fXke-{PL=$QC90np6|-#Djl{Pc7~oMKALfk=M_DOZqCRC{HV(ROn1Yj;{B9L&Z< zV`gTKm@y57Jcf3*JCVi68+ z0OCj&Oqd+)r-bYVX}K5XTW!E>8f@YdwunepLzM!im;TxgFG`(g6T#@P2paR`z6`UxAt!H&%y%arvkj6MOnV~TpKm}jUW%=8c?VjWpd+C`rL)E zm}MYDG=*UlWy;bLUx!plh&fu8K7i+oiHpZvwwa$h;bxyNbH~$N_fJrpT%TjrnqxTn z90LQFas6G7k@M(!iTz<7aH}jaQ~^AJ*7}gyWnfwyETQ7{5dn8=$K!gQpBu??-EWA| zpXcc#Kf%OAkz)#ehM7okqNmG2Tmgh=tP=Ou_YTgH z2r2cSFW0-tU1id7h-jRLCQPNl;yMxAd9anP1_*V~IQCyFrPmLsXdv+FJgKZ?bc0o= zeze4MZzDUU~GULPMH|Lxx87`#~{}CtZ$5>`#cMJ-gS5XtFTD zc|`cPK%oF0l!#=!_t}yU;xeoAYBeLz?Psv|WI}GVHvbEkV*(XX%sYosTv)?rPNzrp zhRx+A+2`>k@2m7jJ+MKK|Ah!!$&F|v*%!eACDB+ylH8(l5+kOFVW@5q0EQZffa{pr z@@o;{z|W6HYp7O55}E-$^7{r9lGY)^Yxi9e)8V?dpyp3zWjPZ?e%O@Q&OSPbVfN5~mgv8W}rbIfpI`vt|82#E5zUm zq8_`){=$6n*Rk9|`Yf+c+(Dj8iRcI-BkW?$P=-qh|3JD2U(KTqz1$om&H|-F5!@RQ z->jXRNmceGkvWy~1((9q0hiW%@j~)yKD@if;9V~Fy1@DC06-~g_6iC^WA(E|aw2-o0yYUfbJD}2_>j~36JUq6TY}|(T=BTRw$bOOxAL!Jc z`@I0H8z?n}waT9sLt`omPT4EG8CWJS?k-#5q>OeHdoLT~6J_xeQXdy7I`48;TYMUh zPO=d1*wLEg6sAb5D3~pehuC2ZMX>zOMJ&hN-TW9!fzUjN`(x|(p>z~#GO_jZ*DY{eXRWp_1B7~rp60=Ar}eNfXG@D%M1jo6Z(WdZr&~3XK73_ zChr?l$`X^MkmwA{%r!Mu{1Ue{Y0uXIPOzm|qgY*(lk%`XzWfYVv!%uXZrqj0Nc}+{ zK$$V2{?JsjSn0bPdC~NwaNQ%ArDH;wgP;f5P?0n(g2L$TSH9v+PuGu4J@?PbB|NXk z(`bE}*9X4L_s6BJpCH45w7yGl zf(QK(urlvh==05@-S_Jtb-YxcNZyl`y(ctiQ=lAXy7 z_qyJG{!oRNeybIfN8Hl|u8)yBe_Vb^*J65!x@*L_XW>etqgyOPXBA78xP^-q5R!s5 z8;3AGYdBRf&De-QiZ?a3K#Nc#30#0hN#>LEu^_ay4W>eh8Xv$kbI#O3*Q6j2#CQ@vJ9UUmxuy5(%oULe!sXA zuQvG0*=|liDi*#^@J^lt(-dsvUZAE#Lq+{bRc78n5)N`UhnMP_Qi?#0#i1abc*z6c zmM~RP{>_8M(@R7!Rq!(r8b~GH!FDV@fjS#kpKVwc)+M$}m_nIH+F6)V#&EN03~N{v zl61G2am#}RCQ+L3lLu>K1VY*e8B+%DyF&qdqpf)gIHPbufs10$Dm}|`E=JLstn2A$ zeza+UXQQS0)h>}93H@=nD!8W*Lh9x zy$aMlnzxC-WI!|iI1c&3X0zjOo7-;v*Z0Bu!?7BEM)&pDb2^X@Nq?X3(?2O>GJDUb z&>DYtHr;EwFPweBj)j{@JVus<;f9=?*{N;BC>QBSP#>}kC74I5_%?=D$H|f%oA7&! zAG*fnu?LH5T%g|)>~A^XM|Uy(#~(1`2SKK9OsWRP=X_YYqfdAG*sED68kV*)Ta%$w zsOAOx_3y{(8O*>jG&d}%Sc~{fFi}w9UCNUZ#-f6FoU})|&8NMKV!qdji{h%Yvm&## z>8|(pc|A{yN9Ob5yM}M4JilJXv*aFOpaHlOeh3throa4WBa4X!e$65gN;nT-ZviAq z$_<3wSsXz%hdfvoiIRjybJ1Th@_aD{N8DXzjTo`iJw|~$(%=k+J&(Zm%VPRYkB9SW z9(OG@SuB5~y@%9sBIe$80sGbW;|xqPi5wNimu`8sQ=Fd!T!NpMU9V4E^jTeRTX)-t zTXem<_}=H&E+4md$)BL)S^JTG$@pH(?TmRQMZ{JL-itT&6pA4rYSTW%zQ%#rz7KPD zr+S_~y+*)k5I6Va0VB{7)ECvEVu2Ex&cUSYP9p6TQ=j%KJ{?Z^`W)RYr$R9y^=A&S zZDQSIgysrJnM2fB;Ui>mAq{lVkxDHKacYlmO|{17xpE*TPBSMIobFv|@mO~gQUcS8 z14`mr?wWa70w{>zO%&MXCNbeGMngcoW>5xYsAqu0Iy7FDXJ_;L$!)v^&3s;1dudA; zrsCG5-8u!_VfoFik7I z>%s$b_aoGfW=J3!YT-6gXW;se%wXfyxbs={uNz55klk4XL8r)C`aer=c5m&{Q#kF! z=Tfw$Ui`Y}lDl^7eew7d)XN0$taAJQh*+9+Z@DVw(bDnUQ5HylSQ$hG9rK<&%e@3PvEr0v9GS7Ypvl_pNSR&|s0r!B18-tL5Fc(D6}cr=Nin!KZ^)BuKKl z7ojhM%rW3H!MDZ*G{DJw27BIc2hS>7|-4kH8bR9Q~ZAAdG%qX&eGbL+?Y!Y98A4zA)=4{)kAJG)kySe&4 zlZK-iJ~Ek#oAE*8usEw`>G>e9B&Jt$y*-AF4mT2Ig;H)S_H-6ngm8u`HC-c*8ion} zBQX`pjM5_?zBLUpJ_g*42IeGcF;IrmiDcLek@;ALIeReVE-Q7Kn4eQbV-E@l2@(Ft zf1do;h!M}em2>0mRwJU={{hA8r6!Jsh!gqPUlJ1+R`@|s4Qhk_PUB6~CvRk)+a^Ch zoi~)E@Xvnd7HS;t(2tp;h`o@DzmPPX;N@_vI*<&*Y4i9Li5Z~bL(mnlmediJmSDNY@i+8usYD+(H3O*756ZaPHsNds9TiUf6N3$A-e9E3b zEn3Qso~J)upCdJdr3Ai5+D4fl+O*m}czn0cb9150@5GVw*vWjWagdy!6T z=u!%~KPs#$X~XM< zeY{s3i4f;aKJM-x)Oz|DV(+Qg^cmA;UV=P(`hIqO;{gM7T(fc`)yzah$LBz&E6nQn zOl;X1)uw_>*3;0%qZyKdgii{mP%nLLbh5|5U14V0(D0(DLs0_5{~o3F8~)s}wmp8K z(a*&erxh7qu(mfBQ>rt;&Rqu$pDcj#{h?Ia1S#hPSVX(DK1laj1f|r4n%2)ChvsP4M9iIihrj&e*=b z$6W=fu0+#(qbGpoAgHJ+CUAXb;zyk;_Ez&MfM%5}M%PlVR$SZMi z$uKjYa^(b+o00aX5Oh^aQYFE%GmR>gcC6U4&8)jBq6Q9qUDkpSV9#GgK~+Wwu9_3gMBDtpLkNBBr{f@@?T4hbh{f9%Se%E>vO$H#Uu zVy>Y>0q})=Tt@nUu`O86FMV3k_;0o!s?sB1zQCHXM3`PM-yO7x<2-I--yV!)cfd*b z)m?9%7tf!%V47ueQ8A0Y9WO&q>G4GH-X+c!w-H3q#=`*tZ-RIPZ@k<7c>M5_!H3!D zJoi|yyZRjb94e+0^$El)5|QCVUko{AnmzRGuwEi>Kk_hQz#WP{D-hmg7#04oD?U0$;K||t;jF&)t94sW+9&eX1Jz(j^j2vjPFzEfFYD4lc7T6Am07?+4$`e2lnmlMD zBFQEM^<5){bSuQYTx`n@y01vA_o6g0AqTx7gGdU!(ds!fZL(rCvd|*jO2X7p<*)ucqt%LMZ-rU3z5zTdi8FcX$^TVq0V+nq49uhGKh8K0 zhEacxDu1(E)|soN&d5~M!C^QW8KMVgV?$+2{CcPl zezkKB0CfN(66vLp$I25%%|U-&XiX`#QK$&qpc-VMzRUnopw5{+fIPy!(!`#>7iAF1 zqeRYbu)zueys#5Zc)+IhB1c9r&b1x;xj5@Y#vg8uhG3um2cL0i&P73yyPxMY=|W8gJxn?4^50AIctBU zi0F~gX|^_4j`mPgxfQw-!c$4{RZp8p!hc2%7YI{0=cv8*Ri$POXY5O%0v;Fwj3C6> zZ*|rWOrfCdMTTE6D%lJH#AkV_Jf;SHx;BkS_2Ri(WnMV-`d^w)Q&WcF(ABL6zHG~6 z5q*_Hr1|x~2)dNaYnV8!tUX$Tr8cqE*2KW``SY01U1Or9E!EL=>7jl4Rb-D5DayBZ2>p(LRvKu0TWKb7l zKVTTb)9@{1WvLuS(gRp`k9|MM7>@E#(Y~BAh%|_9O6^f2o|iMwU=`VXL2n4K2(aco zrUsY<>>7!~HF55lKBai!r*Hi_R|ANgX}GL@$q!rVr3QxAVB~+H))`5178-p;U_BPi z6(@E=YGSG0$MQmWG8SlpC@5;Xtl()Bfg12gq9RE~W{9u9#EC;*Xj>Q#rFLh35D}?Z z{z(yqK`KR{!Gabp&@{t>6E0}0&DrLcfknww4A(xjP<&TRO8ExCN+}%{M!hm=sras$ zloABa3M}>ZkdWT>N>lDeCM^Qx5iaAx!I~8+;PgFm^i5NKP5gGwQuv$t`?!VVxe8Y5 ze8T_g;>^RLdfPZY&!`dEcSfk}%91sj#X2Y{DV3KbOUq!2?2IjIgG@R~B5NeOL0Pht zBw1@TMi^~&MSjvR-eY>Nx9jTp9^D!-xU*-jUD?=0pRoZF|yug8J@zBR-4lEV&u0 zVUN#W5!*F*A}r}4pBb40tJGPO?Z=DAa?9snMD&53-}eevf(IPm+Ges!m=btHtq+;F z{p4SiB|3S_nL*OpOUD$MM!A-piB9+*_Q&4P#n%ox!olywqHg|p95);>x%XwSp*+ud zx$6$A3VaNdPB^i>-TAPg-&oMhzv5>O{G>yN$t#aKajWltIE0hmz{NB~giu%9k>`>} zOxw?`8dov0?D(f&=rhTMG6Tm)5i)7~JHfG1k}rSrsriO?zxu~l8E<}taCSaw>go!l z)lPWHXO}x+GOl~l%ieoq#$>&`}7*?+Dx{BY*Df zyem&%=-U>IRK7nl`z9`CcL}xc{FwaoD^G%60$sLo9=spL9m@cyI3(>Wy%)HjkQi2|#?(m6uHyz6u zr13yjQU^hC?Md|dy35*Bm$*pKw1o}-C%WuYoyFr(*#@!OA~tC73g9D3OG6N5ezd+} z(rJoT9#FnzU9NFpd-+(s5Nd?(!yKNfZCY6wGch-irljD4%Y}(v%&eYd?Bj-@#()6Q z>0w;>G^t)cOWKyt!*p6f@Lc*h>N zsYU@R)dCV^M<2AgNaxs%RldwtyKatC3&FxlM`yW*EbQY;tPcj^l^KDZUrT13s-G0M zJ92p4OfnIubT6)ZA=oE(w5UMjbY`kXb+v!XR!ll`FaQ0X^Y_`I-Tmw^wu5;0gs%J$OBE3&)ybO2vaKDj84vT@$W z+|N`ZJ7_as{STITqI~nL#!0vT)60V*P+yP}F12*jwtw#N?2B`~n;~w4L?uVgl_g4D zPgJaI)7{-G7kxQ$UgS=O+9XAGIL|PoFW%ACtTzMg#6mGR4DE+pT>TOxXbtqA-{R}4 z9&~hk5z?9+aU{v~_tWIGHPs)-Z0AYx_Dq=z6{O21TJuoUjfEGy34{RF^MKj<$WHRz z$or8~>h|e#wNH9x#(Co>6)pU4MM@4R#JZ{VUV2!1^-|5=L+R>ApD~PxO|AYNL0&Eu zeq5yy;WQq8l0bjk^bVC^_cNb8x+;_x6OTsuvUIXc= zYh_cf26ug@1`_6Y<2aVRb7cyu&iDJ1i_;rbpQ27T)!!69AzgQ%S<};K{A(#!K(l1u zhsvXxSqGKGb>YRG^MUBp11$-ib_<0yw}&{3iT)?d{Wq$GG=Bky|d0>k_upzRrdHI7Af>U*}Jis^ioH z8l2!Eq>lmkEe~`70usalG3W*cNFiV8LXR*Y?f3RakQo-(16}Ag7T|#!#J~bga2eW; z19}`81^`+!0BGn84yb}_P$CXsk;{4zKORUz;y54xE#ZI^P=WaH;54X#F5rPJd}_c0 zCG_7-I&hy30wCnzqYCsB4-A1dq-PBD;80%1KoR}_PaY2f!M~}6$8WhURAvkg06A#J z7#JZBNm2X5#2~B*P)F)tVsnfM&_GW3u(^AaS-xx*GKG0GXp^aO!CN6`Q=p2>4}-7K zPyx)K6zVet7D)YAwp`r|mY<`r`RXRWpt8AflVc!iC4`2ynF9goKN}q(5E8#L{a>n2 zcTu(S#2{;PI63KiY)&-?8ej|b)Eo}9P{=mPSila=N~xDi(a=Q;IH!>cw!L)IeyC=X zsVOyEq1DYfy?XYXApxHAY-DpJ%wP*huHE<@8Wp zPQakFEk`TutoPQP9E+p6qE9?^W_^(7{2A%-g>bl*rKCpqdM$h{yXzXCmuY_-8)rqI z7=W1^1Xa z){GLWhTa4x5z`N_2+#?^&#UqwJ&p@_kiIL8#3JSnfsl=x-(>!J)wmGAIGzhx;krrh z)~e}P!gx-icbUD|szrGb?O_1p@pr)aNz9L{waroM&TYxPAG}CG2%61vzbxy3cw+wO zVBhTJx@E1+DR;y4RWBCW30<}Fr;Zp(j&I^Q+IjNI;VWroe%$T4t#G@VTkkvErrhg5aL-}{T;)_ zll@H#+uBT?iAdpGQBet*^Wyy8#>U@jt^V1~?QdDqr0~7hNzrY^)4=fV`{VRcg5n!f z3Dsz5o&7`Ob8EW-;p6Pmo;9ogrLzoKHUnPX{2)k;SLyj98e~&H#lam@$o5B0|;dC|+e96nW_gT9o2x&-ZJ*IS1t_*!Vm9ynTFo z<@{&Wm+$#{!w;6XPHuiQ^u4QO!}nqKf_)S+_WegEbvC8^YI@}GN%zyNHF;quH?J4nD`;inZ@1bpPl)wz-JHaujl=&0>zRXhr5 ziL3lf=3ZcVi$dlLOY;pp0-T{TMpe)?7-2u%5x+e@znc~v*NrW|J_lIX|e zJlVCZrpSLB?AE8AKU`899(~^c0QM_29rx${H?LaB4{Tkua^xw0k^`imSyM1TK=(}e4g(VD6WCp&X_xaxK}M7l|_qB7lGt?&KmXV;U+nZP^K zenl?jjyVJ1gQWV!(EkfuPQ0Ie|C$^fG=&WSSi6#68qQFaYm*mxlAn3%_lo^1k_RrpBRjx~oJdasFo2mP z*IN*k6{t069g;d$^{LSlSh$%E^F~lGAF0^iuLmNQ(an+i-x5iFp7>8DI=tk-xecMM zMX{SLA-1B)_h0Iuowz=}6x4>5Cj7|@2!-ZP`Apl-Zc1n-e`9fUrAd(%Ttjx3wISJc z+5aLXVmm##G4cWaZX*$#b_o~>{;BZEi2|JAjNgCrIN6qs)6eU;SD~&;LoL%=Af6ql z73wISyk@?`G*4t8v-wN3TkiPFC-fq+r;FBaI~DR?DdhnR}lm$iamTyE1fPmhkWP zQ1eKCnvj8$yl$wjQ&mnV?xJ~p<`WIRbgbq2FVU_92z{3kF~+Ebz(VT0)Iwu&C;0#L z2pk40n;m#KmL18`Yb0X`1vHeF40t8?9tpPOu!t(gl$*!ukt=mbVnyzse(3u1kqk6ypL#D6@ z{U=7`Zx}PDO`#?-;9H8SKmO4o#v}pWzOBGo%ji^;*vF`fQ2gJL{{$1+m`Pw3Vc={$ zS9=pTS%?$a7^Q$TaJOnhxNym2mV@o=eAm@^U^13cp0IG5uKGA7e&$8-$!*E9|0WmQ z(&^&A5Tb1UCj@)XAh}9ty68W<|J7k?LzaU%BQZx*vhai{81|m#sf9l}R9u~D;0`fU z2ZvhzkENt>$8~I<4zG&wymYF~W9oTYlt{-)OyBY8XK?&~{1}7C^j#UWZOs3Bq-Q`_fHE(_1ph-O z=$hF896UEsnUxxxC()Y~@MXib4CweJ@qtzT%LZxN_c+rz9w>`fe&l0tL zf11gv{$_I~Hrcay(7y0-Q!qD5RbB$@tns;06McO4nyeCh3KrO~^LH4`dt)cuK6854 zxSzvG=x(q)=IwkNSJK)5zCU-;=G&BT&&*32l(mc>AAA6v6*7GaD-heWQPf_}yo@?u zmsYSl_5I)edd>toj8i9&OkEj|(m# zACvuLga)8zK{R6yW<|gpc5a$r^y;z*L(%fGzOjFMLifC*EyEnNR_^=Cv6hmS5YY2( zyKx~)&(!AR52dUx^qFh14p}2dX~!E)zOMhrXe02&qn&42(5JdW?=EpYe?{mcuJYxi zN(fZZCv8Vm|HnG^`_1v_+yT(-?l!epgLQGf;u)Cp3!tfGcN7u*Bf7b&HFfg#MV4;fJ!p11y z-AZu5z-Y7n-40Swq`{#<8JznV5cwCN0J&X6*e_x|GBc21U|ESyI@G`+0*rI1je9A? z(ZHHDQ3&!b;tdYHe207r6%w2B7s6rNAKys0aK>!D46~?WC@d8w4FF6=HL3_tG%zJ9 z*98}ny(smS=gq0F#dhP1jVTI~m9vfgO&N%TywWY1e>J!P3eAZiEAoXq!OxUV#rZq=t>z zfKzRkG8r-sSSrkvxK8dFO`L{<>&Qph7``dn>t-335&=jfcdn7DVrZ*?vm&Ev-l^Zw z8pR^EM}Hzwr^Rb*$8r_V@QEEoR>>+#{f_oBg2LLa-3<=BDlUPM`w9IDKl3Gockju` z%e}Ns>kRJ*0F!}tWrfNTb3U<&{vqoU4^L=6+ofJ*WvCo;1j31cq?k11G$!hCC6b%* zHB`{ANb$#)Dq>3dAOK5(_EyFMpTFVNhqeNiy10ngvqRJ&g$+sCb3g`yys}UV$Be^yM_aG4wS=6gk$vo}#t2ya{TJzG^sHpzhN1L8R^pZl|EatGFV^ z;(@OF<_MqyI({NPVPhsU1o}+UTuKVL;&LVnrDAsT3SLwKr&|&3fy1(5EFt^8rfvfF zwOj9wZ05Sl$g!+jL_MzAzzl+=YKBV(rGlBg&BD_OUnV}G79PUA_(IZL^1iz{+dxzi zZd3wR@MVpajn!+_?^zrIQxuaIHn^sFF}%U@=IEn~AtU zHdaP}gMD4@6LAHF`*wUI!~CynIYnf*684c^J7GdR^jYG?o5O#so7@&4+rZzSUp=r3*owxp4?LD|wQLR&zARL`k~<`; zJ}&39Rob{@xRsRMif$PBXz2cx7H_iar2N7|7>Ph6?fKhTK_U(-l_vPc>mdKgye{>% ze0$Gf8M2&zayJa7hIIgbf8eQ%)J{e!=I^-lUU)%zQam_IyT+JCR#0GjcsqRXG_>9jgS2<^HL>-&(|F37m44|lX9v1bqW!bL~45VLNai1aW5 z`gR~}c9PYnr*&8CWcM-6P_~5%xOX9;ILQ(bSNA6WeBt84t7bi$-YSgLJXKqI75j*r zx`|Q%y+Tb!As+mps8JmwshHexX~#r5LB<7j5oKk*7|a$cxU~tn&`ou_wui3>>V~bH zfpv8@OMTh|(>l7mXLNRs`P{X^YARph9_@yybaLDczr8Z8aa?lLo#6vIQ;86I?;r4c z8zk212{!48!kF8?5kidxd@EIgnLnuLyvq5txRkdD3r+5!4pnB#gb~-RQj=4j5SUag z3-Tul0#5+k>68kFucpZL0FLE*q-wwd>>7uHzP!gaF54GlkLSZy9w-yi+sm^9 zG14@G5f7Fr`PA6-jy#g^q*;K+M1@;E&&)G+RP1U!&c!xpzo+eB%tE05TyU^{hn;^2YBPlJE!^exPpj42<(;y|-GSruXAXnAJ;;G8BsxirPfSMUe(Z zybWa{ex3cJ!&(9B$r-N#QZZ*(Zt_V~{w7J$wyx9$T6!H3lQ!KX*4 z=C9%29O6Wr{+0Y zou@j(((OD_Hop<2x^RP&fb15=zQ8)lV-M#sf`Mry3a?`UeVxb$T|R__J96Nk9fgCP{(5oBklHmK1OQLpX`TR5nf)y z(1v}UTA@f|A5uF+%dC7_>{8}9+G7nTq<0|cU3Jt9E-K$W9!~ely^uqqtzHrfx&d`d z_CoWvoX-WowX1bwcVE!c0aqiFM@DpkjZ@tMevH)H_FPR19aPSMhAGl7s!Xv-KmQ+ZaN8qI;>!)VHhMJg#6Psz$CDB&xUd^?1Ocann}4 z?(~3&6SJ*hGe583qF@>!hv(p6!I34KIuXZAr=KU#34~jh8J)B;4?q@QvUye6K?lBu zE7f`8TKIaB)D|zCLN83~PH4;d%MF~A=bv^(;EK3zldVSXU(hBUnh!n z*Ovf?N_pHJ*(>O@;a|ZQ9cl~?^&ITIDr5;B3ht5>#Jxj$rs*FJ1U_%JJ5j28`6QBk zeY_PBLdm7rVx&R-Qg9{i*AyQU|Ng=7xTy_Pwj}d`tupT$KGVw_KRZ(_pF6JW8*J#! z!T-4}h;w##aZlpG3lGw?k54b0B4&G?gg!VsE8_la3Q5;i7bnYKeFK#{)cAks#&VE~ zv$FgelwWuA(Q)m!4(Sym{m(T-9_1EXkM`{Dj1x)j-W_?fEcV?O}R zDeY=>l-7aH_v=iA{uljH7k<4XO{C?{dCCEei8Bq#2ypl5w-_gwIzBc_)fN`tA6K?> znN3L^3iT^l`4AEl_qZ1iwOMp%{OPinZ{&m0BUh-U)}lhplBX&J7RKt+M$P@kSh5+8 z8tuCVcTQ5+Kzlz%91g5P&owbxh~$9-VcE0v$s-a#w3Fte6^q+kt{u;7q4FS*y3&(9 zheZ0wFO7)I8%b*J*4q%)32!C$#=MuPKk6Vx|G&<3_6pTb7%O{L@(C4Isev=>=D?7r zd>)MXt(XI4i%d^@4vdmM`NaFDck?Q)V+t3&za{IU?MMy5XiU2N78-@)O-I11;XJOo z1VtC&-!-bkC`L#ALyZkDJmN^4Qs4D7mw$HWx^@BdUO{l&qu>hd(cherxVv42X(@M& zSLmEL;bzJ7`32y-CkyL;br!<~(!i;o1Kd0?nn%*z0QqlY+dv7rD$Wc*@~WJAK~}R$ zWIf!vx;$-%T+r81t_+%Tw?1I#Hec^H+uIf>pZkn>rciQ|RkRQ;<-TvJ0nt`uBC3n(T&f#>g*u+G7jL$8ntRjAo8STIA+ zk+8i&17T$Anqvup2XD6HW+S>#GZ9gP36tgP*!&7trAOnu*@^PWabU#`^J&moC3c;` zVDha;!aR}zt->>a`W;v?SZEiannXbYs66p%iH8}Uajhthm^nLRSWqb&SdM6PyH=XtcGp*3GZ`JrSm$~iORg*o5p>2a~a2;_~vr4Zb`j`(IK!Ue<*D=!qJ{Dm&ZbW zfR}P16IhnomX{T`<5mBTUF#^qu_Zbn_1>9xwT4B0v=8;}%I!2_634~Fo5|RhS-FC4 zV~J6Bk}a*lZeTwxYCISmlz!4|kbyh55AVW;2W+?0Y**m+!p_O7_;In0r*ywLFDhn; z17=PAayqhS0t5o#G`v`w{H0#Kcm**y0Q}i8$eW?zRCd zCOQtm^=0SI&6H#tp?h!t}0B7o{s(GQGRPZj(MwL35w!?F4OzR(j{yv7fW$4 zIq6dLV(T&9D&# zduA0eRRg!_z2gzBj+L z)|h_Jl(6Tr;lPWoGfTI?IGj}kh{)f|#_npzifU3@VAHU&knBbb(!V_cjEBRmjgK76 zelCoEJGyds09#XVBtPCCot=H%rv{Pv1#p#KT4#4To47eGB zZGoVsdto2CX4{6K6II$i<3s`&%j5f!7-Yvgs+D02-?Pm--qp}Rd>ujn4-Gh%d{2Bz zZIlVOlw!#RMX9d%)AqfP!EwrnkCq>H89cYca-K8K4JFOR45l+!tGsIQMOdk>eQ&os z=F0YgYYRc;xGl}rfvYT!6p6Th64m;gC{PRAk#f@3bWF3W&I6BW4{jhltV3&z^`~NcPi0QlJPG%b zEGBpF)M|f}a@7?yrb?Pg!AQ1J_*Sl2+MFTipLmeR>Dn)VZC6BpUad+sD&vje2HaC? zQ~a@_(%jR>bGNMP!oJh@1%A0!oX{2}2;>}mV6G1$+0xg*IwG#dLZeh4h;vMwSJzB| zG9su6K9gS#niG2z@3ERDj%Y=KY3g-xxvDl+3cK9OVjRv^+8KbB{R%*aWd$FD#ZE!R zsY8#e^+dQxy~9H1_X_(#Q<4Nu3moGi32wzjcB%q7urRC=^U9H$LR^gsE`~1UXH5(^ zBvAjQNS;wIBSw(jc0?ut5j*glg^iM%%kl(|X$;GfD^|)fE(L7`=~Eb;`Uo{n!xb>| zxI0vwq+$*bX*=|+5Fd^t;sdAmyqu-N{V&DjG{#--O zIH79H(>8l%utXT(Akt_Droip>|Irsp)<+vjSt^>0h%M{%OY>pXE;J9_m+&{B6-<-W zv}$|IpE@nesjKxC)f>@|S!7I!Ckjq;HdmIi*E**vhG!}7;;(ZBC$JbD(a;{!oojM5 z(>x$OCmUR`9uR#bC%N<)$;1WSV_o>MsK2^791OAkYreB0Hm*-(3j z{e`EhS+J_jft$hv=$27MJd^W98BoD3U+Uq@c21iIpUN%V#BFcWCcf#vt4o+5DUO6b zO&C*|*rcYf8lL|J^s|{v-qlx!rIFK{sHQ0=F{e;uRWBH&tw}W`!D1ZbXFX!dv6$p7*TFM@x}tgnxaz4hV<2MkiklHGfGgyhvAdGVF*#}t1ZN{-EhsJjfv6B2&8<7wC%PWs zNYQ0am>m^9d$>G-`R1oy!Nr8DlA4JYw=nWTTVuQWvut2)U3X;8 zU&EXrwH&l(I$CB6=vozE)M}eXEA8vYC$Zl1-{~IYjnnV9I(tg?r@I>D6~xZMM_FY7 zr5Ka}PgCUZtmq)6=F9gKI#cG83BJv_O4%Fe{MtX^9MNCW`j$ZrA3?sZ1D<#AOLvDo zWM_@(Zp+rNw!gZ&qa(jEXLzMjzh7p&G2_YLr6S{dx$pXD`_|_DVV+P1XU>^Yap2mz zGpM<%eMh5G{Mf$Cl5_66+eu@8S+aMy8@S#EF!Hx@eHU$N%08Gj9Fy*;zf??+4xb*S z*F58>sw2DHXsLF65WU79MoogT@2 zcY@pPVy9SJM&eQR6_6?)d0EBAIhROS9CqlFQ7T10Bf^UNo#BtI=iM|@t3RV&-oaoA zY>houi}8C<;aK3kbKS+0vd0ERISH=SOkI~@ATwA-xIXny+azmbhFmq4H!qx0Nv0(T z)oJ5t_VvhBFpb5y^`*d)YTbMGFWB=*4krlhj%ZdsewQD&(e(XYXJG%VdrCt|ns#fF zqbuuX8B*QpCG>!3BRSn4)v~A-lRumetop{`RF4~>$jo*%!ky`DTO&~3pQB69bzF0~ zP|9S9C>5>&s#xy`B+F%)vubY0(^ZQmJK;4w8L`1c_jt;cYpDW|I?=+@uZP+4k#2|72m+lrvkVR0!>maeY@B7r($ z^p}wF)){Lt7*(Yl_vYOyue&ifY=hJ2=$ihiGd6gD7S$^0&m%5Obu~vn>g(>@)n4IV zVpXJe%F;eXsGRrE7UM_tCDQ0RV#YSZ7~G`1(SbXo1tWGX8xvX=V?L1!@a*z5!UN1fG)Rr zTdzXf*#cV2uiRoyce#a;JBOAaIIaA(;;EQP#B;YH!(lCx56H-^F}lf1QN{(scb#57 zFpGop%&jr)^jxc@4nd4o9*bG?7?KG*-+(_uHyxu%!%+S z)_GnzF`t*a-TfAW^sqw{uj)Ga2%@B-w*U`vZ{{WtxlXHVovu&k-_6|ps{P~qK7ysK zo@(QDW4DSQpF`KTwl3FKHyqVo3S!E40`=a8?*Xn;na9%0ga{{1wj3v~r8fn5PpI`K zia~|R*|QZ_=2b%Ro#bx4YI9QsIl#%27QKbFmW_6;h4S~W9Og>p{qfc_#~r%`>#6EH zE3TKLr+s>k4l6O34C-Da63^&A394~KIP7t~TLN!B&r-{^c&hV+jcJU>r#b}Ynk%&p z6yZt>cdj1Er44&<4&fb~jRxzE1u3j6=xj_c^anYg%Tj++@LS)uF4K?NfhHeJ_pz1w zSe@O-(Q8*V!YE+4oV_ypfvC}~FEoB*ZOF(b6U}H4xg|=zmo5QM5QukIj}Tpf?`RH62b2$z|&_^0>j}+nV4!u1*dRA?P_g)O)AJK6hK?irHzU@I}WRsP6U9*!-Fe| z)k%+bi;w7s7{-KiJ2o|I8HigL1bt-WyS*DOw`}NnTQy#`bTmN$2)>rc$rKRfZd9FMexF(0#0FNO zKA#_LLXStk_3sp2(xCC?p{i0kU9!_2I(Rna%@-4q-#XEMONH?Y4Zn9((@)(#PVl#H z7AyM_U}bi`1AxX$j)JOlX? zm3;=tNL8gf4ACkVd7VrA-X|5H1*4%nt6yVR#@qx^f4!5JU@8qA!XBs#l|5XGgYr-w zu*uUHki^GSv)ZqohxLFTS{0oWrBH&u2cv&m8LxU$*#iNHKLk|g!6j0TXTK7As+Pt5 zLepYYEep$+?H`ji-itLShk4NL+-UmC?fq~DG7``N)R?f#}yOyHi`=Hdv zJHu|~t~jtDCA}`G&gZWqfG@Y*`%UJ9<>L0GD(C%#Ny*6D`TCw~lCTYUzxjStWytG) zPCyZ;6i$O1JpC<7T1#3Ig;DvY@bl+fs9-^K4fJNPfRO5o;Y{Se+)vV1L(T&On#dF4 zFdT~N^p1k25Uk&XSF@4VpO2RCopRc*c4kvQ@dEG8LLYKpHX9$5KHjmd9)Q2J6~*QZh(saNYZPJ_ zB3fwmomCV=BE}#;z~GzxCp;DBRtk$l-Xd@$xrek z0f~~s=3h}rbdV+tKTrV=x6KPy7~`!xyFgn@tmh%=yNybKH6qF(%a)?2jjCHZNFz*8S&!yIi`p70(EXUdO00u=N=?6G z3GPPVr<7Lx!useKdB+R^G{1m%ktNW_Ps{%Ckr!+;ivQQB)pL7$_hCa$`W6J5$o*k6 z@Nu&umyYGygHRK*k4)0(H+Sqc53-GPHA!2MD1Ama9;=i2>z5k;6TIn!LIshpn3D~y zVM7qMby1r1M6%4&YAM4R1k>6SXUT9oVRb<@MVdPUPmclSlmi?QRUxrIN#KBLKHpQn z%M{0}`)Mqgv3`l(K5@BmIhs9!Vz~eJ#{aiREKXuFeR*Vc!n6$5tQafZB)3tmAFF8? zxiUyAi%I8J-03#mG7*{Q5bEm!zCqs7E*;()63TID{?u?NvHaD|(66OkG3LB++Lc!x z&3b|vMxE%RL+QgfwNP>d6$9Xx#i*&N#d>SRoBqiuy{uS%4js?ycquOe$yhtir$_kV zj9-X_32kB%c+0{WarBmwkTl)m8^LAD(mslR+|}O>6KdhnrdZBw!Tyl7QQ$F*2j8}B z=Bpnk2x61d#TA(>^T;}jv&`|&+l1u0_zx=dsl zU*GfwLPOB|wKIZlzMy3q?pV|mOO!0Am`Xdy`fQO~yOU2xQh+xJKCge|_?>hweY9P6 zuT%-Wu5%Igh`wY41>bV3da1x1!B5LP*qR}iIW0(M2zc=-MiGHcAu()=IYVCxw7%pu zdE&11$$8&~C})P~vjVL@X6#I5utjQZwuZ#xlSuvyvKP@9)J593v#AxJhEc@rOFh$& z&66lO-AeOf+=sLW*ZD(b*LxsTcj)sDq|K-=xev`K04Q@BqJNDl!eDae|AAnyg`UnY zNIh=^k;Ge@UnKzDtG}p-CFJ}d@j$@mT~PO7A+YV75hxqla+k2$7^_2EROY3Xwd%;7 z%g0@jBXFR1ro@;t5f8LV$FDovB!*TYW91_LUf5b`nCz)`4kzPf@w(5#qyz2cxVq}S zzi%YyVs`NRO09abeb)Buux8lD>w4MOjd5Y+M*^y(OllXCT^idFfIiey5Yfs+S3qwnEV)i9jjk5;X#1NUJ@c7?PJucK z7=(r~w81@?C2hV0#8e&{mX=my+HGb8oc5&l2V2(r}xj=#y%utoMrU4>4 z$#|m4dL|FHcwn@LG2Jgsmx>m#aM!vfr0_zO+{P1V%G^acWxGgN`0EOdKO?4tG1a#T z@;HI9Uq1Oo082<_pL3TyRzgPEX}f;twU@M%`%1Tv$)W+^ll-}`gv_Slu~9&R+K+*n zz!R2UCVj1||HTJUT)M@U(ytBcs3b|Yd9467E=l$!en7ae1GXbxgCI6UR5fIoj(y}O zPCl?krn3;C{@2nDPHp6f$2Fm_rFf0ZldYZ}k?_Sg?82lWV!YFbL%9S>(>0{AA(G||qVN#qvf141(yngI1hyPH?&1fu z@GLKfg@S3sW!34h>XS0E-X3!AK+$Y`D0=bsj{+8){9o0bFj!qPQx zbjp<=X^jpQB)1QhD~DzQ5xl%nqM?$iwRnt^@Mb*6ge z1?vk1URqWLchtffoFkG|s%haUv~i!EsR9-}9@0NUyW7ibn{0VKFr9C)iK**+Zxahd z9R+k$(cNF4PThu`YX?I@>#elKsnU3&6bBV}XG3M4t=*<6B!=GG9|-*)`V+OzbNL@h z^tk}H1yw@N=fLdOW1+1+H&5WvW^(980+%GakQvl?|Ku_wdjk2ZR+ER7(3hpep(*$+ zi0GLd0SIzR9R-zgoq~NQIX@) zq4=Byixg-dNk=x!cAf}EPR#)JLXMZdW*2E@aY5*kiP{K>K-~l+JaV9fRAnO#jeE9b zEZo){SIC6`WS4}t2A36kp@$*wEtG+erKCuU_7k3hpkTD??-Mb+<|~~bxg}V@3HP;L z7I2PD)+iUcja`7Sdt}Gf;~aFD`prZVCX!z%r%TmkDMnHy=SB}JNAhWZ_N$Iy$`8U} z@dAq{syZq-Wl*7^bvbaRODCuCSm+f3jA1KU`D?BqYf!TtU#)gV$-}rmp6Dn`{{Wr4 zwV?IkC_CFKx`f8n_0gy~Xwq84#_#N#z)U`v6{L3%7VlR;lfqaRH@VIj1MIV(@XU~& z;d`6LQJ^eHi5MQUm{FJSg`GI{Ach#2+tCzXvOv=l;6~WNJOu1_VVScj-$}=?eQWzNr ziHNO)gx=|vuH7A#!>DfjJ!{dtoXXjZl%MGJ75>8(^5xN0l-P74+4+5OS%Up*S~H%K z>8V0cpY(m;H5;%JqS3#%<~O@(e;RM6^eLjqqm7_m5kbRcay8B8Ns)8qmgJK;*zliw^AC~hlzYic46 z>3K4bvG*?EtUEKks1QzHGg%Eygsl-F^v!qTxjv7_n$*G>H9p}=Bni%S3}2I-oj zVjEh0sikLBeYJ$H;NZ{FV-?F@e|Pp(Xur6(LGbkgKacu%R1EGtw;KMW1AkVbfdY}` zNPtucAv`&-{?~cwrb&DuCvU>eY-oCI&0XQt78b4#_QU}yF#+l=I3*7w+*iUgkya1E z$m_6$grdPlzvrQZZ#w$D6NlPiN>=Rt$~3d$zUhOmQ(K(5gHG=IptR_Y+HH_j928gt zX{caulFjVYAPxjx_H+_09wb)w&%NMUm8orJ+&pz)GfK5Jf-)@-=JttJ7x2#>79wBzt4VMq9qeqdkAVhv)C*LTCNaG z8>+J4tLch_VV5b*uRBYnt^j&jzd~W~8B#3fWp4WA1lI+g?jD8&9C+1J?`&N9eNq5f z`cnY@p@vHr1YH0f+K(Gw(Fk?3?qrl0f4xv3Y-BqaRRt$}TOMAoDI-d9EhL`KuY-;sWp#`IR{L~+V!vbG%KD6kR+lJOoNq+T9U;7JI%ALw^pX@9|nQlz6x~_4wr!)_J$bENtGTXIpdX!2J8p zBpJz@_6G!E@ST}J*2TE?Ep7D$qP9C--J~_vTR?--QncO0udR4@l1Sfh?7z0a)?oT; z%>9h0>V6KFfGUT=AO@snjDlr1Q!}Uv0Z}ZzKo*VFV0u?9Z6<8ddtD>zwXPug{gC3y zxZu^PF_cKY`8@D2qabsIy{NOum*BB`m8Hk&}M{9 zGcLp<>520Vq_aelK4#b-tDQJt|CQ*;IkCBjptgv)M!3Xd->BQ{l8||~z?B0;M#8B7 zl?Ql6!kv>Nki^`H7_Ksn>A*<)fF_&!qGwxX+NA@r;%93d^f~FvspU_;s}@Lecq~w) zE1UC>sAoWx$D7F&KTDYa6{DmuW%f_{2^cd{Sw=zUAGO3pJyBxMvV}pwNYj@;7So+E z{+K2;oznWzyx!+$QV+nyPE7P#;XFWnE&UgIl&|F`5`)PBUsHYVDb!eU1Q*>j0;u4= zW1XYxvoL5Ov{=)i)W+q;b@4Xo$SV(7O@>2a3R4oio=(%@psTo^8JiRRr9Z@8f#HCE z23JgyAc%Yl$5t7ownXg&eq8{+XV#3O62iJd=U3^g$;&-iUl`N-F~G-02h33W zznV~!_^#3oko1`bf1>5WqQm$^tGD~J%0swju&1x|KC5XC2zFQo86&{`<&zo5fUwh6 zVJw=cGY@kY@vn>YDcV^m-zpBdzmbR@M2TX-Mxl1#)lyADDPc&RF0plE&epzXm#A4x zmV~QRn8gTme`z6=b31{>QB$kcHZ_k95B`#+GS6fuPj6l$PVJ~eU!zT$g|6Xle+G6c ztLA$01E-n>s4zSrNoZwOBifC5V{ro{%!(GEqmrzTZVv0mAPWLX(C2?OD@%*iwI`?^ zSjxv*Ancpx*6YjZRa0~Cg9x`Ch|>Oss(^?JkDp&W7hMSq4u zsxRjtFr2r*Or;BlL4g$O;3Tg|rjOJ=fa)4Q@*cJ_E#>a&n_Oa8I~?+LO-P03r|=-B;P%6EtpBv{8vq93xSXL2dU@(5Q(aEUeQh#v`Y3A2`WV!EZIZ(X{z*;PI>|5q%Ct{3O3fhL zC!C-#7@WCJ#Yv2w9+q-Be!sB!uRv6Ilz-N?NqSa4w@g0M(Ekk?W1>bfOq*CG%9g;5 ze=Ka_>uI+rj+zt|GU;*^>Y`XE!3zfjJTomddH!_2eT2w&^DBv~wR>7#9jKZ}UwbSu z41N|Z#usQU@zKxH`((OWJ0EB6b4bhmkmpU%E<_y=Ptwm_s#%W-18OJL*tHX&)_AG4 zHVvAyNM2?8)~cCZ6hj0R95x*uZq9*6qI#abz+j1;Zfkt;&8W5`5}_ZUb{EI(%8wG| zl^@-b{`3$9;xg|4m&!NmIGF>mNS2<@RK}v(Eonp5+I8xhph|<8fEF!LB_9j&cczMv z3@fT1>|41x7lD}#0aOuW_jURIX}bxKuE`{Mgv#05$N-FPMIZgZf2vO>3RP6=nbFY& z1SvfD`5a);b?Bp)T$Ct}P78+RYo3!FBMlBHzjql6_zbtg$`p&~KO@vXN)w+YlBOqZ znTo%-wB;pD0)vEtjp)Xj^!VKDe$^P;;{nJLi@E=~)4oO5L`nn#5EmBDgo{P+y8VIp zXJtlb5F(N~Kz_ORUmtu9uUNkM@*imu_^toG+WG#7B?jZV^wm(4%44N>>LAoaYQnSl znrSO9za)-2Y!H^6MM2s>4kZ96OX+r`q&9eWlY}H^<}hdRo`;{ zzb?)^Dyj4j<6KlM({M>8OtVqPt+W(jN(B@YvRndf8MAa+O%u0Vm=sMzoovR9Ze^Qh zXVlkL%$70U=Xmgi|ZJD~;W3xVH<@^P1?m-j<;aQB&mrNU8+gjhCcDQeOP!F7; z=ho2BJ5+3{comt1S?X+=kI)V>8vcVCJhIfrauAWbc)=CMseA*9GOJa}te(mSx=cvz zU-*qUq1UgYy;2VY`}%gJRF(AH9HSWPPTi?e|!~5OuUAPkm+(=3dJN+UGtZj%?heRYb+-y8SOc z@re|bS#*XIRHJ)n%tAt-BSp1wFl2vTQI_N8=7vQhp|Z!*!W*pQ@hPD|d66rTr(p!K zOx~Ex8I(aAk2#N;&;v82RvYS-lTgbhb>1OuUg$v_V zw}p3S9$-I)4Mt9Uk^S1+Eeib7%e$aL$M#uv*@)h@2}_W zFMQ?Pj4KZoLUFwAk0L`Jw<7Iu<3b+I_oO0sd&T+oH51FHDSR%bVPcDR?GG>zZBqgw3L)ft~WedV4wvN3(%I&Z~OF87J#tjcHd zeM3&CWcOi=@I3yGCw>SuIf+d9YC*{}DH6XA>L7Td;_ibrDYzC3-L}pJvAP@ahcMc; z1=Gd1X5Hr+c|XpL7j%j}`8|s*tg-vc92*jBeZ5a*)hh_!4(bRd0_dhc^?_ryEJe%n z8_rM+$3`CpLqZ9?v{=_vMq)w$?HUUOi$$0=g? zgIppV$6b``glorCuT8ljxYQaRRX2BmMmF&qrgQYR7H@4?gD5A72%||i=Z~CEiebK7 ziVCj3+Ne}|3*O1@m3!Z#C9%q4hLHL1%!={XSLoc^Gw`E?W|R@1F5x*=X;+L7pBTN{ zoR5D1tP5v;;XG%*+Zi$4TBnDK&-tO29hKo9mXm1u>}ur8x?Se&poay?Lj*Z}E7Rcc+%IrPRiaY7=gs|RqSn3Ew=n@zmB?e5 z7tY$aBYc^N7H#-!2EE+a^Qu|#nro**NHY@4jVEeXl>OzfvGdX3&u4;dR#p0T5(AFP zebO9P=_<09)GaHCk>9+%mCQ1^!r*+ytwhT$@usOKHzf|PmsoX6s?1!7gL|Wz!&dAL zw}bxV-c;#lBUL)#!KZ99&7SWi$QC54KHJv+bn93}dePN+ zulLKOLHZ8e)L(up=~UJuEC~6=_?uCCY`O!lbus_`Xy~c z`rf}W1G}m=EPK$#ia?9?gi~IW7HwleoZX9vyXVr+Swz6|`p1}W)8ms1&Q#6P|MWU6 zOh;rmaQi=3Zn%FRJ17X-)P1pX!`0P+Z>`4Cw_or)x~8+NpPM?p=@@>$y}-V5-#H7? z8^o~Iy3nW69+dH#?rrz%GTbTMcBsv2sf+al62afh@6)NCBNdx21w)S1DDx> zUmwrLO@;XIkFa)FS}lo>eZw*QdVT!ysNM`etxs(a=Tr4OmYV8IB!gcDK8W%GNbxUOrC~_ z9#iIeS(O=Qqep&npBYxn-fft7D4c)pJSv&I%nO}&i|RkLxz=^GVBewzh?S4bGwd>| zwonBa`=K&=utaug1g1{ipqsip09Rc=3QldjsxpBP_Vz8z|A7x&+R91EKJr zv`aT>n}P@MfD^C}tvP)Fe4-DSg2#w}p~b)XA7?ns0Q$_S8vwJ0uCCx6 zBCrk!0Y4ET)l|^I2l&zAzhA}g!#QBI58wsZfR}v$Pk1mIj3TSmeE=6YHAVvjU%(YU z#n1p-4WE-Vz*B=H{Tq}bnL6N766E@JhNd^11ogIMYoJmMRJI00YDhk=fz@Qd6?hIt zk^z4>2h`Ns$$;sy?}skIU?{a?sA<;N{R6nkAF`?A2iaV8P6HeKpqrXr)Ify4vA~e diff --git a/src/main/java/com/jsh/erp/constants/ExceptionConstants.java b/src/main/java/com/jsh/erp/constants/ExceptionConstants.java index 5fe743c9..662ad688 100644 --- a/src/main/java/com/jsh/erp/constants/ExceptionConstants.java +++ b/src/main/java/com/jsh/erp/constants/ExceptionConstants.java @@ -42,9 +42,163 @@ public class ExceptionConstants { //登录名已存在 public static final int USER_LOGIN_NAME_ALREADY_EXISTS_CODE = 500003; public static final String USER_LOGIN_NAME_ALREADY_EXISTS_MSG = "登录名已存在"; + /** + * 角色信息 + * type = 10 + * */ + //添加角色信息失败 + public static final int ROLE_ADD_FAILED_CODE = 1000000; + public static final String ROLE_ADD_FAILED_MSG = "添加角色信息失败"; + //删除角色信息失败 + public static final int ROLE_DELETE_FAILED_CODE = 1000001; + public static final String ROLE_DELETE_FAILED_MSG = "删除角色信息失败"; + //修改角色信息失败 + public static final int ROLE_EDIT_FAILED_CODE = 1000002; + public static final String ROLE_EDIT_FAILED_MSG = "修改角色信息失败"; + /** + * 应用信息 + * type = 15 + * */ + //添加角色信息失败 + public static final int APP_ADD_FAILED_CODE = 1500000; + public static final String APP_ADD_FAILED_MSG = "添加应用信息失败"; + //删除角色信息失败 + public static final int APP_DELETE_FAILED_CODE = 1500001; + public static final String APP_DELETE_FAILED_MSG = "删除应用信息失败"; + //修改角色信息失败 + public static final int APP_EDIT_FAILED_CODE = 1500002; + public static final String APP_EDIT_FAILED_MSG = "修改应用信息失败"; + /** + * 仓库信息 + * type = 20 + * */ + //添加仓库信息失败 + public static final int DEPOT_ADD_FAILED_CODE = 2000000; + public static final String DEPOT_ADD_FAILED_MSG = "添加仓库信息失败"; + //删除仓库信息失败 + public static final int DEPOT_DELETE_FAILED_CODE = 2000001; + public static final String DEPOT_DELETE_FAILED_MSG = "删除仓库信息失败"; + //修改仓库信息失败 + public static final int DEPOT_EDIT_FAILED_CODE = 2000002; + public static final String DEPOT_EDIT_FAILED_MSG = "修改仓库信息失败"; - - + /** + * 功能模块信息 + * type = 30 + * */ + //添加角色信息失败 + public static final int FUNCTIONS_ADD_FAILED_CODE = 3000000; + public static final String FUNCTIONS_ADD_FAILED_MSG = "添加功能模块信息失败"; + //删除角色信息失败 + public static final int FUNCTIONS_DELETE_FAILED_CODE = 3000001; + public static final String FUNCTIONS_DELETE_FAILED_MSG = "删除功能模块信息失败"; + //修改角色信息失败 + public static final int FUNCTIONS_EDIT_FAILED_CODE = 3000002; + public static final String FUNCTIONS_EDIT_FAILED_MSG = "修改功能模块信息失败"; + /** + * 收支项目信息 + * type = 35 + * */ + //添加收支项目信息失败 + public static final int IN_OUT_ITEM_ADD_FAILED_CODE = 3500000; + public static final String IN_OUT_ITEM_ADD_FAILED_MSG = "添加收支项目信息失败"; + //删除收支项目信息失败 + public static final int IN_OUT_ITEM_DELETE_FAILED_CODE = 3500001; + public static final String IN_OUT_ITEM_DELETE_FAILED_MSG = "删除收支项目信息失败"; + //修改收支项目信息失败 + public static final int IN_OUT_ITEM_EDIT_FAILED_CODE = 3500002; + public static final String IN_OUT_ITEM_EDIT_FAILED_MSG = "修改收支项目信息失败"; + /** + * 多单位信息 + * type = 40 + * */ + //添加多单位信息失败 + public static final int UNIT_ADD_FAILED_CODE = 4000000; + public static final String UNIT_ADD_FAILED_MSG = "添加多单位信息失败"; + //删除多单位信息失败 + public static final int UNIT_DELETE_FAILED_CODE = 4000001; + public static final String UNIT_DELETE_FAILED_MSG = "删除多单位信息失败"; + //修改多单位信息失败 + public static final int UNIT_EDIT_FAILED_CODE = 4000002; + public static final String UNIT_EDIT_FAILED_MSG = "修改多单位信息失败"; + /** + * 经手人信息 + * type = 45 + * */ + //添加经手人信息失败 + public static final int PERSON_ADD_FAILED_CODE = 4500000; + public static final String PERSON_ADD_FAILED_MSG = "添加经手人信息失败"; + //删除经手人信息失败 + public static final int PERSON_DELETE_FAILED_CODE = 4500001; + public static final String PERSON_DELETE_FAILED_MSG = "删除经手人信息失败"; + //修改经手人信息失败 + public static final int PERSON_EDIT_FAILED_CODE = 4500002; + public static final String PERSON_EDIT_FAILED_MSG = "修改经手人信息失败"; + /** + * 用户角色模块关系信息 + * type = 50 + * */ + //添加用户角色模块关系信息失败 + public static final int USER_BUSINESS_ADD_FAILED_CODE = 5000000; + public static final String USER_BUSINESS_ADD_FAILED_MSG = "添加用户角色模块关系信息失败"; + //删除用户角色模块关系信息失败 + public static final int USER_BUSINESS_DELETE_FAILED_CODE = 5000001; + public static final String USER_BUSINESS_DELETE_FAILED_MSG = "删除用户角色模块关系信息失败"; + //修改用户角色模块关系信息失败 + public static final int USER_BUSINESS_EDIT_FAILED_CODE = 5000002; + public static final String USER_BUSINESS_EDIT_FAILED_MSG = "修改用户角色模块关系信息失败"; + /** + * 系统参数信息 + * type = 55 + * */ + //添加系统参数信息失败 + public static final int SYSTEM_CONFIG_ADD_FAILED_CODE = 5500000; + public static final String SYSTEM_CONFIG_ADD_FAILED_MSG = "添加系统参数信息失败"; + //删除系统参数信息失败 + public static final int SYSTEM_CONFIG_DELETE_FAILED_CODE = 5500001; + public static final String SYSTEM_CONFIG_DELETE_FAILED_MSG = "删除系统参数信息失败"; + //修改系统参数信息失败 + public static final int SYSTEM_CONFIG_EDIT_FAILED_CODE = 5500002; + public static final String SYSTEM_CONFIG_EDIT_FAILED_MSG = "修改系统参数信息失败"; + /** + * 商品扩展信息 + * type = 60 + * */ + //添加商品扩展信息失败 + public static final int MATERIAL_PROPERTY_ADD_FAILED_CODE = 6000000; + public static final String MATERIAL_PROPERTY_ADD_FAILED_MSG = "添加商品扩展信息失败"; + //删除商品扩展信息失败 + public static final int MATERIAL_PROPERTY_DELETE_FAILED_CODE = 6000001; + public static final String MATERIAL_PROPERTY_DELETE_FAILED_MSG = "删除商品扩展信息失败"; + //修改商品扩展信息失败 + public static final int MATERIAL_PROPERTY_EDIT_FAILED_CODE = 6000002; + public static final String MATERIAL_PROPERTY_EDIT_FAILED_MSG = "修改商品扩展信息失败"; + /** + * 账户信息 + * type = 65 + * */ + //添加账户信息失败 + public static final int ACCOUNT_ADD_FAILED_CODE = 6500000; + public static final String ACCOUNT_ADD_FAILED_MSG = "添加账户信息失败"; + //删除账户信息失败 + public static final int ACCOUNT_DELETE_FAILED_CODE = 6500001; + public static final String ACCOUNT_DELETE_FAILED_MSG = "删除账户信息失败"; + //修改账户信息失败 + public static final int ACCOUNT_EDIT_FAILED_CODE = 6500002; + public static final String ACCOUNT_EDIT_FAILED_MSG = "修改账户信息失败"; + /** + * 供应商信息 + * type = 70 + * */ + //添加供应商信息失败 + public static final int SUPPLIER_ADD_FAILED_CODE = 7000000; + public static final String SUPPLIER_ADD_FAILED_MSG = "添加供应商信息失败"; + //删除供应商信息失败 + public static final int SUPPLIER_DELETE_FAILED_CODE = 7000001; + public static final String SUPPLIER_DELETE_FAILED_MSG = "删除供应商信息失败"; + //修改供应商信息失败 + public static final int SUPPLIER_EDIT_FAILED_CODE = 7000002; + public static final String SUPPLIER_EDIT_FAILED_MSG = "修改供应商信息失败"; /** * 商品类别信息 * type = 75 @@ -57,7 +211,7 @@ public class ExceptionConstants { public static final String MATERIAL_CATEGORY_DELETE_FAILED_MSG = "删除商品类别信息失败"; //修改商品类别信息失败 public static final int MATERIAL_CATEGORY_EDIT_FAILED_CODE = 7500002; - public static final String MATERIAL_CATEGORY_EDIT_FAILED_MSG = "添加商品类别信息失败"; + public static final String MATERIAL_CATEGORY_EDIT_FAILED_MSG = "修改商品类别信息失败"; //商品类别编号已存在 public static final int MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_CODE = 7500003; public static final String MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_MSG = "商品类别编号已存在"; @@ -67,11 +221,19 @@ public class ExceptionConstants { //根目录不支持删除 public static final int MATERIAL_CATEGORY_ROOT_NOT_SUPPORT_DELETE_CODE = 7500005; public static final String MATERIAL_CATEGORY_ROOT_NOT_SUPPORT_DELETE_MSG = "根目录不支持删除"; - /** * 商品信息 * type = 80 * */ + //添加商品信息信息失败 + public static final int MATERIAL_ADD_FAILED_CODE = 7500000; + public static final String MATERIAL_ADD_FAILED_MSG = "添加商品信息失败"; + //删除商品信息失败 + public static final int MATERIAL_DELETE_FAILED_CODE = 7500001; + public static final String MATERIAL_DELETE_FAILED_MSG = "删除商品信息失败"; + //修改商品信息失败 + public static final int MATERIAL_EDIT_FAILED_CODE = 7500002; + public static final String MATERIAL_EDIT_FAILED_MSG = "修改商品信息失败"; //商品信息不存在 public static final int MATERIAL_NOT_EXISTS_CODE = 8000000; public static final String MATERIAL_NOT_EXISTS_MSG = "商品信息不存在"; @@ -87,7 +249,58 @@ public class ExceptionConstants { //商品库存不足 public static final int MATERIAL_STOCK_NOT_ENOUGH_CODE = 8000004; public static final String MATERIAL_STOCK_NOT_ENOUGH_MSG = "商品:%s库存不足"; - + /** + * 单据信息 + * type = 85 + * */ + //添加单据信息失败 + public static final int DEPOT_HEAD_ADD_FAILED_CODE = 8500000; + public static final String DEPOT_HEAD_ADD_FAILED_MSG = "添加单据信息失败"; + //删除单据信息失败 + public static final int DEPOT_HEAD_DELETE_FAILED_CODE = 8500001; + public static final String DEPOT_HEAD_DELETE_FAILED_MSG = "删除单据信息失败"; + //修改单据信息失败 + public static final int DEPOT_HEAD_EDIT_FAILED_CODE = 8500002; + public static final String DEPOT_HEAD_EDIT_FAILED_MSG = "修改单据信息失败"; + /** + * 单据明细信息 + * type = 90 + * */ + //添加单据明细信息失败 + public static final int DEPOT_ITEM_ADD_FAILED_CODE = 9000000; + public static final String DEPOT_ITEM_ADD_FAILED_MSG = "添加单据明细信息失败"; + //删除单据明细信息失败 + public static final int DEPOT_ITEM_DELETE_FAILED_CODE = 9000001; + public static final String DEPOT_ITEM_DELETE_FAILED_MSG = "删除单据明细信息失败"; + //修改单据明细信息失败 + public static final int DEPOT_ITEM_EDIT_FAILED_CODE = 9000002; + public static final String DEPOT_ITEM_EDIT_FAILED_MSG = "修改单据明细信息失败"; + /** + * 财务信息 + * type = 95 + * */ + //添加财务信息失败 + public static final int ACCOUNT_HEAD_ADD_FAILED_CODE = 9500000; + public static final String ACCOUNT_HEAD_ADD_FAILED_MSG = "添加财务信息失败"; + //删除财务信息失败 + public static final int ACCOUNT_HEAD_DELETE_FAILED_CODE = 9500001; + public static final String ACCOUNT_HEAD_DELETE_FAILED_MSG = "删除财务信息失败"; + //修改财务信息失败 + public static final int ACCOUNT_HEAD_EDIT_FAILED_CODE = 9500002; + public static final String ACCOUNT_HEAD_EDIT_FAILED_MSG = "修改财务信息失败"; + /** + * 财务明细信息 + * type = 100 + * */ + //添加财务明细信息失败 + public static final int ACCOUNT_ITEM_ADD_FAILED_CODE = 10000000; + public static final String ACCOUNT_ITEM_ADD_FAILED_MSG = "添加财务明细信息失败"; + //删除财务明细信息失败 + public static final int ACCOUNT_ITEM_DELETE_FAILED_CODE = 10000001; + public static final String ACCOUNT_ITEM_DELETE_FAILED_MSG = "删除财务明细信息失败"; + //修改财务明细信息失败 + public static final int ACCOUNT_ITEM_EDIT_FAILED_CODE = 10000002; + public static final String ACCOUNT_ITEM_EDIT_FAILED_MSG = "修改财务明细信息失败"; /** * 序列号 * type = 105 @@ -105,7 +318,7 @@ public class ExceptionConstants { public static final int SERIAL_NUMBERE_DELETE_FAILED_CODE = 10500003; public static final String SERIAL_NUMBERE_DELETE_FAILED_MSG = "删序列号信息失败"; /** - * 机构 + * 机构信息 * type = 110 * */ //添加机构信息失败 @@ -140,6 +353,8 @@ public class ExceptionConstants { public static final int ORGA_USER_REL_EDIT_FAILED_CODE = 11500002; public static final String ORGA_USER_REL_EDIT_FAILED_MSG = "修改机构用户关联关系失败"; + + /** * 标准正常返回/操作成功返回 * @return diff --git a/src/main/java/com/jsh/erp/controller/AccountController.java b/src/main/java/com/jsh/erp/controller/AccountController.java index c6fc55d2..a571b9be 100644 --- a/src/main/java/com/jsh/erp/controller/AccountController.java +++ b/src/main/java/com/jsh/erp/controller/AccountController.java @@ -2,8 +2,10 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Account; import com.jsh.erp.datasource.vo.AccountVo4InOutList; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.account.AccountService; import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.ErpInfo; @@ -138,5 +140,27 @@ public class AccountController { return returnJson(objectMap, ErpInfo.ERROR.name, ErpInfo.ERROR.code); } } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除账户信息 + * create time: 2019/3/29 10:49 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteAccountByIds") + public Object batchDeleteAccountByIds(@RequestParam("ids") String ids) throws Exception { + + JSONObject result = ExceptionConstants.standardSuccess(); + int i= accountService.batchDeleteAccountByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.ACCOUNT_DELETE_FAILED_CODE,ExceptionConstants.ACCOUNT_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_DELETE_FAILED_CODE, + ExceptionConstants.ACCOUNT_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/AccountHeadController.java b/src/main/java/com/jsh/erp/controller/AccountHeadController.java index 06e37225..3faab1e2 100644 --- a/src/main/java/com/jsh/erp/controller/AccountHeadController.java +++ b/src/main/java/com/jsh/erp/controller/AccountHeadController.java @@ -1,8 +1,10 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.AccountHead; import com.jsh.erp.datasource.entities.AccountHeadVo4ListEx; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.accountHead.AccountHeadService; import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.ErpInfo; @@ -146,5 +148,27 @@ public class AccountHeadController { } return allMoney; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除账户信息 + * create time: 2019/3/29 10:49 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteAccountHeadByIds") + public Object batchDeleteAccountHeadByIds(@RequestParam("ids") String ids) throws Exception { + + JSONObject result = ExceptionConstants.standardSuccess(); + int i= accountHeadService.batchDeleteAccountHeadByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.ACCOUNT_HEAD_DELETE_FAILED_CODE,ExceptionConstants.ACCOUNT_HEAD_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_HEAD_DELETE_FAILED_CODE, + ExceptionConstants.ACCOUNT_HEAD_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/AccountItemController.java b/src/main/java/com/jsh/erp/controller/AccountItemController.java index 04ba1695..7eb2ef6b 100644 --- a/src/main/java/com/jsh/erp/controller/AccountItemController.java +++ b/src/main/java/com/jsh/erp/controller/AccountItemController.java @@ -2,8 +2,10 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.AccountItem; import com.jsh.erp.datasource.vo.AccountItemVo4List; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.accountItem.AccountItemService; import com.jsh.erp.service.log.LogService; import com.jsh.erp.utils.*; @@ -104,5 +106,27 @@ public class AccountItemController { } return res; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除财务明细信息 + * create time: 2019/3/29 10:56 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteAccountItemByIds") + public Object batchDeleteAccountItemByIds(@RequestParam("ids") String ids) throws Exception { + + JSONObject result = ExceptionConstants.standardSuccess(); + int i= accountItemService.batchDeleteAccountItemByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.ACCOUNT_ITEM_DELETE_FAILED_CODE,ExceptionConstants.ACCOUNT_ITEM_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.ACCOUNT_ITEM_DELETE_FAILED_CODE, + ExceptionConstants.ACCOUNT_ITEM_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/AppController.java b/src/main/java/com/jsh/erp/controller/AppController.java index 4228b907..5fa8ed9f 100644 --- a/src/main/java/com/jsh/erp/controller/AppController.java +++ b/src/main/java/com/jsh/erp/controller/AppController.java @@ -2,8 +2,10 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.App; import com.jsh.erp.datasource.entities.UserBusiness; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.app.AppService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.BaseResponseInfo; @@ -223,4 +225,26 @@ public class AppController { } return res; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除应用信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteAppByIds") + public Object batchDeleteAppByIds(@RequestParam("ids") String ids) throws Exception { + + JSONObject result = ExceptionConstants.standardSuccess(); + int i= appService.batchDeleteAppByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.APP_DELETE_FAILED_CODE,ExceptionConstants.APP_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.APP_DELETE_FAILED_CODE, + ExceptionConstants.APP_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/DepotController.java b/src/main/java/com/jsh/erp/controller/DepotController.java index b65a4b08..a28c58e6 100644 --- a/src/main/java/com/jsh/erp/controller/DepotController.java +++ b/src/main/java/com/jsh/erp/controller/DepotController.java @@ -7,8 +7,10 @@ import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.jsh.erp.constants.BusinessConstants; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Depot; import com.jsh.erp.datasource.entities.DepotEx; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.depot.DepotService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.*; @@ -173,5 +175,26 @@ public class DepotController { queryInfo.setTotal(pageInfo.getTotal()); return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除仓库信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteDepotByIds") + public Object batchDeleteDepotByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= depotService.batchDeleteDepotByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.DEPOT_DELETE_FAILED_CODE,ExceptionConstants.DEPOT_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_DELETE_FAILED_CODE, + ExceptionConstants.DEPOT_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/DepotItemController.java b/src/main/java/com/jsh/erp/controller/DepotItemController.java index 45db728f..d7dc3025 100644 --- a/src/main/java/com/jsh/erp/controller/DepotItemController.java +++ b/src/main/java/com/jsh/erp/controller/DepotItemController.java @@ -3,7 +3,9 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.*; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.depotItem.DepotItemService; import com.jsh.erp.service.material.MaterialService; import com.jsh.erp.utils.*; @@ -782,4 +784,25 @@ public class DepotItemController { } return sumPrice; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除单据明细信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteDepotItemByIds") + public Object batchDeleteDepotItemByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= depotItemService.batchDeleteDepotItemByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.DEPOT_ITEM_DELETE_FAILED_CODE,ExceptionConstants.DEPOT_ITEM_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_DELETE_FAILED_CODE, + ExceptionConstants.DEPOT_ITEM_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/FunctionsController.java b/src/main/java/com/jsh/erp/controller/FunctionsController.java index 81091efe..82fa2569 100644 --- a/src/main/java/com/jsh/erp/controller/FunctionsController.java +++ b/src/main/java/com/jsh/erp/controller/FunctionsController.java @@ -2,7 +2,9 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Functions; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.functions.FunctionsService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.BaseResponseInfo; @@ -273,4 +275,25 @@ public class FunctionsController { } return res; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除功能模块信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteFunctionsByIds") + public Object batchDeleteFunctionsByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= functionsService.batchDeleteFunctionsByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.FUNCTIONS_DELETE_FAILED_CODE,ExceptionConstants.FUNCTIONS_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.FUNCTIONS_DELETE_FAILED_CODE, + ExceptionConstants.FUNCTIONS_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/InOutItemController.java b/src/main/java/com/jsh/erp/controller/InOutItemController.java index 0116bb85..6d67ca1b 100644 --- a/src/main/java/com/jsh/erp/controller/InOutItemController.java +++ b/src/main/java/com/jsh/erp/controller/InOutItemController.java @@ -2,7 +2,9 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.InOutItem; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.inOutItem.InOutItemService; import com.jsh.erp.utils.BaseResponseInfo; import org.slf4j.Logger; @@ -54,5 +56,26 @@ public class InOutItemController { } return res; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除收支项目信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteInOutItemByIds") + public Object batchDeleteInOutItemByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= inOutItemService.batchDeleteInOutItemByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.IN_OUT_ITEM_DELETE_FAILED_CODE,ExceptionConstants.IN_OUT_ITEM_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.IN_OUT_ITEM_DELETE_FAILED_CODE, + ExceptionConstants.IN_OUT_ITEM_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/MaterialController.java b/src/main/java/com/jsh/erp/controller/MaterialController.java index 44e08fb3..9fbb582d 100644 --- a/src/main/java/com/jsh/erp/controller/MaterialController.java +++ b/src/main/java/com/jsh/erp/controller/MaterialController.java @@ -6,9 +6,11 @@ import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.jsh.erp.constants.BusinessConstants; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.DepotEx; import com.jsh.erp.datasource.entities.Material; import com.jsh.erp.datasource.entities.MaterialVo4Unit; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.material.MaterialService; import com.jsh.erp.utils.*; import jxl.Sheet; @@ -341,4 +343,25 @@ public class MaterialController { queryInfo.setTotal(pageInfo.getTotal()); return returnJson(objectMap, ErpInfo.OK.name, ErpInfo.OK.code); } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除商品信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteMaterialByIds") + public Object batchDeleteMaterialByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= materialService.batchDeleteMaterialByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.MATERIAL_DELETE_FAILED_CODE,ExceptionConstants.MATERIAL_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_DELETE_FAILED_CODE, + ExceptionConstants.MATERIAL_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/MaterialPropertyController.java b/src/main/java/com/jsh/erp/controller/MaterialPropertyController.java new file mode 100644 index 00000000..6577e48c --- /dev/null +++ b/src/main/java/com/jsh/erp/controller/MaterialPropertyController.java @@ -0,0 +1,49 @@ +package com.jsh.erp.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; +import com.jsh.erp.exception.BusinessRunTimeException; +import com.jsh.erp.service.material.MaterialService; +import com.jsh.erp.service.materialProperty.MaterialPropertyService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/3/29 15:24 + */ +@RestController +@RequestMapping(value = "/materialProperty") +public class MaterialPropertyController { + private Logger logger = LoggerFactory.getLogger(MaterialPropertyController.class); + @Resource + private MaterialPropertyService materialPropertyService; + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除商品扩展信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteMaterialPropertyByIds") + public Object batchDeleteMaterialPropertyByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= materialPropertyService.batchDeleteMaterialPropertyByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.MATERIAL_PROPERTY_DELETE_FAILED_CODE,ExceptionConstants.MATERIAL_PROPERTY_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_PROPERTY_DELETE_FAILED_CODE, + ExceptionConstants.MATERIAL_PROPERTY_DELETE_FAILED_MSG); + } + return result; + } +} diff --git a/src/main/java/com/jsh/erp/controller/PersonController.java b/src/main/java/com/jsh/erp/controller/PersonController.java index 4b396cb9..2f310b19 100644 --- a/src/main/java/com/jsh/erp/controller/PersonController.java +++ b/src/main/java/com/jsh/erp/controller/PersonController.java @@ -2,7 +2,9 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Person; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.person.PersonService; import com.jsh.erp.utils.BaseResponseInfo; import org.slf4j.Logger; @@ -121,4 +123,25 @@ public class PersonController { } return dataArray; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除经手人信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeletePersonByIds") + public Object batchDeletePersonByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= personService.batchDeletePersonByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.PERSON_DELETE_FAILED_CODE,ExceptionConstants.PERSON_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.PERSON_DELETE_FAILED_CODE, + ExceptionConstants.PERSON_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/RoleController.java b/src/main/java/com/jsh/erp/controller/RoleController.java index 0c4c04c5..7c58768b 100644 --- a/src/main/java/com/jsh/erp/controller/RoleController.java +++ b/src/main/java/com/jsh/erp/controller/RoleController.java @@ -2,8 +2,11 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Role; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.role.RoleService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.service.userBusiness.UserBusinessService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,4 +80,26 @@ public class RoleController { return roleService.getRole(); } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 逻辑删除角色信息 + * create time: 2019/3/28 15:39 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteRoleByIds") + public Object batchDeleteRoleByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= roleService.batchDeleteRoleByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.ROLE_DELETE_FAILED_CODE,ExceptionConstants.ROLE_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.ROLE_DELETE_FAILED_CODE, + ExceptionConstants.ROLE_DELETE_FAILED_MSG); + } + return result; + } + } diff --git a/src/main/java/com/jsh/erp/controller/SupplierController.java b/src/main/java/com/jsh/erp/controller/SupplierController.java index 1b6bc81c..586e2296 100644 --- a/src/main/java/com/jsh/erp/controller/SupplierController.java +++ b/src/main/java/com/jsh/erp/controller/SupplierController.java @@ -2,8 +2,11 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.Supplier; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.supplier.SupplierService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.*; import jxl.Sheet; @@ -40,6 +43,8 @@ public class SupplierController { @Resource private UserBusinessService userBusinessService; + @Resource + private UserService userService; /** * 更新供应商-只更新预付款,其余用原来的值 @@ -437,5 +442,26 @@ public class SupplierController { return null; } } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除供应商信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteSupplierByIds") + public Object batchDeleteSupplierByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= supplierService.batchDeleteSupplierByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.SUPPLIER_DELETE_FAILED_CODE,ExceptionConstants.SUPPLIER_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.SUPPLIER_DELETE_FAILED_CODE, + ExceptionConstants.SUPPLIER_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/controller/SystemConfigController.java b/src/main/java/com/jsh/erp/controller/SystemConfigController.java new file mode 100644 index 00000000..fb1a0111 --- /dev/null +++ b/src/main/java/com/jsh/erp/controller/SystemConfigController.java @@ -0,0 +1,49 @@ +package com.jsh.erp.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; +import com.jsh.erp.exception.BusinessRunTimeException; +import com.jsh.erp.service.systemConfig.SystemConfigService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/4/1 15:28 + */ +@RestController +@RequestMapping(value = "/systemConfig") +public class SystemConfigController { + private Logger logger = LoggerFactory.getLogger(SystemConfigController.class); + @Resource + private SystemConfigService systemConfigService; + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除系统配置信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteSystemConfigByIds") + public Object batchDeleteSystemConfigByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= systemConfigService.batchDeleteSystemConfigByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.SYSTEM_CONFIG_DELETE_FAILED_CODE,ExceptionConstants.SYSTEM_CONFIG_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.SYSTEM_CONFIG_DELETE_FAILED_CODE, + ExceptionConstants.SYSTEM_CONFIG_DELETE_FAILED_MSG); + } + return result; + } + +} diff --git a/src/main/java/com/jsh/erp/controller/UnitController.java b/src/main/java/com/jsh/erp/controller/UnitController.java new file mode 100644 index 00000000..385d1dc7 --- /dev/null +++ b/src/main/java/com/jsh/erp/controller/UnitController.java @@ -0,0 +1,48 @@ +package com.jsh.erp.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; +import com.jsh.erp.exception.BusinessRunTimeException; +import com.jsh.erp.service.unit.UnitService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/4/1 15:38 + */ +@RestController +@RequestMapping(value = "/unit") +public class UnitController { + private Logger logger = LoggerFactory.getLogger(UnitController.class); + @Resource + private UnitService unitService; + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除系统配置信息 + * create time: 2019/3/29 11:15 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteUnitByIds") + public Object batchDeleteUnitByIds(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= unitService.batchDeleteUnitByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.UNIT_DELETE_FAILED_CODE,ExceptionConstants.UNIT_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.UNIT_DELETE_FAILED_CODE, + ExceptionConstants.UNIT_DELETE_FAILED_MSG); + } + return result; + } +} diff --git a/src/main/java/com/jsh/erp/controller/UserBusinessController.java b/src/main/java/com/jsh/erp/controller/UserBusinessController.java index 9f04ed08..08e856fd 100644 --- a/src/main/java/com/jsh/erp/controller/UserBusinessController.java +++ b/src/main/java/com/jsh/erp/controller/UserBusinessController.java @@ -1,7 +1,10 @@ package com.jsh.erp.controller; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.UserBusiness; +import com.jsh.erp.exception.BusinessRunTimeException; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.service.userBusiness.UserBusinessService; import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.ErpInfo; @@ -27,6 +30,8 @@ public class UserBusinessController { @Resource private UserBusinessService userBusinessService; + @Resource + private UserService userService; @GetMapping(value = "/getBasicData") public BaseResponseInfo getBasicData(@RequestParam(value = "KeyId") String keyId, @@ -86,4 +91,26 @@ public class UserBusinessController { } return res; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 批量删除用户角色模块关系信息 + * create time: 2019/3/28 15:47 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteUserBusinessByIds") + public Object batchDeleteUserBusinessByIds(@RequestParam("ids") String ids) throws Exception { + + JSONObject result = ExceptionConstants.standardSuccess(); + int i= userBusinessService.batchDeleteUserBusinessByIds(ids); + if(i<1){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.USER_BUSINESS_DELETE_FAILED_CODE,ExceptionConstants.USER_BUSINESS_DELETE_FAILED_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.USER_BUSINESS_DELETE_FAILED_CODE, + ExceptionConstants.USER_BUSINESS_DELETE_FAILED_MSG); + } + return result; + } } diff --git a/src/main/java/com/jsh/erp/datasource/mappers/AccountHeadMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/AccountHeadMapperEx.java index 993a55e3..dee82806 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/AccountHeadMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/AccountHeadMapperEx.java @@ -6,6 +6,7 @@ import com.jsh.erp.datasource.entities.AccountHeadVo4ListEx; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; +import java.util.Date; import java.util.List; public interface AccountHeadMapperEx { @@ -34,4 +35,6 @@ public interface AccountHeadMapperEx { List getDetailByNumber( @Param("billNo") String billNo); + + int batchDeleteAccountHeadByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/AccountItemMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/AccountItemMapperEx.java index 8f290c08..4bf07c5b 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/AccountItemMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/AccountItemMapperEx.java @@ -5,6 +5,7 @@ import com.jsh.erp.datasource.entities.AccountItemExample; import com.jsh.erp.datasource.vo.AccountItemVo4List; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface AccountItemMapperEx { @@ -24,4 +25,5 @@ public interface AccountItemMapperEx { List getDetailList( @Param("headerId") Long headerId); + int batchDeleteAccountItemByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/AccountMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/AccountMapperEx.java index 630de121..01dae501 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/AccountMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/AccountMapperEx.java @@ -6,6 +6,7 @@ import com.jsh.erp.datasource.vo.AccountVo4InOutList; import com.jsh.erp.datasource.vo.AccountVo4List; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface AccountMapperEx { @@ -29,4 +30,6 @@ public interface AccountMapperEx { int findAccountInOutListCount( @Param("accountId") Long accountId); + + int batchDeleteAccountByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/AppMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/AppMapperEx.java index 3bffd10e..5b5700a7 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/AppMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/AppMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.App; import com.jsh.erp.datasource.entities.AppExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface AppMapperEx { @@ -17,4 +18,6 @@ public interface AppMapperEx { Long countsByApp( @Param("name") String name, @Param("type") String type); + + int batchDeleteAppByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java index ef7cd3f9..2d39b552 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java @@ -8,6 +8,7 @@ import com.jsh.erp.datasource.vo.DepotHeadVo4StatementAccount; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; +import java.util.Date; import java.util.List; /** @@ -112,4 +113,6 @@ public interface DepotHeadMapperEx { * 获得一个全局唯一的数作为订单号的追加 * */ Long getBuildOnlyNumber(@Param("seq_name") String seq_name); + + int batchDeleteDepotHeadByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } diff --git a/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java index 50ff8cc8..35180b82 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.*; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; +import java.util.Date; import java.util.List; /** @@ -143,6 +144,14 @@ public interface DepotItemMapperEx { @Param("enableSerialNumber")String enableSerialNumber); /** * 根据单据主表id删除单据子表数据 + * 物理删除,已弃用 * */ + @Deprecated int deleteDepotItemByDepotHeadIds(@Param("depotheadIds")Long []depotHeadIds); + /** + * 根据单据主表id删除单据子表数据 + * */ + int batchDeleteDepotItemByDepotHeadIds(@Param("depotheadIds")Long []depotHeadIds); + + int batchDeleteDepotItemByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } diff --git a/src/main/java/com/jsh/erp/datasource/mappers/DepotMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/DepotMapperEx.java index 19263dc5..917dc453 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/DepotMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/DepotMapperEx.java @@ -5,6 +5,7 @@ import com.jsh.erp.datasource.entities.DepotEx; import com.jsh.erp.datasource.entities.DepotExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; import java.util.Map; @@ -23,4 +24,6 @@ public interface DepotMapperEx { @Param("remark") String remark); List getDepotList(Map params); + + int batchDeleteDepotByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/FunctionsMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/FunctionsMapperEx.java index d1fb761a..2b4b8369 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/FunctionsMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/FunctionsMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.Functions; import com.jsh.erp.datasource.entities.FunctionsExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface FunctionsMapperEx { @@ -17,4 +18,6 @@ public interface FunctionsMapperEx { Long countsByFunctions( @Param("name") String name, @Param("type") String type); + + int batchDeleteFunctionsByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/InOutItemMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/InOutItemMapperEx.java index a8d92819..903aa40a 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/InOutItemMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/InOutItemMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.InOutItem; import com.jsh.erp.datasource.entities.InOutItemExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface InOutItemMapperEx { @@ -19,4 +20,6 @@ public interface InOutItemMapperEx { @Param("name") String name, @Param("type") String type, @Param("remark") String remark); + + int batchDeleteInOutItemByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java index a68aefe2..8f022cc4 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.Material; import com.jsh.erp.datasource.entities.MaterialVo4Unit; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; import java.util.Map; @@ -54,4 +55,6 @@ public interface MaterialMapperEx { * 获取开启序列号并且状态正常的商品列表 * */ List getMaterialEnableSerialNumberList(Map parameterMap); + + int batchDeleteMaterialByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } diff --git a/src/main/java/com/jsh/erp/datasource/mappers/MaterialPropertyMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/MaterialPropertyMapperEx.java index 080b79e7..7404be52 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/MaterialPropertyMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/MaterialPropertyMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.MaterialProperty; import com.jsh.erp.datasource.entities.MaterialPropertyExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface MaterialPropertyMapperEx { @@ -14,4 +15,6 @@ public interface MaterialPropertyMapperEx { @Param("rows") Integer rows); Long countsByMaterialProperty(@Param("name") String name); + + int batchDeleteMaterialPropertyByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/PersonMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/PersonMapperEx.java index e4cb00a8..5fc0d187 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/PersonMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/PersonMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.Person; import com.jsh.erp.datasource.entities.PersonExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface PersonMapperEx { @@ -17,4 +18,6 @@ public interface PersonMapperEx { Long countsByPerson( @Param("name") String name, @Param("type") String type); + + int batchDeletePersonByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/RoleMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/RoleMapperEx.java index a3737326..969a0cd4 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/RoleMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/RoleMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.Role; import com.jsh.erp.datasource.entities.RoleExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface RoleMapperEx { @@ -15,4 +16,6 @@ public interface RoleMapperEx { Long countsByRole( @Param("name") String name); + + int batchDeleteRoleByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/SupplierMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/SupplierMapperEx.java index 1bee2015..0ccf8241 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/SupplierMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/SupplierMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.Supplier; import com.jsh.erp.datasource.entities.SupplierExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface SupplierMapperEx { @@ -30,4 +31,6 @@ public interface SupplierMapperEx { @Param("phonenum") String phonenum, @Param("telephone") String telephone, @Param("description") String description); + + int batchDeleteSupplierByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/SystemConfigMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/SystemConfigMapperEx.java index 8ad32ced..e4903cef 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/SystemConfigMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/SystemConfigMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.SystemConfig; import com.jsh.erp.datasource.entities.SystemConfigExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface SystemConfigMapperEx { @@ -15,4 +16,6 @@ public interface SystemConfigMapperEx { Long countsBySystemConfig( @Param("companyName") String companyName); + + int batchDeleteSystemConfigByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/UnitMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/UnitMapperEx.java index 045a7025..960cc3f9 100644 --- a/src/main/java/com/jsh/erp/datasource/mappers/UnitMapperEx.java +++ b/src/main/java/com/jsh/erp/datasource/mappers/UnitMapperEx.java @@ -4,6 +4,7 @@ import com.jsh.erp.datasource.entities.Unit; import com.jsh.erp.datasource.entities.UnitExample; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; public interface UnitMapperEx { @@ -15,4 +16,6 @@ public interface UnitMapperEx { Long countsByUnit( @Param("name") String name); + + int batchDeleteUnitByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); } \ No newline at end of file diff --git a/src/main/java/com/jsh/erp/datasource/mappers/UserBusinessMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/UserBusinessMapperEx.java new file mode 100644 index 00000000..8e135be7 --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/mappers/UserBusinessMapperEx.java @@ -0,0 +1,13 @@ +package com.jsh.erp.datasource.mappers; + +import org.apache.ibatis.annotations.Param; + +import java.util.Date; /** + * Description + * + * @Author: qiankunpingtai + * @Date: 2019/3/29 15:09 + */ +public interface UserBusinessMapperEx { + int batchDeleteUserBusinessByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); +} diff --git a/src/main/java/com/jsh/erp/service/account/AccountService.java b/src/main/java/com/jsh/erp/service/account/AccountService.java index ee0fa68b..cc6b800d 100644 --- a/src/main/java/com/jsh/erp/service/account/AccountService.java +++ b/src/main/java/com/jsh/erp/service/account/AccountService.java @@ -7,6 +7,7 @@ import com.jsh.erp.datasource.mappers.*; import com.jsh.erp.datasource.vo.AccountVo4InOutList; import com.jsh.erp.datasource.vo.AccountVo4List; import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import com.jsh.erp.utils.Tools; import org.slf4j.Logger; @@ -45,6 +46,8 @@ public class AccountService { private AccountItemMapper accountItemMapper; @Resource private LogService logService; + @Resource + private UserService userService; public Account getAccount(long id) { return accountMapper.selectByPrimaryKey(id); @@ -112,7 +115,8 @@ public class AccountService { public int checkIsNameExist(Long id, String name) { AccountExample example = new AccountExample(); - example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + List list = accountMapper.selectByExample(example); return list.size(); } @@ -317,5 +321,13 @@ public class AccountService { example.createCriteria().andIdEqualTo(accountId); return accountMapper.updateByExampleSelective(account, example); } - + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAccountByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_ACCOUNT, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return accountMapperEx.batchDeleteAccountByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/accountHead/AccountHeadService.java b/src/main/java/com/jsh/erp/service/accountHead/AccountHeadService.java index 4775564c..01c54ea8 100644 --- a/src/main/java/com/jsh/erp/service/accountHead/AccountHeadService.java +++ b/src/main/java/com/jsh/erp/service/accountHead/AccountHeadService.java @@ -1,22 +1,29 @@ package com.jsh.erp.service.accountHead; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.AccountHead; import com.jsh.erp.datasource.entities.AccountHeadExample; import com.jsh.erp.datasource.entities.AccountHeadVo4ListEx; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.AccountHeadMapper; import com.jsh.erp.datasource.mappers.AccountHeadMapperEx; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import com.jsh.erp.utils.Tools; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; @Service @@ -28,6 +35,10 @@ public class AccountHeadService { @Resource private AccountHeadMapperEx accountHeadMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; public AccountHead getAccountHead(long id) { return accountHeadMapper.selectByPrimaryKey(id); @@ -87,7 +98,7 @@ public class AccountHeadService { public int checkIsNameExist(Long id, String name) { AccountHeadExample example = new AccountHeadExample(); - example.createCriteria().andIdNotEqualTo(id); + example.createCriteria().andIdNotEqualTo(id).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = accountHeadMapper.selectByExample(example); return list.size(); } @@ -122,5 +133,13 @@ public class AccountHeadService { } return resList; } - + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAccountHeadByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_ACCOUNT_HEAD, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return accountHeadMapperEx.batchDeleteAccountHeadByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/accountItem/AccountItemService.java b/src/main/java/com/jsh/erp/service/accountItem/AccountItemService.java index acec5149..319d2bb7 100644 --- a/src/main/java/com/jsh/erp/service/accountItem/AccountItemService.java +++ b/src/main/java/com/jsh/erp/service/accountItem/AccountItemService.java @@ -5,10 +5,12 @@ import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.AccountItem; import com.jsh.erp.datasource.entities.AccountItemExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.AccountItemMapper; import com.jsh.erp.datasource.mappers.AccountItemMapperEx; import com.jsh.erp.datasource.vo.AccountItemVo4List; import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.ErpInfo; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; @@ -22,6 +24,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.util.Date; import java.util.List; import static com.jsh.erp.utils.ResponseJsonUtil.returnJson; @@ -37,6 +40,8 @@ public class AccountItemService { private AccountItemMapperEx accountItemMapperEx; @Resource private LogService logService; + @Resource + private UserService userService; public AccountItem getAccountItem(long id) { return accountItemMapper.selectByPrimaryKey(id); @@ -83,7 +88,7 @@ public class AccountItemService { public int checkIsNameExist(Long id, String name) { AccountItemExample example = new AccountItemExample(); - example.createCriteria().andIdNotEqualTo(id); + example.createCriteria().andIdNotEqualTo(id).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = accountItemMapper.selectByExample(example); return list.size(); } @@ -135,10 +140,16 @@ public class AccountItemService { } } if (null != deletedJson) { + StringBuffer bf=new StringBuffer(); for (int i = 0; i < deletedJson.size(); i++) { JSONObject tempDeletedJson = JSONObject.parseObject(deletedJson.getString(i)); - this.deleteAccountItem(tempDeletedJson.getLong("Id")); + bf.append(tempDeletedJson.getLong("Id")); + if(i<(deletedJson.size()-1)){ + bf.append(","); + } + } + this.batchDeleteAccountItemByIds(bf.toString()); } if (null != updatedJson) { for (int i = 0; i < updatedJson.size(); i++) { @@ -168,5 +179,13 @@ public class AccountItemService { return null; } - + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAccountItemByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_ACCOUNT_ITEM, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return accountItemMapperEx.batchDeleteAccountItemByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/app/AppService.java b/src/main/java/com/jsh/erp/service/app/AppService.java index eee6e857..e982a8b4 100644 --- a/src/main/java/com/jsh/erp/service/app/AppService.java +++ b/src/main/java/com/jsh/erp/service/app/AppService.java @@ -1,18 +1,25 @@ package com.jsh.erp.service.app; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.App; import com.jsh.erp.datasource.entities.AppExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.AppMapper; import com.jsh.erp.datasource.mappers.AppMapperEx; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; @Service @@ -23,6 +30,10 @@ public class AppService { private AppMapper appMapper; @Resource private AppMapperEx appMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; public List findDock(){ AppExample example = new AppExample(); @@ -106,4 +117,13 @@ public class AppService { List list = appMapper.selectByExample(example); return list; } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteAppByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_APP, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return appMapperEx.batchDeleteAppByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/depot/DepotService.java b/src/main/java/com/jsh/erp/service/depot/DepotService.java index e6371684..6e6a2c20 100644 --- a/src/main/java/com/jsh/erp/service/depot/DepotService.java +++ b/src/main/java/com/jsh/erp/service/depot/DepotService.java @@ -1,19 +1,26 @@ package com.jsh.erp.service.depot; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.Depot; import com.jsh.erp.datasource.entities.DepotEx; import com.jsh.erp.datasource.entities.DepotExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.DepotMapper; import com.jsh.erp.datasource.mappers.DepotMapperEx; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; import java.util.Map; @@ -26,6 +33,10 @@ public class DepotService { @Resource private DepotMapperEx depotMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; public Depot getDepot(long id) { return depotMapper.selectByPrimaryKey(id); @@ -78,7 +89,7 @@ public class DepotService { public int checkIsNameExist(Long id, String name) { DepotExample example = new DepotExample(); - example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = depotMapper.selectByExample(example); return list.size(); } @@ -102,5 +113,13 @@ public class DepotService { public List getDepotList(Map parameterMap) { return depotMapperEx.getDepotList(parameterMap); } - + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteDepotByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_DEPOT, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return depotMapperEx.batchDeleteDepotByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index 4ef8d3f0..9647466e 100644 --- a/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -141,7 +141,7 @@ public class DepotHeadService { public int checkIsNameExist(Long id, String name) { DepotHeadExample example = new DepotHeadExample(); - example.createCriteria().andIdNotEqualTo(id); + example.createCriteria().andIdNotEqualTo(id).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = depotHeadMapper.selectByExample(example); return list.size(); } @@ -366,14 +366,14 @@ public class DepotHeadService { if(depotItemList!=null&&depotItemList.size()>0){ for(DepotItem depotItem:depotItemList){ //BasicNumber=OperNumber*ratio - serialNumberService.cancelSerialNumber(depotItem.getMaterialid(), depotItem.getHeaderid(),depotItem.getBasicnumber().intValue(),userInfo); + serialNumberService.cancelSerialNumber(depotItem.getMaterialid(), depotItem.getHeaderid(),(depotItem.getBasicnumber()==null?0:depotItem.getBasicnumber()).intValue(),userInfo); } } } /**删除单据子表数据*/ - depotItemMapperEx.deleteDepotItemByDepotHeadIds(new Long []{id}); + depotItemMapperEx.batchDeleteDepotItemByDepotHeadIds(new Long []{id}); /**删除单据主表信息*/ - deleteDepotHead(id); + batchDeleteDepotHeadByIds(id.toString()); } /** * create by: cjl @@ -391,8 +391,17 @@ public class DepotHeadService { if(StringUtil.isNotEmpty(ids)){ String [] headIds=ids.split(","); for(int i=0;i list = depotItemMapper.selectByExample(example); return list.size(); } @@ -248,6 +248,7 @@ public class DepotItemService { * 更新的需要判断货源是否充足 * */ if (null != deletedJson) { + StringBuffer bf=new StringBuffer(); for (int i = 0; i < deletedJson.size(); i++) { //首先回收序列号,如果是调拨,不用处理序列号 JSONObject tempDeletedJson = JSONObject.parseObject(deletedJson.getString(i)); @@ -265,12 +266,17 @@ public class DepotItemService { continue; } if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableserialnumber())){ - serialNumberMapperEx.cancelSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),depotItem.getBasicnumber().intValue(), + serialNumberMapperEx.cancelSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),(depotItem.getBasicnumber()==null?0:depotItem.getBasicnumber()).intValue(), new Date(),userInfo==null?null:userInfo.getId()); } } this.deleteDepotItem(tempDeletedJson.getLong("Id")); + bf.append(tempDeletedJson.getLong("Id")); + if(i<(deletedJson.size()-1)){ + bf.append(","); + } } + this.batchDeleteDepotItemByIds(bf.toString()); } if (null != insertedJson) { for (int i = 0; i < insertedJson.size(); i++) { @@ -363,7 +369,7 @@ public class DepotItemService { if(material==null){ continue; } - if(getCurrentInStock(depotItem.getMaterialid()) list = functionsMapper.selectByExample(example); return list.size(); } @@ -99,4 +110,13 @@ public class FunctionsService { List list = functionsMapper.selectByExample(example); return list; } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteFunctionsByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_FUNCTIONS, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return functionsMapperEx.batchDeleteFunctionsByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/inOutItem/InOutItemService.java b/src/main/java/com/jsh/erp/service/inOutItem/InOutItemService.java index 236e74af..79468ab2 100644 --- a/src/main/java/com/jsh/erp/service/inOutItem/InOutItemService.java +++ b/src/main/java/com/jsh/erp/service/inOutItem/InOutItemService.java @@ -1,18 +1,25 @@ package com.jsh.erp.service.inOutItem; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.InOutItem; import com.jsh.erp.datasource.entities.InOutItemExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.InOutItemMapper; import com.jsh.erp.datasource.mappers.InOutItemMapperEx; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; @Service @@ -24,6 +31,10 @@ public class InOutItemService { @Resource private InOutItemMapperEx inOutItemMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; public InOutItem getInOutItem(long id) { return inOutItemMapper.selectByPrimaryKey(id); @@ -70,7 +81,7 @@ public class InOutItemService { public int checkIsNameExist(Long id, String name) { InOutItemExample example = new InOutItemExample(); - example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = inOutItemMapper.selectByExample(example); return list.size(); } @@ -85,4 +96,13 @@ public class InOutItemService { example.setOrderByClause("id desc"); return inOutItemMapper.selectByExample(example); } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteInOutItemByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_IN_OUT_ITEM, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return inOutItemMapperEx.batchDeleteInOutItemByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/material/MaterialService.java b/src/main/java/com/jsh/erp/service/material/MaterialService.java index 3f8a5dc6..6884551a 100644 --- a/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -2,13 +2,11 @@ package com.jsh.erp.service.material; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; -import com.jsh.erp.datasource.entities.DepotEx; -import com.jsh.erp.datasource.entities.Material; -import com.jsh.erp.datasource.entities.MaterialExample; -import com.jsh.erp.datasource.entities.MaterialVo4Unit; +import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.mappers.MaterialMapper; import com.jsh.erp.datasource.mappers.MaterialMapperEx; import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; @@ -20,10 +18,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Service public class MaterialService { @@ -35,6 +30,8 @@ public class MaterialService { private MaterialMapperEx materialMapperEx; @Resource private LogService logService; + @Resource + private UserService userService; public Material getMaterial(long id) { return materialMapper.selectByPrimaryKey(id); @@ -120,7 +117,7 @@ public class MaterialService { public int checkIsNameExist(Long id, String name) { MaterialExample example = new MaterialExample(); - example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = materialMapper.selectByExample(example); return list.size(); } @@ -211,4 +208,13 @@ public class MaterialService { public List getMaterialEnableSerialNumberList(Map parameterMap) { return materialMapperEx.getMaterialEnableSerialNumberList(parameterMap); } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_MATERIAL, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return materialMapperEx.batchDeleteMaterialByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/materialProperty/MaterialPropertyService.java b/src/main/java/com/jsh/erp/service/materialProperty/MaterialPropertyService.java index bb51a37b..96355e42 100644 --- a/src/main/java/com/jsh/erp/service/materialProperty/MaterialPropertyService.java +++ b/src/main/java/com/jsh/erp/service/materialProperty/MaterialPropertyService.java @@ -1,18 +1,25 @@ package com.jsh.erp.service.materialProperty; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.MaterialProperty; import com.jsh.erp.datasource.entities.MaterialPropertyExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.MaterialPropertyMapper; import com.jsh.erp.datasource.mappers.MaterialPropertyMapperEx; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; @Service @@ -24,6 +31,10 @@ public class MaterialPropertyService { @Resource private MaterialPropertyMapperEx materialPropertyMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; public MaterialProperty getMaterialProperty(long id) { return materialPropertyMapper.selectByPrimaryKey(id); @@ -70,4 +81,14 @@ public class MaterialPropertyService { public int checkIsNameExist(Long id, String name) { return 0; } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteMaterialPropertyByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_MATERIAL_PROPERTY, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return materialPropertyMapperEx.batchDeleteMaterialPropertyByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + + } } diff --git a/src/main/java/com/jsh/erp/service/orgaUserRel/OrgaUserRelService.java b/src/main/java/com/jsh/erp/service/orgaUserRel/OrgaUserRelService.java index bfc12e53..7daffcfe 100644 --- a/src/main/java/com/jsh/erp/service/orgaUserRel/OrgaUserRelService.java +++ b/src/main/java/com/jsh/erp/service/orgaUserRel/OrgaUserRelService.java @@ -5,6 +5,7 @@ import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.mappers.OrgaUserRelMapper; import com.jsh.erp.datasource.mappers.OrgaUserRelMapperEx; +import com.jsh.erp.service.log.LogService; import com.jsh.erp.service.organization.OrganizationService; import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; @@ -34,6 +35,8 @@ public class OrgaUserRelService { private OrgaUserRelMapperEx orgaUserRelMapperEx; @Resource private UserService userService; + @Resource + private LogService logService; @Transactional(value = "transactionManager", rollbackFor = Exception.class) public int insertOrgaUserRel(String beanJson, HttpServletRequest request) { OrgaUserRel orgaUserRel = JSONObject.parseObject(beanJson, OrgaUserRel.class); diff --git a/src/main/java/com/jsh/erp/service/person/PersonService.java b/src/main/java/com/jsh/erp/service/person/PersonService.java index 60401dbc..2876516e 100644 --- a/src/main/java/com/jsh/erp/service/person/PersonService.java +++ b/src/main/java/com/jsh/erp/service/person/PersonService.java @@ -1,18 +1,25 @@ package com.jsh.erp.service.person; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.Person; import com.jsh.erp.datasource.entities.PersonExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.PersonMapper; import com.jsh.erp.datasource.mappers.PersonMapperEx; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; @Service @@ -24,6 +31,10 @@ public class PersonService { @Resource private PersonMapperEx personMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; public Person getPerson(long id) { return personMapper.selectByPrimaryKey(id); @@ -70,7 +81,7 @@ public class PersonService { public int checkIsNameExist(Long id, String name) { PersonExample example = new PersonExample(); - example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name); + example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = personMapper.selectByExample(example); return list.size(); } @@ -97,6 +108,13 @@ public class PersonService { return personMapper.selectByExample(example); } - - + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeletePersonByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_PERSON, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return personMapperEx.batchDeletePersonByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/role/RoleService.java b/src/main/java/com/jsh/erp/service/role/RoleService.java index 215950fc..4c592124 100644 --- a/src/main/java/com/jsh/erp/service/role/RoleService.java +++ b/src/main/java/com/jsh/erp/service/role/RoleService.java @@ -1,6 +1,7 @@ package com.jsh.erp.service.role; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.Role; import com.jsh.erp.datasource.entities.RoleExample; import com.jsh.erp.datasource.entities.User; @@ -8,14 +9,19 @@ import com.jsh.erp.datasource.entities.UserExample; import com.jsh.erp.datasource.mappers.RoleMapper; import com.jsh.erp.datasource.mappers.RoleMapperEx; import com.jsh.erp.datasource.mappers.UserMapper; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.QueryUtils; import com.jsh.erp.utils.RegExpTools; import com.jsh.erp.utils.StringUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; import java.util.Map; @@ -26,6 +32,10 @@ public class RoleService { @Resource private RoleMapperEx roleMapperEx; + @Resource + private LogService logService; + @Resource + private UserService userService; public Role getRole(long id) { return roleMapper.selectByPrimaryKey(id); @@ -76,4 +86,22 @@ public class RoleService { List list = roleMapper.selectByExample(example); return list; } + /** + * create by: qiankunpingtai + * website:http://39.105.146.63/symphony/ + * description: + * 逻辑删除角色信息 + * create time: 2019/3/28 15:44 + * @Param: ids + * @return int + */ + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteRoleByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_SERIAL_NUMBER, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return roleMapperEx.batchDeleteRoleByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java b/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java index 12b61615..40d7df06 100644 --- a/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java +++ b/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java @@ -96,7 +96,7 @@ public class SerialNumberService { public int checkIsNameExist(Long id, String serialNumber) { SerialNumberExample example = new SerialNumberExample(); - example.createCriteria().andIdNotEqualTo(id).andSerialNumberEqualTo(serialNumber); + example.createCriteria().andIdNotEqualTo(id).andSerialNumberEqualTo(serialNumber).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = serialNumberMapper.selectByExample(example); return list.size(); } @@ -292,14 +292,14 @@ public class SerialNumberService { //查询商品下已分配的可用序列号数量 int SerialNumberSum= serialNumberMapperEx.countSerialNumberByMaterialIdAndDepotheadId(depotItem.getMaterialid(),null,BusinessConstants.IS_SELL_HOLD); //BasicNumber=OperNumber*ratio - if(depotItem.getBasicnumber().intValue()>SerialNumberSum){ + if((depotItem.getBasicnumber()==null?0:depotItem.getBasicnumber()).intValue()>SerialNumberSum){ //获取商品名称 Material material= materialMapper.selectByPrimaryKey(depotItem.getMaterialid()); throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_CODE, String.format(ExceptionConstants.MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_MSG,material==null?"":material.getName())); } //商品下序列号充足,分配序列号 - sellSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),depotItem.getBasicnumber().intValue(),userInfo); + sellSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),(depotItem.getBasicnumber()==null?0:depotItem.getBasicnumber()).intValue(),userInfo); } } diff --git a/src/main/java/com/jsh/erp/service/supplier/SupplierService.java b/src/main/java/com/jsh/erp/service/supplier/SupplierService.java index dfd1d112..3706c432 100644 --- a/src/main/java/com/jsh/erp/service/supplier/SupplierService.java +++ b/src/main/java/com/jsh/erp/service/supplier/SupplierService.java @@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.Supplier; import com.jsh.erp.datasource.entities.SupplierExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.SupplierMapper; import com.jsh.erp.datasource.mappers.SupplierMapperEx; import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.BaseResponseInfo; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; @@ -19,6 +21,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,6 +37,8 @@ public class SupplierService { private SupplierMapperEx supplierMapperEx; @Resource private LogService logService; + @Resource + private UserService userService; public Supplier getSupplier(long id) { return supplierMapper.selectByPrimaryKey(id); @@ -80,7 +85,7 @@ public class SupplierService { public int checkIsNameExist(Long id, String name) { SupplierExample example = new SupplierExample(); - example.createCriteria().andIdNotEqualTo(id).andSupplierEqualTo(name); + example.createCriteria().andIdNotEqualTo(id).andSupplierEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = supplierMapper.selectByExample(example); return list.size(); } @@ -173,4 +178,13 @@ public class SupplierService { info.data = data; return info; } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSupplierByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_SUPPLIER, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return supplierMapperEx.batchDeleteSupplierByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/systemConfig/SystemConfigService.java b/src/main/java/com/jsh/erp/service/systemConfig/SystemConfigService.java index 9b83bfb4..696d8c3b 100644 --- a/src/main/java/com/jsh/erp/service/systemConfig/SystemConfigService.java +++ b/src/main/java/com/jsh/erp/service/systemConfig/SystemConfigService.java @@ -1,18 +1,25 @@ package com.jsh.erp.service.systemConfig; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.SystemConfig; import com.jsh.erp.datasource.entities.SystemConfigExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.SystemConfigMapper; import com.jsh.erp.datasource.mappers.SystemConfigMapperEx; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; @Service @@ -24,6 +31,10 @@ public class SystemConfigService { @Resource private SystemConfigMapperEx systemConfigMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; public SystemConfig getSystemConfig(long id) { return systemConfigMapper.selectByPrimaryKey(id); @@ -69,8 +80,17 @@ public class SystemConfigService { public int checkIsNameExist(Long id, String name) { SystemConfigExample example = new SystemConfigExample(); - example.createCriteria().andIdNotEqualTo(id).andCompanyNameEqualTo(name); + example.createCriteria().andIdNotEqualTo(id).andCompanyNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = systemConfigMapper.selectByExample(example); return list.size(); } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteSystemConfigByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_SYSTEM_CONFIG, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return systemConfigMapperEx.batchDeleteSystemConfigByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/java/com/jsh/erp/service/unit/UnitService.java b/src/main/java/com/jsh/erp/service/unit/UnitService.java index 0fbc0a02..2838306a 100644 --- a/src/main/java/com/jsh/erp/service/unit/UnitService.java +++ b/src/main/java/com/jsh/erp/service/unit/UnitService.java @@ -1,18 +1,25 @@ package com.jsh.erp.service.unit; import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.datasource.entities.Unit; import com.jsh.erp.datasource.entities.UnitExample; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.mappers.UnitMapper; import com.jsh.erp.datasource.mappers.UnitMapperEx; +import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; @Service @@ -24,6 +31,10 @@ public class UnitService { @Resource private UnitMapperEx unitMapperEx; + @Resource + private UserService userService; + @Resource + private LogService logService; public Unit getUnit(long id) { return unitMapper.selectByPrimaryKey(id); @@ -70,8 +81,19 @@ public class UnitService { public int checkIsNameExist(Long id, String name) { UnitExample example = new UnitExample(); - example.createCriteria().andIdNotEqualTo(id).andUnameEqualTo(name); + example.createCriteria().andIdNotEqualTo(id).andUnameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = unitMapper.selectByExample(example); return list.size(); } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteUnitByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_UNIT, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return unitMapperEx.batchDeleteUnitByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } + + } diff --git a/src/main/java/com/jsh/erp/service/user/UserService.java b/src/main/java/com/jsh/erp/service/user/UserService.java index 7e99aa3f..beabb08c 100644 --- a/src/main/java/com/jsh/erp/service/user/UserService.java +++ b/src/main/java/com/jsh/erp/service/user/UserService.java @@ -30,10 +30,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.security.NoSuchAlgorithmException; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; @Service public class UserService { @@ -195,7 +192,10 @@ public class UserService { public int checkIsNameExist(Long id, String name) { UserExample example = new UserExample(); - example.createCriteria().andIdNotEqualTo(id).andLoginameEqualTo(name); + List userStatus=new ArrayList(); + userStatus.add(BusinessConstants.USER_STATUS_DELETE); + userStatus.add(BusinessConstants.USER_STATUS_BANNED); + example.createCriteria().andIdNotEqualTo(id).andLoginameEqualTo(name).andStatusNotIn(userStatus); List list = userMapper.selectByExample(example); return list.size(); } diff --git a/src/main/java/com/jsh/erp/service/userBusiness/UserBusinessService.java b/src/main/java/com/jsh/erp/service/userBusiness/UserBusinessService.java index e26f5df0..6cb458e5 100644 --- a/src/main/java/com/jsh/erp/service/userBusiness/UserBusinessService.java +++ b/src/main/java/com/jsh/erp/service/userBusiness/UserBusinessService.java @@ -2,10 +2,13 @@ package com.jsh.erp.service.userBusiness; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; +import com.jsh.erp.datasource.entities.User; import com.jsh.erp.datasource.entities.UserBusiness; import com.jsh.erp.datasource.entities.UserBusinessExample; import com.jsh.erp.datasource.mappers.UserBusinessMapper; +import com.jsh.erp.datasource.mappers.UserBusinessMapperEx; import com.jsh.erp.service.log.LogService; +import com.jsh.erp.service.user.UserService; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,6 +19,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; import java.util.List; @Service @@ -25,7 +29,11 @@ public class UserBusinessService { @Resource private UserBusinessMapper userBusinessMapper; @Resource + private UserBusinessMapperEx userBusinessMapperEx; + @Resource private LogService logService; + @Resource + private UserService userService; public UserBusiness getUserBusiness(long id) { return userBusinessMapper.selectByPrimaryKey(id); @@ -126,5 +134,13 @@ public class UserBusinessService { List list = userBusinessMapper.selectByExample(example); return list; } - + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteUserBusinessByIds(String ids) { + logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_USER_BUSINESS, + new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_DELETE).append(ids).toString(), + ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + return userBusinessMapperEx.batchDeleteUserBusinessByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } } diff --git a/src/main/resources/mapper_xml/AccountHeadMapperEx.xml b/src/main/resources/mapper_xml/AccountHeadMapperEx.xml index 6d386574..e2424d3f 100644 --- a/src/main/resources/mapper_xml/AccountHeadMapperEx.xml +++ b/src/main/resources/mapper_xml/AccountHeadMapperEx.xml @@ -11,9 +11,9 @@ + + update jsh_accounthead + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/AccountItemMapperEx.xml b/src/main/resources/mapper_xml/AccountItemMapperEx.xml index 857c92d0..9e1e49c4 100644 --- a/src/main/resources/mapper_xml/AccountItemMapperEx.xml +++ b/src/main/resources/mapper_xml/AccountItemMapperEx.xml @@ -20,6 +20,7 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -38,13 +39,25 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' + + update jsh_accountitem + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/AccountMapperEx.xml b/src/main/resources/mapper_xml/AccountMapperEx.xml index 32aae43b..d2ed1259 100644 --- a/src/main/resources/mapper_xml/AccountMapperEx.xml +++ b/src/main/resources/mapper_xml/AccountMapperEx.xml @@ -28,6 +28,7 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -47,64 +48,66 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' + + update jsh_account + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/AppMapperEx.xml b/src/main/resources/mapper_xml/AppMapperEx.xml index e05a0c20..8422d73c 100644 --- a/src/main/resources/mapper_xml/AppMapperEx.xml +++ b/src/main/resources/mapper_xml/AppMapperEx.xml @@ -11,6 +11,7 @@ and type='${type}' + and ifnull(delete_Flag,'0') !='1' order by sort asc limit #{offset},#{rows} @@ -27,5 +28,16 @@ and type='${type}' + and ifnull(delete_Flag,'0') !='1' + + update jsh_app + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/DepotHeadMapperEx.xml b/src/main/resources/mapper_xml/DepotHeadMapperEx.xml index 97a73ee9..261374a2 100644 --- a/src/main/resources/mapper_xml/DepotHeadMapperEx.xml +++ b/src/main/resources/mapper_xml/DepotHeadMapperEx.xml @@ -44,11 +44,11 @@ select count(1) - from jsh_depothead dh inner join jsh_depotitem di on di.HeaderId=dh.id - inner join jsh_material m on m.id=di.MaterialId - inner join jsh_supplier s on s.id=dh.OrganId - inner join (select id,name as dName from jsh_depot) d on d.id=di.DepotId + from jsh_depothead dh + inner join jsh_depotitem di on di.HeaderId=dh.id and ifnull(di.delete_Flag,'0') !='1' + inner join jsh_material m on m.id=di.MaterialId and ifnull(m.delete_Flag,'0') !='1' + inner join jsh_supplier s on s.id=dh.OrganId and ifnull(s.delete_Flag,'0') !='1' + inner join (select id,name as dName,delete_Flag from jsh_depot) d on d.id=di.DepotId and ifnull(d.delete_Flag,'0') !='1' where dh.OperTime >='${beginTime}' and dh.OperTime <='${endTime}' and dh.OrganId = ${oId} @@ -152,14 +160,16 @@ and dh.Type='${type}' + and ifnull(dh.delete_Flag,'0') !='1' ORDER BY OperTime DESC,Number desc select count(1) from - (select di.MaterialId, m.mName,m.Model,m.categoryName from jsh_depothead dh INNER JOIN jsh_depotitem di on dh.id=di.HeaderId + (select di.MaterialId, m.mName,m.Model,m.categoryName from jsh_depothead dh + INNER JOIN jsh_depotitem di on dh.id=di.HeaderId and ifnull(di.delete_Flag,'0') !='1' INNER JOIN (SELECT jsh_material.id,jsh_material.name mName, Model,jsh_materialcategory.`Name` categoryName - from jsh_material INNER JOIN jsh_materialcategory on jsh_material.CategoryId=jsh_materialcategory.Id) m - on m.Id=di.MaterialId where dh.type='${type}' and dh.OperTime >='${beginTime}' and dh.OperTime <='${endTime}' + from jsh_material + INNER JOIN jsh_materialcategory on jsh_material.CategoryId=jsh_materialcategory.Id and ifnull(jsh_materialcategory.status,'0') !='2' + where ifnull(jsh_material.delete_Flag,'0') !='1' + ) m on m.Id=di.MaterialId where dh.type='${type}' and dh.OperTime >='${beginTime}' and dh.OperTime <='${endTime}' and dh.OrganId = ${oId} @@ -219,25 +240,30 @@ and di.DepotId in (${dids}) + and ifnull(dh.delete_Flag,'0') !='1' GROUP BY di.MaterialId,m.mName,m.Model,m.categoryName) a + + update jsh_depothead + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/src/main/resources/mapper_xml/DepotItemMapperEx.xml index 0cf8f0b2..0341d2a2 100644 --- a/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -55,6 +55,7 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -73,39 +74,52 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' select count(1) from (select m.id from jsh_depotitem di - inner join jsh_material m on di.MaterialId=m.id + inner join jsh_material m on di.MaterialId=m.id and ifnull(m.delete_Flag,'0') !='1' where 1=1 and di.HeaderId in (${headIds}) @@ -167,112 +192,150 @@ and di.MaterialId in (${materialIds}) + and ifnull(di.delete_Flag,'0') !='1' group by m.id) cc delete from jsh_depotitem @@ -302,6 +367,27 @@ ) + + update jsh_depotitem + set delete_Flag='1' + where 1=1 + and HeaderId in + ( + + #{depotheadId} + + ) + + + update jsh_depotitem + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + diff --git a/src/main/resources/mapper_xml/DepotMapperEx.xml b/src/main/resources/mapper_xml/DepotMapperEx.xml index 66c77665..5ce8de63 100644 --- a/src/main/resources/mapper_xml/DepotMapperEx.xml +++ b/src/main/resources/mapper_xml/DepotMapperEx.xml @@ -18,6 +18,7 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' order by sort asc limit #{offset},#{rows} @@ -37,6 +38,7 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' + + update jsh_depot + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + diff --git a/src/main/resources/mapper_xml/FunctionsMapperEx.xml b/src/main/resources/mapper_xml/FunctionsMapperEx.xml index 8ccff97d..e3ed78f1 100644 --- a/src/main/resources/mapper_xml/FunctionsMapperEx.xml +++ b/src/main/resources/mapper_xml/FunctionsMapperEx.xml @@ -11,6 +11,7 @@ and type='${type}' + and ifnull(delete_Flag,'0') !='1' order by sort asc limit #{offset},#{rows} @@ -27,5 +28,16 @@ and type='${type}' + and ifnull(delete_Flag,'0') !='1' + + update jsh_functions + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/InOutItemMapperEx.xml b/src/main/resources/mapper_xml/InOutItemMapperEx.xml index 997c3807..c3dc04a4 100644 --- a/src/main/resources/mapper_xml/InOutItemMapperEx.xml +++ b/src/main/resources/mapper_xml/InOutItemMapperEx.xml @@ -14,6 +14,7 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -32,5 +33,16 @@ and remark like '%${remark}%' + and ifnull(delete_Flag,'0') !='1' + + update jsh_inoutitem + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/MaterialMapperEx.xml b/src/main/resources/mapper_xml/MaterialMapperEx.xml index 1e07a6fc..c115e2f5 100644 --- a/src/main/resources/mapper_xml/MaterialMapperEx.xml +++ b/src/main/resources/mapper_xml/MaterialMapperEx.xml @@ -13,8 +13,8 @@ @@ -81,8 +93,8 @@ + + update jsh_material + set delete_Flag='1' + where 1=1 + and ifnull(delete_Flag,'0') !='1' + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/MaterialPropertyMapperEx.xml b/src/main/resources/mapper_xml/MaterialPropertyMapperEx.xml index 8728e018..eb5f8a81 100644 --- a/src/main/resources/mapper_xml/MaterialPropertyMapperEx.xml +++ b/src/main/resources/mapper_xml/MaterialPropertyMapperEx.xml @@ -8,6 +8,7 @@ and nativeName like '%${name}%' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -20,5 +21,16 @@ and nativeName like '%${name}%' + and ifnull(delete_Flag,'0') !='1' + + update jsh_materialproperty + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/PersonMapperEx.xml b/src/main/resources/mapper_xml/PersonMapperEx.xml index aef0f3f1..39d8b013 100644 --- a/src/main/resources/mapper_xml/PersonMapperEx.xml +++ b/src/main/resources/mapper_xml/PersonMapperEx.xml @@ -11,6 +11,7 @@ and type='${type}' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -26,5 +27,16 @@ and type='${type}' + and ifnull(delete_Flag,'0') !='1' + + update jsh_person + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/RoleMapperEx.xml b/src/main/resources/mapper_xml/RoleMapperEx.xml index 2f630000..b7485492 100644 --- a/src/main/resources/mapper_xml/RoleMapperEx.xml +++ b/src/main/resources/mapper_xml/RoleMapperEx.xml @@ -5,6 +5,7 @@ SELECT * FROM jsh_role WHERE 1=1 + and ifnull(delete_Flag,'0') !='1' and name like '%${name}%' @@ -17,8 +18,19 @@ COUNT(id) FROM jsh_role WHERE 1=1 + and ifnull(delete_Flag,'0') !='1' and name like '%${name}%' + + update jsh_role + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/SerialNumberMapperEx.xml b/src/main/resources/mapper_xml/SerialNumberMapperEx.xml index acb1e855..2a4a0c4c 100644 --- a/src/main/resources/mapper_xml/SerialNumberMapperEx.xml +++ b/src/main/resources/mapper_xml/SerialNumberMapperEx.xml @@ -15,8 +15,8 @@ ser.update_Time,mat.name as materialName,null as creator,null as updater,null as creatorName, null as updaterName,ser.depothead_Id, dh.number as depotHeadNumber,concat(dh.SubType,dh.Type) as depotHeadType FROM jsh_serial_number ser - left join jsh_material mat on mat.id = ser.material_Id - left join jsh_depothead dh on dh.id= ser.depothead_Id + left join jsh_material mat on mat.id = ser.material_Id and ifnull(mat.delete_Flag,'0') !='1' + left join jsh_depothead dh on dh.id= ser.depothead_Id and ifnull(dh.delete_Flag,'0') !='1' where 1=1 @@ -36,7 +36,7 @@ SELECT COUNT(ser.id) FROM jsh_serial_number ser - left JOIN jsh_material mat on mat.id = ser.material_Id + left JOIN jsh_material mat on mat.id = ser.material_Id and ifnull(mat.delete_Flag,'0') !='1' where 1=1 @@ -55,7 +55,7 @@ ser.update_Time,ser.creator,ser.updater,mat.name as materialName,cr.username as creatorName, ur.username as updaterName,ser.depothead_Id FROM jsh_serial_number ser - left JOIN jsh_material mat on mat.id = ser.material_Id + left JOIN jsh_material mat on mat.id = ser.material_Id and ifnull(mat.delete_Flag,'0') !='1' left join jsh_user cr on ser.creator=cr.id and ifnull(cr.status,'0') not in('1','2') left join jsh_user ur on ser.updater=ur.id and ifnull(ur.status,'0') not in('1','2') where 1=1 @@ -231,7 +231,6 @@ update jsh_serial_number set update_Time=#{updateTime},updater=#{updater},delete_Flag='1' where 1=1 - and ifnull(delete_Flag,'0') !='1' and id in ( #{id} diff --git a/src/main/resources/mapper_xml/SupplierMapperEx.xml b/src/main/resources/mapper_xml/SupplierMapperEx.xml index 29422b6c..868df611 100644 --- a/src/main/resources/mapper_xml/SupplierMapperEx.xml +++ b/src/main/resources/mapper_xml/SupplierMapperEx.xml @@ -20,6 +20,7 @@ and description like '%${description}%' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -44,6 +45,7 @@ and description like '%${description}%' + and ifnull(delete_Flag,'0') !='1' + + update jsh_supplier + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/SystemConfigMapperEx.xml b/src/main/resources/mapper_xml/SystemConfigMapperEx.xml index abac0f87..b0867a48 100644 --- a/src/main/resources/mapper_xml/SystemConfigMapperEx.xml +++ b/src/main/resources/mapper_xml/SystemConfigMapperEx.xml @@ -8,6 +8,7 @@ and company_name like '%${companyName}%' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -20,5 +21,16 @@ and company_name like '%${companyName}%' + and ifnull(delete_Flag,'0') !='1' + + update jsh_systemconfig + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/UnitMapperEx.xml b/src/main/resources/mapper_xml/UnitMapperEx.xml index 66e4b978..f02e0a86 100644 --- a/src/main/resources/mapper_xml/UnitMapperEx.xml +++ b/src/main/resources/mapper_xml/UnitMapperEx.xml @@ -8,6 +8,7 @@ and UName like '%${name}%' + and ifnull(delete_Flag,'0') !='1' limit #{offset},#{rows} @@ -20,5 +21,16 @@ and UName like '%${name}%' + and ifnull(delete_Flag,'0') !='1' + + update jsh_unit + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + \ No newline at end of file diff --git a/src/main/resources/mapper_xml/UserBusinessMapperEx.xml b/src/main/resources/mapper_xml/UserBusinessMapperEx.xml new file mode 100644 index 00000000..74f73c09 --- /dev/null +++ b/src/main/resources/mapper_xml/UserBusinessMapperEx.xml @@ -0,0 +1,15 @@ + + + + + update jsh_serial_number + set delete_Flag='1' + where 1=1 + and id in ( + + #{id} + + ) + + + \ No newline at end of file