diff --git a/pom.xml b/pom.xml index 5d1fce6..74308ca 100644 --- a/pom.xml +++ b/pom.xml @@ -49,6 +49,7 @@ 3.5.5 1.6.3 UTF-8 + yyyyMMdd-HHmm diff --git a/urbanops-dependencies/pom.xml b/urbanops-dependencies/pom.xml index 5f0399f..79802ac 100644 --- a/urbanops-dependencies/pom.xml +++ b/urbanops-dependencies/pom.xml @@ -76,6 +76,7 @@ 2.1.1 2.1.0 4.7.7-20250808.182223 + yyyyMMdd-HHmm diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/MaterialNameController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/MaterialNameController.java new file mode 100644 index 0000000..48aa221 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/MaterialNameController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialname; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.materialname.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialname.MaterialNameDO; +import com.zteits.urbanops.module.garden.service.materialname.MaterialNameService; + +@Tag(name = "管理后台 - 物料名称") +@RestController +@RequestMapping("/garden/material-name") +@Validated +public class MaterialNameController { + + @Resource + private MaterialNameService materialNameService; + + @PostMapping("/create") + @Operation(summary = "创建物料名称") + @PreAuthorize("@ss.hasPermission('garden:material-name:create')") + public CommonResult createMaterialName(@Valid @RequestBody MaterialNameSaveReqVO createReqVO) { + return success(materialNameService.createMaterialName(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料名称") + @PreAuthorize("@ss.hasPermission('garden:material-name:update')") + public CommonResult updateMaterialName(@Valid @RequestBody MaterialNameSaveReqVO updateReqVO) { + materialNameService.updateMaterialName(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料名称") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:material-name:delete')") + public CommonResult deleteMaterialName(@RequestParam("id") Long id) { + materialNameService.deleteMaterialName(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料名称") + @PreAuthorize("@ss.hasPermission('garden:material-name:delete')") + public CommonResult deleteMaterialNameList(@RequestParam("ids") List ids) { + materialNameService.deleteMaterialNameListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料名称") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:material-name:query')") + public CommonResult getMaterialName(@RequestParam("id") Long id) { + MaterialNameDO materialName = materialNameService.getMaterialName(id); + return success(BeanUtils.toBean(materialName, MaterialNameRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料名称分页") + @PreAuthorize("@ss.hasPermission('garden:material-name:query')") + public CommonResult> getMaterialNamePage(@Valid MaterialNamePageReqVO pageReqVO) { + PageResult pageResult = materialNameService.getMaterialNamePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialNameRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料名称 Excel") + @PreAuthorize("@ss.hasPermission('garden:material-name:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialNameExcel(@Valid MaterialNamePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialNameService.getMaterialNamePage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料名称.xls", "数据", MaterialNameRespVO.class, + BeanUtils.toBean(list, MaterialNameRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNamePageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNamePageReqVO.java new file mode 100644 index 0000000..48e0893 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNamePageReqVO.java @@ -0,0 +1,32 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialname.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 物料名称分页 Request VO") +@Data +public class MaterialNamePageReqVO extends PageParam { + + @Schema(description = "物料名称ID", example = "14631") + private Long materialId; + + @Schema(description = "物料名称", example = "张三") + private String materialName; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "部门ID", example = "23084") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameRespVO.java new file mode 100644 index 0000000..0a567c4 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameRespVO.java @@ -0,0 +1,39 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialname.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 物料名称 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MaterialNameRespVO { + + @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32592") + @ExcelProperty("自增主键") + private Long id; + + @Schema(description = "物料名称ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14631") + @ExcelProperty("物料名称ID") + private Long materialId; + + @Schema(description = "物料名称", example = "张三") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "部门ID", example = "23084") + @ExcelProperty("部门ID") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameSaveReqVO.java new file mode 100644 index 0000000..19d9d59 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialname/vo/MaterialNameSaveReqVO.java @@ -0,0 +1,29 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialname.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 物料名称新增/修改 Request VO") +@Data +public class MaterialNameSaveReqVO { + + @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "32592") + private Long id; + + @Schema(description = "物料名称ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14631") + @NotNull(message = "物料名称ID不能为空") + private Long materialId; + + @Schema(description = "物料名称", example = "张三") + private String materialName; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") + @NotEmpty(message = "备注不能为空") + private String remark; + + @Schema(description = "部门ID", example = "23084") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/MaterialSpecificationController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/MaterialSpecificationController.java new file mode 100644 index 0000000..4be6de1 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/MaterialSpecificationController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialspecification; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.materialspecification.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialspecification.MaterialSpecificationDO; +import com.zteits.urbanops.module.garden.service.materialspecification.MaterialSpecificationService; + +@Tag(name = "管理后台 - 物料规格") +@RestController +@RequestMapping("/garden/material-specification") +@Validated +public class MaterialSpecificationController { + + @Resource + private MaterialSpecificationService materialSpecificationService; + + @PostMapping("/create") + @Operation(summary = "创建物料规格") + @PreAuthorize("@ss.hasPermission('garden:material-specification:create')") + public CommonResult createMaterialSpecification(@Valid @RequestBody MaterialSpecificationSaveReqVO createReqVO) { + return success(materialSpecificationService.createMaterialSpecification(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料规格") + @PreAuthorize("@ss.hasPermission('garden:material-specification:update')") + public CommonResult updateMaterialSpecification(@Valid @RequestBody MaterialSpecificationSaveReqVO updateReqVO) { + materialSpecificationService.updateMaterialSpecification(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料规格") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:material-specification:delete')") + public CommonResult deleteMaterialSpecification(@RequestParam("id") Long id) { + materialSpecificationService.deleteMaterialSpecification(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料规格") + @PreAuthorize("@ss.hasPermission('garden:material-specification:delete')") + public CommonResult deleteMaterialSpecificationList(@RequestParam("ids") List ids) { + materialSpecificationService.deleteMaterialSpecificationListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料规格") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:material-specification:query')") + public CommonResult getMaterialSpecification(@RequestParam("id") Long id) { + MaterialSpecificationDO materialSpecification = materialSpecificationService.getMaterialSpecification(id); + return success(BeanUtils.toBean(materialSpecification, MaterialSpecificationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料规格分页") + @PreAuthorize("@ss.hasPermission('garden:material-specification:query')") + public CommonResult> getMaterialSpecificationPage(@Valid MaterialSpecificationPageReqVO pageReqVO) { + PageResult pageResult = materialSpecificationService.getMaterialSpecificationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialSpecificationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料规格 Excel") + @PreAuthorize("@ss.hasPermission('garden:material-specification:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialSpecificationExcel(@Valid MaterialSpecificationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialSpecificationService.getMaterialSpecificationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料规格.xls", "数据", MaterialSpecificationRespVO.class, + BeanUtils.toBean(list, MaterialSpecificationRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationPageReqVO.java new file mode 100644 index 0000000..4fcf08f --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationPageReqVO.java @@ -0,0 +1,32 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialspecification.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 物料规格分页 Request VO") +@Data +public class MaterialSpecificationPageReqVO extends PageParam { + + @Schema(description = "规格编码") + private String specCode; + + @Schema(description = "规格名称") + private String specifications; + + @Schema(description = "备注", example = "你猜") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "部门ID", example = "18158") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationRespVO.java new file mode 100644 index 0000000..cd5bae5 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationRespVO.java @@ -0,0 +1,39 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialspecification.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 物料规格 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MaterialSpecificationRespVO { + + @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15081") + @ExcelProperty("自增主键") + private Long id; + + @Schema(description = "规格编码") + @ExcelProperty("规格编码") + private String specCode; + + @Schema(description = "规格名称", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("规格名称") + private String specifications; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "部门ID", example = "18158") + @ExcelProperty("部门ID") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationSaveReqVO.java new file mode 100644 index 0000000..a6771fe --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialspecification/vo/MaterialSpecificationSaveReqVO.java @@ -0,0 +1,29 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialspecification.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 物料规格新增/修改 Request VO") +@Data +public class MaterialSpecificationSaveReqVO { + + @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15081") + private Long id; + + @Schema(description = "规格编码") + private String specCode; + + @Schema(description = "规格名称", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "规格名称不能为空") + private String specifications; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") + @NotEmpty(message = "备注不能为空") + private String remark; + + @Schema(description = "部门ID", example = "18158") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/MaterialUnitController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/MaterialUnitController.java new file mode 100644 index 0000000..7f3e4af --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/MaterialUnitController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialunit; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.*; + +import com.zteits.urbanops.module.garden.controller.admin.materialunit.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialunit.MaterialUnitDO; +import com.zteits.urbanops.module.garden.service.materialunit.MaterialUnitService; + +@Tag(name = "管理后台 - 物料单位") +@RestController +@RequestMapping("/garden/material-unit") +@Validated +public class MaterialUnitController { + + @Resource + private MaterialUnitService materialUnitService; + + @PostMapping("/create") + @Operation(summary = "创建物料单位") + @PreAuthorize("@ss.hasPermission('garden:material-unit:create')") + public CommonResult createMaterialUnit(@Valid @RequestBody MaterialUnitSaveReqVO createReqVO) { + return success(materialUnitService.createMaterialUnit(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料单位") + @PreAuthorize("@ss.hasPermission('garden:material-unit:update')") + public CommonResult updateMaterialUnit(@Valid @RequestBody MaterialUnitSaveReqVO updateReqVO) { + materialUnitService.updateMaterialUnit(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料单位") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:material-unit:delete')") + public CommonResult deleteMaterialUnit(@RequestParam("id") Long id) { + materialUnitService.deleteMaterialUnit(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料单位") + @PreAuthorize("@ss.hasPermission('garden:material-unit:delete')") + public CommonResult deleteMaterialUnitList(@RequestParam("ids") List ids) { + materialUnitService.deleteMaterialUnitListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料单位") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:material-unit:query')") + public CommonResult getMaterialUnit(@RequestParam("id") Long id) { + MaterialUnitDO materialUnit = materialUnitService.getMaterialUnit(id); + return success(BeanUtils.toBean(materialUnit, MaterialUnitRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料单位分页") + @PreAuthorize("@ss.hasPermission('garden:material-unit:query')") + public CommonResult> getMaterialUnitPage(@Valid MaterialUnitPageReqVO pageReqVO) { + PageResult pageResult = materialUnitService.getMaterialUnitPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialUnitRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料单位 Excel") + @PreAuthorize("@ss.hasPermission('garden:material-unit:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialUnitExcel(@Valid MaterialUnitPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialUnitService.getMaterialUnitPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料单位.xls", "数据", MaterialUnitRespVO.class, + BeanUtils.toBean(list, MaterialUnitRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitPageReqVO.java new file mode 100644 index 0000000..8b846ce --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitPageReqVO.java @@ -0,0 +1,32 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialunit.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 物料单位分页 Request VO") +@Data +public class MaterialUnitPageReqVO extends PageParam { + + @Schema(description = "单位ID", example = "22342") + private Long unitId; + + @Schema(description = "单位名称", example = "张三") + private String unitName; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "部门ID", example = "8809") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitRespVO.java new file mode 100644 index 0000000..94e4452 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitRespVO.java @@ -0,0 +1,39 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialunit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 物料单位 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MaterialUnitRespVO { + + @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8413") + @ExcelProperty("自增主键") + private Long id; + + @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22342") + @ExcelProperty("单位ID") + private Long unitId; + + @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("单位名称") + private String unitName; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "部门ID", example = "8809") + @ExcelProperty("部门ID") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitSaveReqVO.java new file mode 100644 index 0000000..7f3120a --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/materialunit/vo/MaterialUnitSaveReqVO.java @@ -0,0 +1,30 @@ +package com.zteits.urbanops.module.garden.controller.admin.materialunit.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 物料单位新增/修改 Request VO") +@Data +public class MaterialUnitSaveReqVO { + + @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8413") + private Long id; + + @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22342") + @NotNull(message = "单位ID不能为空") + private Long unitId; + + @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "单位名称不能为空") + private String unitName; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") + @NotEmpty(message = "备注不能为空") + private String remark; + + @Schema(description = "部门ID", example = "8809") + private Long deptId; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialname/MaterialNameDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialname/MaterialNameDO.java new file mode 100644 index 0000000..c78f41e --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialname/MaterialNameDO.java @@ -0,0 +1,48 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.materialname; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 物料名称 DO + * + * @author 超级管理员 + */ +@TableName("garden_material_name") +@KeySequence("garden_material_name_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MaterialNameDO extends BaseDO { + + /** + * 自增主键 + */ + @TableId + private Long id; + /** + * 物料名称ID + */ + private Long materialId; + /** + * 物料名称 + */ + private String materialName; + /** + * 备注 + */ + private String remark; + /** + * 部门ID + */ + private Long deptId; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialspecification/MaterialSpecificationDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialspecification/MaterialSpecificationDO.java new file mode 100644 index 0000000..79160e7 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialspecification/MaterialSpecificationDO.java @@ -0,0 +1,48 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.materialspecification; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 物料规格 DO + * + * @author 超级管理员 + */ +@TableName("garden_material_specification") +@KeySequence("garden_material_specification_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MaterialSpecificationDO extends BaseDO { + + /** + * 自增主键 + */ + @TableId + private Long id; + /** + * 规格编码 + */ + private String specCode; + /** + * 规格名称 + */ + private String specifications; + /** + * 备注 + */ + private String remark; + /** + * 部门ID + */ + private Long deptId; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialunit/MaterialUnitDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialunit/MaterialUnitDO.java new file mode 100644 index 0000000..00fd154 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/materialunit/MaterialUnitDO.java @@ -0,0 +1,48 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.materialunit; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; + +/** + * 物料单位 DO + * + * @author 超级管理员 + */ +@TableName("garden_material_unit") +@KeySequence("garden_material_unit_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MaterialUnitDO extends BaseDO { + + /** + * 自增主键 + */ + @TableId + private Long id; + /** + * 单位ID + */ + private Long unitId; + /** + * 单位名称 + */ + private String unitName; + /** + * 备注 + */ + private String remark; + /** + * 部门ID + */ + private Long deptId; + + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialname/MaterialNameMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialname/MaterialNameMapper.java new file mode 100644 index 0000000..81083a2 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialname/MaterialNameMapper.java @@ -0,0 +1,30 @@ +package com.zteits.urbanops.module.garden.dal.mysql.materialname; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.materialname.MaterialNameDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.materialname.vo.*; + +/** + * 物料名称 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface MaterialNameMapper extends BaseMapperX { + + default PageResult selectPage(MaterialNamePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialNameDO::getMaterialId, reqVO.getMaterialId()) + .likeIfPresent(MaterialNameDO::getMaterialName, reqVO.getMaterialName()) + .eqIfPresent(MaterialNameDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MaterialNameDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(MaterialNameDO::getDeptId, reqVO.getDeptId()) + .orderByDesc(MaterialNameDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialspecification/MaterialSpecificationMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialspecification/MaterialSpecificationMapper.java new file mode 100644 index 0000000..000dd23 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialspecification/MaterialSpecificationMapper.java @@ -0,0 +1,30 @@ +package com.zteits.urbanops.module.garden.dal.mysql.materialspecification; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.materialspecification.MaterialSpecificationDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.materialspecification.vo.*; + +/** + * 物料规格 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface MaterialSpecificationMapper extends BaseMapperX { + + default PageResult selectPage(MaterialSpecificationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialSpecificationDO::getSpecCode, reqVO.getSpecCode()) + .eqIfPresent(MaterialSpecificationDO::getSpecifications, reqVO.getSpecifications()) + .eqIfPresent(MaterialSpecificationDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MaterialSpecificationDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(MaterialSpecificationDO::getDeptId, reqVO.getDeptId()) + .orderByDesc(MaterialSpecificationDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialunit/MaterialUnitMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialunit/MaterialUnitMapper.java new file mode 100644 index 0000000..286b54f --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/materialunit/MaterialUnitMapper.java @@ -0,0 +1,30 @@ +package com.zteits.urbanops.module.garden.dal.mysql.materialunit; + +import java.util.*; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.garden.dal.dataobject.materialunit.MaterialUnitDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.materialunit.vo.*; + +/** + * 物料单位 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface MaterialUnitMapper extends BaseMapperX { + + default PageResult selectPage(MaterialUnitPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialUnitDO::getUnitId, reqVO.getUnitId()) + .likeIfPresent(MaterialUnitDO::getUnitName, reqVO.getUnitName()) + .eqIfPresent(MaterialUnitDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MaterialUnitDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(MaterialUnitDO::getDeptId, reqVO.getDeptId()) + .orderByDesc(MaterialUnitDO::getId)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java index 1d6e876..11190b3 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/ErrorCodeConstants.java @@ -114,6 +114,10 @@ public interface ErrorCodeConstants { ErrorCode MATERIAL_INVENTORY_OUT_NOT_EXISTS = new ErrorCode(1-100-004-005, "物料出库不存在"); ErrorCode MATERIAL_INVENTORY_NOT_EXISTS = new ErrorCode(1-100-004-006, "物料库存不存在"); + ErrorCode MATERIAL_NAME_NOT_EXISTS = new ErrorCode(1-100-004-007, "物料名称不存在"); + + ErrorCode MATERIAL_SPECIFICATION_NOT_EXISTS = new ErrorCode(1-100-004-010, "物料规格不存在"); + ErrorCode MATERIAL_UNIT_NOT_EXISTS = new ErrorCode(1-100-004-011, "物料单位不存在"); ErrorCode OLDTREES_NOT_EXISTS = new ErrorCode(1-100-005-001, "古树名木不存在"); diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameService.java new file mode 100644 index 0000000..d231f07 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.materialname; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.materialname.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialname.MaterialNameDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 物料名称 Service 接口 + * + * @author 超级管理员 + */ +public interface MaterialNameService { + + /** + * 创建物料名称 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMaterialName(@Valid MaterialNameSaveReqVO createReqVO); + + /** + * 更新物料名称 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialName(@Valid MaterialNameSaveReqVO updateReqVO); + + /** + * 删除物料名称 + * + * @param id 编号 + */ + void deleteMaterialName(Long id); + + /** + * 批量删除物料名称 + * + * @param ids 编号 + */ + void deleteMaterialNameListByIds(List ids); + + /** + * 获得物料名称 + * + * @param id 编号 + * @return 物料名称 + */ + MaterialNameDO getMaterialName(Long id); + + /** + * 获得物料名称分页 + * + * @param pageReqVO 分页查询 + * @return 物料名称分页 + */ + PageResult getMaterialNamePage(MaterialNamePageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameServiceImpl.java new file mode 100644 index 0000000..cc56f82 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialname/MaterialNameServiceImpl.java @@ -0,0 +1,85 @@ +package com.zteits.urbanops.module.garden.service.materialname; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zteits.urbanops.module.garden.controller.admin.materialname.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialname.MaterialNameDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +import com.zteits.urbanops.module.garden.dal.mysql.materialname.MaterialNameMapper; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 物料名称 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class MaterialNameServiceImpl implements MaterialNameService { + + @Resource + private MaterialNameMapper materialNameMapper; + + @Override + public Long createMaterialName(MaterialNameSaveReqVO createReqVO) { + // 插入 + MaterialNameDO materialName = BeanUtils.toBean(createReqVO, MaterialNameDO.class); + materialNameMapper.insert(materialName); + + // 返回 + return materialName.getId(); + } + + @Override + public void updateMaterialName(MaterialNameSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialNameExists(updateReqVO.getId()); + // 更新 + MaterialNameDO updateObj = BeanUtils.toBean(updateReqVO, MaterialNameDO.class); + materialNameMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialName(Long id) { + // 校验存在 + validateMaterialNameExists(id); + // 删除 + materialNameMapper.deleteById(id); + } + + @Override + public void deleteMaterialNameListByIds(List ids) { + // 删除 + materialNameMapper.deleteByIds(ids); + } + + + private void validateMaterialNameExists(Long id) { + if (materialNameMapper.selectById(id) == null) { + throw exception(MATERIAL_NAME_NOT_EXISTS); + } + } + + @Override + public MaterialNameDO getMaterialName(Long id) { + return materialNameMapper.selectById(id); + } + + @Override + public PageResult getMaterialNamePage(MaterialNamePageReqVO pageReqVO) { + return materialNameMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationService.java new file mode 100644 index 0000000..45a1852 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.materialspecification; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.materialspecification.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialspecification.MaterialSpecificationDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 物料规格 Service 接口 + * + * @author 超级管理员 + */ +public interface MaterialSpecificationService { + + /** + * 创建物料规格 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMaterialSpecification(@Valid MaterialSpecificationSaveReqVO createReqVO); + + /** + * 更新物料规格 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialSpecification(@Valid MaterialSpecificationSaveReqVO updateReqVO); + + /** + * 删除物料规格 + * + * @param id 编号 + */ + void deleteMaterialSpecification(Long id); + + /** + * 批量删除物料规格 + * + * @param ids 编号 + */ + void deleteMaterialSpecificationListByIds(List ids); + + /** + * 获得物料规格 + * + * @param id 编号 + * @return 物料规格 + */ + MaterialSpecificationDO getMaterialSpecification(Long id); + + /** + * 获得物料规格分页 + * + * @param pageReqVO 分页查询 + * @return 物料规格分页 + */ + PageResult getMaterialSpecificationPage(MaterialSpecificationPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationServiceImpl.java new file mode 100644 index 0000000..d04dd6d --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialspecification/MaterialSpecificationServiceImpl.java @@ -0,0 +1,85 @@ +package com.zteits.urbanops.module.garden.service.materialspecification; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zteits.urbanops.module.garden.controller.admin.materialspecification.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialspecification.MaterialSpecificationDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +import com.zteits.urbanops.module.garden.dal.mysql.materialspecification.MaterialSpecificationMapper; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 物料规格 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class MaterialSpecificationServiceImpl implements MaterialSpecificationService { + + @Resource + private MaterialSpecificationMapper materialSpecificationMapper; + + @Override + public Long createMaterialSpecification(MaterialSpecificationSaveReqVO createReqVO) { + // 插入 + MaterialSpecificationDO materialSpecification = BeanUtils.toBean(createReqVO, MaterialSpecificationDO.class); + materialSpecificationMapper.insert(materialSpecification); + + // 返回 + return materialSpecification.getId(); + } + + @Override + public void updateMaterialSpecification(MaterialSpecificationSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialSpecificationExists(updateReqVO.getId()); + // 更新 + MaterialSpecificationDO updateObj = BeanUtils.toBean(updateReqVO, MaterialSpecificationDO.class); + materialSpecificationMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialSpecification(Long id) { + // 校验存在 + validateMaterialSpecificationExists(id); + // 删除 + materialSpecificationMapper.deleteById(id); + } + + @Override + public void deleteMaterialSpecificationListByIds(List ids) { + // 删除 + materialSpecificationMapper.deleteByIds(ids); + } + + + private void validateMaterialSpecificationExists(Long id) { + if (materialSpecificationMapper.selectById(id) == null) { + throw exception(MATERIAL_SPECIFICATION_NOT_EXISTS); + } + } + + @Override + public MaterialSpecificationDO getMaterialSpecification(Long id) { + return materialSpecificationMapper.selectById(id); + } + + @Override + public PageResult getMaterialSpecificationPage(MaterialSpecificationPageReqVO pageReqVO) { + return materialSpecificationMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitService.java new file mode 100644 index 0000000..9b814b3 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.materialunit; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.materialunit.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialunit.MaterialUnitDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 物料单位 Service 接口 + * + * @author 超级管理员 + */ +public interface MaterialUnitService { + + /** + * 创建物料单位 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMaterialUnit(@Valid MaterialUnitSaveReqVO createReqVO); + + /** + * 更新物料单位 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialUnit(@Valid MaterialUnitSaveReqVO updateReqVO); + + /** + * 删除物料单位 + * + * @param id 编号 + */ + void deleteMaterialUnit(Long id); + + /** + * 批量删除物料单位 + * + * @param ids 编号 + */ + void deleteMaterialUnitListByIds(List ids); + + /** + * 获得物料单位 + * + * @param id 编号 + * @return 物料单位 + */ + MaterialUnitDO getMaterialUnit(Long id); + + /** + * 获得物料单位分页 + * + * @param pageReqVO 分页查询 + * @return 物料单位分页 + */ + PageResult getMaterialUnitPage(MaterialUnitPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitServiceImpl.java new file mode 100644 index 0000000..a86ae66 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialunit/MaterialUnitServiceImpl.java @@ -0,0 +1,85 @@ +package com.zteits.urbanops.module.garden.service.materialunit; + +import cn.hutool.core.collection.CollUtil; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.zteits.urbanops.module.garden.controller.admin.materialunit.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.materialunit.MaterialUnitDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; + +import com.zteits.urbanops.module.garden.dal.mysql.materialunit.MaterialUnitMapper; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.convertList; +import static com.zteits.urbanops.framework.common.util.collection.CollectionUtils.diffList; +import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; + +/** + * 物料单位 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class MaterialUnitServiceImpl implements MaterialUnitService { + + @Resource + private MaterialUnitMapper materialUnitMapper; + + @Override + public Long createMaterialUnit(MaterialUnitSaveReqVO createReqVO) { + // 插入 + MaterialUnitDO materialUnit = BeanUtils.toBean(createReqVO, MaterialUnitDO.class); + materialUnitMapper.insert(materialUnit); + + // 返回 + return materialUnit.getId(); + } + + @Override + public void updateMaterialUnit(MaterialUnitSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialUnitExists(updateReqVO.getId()); + // 更新 + MaterialUnitDO updateObj = BeanUtils.toBean(updateReqVO, MaterialUnitDO.class); + materialUnitMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialUnit(Long id) { + // 校验存在 + validateMaterialUnitExists(id); + // 删除 + materialUnitMapper.deleteById(id); + } + + @Override + public void deleteMaterialUnitListByIds(List ids) { + // 删除 + materialUnitMapper.deleteByIds(ids); + } + + + private void validateMaterialUnitExists(Long id) { + if (materialUnitMapper.selectById(id) == null) { + throw exception(MATERIAL_UNIT_NOT_EXISTS); + } + } + + @Override + public MaterialUnitDO getMaterialUnit(Long id) { + return materialUnitMapper.selectById(id); + } + + @Override + public PageResult getMaterialUnitPage(MaterialUnitPageReqVO pageReqVO) { + return materialUnitMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/materialname/MaterialNameMapper.xml b/urbanops-module-garden/src/main/resources/mapper/materialname/MaterialNameMapper.xml new file mode 100644 index 0000000..56077b0 --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/materialname/MaterialNameMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/materialspecification/MaterialSpecificationMapper.xml b/urbanops-module-garden/src/main/resources/mapper/materialspecification/MaterialSpecificationMapper.xml new file mode 100644 index 0000000..f22e79e --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/materialspecification/MaterialSpecificationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-module-garden/src/main/resources/mapper/materialunit/MaterialUnitMapper.xml b/urbanops-module-garden/src/main/resources/mapper/materialunit/MaterialUnitMapper.xml new file mode 100644 index 0000000..b3c221b --- /dev/null +++ b/urbanops-module-garden/src/main/resources/mapper/materialunit/MaterialUnitMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/urbanops-server/pom.xml b/urbanops-server/pom.xml index 206fb83..816a63b 100644 --- a/urbanops-server/pom.xml +++ b/urbanops-server/pom.xml @@ -150,7 +150,7 @@ - ${project.artifactId} + ${project.artifactId}-${maven.build.timestamp}