From 05c3d92abf3541f019eb54933abd97e723087c5b Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Thu, 23 Jul 2026 13:28:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=B0=E5=A2=9E=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E5=8D=95=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/codegen/CodeSequenceMapper.xml | 3 +- .../admin/iostorinv/IostorInvController.java | 4 +- .../iostorinv/vo/IostorInvPageReqVO.java | 5 +- .../admin/iostorinv/vo/IostorInvRespVO.java | 8 + .../iostorinvdtl/IostorinvDtlController.java | 208 ++++++++--------- .../dal/dataobject/iostorinv/IostorInvDO.java | 4 +- .../iostorinvdtl/IostorinvDtlDO.java | 216 +++++++++--------- .../iostorinvdtl/IostorinvDtlMapper.java | 1 - .../service/iostorinv/IostorInvService.java | 4 +- .../iostorinv/IostorInvServiceImpl.java | 12 +- .../iostorinvdtl/IostorinvDtlService.java | 124 +++++----- .../iostorinvdtl/IostorinvDtlServiceImpl.java | 2 +- .../src/main/resources/application.yaml | 4 +- .../src/views/wms/iostorinv/data.ts | 45 +++- .../packages/constants/src/dict-enum.ts | 3 + 15 files changed, 335 insertions(+), 308 deletions(-) diff --git a/nl-module-base/nl-module-base-server/src/main/resources/mapper/codegen/CodeSequenceMapper.xml b/nl-module-base/nl-module-base-server/src/main/resources/mapper/codegen/CodeSequenceMapper.xml index 74909a0f..5d3572b8 100644 --- a/nl-module-base/nl-module-base-server/src/main/resources/mapper/codegen/CodeSequenceMapper.xml +++ b/nl-module-base/nl-module-base-server/src/main/resources/mapper/codegen/CodeSequenceMapper.xml @@ -14,7 +14,8 @@ VALUES (#{ruleId}, #{resetKey}, #{startAt} + #{step} - 1, #{maxValue}) ON DUPLICATE KEY UPDATE current_value = current_value + #{step}, - max_value = #{maxValue} + max_value = #{maxValue}, + deleted = 0 diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/IostorInvController.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/IostorInvController.java index 82f8c078..635fdf5f 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/IostorInvController.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/IostorInvController.java @@ -41,7 +41,7 @@ public class IostorInvController { @PostMapping("/createOutbound") @Operation(summary = "创建出库单及明细") @PreAuthorize("@ss.hasPermission('wms:iostor-inv:create')") - public CommonResult createOutbound(@Valid @RequestBody IostorInvCreateReqVO reqVO) { + public CommonResult createOutbound(@Valid @RequestBody IostorInvCreateReqVO reqVO) { return success(iostorInvService.createOutbound(reqVO)); } @@ -64,7 +64,7 @@ public class IostorInvController { @PostMapping("/create") @Operation(summary = "创建出入库单主表") @PreAuthorize("@ss.hasPermission('wms:iostor-inv:create')") - public CommonResult createIostorInv(@Valid @RequestBody IostorInvSaveReqVO createReqVO) { + public CommonResult createIostorInv(@Valid @RequestBody IostorInvSaveReqVO createReqVO) { return success(iostorInvService.createIostorInv(createReqVO)); } diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/IostorInvPageReqVO.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/IostorInvPageReqVO.java index 224ea155..ea47a533 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/IostorInvPageReqVO.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/IostorInvPageReqVO.java @@ -8,6 +8,7 @@ import java.math.BigDecimal; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import static cn.code.nl.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; import static cn.code.nl.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 出入库单主表分页 Request VO") @@ -21,7 +22,7 @@ public class IostorInvPageReqVO extends PageParam { private String billType; @Schema(description = "业务日期") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime[] bizDate; @Schema(description = "仓库标识", example = "12635") @@ -76,7 +77,7 @@ public class IostorInvPageReqVO extends PageParam { private String syscompanyid; @Schema(description = "是否已上传") - private String isUpload; + private Boolean isUpload; @Schema(description = "回传人", example = "25284") private String uploadOptid; diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/IostorInvRespVO.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/IostorInvRespVO.java index 35964cd1..737c5d38 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/IostorInvRespVO.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinv/vo/IostorInvRespVO.java @@ -4,10 +4,13 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; import java.math.BigDecimal; +import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import cn.idev.excel.annotation.*; +import static cn.code.nl.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; + @Schema(description = "管理后台 - 出入库单主表 Response VO") @Data @ExcelIgnoreUnannotated @@ -23,12 +26,17 @@ public class IostorInvRespVO { @Schema(description = "业务日期", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("业务日期") + @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY) private LocalDateTime bizDate; @Schema(description = "仓库标识", example = "12635") @ExcelProperty("仓库标识") private String storId; + @Schema(description = "仓库", example = "1号仓") + @ExcelProperty("仓库") + private String storName; + @Schema(description = "来源方标识", example = "21190") @ExcelProperty("来源方标识") private String sourceId; diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinvdtl/IostorinvDtlController.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinvdtl/IostorinvDtlController.java index eef62d4b..dd2f69e2 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinvdtl/IostorinvDtlController.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/controller/admin/iostorinvdtl/IostorinvDtlController.java @@ -1,104 +1,104 @@ -package cn.code.nl.module.wms.controller.admin.iostorinvdtl; - -import org.springframework.web.bind.annotation.*; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import jakarta.validation.constraints.*; -import jakarta.validation.*; -import jakarta.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import cn.code.nl.framework.common.pojo.PageParam; -import cn.code.nl.framework.common.pojo.PageResult; -import cn.code.nl.framework.common.pojo.CommonResult; -import cn.code.nl.framework.common.util.object.BeanUtils; -import static cn.code.nl.framework.common.pojo.CommonResult.success; - -import cn.code.nl.framework.excel.core.util.ExcelUtils; - -import cn.code.nl.framework.apilog.core.annotation.ApiAccessLog; -import static cn.code.nl.framework.apilog.core.enums.OperateTypeEnum.*; - -import cn.code.nl.module.wms.controller.admin.iostorinvdtl.vo.*; -import cn.code.nl.module.wms.dal.dataobject.iostorinvdtl.IostorinvDtlDO; -import cn.code.nl.module.wms.service.iostorinvdtl.IostorinvDtlService; - -@Tag(name = "管理后台 - 出入库单明细") -@RestController -@RequestMapping("/wms/iostorinv-dtl") -@Validated -public class IostorinvDtlController { - - @Resource - private IostorinvDtlService iostorinvDtlService; - - @PostMapping("/create") - @Operation(summary = "创建出入库单明细") - @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:create')") - public CommonResult createIostorinvDtl(@Valid @RequestBody IostorinvDtlSaveReqVO createReqVO) { - return success(iostorinvDtlService.createIostorinvDtl(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新出入库单明细") - @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:update')") - public CommonResult updateIostorinvDtl(@Valid @RequestBody IostorinvDtlSaveReqVO updateReqVO) { - iostorinvDtlService.updateIostorinvDtl(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除出入库单明细") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:delete')") - public CommonResult deleteIostorinvDtl(@RequestParam("id") String id) { - iostorinvDtlService.deleteIostorinvDtl(id); - return success(true); - } - - @DeleteMapping("/delete-list") - @Parameter(name = "ids", description = "编号", required = true) - @Operation(summary = "批量删除出入库单明细") - @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:delete')") - public CommonResult deleteIostorinvDtlList(@RequestParam("ids") List ids) { - iostorinvDtlService.deleteIostorinvDtlListByIds(ids); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得出入库单明细") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:query')") - public CommonResult getIostorinvDtl(@RequestParam("id") String id) { - IostorinvDtlDO iostorinvDtl = iostorinvDtlService.getIostorinvDtl(id); - return success(BeanUtils.toBean(iostorinvDtl, IostorinvDtlRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得出入库单明细分页") - @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:query')") - public CommonResult> getIostorinvDtlPage(@Valid IostorinvDtlPageReqVO pageReqVO) { - PageResult pageResult = iostorinvDtlService.getIostorinvDtlPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, IostorinvDtlRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出出入库单明细 Excel") - @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportIostorinvDtlExcel(@Valid IostorinvDtlPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = iostorinvDtlService.getIostorinvDtlPage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "出入库单明细.xls", "数据", IostorinvDtlRespVO.class, - BeanUtils.toBean(list, IostorinvDtlRespVO.class)); - } - -} \ No newline at end of file +package cn.code.nl.module.wms.controller.admin.iostorinvdtl; + +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.constraints.*; +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.code.nl.framework.common.pojo.PageParam; +import cn.code.nl.framework.common.pojo.PageResult; +import cn.code.nl.framework.common.pojo.CommonResult; +import cn.code.nl.framework.common.util.object.BeanUtils; +import static cn.code.nl.framework.common.pojo.CommonResult.success; + +import cn.code.nl.framework.excel.core.util.ExcelUtils; + +import cn.code.nl.framework.apilog.core.annotation.ApiAccessLog; +import static cn.code.nl.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.code.nl.module.wms.controller.admin.iostorinvdtl.vo.*; +import cn.code.nl.module.wms.dal.dataobject.iostorinvdtl.IostorinvDtlDO; +import cn.code.nl.module.wms.service.iostorinvdtl.IostorinvDtlService; + +@Tag(name = "管理后台 - 出入库单明细") +@RestController +@RequestMapping("/wms/iostorinv-dtl") +@Validated +public class IostorinvDtlController { + + @Resource + private IostorinvDtlService iostorinvDtlService; + + @PostMapping("/create") + @Operation(summary = "创建出入库单明细") + @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:create')") + public CommonResult createIostorinvDtl(@Valid @RequestBody IostorinvDtlSaveReqVO createReqVO) { + return success(iostorinvDtlService.createIostorinvDtl(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新出入库单明细") + @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:update')") + public CommonResult updateIostorinvDtl(@Valid @RequestBody IostorinvDtlSaveReqVO updateReqVO) { + iostorinvDtlService.updateIostorinvDtl(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除出入库单明细") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:delete')") + public CommonResult deleteIostorinvDtl(@RequestParam("id") String id) { + iostorinvDtlService.deleteIostorinvDtl(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除出入库单明细") + @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:delete')") + public CommonResult deleteIostorinvDtlList(@RequestParam("ids") List ids) { + iostorinvDtlService.deleteIostorinvDtlListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得出入库单明细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:query')") + public CommonResult getIostorinvDtl(@RequestParam("id") String id) { + IostorinvDtlDO iostorinvDtl = iostorinvDtlService.getIostorinvDtl(id); + return success(BeanUtils.toBean(iostorinvDtl, IostorinvDtlRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得出入库单明细分页") + @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:query')") + public CommonResult> getIostorinvDtlPage(@Valid IostorinvDtlPageReqVO pageReqVO) { + PageResult pageResult = iostorinvDtlService.getIostorinvDtlPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, IostorinvDtlRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出出入库单明细 Excel") + @PreAuthorize("@ss.hasPermission('wms:iostorinv-dtl:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportIostorinvDtlExcel(@Valid IostorinvDtlPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = iostorinvDtlService.getIostorinvDtlPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "出入库单明细.xls", "数据", IostorinvDtlRespVO.class, + BeanUtils.toBean(list, IostorinvDtlRespVO.class)); + } + +} diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/dataobject/iostorinv/IostorInvDO.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/dataobject/iostorinv/IostorInvDO.java index 6035f4d9..939927ef 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/dataobject/iostorinv/IostorInvDO.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/dataobject/iostorinv/IostorInvDO.java @@ -30,8 +30,8 @@ public class IostorInvDO extends BaseDO { /** * 出入单标识 */ - @TableId(type = IdType.INPUT) - private String iostorinvId; + @TableId + private Long iostorinvId; /** * 单据编号 */ diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/dataobject/iostorinvdtl/IostorinvDtlDO.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/dataobject/iostorinvdtl/IostorinvDtlDO.java index 75c119da..5f65d7ab 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/dataobject/iostorinvdtl/IostorinvDtlDO.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/dataobject/iostorinvdtl/IostorinvDtlDO.java @@ -1,110 +1,106 @@ -package cn.code.nl.module.wms.dal.dataobject.iostorinvdtl; - -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.*; -import cn.code.nl.framework.mybatis.core.dataobject.BaseDO; - -/** - * 出入库单明细 DO - * - * @author 诺力管理员 - */ -@TableName("wms_iostorinvdtl") -@KeySequence("wms_iostorinvdtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class IostorinvDtlDO extends BaseDO { - - /** - * 出入单明细标识 - */ - @TableId(type = IdType.INPUT) - private String iostorinvdtlId; - /** - * 出入单标识 - */ - private String iostorinvId; - /** - * 明细序号 - */ - private Integer seqNo; - /** - * 批次 - */ - private String pcsn; - /** - * 单据明细状态 - */ - private String billStatus; - /** - * 数量计量单位标识 - */ - private String qtyUnitId; - /** - * 数量计量单位名称 - */ - private String qtyUnitName; - /** - * 计划数量 - */ - private BigDecimal planQty; - /** - * 实际数量 - */ - private BigDecimal realQty; - /** - * 来源单据明细标识 - */ - private String sourceBilldtlId; - /** - * 来源单据类型 - */ - private String sourceBillType; - /** - * 来源单编号 - */ - private String sourceBillCode; - /** - * 来源单表名 - */ - private String sourceBillTable; - /** - * 备注 - */ - private String remark; - /** - * 已分配数量 - */ - private BigDecimal assignQty; - /** - * 未分配数量 - */ - private BigDecimal unassignQty; - /** - * 物料编号 - */ - private String materialCode; - /** - * 来源单指定上料口 - */ - private String sourceLoadPort; - /** - * 单据回传策略配置类名 - */ - private String callbackStrategy; - /** - * 物料标识 - */ - private String materialId; - - -} \ No newline at end of file +package cn.code.nl.module.wms.dal.dataobject.iostorinvdtl; + +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import java.math.BigDecimal; +import java.math.BigDecimal; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.*; +import cn.code.nl.framework.mybatis.core.dataobject.BaseDO; + +/** + * 出入库单明细 DO + * + * @author 诺力管理员 + */ +@TableName("wms_iostorinvdtl") +@KeySequence("wms_iostorinvdtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class IostorinvDtlDO { + + /** + * 出入单明细标识 + */ + @TableId + private Long iostorinvdtlId; + /** + * 出入单标识 + */ + private Long iostorinvId; + /** + * 明细序号 + */ + private Integer seqNo; + /** + * 批次 + */ + private String pcsn; + /** + * 单据明细状态 + */ + private String billStatus; + /** + * 数量计量单位标识 + */ + private String qtyUnitId; + + /** + * 计划数量 + */ + private BigDecimal planQty; + /** + * 实际数量 + */ + private BigDecimal realQty; + /** + * 来源单据明细标识 + */ + private String sourceBilldtlId; + /** + * 来源单据类型 + */ + private String sourceBillType; + /** + * 来源单编号 + */ + private String sourceBillCode; + /** + * 来源单表名 + */ + private String sourceBillTable; + /** + * 备注 + */ + private String remark; + /** + * 已分配数量 + */ + private BigDecimal assignQty; + /** + * 未分配数量 + */ + private BigDecimal unassignQty; + /** + * 物料编号 + */ + private String materialCode; + /** + * 来源单指定上料口 + */ + private String sourceLoadPort; + /** + * 单据回传策略配置类名 + */ + private String callbackStrategy; + /** + * 物料标识 + */ + private String materialId; + + +} diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/mysql/iostorinvdtl/IostorinvDtlMapper.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/mysql/iostorinvdtl/IostorinvDtlMapper.java index 629e5e1b..61324e0e 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/mysql/iostorinvdtl/IostorinvDtlMapper.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/dal/mysql/iostorinvdtl/IostorinvDtlMapper.java @@ -54,7 +54,6 @@ public interface IostorinvDtlMapper extends BaseMapperX { .eqIfPresent(IostorinvDtlDO::getPcsn, reqVO.getPcsn()) .eqIfPresent(IostorinvDtlDO::getBillStatus, reqVO.getBillStatus()) .eqIfPresent(IostorinvDtlDO::getQtyUnitId, reqVO.getQtyUnitId()) - .likeIfPresent(IostorinvDtlDO::getQtyUnitName, reqVO.getQtyUnitName()) .eqIfPresent(IostorinvDtlDO::getPlanQty, reqVO.getPlanQty()) .eqIfPresent(IostorinvDtlDO::getRealQty, reqVO.getRealQty()) .eqIfPresent(IostorinvDtlDO::getSourceBilldtlId, reqVO.getSourceBilldtlId()) diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinv/IostorInvService.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinv/IostorInvService.java index 1b28f1e6..c2acd718 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinv/IostorInvService.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinv/IostorInvService.java @@ -20,7 +20,7 @@ public interface IostorInvService { * @param reqVO 出库单创建信息 * @return 出库单编号 */ - String createOutbound(@Valid IostorInvCreateReqVO reqVO); + Long createOutbound(@Valid IostorInvCreateReqVO reqVO); /** * 获得指定仓库的可用库存分页。 @@ -44,7 +44,7 @@ public interface IostorInvService { * @param createReqVO 创建信息 * @return 编号 */ - String createIostorInv(@Valid IostorInvSaveReqVO createReqVO); + Long createIostorInv(@Valid IostorInvSaveReqVO createReqVO); /** * 更新出入库单主表 diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinv/IostorInvServiceImpl.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinv/IostorInvServiceImpl.java index f77aac66..e25d6bd0 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinv/IostorInvServiceImpl.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinv/IostorInvServiceImpl.java @@ -53,7 +53,7 @@ public class IostorInvServiceImpl implements IostorInvService { */ @Override @Transactional(rollbackFor = Exception.class) - public String createOutbound(IostorInvCreateReqVO reqVO) { + public Long createOutbound(IostorInvCreateReqVO reqVO) { Map inventorySnapshot = validateAndLockInventory(reqVO); String ruleCode = "IO_CODE"; @@ -77,13 +77,12 @@ public class IostorInvServiceImpl implements IostorInvService { .map(IostorInvCreateReqVO.Detail::getPlanQty) .reduce(BigDecimal.ZERO, BigDecimal::add); IostorInvDO iostorInv = new IostorInvDO(); - iostorInv.setIostorinvId(IdUtil.fastSimpleUUID()); iostorInv.setBillCode(codeResult.getData()); - iostorInv.setIoType("OUT"); + iostorInv.setIoType("1"); iostorInv.setBillType(reqVO.getBillType()); iostorInv.setBizDate(reqVO.getBizDate()); iostorInv.setStorId(reqVO.getStorId()); - iostorInv.setBillStatus("生成"); + iostorInv.setBillStatus("10"); iostorInv.setRemark(reqVO.getRemark()); iostorInv.setDetailCount(reqVO.getDetails().size()); iostorInv.setTotalWeight(totalWeight); @@ -92,7 +91,6 @@ public class IostorInvServiceImpl implements IostorInvService { for (int index = 0; index < reqVO.getDetails().size(); index++) { IostorInvCreateReqVO.Detail detail = reqVO.getDetails().get(index); IostorinvDtlDO detailDO = new IostorinvDtlDO(); - detailDO.setIostorinvdtlId(IdUtil.fastSimpleUUID()); detailDO.setIostorinvId(iostorInv.getIostorinvId()); detailDO.setSeqNo(index + 1); AvailableInventoryRespVO inventory = inventorySnapshot.get(detail.getGroupId()); @@ -102,8 +100,8 @@ public class IostorInvServiceImpl implements IostorInvService { detailDO.setPlanQty(detail.getPlanQty()); detailDO.setUnassignQty(detail.getPlanQty()); detailDO.setAssignQty(BigDecimal.ZERO); + detailDO.setBillStatus("10"); detailDO.setQtyUnitId(inventory == null ? detail.getQtyUnitId() : inventory.getQtyUnitId()); - detailDO.setQtyUnitName(inventory == null ? detail.getQtyUnitName() : inventory.getQtyUnitName()); detailDO.setSourceBillCode(inventory == null ? detail.getSourceBillCode() : inventory.getExtCode()); detailDO.setSourceBillType(inventory == null ? detail.getSourceBillType() : inventory.getExtType()); detailDO.setSourceBilldtlId(inventory == null ? detail.getSourceBilldtlId() : inventory.getExtDtlCode()); @@ -175,7 +173,7 @@ public class IostorInvServiceImpl implements IostorInvService { } @Override - public String createIostorInv(IostorInvSaveReqVO createReqVO) { + public Long createIostorInv(IostorInvSaveReqVO createReqVO) { // 插入 IostorInvDO iostorInv = BeanUtils.toBean(createReqVO, IostorInvDO.class); iostorInvMapper.insert(iostorInv); diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinvdtl/IostorinvDtlService.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinvdtl/IostorinvDtlService.java index e109f9ce..21fc23f0 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinvdtl/IostorinvDtlService.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinvdtl/IostorinvDtlService.java @@ -1,62 +1,62 @@ -package cn.code.nl.module.wms.service.iostorinvdtl; - -import java.util.*; -import jakarta.validation.*; -import cn.code.nl.module.wms.controller.admin.iostorinvdtl.vo.*; -import cn.code.nl.module.wms.dal.dataobject.iostorinvdtl.IostorinvDtlDO; -import cn.code.nl.framework.common.pojo.PageResult; -import cn.code.nl.framework.common.pojo.PageParam; - -/** - * 出入库单明细 Service 接口 - * - * @author 诺力管理员 - */ -public interface IostorinvDtlService { - - /** - * 创建出入库单明细 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - String createIostorinvDtl(@Valid IostorinvDtlSaveReqVO createReqVO); - - /** - * 更新出入库单明细 - * - * @param updateReqVO 更新信息 - */ - void updateIostorinvDtl(@Valid IostorinvDtlSaveReqVO updateReqVO); - - /** - * 删除出入库单明细 - * - * @param id 编号 - */ - void deleteIostorinvDtl(String id); - - /** - * 批量删除出入库单明细 - * - * @param ids 编号 - */ - void deleteIostorinvDtlListByIds(List ids); - - /** - * 获得出入库单明细 - * - * @param id 编号 - * @return 出入库单明细 - */ - IostorinvDtlDO getIostorinvDtl(String id); - - /** - * 获得出入库单明细分页 - * - * @param pageReqVO 分页查询 - * @return 出入库单明细分页 - */ - PageResult getIostorinvDtlPage(IostorinvDtlPageReqVO pageReqVO); - -} \ No newline at end of file +package cn.code.nl.module.wms.service.iostorinvdtl; + +import java.util.*; +import jakarta.validation.*; +import cn.code.nl.module.wms.controller.admin.iostorinvdtl.vo.*; +import cn.code.nl.module.wms.dal.dataobject.iostorinvdtl.IostorinvDtlDO; +import cn.code.nl.framework.common.pojo.PageResult; +import cn.code.nl.framework.common.pojo.PageParam; + +/** + * 出入库单明细 Service 接口 + * + * @author 诺力管理员 + */ +public interface IostorinvDtlService { + + /** + * 创建出入库单明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createIostorinvDtl(@Valid IostorinvDtlSaveReqVO createReqVO); + + /** + * 更新出入库单明细 + * + * @param updateReqVO 更新信息 + */ + void updateIostorinvDtl(@Valid IostorinvDtlSaveReqVO updateReqVO); + + /** + * 删除出入库单明细 + * + * @param id 编号 + */ + void deleteIostorinvDtl(String id); + + /** + * 批量删除出入库单明细 + * + * @param ids 编号 + */ + void deleteIostorinvDtlListByIds(List ids); + + /** + * 获得出入库单明细 + * + * @param id 编号 + * @return 出入库单明细 + */ + IostorinvDtlDO getIostorinvDtl(String id); + + /** + * 获得出入库单明细分页 + * + * @param pageReqVO 分页查询 + * @return 出入库单明细分页 + */ + PageResult getIostorinvDtlPage(IostorinvDtlPageReqVO pageReqVO); + +} diff --git a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinvdtl/IostorinvDtlServiceImpl.java b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinvdtl/IostorinvDtlServiceImpl.java index 6961e5f6..e50c722e 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinvdtl/IostorinvDtlServiceImpl.java +++ b/nl-module-wms/nl-module-wms-server/src/main/java/cn/code/nl/module/wms/service/iostorinvdtl/IostorinvDtlServiceImpl.java @@ -33,7 +33,7 @@ public class IostorinvDtlServiceImpl implements IostorinvDtlService { private IostorinvDtlMapper iostorinvDtlMapper; @Override - public String createIostorinvDtl(IostorinvDtlSaveReqVO createReqVO) { + public Long createIostorinvDtl(IostorinvDtlSaveReqVO createReqVO) { // 插入 IostorinvDtlDO iostorinvDtl = BeanUtils.toBean(createReqVO, IostorinvDtlDO.class); iostorinvDtlMapper.insert(iostorinvDtl); diff --git a/nl-module-wms/nl-module-wms-server/src/main/resources/application.yaml b/nl-module-wms/nl-module-wms-server/src/main/resources/application.yaml index e715a703..de00b69f 100644 --- a/nl-module-wms/nl-module-wms-server/src/main/resources/application.yaml +++ b/nl-module-wms/nl-module-wms-server/src/main/resources/application.yaml @@ -65,10 +65,10 @@ mybatis-plus: map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 global-config: db-config: - id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 + # id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 # id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库 # id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库 -# id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解 + id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解 logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) banner: false # 关闭控制台的 Banner 打印 diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/iostorinv/data.ts b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/iostorinv/data.ts index 15e9a244..bd44aae6 100644 --- a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/iostorinv/data.ts +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/apps/web-antdv-next/src/views/wms/iostorinv/data.ts @@ -3,6 +3,16 @@ import type { VxeTableGridOptions } from '#/adapter/vxe-table'; import type { WmsIostorInvApi } from '#/api/wms/iostorinv'; import { getRangePickerDefaultProps } from '#/utils'; +import { getBsrealStorAttrSimpleList } from '#/api/wms/bsrealstorattr'; +import {getDictOptions} from "@vben/hooks"; +import {DICT_TYPE} from "@vben/constants"; + + +// ========== 启用的仓库下拉 ========== +async function loadWarehouseList() { + const data = await getBsrealStorAttrSimpleList(); + return data || []; +} /** 新增/修改的表单 */ export function useFormSchema(): VbenFormSchema[] { @@ -260,7 +270,7 @@ export function useGridFormSchema(): VbenFormSchema[] { component: 'Select', componentProps: { allowClear: true, - options: [], + options: getDictOptions(DICT_TYPE.WMS_OUT_BILL_TYPE), placeholder: '请选择单据类型', }, }, @@ -275,11 +285,14 @@ export function useGridFormSchema(): VbenFormSchema[] { }, { fieldName: 'storId', - label: '仓库标识', - component: 'Input', + label: '仓库', + component: 'ApiSelect', componentProps: { + api: loadWarehouseList, + labelField: 'storName', + valueField: 'storId', + placeholder: '请选择仓库', allowClear: true, - placeholder: '请输入仓库标识', }, }, { @@ -288,7 +301,7 @@ export function useGridFormSchema(): VbenFormSchema[] { component: 'Select', componentProps: { allowClear: true, - options: [], + options: getDictOptions(DICT_TYPE.WMS_IO_BILL_STATUS), placeholder: '请选择单据状态', }, }, @@ -303,11 +316,12 @@ export function useGridFormSchema(): VbenFormSchema[] { }, { fieldName: 'isUpload', - label: '是否已回传', - component: 'Input', + label: '是否回传', + component: 'Select', componentProps: { allowClear: true, - placeholder: '请输入是否已回传', + options: getDictOptions(DICT_TYPE.COMMON_TRUE_FALSE, 'boolean'), + placeholder: '请选择是否回传', }, } ]; @@ -331,11 +345,11 @@ export function useGridColumns(): VxeTableGridOptions field: 'bizDate', title: '业务日期', minWidth: 120, - formatter: 'formatDateTime', + formatter: 'formatDate', }, { - field: 'storId', - title: '仓库标识', + field: 'storName', + title: '仓库', minWidth: 120, }, { @@ -372,6 +386,10 @@ export function useGridColumns(): VxeTableGridOptions field: 'billStatus', title: '单据状态', minWidth: 120, + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.WMS_IO_BILL_STATUS }, + }, }, { field: 'remark', @@ -382,6 +400,10 @@ export function useGridColumns(): VxeTableGridOptions field: 'createMode', title: '生成方式', minWidth: 120, + cellRender: { + name: 'CellDict', + props: { type: DICT_TYPE.WMS_CREATE_TYPE }, + }, }, { field: 'createTime', @@ -444,4 +466,3 @@ export function useGridColumns(): VxeTableGridOptions }, ]; } - diff --git a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/packages/constants/src/dict-enum.ts b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/packages/constants/src/dict-enum.ts index 14f2124e..0e79ff8a 100644 --- a/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/packages/constants/src/dict-enum.ts +++ b/nl-ui/nl-ui-admin-vben/yudao-ui-admin-vben/packages/constants/src/dict-enum.ts @@ -287,6 +287,9 @@ const WMS_DICT = { WMS_GROUP_PLATE_STATUS: 'wms_group_plate_status', // 组盘记录 WMS_VEHICLE_TYPE: 'wms_vehicle_type', // 载具类型 WMS_OVER_STRUCT_TYPE: 'wms_over_struct_type', // 是否超限 + WMS_OUT_BILL_TYPE: 'wms_out_bill_type', // 出库单据类型 + WMS_IO_BILL_STATUS: 'wms_io_bill_status', // 出入库单据状态 + WMS_CREATE_TYPE: 'wms_create_type', // 生成方式 } as const; /** ========== TASK - 任务管理模块 ========== */