From a471e9807fd30f912eb38010df7b669bd96919d3 Mon Sep 17 00:00:00 2001 From: my_ong <429426262@qq.com> Date: Sun, 8 Dec 2024 18:23:43 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20=E6=89=AB=E7=A0=81=E7=9B=98=E7=82=B9?= =?UTF-8?q?=E5=BE=85=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../material/ApplyFormController.java | 96 +++++++++++++++++-- .../ims/entity/material/ApplyForm.java | 11 +-- .../ims/entity/material/StocktakingAudit.java | 56 ----------- .../material/StocktakingScanDetail.java | 67 +++++++++++++ .../StocktakingScanExceptionalData.java | 78 +++++++++++++++ .../tech/riemann/ims/enums/HandleEnum.java | 7 +- .../riemann/ims/enums/ReviewResultEnum.java | 10 +- .../riemann/ims/enums/StockStatusEnum.java | 4 +- .../StocktakingExceptonalStatusEnum.java | 25 +++++ ....java => StocktakingScanDetailMapper.java} | 4 +- .../StocktakingScanExceptionalDataMapper.java | 15 +++ ...ava => IStocktakingScanDetailService.java} | 4 +- ...StocktakingScanExceptionalDataService.java | 18 ++++ ... => StocktakingScanDetailServiceImpl.java} | 12 +-- ...ktakingScanExceptionalDataServiceImpl.java | 45 +++++++++ ...er.xml => StocktakingScanDetailMapper.xml} | 4 +- .../StocktakingScanExceptionalDataMapper.xml | 27 ++++++ .../java/tech/riemann/ims/MysqlGenerator.java | 2 +- 18 files changed, 388 insertions(+), 97 deletions(-) delete mode 100644 src/main/java/tech/riemann/ims/entity/material/StocktakingAudit.java create mode 100644 src/main/java/tech/riemann/ims/entity/material/StocktakingScanDetail.java create mode 100644 src/main/java/tech/riemann/ims/entity/material/StocktakingScanExceptionalData.java create mode 100644 src/main/java/tech/riemann/ims/enums/StocktakingExceptonalStatusEnum.java rename src/main/java/tech/riemann/ims/mapper/material/{StocktakingAuditMapper.java => StocktakingScanDetailMapper.java} (56%) create mode 100644 src/main/java/tech/riemann/ims/mapper/material/StocktakingScanExceptionalDataMapper.java rename src/main/java/tech/riemann/ims/service/material/{IStocktakingAuditService.java => IStocktakingScanDetailService.java} (59%) create mode 100644 src/main/java/tech/riemann/ims/service/material/IStocktakingScanExceptionalDataService.java rename src/main/java/tech/riemann/ims/service/material/impl/{StocktakingAuditServiceImpl.java => StocktakingScanDetailServiceImpl.java} (59%) create mode 100644 src/main/java/tech/riemann/ims/service/material/impl/StocktakingScanExceptionalDataServiceImpl.java rename src/main/resources/mapper_/{StocktakingAuditMapper.xml => StocktakingScanDetailMapper.xml} (89%) create mode 100644 src/main/resources/mapper_/StocktakingScanExceptionalDataMapper.xml diff --git a/src/main/java/tech/riemann/ims/controller/platform/material/ApplyFormController.java b/src/main/java/tech/riemann/ims/controller/platform/material/ApplyFormController.java index 3e65272..fb26961 100644 --- a/src/main/java/tech/riemann/ims/controller/platform/material/ApplyFormController.java +++ b/src/main/java/tech/riemann/ims/controller/platform/material/ApplyFormController.java @@ -13,17 +13,12 @@ import org.springframework.web.bind.annotation.*; import tech.riemann.ims.dto.request.ApplyInfo; import tech.riemann.ims.dto.request.AuditApplyInfo; import tech.riemann.ims.dto.response.ApplyDTO; -import tech.riemann.ims.entity.material.ApplyDetail; -import tech.riemann.ims.entity.material.ApplyForm; -import tech.riemann.ims.entity.material.Material; -import tech.riemann.ims.entity.material.MaterialStockDetail; +import tech.riemann.ims.entity.material.*; import tech.riemann.ims.enums.*; -import tech.riemann.ims.service.material.IApplyDetailService; -import tech.riemann.ims.service.material.IApplyFormService; -import tech.riemann.ims.service.material.IMaterialService; -import tech.riemann.ims.service.material.IMaterialStockDetailService; +import tech.riemann.ims.service.material.*; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -41,6 +36,9 @@ public class ApplyFormController { private final IApplyDetailService applyDetailService; private final IMaterialStockDetailService materialStockDetailService; private final IMaterialService materialService; + private final IStocktakingScanDetailService stocktakingScanDetailService; + private final IStocktakingScanExceptionalDataService stocktakingScanExceptionalDataService; + @GetMapping("applies") @Operation(summary = "分页查询申请列表") @@ -62,13 +60,13 @@ public class ApplyFormController { @Parameter(description = "盘点类型") @RequestParam(name = "auditType", required = false) AuditTypeEnum auditType, @Parameter(description = "盘点人") @RequestParam(name = "taker", required = false) String taker, @Parameter(description = "创建日期") @RequestParam(name = "createDate", required = false) LocalDateTime createDate, - @Parameter(description = "审核状态") @RequestParam(name = "reviewResult", required = false) ReviewResultEnum reviewResult) { + @Parameter(description = "审核状态") @RequestParam(name = "reviewResults", required = false) List reviewResults) { return applyFormService.page(Page.of(page, size), Wrappers.lambdaQuery() .eq(auditType != null, ApplyForm::getAuditType, auditType) .eq(ApplyForm::getType, ApplyTypeEnum.AUDIT) .eq(taker != null, ApplyForm::getTaker, taker) .eq(createDate != null, ApplyForm::getCreatedTime, createDate) - .eq(reviewResult != null, ApplyForm::getReviewResult, reviewResult) + .in(reviewResults != null && !reviewResults.isEmpty(), ApplyForm::getReviewResult, reviewResults) .orderByDesc(ApplyForm::getCreatedTime) ); } @@ -168,6 +166,7 @@ public class ApplyFormController { ApplyForm applyForm = applyInfo.to(); applyForm.setType(ApplyTypeEnum.AUDIT); applyFormService.save(applyForm); + List materials = materialService.listByIds(applyInfo.getIds()); materials.forEach(material -> applyDetailService.save(ApplyDetail.builder() @@ -176,4 +175,81 @@ public class ApplyFormController { .quantity(material.getStock()) .build())); } + @PostMapping("scan-data/{applyId}") + @Operation(summary = "提交盘点扫码数据") + @Transactional(rollbackFor = Exception.class) + public void saveScanData(@Parameter(description = "扫码数据列表") @RequestBody List scanData, + @Parameter(description = "申请单ID") @PathVariable(name = "applyId") Long applyId){ + //保存扫码数据 + stocktakingScanDetailService.saveBatch(scanData); + //修改状态 + applyFormService.update(Wrappers.lambdaUpdate() + .set(ApplyForm::getReviewResult, ReviewResultEnum.WAIT_REVIEW) + .eq(ApplyForm::getId, applyId)); + new Thread(() -> { + comparisonData(scanData, applyId); + }).start(); + } + + // 比较数据 生成差异数据 + public void comparisonData(List scanData, Long applyId){ + //生成map比较 + Map> scanMap = scanData.stream().collect(Collectors.groupingBy(StocktakingScanDetail::getMaterialId, + Collectors.mapping(StocktakingScanDetail::getBarcode, Collectors.toList()))); + Map> stockMap = getStockMap(applyId); + // 比较两个map,以库存为准,生成差异数据 + List exceptionalDataList = new ArrayList<>(); + scanMap.forEach((k, v) -> { + List stockList = stockMap.get(k); + List scanList = scanMap.get(k); + // 比较两个list,找出库存存在但扫码不存在的条形码 或者 库存不存在但扫码存在的条形码 + stockList.forEach(detail -> { + if (scanList.contains(detail.getBarcode()) && detail.getStatus() != StockStatusEnum.IN) { + // 扫码和库存都存在,但是库存的状态不对 + exceptionalDataList.add(StocktakingScanExceptionalData.builder() + .barcode(detail.getBarcode()) + .materialId(detail.getMaterialId()) + .exceptionReason(StocktakingExceptonalStatusEnum.SOCK_OUT_BUT_SCAN_EXIST) + .build()); + } + if(!scanList.contains(detail.getBarcode()) && detail.getStatus() == StockStatusEnum.IN){ + //库房存在,但扫码不存在 + exceptionalDataList.add(StocktakingScanExceptionalData.builder() + .barcode(detail.getBarcode()) + .materialId(detail.getMaterialId()) + .exceptionReason(StocktakingExceptonalStatusEnum.SOCK_IN_BUT_SCAN_NOT_EXIST) + .build()); + } + }); + // 找出扫码存在但库存不存在的条形码 + scanList.forEach(barcode -> { + if (stockList.stream().noneMatch(detail -> detail.getBarcode().equals(barcode))) { + // 扫码存在,但库存不存在 + exceptionalDataList.add(StocktakingScanExceptionalData.builder() + .barcode(barcode) + .materialId(k) + .exceptionReason(StocktakingExceptonalStatusEnum.SOCK_NOT_EXIST_BUT_SCAN_EXIST) + .build()); + } + }); + }); + // 保存差异数据 + stocktakingScanExceptionalDataService.saveBatch(exceptionalDataList); + } + // 盘点物料库存实际数据 + private Map> getStockMap(Long applyId) { + ApplyForm applyForm = applyFormService.getById(applyId); + List materialIds = new ArrayList<>(); + if(applyForm.getAuditType() == AuditTypeEnum.PARTIAL){ + // 部分盘点 + List applyDetails = applyDetailService.list(Wrappers.lambdaQuery().eq(ApplyDetail::getApplyId, applyId)); + materialIds = applyDetails.stream().map(ApplyDetail::getMaterialId).toList(); + } + //查询所有盘点物料数量 + List stockDetails = materialStockDetailService.list(Wrappers.lambdaQuery() + .in(!materialIds.isEmpty(), MaterialStockDetail::getMaterialId, materialIds)); + + // 返回map结构 key 为物料id,value 该物料的所有条形码结合 + return stockDetails.stream().collect(Collectors.groupingBy(MaterialStockDetail::getMaterialId)); + } } diff --git a/src/main/java/tech/riemann/ims/entity/material/ApplyForm.java b/src/main/java/tech/riemann/ims/entity/material/ApplyForm.java index 8446618..e5d4b31 100644 --- a/src/main/java/tech/riemann/ims/entity/material/ApplyForm.java +++ b/src/main/java/tech/riemann/ims/entity/material/ApplyForm.java @@ -14,7 +14,6 @@ import org.nutz.dao.entity.annotation.*; import tech.riemann.ims.entity.IdBaseEntity; import tech.riemann.ims.enums.ApplyTypeEnum; import tech.riemann.ims.enums.AuditTypeEnum; -import tech.riemann.ims.enums.HandleEnum; import tech.riemann.ims.enums.ReviewResultEnum; import java.io.Serial; @@ -104,17 +103,17 @@ public class ApplyForm extends IdBaseEntity { @ColDefine(type = ColType.VARCHAR, notNull = false, width = 512, precision = 0) private String exception; - @Schema(description = "处理方式(1-无需处理 2-忽略并修改库存 3-补充库存 4-其他)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Schema(description = "处理摘要", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @TableField("af_exception_handle") @Column("af_exception_handle") - @Comment("处理方式(处理方式(1-无需处理 2-忽略并修改库存 3-补充库存 4-其他))") + @Comment("处理摘要") @ColDefine(type = ColType.VARCHAR, notNull = false, width = 128, precision = 0) - private HandleEnum handle; + private String handle; - @Schema(description = "审核结果(1-通过 2-不通过 3-待审核 4-退回重新盘点 5-待盘点)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @Schema(description = "审核结果(1-待扫码 2-待提交 3-待审核 4-审核通过 5退回)", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @TableField("af_review_result") @Column("af_review_result") - @Comment("审核结果(1-通过 2-不通过 3-待审核 4-退回重新盘点)") + @Comment("审核结果(1-待扫码 2-待提交 3-待审核 4-审核通过 5退回)") @ColDefine(notNull = false, width = 128, precision = 0) private ReviewResultEnum reviewResult; diff --git a/src/main/java/tech/riemann/ims/entity/material/StocktakingAudit.java b/src/main/java/tech/riemann/ims/entity/material/StocktakingAudit.java deleted file mode 100644 index f6b74ed..0000000 --- a/src/main/java/tech/riemann/ims/entity/material/StocktakingAudit.java +++ /dev/null @@ -1,56 +0,0 @@ -package tech.riemann.ims.entity.material; - -import com.baomidou.mybatisplus.annotation.TableField; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.media.Schema.RequiredMode; -import org.nutz.dao.entity.annotation.ColDefine; -import org.nutz.dao.entity.annotation.Column; -import org.nutz.dao.entity.annotation.Comment; -import tech.riemann.ims.entity.IdBaseEntity; - -import java.io.Serial; - -/** - * 盘点审核表 - * - * @author mayong) - * - * @since 2024-12-06 10:32:29 - */ -//@Data -//@SuperBuilder -//@NoArgsConstructor -//@AllArgsConstructor -//@FieldNameConstants -//@EqualsAndHashCode(callSuper = true) -//@Accessors(chain = true) -//@TableName("t_stocktaking_audit") -//@Table("t_stocktaking_audit") -//@Comment("盘点审核表") -//@Schema(name = "StocktakingAudit", description = "盘点审核表") -public class StocktakingAudit extends IdBaseEntity{ - - @Serial - private static final long serialVersionUID = 1L; - - @Schema(description = "申请单id", requiredMode = RequiredMode.NOT_REQUIRED) - @TableField("s_apply_id") - @Column("s_apply_id") - @Comment("申请单id") - @ColDefine(notNull = false, width = 10, precision = 0) - private Integer applyId; - - @Schema(description = "盘点审核人", requiredMode = RequiredMode.NOT_REQUIRED) - @TableField("s_reviewer") - @Column("s_reviewer") - @Comment("盘点审核人") - @ColDefine(notNull = false, width = 128, precision = 0) - private String reviewer; - - @Schema(description = "盘点审核结果(0-通过 1-不通过 2-待审核 3-退回重新盘点)", requiredMode = RequiredMode.NOT_REQUIRED) - @TableField("s_review_result") - @Column("s_review_result") - @Comment("盘点审核结果(0-通过 1-不通过 2-待审核 3-退回重新盘点)") - @ColDefine(notNull = false, width = 128, precision = 0) - private String reviewResult; -} \ No newline at end of file diff --git a/src/main/java/tech/riemann/ims/entity/material/StocktakingScanDetail.java b/src/main/java/tech/riemann/ims/entity/material/StocktakingScanDetail.java new file mode 100644 index 0000000..d413ff5 --- /dev/null +++ b/src/main/java/tech/riemann/ims/entity/material/StocktakingScanDetail.java @@ -0,0 +1,67 @@ +package tech.riemann.ims.entity.material; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema.RequiredMode; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import lombok.experimental.FieldNameConstants; +import lombok.experimental.SuperBuilder; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Table; +import tech.riemann.ims.entity.IdBaseEntity; + +import java.io.Serial; + +/** + * 盘点审核表 + * + * @author mayong) + * + * @since 2024-12-06 10:32:29 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@FieldNameConstants +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@TableName("t_stocktaking_scan_detail") +@Table("t_stocktaking_scan_detail") +@Comment("扫码盘点明细表") +@Schema(name = "StocktakingScanDetail", description = "扫码盘点明细表(记录历次盘点扫码的数据)") +public class StocktakingScanDetail extends IdBaseEntity{ + + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "申请单id", requiredMode = RequiredMode.NOT_REQUIRED) + @TableField("s_apply_id") + @Column("s_apply_id") + @Comment("申请单id") + @ColDefine(notNull = false, width = 10, precision = 0) + private Integer applyId; + + @Schema(description = "物料ID", requiredMode = RequiredMode.NOT_REQUIRED) + @TableField("msd_material_id") + @Column("msd_material_id") + @Comment("物料ID") + @ColDefine(notNull = false) + private Long materialId; + + @Schema(description = "条码", requiredMode = RequiredMode.NOT_REQUIRED) + @TableField("msd_barcode") + @Column("msd_barcode") + @Comment("条码") + @ColDefine(notNull = false, width = 128, precision = 0) + private String barcode; + + +} \ No newline at end of file diff --git a/src/main/java/tech/riemann/ims/entity/material/StocktakingScanExceptionalData.java b/src/main/java/tech/riemann/ims/entity/material/StocktakingScanExceptionalData.java new file mode 100644 index 0000000..4df123d --- /dev/null +++ b/src/main/java/tech/riemann/ims/entity/material/StocktakingScanExceptionalData.java @@ -0,0 +1,78 @@ +package tech.riemann.ims.entity.material; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema.RequiredMode; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +import lombok.experimental.FieldNameConstants; +import lombok.experimental.SuperBuilder; +import org.nutz.dao.entity.annotation.ColDefine; +import org.nutz.dao.entity.annotation.Column; +import org.nutz.dao.entity.annotation.Comment; +import org.nutz.dao.entity.annotation.Table; +import tech.riemann.ims.entity.IdBaseEntity; +import tech.riemann.ims.enums.HandleEnum; +import tech.riemann.ims.enums.StocktakingExceptonalStatusEnum; + +/** + * 扫码盘点异常数据表 + * + * @author mayong) + * + * @since 2024-12-08 11:49:52 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@FieldNameConstants +@EqualsAndHashCode(callSuper = true) +@Accessors(chain = true) +@TableName("t_stocktaking_scan_exceptional_data") +@Table("t_stocktaking_scan_exceptional_data") +@Comment("扫码盘点异常数据表") +@Schema(name = "StocktakingScanExceptionalData", description = "扫码盘点异常数据表") +public class StocktakingScanExceptionalData extends IdBaseEntity{ + + private static final long serialVersionUID = 1L; + + @Schema(description = "申请单id", requiredMode = RequiredMode.NOT_REQUIRED) + @TableField("s_apply_id") + @Column("s_apply_id") + @Comment("申请单id") + @ColDefine(notNull = false, width = 19, precision = 0) + private Long applyId; + + @Schema(description = "物料ID", requiredMode = RequiredMode.NOT_REQUIRED) + @TableField("s_material_id") + @Column("s_material_id") + @Comment("物料ID") + @ColDefine(notNull = false, width = 10, precision = 0) + private Long materialId; + + @Schema(description = "条码", requiredMode = RequiredMode.NOT_REQUIRED) + @TableField("s_barcode") + @Column("s_barcode") + @Comment("条码") + @ColDefine(notNull = false, width = 128, precision = 0) + private String barcode; + + @Schema(description = "异常类型", requiredMode = RequiredMode.NOT_REQUIRED) + @TableField("s_exception_reason") + @Column("s_exception_reason") + @Comment("异常类型") + @ColDefine(notNull = false, width = 128, precision = 0) + private StocktakingExceptonalStatusEnum exceptionReason; + + @Schema(description = "异常处理", requiredMode = RequiredMode.NOT_REQUIRED) + @TableField("s_exception_handle") + @Column("s_exception_handle") + @Comment("异常处理") + @ColDefine(notNull = false, width = 128, precision = 0) + private HandleEnum exceptionHandle; +} \ No newline at end of file diff --git a/src/main/java/tech/riemann/ims/enums/HandleEnum.java b/src/main/java/tech/riemann/ims/enums/HandleEnum.java index b692727..47e600e 100644 --- a/src/main/java/tech/riemann/ims/enums/HandleEnum.java +++ b/src/main/java/tech/riemann/ims/enums/HandleEnum.java @@ -13,10 +13,9 @@ import lombok.Getter; @AllArgsConstructor public enum HandleEnum implements ICodeBook { - NO_ACTION("1", "无需处理"), - IGNORE_AND_SAVE("2", "忽略并保存"), - REPLENISH("3", "补货"), - OTHER("4", "其他") + INBOUND("1", "入库+1"), + OUTBOUND("2", "不入库-1"), + DISCARD("3", "丢弃-1"), ; @EnumValue diff --git a/src/main/java/tech/riemann/ims/enums/ReviewResultEnum.java b/src/main/java/tech/riemann/ims/enums/ReviewResultEnum.java index 5bc22aa..8106ce7 100644 --- a/src/main/java/tech/riemann/ims/enums/ReviewResultEnum.java +++ b/src/main/java/tech/riemann/ims/enums/ReviewResultEnum.java @@ -13,11 +13,11 @@ import lombok.Getter; @AllArgsConstructor public enum ReviewResultEnum implements ICodeBook { - PASS("1", "通过"), - UN_PASS("2", "未通过"), - WAIT_AUDIT("3", "等待审核"), - REJECT("4", "退回"), - WAIT_CHECK("5", "待盘点") + WAIT_SCAN("1", "待扫码"), + WAIT_SUBMIT("2", "待提交"), + WAIT_REVIEW("3", "待审核"), + PASS("4", "审核通过"), + REJECT("5", "退回") ; @EnumValue diff --git a/src/main/java/tech/riemann/ims/enums/StockStatusEnum.java b/src/main/java/tech/riemann/ims/enums/StockStatusEnum.java index cf36a11..f9e52ac 100644 --- a/src/main/java/tech/riemann/ims/enums/StockStatusEnum.java +++ b/src/main/java/tech/riemann/ims/enums/StockStatusEnum.java @@ -14,11 +14,9 @@ import lombok.Getter; public enum StockStatusEnum implements ICodeBook { IN("0", "在库"), - - OUT("1", "外借"), - OFF("2", "下架"), + LOST("3", "丢失"), ; diff --git a/src/main/java/tech/riemann/ims/enums/StocktakingExceptonalStatusEnum.java b/src/main/java/tech/riemann/ims/enums/StocktakingExceptonalStatusEnum.java new file mode 100644 index 0000000..939ce31 --- /dev/null +++ b/src/main/java/tech/riemann/ims/enums/StocktakingExceptonalStatusEnum.java @@ -0,0 +1,25 @@ +package tech.riemann.ims.enums; + +import club.zhcs.lina.utils.enums.ICodeBook; +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author mayong + * @since 2024/12/8 11:18 + */ +@Getter +@AllArgsConstructor +public enum StocktakingExceptonalStatusEnum implements ICodeBook { + + SOCK_IN_BUT_SCAN_NOT_EXIST("1", "库房在库状态但是扫码不存在"), + SOCK_OUT_BUT_SCAN_EXIST("2", "库房不是在库状态但是扫码存在"), + SOCK_NOT_EXIST_BUT_SCAN_EXIST("3", "库房不存在该条码但是扫码存在"), + + ; + + @EnumValue + final String code; + final String description; +} diff --git a/src/main/java/tech/riemann/ims/mapper/material/StocktakingAuditMapper.java b/src/main/java/tech/riemann/ims/mapper/material/StocktakingScanDetailMapper.java similarity index 56% rename from src/main/java/tech/riemann/ims/mapper/material/StocktakingAuditMapper.java rename to src/main/java/tech/riemann/ims/mapper/material/StocktakingScanDetailMapper.java index cb697a4..81f71d3 100644 --- a/src/main/java/tech/riemann/ims/mapper/material/StocktakingAuditMapper.java +++ b/src/main/java/tech/riemann/ims/mapper/material/StocktakingScanDetailMapper.java @@ -1,6 +1,6 @@ package tech.riemann.ims.mapper.material; -import tech.riemann.ims.entity.material.StocktakingAudit; +import tech.riemann.ims.entity.material.StocktakingScanDetail; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** @@ -10,6 +10,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * * @since 2024-12-06 10:32:29 */ -public interface StocktakingAuditMapper extends BaseMapper { +public interface StocktakingScanDetailMapper extends BaseMapper { } diff --git a/src/main/java/tech/riemann/ims/mapper/material/StocktakingScanExceptionalDataMapper.java b/src/main/java/tech/riemann/ims/mapper/material/StocktakingScanExceptionalDataMapper.java new file mode 100644 index 0000000..f7d9ad6 --- /dev/null +++ b/src/main/java/tech/riemann/ims/mapper/material/StocktakingScanExceptionalDataMapper.java @@ -0,0 +1,15 @@ +package tech.riemann.ims.mapper.material; + +import tech.riemann.ims.entity.material.StocktakingScanExceptionalData; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 扫码盘点异常数据表 Mapper 接口 + * + * @author mayong) + * + * @since 2024-12-08 11:49:52 + */ +public interface StocktakingScanExceptionalDataMapper extends BaseMapper { + +} diff --git a/src/main/java/tech/riemann/ims/service/material/IStocktakingAuditService.java b/src/main/java/tech/riemann/ims/service/material/IStocktakingScanDetailService.java similarity index 59% rename from src/main/java/tech/riemann/ims/service/material/IStocktakingAuditService.java rename to src/main/java/tech/riemann/ims/service/material/IStocktakingScanDetailService.java index 2e521bc..261ae2e 100644 --- a/src/main/java/tech/riemann/ims/service/material/IStocktakingAuditService.java +++ b/src/main/java/tech/riemann/ims/service/material/IStocktakingScanDetailService.java @@ -1,6 +1,6 @@ package tech.riemann.ims.service.material; -import tech.riemann.ims.entity.material.StocktakingAudit; +import tech.riemann.ims.entity.material.StocktakingScanDetail; import com.baomidou.mybatisplus.extension.service.IService; import org.nutz.spring.boot.service.interfaces.IdNameEntityService; @@ -13,6 +13,6 @@ import org.nutz.spring.boot.service.interfaces.IdNameEntityService; * * @since 2024-12-06 10:32:29 */ -public interface IStocktakingAuditService extends IService, IdNameEntityService { +public interface IStocktakingScanDetailService extends IService, IdNameEntityService { } diff --git a/src/main/java/tech/riemann/ims/service/material/IStocktakingScanExceptionalDataService.java b/src/main/java/tech/riemann/ims/service/material/IStocktakingScanExceptionalDataService.java new file mode 100644 index 0000000..acad2bc --- /dev/null +++ b/src/main/java/tech/riemann/ims/service/material/IStocktakingScanExceptionalDataService.java @@ -0,0 +1,18 @@ +package tech.riemann.ims.service.material; + +import tech.riemann.ims.entity.material.StocktakingScanExceptionalData; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nutz.spring.boot.service.interfaces.IdNameEntityService; + +/** + *

+ * 扫码盘点异常数据表 服务类 + *

+ * + * @author mayong) + * + * @since 2024-12-08 11:49:52 + */ +public interface IStocktakingScanExceptionalDataService extends IService, IdNameEntityService { + +} diff --git a/src/main/java/tech/riemann/ims/service/material/impl/StocktakingAuditServiceImpl.java b/src/main/java/tech/riemann/ims/service/material/impl/StocktakingScanDetailServiceImpl.java similarity index 59% rename from src/main/java/tech/riemann/ims/service/material/impl/StocktakingAuditServiceImpl.java rename to src/main/java/tech/riemann/ims/service/material/impl/StocktakingScanDetailServiceImpl.java index ab2edd2..3428d74 100644 --- a/src/main/java/tech/riemann/ims/service/material/impl/StocktakingAuditServiceImpl.java +++ b/src/main/java/tech/riemann/ims/service/material/impl/StocktakingScanDetailServiceImpl.java @@ -1,8 +1,8 @@ package tech.riemann.ims.service.material.impl; -import tech.riemann.ims.entity.material.StocktakingAudit; -import tech.riemann.ims.mapper.material.StocktakingAuditMapper; -import tech.riemann.ims.service.material.IStocktakingAuditService; +import tech.riemann.ims.entity.material.StocktakingScanDetail; +import tech.riemann.ims.mapper.material.StocktakingScanDetailMapper; +import tech.riemann.ims.service.material.IStocktakingScanDetailService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; @@ -21,7 +21,7 @@ import org.springframework.stereotype.Service; */ @Service @RequiredArgsConstructor -public class StocktakingAuditServiceImpl extends ServiceImpl implements IStocktakingAuditService { +public class StocktakingScanDetailServiceImpl extends ServiceImpl implements IStocktakingScanDetailService { private final Dao dao; @@ -39,7 +39,7 @@ public class StocktakingAuditServiceImpl extends ServiceImpl getEntityType() { - return StocktakingAudit.class; + public Class getEntityType() { + return StocktakingScanDetail.class; } } diff --git a/src/main/java/tech/riemann/ims/service/material/impl/StocktakingScanExceptionalDataServiceImpl.java b/src/main/java/tech/riemann/ims/service/material/impl/StocktakingScanExceptionalDataServiceImpl.java new file mode 100644 index 0000000..fee6027 --- /dev/null +++ b/src/main/java/tech/riemann/ims/service/material/impl/StocktakingScanExceptionalDataServiceImpl.java @@ -0,0 +1,45 @@ +package tech.riemann.ims.service.material.impl; + +import tech.riemann.ims.entity.material.StocktakingScanExceptionalData; +import tech.riemann.ims.mapper.material.StocktakingScanExceptionalDataMapper; +import tech.riemann.ims.service.material.IStocktakingScanExceptionalDataService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import lombok.RequiredArgsConstructor; + +import org.nutz.dao.Dao; +import org.springframework.stereotype.Service; + +/** + *

+ * 扫码盘点异常数据表 服务实现类 + *

+ * + * @author mayong) + * + * @since 2024-12-08 11:49:52 + */ +@Service +@RequiredArgsConstructor +public class StocktakingScanExceptionalDataServiceImpl extends ServiceImpl implements IStocktakingScanExceptionalDataService { + + private final Dao dao; + + /** + * @return + * @see org.nutz.spring.boot.service.ExtService#dao() + */ + @Override + public Dao dao() { + return dao; + } + + /** + * @return + * @see org.nutz.spring.boot.service.interfaces.EntityService#getEntityType() + */ + @Override + public Class getEntityType() { + return StocktakingScanExceptionalData.class; + } +} diff --git a/src/main/resources/mapper_/StocktakingAuditMapper.xml b/src/main/resources/mapper_/StocktakingScanDetailMapper.xml similarity index 89% rename from src/main/resources/mapper_/StocktakingAuditMapper.xml rename to src/main/resources/mapper_/StocktakingScanDetailMapper.xml index 6e8a6c7..d780489 100644 --- a/src/main/resources/mapper_/StocktakingAuditMapper.xml +++ b/src/main/resources/mapper_/StocktakingScanDetailMapper.xml @@ -1,9 +1,9 @@ - + - + diff --git a/src/main/resources/mapper_/StocktakingScanExceptionalDataMapper.xml b/src/main/resources/mapper_/StocktakingScanExceptionalDataMapper.xml new file mode 100644 index 0000000..c8fbbd8 --- /dev/null +++ b/src/main/resources/mapper_/StocktakingScanExceptionalDataMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + id, + created_time, + updated_time, + created_by, + updated_by, + s_apply_id, s_material_id, s_barcode, s_exception_reason, s_exception_handle + + \ No newline at end of file diff --git a/src/test/java/tech/riemann/ims/MysqlGenerator.java b/src/test/java/tech/riemann/ims/MysqlGenerator.java index fc9caea..d794b42 100644 --- a/src/test/java/tech/riemann/ims/MysqlGenerator.java +++ b/src/test/java/tech/riemann/ims/MysqlGenerator.java @@ -68,7 +68,7 @@ public class MysqlGenerator { List relationTables = Lang.list(); NutMap.NEW() - .addv("material", Lang.array("t_material_barcode_config", "t_material_stock_detail", "t_stocktaking_audit")) + .addv("material", Lang.array("t_stocktaking_scan_exceptional_data")) .entrySet() .stream() .forEach(e -> {