liusheng
2 天以前 d75a864b57bdc147e044fad256d640e4ff3bd0bb
代码提交
已修改5个文件
已添加1个文件
93 ■■■■■ 文件已修改
ruoyi-project/src/main/java/com/ruoyi/project/common/IdGeneratorUtils.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitness.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/common/IdGeneratorUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package com.ruoyi.project.common;
import java.net.InetAddress;
import java.util.concurrent.ThreadLocalRandom;
public class IdGeneratorUtils {
    // æœºå™¨ID(0-31)
    private static final long MACHINE_ID = getMachineId() & 31L;
    // æ—¶é—´æˆ³å·¦ç§»çš„位数(22位给计数器,5位给机器ID)
    private static final long TIMESTAMP_SHIFT = 22 + 5;
    private static final long COUNTER_BITS = 22L;
    private static final long MAX_COUNTER = (1L << COUNTER_BITS) - 1;
    private static long lastTimestamp = -1L;
    private static long counter = 0L;
    public synchronized static long nextId() {
        long timestamp = System.currentTimeMillis();
        if (timestamp < lastTimestamp) {
            throw new RuntimeException("Clock moved backwards");
        }
        if (timestamp == lastTimestamp) {
            counter = (counter + 1) & MAX_COUNTER;
            if (counter == 0) {
                // åŒä¸€æ¯«ç§’内计数器用完,等待下一毫秒
                timestamp = waitNextMillis(lastTimestamp);
            }
        } else {
            counter = 0L;
        }
        lastTimestamp = timestamp;
        return ((timestamp) << TIMESTAMP_SHIFT) |
                (MACHINE_ID << COUNTER_BITS) |
                counter;
    }
    private static long waitNextMillis(long lastTimestamp) {
        long timestamp = System.currentTimeMillis();
        while (timestamp <= lastTimestamp) {
            timestamp = System.currentTimeMillis();
        }
        return timestamp;
    }
    private static long getMachineId() {
        try {
            // å¯ä»¥æ ¹æ®éœ€è¦èŽ·å–æœºå™¨æ ‡è¯†ï¼Œæ¯”å¦‚IP地址最后一段
            String hostAddress = InetAddress.getLocalHost().getHostAddress();
            return Long.parseLong(hostAddress.split("\\.")[3]);
        } catch (Exception e) {
            return ThreadLocalRandom.current().nextLong(32);
        }
    }
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitness.java
@@ -44,6 +44,13 @@
    private String donorno;
    /**
     * æçŒ®åŒ»é™¢
     */
    @ApiModelProperty("捐献医院")
    @Excel(name = "捐献医院")
    private String donateHospital;
    /**
     * å™¨å®˜èŽ·å–æœºæž„ç¼–å·
     */
    @ApiModelProperty("器官获取机构编号")
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
@@ -59,6 +59,13 @@
    private String organname;
    /**
     * æçŒ®åŒ»é™¢
     */
    @ApiModelProperty("捐献医院")
    @Excel(name = "捐献医院")
    private String donateHospital ;
    /**
     * å™¨å®˜ç¼–号
     */
    @ApiModelProperty("器官编号 ")
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
@@ -21,6 +21,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.common.IdGeneratorUtils;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.vo.*;
import com.ruoyi.project.mapper.*;
@@ -682,8 +683,6 @@
        return true;
    }
    private static final AtomicLong COUNTER = new AtomicLong(System.currentTimeMillis());
    private Map<String, List<Map<String, Object>>> formson_0832(List<ServiceFunddetailShared> serviceFunddetailSharedList) {
        Map<String, List<Map<String, Object>>> allMap = new HashMap<>();
@@ -703,7 +702,7 @@
            map.put("收益人家属或专家", serviceFunddetailShared.getBeneficiaryname());
            map.put("税后金额", serviceFunddetailShared.getTaxedamount());
            map.put("作废最终金额", null);
            Long fpuuid = COUNTER.incrementAndGet();
            Long fpuuid = IdGeneratorUtils.nextId();
            map.put("发票附件", "");
            if (StringUtils.isNotEmpty(invoicefiles)) {
                map.put("发票附件", fpuuid);
@@ -711,7 +710,7 @@
            map.put("发票识别", null);
            map.put("识别人", null);
            map.put("税额", serviceFunddetailShared.getTaxamount());
            long qtuuid = COUNTER.incrementAndGet();
            long qtuuid = IdGeneratorUtils.nextId();
            map.put("其他附件", "");
            if (StringUtils.isNotEmpty(annexfiles)) {
                map.put("其他附件", qtuuid);
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
@@ -17,7 +17,7 @@
import com.ruoyi.common.utils.HttpClientKit;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.project.common.IdGeneratorUtils;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
import com.ruoyi.project.domain.vo.CheckFundVO;
@@ -635,8 +635,6 @@
        return true;
    }
    private static final AtomicLong COUNTER = new AtomicLong(System.currentTimeMillis());
    private Map<String, List<Map<String, Object>>> formson_1210(List<ServiceReimbursementdetailShared> serviceReimbursementdetailSharedList) {
        Map<String, List<Map<String, Object>>> allMap = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<>();
@@ -667,12 +665,12 @@
            map.put("人员类别", reimbursementdetailShared.getPersontype());
            map.put("住宿费标准", "");
            map.put("住宿费标准合计", reimbursementdetailShared.getHotelexpense());
            Long fpuuid = COUNTER.incrementAndGet();
            Long fpuuid = IdGeneratorUtils.nextId();
            map.put("发票附件", fpuuid);
            map.put("票据识别", "");
            map.put("识别人", "");
            map.put("序号1", "");
            Long qtuuid = COUNTER.incrementAndGet();
            Long qtuuid = IdGeneratorUtils.nextId();
            map.put("其他附件", qtuuid);
            map.put("个人票夹用户", "");
            map.put("识别票据", "");
ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -47,11 +47,13 @@
        <result property="coordinatorOutOperating" column="coordinator_out_operating"/>
        <result property="coordinatorSign" column="coordinator_sign"/>
        <result property="coordinatorSignTime" column="coordinator_sign_time"/>
        <result property="donateHospital" column="donate_hospital"/>
    </resultMap>
    <sql id="selectServiceDonationwitnessVo">
        select ID,
               InfoID,
               donate_hospital,
               coordinator_in_operating,
               coordinator_out_operating,
               coordinator_sign,
@@ -100,6 +102,7 @@
        <include refid="selectServiceDonationwitnessVo"/>
        <where>
            <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
            <if test="donateHospital != null  and donateHospital != ''">and donate_hospital = #{donateHospital}</if>
            <if test="gainhospitalname != null  and gainhospitalname != ''">and GainHospitalName like concat('%',
                #{gainhospitalname}, '%')
            </if>
@@ -173,6 +176,7 @@
        `service_donationwitness`.`coordinator_out_operating` AS `coordinatorOutOperating`,
        `service_donationwitness`.`coordinator_sign` AS `coordinatorSign`,
        `service_donationwitness`.`coordinator_sign_time` AS `coordinatorSignTime`
        `service_donationwitness`.`donate_hospital` AS `donate_hospital`
        FROM
        `service_donatebaseinfo`
        LEFT JOIN `service_donationwitness` ON
@@ -265,6 +269,7 @@
            w.del_flag=0
            and b.del_flag=0
            <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
            <if test="donateHospital != null ">and w.donate_hospital >= #{donateHospital}</if>
            <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
            <if test="city != null and city != ''">and o.City = #{city}</if>
            <if test="reporterno != null and reporterno != ''">and b.ReporterNo = #{reporterno}</if>