From 8e6071330e9f772586d384542f302732d4bc8f9b Mon Sep 17 00:00:00 2001 From: zhouhaibin Date: Wed, 10 Jul 2024 09:43:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=A0=E4=BB=B7=E7=AE=A1=E7=90=86=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 21 +- ruoyi-admin/pom.xml | 4 + .../guoyan-common-elasticsearch/pom.xml | 32 ++ .../config/ElasticSearchConfig.java | 209 ++++++++++++ .../entity/SupplierProductsDTO.java | 147 +++++++++ ruoyi-common/pom.xml | 1 + ruoyi-common/ruoyi-common-bom/pom.xml | 7 +- .../common/excel/utils/EasyExcelUtils.java | 231 +++++++++++++ .../excel/utils/ExcelColumnMergeHandler.java | 108 ++++++ .../excel/utils/ExcelRowMergeHandler.java | 87 +++++ zaojiaManagement/pom.xml | 22 ++ .../zaojia-productManagement/pom.xml | 81 +++++ .../CmgCostItemDetailController.java | 122 +++++++ .../controller/CmgCostTableController.java | 148 +++++++++ .../PmgCompanyProductModelController.java | 140 ++++++++ ...gCompanyProductModelDetailsController.java | 105 ++++++ .../PmgCompanyProductsController.java | 105 ++++++ .../PmgPersonProductModelController.java | 141 ++++++++ ...mgPersonProductModelDetailsController.java | 105 ++++++ .../PmgPersonProductsController.java | 105 ++++++ .../PmgSupplierInformationController.java | 105 ++++++ .../PmgSupplierProductModelController.java | 140 ++++++++ ...SupplierProductModelDetailsController.java | 105 ++++++ .../PmgSupplierProductsController.java | 107 ++++++ .../domain/CmgCostItemDetail.java | 108 ++++++ .../domain/CmgCostTable.java | 61 ++++ .../domain/PmgCompanyProductModel.java | 58 ++++ .../domain/PmgCompanyProductModelDetails.java | 68 ++++ .../domain/PmgCompanyProducts.java | 118 +++++++ .../domain/PmgPersonProductModel.java | 58 ++++ .../domain/PmgPersonProductModelDetails.java | 68 ++++ .../domain/PmgPersonProducts.java | 119 +++++++ .../domain/PmgSupplierInformation.java | 68 ++++ .../domain/PmgSupplierProductModel.java | 58 ++++ .../PmgSupplierProductModelDetails.java | 68 ++++ .../domain/PmgSupplierProducts.java | 119 +++++++ .../domain/bo/CmgCostItemDetailBo.java | 97 ++++++ .../domain/bo/CmgCostTableBo.java | 51 +++ .../domain/bo/PmgCompanyProductModelBo.java | 46 +++ .../bo/PmgCompanyProductModelDetailsBo.java | 58 ++++ .../domain/bo/PmgCompanyProductsBo.java | 109 ++++++ .../domain/bo/PmgPersonProductModelBo.java | 46 +++ .../bo/PmgPersonProductModelDetailsBo.java | 58 ++++ .../domain/bo/PmgPersonProductsBo.java | 108 ++++++ .../domain/bo/PmgSupplierInformationBo.java | 59 ++++ .../domain/bo/PmgSupplierProductModelBo.java | 46 +++ .../bo/PmgSupplierProductModelDetailsBo.java | 58 ++++ .../domain/bo/PmgSupplierProductsBo.java | 101 ++++++ .../domain/bo/ProductModelViewBo.java | 52 +++ .../domain/bo/ProductsBo.java | 89 +++++ .../domain/vo/CmgCostItemDetailVo.java | 117 +++++++ .../domain/vo/CmgCostTableVo.java | 59 ++++ .../domain/vo/CostDetailViewVo.java | 21 ++ .../vo/PmgCompanyProductModelDetailsVo.java | 68 ++++ .../domain/vo/PmgCompanyProductModelVo.java | 56 ++++ .../domain/vo/PmgCompanyProductsVo.java | 124 +++++++ .../vo/PmgPersonProductModelDetailsVo.java | 68 ++++ .../domain/vo/PmgPersonProductModelVo.java | 56 ++++ .../domain/vo/PmgPersonProductsVo.java | 129 ++++++++ .../domain/vo/PmgSupplierInformationVo.java | 69 ++++ .../vo/PmgSupplierProductModelDetailsVo.java | 68 ++++ .../domain/vo/PmgSupplierProductModelVo.java | 56 ++++ .../domain/vo/PmgSupplierProductsVo.java | 119 +++++++ .../domain/vo/ProductsVo.java | 93 ++++++ .../mapper/CmgCostItemDetailMapper.java | 25 ++ .../mapper/CmgCostTableMapper.java | 15 + .../PmgCompanyProductModelDetailsMapper.java | 15 + .../mapper/PmgCompanyProductModelMapper.java | 15 + .../mapper/PmgCompanyProductsMapper.java | 15 + .../PmgPersonProductModelDetailsMapper.java | 15 + .../mapper/PmgPersonProductModelMapper.java | 15 + .../mapper/PmgPersonProductsMapper.java | 15 + .../mapper/PmgSupplierInformationMapper.java | 15 + .../PmgSupplierProductModelDetailsMapper.java | 15 + .../mapper/PmgSupplierProductModelMapper.java | 15 + .../mapper/PmgSupplierProductsMapper.java | 15 + .../service/ICmgCostItemDetailService.java | 79 +++++ .../service/ICmgCostTableService.java | 79 +++++ ...IPmgCompanyProductModelDetailsService.java | 68 ++++ .../IPmgCompanyProductModelService.java | 91 +++++ .../service/IPmgCompanyProductsService.java | 68 ++++ .../IPmgPersonProductModelDetailsService.java | 68 ++++ .../IPmgPersonProductModelService.java | 92 ++++++ .../service/IPmgPersonProductsService.java | 68 ++++ .../IPmgSupplierInformationService.java | 68 ++++ ...PmgSupplierProductModelDetailsService.java | 68 ++++ .../IPmgSupplierProductModelService.java | 91 +++++ .../service/IPmgSupplierProductsService.java | 68 ++++ .../impl/CmgCostItemDetailServiceImpl.java | 211 ++++++++++++ .../service/impl/CmgCostTableServiceImpl.java | 310 ++++++++++++++++++ ...CompanyProductModelDetailsServiceImpl.java | 133 ++++++++ .../PmgCompanyProductModelServiceImpl.java | 196 +++++++++++ .../impl/PmgCompanyProductsServiceImpl.java | 170 ++++++++++ ...gPersonProductModelDetailsServiceImpl.java | 133 ++++++++ .../PmgPersonProductModelServiceImpl.java | 197 +++++++++++ .../impl/PmgPersonProductsServiceImpl.java | 171 ++++++++++ .../PmgSupplierInformationServiceImpl.java | 133 ++++++++ ...upplierProductModelDetailsServiceImpl.java | 133 ++++++++ .../PmgSupplierProductModelServiceImpl.java | 196 +++++++++++ .../impl/PmgSupplierProductsServiceImpl.java | 241 ++++++++++++++ .../CmgCostItemDetailMapper.xml | 91 +++++ .../productManagement/CmgCostTableMapper.xml | 7 + .../PmgCompanyProductModelDetailsMapper.xml | 7 + .../PmgCompanyProductModelMapper.xml | 7 + .../PmgCompanyProductsMapper.xml | 7 + .../PmgPersonProductModelDetailsMapper.xml | 7 + .../PmgPersonProductModelMapper.xml | 7 + .../PmgPersonProductsMapper.xml | 7 + .../PmgSupplierInformationMapper.xml | 7 + .../PmgSupplierProductModelDetailsMapper.xml | 7 + .../PmgSupplierProductModelMapper.xml | 7 + .../PmgSupplierProductsMapper.xml | 7 + 112 files changed, 8917 insertions(+), 3 deletions(-) create mode 100644 ruoyi-common/guoyan-common-elasticsearch/pom.xml create mode 100644 ruoyi-common/guoyan-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/config/ElasticSearchConfig.java create mode 100644 ruoyi-common/guoyan-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/entity/SupplierProductsDTO.java create mode 100644 ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/EasyExcelUtils.java create mode 100644 ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelColumnMergeHandler.java create mode 100644 ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelRowMergeHandler.java create mode 100644 zaojiaManagement/pom.xml create mode 100644 zaojiaManagement/zaojia-productManagement/pom.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/CmgCostItemDetailController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/CmgCostTableController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductModelController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductModelDetailsController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductsController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductModelController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductModelDetailsController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductsController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierInformationController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductModelController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductModelDetailsController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductsController.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/CmgCostItemDetail.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/CmgCostTable.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProductModel.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProductModelDetails.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProducts.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProductModel.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProductModelDetails.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProducts.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierInformation.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProductModel.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProductModelDetails.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProducts.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/CmgCostItemDetailBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/CmgCostTableBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductModelBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductModelDetailsBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductsBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductModelBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductModelDetailsBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductsBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierInformationBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductModelBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductModelDetailsBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductsBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ProductModelViewBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ProductsBo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CmgCostItemDetailVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CmgCostTableVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CostDetailViewVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductModelDetailsVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductModelVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductsVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductModelDetailsVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductModelVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductsVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierInformationVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductModelDetailsVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductModelVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductsVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ProductsVo.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/CmgCostItemDetailMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/CmgCostTableMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductModelDetailsMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductModelMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductsMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductModelDetailsMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductModelMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductsMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierInformationMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductModelDetailsMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductModelMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductsMapper.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ICmgCostItemDetailService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ICmgCostTableService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductModelDetailsService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductModelService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductsService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductModelDetailsService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductModelService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductsService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierInformationService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductModelDetailsService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductModelService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductsService.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/CmgCostItemDetailServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/CmgCostTableServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductModelDetailsServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductModelServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductsServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductModelDetailsServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductModelServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductsServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierInformationServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductModelDetailsServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductModelServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductsServiceImpl.java create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/CmgCostItemDetailMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/CmgCostTableMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductModelDetailsMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductModelMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductsMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductModelDetailsMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductModelMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductsMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierInformationMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductModelDetailsMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductModelMapper.xml create mode 100644 zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductsMapper.xml diff --git a/pom.xml b/pom.xml index 900b61b..227fb74 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,8 @@ 1.2.83 7.0.0 + + 7.10.2 3.2.2 @@ -338,7 +340,16 @@ fastjson ${fastjson.version} - + + org.elasticsearch + elasticsearch + ${elasticsearch.version} + + + org.elasticsearch.client + elasticsearch-rest-high-level-client + ${elasticsearch.version} + org.dromara ruoyi-system @@ -369,7 +380,12 @@ ruoyi-workflow ${revision} - + + + org.dromara + zaojia-productManagement + ${revision} + @@ -378,6 +394,7 @@ ruoyi-common ruoyi-extend ruoyi-modules + zaojiaManagement pom diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 610e9d7..4b9702f 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -97,6 +97,10 @@ test + + org.dromara + zaojia-productManagement + diff --git a/ruoyi-common/guoyan-common-elasticsearch/pom.xml b/ruoyi-common/guoyan-common-elasticsearch/pom.xml new file mode 100644 index 0000000..c530c80 --- /dev/null +++ b/ruoyi-common/guoyan-common-elasticsearch/pom.xml @@ -0,0 +1,32 @@ + + + + + org.dromara + ruoyi-common + ${revision} + + 4.0.0 + + guoyan-common-elasticsearch + + guoyan-common-elasticsearch elasticsearch模块 + + + + org.elasticsearch + elasticsearch + + + org.elasticsearch.client + elasticsearch-rest-high-level-client + + + + org.dromara + ruoyi-common-json + + + diff --git a/ruoyi-common/guoyan-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/config/ElasticSearchConfig.java b/ruoyi-common/guoyan-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/config/ElasticSearchConfig.java new file mode 100644 index 0000000..9d46dc4 --- /dev/null +++ b/ruoyi-common/guoyan-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/config/ElasticSearchConfig.java @@ -0,0 +1,209 @@ +package org.dromara.common.elasticsearch.config; + +import org.apache.http.HttpHost; +import org.apache.http.auth.AuthScope; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.CredentialsProvider; +import org.apache.http.impl.client.BasicCredentialsProvider; +import org.elasticsearch.client.RestClient; +import org.elasticsearch.client.RestClientBuilder; +import org.elasticsearch.client.RestHighLevelClient; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * ElasticSearch 配置 + * + * @author wqliu + * @date 2024-02-21 + */ +@Configuration + +public class ElasticSearchConfig { + @Value("${elasticsearch.uris}") + private String hosts; + + @Value("${elasticsearch.username}") + private String userName; + + @Value("${elasticsearch.password}") + private String password; + + /** + * es 请求方式 + */ + @Value("${elasticsearch.scheme}") + private String scheme; + /** + * es 连接超时时间 + */ + @Value("${elasticsearch.connectTimeOut}") + + private int connectTimeOut; + /** + * es socket 连接超时时间 + */ + @Value("${elasticsearch.socketTimeOut}") + + private int socketTimeOut; + /** + * es 请求超时时间 + */ + @Value("${elasticsearch.connectionRequestTimeOut}") + private int connectionRequestTimeOut; + /** + * es 最大连接数 + */ + @Value("${elasticsearch.maxConnectNum}") + private int maxConnectNum; + /** + * es 每个路由的最大连接数 + */ + @Value("${elasticsearch.maxConnectNumPerRoute}") + private int maxConnectNumPerRoute; + + + /** + * 如果@Bean没有指定bean的名称,那么方法名就是bean的名称 + */ + @Bean + public RestHighLevelClient restHighLevelClient() { + // 构建连接对象 + RestClientBuilder builder = RestClient.builder(getEsHost()); + + // 连接延时配置 + builder.setRequestConfigCallback(requestConfigBuilder -> { + requestConfigBuilder.setConnectTimeout(connectTimeOut); + requestConfigBuilder.setSocketTimeout(socketTimeOut); + requestConfigBuilder.setConnectionRequestTimeout(connectionRequestTimeOut); + return requestConfigBuilder; + }); + + // 连接数配置 + builder.setHttpClientConfigCallback(httpClientBuilder -> { + httpClientBuilder.setMaxConnTotal(maxConnectNum); + httpClientBuilder.setMaxConnPerRoute(maxConnectNumPerRoute); + httpClientBuilder.setDefaultCredentialsProvider(getCredentialsProvider()); + + return httpClientBuilder; + }); + return new RestHighLevelClient(builder); + } + + private HttpHost[] getEsHost() { + // 拆分地址(es为多节点时,不同host以逗号间隔) + List hostLists = new ArrayList<>(); + String[] hostList = hosts.split(","); + for (String addr : hostList) { + String host = addr.split(":")[0]; + String port = addr.split(":")[1]; + hostLists.add(new HttpHost(host, Integer.parseInt(port), scheme)); + } + // 转换成 HttpHost 数组 + return hostLists.toArray(new HttpHost[]{}); + } + + private CredentialsProvider getCredentialsProvider() { + // 设置用户名、密码 + CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); + credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); + return credentialsProvider; + } + + /** + * 同步方式 + * + * @return + */ +// @Bean +// public ElasticsearchClient elasticsearchClient() throws Exception { +//// HttpHost[] httpHosts = toHttpHost(); +// final CredentialsProvider credentialsProvider = +// new BasicCredentialsProvider(); +// credentialsProvider.setCredentials(AuthScope.ANY, +// new UsernamePasswordCredentials(userName, passWord)); +// +// ClassPathResource resource = new ClassPathResource("http_ca.crt"); +// CertificateFactory factory = +// CertificateFactory.getInstance("X.509"); +// Certificate trustedCa; +// try (InputStream is = resource.getInputStream()) { +// trustedCa = factory.generateCertificate(is); +// } +// KeyStore trustStore = KeyStore.getInstance("pkcs12"); +// trustStore.load(null, null); +// trustStore.setCertificateEntry("ca", trustedCa); +// SSLContextBuilder sslContextBuilder = SSLContexts.custom() +// .loadTrustMaterial(trustStore, null); +// final SSLContext sslContext = sslContextBuilder.build(); +// +// RestClientBuilder builder = RestClient.builder( +// new HttpHost("localhost", 9200, "https")) +// .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() { +// @Override +// public HttpAsyncClientBuilder customizeHttpClient( +// HttpAsyncClientBuilder httpClientBuilder) { +// return httpClientBuilder.setSSLContext(sslContext) +// .setDefaultCredentialsProvider(credentialsProvider); +// } +// }); +// +// RestClient restClient = builder.build(); +// +// // Create the transport with a Jackson mapper +// ElasticsearchTransport transport = new RestClientTransport( +// restClient, new JacksonJsonpMapper()); +// +// return new ElasticsearchClient(transport); +//// asyncClient = new ElasticsearchAsyncClient(transport); +// +// } + +// /** +// * 解析配置的字符串hosts,转为HttpHost对象数组 +// * +// * @return +// */ +// private HttpHost[] toHttpHost() { +// if (!StringUtils.hasLength(hosts)) { +// throw new RuntimeException("invalid elasticsearch configuration. elasticsearch.hosts不能为空!"); +// } +// // 多个IP逗号隔开 +// String[] hostArray = hosts.split(","); +// HttpHost[] httpHosts = new HttpHost[hostArray.length]; +// HttpHost httpHost; +// for (int i = 0; i < hostArray.length; i++) { +// String[] strings = hostArray[i].split(":"); +// httpHost = new HttpHost(strings[0], Integer.parseInt(strings[1]), "https"); +// httpHosts[i] = httpHost; +// } +// return httpHosts; +// } + +// @Bean +// ElasticsearchConverter elasticsearchConverter(SimpleElasticsearchMappingContext mappingContext) { +// DefaultConversionService defaultConversionService = new DefaultConversionService(); +// defaultConversionService.addConverter(LongToLocalDateTimeConverter.INSTANCE); +// return new MappingElasticsearchConverter(mappingContext, defaultConversionService); +// } +// +// @ReadingConverter +// static enum LongToLocalDateTimeConverter implements Converter { +// /** +// * 单例模式 +// */ +// INSTANCE; +// +// private LongToLocalDateTimeConverter() { +// } +// +// @Override +// public LocalDateTime convert(Long source) { +// return Instant.ofEpochMilli(source).atZone(ZoneId.systemDefault()).toLocalDateTime(); +// } +// } +} diff --git a/ruoyi-common/guoyan-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/entity/SupplierProductsDTO.java b/ruoyi-common/guoyan-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/entity/SupplierProductsDTO.java new file mode 100644 index 0000000..79c391e --- /dev/null +++ b/ruoyi-common/guoyan-common-elasticsearch/src/main/java/org/dromara/common/elasticsearch/entity/SupplierProductsDTO.java @@ -0,0 +1,147 @@ +package org.dromara.common.elasticsearch.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 实体类 + * + * @author ZHB + * @date 2024-05-08 + * + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class SupplierProductsDTO { + + /** + * 供应商id + */ + @JsonProperty(value ="supplier_information_id") + private String supplierInformationId; + + /** + * 厂商产品型号id + */ + @JsonProperty(value ="model_id") + private String modelId; + + /** + * 个人产品规格 + */ + @JsonProperty(value ="product_specifications") + private String productSpecifications; + + /** + * 产品名称 + */ + @JsonProperty(value ="product_name") + private String productName; + + /** + * 产品标识(型号) + */ + @JsonProperty(value ="product_identity") + private String productIdentity; + + /** + * 产品价格 + */ + @JsonProperty(value ="product_price") + private BigDecimal productPrice; + + /** + * 信息来源 + */ + @JsonProperty(value ="source_information") + private String sourceInformation; + + /** + * 备注 + */ + @JsonProperty(value ="remarks") + private String remarks; + /** + * 产品图片 + */ + @JsonProperty(value ="image") + private String image; + + /** + * 产品品牌 + */ + @JsonProperty(value ="brand") + private String brand; + + /** + * 产品单位*/ + @JsonProperty(value ="unit") + private String unit; + + /** + * 除税价格 + */ + @JsonProperty(value ="ex_tax_price") + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + @JsonProperty(value ="taxrate") + private BigDecimal taxrate; + /** + * 分类id + */ + @JsonProperty(value ="category_id") + private String categoryId; + + /** + * 逻辑删除 + */ + @JsonProperty(value ="delete_flag") + protected String deleteFlag; + /** + * 创建人标识 + */ + + @JsonProperty(value ="create_id") + private String createId; + + /** + * 创建时间 + */ +// @JsonProperty(value ="create_time") +// @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8") +// @DateTimeFormat(pattern = "yyyy-MM-dd") +// private Date createTime; + + /** + * 更新人标识 + */ + + @JsonProperty(value ="update_id") + private String updateId; + + /** + * 更新时间 + */ +// @JsonProperty(value ="update_time") +// @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8") +// @DateTimeFormat(pattern = "yyyy-MM-dd") +// private Date updateTime; + + /** + * 版本 + */ + + @JsonProperty(value ="version") + private Integer version; + /********非库表存储属性*****/ +} diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 45493d3..facbb36 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -33,6 +33,7 @@ ruoyi-common-encrypt ruoyi-common-tenant ruoyi-common-websocket + guoyan-common-elasticsearch ruoyi-common diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index d546275..cb0bf07 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -171,7 +171,12 @@ ruoyi-common-websocket ${revision} - + + + org.dromara + guoyan-common-elasticsearch + ${revision} + diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/EasyExcelUtils.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/EasyExcelUtils.java new file mode 100644 index 0000000..dccccf7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/EasyExcelUtils.java @@ -0,0 +1,231 @@ +package org.dromara.common.excel.utils; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * EasyExcel工具类 + */ +public class EasyExcelUtils { + + + /** + * 注入的具有排序功能的handle + */ +// private static final SortRowWriteHandler SORT_ROW_WRITE_HANDLER = new SortRowWriteHandler(); + + /** + * 导出excel-按指定顺序 + * + * @param 类(必须是小写,并遵守阿里开发规范) + * @param list 列表数据 + * @param fileName 文件名称 + * @param useDefaultStyle 是否使用默认样式 + * @param response 响应 + */ + public static Map exportExcelInclude(List list, String fileName,Boolean useDefaultStyle, HttpServletResponse response) throws IOException { + Map resultMap = new HashMap<>(); + if (list.size() == 0) { + resultMap.put("msg", "数据长度为空"); + resultMap.put("result", -1); + return resultMap; + } + + Class clazz = list.get(0).getClass(); + + /*定义编码,格式*/ + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String exportFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + exportFileName + ".xlsx"); + response.setHeader("filename", exportFileName + ".xlsx"); + response.setHeader("Access-Control-Expose-Headers", "filename"); + /** + * .head(head(headNameList)) + * 改行代码不可以用ExcelWriterSheetBuilder类型的变量单独写,否则会包错:表头长度与字段列表长度不符 + */ + /*导出表格*/ + ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcel.write(response.getOutputStream(), clazz) + .useDefaultStyle(useDefaultStyle) + .sheet(fileName); + excelWriterSheetBuilder.doWrite(list); + + resultMap.put("msg", "excel export success"); + resultMap.put("result", 0); + return resultMap; + } + + + /** + * 导出excel-默认顺序 + * + * @param 类(必须是小写,并遵守阿里开发规范) + * @param list 列表数据 + * @param fileName 文件名称 + * @param useDefaultStyle 是否使用默认样式 + * @param response 响应 + * @param headNameList + * @param columnList 设置列字段(必须是小写) + */ + public static Map exportExcelInclude(List list, String fileName,Boolean useDefaultStyle, HttpServletResponse response, List columnList, List headNameList) throws IOException { + Map resultMap = new HashMap<>(); + if (list.size() == 0) { + resultMap.put("msg", "数据长度为空"); + resultMap.put("result", -1); + return resultMap; + } + + if (CollectionUtils.isEmpty(headNameList)) { + /*设置表头*/ + resultMap.put("msg", "表头长度为空"); + resultMap.put("result", -2); + return resultMap; + } + + if (CollectionUtils.isEmpty(columnList)) { + /*设置列字段*/ + resultMap.put("msg", "列字段长度为空"); + resultMap.put("result", -3); + return resultMap; + } + + Class clazz = list.get(0).getClass(); + + /*定义编码,格式*/ + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String exportFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + exportFileName + ".xlsx"); + response.setHeader("filename", exportFileName + ".xlsx"); + response.setHeader("Access-Control-Expose-Headers", "filename"); + /** + * .head(head(headNameList)) + * 改行代码不可以用ExcelWriterSheetBuilder类型的变量单独写,否则会包错:表头长度与字段列表长度不符 + */ + /*导出表格*/ + ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcel.write(response.getOutputStream(), clazz) + .head(head(headNameList)) + /*设置列字段(会按顺序)*/ + .includeColumnFiledNames(columnList) + /*注入的具有排序功能的handle*/ +// .registerWriteHandler(SORT_ROW_WRITE_HANDLER) + .useDefaultStyle(useDefaultStyle) + .sheet(fileName); + excelWriterSheetBuilder.doWrite(list); + + resultMap.put("msg", "excel export success"); + resultMap.put("result", 0); + return resultMap; + } + + + /** + * 支持动态头,行列合并导出 + * + * @param response web响应 + * @param headList 动态头 + * @param dataList 数据列表 + * @param columnMergeHandler 注入列合并 + * @param rowMergeHandler 注入行合并 + * @throws IOException + */ + public static Map writeDynamicExcel(HttpServletResponse response, @NotEmpty List> headList, @NotEmpty List> dataList, @NotNull ExcelColumnMergeHandler columnMergeHandler, @NotNull ExcelRowMergeHandler rowMergeHandler) throws IOException { + Map resultMap = new HashMap<>(); + if (dataList.size() == 0) { + resultMap.put("msg", "数据长度为空"); + resultMap.put("result", -1); + return resultMap; + } + + if (CollectionUtils.isEmpty(headList)) { + /*设置表头*/ + resultMap.put("msg", "表头长度为空"); + resultMap.put("result", -2); + return resultMap; + } + + if (columnMergeHandler == null || rowMergeHandler == null) { + /*设置列字段*/ + resultMap.put("msg", "行列处理器为空"); + resultMap.put("result", -3); + return resultMap; + } + + EasyExcel.write(response.getOutputStream()) + // 设置动态头 + .head(headList) + .sheet("模板") + /*注入列合并*/ + .registerWriteHandler(columnMergeHandler) + /*注入行合并*/ + .registerWriteHandler(rowMergeHandler) + /*传需要写入的数据,类型List>*/ + .doWrite(dataList); + + resultMap.put("msg", "excel export success"); + resultMap.put("result", 0); + return resultMap; + } + + + /** + * 支持动态头导出 + * + * @param response web响应 + * @param headList 动态头 + * @param dataList 数据列表 + * @throws IOException + */ + public static void writeDynamicExcel(HttpServletResponse response,List> headList, List> dataList) throws IOException { + EasyExcel.write(response.getOutputStream()) + // 设置动态头 + .head(headList) + .sheet("模板") + /*传需要写入的数据,类型List>*/ + .doWrite(dataList); + } + + + /** + * 设置Excel头 + * + * @param headList Excel头信息 + * @return + */ + public static List> head(List headList) { + List> list = new ArrayList<>(); + for (String value : headList) { + List head = new ArrayList<>(); + head.add(value); + list.add(head); + } + return list; + } + + /** + * Excel头对应的字段转换小写 + * + * @param ColumnListTemp Excel字段 + * @return + */ + public static List castLowerCase(List ColumnListTemp) { + List ColumnList = new ArrayList<>(); + for (String name : ColumnListTemp) { + ColumnList.add(StrUtil.lowerFirst(name)); + } + return ColumnList; + } + +} diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelColumnMergeHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelColumnMergeHandler.java new file mode 100644 index 0000000..f2b6b8b --- /dev/null +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelColumnMergeHandler.java @@ -0,0 +1,108 @@ +package org.dromara.common.excel.utils; + +import com.alibaba.excel.metadata.Head; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.write.handler.CellWriteHandler; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteTableHolder; +import lombok.Data; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.util.CellRangeAddress; + +import java.util.List; + +/*** + * 列合并处理器 + * + */ +@Data +public class ExcelColumnMergeHandler implements CellWriteHandler { + /** + * 合并字段的下标,如new int[]{0,1,2,3,4,10},0-4合并,10合并 + */ + private int[] mergeColumnIndex; + /** + * 从第几行开始合并,如果表头占两行,这个数字就是2 + */ + private int mergeRowIndex; + + public ExcelColumnMergeHandler() { + } + + public ExcelColumnMergeHandler(int mergeRowIndex, int[] mergeColumnIndex) { + this.mergeRowIndex = mergeRowIndex; + this.mergeColumnIndex = mergeColumnIndex; + } + + @Override + public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, + Head head, Integer integer, Integer integer1, Boolean aBoolean) { + + } + + @Override + public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, + Head head, Integer integer, Boolean aBoolean) { + + } + + @Override + public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, + WriteCellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) { + + } + + @Override + public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, + List> list, Cell cell, Head head, Integer integer, Boolean aBoolean) { + //当前行 + int curRowIndex = cell.getRowIndex(); + //当前列 + int curColIndex = cell.getColumnIndex(); + + if (curRowIndex > mergeRowIndex) { + for (int i = 0; i < mergeColumnIndex.length; i++) { + if (curColIndex == mergeColumnIndex[i]) { + mergeWithPrevRow(writeSheetHolder, cell, curRowIndex, curColIndex); + break; + } + } + } + } + + private void mergeWithPrevRow(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex) { + //获取当前行的当前列的数据和上一行的当前列列数据,通过上一行数据是否相同进行合并 + Object curData = cell.getCellType() == CellType.STRING ? cell.getStringCellValue() : + cell.getNumericCellValue(); + Cell preCell = cell.getSheet().getRow(curRowIndex - 1).getCell(curColIndex); + Object preData = preCell.getCellType() == CellType.STRING ? preCell.getStringCellValue() : + preCell.getNumericCellValue(); + // 比较当前行的第一列的单元格与上一行是否相同,相同合并当前单元格与上一行 + // + if (curData.equals(preData)) { + Sheet sheet = writeSheetHolder.getSheet(); + List mergeRegions = sheet.getMergedRegions(); + boolean isMerged = false; + for (int i = 0; i < mergeRegions.size() && !isMerged; i++) { + CellRangeAddress cellRangeAddr = mergeRegions.get(i); + // 若上一个单元格已经被合并,则先移出原有的合并单元,再重新添加合并单元 + if (cellRangeAddr.isInRange(curRowIndex - 1, curColIndex)) { + sheet.removeMergedRegion(i); + cellRangeAddr.setLastRow(curRowIndex); + sheet.addMergedRegion(cellRangeAddr); + isMerged = true; + } + } + // 若上一个单元格未被合并,则新增合并单元 + if (!isMerged) { + CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex - 1, curRowIndex, curColIndex, + curColIndex); + sheet.addMergedRegion(cellRangeAddress); + } + } + } +} + diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelRowMergeHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelRowMergeHandler.java new file mode 100644 index 0000000..01ad49c --- /dev/null +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelRowMergeHandler.java @@ -0,0 +1,87 @@ +package org.dromara.common.excel.utils; + +import com.alibaba.excel.metadata.Head; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.write.handler.CellWriteHandler; +import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; +import com.alibaba.excel.write.metadata.holder.WriteTableHolder; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.util.CellRangeAddress; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 行合并处理器 + * + */ +public class ExcelRowMergeHandler implements CellWriteHandler { + private static final String KEY ="%s-%s"; + //所有的合并信息都存在了这个map里面 + Map mergeInfo = new HashMap<>(); + + public ExcelRowMergeHandler() { + } + public ExcelRowMergeHandler(Map mergeInfo) { + this.mergeInfo = mergeInfo; + } + + @Override + public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) { + + } + + @Override + public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) { + + } + + @Override + public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, WriteCellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) { + + } + + @Override + public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List> list, Cell cell, Head head, Integer integer, Boolean aBoolean) { + //当前行 + int curRowIndex = cell.getRowIndex(); + //当前列 + int curColIndex = cell.getColumnIndex(); + + Integer num = mergeInfo.get(String.format(KEY, curRowIndex, curColIndex)); + if(null != num){ + // 合并最后一行 ,列 + mergeWithPrevCol(writeSheetHolder, cell, curRowIndex, curColIndex,num); + } + } + + public void mergeWithPrevCol(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex, int num) { + Sheet sheet = writeSheetHolder.getSheet(); + CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex, curRowIndex, curColIndex, curColIndex + num); + sheet.addMergedRegion(cellRangeAddress); + } + + + /** + * 添加合并行 + * 比如参数:(3,0,2) + * 从第三行的地0列开始向右合并2格 + * 这样,第三行的地0列到第2列就会合并 + * + * 注意: + * 合并不能冲突,如果合并到已经被合并的地方会报一个POI错误 + * (java.lang.IllegalStateException: Cannot add merged region B3:B6 to sheet because it overlaps with an existing merged region (A6:C6).) + * + * @param curRowIndex 当前行: 需要合并的哪一行(一般用数据List的“index”+“表头的行数”,表头站的行数是1就+1,是2就+2) + * @param curColIndex 合并开始列:从第几行开始合并 + * @param num 合并列的数量:从第curColIndex行开始,向右合并多少格 + */ + public void add (int curRowIndex, int curColIndex , int num){ + mergeInfo.put(String.format(KEY, curRowIndex, curColIndex),num); + } + +} + diff --git a/zaojiaManagement/pom.xml b/zaojiaManagement/pom.xml new file mode 100644 index 0000000..a926ed8 --- /dev/null +++ b/zaojiaManagement/pom.xml @@ -0,0 +1,22 @@ + + + + ruoyi-vue-plus + org.dromara + ${revision} + + + zaojia-productManagement + + 4.0.0 + + zaojiaManagement + pom + + + zaojiaManagement相关业务模块 + + + diff --git a/zaojiaManagement/zaojia-productManagement/pom.xml b/zaojiaManagement/zaojia-productManagement/pom.xml new file mode 100644 index 0000000..d287224 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/pom.xml @@ -0,0 +1,81 @@ + + + + org.dromara + zaojiaManagement + ${revision} + + 4.0.0 + jar + + zaojia-productManagement + + + 产品管理模块 + + + + org.dromara + ruoyi-common-websocket + + + + org.dromara + ruoyi-common-mail + + + + org.dromara + ruoyi-common-sms + + + + org.dromara + ruoyi-common-mybatis + + + org.dromara + ruoyi-common-web + + + org.dromara + ruoyi-common-log + + + org.dromara + ruoyi-common-idempotent + + + org.dromara + ruoyi-common-excel + + + org.dromara + ruoyi-common-translation + + + org.dromara + ruoyi-common-tenant + + + org.dromara + ruoyi-common-security + + + org.dromara + ruoyi-common-encrypt + + + org.dromara + ruoyi-common-excel + + + org.dromara + guoyan-common-elasticsearch + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/CmgCostItemDetailController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/CmgCostItemDetailController.java new file mode 100644 index 0000000..418e0ca --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/CmgCostItemDetailController.java @@ -0,0 +1,122 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.productManagement.domain.bo.PmgPersonProductsBo; +import org.dromara.productManagement.domain.bo.ProductsBo; +import org.dromara.productManagement.domain.vo.ProductsVo; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; +import org.dromara.productManagement.domain.bo.CmgCostItemDetailBo; +import org.dromara.productManagement.service.ICmgCostItemDetailService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 造价编制详情 + * + * @author Lion Li + * @date 2024-06-29 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/costItemDetail") +public class CmgCostItemDetailController extends BaseController { + + private final ICmgCostItemDetailService cmgCostItemDetailService; + + /** + * 获取产品类型列表根据不同的分类 + * @param bo + * @param pageQuery + * @return + */ + @GetMapping("/getProductsPageByType") + public TableDataInfo getProductsPageByType(ProductsBo bo, PageQuery pageQuery) { + //查询数据 + TableDataInfo pageVO =cmgCostItemDetailService.getProductsPageByType(bo, pageQuery); + return pageVO; + } + /** + * 查询造价编制详情列表 + */ + @SaCheckPermission("productManagement:costItemDetail:list") + @GetMapping("/list") + public TableDataInfo list(CmgCostItemDetailBo bo, PageQuery pageQuery) { + return cmgCostItemDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出造价编制详情列表 + */ + @SaCheckPermission("productManagement:costItemDetail:export") + @Log(title = "造价编制详情", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CmgCostItemDetailBo bo, HttpServletResponse response) { + List list = cmgCostItemDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "造价编制详情", CmgCostItemDetailVo.class, response); + } + + /** + * 获取造价编制详情详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:costItemDetail:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(cmgCostItemDetailService.queryById(id)); + } + + /** + * 新增造价编制详情 + */ + @SaCheckPermission("productManagement:costItemDetail:add") + @Log(title = "造价编制详情", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CmgCostItemDetailBo bo) { + return toAjax(cmgCostItemDetailService.insertByBo(bo)); + } + + /** + * 修改造价编制详情 + */ + @SaCheckPermission("productManagement:costItemDetail:edit") + @Log(title = "造价编制详情", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CmgCostItemDetailBo bo) { + return toAjax(cmgCostItemDetailService.updateByBo(bo)); + } + + /** + * 删除造价编制详情 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:costItemDetail:remove") + @Log(title = "造价编制详情", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(cmgCostItemDetailService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/CmgCostTableController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/CmgCostTableController.java new file mode 100644 index 0000000..617992e --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/CmgCostTableController.java @@ -0,0 +1,148 @@ +package org.dromara.productManagement.controller; + +import java.io.IOException; +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.productManagement.domain.vo.CostDetailViewVo; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.CmgCostTableVo; +import org.dromara.productManagement.domain.bo.CmgCostTableBo; +import org.dromara.productManagement.service.ICmgCostTableService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 造价编制信息 + * + * @author Lion Li + * @date 2024-06-29 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/costTable") +public class CmgCostTableController extends BaseController { + + private final ICmgCostTableService cmgCostTableService; + /** + * 新增 + */ + @PostMapping("/addCostTable") + @RepeatSubmit() + @Log(title = "新增造价编制信息", businessType = BusinessType.INSERT) + @SaCheckPermission("productManagement:costTable:add") + + public R addCostTable(@Validated @RequestBody CostDetailViewVo vo) { + cmgCostTableService.addCostTable(vo); + return R.ok(); + } + /** + * 修改 + */ + @PutMapping("/modifyCostTable") + @RepeatSubmit() + @Log(title = "修改造价编制信息", businessType = BusinessType.UPDATE) + @SaCheckPermission("productManagement:costTable:edit") + + public R modifyCostTable(@Validated @RequestBody CostDetailViewVo vo) { + cmgCostTableService.modifyCostTable(vo); + return R.ok(); + } + /** + * 获取单条数据 + */ + @GetMapping("/getCostTableDetail/{id}") + @SaCheckPermission("productManagement:costTable:query") + public R getCostTableDetail(@PathVariable("id") String id) { + CostDetailViewVo vo = cmgCostTableService.getCostTableDetail(id); + return R.ok(vo); + } + /** + * 导出单条数据表格文件 + */ + @PostMapping("/exportData") + @SaCheckPermission("productManagement:costTable:export") + public void exportData( String id, HttpServletResponse response) throws IOException { + cmgCostTableService.exportData(id,response); + } + /** + * 查询造价编制信息列表 + */ + @SaCheckPermission("productManagement:costTable:list") + @GetMapping("/list") + public TableDataInfo list(CmgCostTableBo bo, PageQuery pageQuery) { + return cmgCostTableService.queryPageList(bo, pageQuery); + } + + /** + * 导出造价编制信息列表 + */ + @SaCheckPermission("productManagement:costTable:export") + @Log(title = "造价编制信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(CmgCostTableBo bo, HttpServletResponse response) { + List list = cmgCostTableService.queryList(bo); + ExcelUtil.exportExcel(list, "造价编制信息", CmgCostTableVo.class, response); + } + + /** + * 获取造价编制信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:costTable:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(cmgCostTableService.queryById(id)); + } + + /** + * 新增造价编制信息 + */ + @SaCheckPermission("productManagement:costTable:add") + @Log(title = "造价编制信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody CmgCostTableBo bo) { + return toAjax(cmgCostTableService.insertByBo(bo)); + } + + /** + * 修改造价编制信息 + */ + @SaCheckPermission("productManagement:costTable:edit") + @Log(title = "造价编制信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody CmgCostTableBo bo) { + return toAjax(cmgCostTableService.updateByBo(bo)); + } + + /** + * 删除造价编制信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:costTable:remove") + @Log(title = "造价编制信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(cmgCostTableService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductModelController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductModelController.java new file mode 100644 index 0000000..2b298a5 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductModelController.java @@ -0,0 +1,140 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelVo; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelBo; +import org.dromara.productManagement.service.IPmgCompanyProductModelService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 公司产品模型 + * + * @author Lion Li + * @date 2024-07-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/companyProductModel") +public class PmgCompanyProductModelController extends BaseController { + + private final IPmgCompanyProductModelService pmgCompanyProductModelService; + /** + * 新增个人产品模型及其详情 + */ + @PostMapping("/addModel") + @SaCheckPermission("productManagement:companyProductModel:add") + @Log(title = "个人产品新增模型", businessType = BusinessType.INSERT) + @RepeatSubmit() + public R addModel(@Validated @RequestBody ProductModelViewBo bo) { + String id = pmgCompanyProductModelService.addModel(bo); + return R.ok("新增成功",id); + } + /** + * 修改个人产品模型及其详情 + */ + @PutMapping("/editModel") + @SaCheckPermission("productManagement:companyProductModel:edit") + @Log(title = "个人产品修改模型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + public R editModel(@Validated @RequestBody ProductModelViewBo bo) { + String id = pmgCompanyProductModelService.editModel(bo); + return R.ok("修改成功",id); + } + /** + * 根据id查询个人产品模型详情 + * @param id 个人产品模型表id + * @return + */ + @GetMapping("/getModelDetails/{id}") + @SaCheckPermission("productManagement:companyProductModel:query") + public R> getModelDetails(@PathVariable("id") String id) { + List detailsList=pmgCompanyProductModelService.getModelDetails(id); + return R.ok(detailsList); + } + /** + * 查询公司产品模型列表 + */ + @SaCheckPermission("productManagement:companyProductModel:list") + @GetMapping("/list") + public TableDataInfo list(PmgCompanyProductModelBo bo, PageQuery pageQuery) { + return pmgCompanyProductModelService.queryPageList(bo, pageQuery); + } + + /** + * 导出公司产品模型列表 + */ + @SaCheckPermission("productManagement:companyProductModel:export") + @Log(title = "公司产品模型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgCompanyProductModelBo bo, HttpServletResponse response) { + List list = pmgCompanyProductModelService.queryList(bo); + ExcelUtil.exportExcel(list, "公司产品模型", PmgCompanyProductModelVo.class, response); + } + + /** + * 获取公司产品模型详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:companyProductModel:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgCompanyProductModelService.queryById(id)); + } + + /** + * 新增公司产品模型 + */ + @SaCheckPermission("productManagement:companyProductModel:add") + @Log(title = "公司产品模型", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgCompanyProductModelBo bo) { + return toAjax(pmgCompanyProductModelService.insertByBo(bo)); + } + + /** + * 修改公司产品模型 + */ + @SaCheckPermission("productManagement:companyProductModel:edit") + @Log(title = "公司产品模型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgCompanyProductModelBo bo) { + return toAjax(pmgCompanyProductModelService.updateByBo(bo)); + } + + /** + * 删除公司产品模型 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:companyProductModel:remove") + @Log(title = "公司产品模型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgCompanyProductModelService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductModelDetailsController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductModelDetailsController.java new file mode 100644 index 0000000..9f4ec40 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductModelDetailsController.java @@ -0,0 +1,105 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; +import org.dromara.productManagement.service.IPmgCompanyProductModelDetailsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 公司产品模型详情表 + * + * @author Lion Li + * @date 2024-07-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/companyProductModelDetails") +public class PmgCompanyProductModelDetailsController extends BaseController { + + private final IPmgCompanyProductModelDetailsService pmgCompanyProductModelDetailsService; + + /** + * 查询公司产品模型详情表列表 + */ + @SaCheckPermission("productManagement:companyProductModelDetails:list") + @GetMapping("/list") + public TableDataInfo list(PmgCompanyProductModelDetailsBo bo, PageQuery pageQuery) { + return pmgCompanyProductModelDetailsService.queryPageList(bo, pageQuery); + } + + /** + * 导出公司产品模型详情表列表 + */ + @SaCheckPermission("productManagement:companyProductModelDetails:export") + @Log(title = "公司产品模型详情表", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgCompanyProductModelDetailsBo bo, HttpServletResponse response) { + List list = pmgCompanyProductModelDetailsService.queryList(bo); + ExcelUtil.exportExcel(list, "公司产品模型详情表", PmgCompanyProductModelDetailsVo.class, response); + } + + /** + * 获取公司产品模型详情表详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:companyProductModelDetails:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgCompanyProductModelDetailsService.queryById(id)); + } + + /** + * 新增公司产品模型详情表 + */ + @SaCheckPermission("productManagement:companyProductModelDetails:add") + @Log(title = "公司产品模型详情表", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgCompanyProductModelDetailsBo bo) { + return toAjax(pmgCompanyProductModelDetailsService.insertByBo(bo)); + } + + /** + * 修改公司产品模型详情表 + */ + @SaCheckPermission("productManagement:companyProductModelDetails:edit") + @Log(title = "公司产品模型详情表", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgCompanyProductModelDetailsBo bo) { + return toAjax(pmgCompanyProductModelDetailsService.updateByBo(bo)); + } + + /** + * 删除公司产品模型详情表 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:companyProductModelDetails:remove") + @Log(title = "公司产品模型详情表", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgCompanyProductModelDetailsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductsController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductsController.java new file mode 100644 index 0000000..9fdd08c --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgCompanyProductsController.java @@ -0,0 +1,105 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgCompanyProductsVo; +import org.dromara.productManagement.domain.bo.PmgCompanyProductsBo; +import org.dromara.productManagement.service.IPmgCompanyProductsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 公司产品管理 + * + * @author Lion Li + * @date 2024-06-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/companyProducts") +public class PmgCompanyProductsController extends BaseController { + + private final IPmgCompanyProductsService pmgCompanyProductsService; + + /** + * 查询公司产品管理列表 + */ + @SaCheckPermission("productManagement:companyProducts:list") + @GetMapping("/list") + public TableDataInfo list(PmgCompanyProductsBo bo, PageQuery pageQuery) { + return pmgCompanyProductsService.queryPageList(bo, pageQuery); + } + + /** + * 导出公司产品管理列表 + */ + @SaCheckPermission("productManagement:companyProducts:export") + @Log(title = "公司产品管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgCompanyProductsBo bo, HttpServletResponse response) { + List list = pmgCompanyProductsService.queryList(bo); + ExcelUtil.exportExcel(list, "公司产品管理", PmgCompanyProductsVo.class, response); + } + + /** + * 获取公司产品管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:companyProducts:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgCompanyProductsService.queryById(id)); + } + + /** + * 新增公司产品管理 + */ + @SaCheckPermission("productManagement:companyProducts:add") + @Log(title = "公司产品管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgCompanyProductsBo bo) { + return toAjax(pmgCompanyProductsService.insertByBo(bo)); + } + + /** + * 修改公司产品管理 + */ + @SaCheckPermission("productManagement:companyProducts:edit") + @Log(title = "公司产品管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgCompanyProductsBo bo) { + return toAjax(pmgCompanyProductsService.updateByBo(bo)); + } + + /** + * 删除公司产品管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:companyProducts:remove") + @Log(title = "公司产品管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgCompanyProductsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductModelController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductModelController.java new file mode 100644 index 0000000..b995d99 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductModelController.java @@ -0,0 +1,141 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelVo; +import org.dromara.productManagement.domain.bo.PmgPersonProductModelBo; +import org.dromara.productManagement.service.IPmgPersonProductModelService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 个人产品模型 + * + * @author Lion Li + * @date 2024-07-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/personProductModel") +public class PmgPersonProductModelController extends BaseController { + + private final IPmgPersonProductModelService pmgPersonProductModelService; + /** + * 新增个人产品模型及其详情 + */ + @PostMapping("/addModel") + @SaCheckPermission("productManagement:personProductModel:add") + @Log(title = "个人产品新增模型", businessType = BusinessType.INSERT) + @RepeatSubmit() + public R addModel(@Validated @RequestBody ProductModelViewBo bo) { + String id = pmgPersonProductModelService.addModel(bo); + return R.ok("新增成功",id); + } + /** + * 修改个人产品模型及其详情 + */ + @PutMapping("/editModel") + @SaCheckPermission("productManagement:personProductModel:edit") + @Log(title = "个人产品修改模型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + public R editModel(@Validated @RequestBody ProductModelViewBo bo) { + String id = pmgPersonProductModelService.editModel(bo); + return R.ok("修改成功",id); + } + /** + * 根据id查询个人产品模型详情 + * @param id 个人产品模型表id + * @return + */ + @GetMapping("/getModelDetails/{id}") + @SaCheckPermission("productManagement:personProductModel:query") + public R> getModelDetails(@PathVariable("id") String id) { + List detailsList=pmgPersonProductModelService.getModelDetails(id); + return R.ok(detailsList); + } + /** + * 查询个人产品模型列表 + */ + @SaCheckPermission("productManagement:personProductModel:list") + @GetMapping("/list") + public TableDataInfo list(PmgPersonProductModelBo bo, PageQuery pageQuery) { + return pmgPersonProductModelService.queryPageList(bo, pageQuery); + } + + /** + * 导出个人产品模型列表 + */ + @SaCheckPermission("productManagement:personProductModel:export") + @Log(title = "个人产品模型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgPersonProductModelBo bo, HttpServletResponse response) { + List list = pmgPersonProductModelService.queryList(bo); + ExcelUtil.exportExcel(list, "个人产品模型", PmgPersonProductModelVo.class, response); + } + + /** + * 获取个人产品模型详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:personProductModel:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgPersonProductModelService.queryById(id)); + } + + /** + * 新增个人产品模型 + */ + @SaCheckPermission("productManagement:personProductModel:add") + @Log(title = "个人产品模型", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgPersonProductModelBo bo) { + return toAjax(pmgPersonProductModelService.insertByBo(bo)); + } + + /** + * 修改个人产品模型 + */ + @SaCheckPermission("productManagement:personProductModel:edit") + @Log(title = "个人产品模型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgPersonProductModelBo bo) { + return toAjax(pmgPersonProductModelService.updateByBo(bo)); + } + + /** + * 删除个人产品模型 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:personProductModel:remove") + @Log(title = "个人产品模型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgPersonProductModelService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductModelDetailsController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductModelDetailsController.java new file mode 100644 index 0000000..fd54d6c --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductModelDetailsController.java @@ -0,0 +1,105 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; +import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; +import org.dromara.productManagement.service.IPmgPersonProductModelDetailsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 个人产品模型详情 + * + * @author Lion Li + * @date 2024-07-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/personProductModelDetails") +public class PmgPersonProductModelDetailsController extends BaseController { + + private final IPmgPersonProductModelDetailsService pmgPersonProductModelDetailsService; + + /** + * 查询个人产品模型详情列表 + */ + @SaCheckPermission("productManagement:personProductModelDetails:list") + @GetMapping("/list") + public TableDataInfo list(PmgPersonProductModelDetailsBo bo, PageQuery pageQuery) { + return pmgPersonProductModelDetailsService.queryPageList(bo, pageQuery); + } + + /** + * 导出个人产品模型详情列表 + */ + @SaCheckPermission("productManagement:personProductModelDetails:export") + @Log(title = "个人产品模型详情", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgPersonProductModelDetailsBo bo, HttpServletResponse response) { + List list = pmgPersonProductModelDetailsService.queryList(bo); + ExcelUtil.exportExcel(list, "个人产品模型详情", PmgPersonProductModelDetailsVo.class, response); + } + + /** + * 获取个人产品模型详情详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:personProductModelDetails:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgPersonProductModelDetailsService.queryById(id)); + } + + /** + * 新增个人产品模型详情 + */ + @SaCheckPermission("productManagement:personProductModelDetails:add") + @Log(title = "个人产品模型详情", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgPersonProductModelDetailsBo bo) { + return toAjax(pmgPersonProductModelDetailsService.insertByBo(bo)); + } + + /** + * 修改个人产品模型详情 + */ + @SaCheckPermission("productManagement:personProductModelDetails:edit") + @Log(title = "个人产品模型详情", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgPersonProductModelDetailsBo bo) { + return toAjax(pmgPersonProductModelDetailsService.updateByBo(bo)); + } + + /** + * 删除个人产品模型详情 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:personProductModelDetails:remove") + @Log(title = "个人产品模型详情", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgPersonProductModelDetailsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductsController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductsController.java new file mode 100644 index 0000000..7b50eac --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgPersonProductsController.java @@ -0,0 +1,105 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgPersonProductsVo; +import org.dromara.productManagement.domain.bo.PmgPersonProductsBo; +import org.dromara.productManagement.service.IPmgPersonProductsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 个人产品管理 + * + * @author Lion Li + * @date 2024-06-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/personProducts") +public class PmgPersonProductsController extends BaseController { + + private final IPmgPersonProductsService pmgPersonProductsService; + + /** + * 查询个人产品管理列表 + */ + @SaCheckPermission("productManagement:personProducts:list") + @GetMapping("/list") + public TableDataInfo list(PmgPersonProductsBo bo, PageQuery pageQuery) { + return pmgPersonProductsService.queryPageList(bo, pageQuery); + } + + /** + * 导出个人产品管理列表 + */ + @SaCheckPermission("productManagement:personProducts:export") + @Log(title = "个人产品管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgPersonProductsBo bo, HttpServletResponse response) { + List list = pmgPersonProductsService.queryList(bo); + ExcelUtil.exportExcel(list, "个人产品管理", PmgPersonProductsVo.class, response); + } + + /** + * 获取个人产品管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:personProducts:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgPersonProductsService.queryById(id)); + } + + /** + * 新增个人产品管理 + */ + @SaCheckPermission("productManagement:personProducts:add") + @Log(title = "个人产品管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgPersonProductsBo bo) { + return toAjax(pmgPersonProductsService.insertByBo(bo)); + } + + /** + * 修改个人产品管理 + */ + @SaCheckPermission("productManagement:personProducts:edit") + @Log(title = "个人产品管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgPersonProductsBo bo) { + return toAjax(pmgPersonProductsService.updateByBo(bo)); + } + + /** + * 删除个人产品管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:personProducts:remove") + @Log(title = "个人产品管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgPersonProductsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierInformationController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierInformationController.java new file mode 100644 index 0000000..df25c0d --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierInformationController.java @@ -0,0 +1,105 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgSupplierInformationVo; +import org.dromara.productManagement.domain.bo.PmgSupplierInformationBo; +import org.dromara.productManagement.service.IPmgSupplierInformationService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 供应商信息管理 + * + * @author Lion Li + * @date 2024-06-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/supplierInformation") +public class PmgSupplierInformationController extends BaseController { + + private final IPmgSupplierInformationService pmgSupplierInformationService; + + /** + * 查询供应商信息管理列表 + */ + @SaCheckPermission("productManagement:supplierInformation:list") + @GetMapping("/list") + public TableDataInfo list(PmgSupplierInformationBo bo, PageQuery pageQuery) { + return pmgSupplierInformationService.queryPageList(bo, pageQuery); + } + + /** + * 导出供应商信息管理列表 + */ + @SaCheckPermission("productManagement:supplierInformation:export") + @Log(title = "供应商信息管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgSupplierInformationBo bo, HttpServletResponse response) { + List list = pmgSupplierInformationService.queryList(bo); + ExcelUtil.exportExcel(list, "供应商信息管理", PmgSupplierInformationVo.class, response); + } + + /** + * 获取供应商信息管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:supplierInformation:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgSupplierInformationService.queryById(id)); + } + + /** + * 新增供应商信息管理 + */ + @SaCheckPermission("productManagement:supplierInformation:add") + @Log(title = "供应商信息管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgSupplierInformationBo bo) { + return toAjax(pmgSupplierInformationService.insertByBo(bo)); + } + + /** + * 修改供应商信息管理 + */ + @SaCheckPermission("productManagement:supplierInformation:edit") + @Log(title = "供应商信息管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgSupplierInformationBo bo) { + return toAjax(pmgSupplierInformationService.updateByBo(bo)); + } + + /** + * 删除供应商信息管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:supplierInformation:remove") + @Log(title = "供应商信息管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgSupplierInformationService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductModelController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductModelController.java new file mode 100644 index 0000000..53697a8 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductModelController.java @@ -0,0 +1,140 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelVo; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelBo; +import org.dromara.productManagement.service.IPmgSupplierProductModelService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 供应商产品模型 + * + * @author Lion Li + * @date 2024-07-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/supplierProductModel") +public class PmgSupplierProductModelController extends BaseController { + + private final IPmgSupplierProductModelService pmgSupplierProductModelService; + /** + * 新增供应商产品模型及其详情 + */ + @PostMapping("/addModel") + @SaCheckPermission("productManagement:supplierProductModel:add") + @Log(title = "个人产品新增模型", businessType = BusinessType.INSERT) + @RepeatSubmit() + public R addModel(@Validated @RequestBody ProductModelViewBo bo) { + String id = pmgSupplierProductModelService.addModel(bo); + return R.ok("新增成功",id); + } + /** + * 修改供应商产品模型及其详情 + */ + @PutMapping("/editModel") + @SaCheckPermission("productManagement:supplierProductModel:edit") + @Log(title = "个人产品修改模型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + public R editModel(@Validated @RequestBody ProductModelViewBo bo) { + String id = pmgSupplierProductModelService.editModel(bo); + return R.ok("修改成功",id); + } + /** + * 根据id查询供应商产品模型详情 + * @param id 个人产品模型表id + * @return + */ + @GetMapping("/getModelDetails/{id}") + @SaCheckPermission("productManagement:supplierProductModel:query") + public R> getModelDetails(@PathVariable("id") String id) { + List detailsList=pmgSupplierProductModelService.getModelDetails(id); + return R.ok(detailsList); + } + /** + * 查询供应商产品模型列表 + */ + @SaCheckPermission("productManagement:supplierProductModel:list") + @GetMapping("/list") + public TableDataInfo list(PmgSupplierProductModelBo bo, PageQuery pageQuery) { + return pmgSupplierProductModelService.queryPageList(bo, pageQuery); + } + + /** + * 导出供应商产品模型列表 + */ + @SaCheckPermission("productManagement:supplierProductModel:export") + @Log(title = "供应商产品模型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgSupplierProductModelBo bo, HttpServletResponse response) { + List list = pmgSupplierProductModelService.queryList(bo); + ExcelUtil.exportExcel(list, "供应商产品模型", PmgSupplierProductModelVo.class, response); + } + + /** + * 获取供应商产品模型详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:supplierProductModel:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgSupplierProductModelService.queryById(id)); + } + + /** + * 新增供应商产品模型 + */ + @SaCheckPermission("productManagement:supplierProductModel:add") + @Log(title = "供应商产品模型", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgSupplierProductModelBo bo) { + return toAjax(pmgSupplierProductModelService.insertByBo(bo)); + } + + /** + * 修改供应商产品模型 + */ + @SaCheckPermission("productManagement:supplierProductModel:edit") + @Log(title = "供应商产品模型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgSupplierProductModelBo bo) { + return toAjax(pmgSupplierProductModelService.updateByBo(bo)); + } + + /** + * 删除供应商产品模型 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:supplierProductModel:remove") + @Log(title = "供应商产品模型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgSupplierProductModelService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductModelDetailsController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductModelDetailsController.java new file mode 100644 index 0000000..763b921 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductModelDetailsController.java @@ -0,0 +1,105 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; +import org.dromara.productManagement.service.IPmgSupplierProductModelDetailsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 供应商产品模型详细 + * + * @author Lion Li + * @date 2024-07-01 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/supplierProductModelDetails") +public class PmgSupplierProductModelDetailsController extends BaseController { + + private final IPmgSupplierProductModelDetailsService pmgSupplierProductModelDetailsService; + + /** + * 查询供应商产品模型详细列表 + */ + @SaCheckPermission("productManagement:supplierProductModelDetails:list") + @GetMapping("/list") + public TableDataInfo list(PmgSupplierProductModelDetailsBo bo, PageQuery pageQuery) { + return pmgSupplierProductModelDetailsService.queryPageList(bo, pageQuery); + } + + /** + * 导出供应商产品模型详细列表 + */ + @SaCheckPermission("productManagement:supplierProductModelDetails:export") + @Log(title = "供应商产品模型详细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgSupplierProductModelDetailsBo bo, HttpServletResponse response) { + List list = pmgSupplierProductModelDetailsService.queryList(bo); + ExcelUtil.exportExcel(list, "供应商产品模型详细", PmgSupplierProductModelDetailsVo.class, response); + } + + /** + * 获取供应商产品模型详细详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:supplierProductModelDetails:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgSupplierProductModelDetailsService.queryById(id)); + } + + /** + * 新增供应商产品模型详细 + */ + @SaCheckPermission("productManagement:supplierProductModelDetails:add") + @Log(title = "供应商产品模型详细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgSupplierProductModelDetailsBo bo) { + return toAjax(pmgSupplierProductModelDetailsService.insertByBo(bo)); + } + + /** + * 修改供应商产品模型详细 + */ + @SaCheckPermission("productManagement:supplierProductModelDetails:edit") + @Log(title = "供应商产品模型详细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgSupplierProductModelDetailsBo bo) { + return toAjax(pmgSupplierProductModelDetailsService.updateByBo(bo)); + } + + /** + * 删除供应商产品模型详细 + * + * @param ids 主键串 + */ + @SaCheckPermission("productManagement:supplierProductModelDetails:remove") + @Log(title = "供应商产品模型详细", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgSupplierProductModelDetailsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductsController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductsController.java new file mode 100644 index 0000000..c7c7ffa --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/PmgSupplierProductsController.java @@ -0,0 +1,107 @@ +package org.dromara.productManagement.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.common.encrypt.annotation.ApiEncrypt; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.productManagement.domain.vo.PmgSupplierProductsVo; +import org.dromara.productManagement.domain.bo.PmgSupplierProductsBo; +import org.dromara.productManagement.service.IPmgSupplierProductsService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 供应商产品管理 + * + * @author Lion Li + * @date 2024-06-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/productManagement/supplierProducts") +public class PmgSupplierProductsController extends BaseController { + + private final IPmgSupplierProductsService pmgSupplierProductsService; + + /** + * 查询供应商产品管理列表 + */ + @SaCheckPermission("productManagement:supplierProducts:list") + @ApiEncrypt(response = true) + @GetMapping("/list") + public TableDataInfo list(PmgSupplierProductsBo bo, PageQuery pageQuery) { + return pmgSupplierProductsService.queryPageList(bo, pageQuery); + } + + /** + * 导出供应商产品管理列表 + */ + @SaCheckPermission("supplierProducts:supplierProducts:export") + @Log(title = "供应商产品管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PmgSupplierProductsBo bo, HttpServletResponse response) { + List list = pmgSupplierProductsService.queryList(bo); + ExcelUtil.exportExcel(list, "供应商产品管理", PmgSupplierProductsVo.class, response); + } + + /** + * 获取供应商产品管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("supplierProducts:supplierProducts:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable String id) { + return R.ok(pmgSupplierProductsService.queryById(id)); + } + + /** + * 新增供应商产品管理 + */ + @SaCheckPermission("supplierProducts:supplierProducts:add") + @Log(title = "供应商产品管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PmgSupplierProductsBo bo) { + return toAjax(pmgSupplierProductsService.insertByBo(bo)); + } + + /** + * 修改供应商产品管理 + */ + @SaCheckPermission("supplierProducts:supplierProducts:edit") + @Log(title = "供应商产品管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PmgSupplierProductsBo bo) { + return toAjax(pmgSupplierProductsService.updateByBo(bo)); + } + + /** + * 删除供应商产品管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("supplierProducts:supplierProducts:remove") + @Log(title = "供应商产品管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable String[] ids) { + return toAjax(pmgSupplierProductsService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/CmgCostItemDetail.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/CmgCostItemDetail.java new file mode 100644 index 0000000..d3ea5be --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/CmgCostItemDetail.java @@ -0,0 +1,108 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 造价编制详情对象 cmg_cost_item_detail + * + * @author Lion Li + * @date 2024-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cmg_cost_item_detail") +public class CmgCostItemDetail extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 造价表id + */ + private String costTableId; + + /** + * 父类id + */ + private String parentId; + + /** + * 费用类型 + */ + private String costType; + + /** + * 建设内容 + */ + private String constructContent; + + /** + * 费用名称 + */ + private String costName; + + /** + * 费用描述 + */ + private String costDescribe; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private Long quantity; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 总价 + */ + private BigDecimal totalPrice; + + /** + * 是否明细 + */ + private String isDetail; + + /** + * 备注 + */ + private String remarks; + + /** + * 排序 + */ + private String orderNo; + + /** + * + */ +// @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/CmgCostTable.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/CmgCostTable.java new file mode 100644 index 0000000..5c20ce6 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/CmgCostTable.java @@ -0,0 +1,61 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 造价编制信息对象 cmg_cost_table + * + * @author Lion Li + * @date 2024-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("cmg_cost_table") +public class CmgCostTable extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 项目名称 + */ + private String projectName; + + /** + * 造价日期 + */ + private Date costDate; + + /** + * 总投资 + */ + private BigDecimal totalInvestment; + + /** + * + */ +// @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProductModel.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProductModel.java new file mode 100644 index 0000000..528006e --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProductModel.java @@ -0,0 +1,58 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 公司产品模型对象 pmg_company_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_company_product_model") +public class PmgCompanyProductModel extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 公司产品指标描述 + */ + private String description; + + /** + * 产品型号模板id + */ + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + private String isTemporary; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProductModelDetails.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProductModelDetails.java new file mode 100644 index 0000000..f98d594 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProductModelDetails.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 公司产品模型详情表对象 pmg_company_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_company_product_model_details") +public class PmgCompanyProductModelDetails extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 公司产品型号表id + */ + private String modelId; + + /** + * 指标名称 + */ + private String paramName; + + /** + * 指标参数 + */ + private String parameterValue; + + /** + * 是否关键指标 + */ + private String isKeyParameter; + + /** + * 是否临时数据 + */ + private String isTemporary; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProducts.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProducts.java new file mode 100644 index 0000000..6ff1a47 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgCompanyProducts.java @@ -0,0 +1,118 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 公司产品管理对象 pmg_company_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_company_products") +public class PmgCompanyProducts extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 关联厂商产品id + */ + private String supplierProductsId; + + /** + * 供应商id + */ + private String supplierInformationId; + + /** + * 公司产品规格 + */ + private String productSpecifications; + + /** + * 产品名称 + */ + private String productName; + + /** + * 产品标识(型号) + */ + private String productIdentity; + + /** + * 产品价格 + */ + private BigDecimal productPrice; + + /** + * 信息来源 + */ + private String sourceInformation; + + /** + * 备注 + */ + private String remarks; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + /** + * 图片 + */ + private String image; + + /** + * 品牌 + */ + private String brand; + + /** + * 单位 + */ + private String unit; + + /** + * 除税价 + */ + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + private Long taxrate; + + /** + * 分类id + */ + private String categoryId; + + /** + * 型号id + */ + private String modelId; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProductModel.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProductModel.java new file mode 100644 index 0000000..d05957d --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProductModel.java @@ -0,0 +1,58 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 个人产品模型对象 pmg_person_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_person_product_model") +public class PmgPersonProductModel extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 个人产品指标描述 + */ + private String description; + + /** + * 产品型号模板id + */ + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + private String isTemporary; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProductModelDetails.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProductModelDetails.java new file mode 100644 index 0000000..315ba03 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProductModelDetails.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 个人产品模型详情对象 pmg_person_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_person_product_model_details") +public class PmgPersonProductModelDetails extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 个人产品型号表id + */ + private String modelId; + + /** + * 指标名称 + */ + private String paramName; + + /** + * 指标参数 + */ + private String parameterValue; + + /** + * 是否关键指标 + */ + private String isKeyParameter; + + /** + * 是否临时数据 + */ + private String isTemporary; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProducts.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProducts.java new file mode 100644 index 0000000..466b39c --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgPersonProducts.java @@ -0,0 +1,119 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 个人产品管理对象 pmg_person_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_person_products") +public class PmgPersonProducts extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 供应商id + */ + private String supplierInformationId; + + /** + * 产品名称 + */ + private String productName; + + /** + * 产品标识(型号) + */ + private String productIdentity; + + /** + * 产品价格 + */ + private BigDecimal productPrice; + + /** + * 信息来源 + */ + private String sourceInformation; + + /** + * 个人产品规格 + */ + private String productSpecifications; + + /** + * 关联厂商产品id + */ + private String supplierProductsId; + + /** + * 备注 + */ + private String remarks; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + /** + * 图片 + */ + private String image; + + /** + * 品牌 + */ + private String brand; + + /** + * 单位 + */ + private String unit; + + /** + * 除税价 + */ + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + private Long taxrate; + + /** + * 分类id + */ + private String categoryId; + + /** + * 型号id + */ + private String modelId; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierInformation.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierInformation.java new file mode 100644 index 0000000..01fe2b5 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierInformation.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 供应商信息管理对象 pmg_supplier_information + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_supplier_information") +public class PmgSupplierInformation extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 供应商名称 + */ + private String supplierName; + + /** + * 供应商联系人 + */ + private String supplierContacts; + + /** + * 职位 + */ + private String position; + + /** + * 供应商联系电话 + */ + private String supplierContactsPhone; + + /** + * 供应商类型 + */ + private String supplierType; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProductModel.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProductModel.java new file mode 100644 index 0000000..9816c96 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProductModel.java @@ -0,0 +1,58 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 供应商产品模型对象 pmg_supplier_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_supplier_product_model") +public class PmgSupplierProductModel extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 供应商产品指标描述 + */ + private String description; + + /** + * 产品型号模板id + */ + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + private String isTemporary; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProductModelDetails.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProductModelDetails.java new file mode 100644 index 0000000..5eac8f3 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProductModelDetails.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 供应商产品模型详细对象 pmg_supplier_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_supplier_product_model_details") +public class PmgSupplierProductModelDetails extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 供应商产品型号表id + */ + private String modelId; + + /** + * 指标名称 + */ + private String paramName; + + /** + * 指标参数 + */ + private String parameterValue; + + /** + * 是否关键指标 + */ + private String isKeyParameter; + + /** + * 是否临时数据 + */ + private String isTemporary; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProducts.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProducts.java new file mode 100644 index 0000000..b2a9cf2 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/PmgSupplierProducts.java @@ -0,0 +1,119 @@ +package org.dromara.productManagement.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 供应商产品管理对象 pmg_supplier_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pmg_supplier_products") +public class PmgSupplierProducts extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private String id; + + /** + * 关联厂商产品id + */ + private String supplierProductsId; + + /** + * 供应商id + */ + private String supplierInformationId; + + /** + * 供应商产品规格 + */ + private String productSpecifications; + + /** + * 产品名称 + */ + private String productName; + + /** + * 产品标识(型号) + */ + private String productIdentity; + + /** + * 产品价格 + */ + private BigDecimal productPrice; + + /** + * 信息来源 + */ + private String sourceInformation; + + /** + * 备注 + */ + private String remarks; + + /** + * + */ + @TableLogic + private String delFlag; + + /** + * 版本号 + */ + @Version + private Long version; + + /** + * 图片 + */ + private String image; + + /** + * 品牌 + */ + private String brand; + + /** + * 单位 + */ + private String unit; + + /** + * 除税价 + */ + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + private Long taxrate; + + /** + * 分类id + */ + private String categoryId; + + /** + * 型号id + */ + private String modelId; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/CmgCostItemDetailBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/CmgCostItemDetailBo.java new file mode 100644 index 0000000..08fb211 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/CmgCostItemDetailBo.java @@ -0,0 +1,97 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.CmgCostItemDetail; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 造价编制详情业务对象 cmg_cost_item_detail + * + * @author Lion Li + * @date 2024-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CmgCostItemDetail.class, reverseConvertGenerate = false) +public class CmgCostItemDetailBo extends BaseEntity { + + /** + * 主键 + */ + @NotBlank(message = "主键不能为空", groups = { EditGroup.class }) + private String id; + + /** + * 造价表id + */ + @NotBlank(message = "造价表id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String costTableId; + + /** + * 父类id + */ + private String parentId; + + /** + * 费用类型 + */ + private String costType; + + /** + * 建设内容 + */ + private String constructContent; + + /** + * 费用名称 + */ + private String costName; + + /** + * 费用描述 + */ + private String costDescribe; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private Long quantity; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 总价 + */ + private BigDecimal totalPrice; + + /** + * 是否明细 + */ + private String isDetail; + + /** + * 备注 + */ + private String remarks; + + /** + * 排序 + */ + private String orderNo; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/CmgCostTableBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/CmgCostTableBo.java new file mode 100644 index 0000000..481bfca --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/CmgCostTableBo.java @@ -0,0 +1,51 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.CmgCostTable; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 造价编制信息业务对象 cmg_cost_table + * + * @author Lion Li + * @date 2024-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = CmgCostTable.class, reverseConvertGenerate = false) +public class CmgCostTableBo extends BaseEntity { + + /** + * 主键 + */ + @NotBlank(message = "主键不能为空", groups = { EditGroup.class }) + private String id; + + /** + * 项目名称 + */ + @NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String projectName; + + /** + * 造价日期 + */ + @NotNull(message = "造价日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date costDate; + + /** + * 总投资 + */ + @NotNull(message = "总投资不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal totalInvestment; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductModelBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductModelBo.java new file mode 100644 index 0000000..8b04871 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductModelBo.java @@ -0,0 +1,46 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgCompanyProductModel; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 公司产品模型业务对象 pmg_company_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgCompanyProductModel.class, reverseConvertGenerate = false) +public class PmgCompanyProductModelBo extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 公司产品指标描述 + */ + @NotBlank(message = "公司产品指标描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String description; + + /** + * 产品型号模板id + */ + @NotBlank(message = "产品型号模板id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductModelDetailsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductModelDetailsBo.java new file mode 100644 index 0000000..2d0ab4d --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductModelDetailsBo.java @@ -0,0 +1,58 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 公司产品模型详情表业务对象 pmg_company_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgCompanyProductModelDetails.class, reverseConvertGenerate = false) +public class PmgCompanyProductModelDetailsBo extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 公司产品型号表id + */ + @NotBlank(message = "公司产品型号表id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelId; + + /** + * 指标名称 + */ + @NotBlank(message = "指标名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String paramName; + + /** + * 指标参数 + */ + @NotBlank(message = "指标参数不能为空", groups = { AddGroup.class, EditGroup.class }) + private String parameterValue; + + /** + * 是否关键指标 + */ + @NotBlank(message = "是否关键指标不能为空", groups = { AddGroup.class, EditGroup.class }) + private String isKeyParameter; + + /** + * 是否临时数据 + */ + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductsBo.java new file mode 100644 index 0000000..4a55c30 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgCompanyProductsBo.java @@ -0,0 +1,109 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgCompanyProducts; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 公司产品管理业务对象 pmg_company_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgCompanyProducts.class, reverseConvertGenerate = false) +public class PmgCompanyProductsBo extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 关联厂商产品id + */ + private String supplierProductsId; + + /** + * 供应商id + */ + private String supplierInformationId; + + /** + * 公司产品规格 + */ + private String productSpecifications; + + /** + * 产品名称 + */ + @NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String productName; + + /** + * 产品标识(型号) + */ + private String productIdentity; + + /** + * 产品价格 + */ + @NotNull(message = "产品价格不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal productPrice; + + /** + * 信息来源 + */ + private String sourceInformation; + + /** + * 备注 + */ + private String remarks; + + /** + * 图片 + */ + private String image; + + /** + * 品牌 + */ + private String brand; + + /** + * 单位 + */ + private String unit; + + /** + * 除税价 + */ + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + private Long taxrate; + + /** + * 分类id + */ + private String categoryId; + + @NotBlank(message = "公司产品规格不能为空", groups = { AddGroup.class, EditGroup.class }) + + /** + * 型号id + */ + private String modelId; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductModelBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductModelBo.java new file mode 100644 index 0000000..f3fe5db --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductModelBo.java @@ -0,0 +1,46 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgPersonProductModel; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 个人产品模型业务对象 pmg_person_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgPersonProductModel.class, reverseConvertGenerate = false) +public class PmgPersonProductModelBo extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 个人产品指标描述 + */ + @NotBlank(message = "个人产品指标描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String description; + + /** + * 产品型号模板id + */ + @NotBlank(message = "产品型号模板id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductModelDetailsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductModelDetailsBo.java new file mode 100644 index 0000000..12122c9 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductModelDetailsBo.java @@ -0,0 +1,58 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgPersonProductModelDetails; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 个人产品模型详情业务对象 pmg_person_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgPersonProductModelDetails.class, reverseConvertGenerate = false) +public class PmgPersonProductModelDetailsBo extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 个人产品型号表id + */ + @NotBlank(message = "个人产品型号表id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelId; + + /** + * 指标名称 + */ + @NotBlank(message = "指标名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String paramName; + + /** + * 指标参数 + */ + @NotBlank(message = "指标参数不能为空", groups = { AddGroup.class, EditGroup.class }) + private String parameterValue; + + /** + * 是否关键指标 + */ + @NotBlank(message = "是否关键指标不能为空", groups = { AddGroup.class, EditGroup.class }) + private String isKeyParameter; + + /** + * 是否临时数据 + */ + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductsBo.java new file mode 100644 index 0000000..451a71d --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgPersonProductsBo.java @@ -0,0 +1,108 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgPersonProducts; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 个人产品管理业务对象 pmg_person_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgPersonProducts.class, reverseConvertGenerate = false) +public class PmgPersonProductsBo extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 供应商id + */ + private String supplierInformationId; + + /** + * 产品名称 + */ + @NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String productName; + + /** + * 产品标识(型号) + */ + private String productIdentity; + + /** + * 产品价格 + */ + @NotNull(message = "产品价格不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal productPrice; + + /** + * 信息来源 + */ + private String sourceInformation; + + /** + * 个人产品规格 + */ + private String productSpecifications; + + /** + * 关联厂商产品id + */ + private String supplierProductsId; + + /** + * 备注 + */ + private String remarks; + + /** + * 图片 + */ + private String image; + + /** + * 品牌 + */ + private String brand; + + /** + * 单位 + */ + private String unit; + + /** + * 除税价 + */ + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + private Long taxrate; + + /** + * 分类id + */ + private String categoryId; + @NotBlank(message = "个人产品规格不能为空", groups = { AddGroup.class, EditGroup.class }) + + /** + * 型号id + */ + private String modelId; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierInformationBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierInformationBo.java new file mode 100644 index 0000000..318ecde --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierInformationBo.java @@ -0,0 +1,59 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgSupplierInformation; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 供应商信息管理业务对象 pmg_supplier_information + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgSupplierInformation.class, reverseConvertGenerate = false) +public class PmgSupplierInformationBo extends BaseEntity { + + /** + * 主键 + */ +// @NotBlank(message = "主键不能为空", groups = { EditGroup.class }) + private String id; + + /** + * 供应商名称 + */ + @NotBlank(message = "供应商名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String supplierName; + + /** + * 供应商联系人 + */ + @NotBlank(message = "供应商联系人不能为空", groups = { AddGroup.class, EditGroup.class }) + private String supplierContacts; + + /** + * 职位 + */ + private String position; + + /** + * 供应商联系电话 + */ + @NotBlank(message = "供应商联系电话不能为空", groups = { AddGroup.class, EditGroup.class }) + + private String supplierContactsPhone; + + /** + * 供应商类型 + */ + private String supplierType; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductModelBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductModelBo.java new file mode 100644 index 0000000..1f9731a --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductModelBo.java @@ -0,0 +1,46 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgSupplierProductModel; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 供应商产品模型业务对象 pmg_supplier_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgSupplierProductModel.class, reverseConvertGenerate = false) +public class PmgSupplierProductModelBo extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 供应商产品指标描述 + */ + @NotBlank(message = "供应商产品指标描述不能为空", groups = { AddGroup.class, EditGroup.class }) + private String description; + + /** + * 产品型号模板id + */ + @NotBlank(message = "产品型号模板id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductModelDetailsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductModelDetailsBo.java new file mode 100644 index 0000000..f550a6e --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductModelDetailsBo.java @@ -0,0 +1,58 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 供应商产品模型详细业务对象 pmg_supplier_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgSupplierProductModelDetails.class, reverseConvertGenerate = false) +public class PmgSupplierProductModelDetailsBo extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 供应商产品型号表id + */ + @NotBlank(message = "供应商产品型号表id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String modelId; + + /** + * 指标名称 + */ + @NotBlank(message = "指标名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String paramName; + + /** + * 指标参数 + */ + @NotBlank(message = "指标参数不能为空", groups = { AddGroup.class, EditGroup.class }) + private String parameterValue; + + /** + * 是否关键指标 + */ + @NotBlank(message = "是否关键指标不能为空", groups = { AddGroup.class, EditGroup.class }) + private String isKeyParameter; + + /** + * 是否临时数据 + */ + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductsBo.java new file mode 100644 index 0000000..4e6e693 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/PmgSupplierProductsBo.java @@ -0,0 +1,101 @@ +package org.dromara.productManagement.domain.bo; + +import org.dromara.productManagement.domain.PmgSupplierProducts; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 供应商产品管理业务对象 pmg_supplier_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PmgSupplierProducts.class, reverseConvertGenerate = false) +public class PmgSupplierProductsBo extends BaseEntity { + private String id; + + /** + * 供应商id + */ + @NotBlank(message = "供应商id不能为空", groups = { AddGroup.class, EditGroup.class }) + private String supplierInformationId; + + /** + * 供应商产品规格 + */ + private String productSpecifications; + + /** + * 产品名称 + */ + @NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String productName; + + /** + * 产品标识(型号) + */ + private String productIdentity; + + /** + * 产品价格 + */ + @NotNull(message = "产品价格不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal productPrice; + + /** + * 信息来源 + */ + private String sourceInformation; + + /** + * 备注 + */ + private String remarks; + + /** + * 图片 + */ + private String image; + + /** + * 品牌 + */ + private String brand; + + /** + * 单位 + */ + @NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class }) + private String unit; + + /** + * 除税价 + */ + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + private Long taxrate; + + /** + * 分类id + */ + private String categoryId; + @NotBlank(message = "供应商产品规格不能为空", groups = { AddGroup.class, EditGroup.class }) + + /** + * 型号id + */ + private String modelId; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ProductModelViewBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ProductModelViewBo.java new file mode 100644 index 0000000..33dc909 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ProductModelViewBo.java @@ -0,0 +1,52 @@ +package org.dromara.productManagement.domain.bo; + + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.util.List; + +/** +* 视图对象类 +* +* @author ZHB +* @date 2024-05-14 +*/ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +public class ProductModelViewBo extends BaseEntity { + private String id; + /** + * 厂商产品型号描述 + */ + private String description; + + /** + * 产品型号模板id + */ + private String productModelTemplateId; + + private List modelDeatils; + + + /********非库表存储属性*****/ + + + + /********字典类*****/ + + /********实体类、用户单选、组织机构单选*****/ + + /********范围查询*****/ + + /********自定义扩展*****/ + + /********子对象*****/ + + + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ProductsBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ProductsBo.java new file mode 100644 index 0000000..41d1b47 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ProductsBo.java @@ -0,0 +1,89 @@ +package org.dromara.productManagement.domain.bo; + + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.math.BigDecimal; + +/** + * 视图对象类 + * + * @author ZHB + * @date 2024-05-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +public class ProductsBo extends BaseEntity { + private String id; + /** + * 个人产品型号id + */ + private String modelId; + + /** + * 供应商id + */ + private String supplierInformationId; + + /** + * 产品名称 + */ + private String productName; + + private String image; + + /** + * 产品标识(型号) + */ + private String productIdentity; + + /** + * 产品价格 + */ + private BigDecimal productPrice; + + /** + * 信息来源 + */ + private String sourceInformation; + + /** + * 备注 + */ + private String remarks; + + /** + * 关联厂商产品id + */ + private String supplierProductsId; + /** + * 产品描述 + */ + private String productSpecifications; + + /** + * 产品类型 (-1:全部, 0:供应商产品库, 1:公司产品库,2:个人产品库) + */ + private String productType; + /********非库表存储属性*****/ + + + + /********字典类*****/ + + /********实体类、用户单选、组织机构单选*****/ + + /********范围查询*****/ + + /********自定义扩展*****/ + + /********子对象*****/ + + + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CmgCostItemDetailVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CmgCostItemDetailVo.java new file mode 100644 index 0000000..1e7c567 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CmgCostItemDetailVo.java @@ -0,0 +1,117 @@ +package org.dromara.productManagement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.productManagement.domain.CmgCostItemDetail; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 造价编制详情视图对象 cmg_cost_item_detail + * + * @author Lion Li + * @date 2024-06-29 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CmgCostItemDetail.class) +public class CmgCostItemDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 造价表id + */ + @ExcelProperty(value = "造价表id") + private String costTableId; + + /** + * 父类id + */ + @ExcelProperty(value = "父类id") + private String parentId; + + /** + * 费用类型 + */ + @ExcelProperty(value = "费用类型") + private String costType; + + /** + * 建设内容 + */ + @ExcelProperty(value = "建设内容") + private String constructContent; + + /** + * 费用名称 + */ + @ExcelProperty(value = "费用名称") + private String costName; + + /** + * 费用描述 + */ + @ExcelProperty(value = "费用描述") + private String costDescribe; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 数量 + */ + @ExcelProperty(value = "数量") + private Long quantity; + + /** + * 单价 + */ + @ExcelProperty(value = "单价") + private BigDecimal unitPrice; + + /** + * 总价 + */ + @ExcelProperty(value = "总价") + private BigDecimal totalPrice; + + /** + * 是否明细 + */ + @ExcelProperty(value = "是否明细") + private String isDetail; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + + /** + * 排序 + */ + @ExcelProperty(value = "排序") + private String orderNo; + + private List children; +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CmgCostTableVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CmgCostTableVo.java new file mode 100644 index 0000000..889b275 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CmgCostTableVo.java @@ -0,0 +1,59 @@ +package org.dromara.productManagement.domain.vo; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.productManagement.domain.CmgCostTable; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 造价编制信息视图对象 cmg_cost_table + * + * @author Lion Li + * @date 2024-06-29 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = CmgCostTable.class) +public class CmgCostTableVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 项目名称 + */ + @ExcelProperty(value = "项目名称") + private String projectName; + + /** + * 造价日期 + */ + @ExcelProperty(value = "造价日期") + private Date costDate; + + /** + * 总投资 + */ + @ExcelProperty(value = "总投资") + private BigDecimal totalInvestment; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CostDetailViewVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CostDetailViewVo.java new file mode 100644 index 0000000..ed8b84e --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/CostDetailViewVo.java @@ -0,0 +1,21 @@ +package org.dromara.productManagement.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +@Data + +public class CostDetailViewVo { + private String id; + private String projectName; + + private Date costDate; + + + private BigDecimal totalInvestment; + private List costItemDetailList; +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductModelDetailsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductModelDetailsVo.java new file mode 100644 index 0000000..1d495d9 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductModelDetailsVo.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.domain.vo; + +import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 公司产品模型详情表视图对象 pmg_company_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgCompanyProductModelDetails.class) +public class PmgCompanyProductModelDetailsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 公司产品型号表id + */ + @ExcelProperty(value = "公司产品型号表id") + private String modelId; + + /** + * 指标名称 + */ + @ExcelProperty(value = "指标名称") + private String paramName; + + /** + * 指标参数 + */ + @ExcelProperty(value = "指标参数") + private String parameterValue; + + /** + * 是否关键指标 + */ + @ExcelProperty(value = "是否关键指标") + private String isKeyParameter; + + /** + * 是否临时数据 + */ + @ExcelProperty(value = "是否临时数据") + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductModelVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductModelVo.java new file mode 100644 index 0000000..3d02b3b --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductModelVo.java @@ -0,0 +1,56 @@ +package org.dromara.productManagement.domain.vo; + +import org.dromara.productManagement.domain.PmgCompanyProductModel; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 公司产品模型视图对象 pmg_company_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgCompanyProductModel.class) +public class PmgCompanyProductModelVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 公司产品指标描述 + */ + @ExcelProperty(value = "公司产品指标描述") + private String description; + + /** + * 产品型号模板id + */ + @ExcelProperty(value = "产品型号模板id") + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + @ExcelProperty(value = "是否临时数据") + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductsVo.java new file mode 100644 index 0000000..0d939f3 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgCompanyProductsVo.java @@ -0,0 +1,124 @@ +package org.dromara.productManagement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.productManagement.domain.PmgCompanyProducts; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 公司产品管理视图对象 pmg_company_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgCompanyProducts.class) +public class PmgCompanyProductsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + private String id; + /** + * 关联厂商产品id + */ + @ExcelProperty(value = "关联厂商产品id") + private String supplierProductsId; + + /** + * 供应商id + */ + @ExcelProperty(value = "供应商id") + private String supplierInformationId; + + /** + * 公司产品规格 + */ + @ExcelProperty(value = "公司产品规格") + private String productSpecifications; + + /** + * 产品名称 + */ + @ExcelProperty(value = "产品名称") + private String productName; + + /** + * 产品标识(型号) + */ + @ExcelProperty(value = "产品标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "型=号") + private String productIdentity; + + /** + * 产品价格 + */ + @ExcelProperty(value = "产品价格") + private BigDecimal productPrice; + + /** + * 信息来源 + */ + @ExcelProperty(value = "信息来源") + private String sourceInformation; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + + /** + * 图片 + */ + @ExcelProperty(value = "图片") + private String image; + + /** + * 品牌 + */ + @ExcelProperty(value = "品牌") + private String brand; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 除税价 + */ + @ExcelProperty(value = "除税价") + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + @ExcelProperty(value = "税率") + private Long taxrate; + + /** + * 分类id + */ + @ExcelProperty(value = "分类id") + private String categoryId; + + /** + * 型号id + */ + @ExcelProperty(value = "型号id") + private String modelId; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductModelDetailsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductModelDetailsVo.java new file mode 100644 index 0000000..3e89b05 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductModelDetailsVo.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.domain.vo; + +import org.dromara.productManagement.domain.PmgPersonProductModelDetails; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 个人产品模型详情视图对象 pmg_person_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgPersonProductModelDetails.class) +public class PmgPersonProductModelDetailsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 个人产品型号表id + */ + @ExcelProperty(value = "个人产品型号表id") + private String modelId; + + /** + * 指标名称 + */ + @ExcelProperty(value = "指标名称") + private String paramName; + + /** + * 指标参数 + */ + @ExcelProperty(value = "指标参数") + private String parameterValue; + + /** + * 是否关键指标 + */ + @ExcelProperty(value = "是否关键指标") + private String isKeyParameter; + + /** + * 是否临时数据 + */ + @ExcelProperty(value = "是否临时数据") + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductModelVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductModelVo.java new file mode 100644 index 0000000..0cbc3a1 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductModelVo.java @@ -0,0 +1,56 @@ +package org.dromara.productManagement.domain.vo; + +import org.dromara.productManagement.domain.PmgPersonProductModel; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 个人产品模型视图对象 pmg_person_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgPersonProductModel.class) +public class PmgPersonProductModelVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 个人产品指标描述 + */ + @ExcelProperty(value = "个人产品指标描述") + private String description; + + /** + * 产品型号模板id + */ + @ExcelProperty(value = "产品型号模板id") + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + @ExcelProperty(value = "是否临时数据") + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductsVo.java new file mode 100644 index 0000000..0312903 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgPersonProductsVo.java @@ -0,0 +1,129 @@ +package org.dromara.productManagement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.productManagement.domain.PmgPersonProducts; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 个人产品管理视图对象 pmg_person_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgPersonProducts.class) +public class PmgPersonProductsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 供应商id + */ + @ExcelProperty(value = "供应商id") + private String supplierInformationId; + + /** + * 产品名称 + */ + @ExcelProperty(value = "产品名称") + private String productName; + + /** + * 产品标识(型号) + */ + @ExcelProperty(value = "产品标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "型=号") + private String productIdentity; + + /** + * 产品价格 + */ + @ExcelProperty(value = "产品价格") + private BigDecimal productPrice; + + /** + * 信息来源 + */ + @ExcelProperty(value = "信息来源") + private String sourceInformation; + + /** + * 个人产品规格 + */ + @ExcelProperty(value = "个人产品规格") + private String productSpecifications; + + /** + * 关联厂商产品id + */ + @ExcelProperty(value = "关联厂商产品id") + private String supplierProductsId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + + /** + * 图片 + */ + @ExcelProperty(value = "图片") + private String image; + + /** + * 品牌 + */ + @ExcelProperty(value = "品牌") + private String brand; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 除税价 + */ + @ExcelProperty(value = "除税价") + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + @ExcelProperty(value = "税率") + private Long taxrate; + + /** + * 分类id + */ + @ExcelProperty(value = "分类id") + private String categoryId; + + /** + * 型号id + */ + @ExcelProperty(value = "型号id") + private String modelId; + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierInformationVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierInformationVo.java new file mode 100644 index 0000000..191f28d --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierInformationVo.java @@ -0,0 +1,69 @@ +package org.dromara.productManagement.domain.vo; + +import org.dromara.productManagement.domain.PmgSupplierInformation; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 供应商信息管理视图对象 pmg_supplier_information + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgSupplierInformation.class) +public class PmgSupplierInformationVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 供应商名称 + */ + @ExcelProperty(value = "供应商名称") + private String supplierName; + + /** + * 供应商联系人 + */ + @ExcelProperty(value = "供应商联系人") + private String supplierContacts; + + /** + * 职位 + */ + @ExcelProperty(value = "职位") + private String position; + + /** + * 供应商联系电话 + */ + @ExcelProperty(value = "供应商联系电话") + private String supplierContactsPhone; + + /** + * 供应商类型 + */ + @ExcelProperty(value = "供应商类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "supplier_type") + private String supplierType; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductModelDetailsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductModelDetailsVo.java new file mode 100644 index 0000000..d5114c5 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductModelDetailsVo.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.domain.vo; + +import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 供应商产品模型详细视图对象 pmg_supplier_product_model_details + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgSupplierProductModelDetails.class) +public class PmgSupplierProductModelDetailsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 供应商产品型号表id + */ + @ExcelProperty(value = "供应商产品型号表id") + private String modelId; + + /** + * 指标名称 + */ + @ExcelProperty(value = "指标名称") + private String paramName; + + /** + * 指标参数 + */ + @ExcelProperty(value = "指标参数") + private String parameterValue; + + /** + * 是否关键指标 + */ + @ExcelProperty(value = "是否关键指标") + private String isKeyParameter; + + /** + * 是否临时数据 + */ + @ExcelProperty(value = "是否临时数据") + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductModelVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductModelVo.java new file mode 100644 index 0000000..258c5d0 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductModelVo.java @@ -0,0 +1,56 @@ +package org.dromara.productManagement.domain.vo; + +import org.dromara.productManagement.domain.PmgSupplierProductModel; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 供应商产品模型视图对象 pmg_supplier_product_model + * + * @author Lion Li + * @date 2024-07-01 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgSupplierProductModel.class) +public class PmgSupplierProductModelVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private String id; + + /** + * 供应商产品指标描述 + */ + @ExcelProperty(value = "供应商产品指标描述") + private String description; + + /** + * 产品型号模板id + */ + @ExcelProperty(value = "产品型号模板id") + private String productModelTemplateId; + + /** + * 是否临时数据 + */ + @ExcelProperty(value = "是否临时数据") + private String isTemporary; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductsVo.java new file mode 100644 index 0000000..5b523ff --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/PmgSupplierProductsVo.java @@ -0,0 +1,119 @@ +package org.dromara.productManagement.domain.vo; + +import java.math.BigDecimal; +import org.dromara.productManagement.domain.PmgSupplierProducts; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 供应商产品管理视图对象 pmg_supplier_products + * + * @author Lion Li + * @date 2024-06-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PmgSupplierProducts.class) +public class PmgSupplierProductsVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + private String id; + + /** + * 供应商id + */ + @ExcelProperty(value = "供应商id") + private String supplierInformationId; + + /** + * 供应商产品规格 + */ + @ExcelProperty(value = "供应商产品规格") + private String productSpecifications; + + /** + * 产品名称 + */ + @ExcelProperty(value = "产品名称") + private String productName; + + /** + * 产品标识(型号) + */ + @ExcelProperty(value = "产品标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "型=号") + private String productIdentity; + + /** + * 产品价格 + */ + @ExcelProperty(value = "产品价格") + private BigDecimal productPrice; + + /** + * 信息来源 + */ + @ExcelProperty(value = "信息来源") + private String sourceInformation; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remarks; + + /** + * 图片 + */ + @ExcelProperty(value = "图片") + private String image; + + /** + * 品牌 + */ + @ExcelProperty(value = "品牌") + private String brand; + + /** + * 单位 + */ + @ExcelProperty(value = "单位") + private String unit; + + /** + * 除税价 + */ + @ExcelProperty(value = "除税价") + private BigDecimal exTaxPrice; + + /** + * 税率 + */ + @ExcelProperty(value = "税率") + private Long taxrate; + + /** + * 分类id + */ + @ExcelProperty(value = "分类id") + private String categoryId; + + /** + * 型号id + */ + @ExcelProperty(value = "型号id") + private String modelId; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ProductsVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ProductsVo.java new file mode 100644 index 0000000..f1c2999 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ProductsVo.java @@ -0,0 +1,93 @@ +package org.dromara.productManagement.domain.vo; + + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.dromara.common.mybatis.core.domain.BaseEntity; + +import java.math.BigDecimal; + +/** + * 视图对象类 + * + * @author ZHB + * @date 2024-05-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +public class ProductsVo extends BaseEntity { + private String id; + /** + * 个人产品型号id + */ + private String modelId; + + /** + * 供应商id + */ + private String supplierInformationId; + + /** + * 产品名称 + */ + private String productName; + + private String image; + + /** + * 产品标识(型号) + */ + private String productIdentity; + + /** + * 产品价格 + */ + private BigDecimal productPrice; + + /** + * 信息来源 + */ + private String sourceInformation; + + /** + * 备注 + */ + private String remarks; + + /** + * 关联厂商产品id + */ + private String supplierProductsId; + /** + * 产品描述 + */ + private String productSpecifications; + + /** + * 产品类型 (-1:全部, 0:供应商产品库, 1:公司产品库,2:个人产品库) + */ + private String productType; + /** + * 单位 + */ + private String unit; + + /********非库表存储属性*****/ + + + /********字典类*****/ + + /********实体类、用户单选、组织机构单选*****/ + + /********范围查询*****/ + + /********自定义扩展*****/ + + /********子对象*****/ + + + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/CmgCostItemDetailMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/CmgCostItemDetailMapper.java new file mode 100644 index 0000000..7c106e6 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/CmgCostItemDetailMapper.java @@ -0,0 +1,25 @@ +package org.dromara.productManagement.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.productManagement.domain.CmgCostItemDetail; +import org.dromara.productManagement.domain.bo.ProductsBo; +import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.productManagement.domain.vo.ProductsVo; + +import java.util.List; + +/** + * 造价编制详情Mapper接口 + * + * @author Lion Li + * @date 2024-06-29 + */ +public interface CmgCostItemDetailMapper extends BaseMapperPlus { + List getCostItemDetailWithChildrenByCostTableId(String costTableId); + IPage getProductsPageByType(Page pageQuery, @Param("queryVO") ProductsBo bo); + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/CmgCostTableMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/CmgCostTableMapper.java new file mode 100644 index 0000000..ec9822d --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/CmgCostTableMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.CmgCostTable; +import org.dromara.productManagement.domain.vo.CmgCostTableVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 造价编制信息Mapper接口 + * + * @author Lion Li + * @date 2024-06-29 + */ +public interface CmgCostTableMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductModelDetailsMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductModelDetailsMapper.java new file mode 100644 index 0000000..5b9ae72 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductModelDetailsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 公司产品模型详情表Mapper接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface PmgCompanyProductModelDetailsMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductModelMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductModelMapper.java new file mode 100644 index 0000000..7542fce --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductModelMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgCompanyProductModel; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 公司产品模型Mapper接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface PmgCompanyProductModelMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductsMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductsMapper.java new file mode 100644 index 0000000..255dbee --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgCompanyProductsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgCompanyProducts; +import org.dromara.productManagement.domain.vo.PmgCompanyProductsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 公司产品管理Mapper接口 + * + * @author Lion Li + * @date 2024-06-28 + */ +public interface PmgCompanyProductsMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductModelDetailsMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductModelDetailsMapper.java new file mode 100644 index 0000000..bffa7fe --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductModelDetailsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgPersonProductModelDetails; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 个人产品模型详情Mapper接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface PmgPersonProductModelDetailsMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductModelMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductModelMapper.java new file mode 100644 index 0000000..4ba5971 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductModelMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgPersonProductModel; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 个人产品模型Mapper接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface PmgPersonProductModelMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductsMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductsMapper.java new file mode 100644 index 0000000..00144dc --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgPersonProductsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgPersonProducts; +import org.dromara.productManagement.domain.vo.PmgPersonProductsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 个人产品管理Mapper接口 + * + * @author Lion Li + * @date 2024-06-28 + */ +public interface PmgPersonProductsMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierInformationMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierInformationMapper.java new file mode 100644 index 0000000..0f5a197 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierInformationMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgSupplierInformation; +import org.dromara.productManagement.domain.vo.PmgSupplierInformationVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 供应商信息管理Mapper接口 + * + * @author Lion Li + * @date 2024-06-28 + */ +public interface PmgSupplierInformationMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductModelDetailsMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductModelDetailsMapper.java new file mode 100644 index 0000000..c96c59c --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductModelDetailsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 供应商产品模型详细Mapper接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface PmgSupplierProductModelDetailsMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductModelMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductModelMapper.java new file mode 100644 index 0000000..863965b --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductModelMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgSupplierProductModel; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 供应商产品模型Mapper接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface PmgSupplierProductModelMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductsMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductsMapper.java new file mode 100644 index 0000000..f224b07 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/PmgSupplierProductsMapper.java @@ -0,0 +1,15 @@ +package org.dromara.productManagement.mapper; + +import org.dromara.productManagement.domain.PmgSupplierProducts; +import org.dromara.productManagement.domain.vo.PmgSupplierProductsVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 供应商产品管理Mapper接口 + * + * @author Lion Li + * @date 2024-06-28 + */ +public interface PmgSupplierProductsMapper extends BaseMapperPlus { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ICmgCostItemDetailService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ICmgCostItemDetailService.java new file mode 100644 index 0000000..8754f67 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ICmgCostItemDetailService.java @@ -0,0 +1,79 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.bo.ProductsBo; +import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; +import org.dromara.productManagement.domain.bo.CmgCostItemDetailBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.productManagement.domain.vo.CostDetailViewVo; +import org.dromara.productManagement.domain.vo.ProductsVo; + +import java.util.Collection; +import java.util.List; + +/** + * 造价编制详情Service接口 + * + * @author Lion Li + * @date 2024-06-29 + */ +public interface ICmgCostItemDetailService { + void addCostItemDetail(List costItemDetaiVOlList); + + List getCostItemDetail(String costTableId); + + void modifyCostItemDetail(List costItemDetaiVOlList); + + void removeByCostTableId(Collection costTableIds); + /** + * 查询造价编制详情 + * + * @param id 主键 + * @return 造价编制详情 + */ + CmgCostItemDetailVo queryById(String id); + + /** + * 分页查询造价编制详情列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 造价编制详情分页列表 + */ + TableDataInfo queryPageList(CmgCostItemDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的造价编制详情列表 + * + * @param bo 查询条件 + * @return 造价编制详情列表 + */ + List queryList(CmgCostItemDetailBo bo); + + /** + * 新增造价编制详情 + * + * @param bo 造价编制详情 + * @return 是否新增成功 + */ + Boolean insertByBo(CmgCostItemDetailBo bo); + + /** + * 修改造价编制详情 + * + * @param bo 造价编制详情 + * @return 是否修改成功 + */ + Boolean updateByBo(CmgCostItemDetailBo bo); + + /** + * 校验并批量删除造价编制详情信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + TableDataInfo getProductsPageByType(ProductsBo bo, PageQuery pageQuery); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ICmgCostTableService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ICmgCostTableService.java new file mode 100644 index 0000000..4eddcfa --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/ICmgCostTableService.java @@ -0,0 +1,79 @@ +package org.dromara.productManagement.service; + +import jakarta.servlet.http.HttpServletResponse; +import org.dromara.productManagement.domain.vo.CmgCostTableVo; +import org.dromara.productManagement.domain.bo.CmgCostTableBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.productManagement.domain.vo.CostDetailViewVo; + +import java.io.IOException; +import java.util.Collection; +import java.util.List; + +/** + * 造价编制信息Service接口 + * + * @author Lion Li + * @date 2024-06-29 + */ +public interface ICmgCostTableService { + + /** + * 查询造价编制信息 + * + * @param id 主键 + * @return 造价编制信息 + */ + CmgCostTableVo queryById(String id); + + /** + * 分页查询造价编制信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 造价编制信息分页列表 + */ + TableDataInfo queryPageList(CmgCostTableBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的造价编制信息列表 + * + * @param bo 查询条件 + * @return 造价编制信息列表 + */ + List queryList(CmgCostTableBo bo); + + /** + * 新增造价编制信息 + * + * @param bo 造价编制信息 + * @return 是否新增成功 + */ + Boolean insertByBo(CmgCostTableBo bo); + + /** + * 修改造价编制信息 + * + * @param bo 造价编制信息 + * @return 是否修改成功 + */ + Boolean updateByBo(CmgCostTableBo bo); + + /** + * 校验并批量删除造价编制信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + CostDetailViewVo getCostTableDetail(String id); + + void addCostTable(CostDetailViewVo vo); + + void modifyCostTable(CostDetailViewVo vo); + + void exportData(String id, HttpServletResponse response) throws IOException;; +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductModelDetailsService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductModelDetailsService.java new file mode 100644 index 0000000..1beca23 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductModelDetailsService.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 公司产品模型详情表Service接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface IPmgCompanyProductModelDetailsService { + + /** + * 查询公司产品模型详情表 + * + * @param id 主键 + * @return 公司产品模型详情表 + */ + PmgCompanyProductModelDetailsVo queryById(String id); + + /** + * 分页查询公司产品模型详情表列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 公司产品模型详情表分页列表 + */ + TableDataInfo queryPageList(PmgCompanyProductModelDetailsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的公司产品模型详情表列表 + * + * @param bo 查询条件 + * @return 公司产品模型详情表列表 + */ + List queryList(PmgCompanyProductModelDetailsBo bo); + + /** + * 新增公司产品模型详情表 + * + * @param bo 公司产品模型详情表 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgCompanyProductModelDetailsBo bo); + + /** + * 修改公司产品模型详情表 + * + * @param bo 公司产品模型详情表 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgCompanyProductModelDetailsBo bo); + + /** + * 校验并批量删除公司产品模型详情表信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductModelService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductModelService.java new file mode 100644 index 0000000..85a953b --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductModelService.java @@ -0,0 +1,91 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelVo; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; + +import java.util.Collection; +import java.util.List; + +/** + * 公司产品模型Service接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface IPmgCompanyProductModelService { + + /** + * 查询公司产品模型 + * + * @param id 主键 + * @return 公司产品模型 + */ + PmgCompanyProductModelVo queryById(String id); + + /** + * 分页查询公司产品模型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 公司产品模型分页列表 + */ + TableDataInfo queryPageList(PmgCompanyProductModelBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的公司产品模型列表 + * + * @param bo 查询条件 + * @return 公司产品模型列表 + */ + List queryList(PmgCompanyProductModelBo bo); + + /** + * 新增公司产品模型 + * + * @param bo 公司产品模型 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgCompanyProductModelBo bo); + + /** + * 修改公司产品模型 + * + * @param bo 公司产品模型 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgCompanyProductModelBo bo); + + /** + * 校验并批量删除公司产品模型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 根据id查询公司产品模型详情 + * @param id 个人产品模型表id + * @return + */ + List getModelDetails(String id); + + /** + * 新增公司产品模型及其详情 + * @param bo + * @return + */ + String addModel(ProductModelViewBo bo); + + /** + * 修改公司产品模型及其详情 + * @param bo + * @return + */ + String editModel(ProductModelViewBo bo); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductsService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductsService.java new file mode 100644 index 0000000..a8759aa --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgCompanyProductsService.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.vo.PmgCompanyProductsVo; +import org.dromara.productManagement.domain.bo.PmgCompanyProductsBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 公司产品管理Service接口 + * + * @author Lion Li + * @date 2024-06-28 + */ +public interface IPmgCompanyProductsService { + + /** + * 查询公司产品管理 + * + * @param id 主键 + * @return 公司产品管理 + */ + PmgCompanyProductsVo queryById(String id); + + /** + * 分页查询公司产品管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 公司产品管理分页列表 + */ + TableDataInfo queryPageList(PmgCompanyProductsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的公司产品管理列表 + * + * @param bo 查询条件 + * @return 公司产品管理列表 + */ + List queryList(PmgCompanyProductsBo bo); + + /** + * 新增公司产品管理 + * + * @param bo 公司产品管理 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgCompanyProductsBo bo); + + /** + * 修改公司产品管理 + * + * @param bo 公司产品管理 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgCompanyProductsBo bo); + + /** + * 校验并批量删除公司产品管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductModelDetailsService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductModelDetailsService.java new file mode 100644 index 0000000..fd92533 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductModelDetailsService.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; +import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 个人产品模型详情Service接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface IPmgPersonProductModelDetailsService { + + /** + * 查询个人产品模型详情 + * + * @param id 主键 + * @return 个人产品模型详情 + */ + PmgPersonProductModelDetailsVo queryById(String id); + + /** + * 分页查询个人产品模型详情列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 个人产品模型详情分页列表 + */ + TableDataInfo queryPageList(PmgPersonProductModelDetailsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的个人产品模型详情列表 + * + * @param bo 查询条件 + * @return 个人产品模型详情列表 + */ + List queryList(PmgPersonProductModelDetailsBo bo); + + /** + * 新增个人产品模型详情 + * + * @param bo 个人产品模型详情 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgPersonProductModelDetailsBo bo); + + /** + * 修改个人产品模型详情 + * + * @param bo 个人产品模型详情 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgPersonProductModelDetailsBo bo); + + /** + * 校验并批量删除个人产品模型详情信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductModelService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductModelService.java new file mode 100644 index 0000000..d53e1fa --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductModelService.java @@ -0,0 +1,92 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelVo; +import org.dromara.productManagement.domain.bo.PmgPersonProductModelBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 个人产品模型Service接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface IPmgPersonProductModelService { + + /** + * 查询个人产品模型 + * + * @param id 主键 + * @return 个人产品模型 + */ + PmgPersonProductModelVo queryById(String id); + + /** + * 分页查询个人产品模型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 个人产品模型分页列表 + */ + TableDataInfo queryPageList(PmgPersonProductModelBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的个人产品模型列表 + * + * @param bo 查询条件 + * @return 个人产品模型列表 + */ + List queryList(PmgPersonProductModelBo bo); + + /** + * 新增个人产品模型 + * + * @param bo 个人产品模型 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgPersonProductModelBo bo); + + /** + * 修改个人产品模型 + * + * @param bo 个人产品模型 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgPersonProductModelBo bo); + + /** + * 校验并批量删除个人产品模型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据id查询个人产品模型详情 + * @param id 个人产品模型表id + * @return + */ + List getModelDetails(String id); + + /** + * 新增个人产品模型及其详情 + * @param bo + * @return + */ + String addModel(ProductModelViewBo bo); + + /** + * 修改个人产品模型及其详情 + * @param bo + * @return + */ + String editModel(ProductModelViewBo bo); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductsService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductsService.java new file mode 100644 index 0000000..38a4319 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgPersonProductsService.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.vo.PmgPersonProductsVo; +import org.dromara.productManagement.domain.bo.PmgPersonProductsBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 个人产品管理Service接口 + * + * @author Lion Li + * @date 2024-06-28 + */ +public interface IPmgPersonProductsService { + + /** + * 查询个人产品管理 + * + * @param id 主键 + * @return 个人产品管理 + */ + PmgPersonProductsVo queryById(String id); + + /** + * 分页查询个人产品管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 个人产品管理分页列表 + */ + TableDataInfo queryPageList(PmgPersonProductsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的个人产品管理列表 + * + * @param bo 查询条件 + * @return 个人产品管理列表 + */ + List queryList(PmgPersonProductsBo bo); + + /** + * 新增个人产品管理 + * + * @param bo 个人产品管理 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgPersonProductsBo bo); + + /** + * 修改个人产品管理 + * + * @param bo 个人产品管理 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgPersonProductsBo bo); + + /** + * 校验并批量删除个人产品管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierInformationService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierInformationService.java new file mode 100644 index 0000000..2f2e477 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierInformationService.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.vo.PmgSupplierInformationVo; +import org.dromara.productManagement.domain.bo.PmgSupplierInformationBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 供应商信息管理Service接口 + * + * @author Lion Li + * @date 2024-06-28 + */ +public interface IPmgSupplierInformationService { + + /** + * 查询供应商信息管理 + * + * @param id 主键 + * @return 供应商信息管理 + */ + PmgSupplierInformationVo queryById(String id); + + /** + * 分页查询供应商信息管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商信息管理分页列表 + */ + TableDataInfo queryPageList(PmgSupplierInformationBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的供应商信息管理列表 + * + * @param bo 查询条件 + * @return 供应商信息管理列表 + */ + List queryList(PmgSupplierInformationBo bo); + + /** + * 新增供应商信息管理 + * + * @param bo 供应商信息管理 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgSupplierInformationBo bo); + + /** + * 修改供应商信息管理 + * + * @param bo 供应商信息管理 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgSupplierInformationBo bo); + + /** + * 校验并批量删除供应商信息管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductModelDetailsService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductModelDetailsService.java new file mode 100644 index 0000000..2d46552 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductModelDetailsService.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 供应商产品模型详细Service接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface IPmgSupplierProductModelDetailsService { + + /** + * 查询供应商产品模型详细 + * + * @param id 主键 + * @return 供应商产品模型详细 + */ + PmgSupplierProductModelDetailsVo queryById(String id); + + /** + * 分页查询供应商产品模型详细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商产品模型详细分页列表 + */ + TableDataInfo queryPageList(PmgSupplierProductModelDetailsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的供应商产品模型详细列表 + * + * @param bo 查询条件 + * @return 供应商产品模型详细列表 + */ + List queryList(PmgSupplierProductModelDetailsBo bo); + + /** + * 新增供应商产品模型详细 + * + * @param bo 供应商产品模型详细 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgSupplierProductModelDetailsBo bo); + + /** + * 修改供应商产品模型详细 + * + * @param bo 供应商产品模型详细 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgSupplierProductModelDetailsBo bo); + + /** + * 校验并批量删除供应商产品模型详细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductModelService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductModelService.java new file mode 100644 index 0000000..fadc908 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductModelService.java @@ -0,0 +1,91 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelVo; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 供应商产品模型Service接口 + * + * @author Lion Li + * @date 2024-07-01 + */ +public interface IPmgSupplierProductModelService { + + /** + * 查询供应商产品模型 + * + * @param id 主键 + * @return 供应商产品模型 + */ + PmgSupplierProductModelVo queryById(String id); + + /** + * 分页查询供应商产品模型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商产品模型分页列表 + */ + TableDataInfo queryPageList(PmgSupplierProductModelBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的供应商产品模型列表 + * + * @param bo 查询条件 + * @return 供应商产品模型列表 + */ + List queryList(PmgSupplierProductModelBo bo); + + /** + * 新增供应商产品模型 + * + * @param bo 供应商产品模型 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgSupplierProductModelBo bo); + + /** + * 修改供应商产品模型 + * + * @param bo 供应商产品模型 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgSupplierProductModelBo bo); + + /** + * 校验并批量删除供应商产品模型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 根据id查询供应商产品模型详情 + * @param id 供应商产品模型表id + * @return + */ + List getModelDetails(String id); + + /** + * 新增供应商产品模型及其详情 + * @param bo + * @return + */ + String addModel(ProductModelViewBo bo); + + /** + * 修改供应商产品模型及其详情 + * @param bo + * @return + */ + String editModel(ProductModelViewBo bo); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductsService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductsService.java new file mode 100644 index 0000000..9ea1e0c --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IPmgSupplierProductsService.java @@ -0,0 +1,68 @@ +package org.dromara.productManagement.service; + +import org.dromara.productManagement.domain.vo.PmgSupplierProductsVo; +import org.dromara.productManagement.domain.bo.PmgSupplierProductsBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 供应商产品管理Service接口 + * + * @author Lion Li + * @date 2024-06-28 + */ +public interface IPmgSupplierProductsService { + + /** + * 查询供应商产品管理 + * + * @param id 主键 + * @return 供应商产品管理 + */ + PmgSupplierProductsVo queryById(String id); + + /** + * 分页查询供应商产品管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商产品管理分页列表 + */ + TableDataInfo queryPageList(PmgSupplierProductsBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的供应商产品管理列表 + * + * @param bo 查询条件 + * @return 供应商产品管理列表 + */ + List queryList(PmgSupplierProductsBo bo); + + /** + * 新增供应商产品管理 + * + * @param bo 供应商产品管理 + * @return 是否新增成功 + */ + Boolean insertByBo(PmgSupplierProductsBo bo); + + /** + * 修改供应商产品管理 + * + * @param bo 供应商产品管理 + * @return 是否修改成功 + */ + Boolean updateByBo(PmgSupplierProductsBo bo); + + /** + * 校验并批量删除供应商产品管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/CmgCostItemDetailServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/CmgCostItemDetailServiceImpl.java new file mode 100644 index 0000000..ac9e440 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/CmgCostItemDetailServiceImpl.java @@ -0,0 +1,211 @@ +package org.dromara.productManagement.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.productManagement.domain.bo.ProductsBo; +import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; +import org.dromara.productManagement.domain.vo.ProductsVo; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.CmgCostItemDetailBo; +import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; +import org.dromara.productManagement.domain.CmgCostItemDetail; +import org.dromara.productManagement.mapper.CmgCostItemDetailMapper; +import org.dromara.productManagement.service.ICmgCostItemDetailService; + +import java.util.*; + +/** + * 造价编制详情Service业务层处理 + * + * @author Lion Li + * @date 2024-06-29 + */ +@RequiredArgsConstructor +@Service +public class CmgCostItemDetailServiceImpl implements ICmgCostItemDetailService { + + private final CmgCostItemDetailMapper baseMapper; + @Override + public void addCostItemDetail(List costItemDetaiVOlList) { + if (CollUtil.isEmpty(costItemDetaiVOlList)) { + return; + } + List costItemDetailList = new ArrayList<>(); + for (CmgCostItemDetailVo costItemDetailVO : costItemDetaiVOlList) { + //获取子类内容加入到List + getChildAddToList(costItemDetailVO, costItemDetailList); + CmgCostItemDetail costItemDetail = MapstructUtils.convert(costItemDetailVO, CmgCostItemDetail.class); + costItemDetailList.add(costItemDetail); + + } + //批量保存 + baseMapper.insertBatch(costItemDetailList); + } + + @Override + public List getCostItemDetail(String costTableId) { + List detail = baseMapper.getCostItemDetailWithChildrenByCostTableId(costTableId); + return detail; + } + + @Override + public void modifyCostItemDetail(List costItemDetaiVOlList) { + String costTableId = costItemDetaiVOlList.get(0).getCostTableId(); + removeByCostTableId(Arrays.asList(costTableId)); + if (CollUtil.isEmpty(costItemDetaiVOlList)) { + return; + } + List costItemDetailList = new ArrayList<>(); + for (CmgCostItemDetailVo costItemDetailVO : costItemDetaiVOlList) { + //获取子类内容加入到List + getChildAddToList(costItemDetailVO, costItemDetailList); + + + CmgCostItemDetail costItemDetail = MapstructUtils.convert(costItemDetailVO, CmgCostItemDetail.class); + costItemDetail.setUpdateBy(null); + costItemDetail.setUpdateTime(null); + costItemDetailList.add(costItemDetail); + + } + //批量保存 + baseMapper.insertBatch(costItemDetailList); + } + + @Override + public void removeByCostTableId(Collection costTableIds) { + for (String costTableId : costTableIds) { + LambdaUpdateWrapper deleteWrapper = new LambdaUpdateWrapper<>(); + deleteWrapper.eq(CmgCostItemDetail::getCostTableId, costTableId); + baseMapper.delete(deleteWrapper);//删除原有数据 + } + + } + /** + * 查询造价编制详情 + * + * @param id 主键 + * @return 造价编制详情 + */ + @Override + public CmgCostItemDetailVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询造价编制详情列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 造价编制详情分页列表 + */ + @Override + public TableDataInfo queryPageList(CmgCostItemDetailBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的造价编制详情列表 + * + * @param bo 查询条件 + * @return 造价编制详情列表 + */ + @Override + public List queryList(CmgCostItemDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CmgCostItemDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + return lqw; + } + + /** + * 新增造价编制详情 + * + * @param bo 造价编制详情 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CmgCostItemDetailBo bo) { + CmgCostItemDetail add = MapstructUtils.convert(bo, CmgCostItemDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改造价编制详情 + * + * @param bo 造价编制详情 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CmgCostItemDetailBo bo) { + CmgCostItemDetail update = MapstructUtils.convert(bo, CmgCostItemDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CmgCostItemDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除造价编制详情信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } + + @Override + public TableDataInfo getProductsPageByType(ProductsBo bo, PageQuery pageQuery) { + IPage productsPageByType = baseMapper.getProductsPageByType(pageQuery.build(), bo); + return TableDataInfo.build(productsPageByType); + } + + /** + * 获取子类内容加入到List + * @param costItemDetailVO costItemDetailVO + * @param costItemDetailList costItemDetail保存容器 + */ + protected void getChildAddToList(CmgCostItemDetailVo costItemDetailVO, List costItemDetailList) { + if (CollUtil.isEmpty(costItemDetailVO.getChildren())) { + return; + } + for (CmgCostItemDetailVo child : costItemDetailVO.getChildren()) { + getChildAddToList(child, costItemDetailList); + //子类内容 + CmgCostItemDetail childCostItemDetail = MapstructUtils.convert(child, CmgCostItemDetail.class); + childCostItemDetail.setUpdateBy(null); + childCostItemDetail.setUpdateTime(null); + costItemDetailList.add(childCostItemDetail); + } + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/CmgCostTableServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/CmgCostTableServiceImpl.java new file mode 100644 index 0000000..a0d5177 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/CmgCostTableServiceImpl.java @@ -0,0 +1,310 @@ +package org.dromara.productManagement.service.impl; + +import cn.hutool.core.convert.NumberChineseFormatter; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import jakarta.servlet.http.HttpServletResponse; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.excel.utils.EasyExcelUtils; +import org.dromara.common.excel.utils.ExcelColumnMergeHandler; +import org.dromara.common.excel.utils.ExcelRowMergeHandler; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; +import org.dromara.productManagement.domain.vo.CostDetailViewVo; +import org.dromara.productManagement.mapper.CmgCostItemDetailMapper; +import org.dromara.productManagement.service.ICmgCostItemDetailService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.CmgCostTableBo; +import org.dromara.productManagement.domain.vo.CmgCostTableVo; +import org.dromara.productManagement.domain.CmgCostTable; +import org.dromara.productManagement.mapper.CmgCostTableMapper; +import org.dromara.productManagement.service.ICmgCostTableService; + +import java.io.IOException; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.util.*; + +/** + * 造价编制信息Service业务层处理 + * + * @author Lion Li + * @date 2024-06-29 + */ +@RequiredArgsConstructor +@Service +public class CmgCostTableServiceImpl implements ICmgCostTableService { + + private final CmgCostTableMapper baseMapper; + @Autowired + private ICmgCostItemDetailService costItemDetailService; + @Override + public void addCostTable(CostDetailViewVo vo) { + vo.setCostDate(new Date()); + costItemDetailService.addCostItemDetail(vo.getCostItemDetailList());//保存造价明细 + CmgCostTableBo cmgCostTablebo = new CmgCostTableBo(); + BeanUtils.copyProperties(vo,cmgCostTablebo); + insertByBo(cmgCostTablebo);//修改造价表 + } + @Override + public void modifyCostTable(CostDetailViewVo vo) { + costItemDetailService.modifyCostItemDetail(vo.getCostItemDetailList());//保存造价明细 + CmgCostTableBo cmgCostTablebo = new CmgCostTableBo(); + BeanUtils.copyProperties(vo,cmgCostTablebo); + updateByBo(cmgCostTablebo);//修改造价表 + } + @Override + public CostDetailViewVo getCostTableDetail(String id) { + CostDetailViewVo costDetailViewVO = new CostDetailViewVo(); + CmgCostTableVo cmgCostTableVo = queryById(id); + + costDetailViewVO.setId(id); + costDetailViewVO.setProjectName(cmgCostTableVo.getProjectName()); + costDetailViewVO.setTotalInvestment(cmgCostTableVo.getTotalInvestment()); + costDetailViewVO.setCostDate(cmgCostTableVo.getCostDate()); + List costItemDetail = costItemDetailService.getCostItemDetail(cmgCostTableVo.getId()); + costDetailViewVO.setCostItemDetailList(costItemDetail); + return costDetailViewVO; + } + @Override + public void exportData(String id, HttpServletResponse response) throws IOException { + //导出数据 + //web设置 + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + String exportFileName = URLEncoder.encode("ces", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + exportFileName + ".xlsx"); + response.setHeader("filename", exportFileName + ".xlsx"); + response.setHeader("Access-Control-Expose-Headers", "filename"); + //1.查询数据 + CmgCostTableVo costTable = queryById(id); + List costItemDetail = costItemDetailService.getCostItemDetail(costTable.getId()); + List heads = new ArrayList<>(); + heads.add("序号"); + heads.add("费用类型"); + heads.add("建设内容"); + heads.add("小计(元)"); + heads.add("备注"); + List childHeads = new ArrayList<>(); + childHeads.add("序号"); + childHeads.add("设备名称"); + childHeads.add("主要技术参数"); + childHeads.add("数量"); + childHeads.add("单位"); + childHeads.add("单价"); + childHeads.add("小计"); + List otherCostData = new ArrayList<>(); + List> otherCostList= new ArrayList<>(); + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build(); + List> dataList = new ArrayList<>(); + ExcelColumnMergeHandler columnMergeHandler = new ExcelColumnMergeHandler(1, new int[]{0, 1}); + ExcelRowMergeHandler rowMergeHandler = new ExcelRowMergeHandler(); + Integer xuhao= 1; + Integer num=0; + for (int i = 0; i < costItemDetail.size(); i++) { + CmgCostItemDetailVo costItemDetailVO = costItemDetail.get(i); + if(StringUtils.isBlank(costItemDetailVO.getCostType())){ + List objects = getChildDataList(costItemDetailVO, i); + otherCostList.add(objects); + continue; + } + List objectList = getDataList(costItemDetail, i, xuhao); + dataList.add(objectList); + + num = setChildDataSheet(costItemDetailVO,excelWriter,num,heads,childHeads,columnMergeHandler,rowMergeHandler); + + } + num=num+1; + WriteSheet sheet2 = EasyExcel.writerSheet(num,"未分类费用").head(EasyExcelUtils.head(childHeads)).registerWriteHandler(columnMergeHandler).registerWriteHandler(rowMergeHandler).build(); + excelWriter.write(otherCostList, sheet2); + WriteSheet sheet1 = EasyExcel.writerSheet(0, "项目投资概算总表").head(EasyExcelUtils.head(heads)).registerWriteHandler(columnMergeHandler).registerWriteHandler(rowMergeHandler).build(); + excelWriter.write(dataList, sheet1); + excelWriter.finish(); + //3.返回结果 + } + /** + * 查询造价编制信息 + * + * @param id 主键 + * @return 造价编制信息 + */ + @Override + public CmgCostTableVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询造价编制信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 造价编制信息分页列表 + */ + @Override + public TableDataInfo queryPageList(CmgCostTableBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的造价编制信息列表 + * + * @param bo 查询条件 + * @return 造价编制信息列表 + */ + @Override + public List queryList(CmgCostTableBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(CmgCostTableBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getProjectName()), CmgCostTable::getProjectName, bo.getProjectName()); + lqw.eq(bo.getCostDate() != null, CmgCostTable::getCostDate, bo.getCostDate()); + lqw.eq(bo.getTotalInvestment() != null, CmgCostTable::getTotalInvestment, bo.getTotalInvestment()); + return lqw; + } + + /** + * 新增造价编制信息 + * + * @param bo 造价编制信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(CmgCostTableBo bo) { + CmgCostTable add = MapstructUtils.convert(bo, CmgCostTable.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改造价编制信息 + * + * @param bo 造价编制信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(CmgCostTableBo bo) { + CmgCostTable update = MapstructUtils.convert(bo, CmgCostTable.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(CmgCostTable entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除造价编制信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + costItemDetailService.removeByCostTableId(ids); + return baseMapper.deleteBatchIds(ids) > 0; + } + + private List getChildDataList(CmgCostItemDetailVo children, Integer j) { + List childObject = new ArrayList<>(); + childObject.add(NumberChineseFormatter.format(j + 1, false, false)); + childObject.add(children.getCostName()); + childObject.add(children.getCostDescribe()); + childObject.add(children.getQuantity()); + childObject.add(children.getUnit()); + childObject.add(children.getUnitPrice()); + childObject.add(children.getTotalPrice()); + return childObject; + } + private List getDataList(List costItemDetail, Integer i, Integer xuhao) { + CmgCostItemDetailVo costItemDetailVO = costItemDetail.get(i); + List objectList = new ArrayList<>(); + if(i>=1){ + //比较后一个和前一个是否一样 + String newCostType = costItemDetailVO.getCostType(); + String lastCostType = costItemDetail.get(i-1).getCostType(); + if(!newCostType.equals(lastCostType)) { + xuhao=xuhao+1; + } + } + objectList.add(NumberChineseFormatter.format(xuhao,false,false)); + objectList.add(costItemDetailVO.getCostType()); + objectList.add(costItemDetailVO.getConstructContent()); + objectList.add(costItemDetailVO.getTotalPrice()); + objectList.add(costItemDetailVO.getRemarks()); + return objectList; + } + /** + * 递归获取子节点数据 + * @param costItemDetailVO + * @param num + * @return + */ + private Integer setChildDataSheet(CmgCostItemDetailVo costItemDetailVO, + ExcelWriter excelWriter, + Integer num, + List heads, + List childHeads, + ExcelColumnMergeHandler columnMergeHandler, + ExcelRowMergeHandler rowMergeHandler) { + List childrenList = costItemDetailVO.getChildren(); + List> childDataList = new ArrayList<>(); + Boolean isDetail = true; + for (Integer j = 0; j < childrenList.size(); j++) { + CmgCostItemDetailVo child = childrenList.get(j); + if(child.getIsDetail().equals("1")){ + isDetail=true; + List childObject = getChildDataList(child, j); + childDataList.add(childObject); + List childChildren = child.getChildren(); + if(childChildren.size()>0){ + num = setChildDataSheet(child,excelWriter,num,heads,childHeads,columnMergeHandler,rowMergeHandler); + } + }else{ + isDetail=false; + Integer xuhao=1; + List childObject = getDataList(childrenList, j, xuhao); + childDataList.add(childObject); + List childChildren = child.getChildren(); + if(childChildren.size()>0){ + num = setChildDataSheet(child,excelWriter,num,heads,childHeads,columnMergeHandler,rowMergeHandler); + } + } + + } + num=num+1; + if(!isDetail){ + WriteSheet sheet2 = EasyExcel.writerSheet(num,costItemDetailVO.getConstructContent()).head(EasyExcelUtils.head(heads)).registerWriteHandler(columnMergeHandler).registerWriteHandler(rowMergeHandler).build(); + excelWriter.write(childDataList, sheet2); + return num; + } + WriteSheet sheet2 = EasyExcel.writerSheet(num,costItemDetailVO.getConstructContent()).head(EasyExcelUtils.head(childHeads)).registerWriteHandler(columnMergeHandler).registerWriteHandler(rowMergeHandler).build(); + excelWriter.write(childDataList, sheet2); + return num; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductModelDetailsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductModelDetailsServiceImpl.java new file mode 100644 index 0000000..e0299c5 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductModelDetailsServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.productManagement.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; +import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; +import org.dromara.productManagement.mapper.PmgCompanyProductModelDetailsMapper; +import org.dromara.productManagement.service.IPmgCompanyProductModelDetailsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 公司产品模型详情表Service业务层处理 + * + * @author Lion Li + * @date 2024-07-01 + */ +@RequiredArgsConstructor +@Service +public class PmgCompanyProductModelDetailsServiceImpl implements IPmgCompanyProductModelDetailsService { + + private final PmgCompanyProductModelDetailsMapper baseMapper; + + /** + * 查询公司产品模型详情表 + * + * @param id 主键 + * @return 公司产品模型详情表 + */ + @Override + public PmgCompanyProductModelDetailsVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询公司产品模型详情表列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 公司产品模型详情表分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgCompanyProductModelDetailsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的公司产品模型详情表列表 + * + * @param bo 查询条件 + * @return 公司产品模型详情表列表 + */ + @Override + public List queryList(PmgCompanyProductModelDetailsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgCompanyProductModelDetailsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getModelId()), PmgCompanyProductModelDetails::getModelId, bo.getModelId()); + lqw.like(StringUtils.isNotBlank(bo.getParamName()), PmgCompanyProductModelDetails::getParamName, bo.getParamName()); + lqw.eq(StringUtils.isNotBlank(bo.getParameterValue()), PmgCompanyProductModelDetails::getParameterValue, bo.getParameterValue()); + lqw.eq(StringUtils.isNotBlank(bo.getIsKeyParameter()), PmgCompanyProductModelDetails::getIsKeyParameter, bo.getIsKeyParameter()); + lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgCompanyProductModelDetails::getIsTemporary, bo.getIsTemporary()); + return lqw; + } + + /** + * 新增公司产品模型详情表 + * + * @param bo 公司产品模型详情表 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgCompanyProductModelDetailsBo bo) { + PmgCompanyProductModelDetails add = MapstructUtils.convert(bo, PmgCompanyProductModelDetails.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改公司产品模型详情表 + * + * @param bo 公司产品模型详情表 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgCompanyProductModelDetailsBo bo) { + PmgCompanyProductModelDetails update = MapstructUtils.convert(bo, PmgCompanyProductModelDetails.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgCompanyProductModelDetails entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除公司产品模型详情表信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductModelServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductModelServiceImpl.java new file mode 100644 index 0000000..ec06080 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductModelServiceImpl.java @@ -0,0 +1,196 @@ +package org.dromara.productManagement.service.impl; + +import cn.hutool.core.collection.CollUtil; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelBo; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; +import org.dromara.productManagement.mapper.PmgCompanyProductModelDetailsMapper; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgCompanyProductModelBo; +import org.dromara.productManagement.domain.vo.PmgCompanyProductModelVo; +import org.dromara.productManagement.domain.PmgCompanyProductModel; +import org.dromara.productManagement.mapper.PmgCompanyProductModelMapper; +import org.dromara.productManagement.service.IPmgCompanyProductModelService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 公司产品模型Service业务层处理 + * + * @author Lion Li + * @date 2024-07-01 + */ +@RequiredArgsConstructor +@Service +public class PmgCompanyProductModelServiceImpl implements IPmgCompanyProductModelService { + + private final PmgCompanyProductModelMapper baseMapper; + private final PmgCompanyProductModelDetailsMapper pmgCompanyProductModelDetailsMapper; + + @Override + public List getModelDetails(String id) { + //根据型号id查询型号详情规格指标 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PmgCompanyProductModelDetails::getModelId, id); + List list = pmgCompanyProductModelDetailsMapper.selectVoList(queryWrapper); + if (CollUtil.isEmpty(list)) { + return new ArrayList<>(); + } + return list; + } + + @Override + public String addModel(ProductModelViewBo bo) { + PmgCompanyProductModelBo productModelBo = new PmgCompanyProductModelBo(); + BeanUtils.copyProperties(bo, productModelBo); + insertByBo(productModelBo); + String modelId = productModelBo.getId(); + List modelDeatils = bo.getModelDeatils(); + for (PmgCompanyProductModelDetailsBo item :modelDeatils + ) { + item.setModelId(modelId); + PmgCompanyProductModelDetails modelDetails = MapstructUtils.convert(item, PmgCompanyProductModelDetails.class); + pmgCompanyProductModelDetailsMapper.insert(modelDetails); + } + //保存型号 + + return modelId; + } + + @Override + public String editModel(ProductModelViewBo bo) { + String id = bo.getId(); + //删除原型号指标参数 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PmgCompanyProductModelDetails::getModelId, id); + pmgCompanyProductModelDetailsMapper.delete(queryWrapper); + List modelDeatils = bo.getModelDeatils(); + //给型号指标设置型号id,并保存 + for (PmgCompanyProductModelDetailsBo item :modelDeatils + ) { + item.setModelId(id); + item.setId(null); + item.setUpdateBy(null); + item.setUpdateTime(null); + PmgCompanyProductModelDetails modelDetails = MapstructUtils.convert(item, PmgCompanyProductModelDetails.class); + modelDetails.setIsTemporary("0");//修改的化,将临时标记改为0,表示非临时 + pmgCompanyProductModelDetailsMapper.insert(modelDetails); + } + //保存型号 + PmgCompanyProductModelBo productModelBo = new PmgCompanyProductModelBo(); + BeanUtils.copyProperties(bo, productModelBo); + updateByBo(productModelBo); + return productModelBo.getId(); + } + /** + * 查询公司产品模型 + * + * @param id 主键 + * @return 公司产品模型 + */ + @Override + public PmgCompanyProductModelVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询公司产品模型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 公司产品模型分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgCompanyProductModelBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的公司产品模型列表 + * + * @param bo 查询条件 + * @return 公司产品模型列表 + */ + @Override + public List queryList(PmgCompanyProductModelBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgCompanyProductModelBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getDescription()), PmgCompanyProductModel::getDescription, bo.getDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getProductModelTemplateId()), PmgCompanyProductModel::getProductModelTemplateId, bo.getProductModelTemplateId()); + lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgCompanyProductModel::getIsTemporary, bo.getIsTemporary()); + return lqw; + } + + /** + * 新增公司产品模型 + * + * @param bo 公司产品模型 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgCompanyProductModelBo bo) { + PmgCompanyProductModel add = MapstructUtils.convert(bo, PmgCompanyProductModel.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改公司产品模型 + * + * @param bo 公司产品模型 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgCompanyProductModelBo bo) { + PmgCompanyProductModel update = MapstructUtils.convert(bo, PmgCompanyProductModel.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgCompanyProductModel entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除公司产品模型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductsServiceImpl.java new file mode 100644 index 0000000..40c7161 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgCompanyProductsServiceImpl.java @@ -0,0 +1,170 @@ +package org.dromara.productManagement.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.productManagement.domain.*; +import org.dromara.productManagement.mapper.PmgCompanyProductModelDetailsMapper; +import org.dromara.productManagement.mapper.PmgCompanyProductModelMapper; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgCompanyProductsBo; +import org.dromara.productManagement.domain.vo.PmgCompanyProductsVo; +import org.dromara.productManagement.mapper.PmgCompanyProductsMapper; +import org.dromara.productManagement.service.IPmgCompanyProductsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 公司产品管理Service业务层处理 + * + * @author Lion Li + * @date 2024-06-28 + */ +@RequiredArgsConstructor +@Service +public class PmgCompanyProductsServiceImpl implements IPmgCompanyProductsService { + + private final PmgCompanyProductsMapper baseMapper; + private final PmgCompanyProductModelDetailsMapper companyProductModelDetailsMapper; + private final PmgCompanyProductModelMapper companyProductModelMapper; + + /** + * 查询公司产品管理 + * + * @param id 主键 + * @return 公司产品管理 + */ + @Override + public PmgCompanyProductsVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询公司产品管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 公司产品管理分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgCompanyProductsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的公司产品管理列表 + * + * @param bo 查询条件 + * @return 公司产品管理列表 + */ + @Override + public List queryList(PmgCompanyProductsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgCompanyProductsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierProductsId()), PmgCompanyProducts::getSupplierProductsId, bo.getSupplierProductsId()); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierInformationId()), PmgCompanyProducts::getSupplierInformationId, bo.getSupplierInformationId()); + lqw.eq(StringUtils.isNotBlank(bo.getProductSpecifications()), PmgCompanyProducts::getProductSpecifications, bo.getProductSpecifications()); + lqw.like(StringUtils.isNotBlank(bo.getProductName()), PmgCompanyProducts::getProductName, bo.getProductName()); + lqw.like(StringUtils.isNotBlank(bo.getProductIdentity()), PmgCompanyProducts::getProductIdentity, bo.getProductIdentity()); + lqw.eq(bo.getProductPrice() != null, PmgCompanyProducts::getProductPrice, bo.getProductPrice()); + lqw.eq(StringUtils.isNotBlank(bo.getSourceInformation()), PmgCompanyProducts::getSourceInformation, bo.getSourceInformation()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), PmgCompanyProducts::getRemarks, bo.getRemarks()); + lqw.eq(StringUtils.isNotBlank(bo.getBrand()), PmgCompanyProducts::getBrand, bo.getBrand()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), PmgCompanyProducts::getUnit, bo.getUnit()); + lqw.eq(bo.getExTaxPrice() != null, PmgCompanyProducts::getExTaxPrice, bo.getExTaxPrice()); + lqw.eq(bo.getTaxrate() != null, PmgCompanyProducts::getTaxrate, bo.getTaxrate()); + return lqw; + } + + /** + * 新增公司产品管理 + * + * @param bo 公司产品管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgCompanyProductsBo bo) { + PmgCompanyProducts add = MapstructUtils.convert(bo, PmgCompanyProducts.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + String modelId = add.getModelId(); + if (StringUtils.isNotBlank(modelId)) { + // 更新型号的is_temporary标记为非临时数据 + LambdaUpdateWrapper modelUpdateWrapper = new LambdaUpdateWrapper<>(); + modelUpdateWrapper.eq(PmgCompanyProductModel::getId, modelId); + modelUpdateWrapper.set(PmgCompanyProductModel::getIsTemporary, "0"); + companyProductModelMapper.update(null,modelUpdateWrapper); + // 更新型号规格参数的is_temporary标记为非临时数据 + LambdaUpdateWrapper detailsUpdateWrapper = new LambdaUpdateWrapper<>(); + detailsUpdateWrapper.eq(PmgCompanyProductModelDetails::getModelId, modelId); + detailsUpdateWrapper.set(PmgCompanyProductModelDetails::getIsTemporary, "0"); + companyProductModelDetailsMapper.update(null,detailsUpdateWrapper); + } + } + return flag; + } + + /** + * 修改公司产品管理 + * + * @param bo 公司产品管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgCompanyProductsBo bo) { + PmgCompanyProducts update = MapstructUtils.convert(bo, PmgCompanyProducts.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgCompanyProducts entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除公司产品管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + baseMapper.selectVoBatchIds(ids).forEach(item -> { + String modelId = item.getModelId(); + if (StringUtils.isNotBlank(modelId)) { + LambdaUpdateWrapper modelUpdateWrapper = new LambdaUpdateWrapper<>(); // 临时数据标记 + modelUpdateWrapper.eq(PmgCompanyProductModel::getId, modelId); + companyProductModelMapper.delete(modelUpdateWrapper); + // 更新型号规格参数的is_temporary标记为临时数据 + LambdaUpdateWrapper detailsUpdateWrapper = new LambdaUpdateWrapper<>(); + detailsUpdateWrapper.eq(PmgCompanyProductModelDetails::getModelId, modelId); + companyProductModelDetailsMapper.delete(detailsUpdateWrapper); + } + }); + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductModelDetailsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductModelDetailsServiceImpl.java new file mode 100644 index 0000000..8f34c8a --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductModelDetailsServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.productManagement.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; +import org.dromara.productManagement.domain.PmgPersonProductModelDetails; +import org.dromara.productManagement.mapper.PmgPersonProductModelDetailsMapper; +import org.dromara.productManagement.service.IPmgPersonProductModelDetailsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 个人产品模型详情Service业务层处理 + * + * @author Lion Li + * @date 2024-07-01 + */ +@RequiredArgsConstructor +@Service +public class PmgPersonProductModelDetailsServiceImpl implements IPmgPersonProductModelDetailsService { + + private final PmgPersonProductModelDetailsMapper baseMapper; + + /** + * 查询个人产品模型详情 + * + * @param id 主键 + * @return 个人产品模型详情 + */ + @Override + public PmgPersonProductModelDetailsVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询个人产品模型详情列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 个人产品模型详情分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgPersonProductModelDetailsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的个人产品模型详情列表 + * + * @param bo 查询条件 + * @return 个人产品模型详情列表 + */ + @Override + public List queryList(PmgPersonProductModelDetailsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgPersonProductModelDetailsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getModelId()), PmgPersonProductModelDetails::getModelId, bo.getModelId()); + lqw.like(StringUtils.isNotBlank(bo.getParamName()), PmgPersonProductModelDetails::getParamName, bo.getParamName()); + lqw.eq(StringUtils.isNotBlank(bo.getParameterValue()), PmgPersonProductModelDetails::getParameterValue, bo.getParameterValue()); + lqw.eq(StringUtils.isNotBlank(bo.getIsKeyParameter()), PmgPersonProductModelDetails::getIsKeyParameter, bo.getIsKeyParameter()); + lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgPersonProductModelDetails::getIsTemporary, bo.getIsTemporary()); + return lqw; + } + + /** + * 新增个人产品模型详情 + * + * @param bo 个人产品模型详情 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgPersonProductModelDetailsBo bo) { + PmgPersonProductModelDetails add = MapstructUtils.convert(bo, PmgPersonProductModelDetails.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改个人产品模型详情 + * + * @param bo 个人产品模型详情 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgPersonProductModelDetailsBo bo) { + PmgPersonProductModelDetails update = MapstructUtils.convert(bo, PmgPersonProductModelDetails.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgPersonProductModelDetails entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除个人产品模型详情信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductModelServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductModelServiceImpl.java new file mode 100644 index 0000000..37a070c --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductModelServiceImpl.java @@ -0,0 +1,197 @@ +package org.dromara.productManagement.service.impl; + +import cn.hutool.core.collection.CollUtil; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.productManagement.domain.PmgPersonProductModelDetails; +import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; +import org.dromara.productManagement.mapper.PmgPersonProductModelDetailsMapper; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgPersonProductModelBo; +import org.dromara.productManagement.domain.vo.PmgPersonProductModelVo; +import org.dromara.productManagement.domain.PmgPersonProductModel; +import org.dromara.productManagement.mapper.PmgPersonProductModelMapper; +import org.dromara.productManagement.service.IPmgPersonProductModelService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 个人产品模型Service业务层处理 + * + * @author Lion Li + * @date 2024-07-01 + */ +@RequiredArgsConstructor +@Service +public class PmgPersonProductModelServiceImpl implements IPmgPersonProductModelService { + + private final PmgPersonProductModelMapper baseMapper; + private final PmgPersonProductModelDetailsMapper pmgPersonProductModelDetailsMapper; + + @Override + public List getModelDetails(String id) { + //根据型号id查询型号详情规格指标 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PmgPersonProductModelDetails::getModelId, id); + List list = pmgPersonProductModelDetailsMapper.selectVoList(queryWrapper); + if (CollUtil.isEmpty(list)) { + return new ArrayList<>(); + } + return list; + } + + @Override + public String addModel(ProductModelViewBo bo) { + PmgPersonProductModelBo productModelBo = new PmgPersonProductModelBo(); + BeanUtils.copyProperties(bo, productModelBo); + insertByBo(productModelBo); + String modelId = productModelBo.getId(); + List modelDeatils = bo.getModelDeatils(); + for (PmgPersonProductModelDetailsBo item :modelDeatils + ) { + item.setModelId(modelId); + PmgPersonProductModelDetails modelDetails = MapstructUtils.convert(item, PmgPersonProductModelDetails.class); + pmgPersonProductModelDetailsMapper.insert(modelDetails); + } + //保存型号 + + return modelId; + } + + @Override + public String editModel(ProductModelViewBo bo) { + String id = bo.getId(); + //删除原型号指标参数 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PmgPersonProductModelDetails::getModelId, id); + pmgPersonProductModelDetailsMapper.delete(queryWrapper); + List modelDeatils = bo.getModelDeatils(); + //给型号指标设置型号id,并保存 + for (PmgPersonProductModelDetailsBo item :modelDeatils + ) { + item.setModelId(id); + item.setId(null); + item.setUpdateBy(null); + item.setUpdateTime(null); + PmgPersonProductModelDetails modelDetails = MapstructUtils.convert(item, PmgPersonProductModelDetails.class); + modelDetails.setIsTemporary("0");//修改的化,将临时标记改为0,表示非临时 + pmgPersonProductModelDetailsMapper.insert(modelDetails); + } + //保存型号 + PmgPersonProductModelBo productModelBo = new PmgPersonProductModelBo(); + BeanUtils.copyProperties(bo, productModelBo); + updateByBo(productModelBo); + return productModelBo.getId(); + } + + /** + * 查询个人产品模型 + * + * @param id 主键 + * @return 个人产品模型 + */ + @Override + public PmgPersonProductModelVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询个人产品模型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 个人产品模型分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgPersonProductModelBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的个人产品模型列表 + * + * @param bo 查询条件 + * @return 个人产品模型列表 + */ + @Override + public List queryList(PmgPersonProductModelBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgPersonProductModelBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getDescription()), PmgPersonProductModel::getDescription, bo.getDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getProductModelTemplateId()), PmgPersonProductModel::getProductModelTemplateId, bo.getProductModelTemplateId()); + lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgPersonProductModel::getIsTemporary, bo.getIsTemporary()); + return lqw; + } + + /** + * 新增个人产品模型 + * + * @param bo 个人产品模型 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgPersonProductModelBo bo) { + PmgPersonProductModel add = MapstructUtils.convert(bo, PmgPersonProductModel.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改个人产品模型 + * + * @param bo 个人产品模型 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgPersonProductModelBo bo) { + PmgPersonProductModel update = MapstructUtils.convert(bo, PmgPersonProductModel.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgPersonProductModel entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除个人产品模型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductsServiceImpl.java new file mode 100644 index 0000000..fb3ea04 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgPersonProductsServiceImpl.java @@ -0,0 +1,171 @@ +package org.dromara.productManagement.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.productManagement.domain.PmgPersonProductModel; +import org.dromara.productManagement.domain.PmgPersonProductModelDetails; +import org.dromara.productManagement.mapper.PmgPersonProductModelDetailsMapper; +import org.dromara.productManagement.mapper.PmgPersonProductModelMapper; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgPersonProductsBo; +import org.dromara.productManagement.domain.vo.PmgPersonProductsVo; +import org.dromara.productManagement.domain.PmgPersonProducts; +import org.dromara.productManagement.mapper.PmgPersonProductsMapper; +import org.dromara.productManagement.service.IPmgPersonProductsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 个人产品管理Service业务层处理 + * + * @author Lion Li + * @date 2024-06-28 + */ +@RequiredArgsConstructor +@Service +public class PmgPersonProductsServiceImpl implements IPmgPersonProductsService { + + private final PmgPersonProductsMapper baseMapper; + private final PmgPersonProductModelDetailsMapper personProductModelDetailsMapper; + private final PmgPersonProductModelMapper personProductModelMapper; + /** + * 查询个人产品管理 + * + * @param id 主键 + * @return 个人产品管理 + */ + @Override + public PmgPersonProductsVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询个人产品管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 个人产品管理分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgPersonProductsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的个人产品管理列表 + * + * @param bo 查询条件 + * @return 个人产品管理列表 + */ + @Override + public List queryList(PmgPersonProductsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgPersonProductsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierInformationId()), PmgPersonProducts::getSupplierInformationId, bo.getSupplierInformationId()); + lqw.like(StringUtils.isNotBlank(bo.getProductName()), PmgPersonProducts::getProductName, bo.getProductName()); + lqw.eq(StringUtils.isNotBlank(bo.getProductIdentity()), PmgPersonProducts::getProductIdentity, bo.getProductIdentity()); + lqw.eq(bo.getProductPrice() != null, PmgPersonProducts::getProductPrice, bo.getProductPrice()); + lqw.eq(StringUtils.isNotBlank(bo.getSourceInformation()), PmgPersonProducts::getSourceInformation, bo.getSourceInformation()); + lqw.eq(StringUtils.isNotBlank(bo.getProductSpecifications()), PmgPersonProducts::getProductSpecifications, bo.getProductSpecifications()); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierProductsId()), PmgPersonProducts::getSupplierProductsId, bo.getSupplierProductsId()); + lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), PmgPersonProducts::getRemarks, bo.getRemarks()); + lqw.eq(StringUtils.isNotBlank(bo.getBrand()), PmgPersonProducts::getBrand, bo.getBrand()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), PmgPersonProducts::getUnit, bo.getUnit()); + lqw.eq(bo.getExTaxPrice() != null, PmgPersonProducts::getExTaxPrice, bo.getExTaxPrice()); + lqw.eq(bo.getTaxrate() != null, PmgPersonProducts::getTaxrate, bo.getTaxrate()); + return lqw; + } + + /** + * 新增个人产品管理 + * + * @param bo 个人产品管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgPersonProductsBo bo) { + PmgPersonProducts add = MapstructUtils.convert(bo, PmgPersonProducts.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + String modelId = add.getModelId(); + if (StringUtils.isNotBlank(modelId)) { + // 更新型号的is_temporary标记为非临时数据 + LambdaUpdateWrapper modelUpdateWrapper = new LambdaUpdateWrapper<>(); + modelUpdateWrapper.eq(PmgPersonProductModel::getId, modelId); + modelUpdateWrapper.set(PmgPersonProductModel::getIsTemporary, "0"); + personProductModelMapper.update(null,modelUpdateWrapper); + // 更新型号规格参数的is_temporary标记为非临时数据 + LambdaUpdateWrapper detailsUpdateWrapper = new LambdaUpdateWrapper<>(); + detailsUpdateWrapper.eq(PmgPersonProductModelDetails::getModelId, modelId); + detailsUpdateWrapper.set(PmgPersonProductModelDetails::getIsTemporary, "0"); + personProductModelDetailsMapper.update(null,detailsUpdateWrapper); + } + } + return flag; + } + + /** + * 修改个人产品管理 + * + * @param bo 个人产品管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgPersonProductsBo bo) { + PmgPersonProducts update = MapstructUtils.convert(bo, PmgPersonProducts.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgPersonProducts entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除个人产品管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + baseMapper.selectVoBatchIds(ids).forEach(item -> { + String modelId = item.getModelId(); + if (StringUtils.isNotBlank(modelId)) { + LambdaUpdateWrapper modelUpdateWrapper = new LambdaUpdateWrapper<>(); // 临时数据标记 + modelUpdateWrapper.eq(PmgPersonProductModel::getId, modelId); + personProductModelMapper.delete(modelUpdateWrapper); + // 更新型号规格参数的is_temporary标记为临时数据 + LambdaUpdateWrapper detailsUpdateWrapper = new LambdaUpdateWrapper<>(); + detailsUpdateWrapper.eq(PmgPersonProductModelDetails::getModelId, modelId); + personProductModelDetailsMapper.delete(detailsUpdateWrapper); + } + }); + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierInformationServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierInformationServiceImpl.java new file mode 100644 index 0000000..b1772a0 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierInformationServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.productManagement.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgSupplierInformationBo; +import org.dromara.productManagement.domain.vo.PmgSupplierInformationVo; +import org.dromara.productManagement.domain.PmgSupplierInformation; +import org.dromara.productManagement.mapper.PmgSupplierInformationMapper; +import org.dromara.productManagement.service.IPmgSupplierInformationService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 供应商信息管理Service业务层处理 + * + * @author Lion Li + * @date 2024-06-28 + */ +@RequiredArgsConstructor +@Service +public class PmgSupplierInformationServiceImpl implements IPmgSupplierInformationService { + + private final PmgSupplierInformationMapper baseMapper; + + /** + * 查询供应商信息管理 + * + * @param id 主键 + * @return 供应商信息管理 + */ + @Override + public PmgSupplierInformationVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询供应商信息管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商信息管理分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgSupplierInformationBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的供应商信息管理列表 + * + * @param bo 查询条件 + * @return 供应商信息管理列表 + */ + @Override + public List queryList(PmgSupplierInformationBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgSupplierInformationBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getSupplierName()), PmgSupplierInformation::getSupplierName, bo.getSupplierName()); + lqw.like(StringUtils.isNotBlank(bo.getSupplierContacts()), PmgSupplierInformation::getSupplierContacts, bo.getSupplierContacts()); + lqw.eq(StringUtils.isNotBlank(bo.getPosition()), PmgSupplierInformation::getPosition, bo.getPosition()); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierContactsPhone()), PmgSupplierInformation::getSupplierContactsPhone, bo.getSupplierContactsPhone()); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierType()), PmgSupplierInformation::getSupplierType, bo.getSupplierType()); + return lqw; + } + + /** + * 新增供应商信息管理 + * + * @param bo 供应商信息管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgSupplierInformationBo bo) { + PmgSupplierInformation add = MapstructUtils.convert(bo, PmgSupplierInformation.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改供应商信息管理 + * + * @param bo 供应商信息管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgSupplierInformationBo bo) { + PmgSupplierInformation update = MapstructUtils.convert(bo, PmgSupplierInformation.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgSupplierInformation entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除供应商信息管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductModelDetailsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductModelDetailsServiceImpl.java new file mode 100644 index 0000000..c6d7b52 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductModelDetailsServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.productManagement.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; +import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; +import org.dromara.productManagement.mapper.PmgSupplierProductModelDetailsMapper; +import org.dromara.productManagement.service.IPmgSupplierProductModelDetailsService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 供应商产品模型详细Service业务层处理 + * + * @author Lion Li + * @date 2024-07-01 + */ +@RequiredArgsConstructor +@Service +public class PmgSupplierProductModelDetailsServiceImpl implements IPmgSupplierProductModelDetailsService { + + private final PmgSupplierProductModelDetailsMapper baseMapper; + + /** + * 查询供应商产品模型详细 + * + * @param id 主键 + * @return 供应商产品模型详细 + */ + @Override + public PmgSupplierProductModelDetailsVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询供应商产品模型详细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商产品模型详细分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgSupplierProductModelDetailsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的供应商产品模型详细列表 + * + * @param bo 查询条件 + * @return 供应商产品模型详细列表 + */ + @Override + public List queryList(PmgSupplierProductModelDetailsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgSupplierProductModelDetailsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getModelId()), PmgSupplierProductModelDetails::getModelId, bo.getModelId()); + lqw.like(StringUtils.isNotBlank(bo.getParamName()), PmgSupplierProductModelDetails::getParamName, bo.getParamName()); + lqw.eq(StringUtils.isNotBlank(bo.getParameterValue()), PmgSupplierProductModelDetails::getParameterValue, bo.getParameterValue()); + lqw.eq(StringUtils.isNotBlank(bo.getIsKeyParameter()), PmgSupplierProductModelDetails::getIsKeyParameter, bo.getIsKeyParameter()); + lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgSupplierProductModelDetails::getIsTemporary, bo.getIsTemporary()); + return lqw; + } + + /** + * 新增供应商产品模型详细 + * + * @param bo 供应商产品模型详细 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgSupplierProductModelDetailsBo bo) { + PmgSupplierProductModelDetails add = MapstructUtils.convert(bo, PmgSupplierProductModelDetails.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改供应商产品模型详细 + * + * @param bo 供应商产品模型详细 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgSupplierProductModelDetailsBo bo) { + PmgSupplierProductModelDetails update = MapstructUtils.convert(bo, PmgSupplierProductModelDetails.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgSupplierProductModelDetails entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除供应商产品模型详细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductModelServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductModelServiceImpl.java new file mode 100644 index 0000000..01914eb --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductModelServiceImpl.java @@ -0,0 +1,196 @@ +package org.dromara.productManagement.service.impl; + +import cn.hutool.core.collection.CollUtil; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelBo; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; +import org.dromara.productManagement.domain.bo.ProductModelViewBo; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; +import org.dromara.productManagement.mapper.PmgSupplierProductModelDetailsMapper; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgSupplierProductModelBo; +import org.dromara.productManagement.domain.vo.PmgSupplierProductModelVo; +import org.dromara.productManagement.domain.PmgSupplierProductModel; +import org.dromara.productManagement.mapper.PmgSupplierProductModelMapper; +import org.dromara.productManagement.service.IPmgSupplierProductModelService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 供应商产品模型Service业务层处理 + * + * @author Lion Li + * @date 2024-07-01 + */ +@RequiredArgsConstructor +@Service +public class PmgSupplierProductModelServiceImpl implements IPmgSupplierProductModelService { + + private final PmgSupplierProductModelMapper baseMapper; + private final PmgSupplierProductModelDetailsMapper pmgSupplierProductModelDetailsMapper; + + @Override + public List getModelDetails(String id) { + //根据型号id查询型号详情规格指标 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PmgSupplierProductModelDetails::getModelId, id); + List list = pmgSupplierProductModelDetailsMapper.selectVoList(queryWrapper); + if (CollUtil.isEmpty(list)) { + return new ArrayList<>(); + } + return list; + } + + @Override + public String addModel(ProductModelViewBo bo) { + PmgSupplierProductModelBo productModelBo = new PmgSupplierProductModelBo(); + BeanUtils.copyProperties(bo, productModelBo); + insertByBo(productModelBo); + String modelId = productModelBo.getId(); + List modelDeatils = bo.getModelDeatils(); + for (PmgSupplierProductModelDetailsBo item :modelDeatils + ) { + item.setModelId(modelId); + PmgSupplierProductModelDetails modelDetails = MapstructUtils.convert(item, PmgSupplierProductModelDetails.class); + pmgSupplierProductModelDetailsMapper.insert(modelDetails); + } + //保存型号 + + return modelId; + } + + @Override + public String editModel(ProductModelViewBo bo) { + String id = bo.getId(); + //删除原型号指标参数 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PmgSupplierProductModelDetails::getModelId, id); + pmgSupplierProductModelDetailsMapper.delete(queryWrapper); + List modelDeatils = bo.getModelDeatils(); + //给型号指标设置型号id,并保存 + for (PmgSupplierProductModelDetailsBo item :modelDeatils + ) { + item.setModelId(id); + item.setId(null); + item.setUpdateBy(null); + item.setUpdateTime(null); + PmgSupplierProductModelDetails modelDetails = MapstructUtils.convert(item, PmgSupplierProductModelDetails.class); + modelDetails.setIsTemporary("0");//修改的化,将临时标记改为0,表示非临时 + pmgSupplierProductModelDetailsMapper.insert(modelDetails); + } + //保存型号 + PmgSupplierProductModelBo productModelBo = new PmgSupplierProductModelBo(); + BeanUtils.copyProperties(bo, productModelBo); + updateByBo(productModelBo); + return productModelBo.getId(); + } + /** + * 查询供应商产品模型 + * + * @param id 主键 + * @return 供应商产品模型 + */ + @Override + public PmgSupplierProductModelVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询供应商产品模型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商产品模型分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgSupplierProductModelBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的供应商产品模型列表 + * + * @param bo 查询条件 + * @return 供应商产品模型列表 + */ + @Override + public List queryList(PmgSupplierProductModelBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgSupplierProductModelBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getDescription()), PmgSupplierProductModel::getDescription, bo.getDescription()); + lqw.eq(StringUtils.isNotBlank(bo.getProductModelTemplateId()), PmgSupplierProductModel::getProductModelTemplateId, bo.getProductModelTemplateId()); + lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgSupplierProductModel::getIsTemporary, bo.getIsTemporary()); + return lqw; + } + + /** + * 新增供应商产品模型 + * + * @param bo 供应商产品模型 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgSupplierProductModelBo bo) { + PmgSupplierProductModel add = MapstructUtils.convert(bo, PmgSupplierProductModel.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改供应商产品模型 + * + * @param bo 供应商产品模型 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgSupplierProductModelBo bo) { + PmgSupplierProductModel update = MapstructUtils.convert(bo, PmgSupplierProductModel.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgSupplierProductModel entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除供应商产品模型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductsServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductsServiceImpl.java new file mode 100644 index 0000000..18805d6 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/PmgSupplierProductsServiceImpl.java @@ -0,0 +1,241 @@ +package org.dromara.productManagement.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.elasticsearch.entity.SupplierProductsDTO; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.productManagement.domain.*; +import org.dromara.productManagement.mapper.PmgSupplierProductModelDetailsMapper; +import org.dromara.productManagement.mapper.PmgSupplierProductModelMapper; +import org.elasticsearch.action.search.SearchRequest; +import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.client.RequestOptions; +import org.elasticsearch.client.RestHighLevelClient; +import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.SearchHits; +import org.elasticsearch.search.builder.SearchSourceBuilder; +import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.productManagement.domain.bo.PmgSupplierProductsBo; +import org.dromara.productManagement.domain.vo.PmgSupplierProductsVo; +import org.dromara.productManagement.mapper.PmgSupplierProductsMapper; +import org.dromara.productManagement.service.IPmgSupplierProductsService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 供应商产品管理Service业务层处理 + * + * @author Lion Li + * @date 2024-06-28 + */ +@RequiredArgsConstructor +@Service +public class PmgSupplierProductsServiceImpl implements IPmgSupplierProductsService { + + private final PmgSupplierProductsMapper baseMapper; + private final PmgSupplierProductModelDetailsMapper supplierProductModelDetailsMapper; + private final PmgSupplierProductModelMapper supplierProductModelMapper; + @Autowired + private RestHighLevelClient client; + /** + * 查询供应商产品管理 + * + * @param id 主键 + * @return 供应商产品管理 + */ + @Override + public PmgSupplierProductsVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询供应商产品管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 供应商产品管理分页列表 + */ + @Override + public TableDataInfo queryPageList(PmgSupplierProductsBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + if(StringUtils.isNotBlank(bo.getProductName())){ + result=querypagebyes(bo,pageQuery); + } + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的供应商产品管理列表 + * + * @param bo 查询条件 + * @return 供应商产品管理列表 + */ + @Override + public List queryList(PmgSupplierProductsBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PmgSupplierProductsBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotBlank(bo.getSupplierInformationId()), PmgSupplierProducts::getSupplierInformationId, bo.getSupplierInformationId()); + lqw.eq(StringUtils.isNotBlank(bo.getProductSpecifications()), PmgSupplierProducts::getProductSpecifications, bo.getProductSpecifications()); + lqw.like(StringUtils.isNotBlank(bo.getProductName()), PmgSupplierProducts::getProductName, bo.getProductName()); + lqw.like(StringUtils.isNotBlank(bo.getProductIdentity()), PmgSupplierProducts::getProductIdentity, bo.getProductIdentity()); + lqw.eq(bo.getProductPrice() != null, PmgSupplierProducts::getProductPrice, bo.getProductPrice()); + lqw.like(StringUtils.isNotBlank(bo.getSourceInformation()), PmgSupplierProducts::getSourceInformation, bo.getSourceInformation()); + lqw.like(StringUtils.isNotBlank(bo.getRemarks()), PmgSupplierProducts::getRemarks, bo.getRemarks()); + lqw.eq(StringUtils.isNotBlank(bo.getImage()), PmgSupplierProducts::getImage, bo.getImage()); + lqw.eq(StringUtils.isNotBlank(bo.getBrand()), PmgSupplierProducts::getBrand, bo.getBrand()); + lqw.eq(StringUtils.isNotBlank(bo.getUnit()), PmgSupplierProducts::getUnit, bo.getUnit()); + lqw.eq(bo.getExTaxPrice() != null, PmgSupplierProducts::getExTaxPrice, bo.getExTaxPrice()); + lqw.eq(bo.getTaxrate() != null, PmgSupplierProducts::getTaxrate, bo.getTaxrate()); + lqw.eq(StringUtils.isNotBlank(bo.getCategoryId()), PmgSupplierProducts::getCategoryId, bo.getCategoryId()); + lqw.eq(StringUtils.isNotBlank(bo.getModelId()), PmgSupplierProducts::getModelId, bo.getModelId()); + return lqw; + } + + /** + * 新增供应商产品管理 + * + * @param bo 供应商产品管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PmgSupplierProductsBo bo) { + PmgSupplierProducts add = MapstructUtils.convert(bo, PmgSupplierProducts.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + String modelId = add.getModelId(); + if (StringUtils.isNotBlank(modelId)) { + // 更新型号的is_temporary标记为非临时数据 + LambdaUpdateWrapper modelUpdateWrapper = new LambdaUpdateWrapper<>(); + modelUpdateWrapper.eq(PmgSupplierProductModel::getId, modelId); + modelUpdateWrapper.set(PmgSupplierProductModel::getIsTemporary, "0"); + supplierProductModelMapper.update(null,modelUpdateWrapper); + // 更新型号规格参数的is_temporary标记为非临时数据 + LambdaUpdateWrapper detailsUpdateWrapper = new LambdaUpdateWrapper<>(); + detailsUpdateWrapper.eq(PmgSupplierProductModelDetails::getModelId, modelId); + detailsUpdateWrapper.set(PmgSupplierProductModelDetails::getIsTemporary, "0"); + supplierProductModelDetailsMapper.update(null,detailsUpdateWrapper); + } + } + return flag; + } + + /** + * 修改供应商产品管理 + * + * @param bo 供应商产品管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PmgSupplierProductsBo bo) { + PmgSupplierProducts update = MapstructUtils.convert(bo, PmgSupplierProducts.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PmgSupplierProducts entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除供应商产品管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + baseMapper.selectVoBatchIds(ids).forEach(item -> { + String modelId = item.getModelId(); + if (StringUtils.isNotBlank(modelId)) { + LambdaUpdateWrapper modelUpdateWrapper = new LambdaUpdateWrapper<>(); // 临时数据标记 + modelUpdateWrapper.eq(PmgSupplierProductModel::getId, modelId); + supplierProductModelMapper.delete(modelUpdateWrapper); + // 更新型号规格参数的is_temporary标记为临时数据 + LambdaUpdateWrapper detailsUpdateWrapper = new LambdaUpdateWrapper<>(); + detailsUpdateWrapper.eq(PmgSupplierProductModelDetails::getModelId, modelId); + supplierProductModelDetailsMapper.delete(detailsUpdateWrapper); + } + }); + return baseMapper.deleteBatchIds(ids) > 0; + } + public Page querypagebyes(PmgSupplierProductsBo bo, PageQuery pageQuery) { + // 执行查询 + Page supplierProductsVOPage = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); + List supplierProductsVOList =new ArrayList<>(); + String productName = bo.getProductName(); + SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); + SearchRequest searchRequest = new SearchRequest("pmg_supplier_products"); + // //高亮器 + HighlightBuilder highlightBuilder = new HighlightBuilder(); + highlightBuilder.requireFieldMatch(false)//多字段时,需要设置为false//因为高亮查询默认是对查询字段即description就行高亮,可以关闭字段匹配,这样就可以对查询到的多个字段(前提是有关键词并且改字段可以分词)进行高亮显示 + .field("product_name")//若有关键字切可以分词,则可以高亮,写*可以匹配所有字段 + .field("product_specifications")//若有关键字切可以分词,则可以高亮,写*可以匹配所有字段 + .preTags("")//手动前缀标签 + .postTags(""); + searchSourceBuilder + .query(QueryBuilders.multiMatchQuery(productName, "product_name", "product_specifications")) + .highlighter(highlightBuilder) + .from(pageQuery.getPageNum()-1) //起始位置:start=(page-1)*size + .size(pageQuery.getPageSize()); //每页显示条数; + + searchRequest.source(searchSourceBuilder); + try { + SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT); + // 解析结果 + SearchHits hits = response.getHits(); + + + supplierProductsVOPage.setTotal(response.getHits().getTotalHits().value); + SearchHit[] searchHits = hits.getHits(); + ObjectMapper mapper = new ObjectMapper(); + for (SearchHit hit : searchHits) { + String json =mapper.writeValueAsString(hit.getSourceAsMap()); + SupplierProductsDTO supplierProductsDTO = mapper.readValue(json, SupplierProductsDTO.class); + PmgSupplierProductsVo supplierProductsVO = new PmgSupplierProductsVo(); + BeanUtils.copyProperties(supplierProductsDTO,supplierProductsVO); + if(hit.getHighlightFields().get("product_name")!=null){ + supplierProductsVO.setProductName(hit.getHighlightFields().get("product_name").getFragments()[0].toString()); + + } + if(hit.getHighlightFields().get("product_specifications")!=null){ + supplierProductsVO.setProductSpecifications(hit.getHighlightFields().get("product_specifications").getFragments()[0].toString()); + + } + supplierProductsVOList.add(supplierProductsVO); + } + supplierProductsVOPage.setRecords(supplierProductsVOList); + return supplierProductsVOPage; + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/CmgCostItemDetailMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/CmgCostItemDetailMapper.xml new file mode 100644 index 0000000..1502d2b --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/CmgCostItemDetailMapper.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + id, supplier_information_id, product_name, product_identity, + product_price, source_information, model_id, remarks,image,unit, + del_flag + + + + del_flag = '0' + + and supplier_information_id = #{queryVO.supplierInformationId} + + + AND product_name LIKE CONCAT('%', #{queryVO.productName}, '%') + + + AND product_identity LIKE CONCAT('%', #{queryVO.productIdentity}, '%') + + + AND product_price = #{queryVO.productPrice} + + + AND source_information LIKE CONCAT('%', #{queryVO.sourceInformation}, '%') + + + AND model_id = #{queryVO.modelId} + + + AND remarks LIKE CONCAT('%', #{queryVO.remarks}, '%') + + + + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/CmgCostTableMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/CmgCostTableMapper.xml new file mode 100644 index 0000000..28d740a --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/CmgCostTableMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductModelDetailsMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductModelDetailsMapper.xml new file mode 100644 index 0000000..c8ad2dc --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductModelDetailsMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductModelMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductModelMapper.xml new file mode 100644 index 0000000..653e22d --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductModelMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductsMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductsMapper.xml new file mode 100644 index 0000000..866bcd2 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgCompanyProductsMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductModelDetailsMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductModelDetailsMapper.xml new file mode 100644 index 0000000..47a9361 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductModelDetailsMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductModelMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductModelMapper.xml new file mode 100644 index 0000000..2e0e8b7 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductModelMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductsMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductsMapper.xml new file mode 100644 index 0000000..51f7fe6 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgPersonProductsMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierInformationMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierInformationMapper.xml new file mode 100644 index 0000000..9311f14 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierInformationMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductModelDetailsMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductModelDetailsMapper.xml new file mode 100644 index 0000000..d7797f8 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductModelDetailsMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductModelMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductModelMapper.xml new file mode 100644 index 0000000..eb6b09a --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductModelMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductsMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductsMapper.xml new file mode 100644 index 0000000..cab60a2 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/PmgSupplierProductsMapper.xml @@ -0,0 +1,7 @@ + + + + +