From b75a83ac24925ef5a2ce1b46ed16e9ebaac75389 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Sat, 24 Feb 2024 16:18:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86=E7=9B=B8?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cn/lihongjie/coal/Codegen.java | 265 +++++++- .../cn/lihongjie/coal/EntityMapperGen.java | 124 ---- .../coal/base/mapper/CommonEntityMapper.java | 634 +----------------- .../controller/WarehouseGoodsController.java | 54 ++ .../dto/CreateWarehouseGoodsDto.java | 8 + .../dto/UpdateWarehouseGoodsDto.java | 8 + .../warehouseGoods/dto/WarehouseGoodsDto.java | 8 + .../entity/WarehouseGoodsEntity.java | 55 ++ .../mapper/WarehouseGoodsMapper.java | 23 + .../repository/WarehouseGoodsRepository.java | 9 + .../service/WarehouseGoodsService.java | 71 ++ .../WarehouseGoodsBrandController.java | 54 ++ .../dto/CreateWarehouseGoodsBrandDto.java | 8 + .../dto/UpdateWarehouseGoodsBrandDto.java | 8 + .../dto/WarehouseGoodsBrandDto.java | 8 + .../entity/WarehouseGoodsBrandEntity.java | 11 + .../mapper/WarehouseGoodsBrandMapper.java | 23 + .../WarehouseGoodsBrandRepository.java | 9 + .../service/WarehouseGoodsBrandService.java | 71 ++ .../WarehouseGoodsCategoryController.java | 54 ++ .../dto/CreateWarehouseGoodsCategoryDto.java | 13 + .../dto/UpdateWarehouseGoodsCategoryDto.java | 14 + .../dto/WarehouseGoodsCategoryDto.java | 14 + .../entity/WarehouseGoodsCategoryEntity.java | 23 + .../mapper/WarehouseGoodsCategoryMapper.java | 24 + .../WarehouseGoodsCategoryRepository.java | 10 + .../WarehouseGoodsCategoryService.java | 71 ++ .../WarehouseGoodsUnitController.java | 54 ++ .../dto/CreateWarehouseGoodsUnitDto.java | 8 + .../dto/UpdateWarehouseGoodsUnitDto.java | 8 + .../dto/WarehouseGoodsUnitDto.java | 8 + .../entity/WarehouseGoodsUnitEntity.java | 11 + .../mapper/WarehouseGoodsUnitMapper.java | 23 + .../WarehouseGoodsUnitRepository.java | 9 + .../service/WarehouseGoodsUnitService.java | 71 ++ .../WarehouseReceiptController.java | 54 ++ .../dto/CreateWarehouseReceiptDto.java | 45 ++ .../dto/UpdateWarehouseReceiptDto.java | 42 ++ .../dto/WarehouseReceiptDto.java | 61 ++ .../entity/WarehouseReceiptEntity.java | 64 ++ .../mapper/WarehouseReceiptMapper.java | 24 + .../WarehouseReceiptRepository.java | 9 + .../service/WarehouseReceiptService.java | 71 ++ .../WarehouseReceiptDetailController.java | 54 ++ .../dto/CreateWarehouseReceiptDetailDto.java | 31 + .../dto/UpdateWarehouseReceiptDetailDto.java | 29 + .../dto/WarehouseReceiptDetailDto.java | 37 + .../entity/WarehouseReceiptDetailEntity.java | 43 ++ .../mapper/WarehouseReceiptDetailMapper.java | 23 + .../WarehouseReceiptDetailRepository.java | 10 + .../WarehouseReceiptDetailService.java | 71 ++ src/main/resources/config/dictionary.json | 16 + 52 files changed, 1778 insertions(+), 772 deletions(-) delete mode 100644 src/main/java/cn/lihongjie/coal/EntityMapperGen.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoods/controller/WarehouseGoodsController.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoods/dto/CreateWarehouseGoodsDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoods/dto/UpdateWarehouseGoodsDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoods/dto/WarehouseGoodsDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoods/entity/WarehouseGoodsEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoods/mapper/WarehouseGoodsMapper.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoods/repository/WarehouseGoodsRepository.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoods/service/WarehouseGoodsService.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/controller/WarehouseGoodsBrandController.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/CreateWarehouseGoodsBrandDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/UpdateWarehouseGoodsBrandDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/WarehouseGoodsBrandDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/entity/WarehouseGoodsBrandEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/mapper/WarehouseGoodsBrandMapper.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/repository/WarehouseGoodsBrandRepository.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/service/WarehouseGoodsBrandService.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/controller/WarehouseGoodsCategoryController.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/CreateWarehouseGoodsCategoryDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/UpdateWarehouseGoodsCategoryDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/WarehouseGoodsCategoryDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/entity/WarehouseGoodsCategoryEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/mapper/WarehouseGoodsCategoryMapper.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/repository/WarehouseGoodsCategoryRepository.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/service/WarehouseGoodsCategoryService.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/controller/WarehouseGoodsUnitController.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/CreateWarehouseGoodsUnitDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/UpdateWarehouseGoodsUnitDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/WarehouseGoodsUnitDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/entity/WarehouseGoodsUnitEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/mapper/WarehouseGoodsUnitMapper.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/repository/WarehouseGoodsUnitRepository.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/service/WarehouseGoodsUnitService.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceipt/controller/WarehouseReceiptController.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/CreateWarehouseReceiptDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/UpdateWarehouseReceiptDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/WarehouseReceiptDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceipt/entity/WarehouseReceiptEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceipt/mapper/WarehouseReceiptMapper.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceipt/repository/WarehouseReceiptRepository.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceipt/service/WarehouseReceiptService.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/controller/WarehouseReceiptDetailController.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/CreateWarehouseReceiptDetailDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/UpdateWarehouseReceiptDetailDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/WarehouseReceiptDetailDto.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/entity/WarehouseReceiptDetailEntity.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/mapper/WarehouseReceiptDetailMapper.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/repository/WarehouseReceiptDetailRepository.java create mode 100644 src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/service/WarehouseReceiptDetailService.java diff --git a/src/main/java/cn/lihongjie/coal/Codegen.java b/src/main/java/cn/lihongjie/coal/Codegen.java index d51d3c9c..4de66f78 100644 --- a/src/main/java/cn/lihongjie/coal/Codegen.java +++ b/src/main/java/cn/lihongjie/coal/Codegen.java @@ -13,6 +13,8 @@ import cn.lihongjie.coal.base.mapper.BaseMapper; import cn.lihongjie.coal.base.mapper.CommonEntityMapper; import cn.lihongjie.coal.base.mapper.CommonMapper; import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.common.ArchiveUtils; +import cn.lihongjie.coal.exception.BizException; import com.google.common.base.CaseFormat; import com.google.googlejavaformat.java.Formatter; @@ -82,6 +84,11 @@ public class Codegen { Objects.equals( StringUtils.defaultIfBlank(new Scanner(System.in).nextLine(), "Y"), "Y"); + System.out.print("支持归档[Y]:"); + boolean archive = + Objects.equals( + StringUtils.defaultIfBlank(new Scanner(System.in).nextLine(), "Y"), "Y"); + String lModuleName = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_CAMEL, moduleName); String prefix = Codegen.class.getPackage().getName() + "." + lModuleName; String entityPackage = prefix + ".entity"; @@ -101,6 +108,48 @@ public class Codegen { .addAnnotation(Entity.class) .build(); + if (archive) { + entity = + entity.toBuilder() + .addField( + FieldSpec.builder( + String.class, "archiveStatus", Modifier.PRIVATE) + .addAnnotation( + AnnotationSpec.builder( + org.hibernate.annotations + .Comment.class) + .addMember("value", "$S", "归档状态") + .build()) + .addAnnotation( + AnnotationSpec.builder( + org.hibernate.annotations + .ColumnDefault.class) + .addMember("value", "$S", "'0'") + .build()) + .build()) + .addField( + FieldSpec.builder( + String.class, + "archiveStatusName", + Modifier.PRIVATE) + .addAnnotation( + AnnotationSpec.builder( + org.hibernate.annotations + .Formula.class) + .addMember( + "value", + "$S", + "(select i.name\n" + + "from t_dictionary d,\n" + + " t_dictionary_item i\n" + + "where d.id = i.dictionary_id\n" + + " and d.code = 'archiveStatus'\n" + + " and i.code = archive_status)") + .build()) + .build()) + .build(); + } + saveFile(entityPackage, entity); // 生成dto @@ -111,6 +160,26 @@ public class Codegen { .addAnnotation(Data.class) .build(); + + + if (archive) { + dto = + dto.toBuilder() + .addField( + FieldSpec.builder( + String.class, "archiveStatus", Modifier.PRIVATE) + + .build()) + .addField( + FieldSpec.builder( + String.class, + "archiveStatusName", + Modifier.PRIVATE) + + .build()) + .build(); + } + saveFile(dtoPackage, dto); // 生成createDto @@ -156,7 +225,11 @@ public class Codegen { "componentModel", "org.mapstruct.MappingConstants.ComponentModel.SPRING", "") - .addMember("uses", "{$T.class, $T.class}", CommonMapper.class, CommonEntityMapper.class) + .addMember( + "uses", + "{$T.class, $T.class}", + CommonMapper.class, + CommonEntityMapper.class) .addMember("mappingControl", "$T.class", DeepClone.class) .build()) .addSuperinterface( @@ -171,6 +244,83 @@ public class Codegen { saveFile(mapperPackage, mapper); // 生成service + MethodSpec serviceUpdate = MethodSpec.methodBuilder("update") + .addModifiers(Modifier.PUBLIC) + .returns(ClassName.get(dtoPackage, dto.name)) + .addParameter( + ClassName.get(dtoPackage, updateDto.name), + "request") + .addStatement( + """ + $T entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()) + """, + ClassName.get(entityPackage, entity.name)) + .build(); + + + if (archive){ + serviceUpdate = + MethodSpec.methodBuilder("update") + .addModifiers(Modifier.PUBLIC) + .returns(ClassName.get(dtoPackage, dto.name)) + .addParameter(ClassName.get(dtoPackage, updateDto.name), "request") + .addStatement( + """ + $T entity = this.repository.get(request.getId()); + $T.checkArchiveStatus( + entity, + $T::getArchiveStatus, + x -> "0", + (e, actual, expected) -> { + throw new $T("数据 " + "已归档,无法编辑"); + }); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()) + """, + ClassName.get(entityPackage, entity.name), ClassName.get(ArchiveUtils.class), ClassName.get(entityPackage, entity.name), ClassName.get(BizException.class)) + .build(); + } + + MethodSpec serviceDelete = MethodSpec.methodBuilder("delete") + .addModifiers(Modifier.PUBLIC) + .returns(void.class) + .addParameter(ClassName.get(IdRequest.class), "request") + .addStatement( + """ + this.repository.deleteAllById(request.getIds()) + """) + .build(); + + if (archive){ + serviceDelete = + MethodSpec.methodBuilder("delete") + .addModifiers(Modifier.PUBLIC) + .returns(void.class) + .addParameter(ClassName.get(IdRequest.class), "request") + .addStatement( + """ + $T.checkArchiveStatus( + this.repository::findAllById, + request.getIds(), + $T::getArchiveStatus, + x -> "0", + (e, actual, expected) -> { + throw new $T("数据 " + "已归档,无法删除"); + }); + this.repository.deleteAllById(request.getIds()) + """, + ClassName.get(ArchiveUtils.class), ClassName.get(entityPackage, entity.name), ClassName.get(BizException.class)).build(); + + } + TypeSpec service = TypeSpec.classBuilder(StringUtils.capitalize(moduleName) + "Service") .addModifiers(Modifier.PUBLIC) @@ -221,33 +371,9 @@ public class Codegen { ClassName.get(entityPackage, entity.name)) .build()) .addMethod( - MethodSpec.methodBuilder("update") - .addModifiers(Modifier.PUBLIC) - .returns(ClassName.get(dtoPackage, dto.name)) - .addParameter( - ClassName.get(dtoPackage, updateDto.name), - "request") - .addStatement( - """ - $T entity = this.repository.get(request.getId()); - this.mapper.updateEntity(entity, request); - - this.repository.save(entity); - - return getById(entity.getId()) - """, - ClassName.get(entityPackage, entity.name)) - .build()) + serviceUpdate) .addMethod( - MethodSpec.methodBuilder("delete") - .addModifiers(Modifier.PUBLIC) - .returns(void.class) - .addParameter(ClassName.get(IdRequest.class), "request") - .addStatement( - """ - this.repository.deleteAllById(request.getIds()) - """) - .build()) + serviceDelete) .addMethod( MethodSpec.methodBuilder("getById") .addModifiers(Modifier.PUBLIC) @@ -284,6 +410,48 @@ public class Codegen { .build()) .build(); + + + if (archive) { + service = + service.toBuilder() + .addMethod( + MethodSpec.methodBuilder("archive") + .addModifiers(Modifier.PUBLIC) + .returns(void.class) + .addParameter(ClassName.get(IdRequest.class), "dto") + .addStatement( + """ + this.repository.findAllById(dto.getIds()).stream() + .peek(x -> $T.checkArchiveStatus(x, $T::getArchiveStatus, y -> "0", (e, actual, expected) -> { + throw new $T("数据 " + "已归档,无法再次归档"); + })) + .peek(x -> x.setArchiveStatus("1")) + .forEach(this.repository::save); + """, ClassName.get(ArchiveUtils.class), ClassName.get(entityPackage, entity.name), ClassName.get(BizException.class)) + .build()) + .addMethod( + MethodSpec.methodBuilder("unarchive") + .addModifiers(Modifier.PUBLIC) + .returns(void.class) + .addParameter(ClassName.get(IdRequest.class), "dto") + .addStatement( + """ + this.repository.findAllById(dto.getIds()).stream() + .peek(x->$T.checkArchiveStatus(x, $T::getArchiveStatus, y -> "1", (e, actual, expected) -> { + throw new $T("数据" + "未归档,无法取消归档"); + })) + .peek(x -> x.setArchiveStatus("0")) + .forEach(this.repository::save); + """, ClassName.get(ArchiveUtils.class), ClassName.get(entityPackage, entity.name), ClassName.get(BizException.class)) + .build()) + + + .build(); + + + } + saveFile(servicePackage, service); // 生成controller @@ -416,6 +584,49 @@ public class Codegen { ClassName.get(Sort.class)) .build()); + + if (archive){ + controllerBuilder + .addMethod( + MethodSpec.methodBuilder("archive") + .addModifiers(Modifier.PUBLIC) + .returns(Object.class) + .addAnnotation( + AnnotationSpec.builder(PostMapping.class) + .addMember("value", "$S", "/archive") + .build()) + .addParameter( + ParameterSpec.builder( + ClassName.get(IdRequest.class), "request") + .addAnnotation(RequestBody.class) + .build()) + .addStatement( + """ + this.service.archive(request); + return true + """) + .build()) + .addMethod( + MethodSpec.methodBuilder("unarchive") + .addModifiers(Modifier.PUBLIC) + .returns(Object.class) + .addAnnotation( + AnnotationSpec.builder(PostMapping.class) + .addMember("value", "$S", "/unarchive") + .build()) + .addParameter( + ParameterSpec.builder( + ClassName.get(IdRequest.class), "request") + .addAnnotation(RequestBody.class) + .build()) + .addStatement( + """ + this.service.unarchive(request); + return true + """) + .build()); + } + saveFile(controllerPackage, controllerBuilder.build()); } diff --git a/src/main/java/cn/lihongjie/coal/EntityMapperGen.java b/src/main/java/cn/lihongjie/coal/EntityMapperGen.java deleted file mode 100644 index 0eee7ef4..00000000 --- a/src/main/java/cn/lihongjie/coal/EntityMapperGen.java +++ /dev/null @@ -1,124 +0,0 @@ -package cn.lihongjie.coal; - -import static org.reflections.scanners.Scanners.SubTypes; -import static org.reflections.scanners.Scanners.TypesAnnotated; - -import com.google.googlejavaformat.java.Formatter; -import com.google.googlejavaformat.java.JavaFormatterOptions; -import com.squareup.javapoet.*; - -import jakarta.persistence.Entity; - -import lombok.SneakyThrows; - -import org.mapstruct.Mapper; -import org.reflections.Reflections; - -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.StringWriter; -import java.io.Writer; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Set; - -import javax.lang.model.element.Modifier; - -/** - * google-java-format uses internal javac APIs for parsing Java source. The following JVM flags are - * required when running on JDK 16 and newer, due to JEP 396: Strongly Encapsulate JDK Internals by - * Default: - * - *

--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED - * --add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED - * --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED - * --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED - * --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED - * --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED - */ -public class EntityMapperGen { - - public static final Path DIRECTORY = Path.of("src/main/java/"); - - @SneakyThrows - public static void main(String[] args) { - - Reflections reflections = new Reflections("cn.lihongjie.coal"); - - Set entityClasses = - reflections.get(SubTypes.of(TypesAnnotated.with(Entity.class))); - - // 生成entity - - TypeSpec.Builder entityMapperBuilder = - TypeSpec.interfaceBuilder("CommonEntityMapper") - .addModifiers(Modifier.PUBLIC) - .addAnnotation( - AnnotationSpec.builder(Mapper.class) - .addMember("componentModel", "\"spring\"") - .build()); - - - - for (String e : entityClasses) { - Class entityClass = Class.forName(e); - System.out.println("entityClass = " + entityClass); - - MethodSpec.Builder methodBuilder = - MethodSpec.methodBuilder("create" + entityClass.getSimpleName()); - methodBuilder.addModifiers(Modifier.PUBLIC); - methodBuilder.addModifiers(Modifier.DEFAULT); - methodBuilder.returns(ClassName.get(entityClass)); - methodBuilder.addParameter(ClassName.get(String.class), "id"); - methodBuilder.addStatement( - """ - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new $T(); - e.setId(id); - return e - -""", - ClassName.get(entityClass)); - entityMapperBuilder.addMethod(methodBuilder.build()); - } - - saveFile("cn.lihongjie.coal.base.mapper", entityMapperBuilder.build()); - } - - @SneakyThrows - private static void saveFile(String pkg, TypeSpec entity) throws IOException { - - JavaFile javaFile = JavaFile.builder(pkg, entity).build(); - - Path outputDirectory = DIRECTORY; - if (!javaFile.packageName.isEmpty()) { - for (String packageComponent : javaFile.packageName.split("\\.")) { - outputDirectory = outputDirectory.resolve(packageComponent); - } - Files.createDirectories(outputDirectory); - } - - Path outputPath = outputDirectory.resolve(javaFile.typeSpec.name + ".java"); - try (Writer writer = - new OutputStreamWriter(Files.newOutputStream(outputPath), StandardCharsets.UTF_8)) { - - StringWriter out = new StringWriter(); - javaFile.writeTo(out); - - String formattedSource = - new Formatter( - JavaFormatterOptions.builder() - .style(JavaFormatterOptions.Style.AOSP) - .formatJavadoc(true) - .reorderModifiers(true) - .build()) - .formatSource(out.toString()); - - writer.write(formattedSource); - } - } -} diff --git a/src/main/java/cn/lihongjie/coal/base/mapper/CommonEntityMapper.java b/src/main/java/cn/lihongjie/coal/base/mapper/CommonEntityMapper.java index 89f228b2..9dc0cbd4 100644 --- a/src/main/java/cn/lihongjie/coal/base/mapper/CommonEntityMapper.java +++ b/src/main/java/cn/lihongjie/coal/base/mapper/CommonEntityMapper.java @@ -1,635 +1,27 @@ package cn.lihongjie.coal.base.mapper; -import cn.lihongjie.coal.cacheCtl.entity.CacheCtlEntity; -import cn.lihongjie.coal.coalAnalysis.entity.CoalAnalysisEntity; -import cn.lihongjie.coal.coalAnalysisHis.entity.CoalAnalysisHisEntity; -import cn.lihongjie.coal.coalBlend.entity.CoalBlendCoalInfoEntity; -import cn.lihongjie.coal.coalBlend.entity.CoalBlendEntity; -import cn.lihongjie.coal.coalBlend.entity.CoalBlendResultInfoEntity; -import cn.lihongjie.coal.coalInfo.entity.CoalInfoEntity; -import cn.lihongjie.coal.coalParameterDef.entity.CoalParameterDefEntity; -import cn.lihongjie.coal.coalPrice.entity.CoalPriceEntity; -import cn.lihongjie.coal.coalWashingDailyAnalysis.entity.CoalWashingDailyAnalysisEntity; -import cn.lihongjie.coal.coalWashingDailyAnalysisParam.entity.CoalWashingDailyAnalysisParamEntity; -import cn.lihongjie.coal.coalWashingMonthReport.entity.CoalWashingMonthReportEntity; -import cn.lihongjie.coal.cronJob.entity.CronJobEntity; -import cn.lihongjie.coal.cronJobLog.entity.CronJobLogEntity; -import cn.lihongjie.coal.deliveryInformation.entity.DeliveryInformationEntity; -import cn.lihongjie.coal.department.entity.DepartmentEntity; -import cn.lihongjie.coal.dictionary.entity.DictionaryEntity; -import cn.lihongjie.coal.dictionary.entity.DictionaryItemEntity; -import cn.lihongjie.coal.downloadCenter.entity.DownloadCenterEntity; -import cn.lihongjie.coal.employee.entity.EmployeeEntity; -import cn.lihongjie.coal.enterprise.entity.EnterpriseEntity; -import cn.lihongjie.coal.file.entity.FileEntity; -import cn.lihongjie.coal.inventoryCheck.entity.InventoryCheckEntity; -import cn.lihongjie.coal.inventoryCheckDetail.entity.InventoryCheckDetailEntity; -import cn.lihongjie.coal.ipList.entity.IpListEntity; -import cn.lihongjie.coal.jobPost.entity.JobPostEntity; -import cn.lihongjie.coal.loginUser.entity.LoginUserEntity; -import cn.lihongjie.coal.loginUserHis.entity.LoginUserHisEntity; -import cn.lihongjie.coal.meter.entity.MeterEntity; -import cn.lihongjie.coal.meterDayLog.entity.MeterDayLogEntity; -import cn.lihongjie.coal.meterLog.entity.MeterLogEntity; -import cn.lihongjie.coal.meterMonthLog.entity.MeterMonthLogEntity; -import cn.lihongjie.coal.netDisk.entity.NetDiskEntity; -import cn.lihongjie.coal.noteBook.entity.NoteBookEntity; -import cn.lihongjie.coal.noteBookChapter.entity.NoteBookChapterEntity; -import cn.lihongjie.coal.notice.entity.NoticeEntity; -import cn.lihongjie.coal.noticeStatus.entity.NoticeStatusEntity; -import cn.lihongjie.coal.organization.entity.OrganizationEntity; -import cn.lihongjie.coal.passwordDict.entity.PasswordDictEntity; -import cn.lihongjie.coal.pdfGenerator.entity.PdfGeneratorEntity; -import cn.lihongjie.coal.permission.entity.PermissionEntity; -import cn.lihongjie.coal.product.entity.ProductEntity; -import cn.lihongjie.coal.purchaseOrder.entity.PurchaseOrderEntity; -import cn.lihongjie.coal.resetPwd.entity.ResetPwdEntity; -import cn.lihongjie.coal.resource.entity.ResourceEntity; -import cn.lihongjie.coal.role.entity.RoleEntity; -import cn.lihongjie.coal.salaryItem.entity.SalaryItemEntity; -import cn.lihongjie.coal.script.entity.ScriptEntity; -import cn.lihongjie.coal.sms.entity.SmsEntity; -import cn.lihongjie.coal.smsTemplate.entity.SmsTemplateEntity; -import cn.lihongjie.coal.supplier.entity.SupplierEntity; -import cn.lihongjie.coal.sysconfig.entity.SysConfigEntity; -import cn.lihongjie.coal.syslog.entity.SysLogEntity; -import cn.lihongjie.coal.user.entity.UserEntity; -import cn.lihongjie.coal.warehouse.entity.WarehouseEntity; -import cn.lihongjie.coal.warehouseShelve.entity.WarehouseShelveEntity; -import cn.lihongjie.coal.warehouseSupplier.entity.WarehouseSupplierEntity; +import cn.lihongjie.coal.base.entity.BaseEntity; +import lombok.SneakyThrows; + +import org.apache.poi.ss.formula.functions.T; import org.mapstruct.Mapper; +import org.mapstruct.TargetType; @Mapper(componentModel = "spring") public interface CommonEntityMapper { - default CoalWashingDailyAnalysisEntity createCoalWashingDailyAnalysisEntity(String id) { + @SneakyThrows + default T toEntity(String id, @TargetType Class clazz) { if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { return null; } - var e = new CoalWashingDailyAnalysisEntity(); - e.setId(id); - return e; + + + T t = clazz.newInstance(); + t.setId(id); + return t; } - default CoalInfoEntity createCoalInfoEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalInfoEntity(); - e.setId(id); - return e; - } - - default MeterLogEntity createMeterLogEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new MeterLogEntity(); - e.setId(id); - return e; - } - - default InventoryCheckDetailEntity createInventoryCheckDetailEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new InventoryCheckDetailEntity(); - e.setId(id); - return e; - } - - default ScriptEntity createScriptEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new ScriptEntity(); - e.setId(id); - return e; - } - - default CoalPriceEntity createCoalPriceEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalPriceEntity(); - e.setId(id); - return e; - } - - default OrganizationEntity createOrganizationEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new OrganizationEntity(); - e.setId(id); - return e; - } - - default RoleEntity createRoleEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new RoleEntity(); - e.setId(id); - return e; - } - - default DownloadCenterEntity createDownloadCenterEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new DownloadCenterEntity(); - e.setId(id); - return e; - } - - default DictionaryItemEntity createDictionaryItemEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new DictionaryItemEntity(); - e.setId(id); - return e; - } - - default NoticeEntity createNoticeEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new NoticeEntity(); - e.setId(id); - return e; - } - - default ProductEntity createProductEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new ProductEntity(); - e.setId(id); - return e; - } - - default NoteBookEntity createNoteBookEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new NoteBookEntity(); - e.setId(id); - return e; - } - - default CoalAnalysisEntity createCoalAnalysisEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalAnalysisEntity(); - e.setId(id); - return e; - } - - default EmployeeEntity createEmployeeEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new EmployeeEntity(); - e.setId(id); - return e; - } - - default UserEntity createUserEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new UserEntity(); - e.setId(id); - return e; - } - - default SalaryItemEntity createSalaryItemEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new SalaryItemEntity(); - e.setId(id); - return e; - } - - default MeterMonthLogEntity createMeterMonthLogEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new MeterMonthLogEntity(); - e.setId(id); - return e; - } - - default CronJobEntity createCronJobEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CronJobEntity(); - e.setId(id); - return e; - } - - default DepartmentEntity createDepartmentEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new DepartmentEntity(); - e.setId(id); - return e; - } - - default MeterDayLogEntity createMeterDayLogEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new MeterDayLogEntity(); - e.setId(id); - return e; - } - - default CoalAnalysisHisEntity createCoalAnalysisHisEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalAnalysisHisEntity(); - e.setId(id); - return e; - } - - default IpListEntity createIpListEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new IpListEntity(); - e.setId(id); - return e; - } - - default CoalBlendResultInfoEntity createCoalBlendResultInfoEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalBlendResultInfoEntity(); - e.setId(id); - return e; - } - - default CoalBlendEntity createCoalBlendEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalBlendEntity(); - e.setId(id); - return e; - } - - default NetDiskEntity createNetDiskEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new NetDiskEntity(); - e.setId(id); - return e; - } - - default CronJobLogEntity createCronJobLogEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CronJobLogEntity(); - e.setId(id); - return e; - } - - default PdfGeneratorEntity createPdfGeneratorEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new PdfGeneratorEntity(); - e.setId(id); - return e; - } - - default JobPostEntity createJobPostEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new JobPostEntity(); - e.setId(id); - return e; - } - - default DictionaryEntity createDictionaryEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new DictionaryEntity(); - e.setId(id); - return e; - } - - default WarehouseEntity createWarehouseEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new WarehouseEntity(); - e.setId(id); - return e; - } - - default ResetPwdEntity createResetPwdEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new ResetPwdEntity(); - e.setId(id); - return e; - } - - default EnterpriseEntity createEnterpriseEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new EnterpriseEntity(); - e.setId(id); - return e; - } - - default SysConfigEntity createSysConfigEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new SysConfigEntity(); - e.setId(id); - return e; - } - - default CoalParameterDefEntity createCoalParameterDefEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalParameterDefEntity(); - e.setId(id); - return e; - } - - default CacheCtlEntity createCacheCtlEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CacheCtlEntity(); - e.setId(id); - return e; - } - - default PermissionEntity createPermissionEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new PermissionEntity(); - e.setId(id); - return e; - } - - default SmsTemplateEntity createSmsTemplateEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new SmsTemplateEntity(); - e.setId(id); - return e; - } - - default PurchaseOrderEntity createPurchaseOrderEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new PurchaseOrderEntity(); - e.setId(id); - return e; - } - - default SmsEntity createSmsEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new SmsEntity(); - e.setId(id); - return e; - } - - default NoticeStatusEntity createNoticeStatusEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new NoticeStatusEntity(); - e.setId(id); - return e; - } - - default NoteBookChapterEntity createNoteBookChapterEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new NoteBookChapterEntity(); - e.setId(id); - return e; - } - - default WarehouseShelveEntity createWarehouseShelveEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new WarehouseShelveEntity(); - e.setId(id); - return e; - } - - default DeliveryInformationEntity createDeliveryInformationEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new DeliveryInformationEntity(); - e.setId(id); - return e; - } - - default SysLogEntity createSysLogEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new SysLogEntity(); - e.setId(id); - return e; - } - - default InventoryCheckEntity createInventoryCheckEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new InventoryCheckEntity(); - e.setId(id); - return e; - } - - default CoalWashingDailyAnalysisParamEntity createCoalWashingDailyAnalysisParamEntity( - String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalWashingDailyAnalysisParamEntity(); - e.setId(id); - return e; - } - - default SupplierEntity createSupplierEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new SupplierEntity(); - e.setId(id); - return e; - } - - default ResourceEntity createResourceEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new ResourceEntity(); - e.setId(id); - return e; - } - - default MeterEntity createMeterEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new MeterEntity(); - e.setId(id); - return e; - } - - default CoalBlendCoalInfoEntity createCoalBlendCoalInfoEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalBlendCoalInfoEntity(); - e.setId(id); - return e; - } - - default LoginUserHisEntity createLoginUserHisEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new LoginUserHisEntity(); - e.setId(id); - return e; - } - - default WarehouseSupplierEntity createWarehouseSupplierEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new WarehouseSupplierEntity(); - e.setId(id); - return e; - } - - default LoginUserEntity createLoginUserEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new LoginUserEntity(); - e.setId(id); - return e; - } - - default PasswordDictEntity createPasswordDictEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new PasswordDictEntity(); - e.setId(id); - return e; - } - - default CoalWashingMonthReportEntity createCoalWashingMonthReportEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new CoalWashingMonthReportEntity(); - e.setId(id); - return e; - } - - default FileEntity createFileEntity(String id) { - - if (org.apache.commons.lang3.StringUtils.isEmpty(id)) { - return null; - } - var e = new FileEntity(); - e.setId(id); - return e; - } + } diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoods/controller/WarehouseGoodsController.java b/src/main/java/cn/lihongjie/coal/warehouseGoods/controller/WarehouseGoodsController.java new file mode 100644 index 00000000..b2b815b5 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoods/controller/WarehouseGoodsController.java @@ -0,0 +1,54 @@ +package cn.lihongjie.coal.warehouseGoods.controller; + +import cn.lihongjie.coal.annotation.OrgScope; +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.warehouseGoods.dto.CreateWarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.dto.UpdateWarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.dto.WarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.service.WarehouseGoodsService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/warehouseGoods") +@SysLog(module = "仓库商品管理") +@Slf4j +@OrgScope +public class WarehouseGoodsController { + @Autowired private WarehouseGoodsService service; + + @PostMapping("/create") + public WarehouseGoodsDto create(@RequestBody CreateWarehouseGoodsDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public WarehouseGoodsDto update(@RequestBody UpdateWarehouseGoodsDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public WarehouseGoodsDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/CreateWarehouseGoodsDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/CreateWarehouseGoodsDto.java new file mode 100644 index 00000000..0f8c2735 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/CreateWarehouseGoodsDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoods.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class CreateWarehouseGoodsDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/UpdateWarehouseGoodsDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/UpdateWarehouseGoodsDto.java new file mode 100644 index 00000000..2d5603d7 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/UpdateWarehouseGoodsDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoods.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class UpdateWarehouseGoodsDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/WarehouseGoodsDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/WarehouseGoodsDto.java new file mode 100644 index 00000000..57c48ebb --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoods/dto/WarehouseGoodsDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoods.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class WarehouseGoodsDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoods/entity/WarehouseGoodsEntity.java b/src/main/java/cn/lihongjie/coal/warehouseGoods/entity/WarehouseGoodsEntity.java new file mode 100644 index 00000000..4dbd8632 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoods/entity/WarehouseGoodsEntity.java @@ -0,0 +1,55 @@ +package cn.lihongjie.coal.warehouseGoods.entity; + +import cn.lihongjie.coal.base.entity.OrgCommonEntity; +import cn.lihongjie.coal.warehouseGoodsBrand.entity.WarehouseGoodsBrandEntity; +import cn.lihongjie.coal.warehouseGoodsCategory.entity.WarehouseGoodsCategoryEntity; +import cn.lihongjie.coal.warehouseGoodsUnit.entity.WarehouseGoodsUnitEntity; + +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToOne; + +import lombok.Data; + +import org.hibernate.annotations.Comment; + +@Data +@Entity +public class WarehouseGoodsEntity extends OrgCommonEntity { + + + @ManyToOne + private WarehouseGoodsCategoryEntity category; + + @ManyToOne + private WarehouseGoodsBrandEntity brand; + + + @ManyToOne + private WarehouseGoodsUnitEntity unit; + + + @Comment("条码") + private String barCode; + + + @Comment("重量 kg") + private Double weight; + + @Comment("体积 m3") + private Double volume; + + @Comment("尺寸") + private String size; + + @Comment("进货价") + private Double price1; + @Comment("市场价") + private Double price2; + @Comment("仓库核算价") + private Double price3; + + private Double price4; + private Double price5; + + +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoods/mapper/WarehouseGoodsMapper.java b/src/main/java/cn/lihongjie/coal/warehouseGoods/mapper/WarehouseGoodsMapper.java new file mode 100644 index 00000000..fedf6a50 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoods/mapper/WarehouseGoodsMapper.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.warehouseGoods.mapper; + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.warehouseGoods.dto.CreateWarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.dto.UpdateWarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.dto.WarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.entity.WarehouseGoodsEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface WarehouseGoodsMapper + extends BaseMapper< + WarehouseGoodsEntity, + WarehouseGoodsDto, + CreateWarehouseGoodsDto, + UpdateWarehouseGoodsDto> {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoods/repository/WarehouseGoodsRepository.java b/src/main/java/cn/lihongjie/coal/warehouseGoods/repository/WarehouseGoodsRepository.java new file mode 100644 index 00000000..4f2d8fda --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoods/repository/WarehouseGoodsRepository.java @@ -0,0 +1,9 @@ +package cn.lihongjie.coal.warehouseGoods.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.warehouseGoods.entity.WarehouseGoodsEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface WarehouseGoodsRepository extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoods/service/WarehouseGoodsService.java b/src/main/java/cn/lihongjie/coal/warehouseGoods/service/WarehouseGoodsService.java new file mode 100644 index 00000000..e5fb8bd5 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoods/service/WarehouseGoodsService.java @@ -0,0 +1,71 @@ +package cn.lihongjie.coal.warehouseGoods.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.warehouseGoods.dto.CreateWarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.dto.UpdateWarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.dto.WarehouseGoodsDto; +import cn.lihongjie.coal.warehouseGoods.entity.WarehouseGoodsEntity; +import cn.lihongjie.coal.warehouseGoods.mapper.WarehouseGoodsMapper; +import cn.lihongjie.coal.warehouseGoods.repository.WarehouseGoodsRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class WarehouseGoodsService + extends BaseService { + @Autowired private WarehouseGoodsRepository repository; + + @Autowired private WarehouseGoodsMapper mapper; + + @Autowired private ConversionService conversionService; + + public WarehouseGoodsDto create(CreateWarehouseGoodsDto request) { + WarehouseGoodsEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + public WarehouseGoodsDto update(UpdateWarehouseGoodsDto request) { + WarehouseGoodsEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public WarehouseGoodsDto getById(String id) { + WarehouseGoodsEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/controller/WarehouseGoodsBrandController.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/controller/WarehouseGoodsBrandController.java new file mode 100644 index 00000000..00b31ff9 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/controller/WarehouseGoodsBrandController.java @@ -0,0 +1,54 @@ +package cn.lihongjie.coal.warehouseGoodsBrand.controller; + +import cn.lihongjie.coal.annotation.OrgScope; +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.CreateWarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.UpdateWarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.WarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.service.WarehouseGoodsBrandService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/warehouseGoodsBrand") +@SysLog(module = "仓库商品品牌管理") +@Slf4j +@OrgScope +public class WarehouseGoodsBrandController { + @Autowired private WarehouseGoodsBrandService service; + + @PostMapping("/create") + public WarehouseGoodsBrandDto create(@RequestBody CreateWarehouseGoodsBrandDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public WarehouseGoodsBrandDto update(@RequestBody UpdateWarehouseGoodsBrandDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public WarehouseGoodsBrandDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/CreateWarehouseGoodsBrandDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/CreateWarehouseGoodsBrandDto.java new file mode 100644 index 00000000..3146b6f6 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/CreateWarehouseGoodsBrandDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoodsBrand.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class CreateWarehouseGoodsBrandDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/UpdateWarehouseGoodsBrandDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/UpdateWarehouseGoodsBrandDto.java new file mode 100644 index 00000000..1c0b64f6 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/UpdateWarehouseGoodsBrandDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoodsBrand.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class UpdateWarehouseGoodsBrandDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/WarehouseGoodsBrandDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/WarehouseGoodsBrandDto.java new file mode 100644 index 00000000..e8a95691 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/dto/WarehouseGoodsBrandDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoodsBrand.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class WarehouseGoodsBrandDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/entity/WarehouseGoodsBrandEntity.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/entity/WarehouseGoodsBrandEntity.java new file mode 100644 index 00000000..8f38bc34 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/entity/WarehouseGoodsBrandEntity.java @@ -0,0 +1,11 @@ +package cn.lihongjie.coal.warehouseGoodsBrand.entity; + +import cn.lihongjie.coal.base.entity.OrgCommonEntity; + +import jakarta.persistence.Entity; + +import lombok.Data; + +@Data +@Entity +public class WarehouseGoodsBrandEntity extends OrgCommonEntity {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/mapper/WarehouseGoodsBrandMapper.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/mapper/WarehouseGoodsBrandMapper.java new file mode 100644 index 00000000..bd8d681e --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/mapper/WarehouseGoodsBrandMapper.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.warehouseGoodsBrand.mapper; + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.CreateWarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.UpdateWarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.WarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.entity.WarehouseGoodsBrandEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface WarehouseGoodsBrandMapper + extends BaseMapper< + WarehouseGoodsBrandEntity, + WarehouseGoodsBrandDto, + CreateWarehouseGoodsBrandDto, + UpdateWarehouseGoodsBrandDto> {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/repository/WarehouseGoodsBrandRepository.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/repository/WarehouseGoodsBrandRepository.java new file mode 100644 index 00000000..8878e8df --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/repository/WarehouseGoodsBrandRepository.java @@ -0,0 +1,9 @@ +package cn.lihongjie.coal.warehouseGoodsBrand.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.warehouseGoodsBrand.entity.WarehouseGoodsBrandEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface WarehouseGoodsBrandRepository extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/service/WarehouseGoodsBrandService.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/service/WarehouseGoodsBrandService.java new file mode 100644 index 00000000..53b481d4 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsBrand/service/WarehouseGoodsBrandService.java @@ -0,0 +1,71 @@ +package cn.lihongjie.coal.warehouseGoodsBrand.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.CreateWarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.UpdateWarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.dto.WarehouseGoodsBrandDto; +import cn.lihongjie.coal.warehouseGoodsBrand.entity.WarehouseGoodsBrandEntity; +import cn.lihongjie.coal.warehouseGoodsBrand.mapper.WarehouseGoodsBrandMapper; +import cn.lihongjie.coal.warehouseGoodsBrand.repository.WarehouseGoodsBrandRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class WarehouseGoodsBrandService + extends BaseService { + @Autowired private WarehouseGoodsBrandRepository repository; + + @Autowired private WarehouseGoodsBrandMapper mapper; + + @Autowired private ConversionService conversionService; + + public WarehouseGoodsBrandDto create(CreateWarehouseGoodsBrandDto request) { + WarehouseGoodsBrandEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + public WarehouseGoodsBrandDto update(UpdateWarehouseGoodsBrandDto request) { + WarehouseGoodsBrandEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public WarehouseGoodsBrandDto getById(String id) { + WarehouseGoodsBrandEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/controller/WarehouseGoodsCategoryController.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/controller/WarehouseGoodsCategoryController.java new file mode 100644 index 00000000..981f32fa --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/controller/WarehouseGoodsCategoryController.java @@ -0,0 +1,54 @@ +package cn.lihongjie.coal.warehouseGoodsCategory.controller; + +import cn.lihongjie.coal.annotation.OrgScope; +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.CreateWarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.UpdateWarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.WarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.service.WarehouseGoodsCategoryService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/warehouseGoodsCategory") +@SysLog(module = "仓库商品类目管理") +@Slf4j +@OrgScope +public class WarehouseGoodsCategoryController { + @Autowired private WarehouseGoodsCategoryService service; + + @PostMapping("/create") + public WarehouseGoodsCategoryDto create(@RequestBody CreateWarehouseGoodsCategoryDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public WarehouseGoodsCategoryDto update(@RequestBody UpdateWarehouseGoodsCategoryDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public WarehouseGoodsCategoryDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/CreateWarehouseGoodsCategoryDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/CreateWarehouseGoodsCategoryDto.java new file mode 100644 index 00000000..8be7724a --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/CreateWarehouseGoodsCategoryDto.java @@ -0,0 +1,13 @@ +package cn.lihongjie.coal.warehouseGoodsCategory.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import jakarta.persistence.ManyToOne; + +import lombok.Data; + +@Data +public class CreateWarehouseGoodsCategoryDto extends OrgCommonDto { + @ManyToOne + private String parent; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/UpdateWarehouseGoodsCategoryDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/UpdateWarehouseGoodsCategoryDto.java new file mode 100644 index 00000000..63694dd0 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/UpdateWarehouseGoodsCategoryDto.java @@ -0,0 +1,14 @@ +package cn.lihongjie.coal.warehouseGoodsCategory.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import jakarta.persistence.ManyToOne; + +import lombok.Data; + +@Data +public class UpdateWarehouseGoodsCategoryDto extends OrgCommonDto { + + @ManyToOne + private String parent; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/WarehouseGoodsCategoryDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/WarehouseGoodsCategoryDto.java new file mode 100644 index 00000000..9adeeb02 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/dto/WarehouseGoodsCategoryDto.java @@ -0,0 +1,14 @@ +package cn.lihongjie.coal.warehouseGoodsCategory.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import jakarta.persistence.ManyToOne; + +import lombok.Data; + +@Data +public class WarehouseGoodsCategoryDto extends OrgCommonDto { + + @ManyToOne + private String parent; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/entity/WarehouseGoodsCategoryEntity.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/entity/WarehouseGoodsCategoryEntity.java new file mode 100644 index 00000000..f6fc53a0 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/entity/WarehouseGoodsCategoryEntity.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.warehouseGoodsCategory.entity; + +import cn.lihongjie.coal.base.entity.OrgCommonEntity; + +import jakarta.persistence.*; + +import lombok.Data; + +import java.util.List; + +@Data +@Entity +public class WarehouseGoodsCategoryEntity extends OrgCommonEntity { + + + @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL) + private List children; + + @ManyToOne + private WarehouseGoodsCategoryEntity parent; + + +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/mapper/WarehouseGoodsCategoryMapper.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/mapper/WarehouseGoodsCategoryMapper.java new file mode 100644 index 00000000..aceba4cb --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/mapper/WarehouseGoodsCategoryMapper.java @@ -0,0 +1,24 @@ +package cn.lihongjie.coal.warehouseGoodsCategory.mapper; + + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.CreateWarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.UpdateWarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.WarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.entity.WarehouseGoodsCategoryEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface WarehouseGoodsCategoryMapper + extends BaseMapper< + WarehouseGoodsCategoryEntity, + WarehouseGoodsCategoryDto, + CreateWarehouseGoodsCategoryDto, + UpdateWarehouseGoodsCategoryDto> {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/repository/WarehouseGoodsCategoryRepository.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/repository/WarehouseGoodsCategoryRepository.java new file mode 100644 index 00000000..bd72c0b3 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/repository/WarehouseGoodsCategoryRepository.java @@ -0,0 +1,10 @@ +package cn.lihongjie.coal.warehouseGoodsCategory.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.warehouseGoodsCategory.entity.WarehouseGoodsCategoryEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface WarehouseGoodsCategoryRepository + extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/service/WarehouseGoodsCategoryService.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/service/WarehouseGoodsCategoryService.java new file mode 100644 index 00000000..79d9472a --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsCategory/service/WarehouseGoodsCategoryService.java @@ -0,0 +1,71 @@ +package cn.lihongjie.coal.warehouseGoodsCategory.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.CreateWarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.UpdateWarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.dto.WarehouseGoodsCategoryDto; +import cn.lihongjie.coal.warehouseGoodsCategory.entity.WarehouseGoodsCategoryEntity; +import cn.lihongjie.coal.warehouseGoodsCategory.mapper.WarehouseGoodsCategoryMapper; +import cn.lihongjie.coal.warehouseGoodsCategory.repository.WarehouseGoodsCategoryRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class WarehouseGoodsCategoryService + extends BaseService { + @Autowired private WarehouseGoodsCategoryRepository repository; + + @Autowired private WarehouseGoodsCategoryMapper mapper; + + @Autowired private ConversionService conversionService; + + public WarehouseGoodsCategoryDto create(CreateWarehouseGoodsCategoryDto request) { + WarehouseGoodsCategoryEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + public WarehouseGoodsCategoryDto update(UpdateWarehouseGoodsCategoryDto request) { + WarehouseGoodsCategoryEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public WarehouseGoodsCategoryDto getById(String id) { + WarehouseGoodsCategoryEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/controller/WarehouseGoodsUnitController.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/controller/WarehouseGoodsUnitController.java new file mode 100644 index 00000000..6697c21d --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/controller/WarehouseGoodsUnitController.java @@ -0,0 +1,54 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.controller; + +import cn.lihongjie.coal.annotation.OrgScope; +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.CreateWarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.UpdateWarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.WarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.service.WarehouseGoodsUnitService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/warehouseGoodsUnit") +@SysLog(module = "仓库商品单位") +@Slf4j +@OrgScope +public class WarehouseGoodsUnitController { + @Autowired private WarehouseGoodsUnitService service; + + @PostMapping("/create") + public WarehouseGoodsUnitDto create(@RequestBody CreateWarehouseGoodsUnitDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public WarehouseGoodsUnitDto update(@RequestBody UpdateWarehouseGoodsUnitDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public WarehouseGoodsUnitDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/CreateWarehouseGoodsUnitDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/CreateWarehouseGoodsUnitDto.java new file mode 100644 index 00000000..135b2afd --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/CreateWarehouseGoodsUnitDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class CreateWarehouseGoodsUnitDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/UpdateWarehouseGoodsUnitDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/UpdateWarehouseGoodsUnitDto.java new file mode 100644 index 00000000..33a36634 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/UpdateWarehouseGoodsUnitDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class UpdateWarehouseGoodsUnitDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/WarehouseGoodsUnitDto.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/WarehouseGoodsUnitDto.java new file mode 100644 index 00000000..45cb81f1 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/WarehouseGoodsUnitDto.java @@ -0,0 +1,8 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class WarehouseGoodsUnitDto extends OrgCommonDto {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/entity/WarehouseGoodsUnitEntity.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/entity/WarehouseGoodsUnitEntity.java new file mode 100644 index 00000000..002e65d7 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/entity/WarehouseGoodsUnitEntity.java @@ -0,0 +1,11 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.entity; + +import cn.lihongjie.coal.base.entity.OrgCommonEntity; + +import jakarta.persistence.Entity; + +import lombok.Data; + +@Data +@Entity +public class WarehouseGoodsUnitEntity extends OrgCommonEntity {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/mapper/WarehouseGoodsUnitMapper.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/mapper/WarehouseGoodsUnitMapper.java new file mode 100644 index 00000000..5f49ade4 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/mapper/WarehouseGoodsUnitMapper.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.mapper; + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.CreateWarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.UpdateWarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.WarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.entity.WarehouseGoodsUnitEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface WarehouseGoodsUnitMapper + extends BaseMapper< + WarehouseGoodsUnitEntity, + WarehouseGoodsUnitDto, + CreateWarehouseGoodsUnitDto, + UpdateWarehouseGoodsUnitDto> {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/repository/WarehouseGoodsUnitRepository.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/repository/WarehouseGoodsUnitRepository.java new file mode 100644 index 00000000..f7462c69 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/repository/WarehouseGoodsUnitRepository.java @@ -0,0 +1,9 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.warehouseGoodsUnit.entity.WarehouseGoodsUnitEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface WarehouseGoodsUnitRepository extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/service/WarehouseGoodsUnitService.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/service/WarehouseGoodsUnitService.java new file mode 100644 index 00000000..4165afa4 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/service/WarehouseGoodsUnitService.java @@ -0,0 +1,71 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.CreateWarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.UpdateWarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.WarehouseGoodsUnitDto; +import cn.lihongjie.coal.warehouseGoodsUnit.entity.WarehouseGoodsUnitEntity; +import cn.lihongjie.coal.warehouseGoodsUnit.mapper.WarehouseGoodsUnitMapper; +import cn.lihongjie.coal.warehouseGoodsUnit.repository.WarehouseGoodsUnitRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class WarehouseGoodsUnitService + extends BaseService { + @Autowired private WarehouseGoodsUnitRepository repository; + + @Autowired private WarehouseGoodsUnitMapper mapper; + + @Autowired private ConversionService conversionService; + + public WarehouseGoodsUnitDto create(CreateWarehouseGoodsUnitDto request) { + WarehouseGoodsUnitEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + public WarehouseGoodsUnitDto update(UpdateWarehouseGoodsUnitDto request) { + WarehouseGoodsUnitEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public WarehouseGoodsUnitDto getById(String id) { + WarehouseGoodsUnitEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/controller/WarehouseReceiptController.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/controller/WarehouseReceiptController.java new file mode 100644 index 00000000..c6ae6e88 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/controller/WarehouseReceiptController.java @@ -0,0 +1,54 @@ +package cn.lihongjie.coal.warehouseReceipt.controller; + +import cn.lihongjie.coal.annotation.OrgScope; +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.warehouseReceipt.dto.CreateWarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.dto.UpdateWarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.dto.WarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.service.WarehouseReceiptService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/warehouseReceipt") +@SysLog(module = "仓库单据管理") +@Slf4j +@OrgScope +public class WarehouseReceiptController { + @Autowired private WarehouseReceiptService service; + + @PostMapping("/create") + public WarehouseReceiptDto create(@RequestBody CreateWarehouseReceiptDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public WarehouseReceiptDto update(@RequestBody UpdateWarehouseReceiptDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public WarehouseReceiptDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/CreateWarehouseReceiptDto.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/CreateWarehouseReceiptDto.java new file mode 100644 index 00000000..aa9ee9b7 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/CreateWarehouseReceiptDto.java @@ -0,0 +1,45 @@ +package cn.lihongjie.coal.warehouseReceipt.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.CreateWarehouseReceiptDetailDto; + +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; + +import lombok.Data; + +import org.hibernate.annotations.Comment; + +import java.time.LocalDate; +import java.util.List; + +@Data +public class CreateWarehouseReceiptDto extends OrgCommonDto { + + @Comment("单据类型") + private String receiptType; + + + + @Comment("单据编号") + private String receiptNo; + + @Comment("事由") + private String reason; + + @Comment("是由说明") + private String reasonDesc; + + @ManyToOne + private String warehouse; + + @Comment("单据日期") + private LocalDate receiptDate; + + + @OneToMany + private List detail; + + + +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/UpdateWarehouseReceiptDto.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/UpdateWarehouseReceiptDto.java new file mode 100644 index 00000000..26589bfc --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/UpdateWarehouseReceiptDto.java @@ -0,0 +1,42 @@ +package cn.lihongjie.coal.warehouseReceipt.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.CreateWarehouseReceiptDetailDto; + +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; + +import lombok.Data; + +import org.hibernate.annotations.Comment; + +import java.time.LocalDate; +import java.util.List; + +@Data +public class UpdateWarehouseReceiptDto extends OrgCommonDto { + + @Comment("单据类型") + private String receiptType; + + + + @Comment("单据编号") + private String receiptNo; + + @Comment("事由") + private String reason; + + @Comment("是由说明") + private String reasonDesc; + + @ManyToOne + private String warehouse; + + @Comment("单据日期") + private LocalDate receiptDate; + + + @OneToMany + private List detail; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/WarehouseReceiptDto.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/WarehouseReceiptDto.java new file mode 100644 index 00000000..2cd3a8c1 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/dto/WarehouseReceiptDto.java @@ -0,0 +1,61 @@ +package cn.lihongjie.coal.warehouseReceipt.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; +import cn.lihongjie.coal.warehouse.dto.WarehouseDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.WarehouseReceiptDetailDto; + +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; + +import lombok.Data; + +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.Formula; + +import java.time.LocalDate; +import java.util.List; + +@Data +public class WarehouseReceiptDto extends OrgCommonDto { + + + @Comment("单据类型") + private String receiptType; + + @Formula( + "(select i.name\n" + + "from t_dictionary d,\n" + + " t_dictionary_item i\n" + + "where d.id = i.dictionary_id\n" + + " and d.code = 'warehouse.receiptType'\n" + + " and i.code = receipt_type)") + private String receiptTypeName; + + @Comment("单据编号") + private String receiptNo; + + @Comment("事由") + private String reason; + + @Comment("是由说明") + private String reasonDesc; + + @ManyToOne + private WarehouseDto warehouse; + + @Comment("单据日期") + private LocalDate receiptDate; + + + @OneToMany + private List detail; + + + @Formula("(select sum(d.number * d.price) from t_warehouse_receipt_detail d where d.receipt_id = id)") + private Double amount; + + + @Formula("(select sum(d.number) from t_warehouse_receipt_detail d where d.receipt_id = id)") + private Double number; + +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/entity/WarehouseReceiptEntity.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/entity/WarehouseReceiptEntity.java new file mode 100644 index 00000000..3f499292 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/entity/WarehouseReceiptEntity.java @@ -0,0 +1,64 @@ +package cn.lihongjie.coal.warehouseReceipt.entity; + +import cn.lihongjie.coal.base.entity.OrgCommonEntity; +import cn.lihongjie.coal.warehouse.entity.WarehouseEntity; +import cn.lihongjie.coal.warehouseReceiptDetail.entity.WarehouseReceiptDetailEntity; + +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; + +import lombok.Data; + +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.Formula; + +import java.time.LocalDate; +import java.util.List; + +@Data +@Entity +public class WarehouseReceiptEntity extends OrgCommonEntity { + + @Comment("单据类型") + private String receiptType; + + @Formula( + "(select i.name\n" + + "from t_dictionary d,\n" + + " t_dictionary_item i\n" + + "where d.id = i.dictionary_id\n" + + " and d.code = 'warehouse.receiptType'\n" + + " and i.code = receipt_type)") + private String receiptTypeName; + + @Comment("单据编号") + private String receiptNo; + + @Comment("事由") + private String reason; + + @Comment("是由说明") + private String reasonDesc; + + @ManyToOne private WarehouseEntity warehouse; + + @Comment("单据日期") + private LocalDate receiptDate; + + + @OneToMany + private List detail; + + + @Formula("(select sum(d.number * d.price) from t_warehouse_receipt_detail d where d.receipt_id = id)") + private Double amount; + + + @Formula("(select sum(d.number) from t_warehouse_receipt_detail d where d.receipt_id = id)") + private Double number; + + + + +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/mapper/WarehouseReceiptMapper.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/mapper/WarehouseReceiptMapper.java new file mode 100644 index 00000000..ccabe42c --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/mapper/WarehouseReceiptMapper.java @@ -0,0 +1,24 @@ +package cn.lihongjie.coal.warehouseReceipt.mapper; + + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.warehouseReceipt.dto.CreateWarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.dto.UpdateWarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.dto.WarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.entity.WarehouseReceiptEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface WarehouseReceiptMapper + extends BaseMapper< + WarehouseReceiptEntity, + WarehouseReceiptDto, + CreateWarehouseReceiptDto, + UpdateWarehouseReceiptDto> {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/repository/WarehouseReceiptRepository.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/repository/WarehouseReceiptRepository.java new file mode 100644 index 00000000..476ffc1e --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/repository/WarehouseReceiptRepository.java @@ -0,0 +1,9 @@ +package cn.lihongjie.coal.warehouseReceipt.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.warehouseReceipt.entity.WarehouseReceiptEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface WarehouseReceiptRepository extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceipt/service/WarehouseReceiptService.java b/src/main/java/cn/lihongjie/coal/warehouseReceipt/service/WarehouseReceiptService.java new file mode 100644 index 00000000..a0581586 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceipt/service/WarehouseReceiptService.java @@ -0,0 +1,71 @@ +package cn.lihongjie.coal.warehouseReceipt.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.warehouseReceipt.dto.CreateWarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.dto.UpdateWarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.dto.WarehouseReceiptDto; +import cn.lihongjie.coal.warehouseReceipt.entity.WarehouseReceiptEntity; +import cn.lihongjie.coal.warehouseReceipt.mapper.WarehouseReceiptMapper; +import cn.lihongjie.coal.warehouseReceipt.repository.WarehouseReceiptRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class WarehouseReceiptService + extends BaseService { + @Autowired private WarehouseReceiptRepository repository; + + @Autowired private WarehouseReceiptMapper mapper; + + @Autowired private ConversionService conversionService; + + public WarehouseReceiptDto create(CreateWarehouseReceiptDto request) { + WarehouseReceiptEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + public WarehouseReceiptDto update(UpdateWarehouseReceiptDto request) { + WarehouseReceiptEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public WarehouseReceiptDto getById(String id) { + WarehouseReceiptEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/controller/WarehouseReceiptDetailController.java b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/controller/WarehouseReceiptDetailController.java new file mode 100644 index 00000000..fdaa60d9 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/controller/WarehouseReceiptDetailController.java @@ -0,0 +1,54 @@ +package cn.lihongjie.coal.warehouseReceiptDetail.controller; + +import cn.lihongjie.coal.annotation.OrgScope; +import cn.lihongjie.coal.annotation.SysLog; +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.CreateWarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.UpdateWarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.WarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.service.WarehouseReceiptDetailService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/warehouseReceiptDetail") +@SysLog(module = "仓库单据明细") +@Slf4j +@OrgScope +public class WarehouseReceiptDetailController { + @Autowired private WarehouseReceiptDetailService service; + + @PostMapping("/create") + public WarehouseReceiptDetailDto create(@RequestBody CreateWarehouseReceiptDetailDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public WarehouseReceiptDetailDto update(@RequestBody UpdateWarehouseReceiptDetailDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public WarehouseReceiptDetailDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/CreateWarehouseReceiptDetailDto.java b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/CreateWarehouseReceiptDetailDto.java new file mode 100644 index 00000000..42cca9b7 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/CreateWarehouseReceiptDetailDto.java @@ -0,0 +1,31 @@ +package cn.lihongjie.coal.warehouseReceiptDetail.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import jakarta.persistence.ManyToOne; + +import lombok.Data; + +import org.hibernate.annotations.Comment; + +@Data +public class CreateWarehouseReceiptDetailDto extends OrgCommonDto { + + @ManyToOne + private String goods; + + @ManyToOne + private String shelve; + + @ManyToOne + private String receipt; + + @Comment("数量") + private Double number; + + + @Comment("单价") + private Double price; + + +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/UpdateWarehouseReceiptDetailDto.java b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/UpdateWarehouseReceiptDetailDto.java new file mode 100644 index 00000000..afc8537c --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/UpdateWarehouseReceiptDetailDto.java @@ -0,0 +1,29 @@ +package cn.lihongjie.coal.warehouseReceiptDetail.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import jakarta.persistence.ManyToOne; + +import lombok.Data; + +import org.hibernate.annotations.Comment; + +@Data +public class UpdateWarehouseReceiptDetailDto extends OrgCommonDto { + + @ManyToOne + private String goods; + + @ManyToOne + private String shelve; + + @ManyToOne + private String receipt; + + @Comment("数量") + private Double number; + + + @Comment("单价") + private Double price; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/WarehouseReceiptDetailDto.java b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/WarehouseReceiptDetailDto.java new file mode 100644 index 00000000..83ede9b6 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/dto/WarehouseReceiptDetailDto.java @@ -0,0 +1,37 @@ +package cn.lihongjie.coal.warehouseReceiptDetail.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; +import cn.lihongjie.coal.warehouseGoods.dto.WarehouseGoodsDto; +import cn.lihongjie.coal.warehouseReceipt.dto.WarehouseReceiptDto; +import cn.lihongjie.coal.warehouseShelve.dto.WarehouseShelveDto; + +import jakarta.persistence.ManyToOne; + +import lombok.Data; + +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.Formula; + +@Data +public class WarehouseReceiptDetailDto extends OrgCommonDto { + + @ManyToOne + private WarehouseGoodsDto goods; + + @ManyToOne + private WarehouseShelveDto shelve; + + @ManyToOne + private WarehouseReceiptDto receipt; + + @Comment("数量") + private Double number; + + + @Comment("单价") + private Double price; + + + @Formula("(number * price)") + private Double amount; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/entity/WarehouseReceiptDetailEntity.java b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/entity/WarehouseReceiptDetailEntity.java new file mode 100644 index 00000000..a70b2862 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/entity/WarehouseReceiptDetailEntity.java @@ -0,0 +1,43 @@ +package cn.lihongjie.coal.warehouseReceiptDetail.entity; + +import cn.lihongjie.coal.base.entity.OrgCommonEntity; +import cn.lihongjie.coal.warehouseGoods.entity.WarehouseGoodsEntity; +import cn.lihongjie.coal.warehouseReceipt.entity.WarehouseReceiptEntity; +import cn.lihongjie.coal.warehouseShelve.entity.WarehouseShelveEntity; + +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToOne; + +import lombok.Data; + +import org.hibernate.annotations.Comment; +import org.hibernate.annotations.Formula; + +@Data +@Entity +public class WarehouseReceiptDetailEntity extends OrgCommonEntity { + + + @ManyToOne + private WarehouseGoodsEntity goods; + + @ManyToOne + private WarehouseShelveEntity shelve; + + @ManyToOne + private WarehouseReceiptEntity receipt; + + @Comment("数量") + private Double number; + + + @Comment("单价") + private Double price; + + + @Formula("(number * price)") + private Double amount; + + + +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/mapper/WarehouseReceiptDetailMapper.java b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/mapper/WarehouseReceiptDetailMapper.java new file mode 100644 index 00000000..5013ad34 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/mapper/WarehouseReceiptDetailMapper.java @@ -0,0 +1,23 @@ +package cn.lihongjie.coal.warehouseReceiptDetail.mapper; + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.CreateWarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.UpdateWarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.WarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.entity.WarehouseReceiptDetailEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface WarehouseReceiptDetailMapper + extends BaseMapper< + WarehouseReceiptDetailEntity, + WarehouseReceiptDetailDto, + CreateWarehouseReceiptDetailDto, + UpdateWarehouseReceiptDetailDto> {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/repository/WarehouseReceiptDetailRepository.java b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/repository/WarehouseReceiptDetailRepository.java new file mode 100644 index 00000000..932a5ac2 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/repository/WarehouseReceiptDetailRepository.java @@ -0,0 +1,10 @@ +package cn.lihongjie.coal.warehouseReceiptDetail.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.warehouseReceiptDetail.entity.WarehouseReceiptDetailEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface WarehouseReceiptDetailRepository + extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/service/WarehouseReceiptDetailService.java b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/service/WarehouseReceiptDetailService.java new file mode 100644 index 00000000..992a7727 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseReceiptDetail/service/WarehouseReceiptDetailService.java @@ -0,0 +1,71 @@ +package cn.lihongjie.coal.warehouseReceiptDetail.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.CreateWarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.UpdateWarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.dto.WarehouseReceiptDetailDto; +import cn.lihongjie.coal.warehouseReceiptDetail.entity.WarehouseReceiptDetailEntity; +import cn.lihongjie.coal.warehouseReceiptDetail.mapper.WarehouseReceiptDetailMapper; +import cn.lihongjie.coal.warehouseReceiptDetail.repository.WarehouseReceiptDetailRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class WarehouseReceiptDetailService + extends BaseService { + @Autowired private WarehouseReceiptDetailRepository repository; + + @Autowired private WarehouseReceiptDetailMapper mapper; + + @Autowired private ConversionService conversionService; + + public WarehouseReceiptDetailDto create(CreateWarehouseReceiptDetailDto request) { + WarehouseReceiptDetailEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + public WarehouseReceiptDetailDto update(UpdateWarehouseReceiptDetailDto request) { + WarehouseReceiptDetailEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public WarehouseReceiptDetailDto getById(String id) { + WarehouseReceiptDetailEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +} diff --git a/src/main/resources/config/dictionary.json b/src/main/resources/config/dictionary.json index c9424cec..666daf8a 100644 --- a/src/main/resources/config/dictionary.json +++ b/src/main/resources/config/dictionary.json @@ -1945,6 +1945,22 @@ ] }, + + { + "code": "warehouse.receiptType", + "name": "仓库单据类型", + "item": [ + { + "code": "0", + "name": "入库单" + }, + { + "code": "1", + "name": "出库单" + } + + ] + }, { "code": "coalBlend.coalType", "name": "配煤-煤类型",