zhibing.pu
2024-08-20 82d0b3ce6642174bee5a91817058d1023904967e
Merge remote-tracking branch 'origin/master'
1个文件已修改
1个文件已添加
108 ■■■■■ 已修改文件
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/CodeGenerateUtils.java
New file
@@ -0,0 +1,106 @@
package com.ruoyi.common.core.utils;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
 * @Description 活动订单操作
 * @Author xiaochen
 * @Date 2021/7/28 10:26
 */
public class CodeGenerateUtils {
    /**
     * @return
     * @Description 获取商品编码
     * 商品编码规则:nanoTime(后5位)*5位随机数(10000~99999)
     * @Author xiaochen
     */
    public static String generateProductCode() {
        long nanoPart = System.nanoTime() % 100000L;
        if (nanoPart < 10000L) {
            nanoPart += 10000L;
        }
        long randomPart = (long) (Math.random() * (90000) + 10000);
        String code = "0" + String.valueOf((new BigDecimal(nanoPart).multiply(new BigDecimal(randomPart))));
        return code.substring(code.length() - 10);
    }
    /**
     * @param id: 用户id
     * @return
     * @Description 生成订单编号
     * 订单编号规则:(10位):(年末尾*月,取后2位)+(用户ID%3.33*日取整后2位)+(timestamp*10000以内随机数,取后6位)
     * @Author xiaochen
     */
    public static String generateOrderSn(long id) {
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        year = year % 10;
        if (year == 0) year = 10;
        int month = calendar.get(Calendar.MONTH) + 1;
        int yearMonth = year * month;
        String yearMonthPart = "0" + yearMonth;
        yearMonthPart = yearMonthPart.substring(yearMonthPart.length() - 2);
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int dayNum = (int) ((id % 3.33) * day);
        String dayPart = "0" + dayNum;
        dayPart = dayPart.substring(dayPart.length() - 2);
        String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000);
        timestampPart = timestampPart.replace(".", "").replace("E", "");
        timestampPart = timestampPart.substring(0, 6);
        return yearMonthPart + dayPart + timestampPart;
    }
    /**
     * @return
     * @Description 生成统一支付单号  规则:年(2)月(2)日(2)时(2)分(2)+timestamp*5位随机整数取后5位
     * @Author xiaochen
     */
    public static String generateVolumeSn() {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmmss");
        String dateTime = dateFormat.format(calendar.getTime());
        dateTime = dateTime.substring(2);
        String timestampPart = "" + (Math.random() * 10000) * (System.currentTimeMillis() / 10000);
        timestampPart = timestampPart.replace(".", "").replace("E", "");
        timestampPart = timestampPart.substring(0, 5);
        return dateTime + timestampPart;
    }
    public static void main(String[] args) {
        for (long i = 0; i < 20; i++) {
            //String timestampPart = ""+(Math.random() * 10000) * (System.currentTimeMillis()/10000);
            //System.out.println(timestampPart);
            //System.out.println(generateOrderSn(i));
            long l = System.currentTimeMillis() * Long.valueOf(CodeGenerateUtils.generateProductCode().substring(0, 5));
            System.out.println(String.valueOf(l).substring(0,10));
        }
    }
    /**
     * @description  id补0生成编号
     * @author  jqs
     * @date    2024/4/17 14:19
     * @param totalLength
     * @param id
     * @return  String
     */
    public static String toFillZeroCode(int totalLength, Long id) {
        String idStr = id.toString();
        int length = idStr.length();
        if(totalLength <= length){
            return idStr;
        }
        int fillLength = totalLength - length;
        StringBuilder idsbs = new StringBuilder();
        for (int i = 0; i < fillLength; i++) {
            idsbs.append("0");
        }
        return idsbs.append(idStr).toString();
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TVehicleRampController.java
@@ -3,6 +3,7 @@
import com.ruoyi.chargingPile.api.model.TVehicleRamp;
import com.ruoyi.chargingPile.service.TVehicleRampService;
import com.ruoyi.common.core.utils.CodeGenerateUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.domain.BaseDelete;
import com.ruoyi.common.log.annotation.Log;
@@ -43,6 +44,7 @@
    @ApiOperation(tags = {"后台-车道"},value = "添加车道")
    @PostMapping(value = "/add")
    public AjaxResult<Boolean> add(@RequestBody TVehicleRamp dto) {
        dto.setCarportNum(CodeGenerateUtils.generateVolumeSn());
        return AjaxResult.ok(vehicleRampService.save(dto));
    }