From dbc2bada83840b679902c176e6e11cae8f334f9e Mon Sep 17 00:00:00 2001 From: liuyuxin Date: Sat, 28 Feb 2026 09:42:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=86=85=E5=AE=B9=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=8D=95=E6=8D=AE=E5=8F=B7=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InventoryMatchScanController.java | 31 +++++++++++++++- .../inventory/domain/dto/InventoryDTO.java | 14 ++++++++ .../project/wisdom/mapper/RkInfoMapper.java | 4 +++ .../service/impl/RkBillServiceImpl.java | 4 +-- .../zg/project/wisdom/utils/BillNoUtil.java | 28 +++++++++------ .../resources/mybatis/wisdom/RkInfoMapper.xml | 36 ++++++++++++++++--- 6 files changed, 100 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/zg/project/inventory/domain/dto/InventoryDTO.java diff --git a/src/main/java/com/zg/project/inventory/AutoInventory/controller/InventoryMatchScanController.java b/src/main/java/com/zg/project/inventory/AutoInventory/controller/InventoryMatchScanController.java index 3658ad0..cbec666 100644 --- a/src/main/java/com/zg/project/inventory/AutoInventory/controller/InventoryMatchScanController.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/controller/InventoryMatchScanController.java @@ -1,17 +1,22 @@ package com.zg.project.inventory.AutoInventory.controller; +import com.github.pagehelper.PageHelper; import com.zg.common.utils.StringUtils; import com.zg.common.utils.poi.ExcelUtil; import com.zg.framework.web.controller.BaseController; import com.zg.framework.web.domain.AjaxResult; import com.zg.framework.web.page.TableDataInfo; import com.zg.project.inventory.AutoInventory.service.InventoryMatchScanService; +import com.zg.project.inventory.domain.dto.InventoryDTO; import com.zg.project.inventory.domain.dto.MatchScanPageDTO; import com.zg.project.inventory.domain.entity.InventoryMatchScan; import com.zg.project.inventory.domain.vo.InventoryMatchScanVO; import com.zg.project.inventory.domain.vo.RkInfoMatchVO; import com.zg.project.inventory.domain.vo.RkInventoryExportVO; import com.zg.project.wisdom.domain.RkInfo; +import com.zg.project.wisdom.domain.RkRecord; +import com.zg.project.wisdom.domain.vo.StockStatisticVO; +import com.zg.project.wisdom.mapper.RkInfoMapper; import com.zg.project.wisdom.service.IRkInfoService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; @@ -36,7 +41,8 @@ public class InventoryMatchScanController extends BaseController { @Autowired private IRkInfoService rkInfoService; - + @Autowired + private RkInfoMapper rkInfoMapper; /** * 分页查询盘点结果 * @param matchScan @@ -142,4 +148,27 @@ public class InventoryMatchScanController extends BaseController { return AjaxResult.success(getDataTable(list)); } + @PostMapping("/inventoryList") + public TableDataInfo inventoryList(@RequestBody InventoryDTO query) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + String warehouseCode = query.getWarehouseCode(); + String sceneId = query.getSceneId(); + List normalAll = + rkInfoMapper.getByWarehouseAndScene(warehouseCode, sceneId); + return getDataTable(normalAll); + } + + + /** + * 出入库统计,返回总数 + */ + @PostMapping("/statistics") + public AjaxResult statistics(@RequestBody InventoryDTO query) { + RkInfo rkInfo = new RkInfo(); + rkInfo.setScene(query.getSceneId()); + rkInfo.setCangku(query.getWarehouseCode()); + StockStatisticVO stockStatistic = rkInfoMapper.selectStockStatisticByCondition(rkInfo); + return AjaxResult.success(stockStatistic); + } + } diff --git a/src/main/java/com/zg/project/inventory/domain/dto/InventoryDTO.java b/src/main/java/com/zg/project/inventory/domain/dto/InventoryDTO.java new file mode 100644 index 0000000..4067936 --- /dev/null +++ b/src/main/java/com/zg/project/inventory/domain/dto/InventoryDTO.java @@ -0,0 +1,14 @@ +package com.zg.project.inventory.domain.dto; + +import lombok.Data; + +@Data +public class InventoryDTO { + private String warehouseCode; + private String sceneId; + /** 当前页 */ + private Integer pageNum; + + /** 每页条数 */ + private Integer pageSize; +} diff --git a/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java b/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java index 4e39fa9..a604295 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java @@ -172,4 +172,8 @@ public interface RkInfoMapper List listRkInfoByPcodes(ArrayList strings); + /** + * 查询今日最大单号 + * */ + String selectTodayMaxBillNo(String prefix, String date); } diff --git a/src/main/java/com/zg/project/wisdom/service/impl/RkBillServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/RkBillServiceImpl.java index 5b74d90..fed8611 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/RkBillServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/RkBillServiceImpl.java @@ -102,7 +102,7 @@ public class RkBillServiceImpl implements IRkBillService throw new RuntimeException("入库明细不能为空"); } - String billNo = BillNoUtil.generateTodayBillNo("RK", null); + String billNo = BillNoUtil.generateTodayBillNo("RK", rkInfoMapper); Date now = DateUtils.getNowDate(); String userId = String.valueOf(SecurityUtils.getUserId()); @@ -541,7 +541,7 @@ public class RkBillServiceImpl implements IRkBillService throw new RuntimeException("出库明细不能为空"); } - String billNo = BillNoUtil.generateTodayBillNo("CK", null); + String billNo = BillNoUtil.generateTodayBillNo("CK", rkInfoMapper); Date now = DateUtils.getNowDate(); String userId = String.valueOf(SecurityUtils.getUserId()); diff --git a/src/main/java/com/zg/project/wisdom/utils/BillNoUtil.java b/src/main/java/com/zg/project/wisdom/utils/BillNoUtil.java index e15544b..d0f566c 100644 --- a/src/main/java/com/zg/project/wisdom/utils/BillNoUtil.java +++ b/src/main/java/com/zg/project/wisdom/utils/BillNoUtil.java @@ -1,6 +1,7 @@ package com.zg.project.wisdom.utils; import com.zg.project.wisdom.mapper.RkInfoMapper; +import org.springframework.beans.factory.annotation.Autowired; import java.text.SimpleDateFormat; import java.util.Date; @@ -22,6 +23,8 @@ public class BillNoUtil { private static final String DEFAULT_PREFIX = "RK"; + + /** * 生成单据号(短号,不查数据库) * 格式:PREFIX + yyMMdd + HHmmss + 2位随机数 @@ -32,20 +35,25 @@ public class BillNoUtil { */ public static synchronized String generateTodayBillNo(String prefix, RkInfoMapper rkInfoMapper) { - // 前缀处理 - final String p = (prefix == null || prefix.trim().isEmpty()) - ? DEFAULT_PREFIX - : prefix.trim().toUpperCase(); + // 日期 yyMMdd + String date = new SimpleDateFormat("yyMMdd").format(new Date()); - // 时间到秒:yyMMddHHmmss(12位) - String time = new SimpleDateFormat("yyMMddHHmmss").format(new Date()); + // 查询今日最大单号 + String maxBillNo = rkInfoMapper.selectTodayMaxBillNo(prefix, date); - // 2位随机数:10~99(避免同一秒内多次点击撞号) - int rnd = ThreadLocalRandom.current().nextInt(10, 100); + int seq = 1; - return p + time + rnd; + if (maxBillNo != null && maxBillNo.length() > 8) { + // 取最后8位流水号 + String seqStr = maxBillNo.substring(prefix.length() + date.length()); + seq = Integer.parseInt(seqStr) + 1; + } + + // 8位补零 + String seqFormat = String.format("%08d", seq); + + return prefix + date + seqFormat; } - /** * 需要更短的版本(可选) * 格式:PREFIX + yyMMdd + 4位随机数 diff --git a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml index e56e17f..cc1cf9e 100644 --- a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml +++ b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml @@ -605,10 +605,34 @@ - +