diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialController.java new file mode 100644 index 0000000..4d7ad5e --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.material; + +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.material.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialDO; +import com.zteits.urbanops.module.garden.service.material.MaterialService; + +@Tag(name = "管理后台 - 耗材管理") +@RestController +@RequestMapping("/garden/material") +@Validated +public class MaterialController { + + @Resource + private MaterialService materialService; + + @PostMapping("/create") + @Operation(summary = "创建耗材管理") + @PreAuthorize("@ss.hasPermission('garden:material:create')") + public CommonResult createMaterial(@Valid @RequestBody MaterialSaveReqVO createReqVO) { + return success(materialService.createMaterial(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新耗材管理") + @PreAuthorize("@ss.hasPermission('garden:material:update')") + public CommonResult updateMaterial(@Valid @RequestBody MaterialSaveReqVO updateReqVO) { + materialService.updateMaterial(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除耗材管理") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:material:delete')") + public CommonResult deleteMaterial(@RequestParam("id") Long id) { + materialService.deleteMaterial(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除耗材管理") + @PreAuthorize("@ss.hasPermission('garden:material:delete')") + public CommonResult deleteMaterialList(@RequestParam("ids") List ids) { + materialService.deleteMaterialListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得耗材管理") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:material:query')") + public CommonResult getMaterial(@RequestParam("id") Long id) { + MaterialDO material = materialService.getMaterial(id); + return success(BeanUtils.toBean(material, MaterialRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得耗材管理分页") + @PreAuthorize("@ss.hasPermission('garden:material:query')") + public CommonResult> getMaterialPage(@Valid MaterialPageReqVO pageReqVO) { + PageResult pageResult = materialService.getMaterialPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出耗材管理 Excel") + @PreAuthorize("@ss.hasPermission('garden:material:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialExcel(@Valid MaterialPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialService.getMaterialPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "耗材管理.xls", "数据", MaterialRespVO.class, + BeanUtils.toBean(list, MaterialRespVO.class)); + } + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialInController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialInController.java index 30fa10c..fe348ce 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialInController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialInController.java @@ -76,7 +76,7 @@ public class MaterialInController { @Transactional(rollbackFor = Throwable.class) public CommonResult add(@RequestBody MaterialInventoryInDO req) { Long userId = SecurityFrameworkUtils.getLoginUserId(); - MaterialDO material = materialService.selectById(req.getMaterialId()); + MaterialDO material = materialService.getMaterial(req.getMaterialId()); if (material == null) { return com.zteits.urbanops.framework.common.pojo.CommonResult.error(400, "无效参数-materialId"); } @@ -148,4 +148,4 @@ public class MaterialInController { inventoryMapper.updateById(upd); return success(inMapper.deleteById(id) > 0); } -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialManagerController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialManagerController.java deleted file mode 100644 index 8a9d19a..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialManagerController.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.zteits.urbanops.module.garden.controller.admin.material; - -import com.zteits.urbanops.framework.common.pojo.CommonResult; -import com.zteits.urbanops.framework.common.pojo.PageParam; -import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; -import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialManagerDO; -import com.zteits.urbanops.module.garden.dal.mysql.material.MaterialManagerMapper; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; - -@Tag(name = "管理后台 - 物料管理") -@RestController -@RequestMapping("/material/manager") -public class MaterialManagerController { - - @Resource - private MaterialManagerMapper mapper; - - @PostMapping("/listForPage") - @Operation(summary = "物料管理-分页") - @PreAuthorize("@ss.hasPermission('material:manager:list')") - public CommonResult> listForPage(@RequestBody MaterialManagerDO where, - @RequestParam(value = "pageNum", required = false) Integer pageNum, - @RequestParam(value = "pageSize", required = false) Integer pageSize) { - PageParam page = new PageParam(); - page.setPageNo(pageNum == null ? 1 : pageNum); - page.setPageSize(pageSize == null ? 10 : pageSize); - where.setDeptId(SecurityFrameworkUtils.getLoginUserDeptId()); - return success(mapper.selectPage(page, where)); - } - - @GetMapping("/list") - @Operation(summary = "物料管理-列表") - @PreAuthorize("@ss.hasPermission('material:manager:list')") - public CommonResult> list() { - MaterialManagerDO where = new MaterialManagerDO(); - where.setDeptId(SecurityFrameworkUtils.getLoginUserDeptId()); - return success(mapper.selectList(where)); - } - - @PostMapping("/add") - @Operation(summary = "物料管理-添加") - @PreAuthorize("@ss.hasPermission('material:manager:add')") - public CommonResult add(@RequestBody MaterialManagerDO entity) { - entity.setDeptId(SecurityFrameworkUtils.getLoginUserDeptId()); - entity.setCreator(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); - entity.setUpdater(entity.getCreator()); - entity.clean(); - return success(mapper.insert(entity) > 0); - } - - @PostMapping("/edit") - @Operation(summary = "物料管理-修改") - @PreAuthorize("@ss.hasPermission('material:manager:edit')") - public CommonResult edit(@RequestBody MaterialManagerDO entity) { - entity.setUpdater(String.valueOf(SecurityFrameworkUtils.getLoginUserId())); - entity.clean(); - return success(mapper.updateById(entity) > 0); - } - - @GetMapping("/deleteById") - @Operation(summary = "物料管理-删除") - @PreAuthorize("@ss.hasPermission('material:manager:delete')") - public CommonResult deleteById(@RequestParam("id") Long id) { - return success(mapper.deleteById(id) > 0); - } -} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialOutController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialOutController.java index 03dc896..62fcf77 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialOutController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialOutController.java @@ -76,7 +76,7 @@ public class MaterialOutController { @Transactional(rollbackFor = Throwable.class) public CommonResult add(@RequestBody MaterialInventoryOutDO req) { Long userId = SecurityFrameworkUtils.getLoginUserId(); - MaterialDO material = materialService.selectById(req.getMaterialId()); + MaterialDO material = materialService.getMaterial(req.getMaterialId()); if (material == null) { return com.zteits.urbanops.framework.common.pojo.CommonResult.error(400, "无效参数"); } @@ -123,4 +123,4 @@ public class MaterialOutController { inventoryMapper.updateById(upd); return success(outMapper.deleteById(id) > 0); } -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialTypeController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialTypeController.java index 9be7bcc..2e886e3 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialTypeController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialTypeController.java @@ -80,7 +80,7 @@ public class MaterialTypeController { return success(BeanUtils.toBean(materialType, MaterialTypeRespVO.class)); } - @GetMapping("/page") + @GetMapping("/listForPage") @Operation(summary = "获得物料类型分页") @PreAuthorize("@ss.hasPermission('garden:material-type:query')") public CommonResult> getMaterialTypePage(@Valid MaterialTypePageReqVO pageReqVO) { diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialTypeManagerController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialTypeManagerController.java new file mode 100644 index 0000000..9276880 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/MaterialTypeManagerController.java @@ -0,0 +1,104 @@ +package com.zteits.urbanops.module.garden.controller.admin.material; + +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.material.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialTypeManagerDO; +import com.zteits.urbanops.module.garden.service.material.MaterialTypeManagerService; + +@Tag(name = "管理后台 - 耗材类别管理") +@RestController +@RequestMapping("/garden/material-type-manager") +@Validated +public class MaterialTypeManagerController { + + @Resource + private MaterialTypeManagerService materialTypeManagerService; + + @PostMapping("/create") + @Operation(summary = "创建耗材类别管理") + @PreAuthorize("@ss.hasPermission('garden:material-type-manager:create')") + public CommonResult createMaterialTypeManager(@Valid @RequestBody MaterialTypeManagerSaveReqVO createReqVO) { + return success(materialTypeManagerService.createMaterialTypeManager(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新耗材类别管理") + @PreAuthorize("@ss.hasPermission('garden:material-type-manager:update')") + public CommonResult updateMaterialTypeManager(@Valid @RequestBody MaterialTypeManagerSaveReqVO updateReqVO) { + materialTypeManagerService.updateMaterialTypeManager(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除耗材类别管理") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('garden:material-type-manager:delete')") + public CommonResult deleteMaterialTypeManager(@RequestParam("id") Long id) { + materialTypeManagerService.deleteMaterialTypeManager(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除耗材类别管理") + @PreAuthorize("@ss.hasPermission('garden:material-type-manager:delete')") + public CommonResult deleteMaterialTypeManagerList(@RequestParam("ids") List ids) { + materialTypeManagerService.deleteMaterialTypeManagerListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得耗材类别管理") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('garden:material-type-manager:query')") + public CommonResult getMaterialTypeManager(@RequestParam("id") Long id) { + MaterialTypeManagerDO materialTypeManager = materialTypeManagerService.getMaterialTypeManager(id); + return success(BeanUtils.toBean(materialTypeManager, MaterialTypeManagerRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得耗材类别管理分页") + @PreAuthorize("@ss.hasPermission('garden:material-type-manager:query')") + public CommonResult> getMaterialTypeManagerPage(@Valid MaterialTypeManagerPageReqVO pageReqVO) { + PageResult pageResult = materialTypeManagerService.getMaterialTypeManagerPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialTypeManagerRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出耗材类别管理 Excel") + @PreAuthorize("@ss.hasPermission('garden:material-type-manager:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialTypeManagerExcel(@Valid MaterialTypeManagerPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialTypeManagerService.getMaterialTypeManagerPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "耗材类别管理.xls", "数据", MaterialTypeManagerRespVO.class, + BeanUtils.toBean(list, MaterialTypeManagerRespVO.class)); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialPageReqVO.java new file mode 100644 index 0000000..2dd9eba --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialPageReqVO.java @@ -0,0 +1,71 @@ +package com.zteits.urbanops.module.garden.controller.admin.material.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 MaterialPageReqVO extends PageParam { + + @Schema(description = "完整编码") + private String fullCode; + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "耗材名称", example = "李四") + private String materialName; + + @Schema(description = "耗材类型ID", example = "3767") + private Long materialTypeId; + + @Schema(description = "耗材类型名称", example = "张三") + private String materialTypeName; + + @Schema(description = "类别ID", example = "25951") + private Long typeId; + + @Schema(description = "类别名称:药品", example = "张三") + private String typeName; + + @Schema(description = "类别明细ID", example = "5524") + private Long typeDetailId; + + @Schema(description = "类别明细", example = "赵六") + private String typeDetailName; + + @Schema(description = "规格编码") + private String specCode; + + @Schema(description = "规格") + private String specifications; + + @Schema(description = "归属公司ID", example = "990") + private Long belongCompanyId; + + @Schema(description = "归属公司", example = "王五") + private String belongCompanyName; + + @Schema(description = "单位ID", example = "14415") + private Long unitId; + + @Schema(description = "单位", example = "芋艿") + private String unitName; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "是否关联工单:0-否,1-是") + private Boolean isAssociatedOrder; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialRespVO.java new file mode 100644 index 0000000..f02d47f --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialRespVO.java @@ -0,0 +1,91 @@ +package com.zteits.urbanops.module.garden.controller.admin.material.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 MaterialRespVO { + + @Schema(description = "耗材ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14347") + @ExcelProperty("耗材ID") + private Long materialId; + + @Schema(description = "完整编码") + @ExcelProperty("完整编码") + private String fullCode; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String materialCode; + + @Schema(description = "耗材名称", example = "李四") + @ExcelProperty("耗材名称") + private String materialName; + + @Schema(description = "耗材类型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3767") + @ExcelProperty("耗材类型ID") + private Long materialTypeId; + + @Schema(description = "耗材类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("耗材类型名称") + private String materialTypeName; + + @Schema(description = "类别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25951") + @ExcelProperty("类别ID") + private Long typeId; + + @Schema(description = "类别名称:药品", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("类别名称:药品") + private String typeName; + + @Schema(description = "类别明细ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5524") + @ExcelProperty("类别明细ID") + private Long typeDetailId; + + @Schema(description = "类别明细", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @ExcelProperty("类别明细") + private String typeDetailName; + + @Schema(description = "规格编码") + @ExcelProperty("规格编码") + private String specCode; + + @Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("规格") + private String specifications; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "990") + @ExcelProperty("归属公司ID") + private Long belongCompanyId; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("归属公司") + private String belongCompanyName; + + @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14415") + @ExcelProperty("单位ID") + private Long unitId; + + @Schema(description = "单位", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("单位") + private String unitName; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "是否关联工单:0-否,1-是") + @ExcelProperty("是否关联工单:0-否,1-是") + private Boolean isAssociatedOrder; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialSaveReqVO.java new file mode 100644 index 0000000..0861ba2 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialSaveReqVO.java @@ -0,0 +1,78 @@ +package com.zteits.urbanops.module.garden.controller.admin.material.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 MaterialSaveReqVO { + + @Schema(description = "耗材ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14347") + private Long materialId; + + @Schema(description = "完整编码") + private String fullCode; + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "耗材名称", example = "李四") + private String materialName; + + @Schema(description = "耗材类型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "3767") + @NotNull(message = "耗材类型ID不能为空") + private Long materialTypeId; + + @Schema(description = "耗材类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "耗材类型名称不能为空") + private String materialTypeName; + + @Schema(description = "类别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25951") + @NotNull(message = "类别ID不能为空") + private Long typeId; + + @Schema(description = "类别名称:药品", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "类别名称:药品不能为空") + private String typeName; + + @Schema(description = "类别明细ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5524") + @NotNull(message = "类别明细ID不能为空") + private Long typeDetailId; + + @Schema(description = "类别明细", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @NotEmpty(message = "类别明细不能为空") + private String typeDetailName; + + @Schema(description = "规格编码") + private String specCode; + + @Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "规格不能为空") + private String specifications; + + @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "990") + @NotNull(message = "归属公司ID不能为空") + private Long belongCompanyId; + + @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "归属公司不能为空") + private String belongCompanyName; + + @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14415") + @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 = "是否关联工单:0-否,1-是") + private Boolean isAssociatedOrder; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerPageReqVO.java new file mode 100644 index 0000000..399c649 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerPageReqVO.java @@ -0,0 +1,65 @@ +package com.zteits.urbanops.module.garden.controller.admin.material.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 MaterialTypeManagerPageReqVO extends PageParam { + + @Schema(description = "种类ID", example = "1958") + private Long classifyId; + + @Schema(description = "种类名称", example = "芋艿") + private String classifyName; + + @Schema(description = "类别ID", example = "22418") + private Long typeId; + + @Schema(description = "类别名称", example = "王五") + private String typeName; + + @Schema(description = "类别明细ID", example = "22381") + private Long typeDetailId; + + @Schema(description = "类别明细名称", example = "芋艿") + private String typeDetailName; + + @Schema(description = "公司ID", example = "22461") + private Long companyId; + + @Schema(description = "公司名称", example = "李四") + private String companyName; + + @Schema(description = "数量") + private Long num; + + @Schema(description = "单位ID", example = "26719") + private Long unitId; + + @Schema(description = "单位", example = "张三") + private String unitName; + + @Schema(description = " 描述", example = "你说的对") + private String remark; + + @Schema(description = "状态(0正常 1停用)", example = "1") + private Integer status; + + @Schema(description = "创建者") + private String creator; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "更新者") + private String updater; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerRespVO.java new file mode 100644 index 0000000..f5f608a --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerRespVO.java @@ -0,0 +1,83 @@ +package com.zteits.urbanops.module.garden.controller.admin.material.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 MaterialTypeManagerRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22778") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "种类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1958") + @ExcelProperty("种类ID") + private Long classifyId; + + @Schema(description = "种类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("种类名称") + private String classifyName; + + @Schema(description = "类别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22418") + @ExcelProperty("类别ID") + private Long typeId; + + @Schema(description = "类别名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("类别名称") + private String typeName; + + @Schema(description = "类别明细ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22381") + @ExcelProperty("类别明细ID") + private Long typeDetailId; + + @Schema(description = "类别明细名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("类别明细名称") + private String typeDetailName; + + @Schema(description = "公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22461") + @ExcelProperty("公司ID") + private Long companyId; + + @Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") + @ExcelProperty("公司名称") + private String companyName; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("数量") + private Long num; + + @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26719") + @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 = "状态(0正常 1停用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("状态(0正常 1停用)") + private Integer status; + + @Schema(description = "创建者") + @ExcelProperty("创建者") + private String creator; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "更新者") + @ExcelProperty("更新者") + private String updater; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerSaveReqVO.java new file mode 100644 index 0000000..d9d4de1 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeManagerSaveReqVO.java @@ -0,0 +1,73 @@ +package com.zteits.urbanops.module.garden.controller.admin.material.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 MaterialTypeManagerSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22778") + private Long id; + + @Schema(description = "种类ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1958") + @NotNull(message = "种类ID不能为空") + private Long classifyId; + + @Schema(description = "种类名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "种类名称不能为空") + private String classifyName; + + @Schema(description = "类别ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22418") + @NotNull(message = "类别ID不能为空") + private Long typeId; + + @Schema(description = "类别名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "类别名称不能为空") + private String typeName; + + @Schema(description = "类别明细ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22381") + @NotNull(message = "类别明细ID不能为空") + private Long typeDetailId; + + @Schema(description = "类别明细名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "类别明细名称不能为空") + private String typeDetailName; + + @Schema(description = "公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22461") + @NotNull(message = "公司ID不能为空") + private Long companyId; + + @Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") + @NotEmpty(message = "公司名称不能为空") + private String companyName; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "数量不能为空") + private Long num; + + @Schema(description = "单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26719") + @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 = "状态(0正常 1停用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "状态(0正常 1停用)不能为空") + private Integer status; + + @Schema(description = "创建者") + private String creator; + + @Schema(description = "更新者") + private String updater; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypePageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypePageReqVO.java index 45ae432..eaa3f97 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypePageReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypePageReqVO.java @@ -44,13 +44,13 @@ public class MaterialTypePageReqVO extends PageParam { private String status; @Schema(description = "创建者") - private String createBy; + private String creator; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; @Schema(description = "更新者") - private String updateBy; + private String updater; } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeRespVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeRespVO.java index 77cd2bb..35a47e3 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeRespVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/material/vo/MaterialTypeRespVO.java @@ -58,7 +58,7 @@ public class MaterialTypeRespVO { @Schema(description = "创建者") @ExcelProperty("创建者") - private String createBy; + private String creator; @Schema(description = "创建时间") @ExcelProperty("创建时间") @@ -66,6 +66,6 @@ public class MaterialTypeRespVO { @Schema(description = "更新者") @ExcelProperty("更新者") - private String updateBy; + private String updater; } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/material/MaterialDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/material/MaterialDO.java index 2ced8a7..95c5fc8 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/material/MaterialDO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/material/MaterialDO.java @@ -1,30 +1,100 @@ package com.zteits.urbanops.module.garden.dal.dataobject.material; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +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; -import lombok.Data; +/** + * 耗材管理 DO + * + * @author 超级管理员 + */ @TableName("garden_material") +@KeySequence("garden_material_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 @Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor public class MaterialDO extends BaseDO { + + /** + * 耗材ID + */ @TableId private Long materialId; + /** + * 完整编码 + */ private String fullCode; + /** + * 物料编码 + */ private String materialCode; + /** + * 耗材名称 + */ private String materialName; + /** + * 耗材类型ID + */ private Long materialTypeId; + /** + * 耗材类型名称 + */ private String materialTypeName; + /** + * 类别ID + */ private Long typeId; + /** + * 类别名称:药品 + */ private String typeName; + /** + * 类别明细ID + */ private Long typeDetailId; + /** + * 类别明细 + */ private String typeDetailName; + /** + * 规格编码 + */ private String specCode; + /** + * 规格 + */ private String specifications; - private Long unitId; - private String unitName; + /** + * 归属公司ID + */ private Long belongCompanyId; + /** + * 归属公司 + */ private String belongCompanyName; - private String status; - private Integer isAssociatedOrder; + /** + * 单位ID + */ + private Long unitId; + /** + * 单位 + */ + private String unitName; + /** + * 备注 + */ + private String remark; + /** + * 是否关联工单:0-否,1-是 + */ + private Boolean isAssociatedOrder; + + } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/material/MaterialTypeManagerDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/material/MaterialTypeManagerDO.java new file mode 100644 index 0000000..e2e8010 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/material/MaterialTypeManagerDO.java @@ -0,0 +1,83 @@ +package com.zteits.urbanops.module.garden.dal.dataobject.material; + +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_type_manager") +@KeySequence("garden_material_type_manager_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MaterialTypeManagerDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 种类ID + */ + private Long classifyId; + /** + * 种类名称 + */ + private String classifyName; + /** + * 类别ID + */ + private Long typeId; + /** + * 类别名称 + */ + private String typeName; + /** + * 类别明细ID + */ + private Long typeDetailId; + /** + * 类别明细名称 + */ + private String typeDetailName; + /** + * 公司ID + */ + private Long companyId; + /** + * 公司名称 + */ + private String companyName; + /** + * 数量 + */ + private Long num; + /** + * 单位ID + */ + private Long unitId; + /** + * 单位 + */ + private String unitName; + /** + * 描述 + */ + private String remark; + /** + * 状态(0正常 1停用) + */ + private Integer status; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialManagerMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialManagerMapper.java deleted file mode 100644 index 5392365..0000000 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialManagerMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.zteits.urbanops.module.garden.dal.mysql.material; - -import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; -import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; -import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialManagerDO; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; - -@Mapper -public interface MaterialManagerMapper extends BaseMapperX { - default PageResult selectPage(com.zteits.urbanops.framework.common.pojo.PageParam pageParam, MaterialManagerDO where) { - return selectPage(pageParam, null, new LambdaQueryWrapperX() - .likeIfPresent(MaterialManagerDO::getName, where.getName()) - .eqIfPresent(MaterialManagerDO::getDeptId, where.getDeptId()) - .orderByDesc(MaterialManagerDO::getUpdateTime)); - } - - default List selectList(MaterialManagerDO where) { - return selectList(new LambdaQueryWrapperX() - .likeIfPresent(MaterialManagerDO::getName, where.getName()) - .eqIfPresent(MaterialManagerDO::getDeptId, where.getDeptId()) - .orderByAsc(MaterialManagerDO::getName)); - } -} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialMapper.java index 9e9456b..d0ffdcc 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialMapper.java @@ -1,9 +1,43 @@ package com.zteits.urbanops.module.garden.dal.mysql.material; +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.material.MaterialDO; import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.material.vo.*; +/** + * 耗材管理 Mapper + * + * @author 超级管理员 + */ @Mapper public interface MaterialMapper extends BaseMapperX { -} \ No newline at end of file + + default PageResult selectPage(MaterialPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialDO::getFullCode, reqVO.getFullCode()) + .eqIfPresent(MaterialDO::getMaterialCode, reqVO.getMaterialCode()) + .likeIfPresent(MaterialDO::getMaterialName, reqVO.getMaterialName()) + .eqIfPresent(MaterialDO::getMaterialTypeId, reqVO.getMaterialTypeId()) + .likeIfPresent(MaterialDO::getMaterialTypeName, reqVO.getMaterialTypeName()) + .eqIfPresent(MaterialDO::getTypeId, reqVO.getTypeId()) + .likeIfPresent(MaterialDO::getTypeName, reqVO.getTypeName()) + .eqIfPresent(MaterialDO::getTypeDetailId, reqVO.getTypeDetailId()) + .likeIfPresent(MaterialDO::getTypeDetailName, reqVO.getTypeDetailName()) + .eqIfPresent(MaterialDO::getSpecCode, reqVO.getSpecCode()) + .eqIfPresent(MaterialDO::getSpecifications, reqVO.getSpecifications()) + .eqIfPresent(MaterialDO::getBelongCompanyId, reqVO.getBelongCompanyId()) + .likeIfPresent(MaterialDO::getBelongCompanyName, reqVO.getBelongCompanyName()) + .eqIfPresent(MaterialDO::getUnitId, reqVO.getUnitId()) + .likeIfPresent(MaterialDO::getUnitName, reqVO.getUnitName()) + .betweenIfPresent(MaterialDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(MaterialDO::getRemark, reqVO.getRemark()) + .eqIfPresent(MaterialDO::getIsAssociatedOrder, reqVO.getIsAssociatedOrder()) + .orderByDesc(MaterialDO::getMaterialId)); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialTypeManagerMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialTypeManagerMapper.java new file mode 100644 index 0000000..d6b5aa6 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/material/MaterialTypeManagerMapper.java @@ -0,0 +1,39 @@ +package com.zteits.urbanops.module.garden.dal.mysql.material; + +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.material.MaterialTypeManagerDO; +import org.apache.ibatis.annotations.Mapper; +import com.zteits.urbanops.module.garden.controller.admin.material.vo.*; + +/** + * 耗材类别管理 Mapper + * + * @author 超级管理员 + */ +@Mapper +public interface MaterialTypeManagerMapper extends BaseMapperX { + + default PageResult selectPage(MaterialTypeManagerPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialTypeManagerDO::getClassifyId, reqVO.getClassifyId()) + .likeIfPresent(MaterialTypeManagerDO::getClassifyName, reqVO.getClassifyName()) + .eqIfPresent(MaterialTypeManagerDO::getTypeId, reqVO.getTypeId()) + .likeIfPresent(MaterialTypeManagerDO::getTypeName, reqVO.getTypeName()) + .eqIfPresent(MaterialTypeManagerDO::getTypeDetailId, reqVO.getTypeDetailId()) + .likeIfPresent(MaterialTypeManagerDO::getTypeDetailName, reqVO.getTypeDetailName()) + .eqIfPresent(MaterialTypeManagerDO::getCompanyId, reqVO.getCompanyId()) + .likeIfPresent(MaterialTypeManagerDO::getCompanyName, reqVO.getCompanyName()) + .eqIfPresent(MaterialTypeManagerDO::getNum, reqVO.getNum()) + .eqIfPresent(MaterialTypeManagerDO::getUnitId, reqVO.getUnitId()) + .likeIfPresent(MaterialTypeManagerDO::getUnitName, reqVO.getUnitName()) + .eqIfPresent(MaterialTypeManagerDO::getRemark, reqVO.getRemark()) + .eqIfPresent(MaterialTypeManagerDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(MaterialTypeManagerDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MaterialTypeManagerDO::getId)); + } + +} 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 3ffe6a3..fdf11c9 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 @@ -73,4 +73,7 @@ public interface ErrorCodeConstants { ErrorCode PLAN_RATE_LEVEL_ID_DUPLICATE = new ErrorCode(1-200-200-002, "养护等级重复"); ErrorCode MATERIAL_TYPE_NOT_EXISTS = new ErrorCode(1-100-004-001, "物料类型不存在"); + ErrorCode MATERIAL_TYPE_MANAGER_NOT_EXISTS = new ErrorCode(1-100-004-002, "耗材类别管理不存在"); + + ErrorCode MATERIAL_NOT_EXISTS = new ErrorCode(1-100-004-003, "耗材管理不存在"); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialService.java index ae2a243..f07e8db 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialService.java @@ -1,7 +1,62 @@ package com.zteits.urbanops.module.garden.service.material; +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.material.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +/** + * 耗材管理 Service 接口 + * + * @author 超级管理员 + */ public interface MaterialService { - MaterialDO selectById(Long id); + + /** + * 创建耗材管理 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMaterial(@Valid MaterialSaveReqVO createReqVO); + + /** + * 更新耗材管理 + * + * @param updateReqVO 更新信息 + */ + void updateMaterial(@Valid MaterialSaveReqVO updateReqVO); + + /** + * 删除耗材管理 + * + * @param id 编号 + */ + void deleteMaterial(Long id); + + /** + * 批量删除耗材管理 + * + * @param ids 编号 + */ + void deleteMaterialListByIds(List ids); + + /** + * 获得耗材管理 + * + * @param id 编号 + * @return 耗材管理 + */ + MaterialDO getMaterial(Long id); + + /** + * 获得耗材管理分页 + * + * @param pageReqVO 分页查询 + * @return 耗材管理分页 + */ + PageResult getMaterialPage(MaterialPageReqVO pageReqVO); + } \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialServiceImpl.java index 88a0ff9..0f8ce15 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialServiceImpl.java @@ -1,17 +1,101 @@ package com.zteits.urbanops.module.garden.service.material; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialTypeDO; +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.material.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialDO; +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.material.MaterialMapper; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Service; +import static com.zteits.urbanops.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception0; +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 MaterialServiceImpl implements MaterialService { + @Resource private MaterialMapper materialMapper; @Override - public MaterialDO selectById(Long id) { + public Long createMaterial(MaterialSaveReqVO createReqVO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(MaterialDO::getMaterialCode, createReqVO.getMaterialCode()) + .eq(MaterialDO::getSpecCode, createReqVO.getSpecCode()) + .eq(MaterialDO::getMaterialTypeId, createReqVO.getTypeDetailId()); + List tdMaterials = materialMapper.selectList(queryWrapper); + if (null != tdMaterials && tdMaterials.size() > 0) { + MaterialDO material = tdMaterials.get(0); + throw exception0(BAD_REQUEST.getCode(), "名称:"+material.getMaterialName()+",规格:"+material.getSpecifications() +",类别明细:"+material.getTypeDetailName()+ " 的物料已存在"); + } + + createReqVO.setFullCode(createReqVO.getTypeDetailId()+createReqVO.getMaterialCode()+createReqVO.getSpecCode()); + // 插入 + MaterialDO material = BeanUtils.toBean(createReqVO, MaterialDO.class); + materialMapper.insert(material); + + // 返回 + return material.getMaterialId(); + } + + @Override + public void updateMaterial(MaterialSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialExists(updateReqVO.getMaterialId()); + // 更新 + MaterialDO updateObj = BeanUtils.toBean(updateReqVO, MaterialDO.class); + materialMapper.updateById(updateObj); + } + + @Override + public void deleteMaterial(Long id) { + // 校验存在 + validateMaterialExists(id); + // 删除 + materialMapper.deleteById(id); + } + + @Override + public void deleteMaterialListByIds(List ids) { + // 删除 + materialMapper.deleteByIds(ids); + } + + + private void validateMaterialExists(Long id) { + if (materialMapper.selectById(id) == null) { + throw exception(MATERIAL_NOT_EXISTS); + } + } + + @Override + public MaterialDO getMaterial(Long id) { return materialMapper.selectById(id); } -} \ No newline at end of file + + @Override + public PageResult getMaterialPage(MaterialPageReqVO pageReqVO) { + return materialMapper.selectPage(pageReqVO); + } + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialTypeManagerService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialTypeManagerService.java new file mode 100644 index 0000000..2baaa8f --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialTypeManagerService.java @@ -0,0 +1,62 @@ +package com.zteits.urbanops.module.garden.service.material; + +import java.util.*; +import jakarta.validation.*; +import com.zteits.urbanops.module.garden.controller.admin.material.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialTypeManagerDO; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; + +/** + * 耗材类别管理 Service 接口 + * + * @author 超级管理员 + */ +public interface MaterialTypeManagerService { + + /** + * 创建耗材类别管理 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createMaterialTypeManager(@Valid MaterialTypeManagerSaveReqVO createReqVO); + + /** + * 更新耗材类别管理 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialTypeManager(@Valid MaterialTypeManagerSaveReqVO updateReqVO); + + /** + * 删除耗材类别管理 + * + * @param id 编号 + */ + void deleteMaterialTypeManager(Long id); + + /** + * 批量删除耗材类别管理 + * + * @param ids 编号 + */ + void deleteMaterialTypeManagerListByIds(List ids); + + /** + * 获得耗材类别管理 + * + * @param id 编号 + * @return 耗材类别管理 + */ + MaterialTypeManagerDO getMaterialTypeManager(Long id); + + /** + * 获得耗材类别管理分页 + * + * @param pageReqVO 分页查询 + * @return 耗材类别管理分页 + */ + PageResult getMaterialTypeManagerPage(MaterialTypeManagerPageReqVO pageReqVO); + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialTypeManagerServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialTypeManagerServiceImpl.java new file mode 100644 index 0000000..b606f20 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/material/MaterialTypeManagerServiceImpl.java @@ -0,0 +1,85 @@ +package com.zteits.urbanops.module.garden.service.material; + +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.material.vo.*; +import com.zteits.urbanops.module.garden.dal.dataobject.material.MaterialTypeManagerDO; +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.material.MaterialTypeManagerMapper; + +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 MaterialTypeManagerServiceImpl implements MaterialTypeManagerService { + + @Resource + private MaterialTypeManagerMapper materialTypeManagerMapper; + + @Override + public Long createMaterialTypeManager(MaterialTypeManagerSaveReqVO createReqVO) { + // 插入 + MaterialTypeManagerDO materialTypeManager = BeanUtils.toBean(createReqVO, MaterialTypeManagerDO.class); + materialTypeManagerMapper.insert(materialTypeManager); + + // 返回 + return materialTypeManager.getId(); + } + + @Override + public void updateMaterialTypeManager(MaterialTypeManagerSaveReqVO updateReqVO) { + // 校验存在 + validateMaterialTypeManagerExists(updateReqVO.getId()); + // 更新 + MaterialTypeManagerDO updateObj = BeanUtils.toBean(updateReqVO, MaterialTypeManagerDO.class); + materialTypeManagerMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialTypeManager(Long id) { + // 校验存在 + validateMaterialTypeManagerExists(id); + // 删除 + materialTypeManagerMapper.deleteById(id); + } + + @Override + public void deleteMaterialTypeManagerListByIds(List ids) { + // 删除 + materialTypeManagerMapper.deleteByIds(ids); + } + + + private void validateMaterialTypeManagerExists(Long id) { + if (materialTypeManagerMapper.selectById(id) == null) { + throw exception(MATERIAL_TYPE_MANAGER_NOT_EXISTS); + } + } + + @Override + public MaterialTypeManagerDO getMaterialTypeManager(Long id) { + return materialTypeManagerMapper.selectById(id); + } + + @Override + public PageResult getMaterialTypeManagerPage(MaterialTypeManagerPageReqVO pageReqVO) { + return materialTypeManagerMapper.selectPage(pageReqVO); + } + +} diff --git a/urbanops-module-garden/src/main/resources/mapper/materialtype/MaterialTypeMapper.xml b/urbanops-module-garden/src/main/resources/mapper/materialtype/MaterialTypeMapper.xml deleted file mode 100644 index 2a09fee..0000000 --- a/urbanops-module-garden/src/main/resources/mapper/materialtype/MaterialTypeMapper.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - \ No newline at end of file