From e1733437bd72c4d5d8cdb4b9cf703979b17d6ca0 Mon Sep 17 00:00:00 2001 From: aikai Date: Mon, 13 May 2024 11:13:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E4=BA=A7=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/enums/ErrorCodeConstants.java | 5 + .../admin/assets/AssetsController.java | 95 ++++++++++++ .../assets/AssetsSecondmentController.java | 95 ++++++++++++ .../AssetsSecondmentRecordController.java | 95 ++++++++++++ .../admin/assets/AssetsTypeController.java | 95 ++++++++++++ .../admin/assets/DeptAssetsController.java | 95 ++++++++++++ .../DeptAssetsInOutStockController.java | 95 ++++++++++++ .../admin/assets/dto/AssetAllocationDTO.java | 18 +++ .../admin/assets/vo/AssetsPageReqVO.java | 47 ++++++ .../admin/assets/vo/AssetsRespVO.java | 57 +++++++ .../admin/assets/vo/AssetsSaveReqVO.java | 44 ++++++ .../assets/vo/AssetsSecondmentPageReqVO.java | 48 ++++++ .../vo/AssetsSecondmentRecordPageReqVO.java | 46 ++++++ .../vo/AssetsSecondmentRecordRespVO.java | 56 +++++++ .../vo/AssetsSecondmentRecordSaveReqVO.java | 40 +++++ .../assets/vo/AssetsSecondmentRespVO.java | 56 +++++++ .../assets/vo/AssetsSecondmentSaveReqVO.java | 42 +++++ .../admin/assets/vo/AssetsTypePageReqVO.java | 31 ++++ .../admin/assets/vo/AssetsTypeRespVO.java | 36 +++++ .../admin/assets/vo/AssetsTypeSaveReqVO.java | 25 +++ .../vo/DeptAssetsInOutStockPageReqVO.java | 37 +++++ .../assets/vo/DeptAssetsInOutStockRespVO.java | 44 ++++++ .../vo/DeptAssetsInOutStockSaveReqVO.java | 35 +++++ .../admin/assets/vo/DeptAssetsPageReqVO.java | 34 +++++ .../admin/assets/vo/DeptAssetsRespVO.java | 40 +++++ .../admin/assets/vo/DeptAssetsSaveReqVO.java | 32 ++++ .../dal/dataobject/assets/AssetsDO.java | 64 ++++++++ .../dataobject/assets/AssetsSecondmentDO.java | 65 ++++++++ .../assets/AssetsSecondmentRecordDO.java | 63 ++++++++ .../dal/dataobject/assets/AssetsTypeDO.java | 43 ++++++ .../dal/dataobject/assets/DeptAssetsDO.java | 56 +++++++ .../assets/DeptAssetsInOutStockDO.java | 54 +++++++ .../system/dal/mysql/assets/AssetsMapper.java | 34 +++++ .../mysql/assets/AssetsSecondmentMapper.java | 34 +++++ .../assets/AssetsSecondmentRecordMapper.java | 34 +++++ .../dal/mysql/assets/AssetsTypeMapper.java | 29 ++++ .../assets/DeptAssetsInOutStockMapper.java | 31 ++++ .../dal/mysql/assets/DeptAssetsMapper.java | 30 ++++ .../assets/AssetsSecondmentRecordService.java | 55 +++++++ .../AssetsSecondmentRecordServiceImpl.java | 65 ++++++++ .../assets/AssetsSecondmentService.java | 55 +++++++ .../assets/AssetsSecondmentServiceImpl.java | 64 ++++++++ .../system/service/assets/AssetsService.java | 55 +++++++ .../service/assets/AssetsServiceImpl.java | 77 ++++++++++ .../service/assets/AssetsTypeService.java | 55 +++++++ .../service/assets/AssetsTypeServiceImpl.java | 64 ++++++++ .../assets/DeptAssetsInOutStockService.java | 66 ++++++++ .../DeptAssetsInOutStockServiceImpl.java | 143 ++++++++++++++++++ .../service/assets/DeptAssetsService.java | 55 +++++++ .../service/assets/DeptAssetsServiceImpl.java | 64 ++++++++ .../resources/mapper/assets/AssetsMapper.xml | 12 ++ .../mapper/assets/AssetsSecondmentMapper.xml | 12 ++ .../assets/AssetsSecondmentRecordMapper.xml | 12 ++ .../mapper/assets/AssetsTypeMapper.xml | 12 ++ .../assets/DeptAssetsInOutStockMapper.xml | 12 ++ .../mapper/assets/DeptAssetsMapper.xml | 12 ++ 56 files changed, 2770 insertions(+) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsController.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsSecondmentController.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsSecondmentRecordController.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsTypeController.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/DeptAssetsController.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/DeptAssetsInOutStockController.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/dto/AssetAllocationDTO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsPageReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsRespVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSaveReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentPageReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordPageReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordRespVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordSaveReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRespVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentSaveReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypePageReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypeRespVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypeSaveReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockPageReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockRespVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockSaveReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsPageReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsRespVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsSaveReqVO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsSecondmentDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsSecondmentRecordDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsTypeDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/DeptAssetsDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/DeptAssetsInOutStockDO.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsMapper.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsSecondmentMapper.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsSecondmentRecordMapper.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsTypeMapper.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/DeptAssetsInOutStockMapper.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/DeptAssetsMapper.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentRecordService.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentRecordServiceImpl.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentService.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentServiceImpl.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsService.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsServiceImpl.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsTypeService.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsTypeServiceImpl.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockService.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockServiceImpl.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsService.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsServiceImpl.java create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsMapper.xml create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsSecondmentMapper.xml create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsSecondmentRecordMapper.xml create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsTypeMapper.xml create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/DeptAssetsInOutStockMapper.xml create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/DeptAssetsMapper.xml diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index a7733bc5..d2ec5c15 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -202,4 +202,9 @@ public interface ErrorCodeConstants { ErrorCode BANK_EXISTS = new ErrorCode(1_009_020_003, "银行卡号已存在"); ErrorCode BANK_NOT_CREATOR = new ErrorCode(1_009_020_002, "你不是当前银行卡信息的创建者,不能进行修改!"); + + + // ========== 资产相关 1-010-001-001 ========== + ErrorCode STOCK_EXCEEDS = new ErrorCode(1_010_001_001, "库存超出!"); + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsController.java new file mode 100644 index 00000000..c6ce3d25 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets; + +import org.springframework.web.bind.annotation.*; +import javax.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 javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsDO; +import cn.iocoder.yudao.module.system.service.assets.AssetsService; + +@Tag(name = "管理后台 - 资产") +@RestController +@RequestMapping("/system/assets") +@Validated +public class AssetsController { + + @Resource + private AssetsService assetsService; + + @PostMapping("/create") + @Operation(summary = "创建资产") + @PreAuthorize("@ss.hasPermission('system:assets:create')") + public CommonResult createAssets(@Valid @RequestBody AssetsSaveReqVO createReqVO) { + return success(assetsService.createAssets(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新资产") + @PreAuthorize("@ss.hasPermission('system:assets:update')") + public CommonResult updateAssets(@Valid @RequestBody AssetsSaveReqVO updateReqVO) { + assetsService.updateAssets(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除资产") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:assets:delete')") + public CommonResult deleteAssets(@RequestParam("id") Long id) { + assetsService.deleteAssets(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得资产") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:assets:query')") + public CommonResult getAssets(@RequestParam("id") Long id) { + AssetsDO assets = assetsService.getAssets(id); + return success(BeanUtils.toBean(assets, AssetsRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得资产分页") + @PreAuthorize("@ss.hasPermission('system:assets:query')") + public CommonResult> getAssetsPage(@Valid AssetsPageReqVO pageReqVO) { + PageResult pageResult = assetsService.getAssetsPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, AssetsRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出资产 Excel") + @PreAuthorize("@ss.hasPermission('system:assets:export')") + @OperateLog(type = EXPORT) + public void exportAssetsExcel(@Valid AssetsPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = assetsService.getAssetsPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "资产.xls", "数据", AssetsRespVO.class, + BeanUtils.toBean(list, AssetsRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsSecondmentController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsSecondmentController.java new file mode 100644 index 00000000..9821299d --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsSecondmentController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets; + +import org.springframework.web.bind.annotation.*; +import javax.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 javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsSecondmentDO; +import cn.iocoder.yudao.module.system.service.assets.AssetsSecondmentService; + +@Tag(name = "管理后台 - 资产借调") +@RestController +@RequestMapping("/system/assets-secondment") +@Validated +public class AssetsSecondmentController { + + @Resource + private AssetsSecondmentService assetsSecondmentService; + + @PostMapping("/create") + @Operation(summary = "创建资产借调") + @PreAuthorize("@ss.hasPermission('system:assets-secondment:create')") + public CommonResult createAssetsSecondment(@Valid @RequestBody AssetsSecondmentSaveReqVO createReqVO) { + return success(assetsSecondmentService.createAssetsSecondment(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新资产借调") + @PreAuthorize("@ss.hasPermission('system:assets-secondment:update')") + public CommonResult updateAssetsSecondment(@Valid @RequestBody AssetsSecondmentSaveReqVO updateReqVO) { + assetsSecondmentService.updateAssetsSecondment(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除资产借调") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:assets-secondment:delete')") + public CommonResult deleteAssetsSecondment(@RequestParam("id") Long id) { + assetsSecondmentService.deleteAssetsSecondment(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得资产借调") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:assets-secondment:query')") + public CommonResult getAssetsSecondment(@RequestParam("id") Long id) { + AssetsSecondmentDO assetsSecondment = assetsSecondmentService.getAssetsSecondment(id); + return success(BeanUtils.toBean(assetsSecondment, AssetsSecondmentRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得资产借调分页") + @PreAuthorize("@ss.hasPermission('system:assets-secondment:query')") + public CommonResult> getAssetsSecondmentPage(@Valid AssetsSecondmentPageReqVO pageReqVO) { + PageResult pageResult = assetsSecondmentService.getAssetsSecondmentPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, AssetsSecondmentRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出资产借调 Excel") + @PreAuthorize("@ss.hasPermission('system:assets-secondment:export')") + @OperateLog(type = EXPORT) + public void exportAssetsSecondmentExcel(@Valid AssetsSecondmentPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = assetsSecondmentService.getAssetsSecondmentPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "资产借调.xls", "数据", AssetsSecondmentRespVO.class, + BeanUtils.toBean(list, AssetsSecondmentRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsSecondmentRecordController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsSecondmentRecordController.java new file mode 100644 index 00000000..1323363f --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsSecondmentRecordController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets; + +import org.springframework.web.bind.annotation.*; +import javax.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 javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsSecondmentRecordDO; +import cn.iocoder.yudao.module.system.service.assets.AssetsSecondmentRecordService; + +@Tag(name = "管理后台 - 资产借调记录") +@RestController +@RequestMapping("/system/assets-secondment-record") +@Validated +public class AssetsSecondmentRecordController { + + @Resource + private AssetsSecondmentRecordService assetsSecondmentRecordService; + + @PostMapping("/create") + @Operation(summary = "创建资产借调记录") + @PreAuthorize("@ss.hasPermission('system:assets-secondment-record:create')") + public CommonResult createAssetsSecondmentRecord(@Valid @RequestBody AssetsSecondmentRecordSaveReqVO createReqVO) { + return success(assetsSecondmentRecordService.createAssetsSecondmentRecord(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新资产借调记录") + @PreAuthorize("@ss.hasPermission('system:assets-secondment-record:update')") + public CommonResult updateAssetsSecondmentRecord(@Valid @RequestBody AssetsSecondmentRecordSaveReqVO updateReqVO) { + assetsSecondmentRecordService.updateAssetsSecondmentRecord(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除资产借调记录") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:assets-secondment-record:delete')") + public CommonResult deleteAssetsSecondmentRecord(@RequestParam("id") Long id) { + assetsSecondmentRecordService.deleteAssetsSecondmentRecord(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得资产借调记录") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:assets-secondment-record:query')") + public CommonResult getAssetsSecondmentRecord(@RequestParam("id") Long id) { + AssetsSecondmentRecordDO assetsSecondmentRecord = assetsSecondmentRecordService.getAssetsSecondmentRecord(id); + return success(BeanUtils.toBean(assetsSecondmentRecord, AssetsSecondmentRecordRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得资产借调记录分页") + @PreAuthorize("@ss.hasPermission('system:assets-secondment-record:query')") + public CommonResult> getAssetsSecondmentRecordPage(@Valid AssetsSecondmentRecordPageReqVO pageReqVO) { + PageResult pageResult = assetsSecondmentRecordService.getAssetsSecondmentRecordPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, AssetsSecondmentRecordRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出资产借调记录 Excel") + @PreAuthorize("@ss.hasPermission('system:assets-secondment-record:export')") + @OperateLog(type = EXPORT) + public void exportAssetsSecondmentRecordExcel(@Valid AssetsSecondmentRecordPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = assetsSecondmentRecordService.getAssetsSecondmentRecordPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "资产借调记录.xls", "数据", AssetsSecondmentRecordRespVO.class, + BeanUtils.toBean(list, AssetsSecondmentRecordRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsTypeController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsTypeController.java new file mode 100644 index 00000000..32cb5a3d --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/AssetsTypeController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets; + +import org.springframework.web.bind.annotation.*; +import javax.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 javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsTypeDO; +import cn.iocoder.yudao.module.system.service.assets.AssetsTypeService; + +@Tag(name = "管理后台 - 资产类型") +@RestController +@RequestMapping("/system/assets-type") +@Validated +public class AssetsTypeController { + + @Resource + private AssetsTypeService assetsTypeService; + + @PostMapping("/create") + @Operation(summary = "创建资产类型") + @PreAuthorize("@ss.hasPermission('system:assets-type:create')") + public CommonResult createAssetsType(@Valid @RequestBody AssetsTypeSaveReqVO createReqVO) { + return success(assetsTypeService.createAssetsType(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新资产类型") + @PreAuthorize("@ss.hasPermission('system:assets-type:update')") + public CommonResult updateAssetsType(@Valid @RequestBody AssetsTypeSaveReqVO updateReqVO) { + assetsTypeService.updateAssetsType(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除资产类型") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:assets-type:delete')") + public CommonResult deleteAssetsType(@RequestParam("id") Long id) { + assetsTypeService.deleteAssetsType(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得资产类型") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:assets-type:query')") + public CommonResult getAssetsType(@RequestParam("id") Long id) { + AssetsTypeDO assetsType = assetsTypeService.getAssetsType(id); + return success(BeanUtils.toBean(assetsType, AssetsTypeRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得资产类型分页") + @PreAuthorize("@ss.hasPermission('system:assets-type:query')") + public CommonResult> getAssetsTypePage(@Valid AssetsTypePageReqVO pageReqVO) { + PageResult pageResult = assetsTypeService.getAssetsTypePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, AssetsTypeRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出资产类型 Excel") + @PreAuthorize("@ss.hasPermission('system:assets-type:export')") + @OperateLog(type = EXPORT) + public void exportAssetsTypeExcel(@Valid AssetsTypePageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = assetsTypeService.getAssetsTypePage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "资产类型.xls", "数据", AssetsTypeRespVO.class, + BeanUtils.toBean(list, AssetsTypeRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/DeptAssetsController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/DeptAssetsController.java new file mode 100644 index 00000000..ac634dd2 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/DeptAssetsController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets; + +import org.springframework.web.bind.annotation.*; +import javax.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 javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsDO; +import cn.iocoder.yudao.module.system.service.assets.DeptAssetsService; + +@Tag(name = "管理后台 - 部门资产") +@RestController +@RequestMapping("/system/dept-assets") +@Validated +public class DeptAssetsController { + + @Resource + private DeptAssetsService deptAssetsService; + + @PostMapping("/create") + @Operation(summary = "创建部门资产") + @PreAuthorize("@ss.hasPermission('system:dept-assets:create')") + public CommonResult createDeptAssets(@Valid @RequestBody DeptAssetsSaveReqVO createReqVO) { + return success(deptAssetsService.createDeptAssets(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新部门资产") + @PreAuthorize("@ss.hasPermission('system:dept-assets:update')") + public CommonResult updateDeptAssets(@Valid @RequestBody DeptAssetsSaveReqVO updateReqVO) { + deptAssetsService.updateDeptAssets(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除部门资产") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:dept-assets:delete')") + public CommonResult deleteDeptAssets(@RequestParam("id") Long id) { + deptAssetsService.deleteDeptAssets(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得部门资产") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:dept-assets:query')") + public CommonResult getDeptAssets(@RequestParam("id") Long id) { + DeptAssetsDO deptAssets = deptAssetsService.getDeptAssets(id); + return success(BeanUtils.toBean(deptAssets, DeptAssetsRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得部门资产分页") + @PreAuthorize("@ss.hasPermission('system:dept-assets:query')") + public CommonResult> getDeptAssetsPage(@Valid DeptAssetsPageReqVO pageReqVO) { + PageResult pageResult = deptAssetsService.getDeptAssetsPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DeptAssetsRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出部门资产 Excel") + @PreAuthorize("@ss.hasPermission('system:dept-assets:export')") + @OperateLog(type = EXPORT) + public void exportDeptAssetsExcel(@Valid DeptAssetsPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = deptAssetsService.getDeptAssetsPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "部门资产.xls", "数据", DeptAssetsRespVO.class, + BeanUtils.toBean(list, DeptAssetsRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/DeptAssetsInOutStockController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/DeptAssetsInOutStockController.java new file mode 100644 index 00000000..77c18db5 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/DeptAssetsInOutStockController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets; + +import org.springframework.web.bind.annotation.*; +import javax.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 javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsInOutStockDO; +import cn.iocoder.yudao.module.system.service.assets.DeptAssetsInOutStockService; + +@Tag(name = "管理后台 - 部门资产出入库") +@RestController +@RequestMapping("/system/dept-assets-in-out-stock") +@Validated +public class DeptAssetsInOutStockController { + + @Resource + private DeptAssetsInOutStockService deptAssetsInOutStockService; + + @PostMapping("/create") + @Operation(summary = "创建部门资产出入库") + @PreAuthorize("@ss.hasPermission('system:dept-assets-in-out-stock:create')") + public CommonResult createDeptAssetsInOutStock(@Valid @RequestBody DeptAssetsInOutStockSaveReqVO createReqVO) { + return success(deptAssetsInOutStockService.createDeptAssetsInOutStock(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新部门资产出入库") + @PreAuthorize("@ss.hasPermission('system:dept-assets-in-out-stock:update')") + public CommonResult updateDeptAssetsInOutStock(@Valid @RequestBody DeptAssetsInOutStockSaveReqVO updateReqVO) { + deptAssetsInOutStockService.updateDeptAssetsInOutStock(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除部门资产出入库") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('system:dept-assets-in-out-stock:delete')") + public CommonResult deleteDeptAssetsInOutStock(@RequestParam("id") Long id) { + deptAssetsInOutStockService.deleteDeptAssetsInOutStock(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得部门资产出入库") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:dept-assets-in-out-stock:query')") + public CommonResult getDeptAssetsInOutStock(@RequestParam("id") Long id) { + DeptAssetsInOutStockDO deptAssetsInOutStock = deptAssetsInOutStockService.getDeptAssetsInOutStock(id); + return success(BeanUtils.toBean(deptAssetsInOutStock, DeptAssetsInOutStockRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得部门资产出入库分页") + @PreAuthorize("@ss.hasPermission('system:dept-assets-in-out-stock:query')") + public CommonResult> getDeptAssetsInOutStockPage(@Valid DeptAssetsInOutStockPageReqVO pageReqVO) { + PageResult pageResult = deptAssetsInOutStockService.getDeptAssetsInOutStockPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DeptAssetsInOutStockRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出部门资产出入库 Excel") + @PreAuthorize("@ss.hasPermission('system:dept-assets-in-out-stock:export')") + @OperateLog(type = EXPORT) + public void exportDeptAssetsInOutStockExcel(@Valid DeptAssetsInOutStockPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = deptAssetsInOutStockService.getDeptAssetsInOutStockPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "部门资产出入库.xls", "数据", DeptAssetsInOutStockRespVO.class, + BeanUtils.toBean(list, DeptAssetsInOutStockRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/dto/AssetAllocationDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/dto/AssetAllocationDTO.java new file mode 100644 index 00000000..9e34c3bb --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/dto/AssetAllocationDTO.java @@ -0,0 +1,18 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class AssetAllocationDTO { + /** + * 资产id + */ + private Long assetsId; + + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "103") + private Long deptId; + + @Schema(description = "出入库数量") + private Integer num; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsPageReqVO.java new file mode 100644 index 00000000..9662fd3a --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsPageReqVO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 资产分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AssetsPageReqVO extends PageParam { + + @Schema(description = "资产名称", example = "赵六") + private String name; + + @Schema(description = "资产编号") + private String assetsNo; + + @Schema(description = "资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)", example = "1") + private Integer status; + + @Schema(description = "资产单位") + private String util; + + @Schema(description = "资产价格") + private BigDecimal amount; + + @Schema(description = "库存") + private Integer stock; + + @Schema(description = "资产类型id", example = "5169") + private Long typeId; + + @Schema(description = "其余信息(json)") + private String itemJson; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsRespVO.java new file mode 100644 index 00000000..6893b337 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsRespVO.java @@ -0,0 +1,57 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 资产 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AssetsRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30782") + @ExcelProperty("id") + private Long id; + + @Schema(description = "资产名称", example = "赵六") + @ExcelProperty("资产名称") + private String name; + + @Schema(description = "资产编号") + @ExcelProperty("资产编号") + private String assetsNo; + + @Schema(description = "资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)", example = "1") + @ExcelProperty("资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)") + private Integer status; + + @Schema(description = "资产单位") + @ExcelProperty("资产单位") + private String util; + + @Schema(description = "资产价格") + @ExcelProperty("资产价格") + private BigDecimal amount; + + @Schema(description = "库存") + @ExcelProperty("库存") + private Integer stock; + + @Schema(description = "资产类型id", example = "5169") + @ExcelProperty("资产类型id") + private Long typeId; + + @Schema(description = "其余信息(json)") + @ExcelProperty("其余信息(json)") + private String itemJson; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSaveReqVO.java new file mode 100644 index 00000000..770dc08f --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSaveReqVO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import cn.iocoder.yudao.module.system.controller.admin.assets.dto.AssetAllocationDTO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 资产新增/修改 Request VO") +@Data +public class AssetsSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30782") + private Long id; + + @Schema(description = "资产名称", example = "赵六") + private String name; + + @Schema(description = "资产编号") + private String assetsNo; + + @Schema(description = "资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)", example = "1") + private Integer status; + + @Schema(description = "资产单位") + private String util; + + @Schema(description = "资产价格") + private BigDecimal amount; + + @Schema(description = "库存") + private Integer stock; + + @Schema(description = "资产类型id", example = "5169") + private Long typeId; + + @Schema(description = "其余信息(json)") + private String itemJson; + + @Schema(description = "当前资产分配(暂无分配就不需要传或者给个空数组)") + private List assetAllocationDTOS; +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentPageReqVO.java new file mode 100644 index 00000000..4e35c7ef --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentPageReqVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 资产借调分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AssetsSecondmentPageReqVO extends PageParam { + + @Schema(description = "资产id", example = "13886") + private Long assetsId; + + @Schema(description = "使用人id", example = "12871") + private Long useUserId; + + @Schema(description = "使用人部门id", example = "130") + private Long useDeptId; + + @Schema(description = "负责人id", example = "8526") + private Long principalUserId; + + @Schema(description = "借调部门id", example = "11597") + private Long secondmentDeptId; + + @Schema(description = "借调开始时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] beginTime; + + @Schema(description = "借调结束时间 / 为空代表不限制时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] endTime; + + @Schema(description = "数量") + private Integer num; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordPageReqVO.java new file mode 100644 index 00000000..1323f7f4 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordPageReqVO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 资产借调记录分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AssetsSecondmentRecordPageReqVO extends PageParam { + + @Schema(description = "资产id", example = "20093") + private Long assetsId; + + @Schema(description = "使用人id", example = "12905") + private Long useUserId; + + @Schema(description = "使用人部门id", example = "13729") + private Long useDeptId; + + @Schema(description = "负责人id", example = "5479") + private Long principalUserId; + + @Schema(description = "借调部门id", example = "13654") + private Long secondmentDeptId; + + @Schema(description = "借调id", example = "20754") + private Long assetSecondmentId; + + @Schema(description = "数量") + private Integer num; + + @Schema(description = "状态 0领用 1归还", example = "1") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordRespVO.java new file mode 100644 index 00000000..3272a18f --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordRespVO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 资产借调记录 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AssetsSecondmentRecordRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1505") + @ExcelProperty("id") + private Long id; + + @Schema(description = "资产id", example = "20093") + @ExcelProperty("资产id") + private Long assetsId; + + @Schema(description = "使用人id", example = "12905") + @ExcelProperty("使用人id") + private Long useUserId; + + @Schema(description = "使用人部门id", example = "13729") + @ExcelProperty("使用人部门id") + private Long useDeptId; + + @Schema(description = "负责人id", example = "5479") + @ExcelProperty("负责人id") + private Long principalUserId; + + @Schema(description = "借调部门id", example = "13654") + @ExcelProperty("借调部门id") + private Long secondmentDeptId; + + @Schema(description = "借调id", example = "20754") + @ExcelProperty("借调id") + private Long assetSecondmentId; + + @Schema(description = "数量") + @ExcelProperty("数量") + private Integer num; + + @Schema(description = "状态 0领用 1归还", example = "1") + @ExcelProperty("状态 0领用 1归还") + private Integer status; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordSaveReqVO.java new file mode 100644 index 00000000..39e6c5ee --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRecordSaveReqVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 资产借调记录新增/修改 Request VO") +@Data +public class AssetsSecondmentRecordSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1505") + private Long id; + + @Schema(description = "资产id", example = "20093") + private Long assetsId; + + @Schema(description = "使用人id", example = "12905") + private Long useUserId; + + @Schema(description = "使用人部门id", example = "13729") + private Long useDeptId; + + @Schema(description = "负责人id", example = "5479") + private Long principalUserId; + + @Schema(description = "借调部门id", example = "13654") + private Long secondmentDeptId; + + @Schema(description = "借调id", example = "20754") + private Long assetSecondmentId; + + @Schema(description = "数量") + private Integer num; + + @Schema(description = "状态 0领用 1归还", example = "1") + private Integer status; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRespVO.java new file mode 100644 index 00000000..94d74cc4 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentRespVO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 资产借调 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AssetsSecondmentRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7090") + @ExcelProperty("id") + private Long id; + + @Schema(description = "资产id", example = "13886") + @ExcelProperty("资产id") + private Long assetsId; + + @Schema(description = "使用人id", example = "12871") + @ExcelProperty("使用人id") + private Long useUserId; + + @Schema(description = "使用人部门id", example = "130") + @ExcelProperty("使用人部门id") + private Long useDeptId; + + @Schema(description = "负责人id", example = "8526") + @ExcelProperty("负责人id") + private Long principalUserId; + + @Schema(description = "借调部门id", example = "11597") + @ExcelProperty("借调部门id") + private Long secondmentDeptId; + + @Schema(description = "借调开始时间") + @ExcelProperty("借调开始时间") + private LocalDateTime beginTime; + + @Schema(description = "借调结束时间 / 为空代表不限制时间") + @ExcelProperty("借调结束时间 / 为空代表不限制时间") + private LocalDateTime endTime; + + @Schema(description = "数量") + @ExcelProperty("数量") + private Integer num; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentSaveReqVO.java new file mode 100644 index 00000000..3407825c --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsSecondmentSaveReqVO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 资产借调新增/修改 Request VO") +@Data +public class AssetsSecondmentSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7090") + private Long id; + + @Schema(description = "资产id", example = "13886") + private Long assetsId; + + @Schema(description = "使用人id", example = "12871") + private Long useUserId; + + @Schema(description = "使用人部门id", example = "130") + private Long useDeptId; + + @Schema(description = "负责人id", example = "8526") + private Long principalUserId; + + @Schema(description = "借调部门id", example = "11597") + private Long secondmentDeptId; + + @Schema(description = "借调开始时间") + private LocalDateTime beginTime; + + @Schema(description = "借调结束时间 / 为空代表不限制时间") + private LocalDateTime endTime; + + @Schema(description = "数量") + private Integer num; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypePageReqVO.java new file mode 100644 index 00000000..d4e6331d --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypePageReqVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 资产类型分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class AssetsTypePageReqVO extends PageParam { + + @Schema(description = "资产类型名称", example = "李四") + private String name; + + @Schema(description = "类型 0按量 1按单件", example = "1") + private Integer type; + + @Schema(description = "上级资产类型id", example = "27306") + private Long pid; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypeRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypeRespVO.java new file mode 100644 index 00000000..230d95b4 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypeRespVO.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 资产类型 Response VO") +@Data +@ExcelIgnoreUnannotated +public class AssetsTypeRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6590") + @ExcelProperty("id") + private Long id; + + @Schema(description = "资产类型名称", example = "李四") + @ExcelProperty("资产类型名称") + private String name; + + @Schema(description = "类型 0按量 1按单件", example = "1") + @ExcelProperty("类型 0按量 1按单件") + private Integer type; + + @Schema(description = "上级资产类型id", example = "27306") + @ExcelProperty("上级资产类型id") + private Long pid; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypeSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypeSaveReqVO.java new file mode 100644 index 00000000..97af8b18 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/AssetsTypeSaveReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 资产类型新增/修改 Request VO") +@Data +public class AssetsTypeSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6590") + private Long id; + + @Schema(description = "资产类型名称", example = "李四") + private String name; + + @Schema(description = "类型 0按量 1按单件", example = "1") + private Integer type; + + @Schema(description = "上级资产类型id", example = "27306") + private Long pid; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockPageReqVO.java new file mode 100644 index 00000000..9a96541f --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockPageReqVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 部门资产出入库分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DeptAssetsInOutStockPageReqVO extends PageParam { + + @Schema(description = "入库部门id (系统入库则为null)", example = "2072") + private Long inDeptId; + + @Schema(description = "出库部门id (系统出库则为null)", example = "6081") + private Long outDeptId; + + @Schema(description = "资产id", example = "1025") + private Long assetsId; + + @Schema(description = "出入库数量") + private Integer num; + + @Schema(description = "出入库编号") + private String inOutNo; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockRespVO.java new file mode 100644 index 00000000..5979bfba --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockRespVO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 部门资产出入库 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DeptAssetsInOutStockRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29567") + @ExcelProperty("id") + private Long id; + + @Schema(description = "入库部门id (系统入库则为null)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2072") + @ExcelProperty("入库部门id (系统入库则为null)") + private Long inDeptId; + + @Schema(description = "出库部门id (系统出库则为null)", requiredMode = Schema.RequiredMode.REQUIRED, example = "6081") + @ExcelProperty("出库部门id (系统出库则为null)") + private Long outDeptId; + + @Schema(description = "资产id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1025") + @ExcelProperty("资产id") + private Long assetsId; + + @Schema(description = "出入库数量") + @ExcelProperty("出入库数量") + private Integer num; + + @Schema(description = "出入库编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("出入库编号") + private String inOutNo; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockSaveReqVO.java new file mode 100644 index 00000000..bc0b711a --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsInOutStockSaveReqVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 部门资产出入库新增/修改 Request VO") +@Data +public class DeptAssetsInOutStockSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29567") + private Long id; + + @Schema(description = "入库部门id (系统入库则为null)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2072") + @NotNull(message = "入库部门id (系统入库则为null)不能为空") + private Long inDeptId; + + @Schema(description = "出库部门id (系统出库则为null)", requiredMode = Schema.RequiredMode.REQUIRED, example = "6081") + @NotNull(message = "出库部门id (系统出库则为null)不能为空") + private Long outDeptId; + + @Schema(description = "资产id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1025") + @NotNull(message = "资产id不能为空") + private Long assetsId; + + @Schema(description = "出入库数量") + private Integer num; + + @Schema(description = "出入库编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "出入库编号不能为空") + private String inOutNo; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsPageReqVO.java new file mode 100644 index 00000000..4172f367 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsPageReqVO.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 部门资产分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DeptAssetsPageReqVO extends PageParam { + + @Schema(description = "部门id", example = "103") + private Long deptId; + + @Schema(description = "资产id", example = "15660") + private Long assetsId; + + @Schema(description = "资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)", example = "2") + private Integer status; + + @Schema(description = "库存") + private Integer stock; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsRespVO.java new file mode 100644 index 00000000..58eaf01c --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsRespVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 部门资产 Response VO") +@Data +@ExcelIgnoreUnannotated +public class DeptAssetsRespVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30605") + @ExcelProperty("id") + private Long id; + + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "103") + @ExcelProperty("部门id") + private Long deptId; + + @Schema(description = "资产id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15660") + @ExcelProperty("资产id") + private Long assetsId; + + @Schema(description = "资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)") + private Integer status; + + @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("库存") + private Integer stock; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsSaveReqVO.java new file mode 100644 index 00000000..5ae868d5 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/assets/vo/DeptAssetsSaveReqVO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.system.controller.admin.assets.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 部门资产新增/修改 Request VO") +@Data +public class DeptAssetsSaveReqVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "30605") + private Long id; + + @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "103") + @NotNull(message = "部门id不能为空") + private Long deptId; + + @Schema(description = "资产id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15660") + @NotNull(message = "资产id不能为空") + private Long assetsId; + + @Schema(description = "资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义)不能为空") + private Integer status; + + @Schema(description = "库存", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "库存不能为空") + private Integer stock; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsDO.java new file mode 100644 index 00000000..2557ccb1 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsDO.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.assets; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 资产 DO + * + * @author 艾楷 + */ +@TableName("zc_assets") +@KeySequence("zc_assets_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AssetsDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 资产名称 + */ + private String name; + /** + * 资产编号 + */ + private String assetsNo; + /** + * 资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义) + */ + private Integer status; + /** + * 资产单位 + */ + private String util; + /** + * 资产价格 + */ + private BigDecimal amount; + /** + * 库存 + */ + private Integer stock; + /** + * 资产类型id + */ + private Long typeId; + /** + * 其余信息(json) + */ + private String itemJson; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsSecondmentDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsSecondmentDO.java new file mode 100644 index 00000000..e3acf654 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsSecondmentDO.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.assets; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 资产借调 DO + * + * @author 艾楷 + */ +@TableName("zc_assets_secondment") +@KeySequence("zc_assets_secondment_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AssetsSecondmentDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 资产id + */ + private Long assetsId; + /** + * 使用人id + */ + private Long useUserId; + /** + * 使用人部门id + */ + private Long useDeptId; + /** + * 负责人id + */ + private Long principalUserId; + /** + * 借调部门id + */ + private Long secondmentDeptId; + /** + * 借调开始时间 + */ + private LocalDateTime beginTime; + /** + * 借调结束时间 / 为空代表不限制时间 + */ + private LocalDateTime endTime; + /** + * 数量 + */ + private Integer num; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsSecondmentRecordDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsSecondmentRecordDO.java new file mode 100644 index 00000000..451040be --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsSecondmentRecordDO.java @@ -0,0 +1,63 @@ + package cn.iocoder.yudao.module.system.dal.dataobject.assets; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 资产借调记录 DO + * + * @author 艾楷 + */ +@TableName("zc_assets_secondment_record") +@KeySequence("zc_assets_secondment_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AssetsSecondmentRecordDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 资产id + */ + private Long assetsId; + /** + * 使用人id + */ + private Long useUserId; + /** + * 使用人部门id + */ + private Long useDeptId; + /** + * 负责人id + */ + private Long principalUserId; + /** + * 借调部门id + */ + private Long secondmentDeptId; + /** + * 借调id + */ + private Long assetSecondmentId; + /** + * 数量 + */ + private Integer num; + /** + * 状态 0领用 1归还 + */ + private Integer status; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsTypeDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsTypeDO.java new file mode 100644 index 00000000..b787351e --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/AssetsTypeDO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.assets; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 资产类型 DO + * + * @author 艾楷 + */ +@TableName("zc_assets_type") +@KeySequence("zc_assets_type_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AssetsTypeDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 资产类型名称 + */ + private String name; + /** + * 类型 0按量 1按单件 + */ + private Integer type; + /** + * 上级资产类型id + */ + private Long pid; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/DeptAssetsDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/DeptAssetsDO.java new file mode 100644 index 00000000..25eb3f6a --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/DeptAssetsDO.java @@ -0,0 +1,56 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.assets; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import lombok.*; + +/** + * 部门资产 DO + * + * @author 艾楷 + */ +@TableName("zc_dept_assets") +@KeySequence("zc_dept_assets_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DeptAssetsDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 部门id + */ + private Long deptId; + /** + * 资产id + */ + private Long assetsId; + /** + * 资产状态 -1无状态 0空闲 1使用中 2维修 3损坏 (资产类型按单件时候有意义) + */ + private Integer status; + /** + * 库存 + */ + private Integer stock; + + /** + * 初始化 + * @param deptId + * @param assetsId + * @return + */ + public static DeptAssetsDO init(Long deptId, Long assetsId) { + return new DeptAssetsDO().setId(IdWorker.getId()).setDeptId(deptId).setStock(0).setStatus(0).setAssetsId(assetsId); + } +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/DeptAssetsInOutStockDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/DeptAssetsInOutStockDO.java new file mode 100644 index 00000000..6f15919d --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/assets/DeptAssetsInOutStockDO.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.assets; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import lombok.*; + +/** + * 部门资产出入库 DO + * + * @author 艾楷 + */ +@TableName("zc_dept_assets_in_out_stock") +@KeySequence("zc_dept_assets_in_out_stock_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class DeptAssetsInOutStockDO extends BaseDO { + //出入库状态 0入库 1出库 + public static final Integer STATUS_IN = 0; + public static final Integer STATUS_OUT = 1; + + /** + * id + */ + @TableId + private Long id; + /** + * 入库部门id (系统入库则为null) + */ + private Long inDeptId; + /** + * 出库部门id (系统出库则为null) + */ + private Long outDeptId; + /** + * 资产id + */ + private Long assetsId; + /** + * 出入库数量 + */ + private Integer num; + /** + * 出入库编号 + */ + private String inOutNo; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsMapper.java new file mode 100644 index 00000000..ca95760e --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsMapper.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.dal.mysql.assets; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; + +/** + * 资产 Mapper + * + * @author 艾楷 + */ +@Mapper +public interface AssetsMapper extends BaseMapperX { + + default PageResult selectPage(AssetsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(AssetsDO::getName, reqVO.getName()) + .eqIfPresent(AssetsDO::getAssetsNo, reqVO.getAssetsNo()) + .eqIfPresent(AssetsDO::getStatus, reqVO.getStatus()) + .eqIfPresent(AssetsDO::getUtil, reqVO.getUtil()) + .eqIfPresent(AssetsDO::getAmount, reqVO.getAmount()) + .eqIfPresent(AssetsDO::getStock, reqVO.getStock()) + .eqIfPresent(AssetsDO::getTypeId, reqVO.getTypeId()) + .eqIfPresent(AssetsDO::getItemJson, reqVO.getItemJson()) + .betweenIfPresent(AssetsDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(AssetsDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsSecondmentMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsSecondmentMapper.java new file mode 100644 index 00000000..af7bc6f1 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsSecondmentMapper.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.system.dal.mysql.assets; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsSecondmentDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; + +/** + * 资产借调 Mapper + * + * @author 艾楷 + */ +@Mapper +public interface AssetsSecondmentMapper extends BaseMapperX { + + default PageResult selectPage(AssetsSecondmentPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(AssetsSecondmentDO::getAssetsId, reqVO.getAssetsId()) + .eqIfPresent(AssetsSecondmentDO::getUseUserId, reqVO.getUseUserId()) + .eqIfPresent(AssetsSecondmentDO::getUseDeptId, reqVO.getUseDeptId()) + .eqIfPresent(AssetsSecondmentDO::getPrincipalUserId, reqVO.getPrincipalUserId()) + .eqIfPresent(AssetsSecondmentDO::getSecondmentDeptId, reqVO.getSecondmentDeptId()) + .betweenIfPresent(AssetsSecondmentDO::getBeginTime, reqVO.getBeginTime()) + .betweenIfPresent(AssetsSecondmentDO::getEndTime, reqVO.getEndTime()) + .eqIfPresent(AssetsSecondmentDO::getNum, reqVO.getNum()) + .betweenIfPresent(AssetsSecondmentDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(AssetsSecondmentDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsSecondmentRecordMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsSecondmentRecordMapper.java new file mode 100644 index 00000000..92bdfc52 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsSecondmentRecordMapper.java @@ -0,0 +1,34 @@ + package cn.iocoder.yudao.module.system.dal.mysql.assets; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsSecondmentRecordDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; + +/** + * 资产借调记录 Mapper + * + * @author 艾楷 + */ +@Mapper +public interface AssetsSecondmentRecordMapper extends BaseMapperX { + + default PageResult selectPage(AssetsSecondmentRecordPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(AssetsSecondmentRecordDO::getAssetsId, reqVO.getAssetsId()) + .eqIfPresent(AssetsSecondmentRecordDO::getUseUserId, reqVO.getUseUserId()) + .eqIfPresent(AssetsSecondmentRecordDO::getUseDeptId, reqVO.getUseDeptId()) + .eqIfPresent(AssetsSecondmentRecordDO::getPrincipalUserId, reqVO.getPrincipalUserId()) + .eqIfPresent(AssetsSecondmentRecordDO::getSecondmentDeptId, reqVO.getSecondmentDeptId()) + .eqIfPresent(AssetsSecondmentRecordDO::getAssetSecondmentId, reqVO.getAssetSecondmentId()) + .eqIfPresent(AssetsSecondmentRecordDO::getNum, reqVO.getNum()) + .eqIfPresent(AssetsSecondmentRecordDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(AssetsSecondmentRecordDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(AssetsSecondmentRecordDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsTypeMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsTypeMapper.java new file mode 100644 index 00000000..4a604a79 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/AssetsTypeMapper.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.system.dal.mysql.assets; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsTypeDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; + +/** + * 资产类型 Mapper + * + * @author 艾楷 + */ +@Mapper +public interface AssetsTypeMapper extends BaseMapperX { + + default PageResult selectPage(AssetsTypePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(AssetsTypeDO::getName, reqVO.getName()) + .eqIfPresent(AssetsTypeDO::getType, reqVO.getType()) + .eqIfPresent(AssetsTypeDO::getPid, reqVO.getPid()) + .betweenIfPresent(AssetsTypeDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(AssetsTypeDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/DeptAssetsInOutStockMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/DeptAssetsInOutStockMapper.java new file mode 100644 index 00000000..85ee3332 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/DeptAssetsInOutStockMapper.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.dal.mysql.assets; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsInOutStockDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; + +/** + * 部门资产出入库 Mapper + * + * @author 艾楷 + */ +@Mapper +public interface DeptAssetsInOutStockMapper extends BaseMapperX { + + default PageResult selectPage(DeptAssetsInOutStockPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DeptAssetsInOutStockDO::getInDeptId, reqVO.getInDeptId()) + .eqIfPresent(DeptAssetsInOutStockDO::getOutDeptId, reqVO.getOutDeptId()) + .eqIfPresent(DeptAssetsInOutStockDO::getAssetsId, reqVO.getAssetsId()) + .eqIfPresent(DeptAssetsInOutStockDO::getNum, reqVO.getNum()) + .eqIfPresent(DeptAssetsInOutStockDO::getInOutNo, reqVO.getInOutNo()) + .betweenIfPresent(DeptAssetsInOutStockDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DeptAssetsInOutStockDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/DeptAssetsMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/DeptAssetsMapper.java new file mode 100644 index 00000000..fad89846 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/assets/DeptAssetsMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.system.dal.mysql.assets; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; + +/** + * 部门资产 Mapper + * + * @author 艾楷 + */ +@Mapper +public interface DeptAssetsMapper extends BaseMapperX { + + default PageResult selectPage(DeptAssetsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(DeptAssetsDO::getDeptId, reqVO.getDeptId()) + .eqIfPresent(DeptAssetsDO::getAssetsId, reqVO.getAssetsId()) + .eqIfPresent(DeptAssetsDO::getStatus, reqVO.getStatus()) + .eqIfPresent(DeptAssetsDO::getStock, reqVO.getStock()) + .betweenIfPresent(DeptAssetsDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(DeptAssetsDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentRecordService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentRecordService.java new file mode 100644 index 00000000..24f909e9 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentRecordService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsSecondmentRecordDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 资产借调记录 Service 接口 + * + * @author 艾楷 + */ +public interface AssetsSecondmentRecordService { + + /** + * 创建资产借调记录 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createAssetsSecondmentRecord(@Valid AssetsSecondmentRecordSaveReqVO createReqVO); + + /** + * 更新资产借调记录 + * + * @param updateReqVO 更新信息 + */ + void updateAssetsSecondmentRecord(@Valid AssetsSecondmentRecordSaveReqVO updateReqVO); + + /** + * 删除资产借调记录 + * + * @param id 编号 + */ + void deleteAssetsSecondmentRecord(Long id); + + /** + * 获得资产借调记录 + * + * @param id 编号 + * @return 资产借调记录 + */ + AssetsSecondmentRecordDO getAssetsSecondmentRecord(Long id); + + /** + * 获得资产借调记录分页 + * + * @param pageReqVO 分页查询 + * @return 资产借调记录分页 + */ + PageResult getAssetsSecondmentRecordPage(AssetsSecondmentRecordPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentRecordServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentRecordServiceImpl.java new file mode 100644 index 00000000..4911215b --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentRecordServiceImpl.java @@ -0,0 +1,65 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsSecondmentRecordDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.system.dal.mysql.assets.AssetsSecondmentRecordMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 资产借调记录 Service 实现类 + * + * @author 艾楷 + */ +@Service +@Validated +public class AssetsSecondmentRecordServiceImpl implements AssetsSecondmentRecordService { + + @Resource + private AssetsSecondmentRecordMapper assetsSecondmentRecordMapper; + + @Override + public Long createAssetsSecondmentRecord(AssetsSecondmentRecordSaveReqVO createReqVO) { + // 插入 + AssetsSecondmentRecordDO assetsSecondmentRecord = BeanUtils.toBean(createReqVO, AssetsSecondmentRecordDO.class); + assetsSecondmentRecordMapper.insert(assetsSecondmentRecord); + // 返回 + return assetsSecondmentRecord.getId(); + } + + @Override + public void updateAssetsSecondmentRecord(AssetsSecondmentRecordSaveReqVO updateReqVO) { + // 更新 + AssetsSecondmentRecordDO updateObj = BeanUtils.toBean(updateReqVO, AssetsSecondmentRecordDO.class); + assetsSecondmentRecordMapper.updateById(updateObj); + } + + @Override + public void deleteAssetsSecondmentRecord(Long id) { + // 删除 + assetsSecondmentRecordMapper.deleteById(id); + } + + + @Override + public AssetsSecondmentRecordDO getAssetsSecondmentRecord(Long id) { + return assetsSecondmentRecordMapper.selectById(id); + } + + @Override + public PageResult getAssetsSecondmentRecordPage(AssetsSecondmentRecordPageReqVO pageReqVO) { + return assetsSecondmentRecordMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentService.java new file mode 100644 index 00000000..56711d43 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsSecondmentDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 资产借调 Service 接口 + * + * @author 艾楷 + */ +public interface AssetsSecondmentService { + + /** + * 创建资产借调 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createAssetsSecondment(@Valid AssetsSecondmentSaveReqVO createReqVO); + + /** + * 更新资产借调 + * + * @param updateReqVO 更新信息 + */ + void updateAssetsSecondment(@Valid AssetsSecondmentSaveReqVO updateReqVO); + + /** + * 删除资产借调 + * + * @param id 编号 + */ + void deleteAssetsSecondment(Long id); + + /** + * 获得资产借调 + * + * @param id 编号 + * @return 资产借调 + */ + AssetsSecondmentDO getAssetsSecondment(Long id); + + /** + * 获得资产借调分页 + * + * @param pageReqVO 分页查询 + * @return 资产借调分页 + */ + PageResult getAssetsSecondmentPage(AssetsSecondmentPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentServiceImpl.java new file mode 100644 index 00000000..eae7fa47 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsSecondmentServiceImpl.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsSecondmentDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.system.dal.mysql.assets.AssetsSecondmentMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 资产借调 Service 实现类 + * + * @author 艾楷 + */ +@Service +@Validated +public class AssetsSecondmentServiceImpl implements AssetsSecondmentService { + + @Resource + private AssetsSecondmentMapper assetsSecondmentMapper; + + @Override + public Long createAssetsSecondment(AssetsSecondmentSaveReqVO createReqVO) { + // 插入 + AssetsSecondmentDO assetsSecondment = BeanUtils.toBean(createReqVO, AssetsSecondmentDO.class); + assetsSecondmentMapper.insert(assetsSecondment); + // 返回 + return assetsSecondment.getId(); + } + + @Override + public void updateAssetsSecondment(AssetsSecondmentSaveReqVO updateReqVO) { + // 更新 + AssetsSecondmentDO updateObj = BeanUtils.toBean(updateReqVO, AssetsSecondmentDO.class); + assetsSecondmentMapper.updateById(updateObj); + } + + @Override + public void deleteAssetsSecondment(Long id) { + // 删除 + assetsSecondmentMapper.deleteById(id); + } + + @Override + public AssetsSecondmentDO getAssetsSecondment(Long id) { + return assetsSecondmentMapper.selectById(id); + } + + @Override + public PageResult getAssetsSecondmentPage(AssetsSecondmentPageReqVO pageReqVO) { + return assetsSecondmentMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsService.java new file mode 100644 index 00000000..2b119ca2 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 资产 Service 接口 + * + * @author 艾楷 + */ +public interface AssetsService { + + /** + * 创建资产 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createAssets(@Valid AssetsSaveReqVO createReqVO); + + /** + * 更新资产 + * + * @param updateReqVO 更新信息 + */ + void updateAssets(@Valid AssetsSaveReqVO updateReqVO); + + /** + * 删除资产 + * + * @param id 编号 + */ + void deleteAssets(Long id); + + /** + * 获得资产 + * + * @param id 编号 + * @return 资产 + */ + AssetsDO getAssets(Long id); + + /** + * 获得资产分页 + * + * @param pageReqVO 分页查询 + * @return 资产分页 + */ + PageResult getAssetsPage(AssetsPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsServiceImpl.java new file mode 100644 index 00000000..3fe0945a --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsServiceImpl.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.assets.dto.AssetAllocationDTO; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.AssetsPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.AssetsSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsDO; +import cn.iocoder.yudao.module.system.dal.mysql.assets.AssetsMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.STOCK_EXCEEDS; + +/** + * 资产 Service 实现类 + * + * @author 艾楷 + */ +@Service +@Validated +public class AssetsServiceImpl implements AssetsService { + + @Resource + private AssetsMapper assetsMapper; + @Resource + private DeptAssetsInOutStockService deptAssetsInOutStockService; + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createAssets(AssetsSaveReqVO createReqVO) { + // 插入 + AssetsDO assets = BeanUtils.toBean(createReqVO, AssetsDO.class); + assetsMapper.insert(assets); + // -- 新增后 - 判断列表是否有值 + if (CollectionUtil.isNotEmpty(createReqVO.getAssetAllocationDTOS())) { + int num = createReqVO.getAssetAllocationDTOS().stream().filter(a -> a.getNum() != null).mapToInt(AssetAllocationDTO::getNum).sum(); + if (num > assets.getStock()) { + throw exception(STOCK_EXCEEDS); + } + // -- 新增后 - 插入资产分配表 + deptAssetsInOutStockService.assetAllocation(assets, null, createReqVO.getAssetAllocationDTOS()); + } + // 返回 + return assets.getId(); + } + + @Override + public void updateAssets(AssetsSaveReqVO updateReqVO) { + // 更新 + AssetsDO updateObj = BeanUtils.toBean(updateReqVO, AssetsDO.class); + assetsMapper.updateById(updateObj); + } + + @Override + public void deleteAssets(Long id) { + // 删除 + assetsMapper.deleteById(id); + } + + + @Override + public AssetsDO getAssets(Long id) { + return assetsMapper.selectById(id); + } + + @Override + public PageResult getAssetsPage(AssetsPageReqVO pageReqVO) { + return assetsMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsTypeService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsTypeService.java new file mode 100644 index 00000000..d5cdb5be --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsTypeService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsTypeDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 资产类型 Service 接口 + * + * @author 艾楷 + */ +public interface AssetsTypeService { + + /** + * 创建资产类型 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createAssetsType(@Valid AssetsTypeSaveReqVO createReqVO); + + /** + * 更新资产类型 + * + * @param updateReqVO 更新信息 + */ + void updateAssetsType(@Valid AssetsTypeSaveReqVO updateReqVO); + + /** + * 删除资产类型 + * + * @param id 编号 + */ + void deleteAssetsType(Long id); + + /** + * 获得资产类型 + * + * @param id 编号 + * @return 资产类型 + */ + AssetsTypeDO getAssetsType(Long id); + + /** + * 获得资产类型分页 + * + * @param pageReqVO 分页查询 + * @return 资产类型分页 + */ + PageResult getAssetsTypePage(AssetsTypePageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsTypeServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsTypeServiceImpl.java new file mode 100644 index 00000000..e6c79d63 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/AssetsTypeServiceImpl.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsTypeDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.system.dal.mysql.assets.AssetsTypeMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 资产类型 Service 实现类 + * + * @author 艾楷 + */ +@Service +@Validated +public class AssetsTypeServiceImpl implements AssetsTypeService { + + @Resource + private AssetsTypeMapper assetsTypeMapper; + + @Override + public Long createAssetsType(AssetsTypeSaveReqVO createReqVO) { + // 插入 + AssetsTypeDO assetsType = BeanUtils.toBean(createReqVO, AssetsTypeDO.class); + assetsTypeMapper.insert(assetsType); + // 返回 + return assetsType.getId(); + } + + @Override + public void updateAssetsType(AssetsTypeSaveReqVO updateReqVO) { + // 更新 + AssetsTypeDO updateObj = BeanUtils.toBean(updateReqVO, AssetsTypeDO.class); + assetsTypeMapper.updateById(updateObj); + } + + @Override + public void deleteAssetsType(Long id) { + // 删除 + assetsTypeMapper.deleteById(id); + } + + @Override + public AssetsTypeDO getAssetsType(Long id) { + return assetsTypeMapper.selectById(id); + } + + @Override + public PageResult getAssetsTypePage(AssetsTypePageReqVO pageReqVO) { + return assetsTypeMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockService.java new file mode 100644 index 00000000..3c21b88c --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockService.java @@ -0,0 +1,66 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.assets.dto.AssetAllocationDTO; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.DeptAssetsInOutStockPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.DeptAssetsInOutStockSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsDO; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsInOutStockDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 部门资产出入库 Service 接口 + * + * @author 艾楷 + */ +public interface DeptAssetsInOutStockService { + + /** + * 创建部门资产出入库 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDeptAssetsInOutStock(@Valid DeptAssetsInOutStockSaveReqVO createReqVO); + + /** + * 更新部门资产出入库 + * + * @param updateReqVO 更新信息 + */ + void updateDeptAssetsInOutStock(@Valid DeptAssetsInOutStockSaveReqVO updateReqVO); + + /** + * 删除部门资产出入库 + * + * @param id 编号 + */ + void deleteDeptAssetsInOutStock(Long id); + + /** + * 获得部门资产出入库 + * + * @param id 编号 + * @return 部门资产出入库 + */ + DeptAssetsInOutStockDO getDeptAssetsInOutStock(Long id); + + /** + * 获得部门资产出入库分页 + * + * @param pageReqVO 分页查询 + * @return 部门资产出入库分页 + */ + PageResult getDeptAssetsInOutStockPage(DeptAssetsInOutStockPageReqVO pageReqVO); + + /** + * 记录出入库 + * + * @param assetsDO + * @param outDeptId + * @param assetAllocationDTOS + */ + void assetAllocation(AssetsDO assetsDO, Long outDeptId, List assetAllocationDTOS); +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockServiceImpl.java new file mode 100644 index 00000000..5ffa30d2 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsInOutStockServiceImpl.java @@ -0,0 +1,143 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import cn.hutool.core.collection.CollectionUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.system.controller.admin.assets.dto.AssetAllocationDTO; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.DeptAssetsInOutStockPageReqVO; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.DeptAssetsInOutStockSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.AssetsDO; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsDO; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsInOutStockDO; +import cn.iocoder.yudao.module.system.dal.mysql.assets.AssetsMapper; +import cn.iocoder.yudao.module.system.dal.mysql.assets.DeptAssetsInOutStockMapper; +import cn.iocoder.yudao.module.system.dal.mysql.assets.DeptAssetsMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.STOCK_EXCEEDS; + +/** + * 部门资产出入库 Service 实现类 + * + * @author 艾楷 + */ +@Service +@Validated +public class DeptAssetsInOutStockServiceImpl implements DeptAssetsInOutStockService { + + @Resource + private DeptAssetsInOutStockMapper deptAssetsInOutStockMapper; + @Resource + private AssetsMapper assetsMapper; + @Resource + private DeptAssetsMapper deptAssetsMapper; + + @Override + public Long createDeptAssetsInOutStock(DeptAssetsInOutStockSaveReqVO createReqVO) { + // 插入 + DeptAssetsInOutStockDO deptAssetsInOutStock = BeanUtils.toBean(createReqVO, DeptAssetsInOutStockDO.class); + deptAssetsInOutStockMapper.insert(deptAssetsInOutStock); + // 返回 + return deptAssetsInOutStock.getId(); + } + + @Override + public void updateDeptAssetsInOutStock(DeptAssetsInOutStockSaveReqVO updateReqVO) { + // 更新 + DeptAssetsInOutStockDO updateObj = BeanUtils.toBean(updateReqVO, DeptAssetsInOutStockDO.class); + deptAssetsInOutStockMapper.updateById(updateObj); + } + + @Override + public void deleteDeptAssetsInOutStock(Long id) { + // 删除 + deptAssetsInOutStockMapper.deleteById(id); + } + + @Override + public DeptAssetsInOutStockDO getDeptAssetsInOutStock(Long id) { + return deptAssetsInOutStockMapper.selectById(id); + } + + @Override + public PageResult getDeptAssetsInOutStockPage(DeptAssetsInOutStockPageReqVO pageReqVO) { + return deptAssetsInOutStockMapper.selectPage(pageReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void assetAllocation(AssetsDO assetsDO, Long outDeptId, List assetAllocationDTOS) { + // -- 出库如果是null的话 说明是从系统中扣减的 - 去扣资产的库存 + int num = assetAllocationDTOS.stream().filter(a -> a.getNum() != null).mapToInt(AssetAllocationDTO::getNum).sum(); + if (outDeptId == null) { + if (num > assetsDO.getStock()) { + throw exception(STOCK_EXCEEDS); + } + assetsDO.setStock(assetsDO.getStock() - num); + assetsMapper.updateById(assetsDO); + } else { + // -- 如果有值的话 那就是从部门出库 - 去扣部门的资产库 + DeptAssetsDO deptAssetsDO = deptAssetsMapper.selectById(outDeptId); + if (deptAssetsDO == null) { + deptAssetsDO = DeptAssetsDO.init(outDeptId, assetsDO.getId()); + deptAssetsMapper.insert(deptAssetsDO); + } + if (num > deptAssetsDO.getStock()) { + throw exception(STOCK_EXCEEDS); + } + deptAssetsDO.setStock(deptAssetsDO.getStock() - num); + deptAssetsMapper.updateById(deptAssetsDO); + } + // -- 获取部门资产列表 + + if (CollectionUtil.isNotEmpty(assetAllocationDTOS)) { + List ids = assetAllocationDTOS.stream().map(AssetAllocationDTO::getDeptId).collect(Collectors.toList()); + List deptAssetsDOS = deptAssetsMapper.selectList(new LambdaQueryWrapper() + .eq(DeptAssetsDO::getAssetsId, assetsDO.getId()) + .in(DeptAssetsDO::getDeptId, ids)); + // 根据部门id分组 - 如果没有的话 再临时初始化一个 - 最后再批量新增 + Map map = deptAssetsDOS.stream().collect(Collectors.toMap(DeptAssetsDO::getDeptId, a -> a)); + List saveOrUpdateItem = new ArrayList<>(); + List deptAssetsInOutStockDOS = new ArrayList<>(); + for (AssetAllocationDTO assetAllocationDTO : assetAllocationDTOS) { + DeptAssetsDO deptAssetsItem = map.get(assetAllocationDTO.getDeptId()); + if (deptAssetsItem == null) { + deptAssetsItem = DeptAssetsDO.init(assetAllocationDTO.getDeptId(), assetsDO.getId()); + } + deptAssetsItem.setStock(deptAssetsItem.getStock() + assetAllocationDTO.getNum()); + // saveOrUpdate + saveOrUpdateItem.add(deptAssetsItem); + // -- 添加出入库记录 + + // - 出库 - 入库 记录 + DeptAssetsInOutStockDO outStock = new DeptAssetsInOutStockDO(); + outStock.setInDeptId(assetAllocationDTO.getDeptId()); + outStock.setOutDeptId(outDeptId); + outStock.setAssetsId(assetsDO.getId()); + outStock.setNum(assetAllocationDTO.getNum()); + outStock.setInOutNo(IdWorker.get32UUID()); + deptAssetsInOutStockDOS.add(outStock); + } + + //批量新增修改 + if (!saveOrUpdateItem.isEmpty()) { + deptAssetsMapper.insertOrUpdateBatch(saveOrUpdateItem); + } + //批量新增出入库记录 + if (!deptAssetsInOutStockDOS.isEmpty()) { + deptAssetsInOutStockMapper.insertBatch(deptAssetsInOutStockDOS); + } + } + } +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsService.java new file mode 100644 index 00000000..8bdf2724 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 部门资产 Service 接口 + * + * @author 艾楷 + */ +public interface DeptAssetsService { + + /** + * 创建部门资产 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createDeptAssets(@Valid DeptAssetsSaveReqVO createReqVO); + + /** + * 更新部门资产 + * + * @param updateReqVO 更新信息 + */ + void updateDeptAssets(@Valid DeptAssetsSaveReqVO updateReqVO); + + /** + * 删除部门资产 + * + * @param id 编号 + */ + void deleteDeptAssets(Long id); + + /** + * 获得部门资产 + * + * @param id 编号 + * @return 部门资产 + */ + DeptAssetsDO getDeptAssets(Long id); + + /** + * 获得部门资产分页 + * + * @param pageReqVO 分页查询 + * @return 部门资产分页 + */ + PageResult getDeptAssetsPage(DeptAssetsPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsServiceImpl.java new file mode 100644 index 00000000..3b549f85 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/assets/DeptAssetsServiceImpl.java @@ -0,0 +1,64 @@ +package cn.iocoder.yudao.module.system.service.assets; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.system.controller.admin.assets.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.assets.DeptAssetsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.system.dal.mysql.assets.DeptAssetsMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; + +/** + * 部门资产 Service 实现类 + * + * @author 艾楷 + */ +@Service +@Validated +public class DeptAssetsServiceImpl implements DeptAssetsService { + + @Resource + private DeptAssetsMapper deptAssetsMapper; + + @Override + public Long createDeptAssets(DeptAssetsSaveReqVO createReqVO) { + // 插入 + DeptAssetsDO deptAssets = BeanUtils.toBean(createReqVO, DeptAssetsDO.class); + deptAssetsMapper.insert(deptAssets); + // 返回 + return deptAssets.getId(); + } + + @Override + public void updateDeptAssets(DeptAssetsSaveReqVO updateReqVO) { + // 更新 + DeptAssetsDO updateObj = BeanUtils.toBean(updateReqVO, DeptAssetsDO.class); + deptAssetsMapper.updateById(updateObj); + } + + @Override + public void deleteDeptAssets(Long id) { + // 删除 + deptAssetsMapper.deleteById(id); + } + + @Override + public DeptAssetsDO getDeptAssets(Long id) { + return deptAssetsMapper.selectById(id); + } + + @Override + public PageResult getDeptAssetsPage(DeptAssetsPageReqVO pageReqVO) { + return deptAssetsMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsMapper.xml new file mode 100644 index 00000000..e57f8045 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsSecondmentMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsSecondmentMapper.xml new file mode 100644 index 00000000..17793cd4 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsSecondmentMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsSecondmentRecordMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsSecondmentRecordMapper.xml new file mode 100644 index 00000000..02f7b316 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsSecondmentRecordMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsTypeMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsTypeMapper.xml new file mode 100644 index 00000000..8df76933 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/AssetsTypeMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/DeptAssetsInOutStockMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/DeptAssetsInOutStockMapper.xml new file mode 100644 index 00000000..88f82c72 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/DeptAssetsInOutStockMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/DeptAssetsMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/DeptAssetsMapper.xml new file mode 100644 index 00000000..05daeec4 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/assets/DeptAssetsMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file