gongchunyi
2026-04-13 f4d6d9d7ae1d0f1af6937dd7a2761056e46611c2
Merge remote-tracking branch 'origin/dev_New' into dev_New
已修改11个文件
69 ■■■■■ 文件已修改
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/utils/OrderUtils.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/projectManagement/controller/RolesController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -99,7 +99,7 @@
//        String approveID = today + formattedCount;
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        ApproveProcess approveProcess = new ApproveProcess();
        String no = OrderUtils.countTodayByCreateTime(approveProcessMapper, "SP");
        String no = OrderUtils.countTodayByCreateTime(approveProcessMapper, "SP","approveId");
        approveProcess.setApproveId(no);
        approveProcess.setApproveUser(approveProcessVO.getApproveUser());
        approveProcess.setApproveUserName(sysUser.getNickName());
src/main/java/com/ruoyi/common/utils/OrderUtils.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.ruoyi.common.utils.uuid.UUID;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Component;
@@ -72,32 +73,40 @@
     * @param mapper 实体类对应的BaseMapper
     * @param <T> 实体类泛型
     * @return 当天记录数量
     * code 表编码字段
     */
    public static <T> String countTodayByCreateTime(BaseMapper<T> mapper,String preFix) {
        // 获取当天开始时间(00:00:00)
        LocalDateTime todayStart = LocalDateTime.of(
                LocalDateTime.now().toLocalDate(),
                LocalTime.MIN
        );
        // 获取当天结束时间(23:59:59.999)
        LocalDateTime todayEnd = LocalDateTime.of(
                LocalDateTime.now().toLocalDate(),
                LocalTime.MAX
        );
    public static <T> String countTodayByCreateTime(BaseMapper<T> mapper,String preFix,String code) {
        // 1. 当天时间范围
        LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
        LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
        // 转换为Date类型(如果实体类中createTime是LocalDateTime可直接使用)
        Date startDate = Date.from(todayStart.atZone(ZoneId.systemDefault()).toInstant());
        Date endDate = Date.from(todayEnd.atZone(ZoneId.systemDefault()).toInstant());
        // 构建查询条件
        QueryWrapper<T> queryWrapper = new QueryWrapper<>();
        queryWrapper.ge("create_time", startDate)  // 大于等于当天开始
                .lt("create_time", endDate);   // 小于当天结束(避免毫秒精度问题)
        // 2. 日期字符串 yyyyMMdd
        String dateStr = LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE);
        // 执行查询
        Long aLong = mapper.selectCount(queryWrapper);
        // 拼接订单编号 preFix + 时间(yyyyMMdd) + 订单数量(001)
        return preFix + LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE).replaceAll("-", "") + String.format("%03d", (aLong + 1)) + "-" + new Date().getTime();
        // 4. 查询今天最后一条编号(按时间倒序,取最新一条)
        QueryWrapper<T> wrapper = new QueryWrapper<>();
        wrapper.ge("create_time", startDate)
                .lt("create_time", endDate)
                .orderByDesc("create_time")
                .last("LIMIT 1");
        // 这里必须用 selectMaps 或 selectMap,不要用 selectOne,避免实体类问题
        Map<String, Object> result = (Map<String, Object>) mapper.selectOne(wrapper);
        long nextSeq = 1;
        if (result != null && result.get(code) != null) {
            String fullCode = result.get(code).toString(); // 例如:ABC20250122005
            // ✅ 关键:截取最后 3 位序号
            String seqStr = fullCode.substring(fullCode.length() - 3);
            nextSeq = Long.parseLong(seqStr) + 1;
        }
        // 5. 生成编号
        return preFix + dateStr + String.format("%03d", nextSeq);
    }
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -535,7 +535,7 @@
            Long aLong = customStorageMapper.selectCount(null);
            item.setInboundBatches(aLong.equals(0L) ? "第1批次(自定义入库)" : "第"+ (aLong + 1) + "批次(自定义入库)" );
            item.setCreateBy(loginUser.getNickName());
            item.setCode(OrderUtils.countTodayByCreateTime(customStorageMapper, ""));
            item.setCode(OrderUtils.countTodayByCreateTime(customStorageMapper, "", "code"));
            customStorageMapper.insert(item);
        });
        return AjaxResult.success("自定义入库成功");
src/main/java/com/ruoyi/procurementrecord/service/impl/ReturnManagementServiceImpl.java
@@ -72,7 +72,7 @@
    @Override
    public boolean addReturnManagementDto(ReturnManagementDto returnManagementDto) {
        String rt = OrderUtils.countTodayByCreateTime(returnManagementMapper, "RT");
        String rt = OrderUtils.countTodayByCreateTime(returnManagementMapper, "RT","returnNo");
        returnManagementDto.setReturnNo(rt);
        save(returnManagementDto);
        for (ReturnSaleProduct returnSaleProduct : returnManagementDto.getReturnSaleProducts()) {
src/main/java/com/ruoyi/projectManagement/controller/RolesController.java
@@ -35,7 +35,7 @@
    @ApiOperation("新增")
    public AjaxResult add(@RequestBody RoleDto roleDto) {
        if (roleDto.getIsDefaultNo()) {
            roleDto.setNo(OrderUtils.countTodayByCreateTime(rolesMapper, "XMJS"));
            roleDto.setNo(OrderUtils.countTodayByCreateTime(rolesMapper, "XMJS","no"));
        }
        return AjaxResult.success(rolesservice.save(roleDto));
    }
src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
@@ -42,7 +42,7 @@
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PurchaseReturnOrderDto purchaseReturnOrderDto) throws Exception {
        if (purchaseReturnOrderDto.getIsDefaultNo()) {
            purchaseReturnOrderDto.setNo(OrderUtils.countTodayByCreateTime(purchaseReturnOrdersMapper, "CGTL"));
            purchaseReturnOrderDto.setNo(OrderUtils.countTodayByCreateTime(purchaseReturnOrdersMapper, "CGTL","no"));
        }
        return AjaxResult.success(purchaseReturnOrdersService.add(purchaseReturnOrderDto));
    }
src/main/java/com/ruoyi/sales/controller/PaymentShippingController.java
@@ -43,7 +43,7 @@
    @ApiOperation("添加支付与发货信息")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult add(@RequestBody PaymentShipping paymentShipping) {
        String ord = OrderUtils.countTodayByCreateTime(paymentShippingMapper, "ORD");
        String ord = OrderUtils.countTodayByCreateTime(paymentShippingMapper, "ORD","orderNo");
        paymentShipping.setOrderNo(ord);
        boolean save = paymentShippingService.save(paymentShipping);
        return save ? success() : error();
src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -74,7 +74,7 @@
    @Log(title = "发货信息管理", businessType = BusinessType.INSERT)
    public AjaxResult add(@RequestBody ShippingInfoDto req) throws Exception {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH");
        String sh = OrderUtils.countTodayByCreateTime(shippingInfoMapper, "SH","shippingNo");
        // 发货审批
        ApproveProcessVO approveProcessVO = new ApproveProcessVO();
        approveProcessVO.setApproveType(7);
src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -63,7 +63,7 @@
        LoginUser loginUser = SecurityUtils.getLoginUser();
        SalesQuotation salesQuotation = new SalesQuotation();
        BeanUtils.copyProperties(salesQuotationDto, salesQuotation);
        String quotationNo = OrderUtils.countTodayByCreateTime(salesQuotationMapper, "QT");
        String quotationNo = OrderUtils.countTodayByCreateTime(salesQuotationMapper, "QT","quotationNo");
        salesQuotation.setQuotationNo(quotationNo);
        salesQuotation.setStatus("待审批");
        salesQuotationMapper.insert(salesQuotation);
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -46,7 +46,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int add(StockInRecordDto stockInRecordDto) {
        String no = OrderUtils.countTodayByCreateTime(stockInRecordMapper, "RK");
        String no = OrderUtils.countTodayByCreateTime(stockInRecordMapper, "RK","inboundBatches");
        stockInRecordDto.setInboundBatches(no);
        StockInRecord stockInRecord = new StockInRecord();
        BeanUtils.copyProperties(stockInRecordDto, stockInRecord);
src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
@@ -51,7 +51,7 @@
    @Override
    public int add(StockOutRecordDto stockOutRecordDto) {
        String no = OrderUtils.countTodayByCreateTime(stockOutRecordMapper, "CK");
        String no = OrderUtils.countTodayByCreateTime(stockOutRecordMapper, "CK","outboundBatches");
        stockOutRecordDto.setOutboundBatches(no);
        StockInRecord stockInRecord = new StockInRecord();
        BeanUtils.copyProperties(stockOutRecordDto, stockInRecord);