From 159def12f65449580e0a7544742f4a156e674b7d Mon Sep 17 00:00:00 2001 From: siontion Date: Sat, 27 Jan 2024 21:34:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=87=BA=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 物料出入库日志 --- .../controller/admin/pn/PnController.java | 197 +++++++------- .../controller/admin/rg/RgController.java | 198 +++++++------- .../admin/storage/StorageController.java | 25 ++ .../storagelog/StorageLogController.java | 191 +++++++------- .../storagelog/vo/StorageLogPageReqVO.java | 42 +-- .../admin/storagelog/vo/StorageLogRespVO.java | 35 +++ .../admin/warehouse/WarehouseController.java | 8 + .../storagelogAll/StorageLogAllDO.java | 66 +++++ .../module/heli/dal/mysql/pn/PnMapper.java | 8 + .../module/heli/dal/mysql/rg/RgMapper.java | 9 + .../mysql/storagelog/StorageLogAllMapper.java | 42 +++ .../mysql/storagelog/StorageLogMapper.java | 50 ++-- .../mysql/storagemat/StorageMatMapper.java | 13 + .../dal/mysql/warehouse/WarehouseMapper.java | 9 + .../mes/module/heli/service/pn/PnService.java | 113 ++++---- .../module/heli/service/pn/PnServiceImpl.java | 153 +++++------ .../mes/module/heli/service/rg/RgService.java | 112 ++++---- .../module/heli/service/rg/RgServiceImpl.java | 153 +++++------ .../service/storagelog/StorageLogService.java | 114 ++++---- .../storagelog/StorageLogServiceImpl.java | 160 +++++------ .../service/storagemat/StorageMatService.java | 4 +- .../storagemat/StorageMatServiceImpl.java | 9 +- .../service/warehouse/WarehouseService.java | 2 + .../warehouse/WarehouseServiceImpl.java | 4 + .../mapper/storagelog/StorageLogAllMapper.xml | 58 ++++ .../mapper/storagelog/StorageLogMapper.xml | 4 +- .../src/api/heli/pn/index.ts | 87 +++--- .../src/api/heli/rg/index.ts | 85 +++--- .../src/api/heli/warehouse/index.ts | 4 + mes-ui/mes-ui-admin-vue3/src/utils/dict.ts | 1 + .../src/views/heli/storagelog/index.vue | 249 ++++++------------ 31 files changed, 1228 insertions(+), 977 deletions(-) create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelogAll/StorageLogAllDO.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogAllMapper.java create mode 100644 mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogAllMapper.xml diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/pn/PnController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/pn/PnController.java index 1992bad7..8efc8f2f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/pn/PnController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/pn/PnController.java @@ -1,95 +1,102 @@ -package com.chanko.yunxi.mes.module.heli.controller.admin.pn; - -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 com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; -import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; - -import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; - -import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; -import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.chanko.yunxi.mes.module.heli.controller.admin.pn.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; -import com.chanko.yunxi.mes.module.heli.service.pn.PnService; - -@Tag(name = "管理后台 - 库位") -@RestController -@RequestMapping("/heli/pn") -@Validated -public class PnController { - - @Resource - private PnService pnService; - - @PostMapping("/create") - @Operation(summary = "创建库位") - @PreAuthorize("@ss.hasPermission('heli:pn:create')") - public CommonResult createPn(@Valid @RequestBody PnSaveReqVO createReqVO) { - return success(pnService.createPn(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新库位") - @PreAuthorize("@ss.hasPermission('heli:pn:update')") - public CommonResult updatePn(@Valid @RequestBody PnSaveReqVO updateReqVO) { - pnService.updatePn(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除库位") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('heli:pn:delete')") - public CommonResult deletePn(@RequestParam("id") Long id) { - pnService.deletePn(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得库位") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('heli:pn:query')") - public CommonResult getPn(@RequestParam("id") Long id) { - PnDO pn = pnService.getPn(id); - return success(BeanUtils.toBean(pn, PnRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得库位分页") - @PreAuthorize("@ss.hasPermission('heli:pn:query')") - public CommonResult> getPnPage(@Valid PnPageReqVO pageReqVO) { - PageResult pageResult = pnService.getPnPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, PnRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出库位 Excel") - @PreAuthorize("@ss.hasPermission('heli:pn:export')") - @OperateLog(type = EXPORT) - public void exportPnExcel(@Valid PnPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = pnService.getPnPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "库位.xls", "数据", PnRespVO.class, - BeanUtils.toBean(list, PnRespVO.class)); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.controller.admin.pn; + +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; +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 com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.pn.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; +import com.chanko.yunxi.mes.module.heli.service.pn.PnService; + +@Tag(name = "管理后台 - 库位") +@RestController +@RequestMapping("/heli/pn") +@Validated +public class PnController { + + @Resource + private PnService pnService; + + @PostMapping("/create") + @Operation(summary = "创建库位") + @PreAuthorize("@ss.hasPermission('heli:pn:create')") + public CommonResult createPn(@Valid @RequestBody PnSaveReqVO createReqVO) { + return success(pnService.createPn(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新库位") + @PreAuthorize("@ss.hasPermission('heli:pn:update')") + public CommonResult updatePn(@Valid @RequestBody PnSaveReqVO updateReqVO) { + pnService.updatePn(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除库位") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:pn:delete')") + public CommonResult deletePn(@RequestParam("id") Long id) { + pnService.deletePn(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得库位") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:pn:query')") + public CommonResult getPn(@RequestParam("id") Long id) { + PnDO pn = pnService.getPn(id); + return success(BeanUtils.toBean(pn, PnRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得库位分页") + @PreAuthorize("@ss.hasPermission('heli:pn:query')") + public CommonResult> getPnPage(@Valid PnPageReqVO pageReqVO) { + PageResult pageResult = pnService.getPnPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PnRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出库位 Excel") + @PreAuthorize("@ss.hasPermission('heli:pn:export')") + @OperateLog(type = EXPORT) + public void exportPnExcel(@Valid PnPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = pnService.getPnPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "库位.xls", "数据", PnRespVO.class, + BeanUtils.toBean(list, PnRespVO.class)); + } + @GetMapping({"/all-simples"}) + @Operation(summary = "TODO:获取仓库精简信息列表", description = "只包含被开启的仓库,主要用于前端的下拉选项") + public CommonResult> > getSimpleList() { + List> list = pnService.getSimpleList(); + // 拼接数据 + return success(list); + } +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/rg/RgController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/rg/RgController.java index 7d3a93ff..1f5aaf2f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/rg/RgController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/rg/RgController.java @@ -1,95 +1,103 @@ -package com.chanko.yunxi.mes.module.heli.controller.admin.rg; - -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 com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; -import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; - -import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; - -import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; -import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.chanko.yunxi.mes.module.heli.controller.admin.rg.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; -import com.chanko.yunxi.mes.module.heli.service.rg.RgService; - -@Tag(name = "管理后台 - 库区") -@RestController -@RequestMapping("/heli/rg") -@Validated -public class RgController { - - @Resource - private RgService rgService; - - @PostMapping("/create") - @Operation(summary = "创建库区") - @PreAuthorize("@ss.hasPermission('heli:rg:create')") - public CommonResult createRg(@Valid @RequestBody RgSaveReqVO createReqVO) { - return success(rgService.createRg(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新库区") - @PreAuthorize("@ss.hasPermission('heli:rg:update')") - public CommonResult updateRg(@Valid @RequestBody RgSaveReqVO updateReqVO) { - rgService.updateRg(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除库区") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('heli:rg:delete')") - public CommonResult deleteRg(@RequestParam("id") Long id) { - rgService.deleteRg(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得库区") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('heli:rg:query')") - public CommonResult getRg(@RequestParam("id") Long id) { - RgDO rg = rgService.getRg(id); - return success(BeanUtils.toBean(rg, RgRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得库区分页") - @PreAuthorize("@ss.hasPermission('heli:rg:query')") - public CommonResult> getRgPage(@Valid RgPageReqVO pageReqVO) { - PageResult pageResult = rgService.getRgPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, RgRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出库区 Excel") - @PreAuthorize("@ss.hasPermission('heli:rg:export')") - @OperateLog(type = EXPORT) - public void exportRgExcel(@Valid RgPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = rgService.getRgPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "库区.xls", "数据", RgRespVO.class, - BeanUtils.toBean(list, RgRespVO.class)); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.controller.admin.rg; + +import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO; +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 com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.rg.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; +import com.chanko.yunxi.mes.module.heli.service.rg.RgService; + +@Tag(name = "管理后台 - 库区") +@RestController +@RequestMapping("/heli/rg") +@Validated +public class RgController { + + @Resource + private RgService rgService; + + @PostMapping("/create") + @Operation(summary = "创建库区") + @PreAuthorize("@ss.hasPermission('heli:rg:create')") + public CommonResult createRg(@Valid @RequestBody RgSaveReqVO createReqVO) { + return success(rgService.createRg(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新库区") + @PreAuthorize("@ss.hasPermission('heli:rg:update')") + public CommonResult updateRg(@Valid @RequestBody RgSaveReqVO updateReqVO) { + rgService.updateRg(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除库区") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:rg:delete')") + public CommonResult deleteRg(@RequestParam("id") Long id) { + rgService.deleteRg(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得库区") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:rg:query')") + public CommonResult getRg(@RequestParam("id") Long id) { + RgDO rg = rgService.getRg(id); + return success(BeanUtils.toBean(rg, RgRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得库区分页") + @PreAuthorize("@ss.hasPermission('heli:rg:query')") + public CommonResult> getRgPage(@Valid RgPageReqVO pageReqVO) { + PageResult pageResult = rgService.getRgPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, RgRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出库区 Excel") + @PreAuthorize("@ss.hasPermission('heli:rg:export')") + @OperateLog(type = EXPORT) + public void exportRgExcel(@Valid RgPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = rgService.getRgPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "库区.xls", "数据", RgRespVO.class, + BeanUtils.toBean(list, RgRespVO.class)); + } + + @GetMapping({"/all-simples"}) + @Operation(summary = "TODO:获取仓库精简信息列表", description = "只包含被开启的仓库,主要用于前端的下拉选项") + public CommonResult> > getSimpleList() { + List> list = rgService.getSimpleList(); + // 拼接数据 + return success(list); + } +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java index 1eeed880..db67486a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java @@ -1,5 +1,9 @@ package com.chanko.yunxi.mes.module.heli.controller.admin.storage; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; +import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService; +import com.chanko.yunxi.mes.module.heli.service.storagemat.StorageMatService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -39,6 +43,12 @@ public class StorageController { @Resource private StorageService storageService; + @Resource + private StorageMatService storageMatService; + + @Resource + private StorageLogService storageLogService; + @PostMapping("/create") @Operation(summary = "创建入/出库") @PreAuthorize("@ss.hasPermission('heli:storage:create')") @@ -57,9 +67,12 @@ public class StorageController { @Operation(summary = "更新入/出库") @PreAuthorize("@ss.hasPermission('heli:storage:update')") public CommonResult updateStorageStatus(@Valid @RequestBody StorageSaveReqVO updateReqVO) { + + // 获取最新的出入库信息 StorageDO targetDo = storageService.getStorage(updateReqVO.getId()); targetDo.setStatus(updateReqVO.getStatus()); + // 提交或者作废时记录相关操作人 LocalDateTime currTime = LocalDateTime.now(); if(updateReqVO.getStatus().equals(2) && updateReqVO.getStockType().equals(1)){ targetDo.setKeeper(updateReqVO.getKeeper()); @@ -74,6 +87,18 @@ public class StorageController { updateReqVO = BeanUtils.toBean(targetDo, StorageSaveReqVO.class); storageService.updateStorage(updateReqVO); + + // 获取当前库存下所有物料信息 + List matList = storageMatService.getStorageMatListByStockId(targetDo.getId()); + // 将物料信息转化日志信息 + List logList = BeanUtils.toBean(matList,StorageLogDO.class); + // 同步库存单状态到日志,便于以后统计 + for (StorageLogDO log : logList){ + log.setStatus(targetDo.getStatus()); + } + // 批量保存当前库存物料日志信息 + storageLogService.createStorageLogBatch(logList); + return success(true); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java index 8d1b3883..9ca23bce 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/StorageLogController.java @@ -1,95 +1,96 @@ -package com.chanko.yunxi.mes.module.heli.controller.admin.storagelog; - -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 com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; -import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; - -import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; - -import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; -import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; -import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService; - -@Tag(name = "管理后台 - 入/出库日志") -@RestController -@RequestMapping("/heli/storage-log") -@Validated -public class StorageLogController { - - @Resource - private StorageLogService storageLogService; - - @PostMapping("/create") - @Operation(summary = "创建入/出库日志") - @PreAuthorize("@ss.hasPermission('heli:storage-log:create')") - public CommonResult createStorageLog(@Valid @RequestBody StorageLogSaveReqVO createReqVO) { - return success(storageLogService.createStorageLog(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新入/出库日志") - @PreAuthorize("@ss.hasPermission('heli:storage-log:update')") - public CommonResult updateStorageLog(@Valid @RequestBody StorageLogSaveReqVO updateReqVO) { - storageLogService.updateStorageLog(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除入/出库日志") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('heli:storage-log:delete')") - public CommonResult deleteStorageLog(@RequestParam("id") Long id) { - storageLogService.deleteStorageLog(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得入/出库日志") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('heli:storage-log:query')") - public CommonResult getStorageLog(@RequestParam("id") Long id) { - StorageLogDO storageLog = storageLogService.getStorageLog(id); - return success(BeanUtils.toBean(storageLog, StorageLogRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得入/出库日志分页") - @PreAuthorize("@ss.hasPermission('heli:storage-log:query')") - public CommonResult> getStorageLogPage(@Valid StorageLogPageReqVO pageReqVO) { - PageResult pageResult = storageLogService.getStorageLogPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, StorageLogRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出入/出库日志 Excel") - @PreAuthorize("@ss.hasPermission('heli:storage-log:export')") - @OperateLog(type = EXPORT) - public void exportStorageLogExcel(@Valid StorageLogPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = storageLogService.getStorageLogPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "入/出库日志.xls", "数据", StorageLogRespVO.class, - BeanUtils.toBean(list, StorageLogRespVO.class)); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.controller.admin.storagelog; + +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogAll.StorageLogAllDO; +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 com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; +import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService; + +@Tag(name = "管理后台 - 入/出库日志") +@RestController +@RequestMapping("/heli/storage-log") +@Validated +public class StorageLogController { + + @Resource + private StorageLogService storageLogService; + + @PostMapping("/create") + @Operation(summary = "创建入/出库日志") + @PreAuthorize("@ss.hasPermission('heli:storage-log:create')") + public CommonResult createStorageLog(@Valid @RequestBody StorageLogSaveReqVO createReqVO) { + return success(storageLogService.createStorageLog(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新入/出库日志") + @PreAuthorize("@ss.hasPermission('heli:storage-log:update')") + public CommonResult updateStorageLog(@Valid @RequestBody StorageLogSaveReqVO updateReqVO) { + storageLogService.updateStorageLog(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除入/出库日志") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('heli:storage-log:delete')") + public CommonResult deleteStorageLog(@RequestParam("id") Long id) { + storageLogService.deleteStorageLog(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得入/出库日志") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('heli:storage-log:query')") + public CommonResult getStorageLog(@RequestParam("id") Long id) { + StorageLogDO storageLog = storageLogService.getStorageLog(id); + return success(BeanUtils.toBean(storageLog, StorageLogRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得入/出库日志分页") + @PreAuthorize("@ss.hasPermission('heli:storage-log:query')") + public CommonResult> getStorageLogPage(@Valid StorageLogPageReqVO pageReqVO) { + PageResult pageResult = storageLogService.getStorageLogPage(pageReqVO); + return success(pageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出入/出库日志 Excel") + @PreAuthorize("@ss.hasPermission('heli:storage-log:export')") + @OperateLog(type = EXPORT) + public void exportStorageLogExcel(@Valid StorageLogPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = storageLogService.getStorageLogPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "入/出库日志.xls", "数据", StorageLogRespVO.class, + BeanUtils.toBean(list, StorageLogRespVO.class)); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogPageReqVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogPageReqVO.java index da341cc6..e046a78f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogPageReqVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogPageReqVO.java @@ -16,45 +16,27 @@ import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_Y @ToString(callSuper = true) public class StorageLogPageReqVO extends PageParam { - @Schema(description = "入/出库Id", example = "3528") - private Long stockId; + @Schema(description = "物料编码") + private String matCode; - @Schema(description = "物料 Id,对应 base_material表中的 Id 列", example = "21832") - private Long matId; + @Schema(description = "物料名称") + private String matName; - @Schema(description = "仓库 Id,对应 wms_wh 表中的Id", example = "3") - private Long whId; - - @Schema(description = "库区 Id,对应 wms_rg 表中的Id", example = "15108") - private Long rgId; - - @Schema(description = "库区 Id,对应 wms_rg 表中的Id", example = "3954") - private Long pnId; - - @Schema(description = "库存良品数量") - private BigDecimal storageOkQty; + @Schema(description = "物料类型") + private String matType; @Schema(description = "批次号") private String lotNo; - @Schema(description = "状态") - private String status; - - @Schema(description = "备注", example = "你说的对") - private String description; + @Schema(description = "业务单据编号") + private String stockNo; - @Schema(description = "记录的创建人,对应员工表中的 Id") - private String creator; + @Schema(description = "上游单据编号") + private String headerNo; - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; + @Schema(description = "出入库类型") + private Integer stockType; - @Schema(description = "记录的修改人,对应员工表中的 Id") - private String updater; - @Schema(description = "更新时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] updateTime; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogRespVO.java index 3c6a2d4a..a953e650 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storagelog/vo/StorageLogRespVO.java @@ -54,4 +54,39 @@ public class StorageLogRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "业务编号") + @ExcelProperty("业务编号") + private String stockNo; + + @Schema(description = "业务类型") + @ExcelProperty("业务类型") + private Integer stockType; + + @Schema(description = "上游业务编号") + @ExcelProperty("上游业务编号") + private String headerNo; + + @Schema(description = "物料名称") + @ExcelProperty("物料名称") + private String matName; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String matCode; + + @Schema(description = "物料类型") + @ExcelProperty("物料类型") + private String matType; + + @Schema(description = "仓库名称") + @ExcelProperty("物料类型") + private String whName; + + @Schema(description = "库区名称") + @ExcelProperty("物料类型") + private String rgName; + + @Schema(description = "库位名称") + @ExcelProperty("物料类型") + private String pnName; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/warehouse/WarehouseController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/warehouse/WarehouseController.java index f520c3ad..8a3f59bf 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/warehouse/WarehouseController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/warehouse/WarehouseController.java @@ -106,4 +106,12 @@ public class WarehouseController { // 拼接数据 return success(BeanUtils.toBean(list, WarehouseDO.class)); } + + @GetMapping({"/all-simples"}) + @Operation(summary = "TODO:获取仓库精简信息列表", description = "只包含被开启的仓库,主要用于前端的下拉选项") + public CommonResult> > getSimpleList() { + List> list = warehouseService.getSimpleList(); + // 拼接数据 + return success(list); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelogAll/StorageLogAllDO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelogAll/StorageLogAllDO.java new file mode 100644 index 00000000..d04d8dfa --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/dataobject/storagelogAll/StorageLogAllDO.java @@ -0,0 +1,66 @@ +package com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogAll; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 入/出库日志 DO + * + * @author 管理员 + */ +@TableName("v_storage_material_log") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class StorageLogAllDO extends BaseDO { + + /** + * 主键id + */ + @TableId + private Long id; + + /** + * 库存良品数量 + */ + private BigDecimal storageOkQty; + /** + * 批次号 + */ + private String lotNo; + + private String stockNo; + + private Integer stockType; + + private String stockTypeName; + + private String headerNo; + + private String matName; + + private String matCode; + + private String matType; + + private String whName; + + private String rgName; + + private String pnName; + + private String shortName; + + private String matSpec; + private String matBrand; + private String matUnit; +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/pn/PnMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/pn/PnMapper.java index 569e9830..d1c931d3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/pn/PnMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/pn/PnMapper.java @@ -2,10 +2,14 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.pn; import java.util.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.query.QueryWrapperX; import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.pn.vo.*; @@ -31,5 +35,9 @@ public interface PnMapper extends BaseMapperX { .eqIfPresent(PnDO::getWhId, reqVO.getWhId()) .orderByDesc(PnDO::getId)); } + default List> selectSimpleList() { + return selectMaps(new QueryWrapper().select("id", "pn_name").lambda()); + + } } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/rg/RgMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/rg/RgMapper.java index e466a96d..de43c580 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/rg/RgMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/rg/RgMapper.java @@ -2,10 +2,13 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.rg; import java.util.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.query.QueryWrapperX; import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.rg.vo.*; @@ -30,4 +33,10 @@ public interface RgMapper extends BaseMapperX { .orderByDesc(RgDO::getId)); } + default List> selectSimpleList() { + + return selectMaps(new QueryWrapper().select("id", "rg_name").lambda()); + + } + } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogAllMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogAllMapper.java new file mode 100644 index 00000000..1fcd61a0 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogAllMapper.java @@ -0,0 +1,42 @@ +package com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog; + +import com.alibaba.druid.util.StringUtils; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.StorageLogPageReqVO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogAll.StorageLogAllDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 入/出库日志 Mapper + * + * @author 管理员 + */ +@Mapper +public interface StorageLogAllMapper extends BaseMapperX { + + default PageResult selectPage(StorageLogPageReqVO reqVO) { + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + + query.selectAll(StorageLogAllDO.class) + .orderByDesc(StorageLogAllDO::getId); + + query.like(!StringUtils.isEmpty(reqVO.getMatType()),StorageLogAllDO::getMatType, reqVO.getMatType()) + .eq(reqVO.getStockType()!= null,StorageLogAllDO::getStockType, reqVO.getStockType()) + .like(!StringUtils.isEmpty(reqVO.getMatName()), StorageLogAllDO::getMatName, reqVO.getMatName()) + .like(!StringUtils.isEmpty(reqVO.getMatCode()), StorageLogAllDO::getMatCode, reqVO.getMatCode()) + .like(!StringUtils.isEmpty(reqVO.getStockNo()), StorageLogAllDO::getStockNo, reqVO.getStockNo()) + .like(!StringUtils.isEmpty(reqVO.getHeaderNo()), StorageLogAllDO::getHeaderNo, reqVO.getHeaderNo()) + .like(!StringUtils.isEmpty(reqVO.getLotNo()),StorageLogAllDO::getLotNo, reqVO.getLotNo()); + + return selectPage(reqVO,query); + } + PageResult selectAllPage(StorageLogPageReqVO reqVO); +} \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogMapper.java index 22ccdcc5..ffef076e 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagelog/StorageLogMapper.java @@ -3,11 +3,18 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog; import java.util.*; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogAll.StorageLogAllDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; +import org.springframework.util.StringUtils; /** * 入/出库日志 Mapper @@ -17,21 +24,28 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; @Mapper public interface StorageLogMapper extends BaseMapperX { - default PageResult selectPage(StorageLogPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(StorageLogDO::getStockId, reqVO.getStockId()) - .eqIfPresent(StorageLogDO::getMatId, reqVO.getMatId()) - .eqIfPresent(StorageLogDO::getWhId, reqVO.getWhId()) - .eqIfPresent(StorageLogDO::getRgId, reqVO.getRgId()) - .eqIfPresent(StorageLogDO::getPnId, reqVO.getPnId()) - .eqIfPresent(StorageLogDO::getStorageOkQty, reqVO.getStorageOkQty()) - .eqIfPresent(StorageLogDO::getLotNo, reqVO.getLotNo()) - .eqIfPresent(StorageLogDO::getDescription, reqVO.getDescription()) - .eqIfPresent(StorageLogDO::getCreator, reqVO.getCreator()) - .betweenIfPresent(StorageLogDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(StorageLogDO::getUpdater, reqVO.getUpdater()) - .betweenIfPresent(StorageLogDO::getUpdateTime, reqVO.getUpdateTime()) - .orderByDesc(StorageLogDO::getId)); - } - +// default PageResult selectPage(StorageLogPageReqVO reqVO) { +// MPJLambdaWrapper query = new MPJLambdaWrapper<>(); +// +// query.selectAll(StorageLogDO.class) +// .select("st.stock_no as stockNo", "st.stock_type as stockType","st.header_no as headerNo", "mat.name as matName","mat.code as matCode","mat.material_type as matType","wh.wh_name as whName","rg.rg_name as rgName","pn.pn_name as pnName") +// .leftJoin(StorageDO.class, "st", StorageDO::getId, StorageLogDO::getStockId) +// .leftJoin(MaterialDO.class,"mat", MaterialDO::getId,StorageLogDO::getMatId) +// .leftJoin(WarehouseDO.class,"wh", WarehouseDO::getId,StorageLogDO::getWhId) +// .leftJoin(RgDO.class,"rg", RgDO::getId,StorageLogDO::getRgId) +// .leftJoin(PnDO.class,"pn", PnDO::getId,StorageLogDO::getPnId) +// .disableSubLogicDel() +// .orderByDesc(StorageLogDO::getId); +// +// query.eq(reqVO.getMatType() != null,"mat.material_type", reqVO.getMatType()) +// .eq(reqVO.getStockType() != null,"st.stock_type", reqVO.getStockType()) +// .like(!StringUtils.isEmpty(reqVO.getMatName()), "mat.name", reqVO.getMatName()) +// .like(!StringUtils.isEmpty(reqVO.getMatCode()), "mat.code", reqVO.getMatCode()) +// .like(!StringUtils.isEmpty(reqVO.getStockNo()), "st.stock_no", reqVO.getStockNo()) +// .like(!StringUtils.isEmpty(reqVO.getHeaderNo()), "st.header_no", reqVO.getHeaderNo()) +// .like(!StringUtils.isEmpty(reqVO.getLotNo()),StorageLogDO::getLotNo, reqVO.getLotNo()); +// +// return selectPage(reqVO); +// } + //PageResult selectAllPage(StorageLogPageReqVO reqVO); } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagemat/StorageMatMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagemat/StorageMatMapper.java index 22be3ced..ce146ab1 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagemat/StorageMatMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/storagemat/StorageMatMapper.java @@ -2,10 +2,15 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat; import java.util.*; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO; +import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.chanko.yunxi.mes.module.heli.controller.admin.storagemat.vo.*; @@ -33,5 +38,13 @@ public interface StorageMatMapper extends BaseMapperX { .betweenIfPresent(StorageMatDO::getUpdateTime, reqVO.getUpdateTime()) .orderByDesc(StorageMatDO::getId)); } + + default List selectMatByStorckID(Long stockId) { + + MPJLambdaWrapper query = new MPJLambdaWrapper<>(); + query.selectAll(StorageMatDO.class) + .eq(StorageMatDO::getStockId, stockId); + return selectList(query); + } List selectStorageMatValid(); } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/warehouse/WarehouseMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/warehouse/WarehouseMapper.java index 64148440..8cf5f934 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/warehouse/WarehouseMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/warehouse/WarehouseMapper.java @@ -2,9 +2,12 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.warehouse; import java.util.*; +import cn.hutool.core.lang.Dict; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.chanko.yunxi.mes.framework.common.pojo.PageResult; import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.query.QueryWrapperX; import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO; import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO; import org.apache.ibatis.annotations.Mapper; @@ -36,4 +39,10 @@ public interface WarehouseMapper extends BaseMapperX { default List selectListByStatus(Integer wStatus) { return selectList(WarehouseDO::getWhStatus, wStatus); } + + default List> selectSimpleList() { + + return selectMaps(new QueryWrapper().select("id", "wh_name").lambda()); + + } } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pn/PnService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pn/PnService.java index 7a30460e..ef4bfa50 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pn/PnService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pn/PnService.java @@ -1,55 +1,58 @@ -package com.chanko.yunxi.mes.module.heli.service.pn; - -import java.util.*; -import javax.validation.*; -import com.chanko.yunxi.mes.module.heli.controller.admin.pn.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; - -/** - * 库位 Service 接口 - * - * @author 管理员 - */ -public interface PnService { - - /** - * 创建库位 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createPn(@Valid PnSaveReqVO createReqVO); - - /** - * 更新库位 - * - * @param updateReqVO 更新信息 - */ - void updatePn(@Valid PnSaveReqVO updateReqVO); - - /** - * 删除库位 - * - * @param id 编号 - */ - void deletePn(Long id); - - /** - * 获得库位 - * - * @param id 编号 - * @return 库位 - */ - PnDO getPn(Long id); - - /** - * 获得库位分页 - * - * @param pageReqVO 分页查询 - * @return 库位分页 - */ - PageResult getPnPage(PnPageReqVO pageReqVO); - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.pn; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.pn.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; + +/** + * 库位 Service 接口 + * + * @author 管理员 + */ +public interface PnService { + + /** + * 创建库位 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPn(@Valid PnSaveReqVO createReqVO); + + /** + * 更新库位 + * + * @param updateReqVO 更新信息 + */ + void updatePn(@Valid PnSaveReqVO updateReqVO); + + /** + * 删除库位 + * + * @param id 编号 + */ + void deletePn(Long id); + + /** + * 获得库位 + * + * @param id 编号 + * @return 库位 + */ + PnDO getPn(Long id); + + /** + * 获得库位分页 + * + * @param pageReqVO 分页查询 + * @return 库位分页 + */ + PageResult getPnPage(PnPageReqVO pageReqVO); + + List> getSimpleList(); + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pn/PnServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pn/PnServiceImpl.java index ddac994c..09571aa9 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pn/PnServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/pn/PnServiceImpl.java @@ -1,74 +1,79 @@ -package com.chanko.yunxi.mes.module.heli.service.pn; - -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 com.chanko.yunxi.mes.module.heli.controller.admin.pn.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import com.chanko.yunxi.mes.module.heli.dal.mysql.pn.PnMapper; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; - -/** - * 库位 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class PnServiceImpl implements PnService { - - @Resource - private PnMapper pnMapper; - - @Override - public Long createPn(PnSaveReqVO createReqVO) { - // 插入 - PnDO pn = BeanUtils.toBean(createReqVO, PnDO.class); - pnMapper.insert(pn); - // 返回 - return pn.getId(); - } - - @Override - public void updatePn(PnSaveReqVO updateReqVO) { - // 校验存在 - validatePnExists(updateReqVO.getId()); - // 更新 - PnDO updateObj = BeanUtils.toBean(updateReqVO, PnDO.class); - pnMapper.updateById(updateObj); - } - - @Override - public void deletePn(Long id) { - // 校验存在 - validatePnExists(id); - // 删除 - pnMapper.deleteById(id); - } - - private void validatePnExists(Long id) { - if (pnMapper.selectById(id) == null) { - throw exception(PN_NOT_EXISTS); - } - } - - @Override - public PnDO getPn(Long id) { - return pnMapper.selectById(id); - } - - @Override - public PageResult getPnPage(PnPageReqVO pageReqVO) { - return pnMapper.selectPage(pageReqVO); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.pn; + +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; +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 com.chanko.yunxi.mes.module.heli.controller.admin.pn.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.pn.PnMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 库位 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class PnServiceImpl implements PnService { + + @Resource + private PnMapper pnMapper; + + @Override + public Long createPn(PnSaveReqVO createReqVO) { + // 插入 + PnDO pn = BeanUtils.toBean(createReqVO, PnDO.class); + pnMapper.insert(pn); + // 返回 + return pn.getId(); + } + + @Override + public void updatePn(PnSaveReqVO updateReqVO) { + // 校验存在 + validatePnExists(updateReqVO.getId()); + // 更新 + PnDO updateObj = BeanUtils.toBean(updateReqVO, PnDO.class); + pnMapper.updateById(updateObj); + } + + @Override + public void deletePn(Long id) { + // 校验存在 + validatePnExists(id); + // 删除 + pnMapper.deleteById(id); + } + + private void validatePnExists(Long id) { + if (pnMapper.selectById(id) == null) { + throw exception(PN_NOT_EXISTS); + } + } + + @Override + public PnDO getPn(Long id) { + return pnMapper.selectById(id); + } + + @Override + public PageResult getPnPage(PnPageReqVO pageReqVO) { + return pnMapper.selectPage(pageReqVO); + } + + @Override + public List> getSimpleList() { + return pnMapper.selectSimpleList(); + } +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/rg/RgService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/rg/RgService.java index 9a403198..699f5cec 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/rg/RgService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/rg/RgService.java @@ -1,55 +1,57 @@ -package com.chanko.yunxi.mes.module.heli.service.rg; - -import java.util.*; -import javax.validation.*; -import com.chanko.yunxi.mes.module.heli.controller.admin.rg.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; - -/** - * 库区 Service 接口 - * - * @author 管理员 - */ -public interface RgService { - - /** - * 创建库区 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createRg(@Valid RgSaveReqVO createReqVO); - - /** - * 更新库区 - * - * @param updateReqVO 更新信息 - */ - void updateRg(@Valid RgSaveReqVO updateReqVO); - - /** - * 删除库区 - * - * @param id 编号 - */ - void deleteRg(Long id); - - /** - * 获得库区 - * - * @param id 编号 - * @return 库区 - */ - RgDO getRg(Long id); - - /** - * 获得库区分页 - * - * @param pageReqVO 分页查询 - * @return 库区分页 - */ - PageResult getRgPage(RgPageReqVO pageReqVO); - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.rg; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.rg.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO; + +/** + * 库区 Service 接口 + * + * @author 管理员 + */ +public interface RgService { + + /** + * 创建库区 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createRg(@Valid RgSaveReqVO createReqVO); + + /** + * 更新库区 + * + * @param updateReqVO 更新信息 + */ + void updateRg(@Valid RgSaveReqVO updateReqVO); + + /** + * 删除库区 + * + * @param id 编号 + */ + void deleteRg(Long id); + + /** + * 获得库区 + * + * @param id 编号 + * @return 库区 + */ + RgDO getRg(Long id); + + /** + * 获得库区分页 + * + * @param pageReqVO 分页查询 + * @return 库区分页 + */ + PageResult getRgPage(RgPageReqVO pageReqVO); + + List> getSimpleList(); +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/rg/RgServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/rg/RgServiceImpl.java index 8f6dbd5f..f61b037a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/rg/RgServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/rg/RgServiceImpl.java @@ -1,74 +1,79 @@ -package com.chanko.yunxi.mes.module.heli.service.rg; - -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 com.chanko.yunxi.mes.module.heli.controller.admin.rg.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import com.chanko.yunxi.mes.module.heli.dal.mysql.rg.RgMapper; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; - -/** - * 库区 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class RgServiceImpl implements RgService { - - @Resource - private RgMapper rgMapper; - - @Override - public Long createRg(RgSaveReqVO createReqVO) { - // 插入 - RgDO rg = BeanUtils.toBean(createReqVO, RgDO.class); - rgMapper.insert(rg); - // 返回 - return rg.getId(); - } - - @Override - public void updateRg(RgSaveReqVO updateReqVO) { - // 校验存在 - validateRgExists(updateReqVO.getId()); - // 更新 - RgDO updateObj = BeanUtils.toBean(updateReqVO, RgDO.class); - rgMapper.updateById(updateObj); - } - - @Override - public void deleteRg(Long id) { - // 校验存在 - validateRgExists(id); - // 删除 - rgMapper.deleteById(id); - } - - private void validateRgExists(Long id) { - if (rgMapper.selectById(id) == null) { - throw exception(RG_NOT_EXISTS); - } - } - - @Override - public RgDO getRg(Long id) { - return rgMapper.selectById(id); - } - - @Override - public PageResult getRgPage(RgPageReqVO pageReqVO) { - return rgMapper.selectPage(pageReqVO); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.rg; + +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 com.chanko.yunxi.mes.module.heli.controller.admin.rg.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.rg.RgMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 库区 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class RgServiceImpl implements RgService { + + @Resource + private RgMapper rgMapper; + + @Override + public Long createRg(RgSaveReqVO createReqVO) { + // 插入 + RgDO rg = BeanUtils.toBean(createReqVO, RgDO.class); + rgMapper.insert(rg); + // 返回 + return rg.getId(); + } + + @Override + public void updateRg(RgSaveReqVO updateReqVO) { + // 校验存在 + validateRgExists(updateReqVO.getId()); + // 更新 + RgDO updateObj = BeanUtils.toBean(updateReqVO, RgDO.class); + rgMapper.updateById(updateObj); + } + + @Override + public void deleteRg(Long id) { + // 校验存在 + validateRgExists(id); + // 删除 + rgMapper.deleteById(id); + } + + private void validateRgExists(Long id) { + if (rgMapper.selectById(id) == null) { + throw exception(RG_NOT_EXISTS); + } + } + + @Override + public RgDO getRg(Long id) { + return rgMapper.selectById(id); + } + + @Override + public PageResult getRgPage(RgPageReqVO pageReqVO) { + return rgMapper.selectPage(pageReqVO); + } + + @Override + public List> getSimpleList() { + return rgMapper.selectSimpleList(); + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java index f0a4fd87..50c9c1f2 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogService.java @@ -1,55 +1,59 @@ -package com.chanko.yunxi.mes.module.heli.service.storagelog; - -import java.util.*; -import javax.validation.*; -import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; - -/** - * 入/出库日志 Service 接口 - * - * @author 管理员 - */ -public interface StorageLogService { - - /** - * 创建入/出库日志 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createStorageLog(@Valid StorageLogSaveReqVO createReqVO); - - /** - * 更新入/出库日志 - * - * @param updateReqVO 更新信息 - */ - void updateStorageLog(@Valid StorageLogSaveReqVO updateReqVO); - - /** - * 删除入/出库日志 - * - * @param id 编号 - */ - void deleteStorageLog(Long id); - - /** - * 获得入/出库日志 - * - * @param id 编号 - * @return 入/出库日志 - */ - StorageLogDO getStorageLog(Long id); - - /** - * 获得入/出库日志分页 - * - * @param pageReqVO 分页查询 - * @return 入/出库日志分页 - */ - PageResult getStorageLogPage(StorageLogPageReqVO pageReqVO); - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.storagelog; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogAll.StorageLogAllDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; + +/** + * 入/出库日志 Service 接口 + * + * @author 管理员 + */ +public interface StorageLogService { + + /** + * 创建入/出库日志 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createStorageLog(@Valid StorageLogSaveReqVO createReqVO); + + /** + * 更新入/出库日志 + * + * @param updateReqVO 更新信息 + */ + void updateStorageLog(@Valid StorageLogSaveReqVO updateReqVO); + + /** + * 删除入/出库日志 + * + * @param id 编号 + */ + void deleteStorageLog(Long id); + + /** + * 获得入/出库日志 + * + * @param id 编号 + * @return 入/出库日志 + */ + StorageLogDO getStorageLog(Long id); + + /** + * 获得入/出库日志分页 + * + * @param pageReqVO 分页查询 + * @return 入/出库日志分页 + */ + PageResult getStorageLogPage(StorageLogPageReqVO pageReqVO); + + void createStorageLogBatch(List storageLogDOs); + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java index f3de4675..313e3deb 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagelog/StorageLogServiceImpl.java @@ -1,74 +1,86 @@ -package com.chanko.yunxi.mes.module.heli.service.storagelog; - -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 com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; -import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; -import com.chanko.yunxi.mes.framework.common.pojo.PageResult; -import com.chanko.yunxi.mes.framework.common.pojo.PageParam; -import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; - -import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogMapper; - -import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; - -/** - * 入/出库日志 Service 实现类 - * - * @author 管理员 - */ -@Service -@Validated -public class StorageLogServiceImpl implements StorageLogService { - - @Resource - private StorageLogMapper storageLogMapper; - - @Override - public Long createStorageLog(StorageLogSaveReqVO createReqVO) { - // 插入 - StorageLogDO storageLog = BeanUtils.toBean(createReqVO, StorageLogDO.class); - storageLogMapper.insert(storageLog); - // 返回 - return storageLog.getId(); - } - - @Override - public void updateStorageLog(StorageLogSaveReqVO updateReqVO) { - // 校验存在 - validateStorageLogExists(updateReqVO.getId()); - // 更新 - StorageLogDO updateObj = BeanUtils.toBean(updateReqVO, StorageLogDO.class); - storageLogMapper.updateById(updateObj); - } - - @Override - public void deleteStorageLog(Long id) { - // 校验存在 - validateStorageLogExists(id); - // 删除 - storageLogMapper.deleteById(id); - } - - private void validateStorageLogExists(Long id) { - if (storageLogMapper.selectById(id) == null) { - throw exception(STORAGE_LOG_NOT_EXISTS); - } - } - - @Override - public StorageLogDO getStorageLog(Long id) { - return storageLogMapper.selectById(id); - } - - @Override - public PageResult getStorageLogPage(StorageLogPageReqVO pageReqVO) { - return storageLogMapper.selectPage(pageReqVO); - } - -} \ No newline at end of file +package com.chanko.yunxi.mes.module.heli.service.storagelog; + +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogAll.StorageLogAllDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogAllMapper; +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 com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.*; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; + +/** + * 入/出库日志 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class StorageLogServiceImpl implements StorageLogService { + + @Resource + private StorageLogMapper storageLogMapper; + + @Resource + private StorageLogAllMapper storageLogAllMapper; + + @Override + public Long createStorageLog(StorageLogSaveReqVO createReqVO) { + // 插入 + StorageLogDO storageLog = BeanUtils.toBean(createReqVO, StorageLogDO.class); + storageLogMapper.insert(storageLog); + // 返回 + return storageLog.getId(); + } + + @Override + public void updateStorageLog(StorageLogSaveReqVO updateReqVO) { + // 校验存在 + validateStorageLogExists(updateReqVO.getId()); + // 更新 + StorageLogDO updateObj = BeanUtils.toBean(updateReqVO, StorageLogDO.class); + storageLogMapper.updateById(updateObj); + } + + @Override + public void deleteStorageLog(Long id) { + // 校验存在 + validateStorageLogExists(id); + // 删除 + storageLogMapper.deleteById(id); + } + + private void validateStorageLogExists(Long id) { + if (storageLogMapper.selectById(id) == null) { + throw exception(STORAGE_LOG_NOT_EXISTS); + } + } + + @Override + public StorageLogDO getStorageLog(Long id) { + return storageLogMapper.selectById(id); + } + + @Override + public PageResult getStorageLogPage(StorageLogPageReqVO pageReqVO) { + return storageLogAllMapper.selectPage(pageReqVO); + } + + @Override + public void createStorageLogBatch(List storageLogDOs) { + for (StorageLogDO storageLogDo : storageLogDOs){ + storageLogMapper.insert(storageLogDo); + } + } + +} diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatService.java index f0703944..8d5d1354 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatService.java @@ -59,6 +59,8 @@ public interface StorageMatService { */ List getStorageMatList(); - int deleteStorageMatList(Long stockid); + int deleteStorageMatList(Long stockId); + + List getStorageMatListByStockId(Long stockId); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java index 475850b8..0bf3f0dd 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java @@ -83,12 +83,17 @@ public class StorageMatServiceImpl implements StorageMatService { } @Override - public int deleteStorageMatList(Long stockid) { + public int deleteStorageMatList(Long stockId) { //删除条件 Map columnMap = Maps.newHashMap(); - columnMap.put("stock_id", stockid); + columnMap.put("stock_id", stockId); return storageMatMapper.deleteByMap(columnMap); } + @Override + public List getStorageMatListByStockId(Long stockId) { + return storageMatMapper.selectMatByStorckID(stockId); + } + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/warehouse/WarehouseService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/warehouse/WarehouseService.java index a98ec994..a0c321bd 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/warehouse/WarehouseService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/warehouse/WarehouseService.java @@ -61,4 +61,6 @@ public interface WarehouseService { */ List getWarehouseListByStatus(Integer whStatus); + List> getSimpleList(); + } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/warehouse/WarehouseServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/warehouse/WarehouseServiceImpl.java index 39b3554a..4898aa1c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/warehouse/WarehouseServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/warehouse/WarehouseServiceImpl.java @@ -83,4 +83,8 @@ public class WarehouseServiceImpl implements WarehouseService { return warehouseMapper.selectListByStatus(whStatus); } + @Override + public List> getSimpleList() { + return warehouseMapper.selectSimpleList(); + } } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogAllMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogAllMapper.xml new file mode 100644 index 00000000..7a67ca90 --- /dev/null +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogAllMapper.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogMapper.xml b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogMapper.xml index d89a38b3..f383c187 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogMapper.xml +++ b/mes-module-heli/mes-module-heli-biz/src/main/resources/mapper/storagelog/StorageLogMapper.xml @@ -8,7 +8,5 @@ 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> - + \ No newline at end of file diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/pn/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/pn/index.ts index d20819e6..ec50962d 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/pn/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/pn/index.ts @@ -1,41 +1,46 @@ -import request from '@/config/axios' - -export interface PnVO { - id: number - pnNo: string - pnName: string - rgId: number - descr: string - pnStatus: number - whId: number -} - -// 查询库位分页 -export const getPnPage = async (params) => { - return await request.get({ url: `/heli/pn/page`, params }) -} - -// 查询库位详情 -export const getPn = async (id: number) => { - return await request.get({ url: `/heli/pn/get?id=` + id }) -} - -// 新增库位 -export const createPn = async (data: PnVO) => { - return await request.post({ url: `/heli/pn/create`, data }) -} - -// 修改库位 -export const updatePn = async (data: PnVO) => { - return await request.put({ url: `/heli/pn/update`, data }) -} - -// 删除库位 -export const deletePn = async (id: number) => { - return await request.delete({ url: `/heli/pn/delete?id=` + id }) -} - -// 导出库位 Excel -export const exportPn = async (params) => { - return await request.download({ url: `/heli/pn/export-excel`, params }) -} \ No newline at end of file +import request from '@/config/axios' + +export interface PnVO { + id: number + pnNo: string + pnName: string + rgId: number + descr: string + pnStatus: number + whId: number +} + +// 查询库区分页 +export const getSimpList = async () => { + return await request.get({ url: `/heli/pn/all-simples` }) +} + +// 查询库位分页 +export const getPnPage = async (params) => { + return await request.get({ url: `/heli/pn/page`, params }) +} + +// 查询库位详情 +export const getPn = async (id: number) => { + return await request.get({ url: `/heli/pn/get?id=` + id }) +} + +// 新增库位 +export const createPn = async (data: PnVO) => { + return await request.post({ url: `/heli/pn/create`, data }) +} + +// 修改库位 +export const updatePn = async (data: PnVO) => { + return await request.put({ url: `/heli/pn/update`, data }) +} + +// 删除库位 +export const deletePn = async (id: number) => { + return await request.delete({ url: `/heli/pn/delete?id=` + id }) +} + +// 导出库位 Excel +export const exportPn = async (params) => { + return await request.download({ url: `/heli/pn/export-excel`, params }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/rg/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/rg/index.ts index 5b8a8e8e..f46eaf8e 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/rg/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/rg/index.ts @@ -1,40 +1,45 @@ -import request from '@/config/axios' - -export interface RgVO { - id: number - rgNo: string - rgName: string - whId: number - descr: string - rgStatus: number -} - -// 查询库区分页 -export const getRgPage = async (params) => { - return await request.get({ url: `/heli/rg/page`, params }) -} - -// 查询库区详情 -export const getRg = async (id: number) => { - return await request.get({ url: `/heli/rg/get?id=` + id }) -} - -// 新增库区 -export const createRg = async (data: RgVO) => { - return await request.post({ url: `/heli/rg/create`, data }) -} - -// 修改库区 -export const updateRg = async (data: RgVO) => { - return await request.put({ url: `/heli/rg/update`, data }) -} - -// 删除库区 -export const deleteRg = async (id: number) => { - return await request.delete({ url: `/heli/rg/delete?id=` + id }) -} - -// 导出库区 Excel -export const exportRg = async (params) => { - return await request.download({ url: `/heli/rg/export-excel`, params }) -} \ No newline at end of file +import request from '@/config/axios' + +export interface RgVO { + id: number + rgNo: string + rgName: string + whId: number + descr: string + rgStatus: number +} + +// 查询库区分页 +export const getSimpList = async () => { + return await request.get({ url: `/heli/rg/all-simples` }) +} + +// 查询库区分页 +export const getRgPage = async (params) => { + return await request.get({ url: `/heli/rg/page`, params }) +} + +// 查询库区详情 +export const getRg = async (id: number) => { + return await request.get({ url: `/heli/rg/get?id=` + id }) +} + +// 新增库区 +export const createRg = async (data: RgVO) => { + return await request.post({ url: `/heli/rg/create`, data }) +} + +// 修改库区 +export const updateRg = async (data: RgVO) => { + return await request.put({ url: `/heli/rg/update`, data }) +} + +// 删除库区 +export const deleteRg = async (id: number) => { + return await request.delete({ url: `/heli/rg/delete?id=` + id }) +} + +// 导出库区 Excel +export const exportRg = async (params) => { + return await request.download({ url: `/heli/rg/export-excel`, params }) +} diff --git a/mes-ui/mes-ui-admin-vue3/src/api/heli/warehouse/index.ts b/mes-ui/mes-ui-admin-vue3/src/api/heli/warehouse/index.ts index 3ef86bac..abf97131 100644 --- a/mes-ui/mes-ui-admin-vue3/src/api/heli/warehouse/index.ts +++ b/mes-ui/mes-ui-admin-vue3/src/api/heli/warehouse/index.ts @@ -8,6 +8,10 @@ export interface WarehouseVO { telephone: string whStatus: number } +// 查询仓库分页 +export const getSimpList = async () => { + return await request.get({ url: `/heli/warehouse/all-simples` }) +} // 查询仓库分页 export const getWarehouseSimpList = async () => { diff --git a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts index 2faae34b..6eb36029 100644 --- a/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts +++ b/mes-ui/mes-ui-admin-vue3/src/utils/dict.ts @@ -223,6 +223,7 @@ export enum DICT_TYPE { HELI_STORAGE_IN_TYPE = 'heli_storage_in_type', // 入库类型 HELI_STORAGE_OUT_TYPE = 'heli_storage_out_type',//出库类型 HELI_STORAGE_STATUS = 'heli_storage_status',//入库出库状态 + HELI_STORAGE_TYPE = 'heli_storage_type', // 入库类型 HELI_PROJECT_ORDER_STATUS = 'heli_project_order_status', //项目订单状态 HELI_DELIVERY_STATUS = 'heli_delivery_status', // 发货状态 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/storagelog/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/storagelog/index.vue index 91d94b82..1a6bd0a9 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/storagelog/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/storagelog/index.vue @@ -1,135 +1,46 @@ \ No newline at end of file