liusheng
2023-12-16 3db944578af704f433fc6f4bc37180c8fed48ce9
代码提交,添加apply_time
已修改11个文件
70 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundShared.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementShared.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceFundSharedMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementSharedMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -648,6 +648,7 @@
            return toAjax(false);
        }
        for (ServiceFund sf : infoByInfoIdList) {
            sf.setApplyTime(new Date());
            //如果等于100,说明已经走到医院财务那边了;财务那边取数据是从分享表取,所以,这里直接往分享表里添加数据就行了
            if (sf.getBackflowlevel() != null && sf.getBackflowlevel() == 199) {
                //将fund表的审核状态改成100
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -221,10 +221,11 @@
    //@PreAuthorize("@ss.hasPermi('project:reimbursement:add')")
    @Log(title = "报销申请", businessType = BusinessType.INSERT)
    @PostMapping
    @RepeatSubmit
    @RepeatSubmit
    @Options(useGeneratedKeys = true, keyProperty = "id")
    public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) {
        if (!Objects.isNull(serviceReimbursement)) {
            serviceReimbursement.setCreateTime(new Date());
            serviceReimbursement.setCheckstatus(serviceReimbursement.getCheckstatus() == null ? 1 : serviceReimbursement.getCheckstatus());
            boolean b = serviceReimbursementService.save(serviceReimbursement);
            Long id = serviceReimbursement.getId();
@@ -242,6 +243,7 @@
    @PostMapping("/travelexpensereport")
    public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO) {
        ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid());
        serviceReimbursement.setApplyTime(new Date());
        //如果等于100,说明已经走到医院财务那边了;财务那边取数据是从分享表取,所以,这里直接往分享表里添加数据就行了;
        if (!Objects.isNull(serviceReimbursement) && serviceReimbursement.getBackflowlevel() != null) {
            if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) {
ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java
@@ -8,6 +8,7 @@
import lombok.extern.slf4j.Slf4j;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Collection;
import java.util.List;
@@ -31,32 +32,35 @@
     */
    public static String getTaxation(BigDecimal money) {
        //当X<=800时,个税T=0
        BigDecimal taxMoney = new BigDecimal(0.0);
        BigDecimal taxMoney = BigDecimal.valueOf(0.0);
        //当800<X<=4000时,个税T=(X-800)*20%
        if (money.doubleValue() > 800 && money.doubleValue() <= 4000) {
            BigDecimal subtract = money.subtract(new BigDecimal(800));
            taxMoney = subtract.multiply(new BigDecimal(0.2));
            taxMoney = subtract.multiply(BigDecimal.valueOf(0.2));
        }
        BigDecimal multiply = money.multiply(new BigDecimal(0.8));
        BigDecimal multiply = money.multiply(BigDecimal.valueOf(0.8));
        // 当X>4000时
        //(1)当X*(1-20%)<=20000时,个税T=X*(1-20%)*20%
        if (money.doubleValue() > 4000 && multiply.doubleValue() <= 20000) {
            taxMoney = multiply.multiply(new BigDecimal(0.2));
            taxMoney = multiply.multiply(BigDecimal.valueOf(0.2));
        }
        //(2)当20000<X*(1-20%)<=50000时,个税T=X*(1-20%)*30%-2000
        if (multiply.doubleValue() > 20000 && multiply.doubleValue() <= 50000) {
            taxMoney = multiply.multiply(new BigDecimal(0.3)).subtract(new BigDecimal(2000));
            taxMoney = multiply.multiply(BigDecimal.valueOf(0.3)).subtract(BigDecimal.valueOf(2000));
        }
        //X*(1-20%)>50000时,个税T=X*(1-20%)*40%-7000
        if (multiply.doubleValue() > 50000) {
            taxMoney = multiply.multiply(new BigDecimal(0.4)).subtract(new BigDecimal(7000));
            taxMoney = multiply.multiply(BigDecimal.valueOf(0.4)).subtract(BigDecimal.valueOf(7000));
        }
        DecimalFormat decimalFormat = new DecimalFormat("#.00");
        DecimalFormat decimalFormat = new DecimalFormat("#0.00");
        //进一法
        decimalFormat.setRoundingMode(RoundingMode.CEILING);
        String format = decimalFormat.format(taxMoney);
        log.info("税金为:{}", format);
        return format;
    }
@@ -68,31 +72,33 @@
     */
    public static String getTaxationBefore(BigDecimal money) {
        //当X<=800时,个税T=0
        BigDecimal taxMoney = new BigDecimal(0.0);
        BigDecimal taxMoney = BigDecimal.valueOf(0.00);
        if (money.doubleValue() <= 800) {
            taxMoney = money;
        }
//第一个参数是除数,第二个参数代表保留几位小数,第三个代表的是使用的模式
        if (money.doubleValue() > 800 && money.doubleValue() <= 3360) {
            taxMoney = money.subtract(new BigDecimal(160)).divide(new BigDecimal(0.8), 2, BigDecimal.ROUND_UP);
            taxMoney = money.subtract(new BigDecimal(160)).divide(new BigDecimal(0.8), 2, BigDecimal.ROUND_CEILING);
        }
        if (money.doubleValue() > 3360 && money.doubleValue() <= 21000) {
            taxMoney = money.divide(new BigDecimal(0.84), 2, BigDecimal.ROUND_DOWN);
            taxMoney = money.divide(new BigDecimal(0.84), 2, BigDecimal.ROUND_CEILING);
        }
        if (money.doubleValue() > 21000 && money.doubleValue() <= 40000) {
            money = money.subtract(new BigDecimal(2000));
            taxMoney = money.divide(new BigDecimal(0.76), 2, BigDecimal.ROUND_DOWN);
            taxMoney = money.divide(new BigDecimal(0.76), 2, BigDecimal.ROUND_CEILING);
        }
        if (money.doubleValue() > 40000) {
            money = money.subtract(new BigDecimal(7000));
            taxMoney = money.divide(new BigDecimal(0.68), 2, BigDecimal.ROUND_DOWN);
            taxMoney = money.divide(new BigDecimal(0.68), 2, BigDecimal.ROUND_CEILING);
        }
        DecimalFormat decimalFormat = new DecimalFormat("#.00");
        DecimalFormat decimalFormat = new DecimalFormat("#0.00");
        //进一法
        decimalFormat.setRoundingMode(RoundingMode.CEILING);
        String format = decimalFormat.format(taxMoney);
        log.info("税前金额为:{}", format);
        return format;
@@ -100,8 +106,8 @@
    public static void main(String[] args) {
        String taxation = getTaxation(new BigDecimal(400));
        String taxationBefore = getTaxationBefore(new BigDecimal(400));
        String taxation = getTaxation(BigDecimal.valueOf(80589.723));
        String taxationBefore = getTaxationBefore(BigDecimal.valueOf(900.531));
        System.out.println(taxation + "        " + taxationBefore);
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFund.java
@@ -355,5 +355,12 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date fundtaxtime;
    /**
     * 上报时间
     */
    @ApiModelProperty("上报时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFundShared.java
@@ -1,6 +1,8 @@
package com.ruoyi.project.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
@@ -388,5 +390,11 @@
    @ApiModelProperty("绩效:1、月度、2季度、3年度")
    @Excel(name = "绩效:1、月度、2季度、3年度")
    private Integer performancetype;
    /** 上报时间 */
    @ApiModelProperty("上报时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java
@@ -337,8 +337,8 @@
    @Excel(name = "绩效:1、月度、2季度、3年度")
    private Integer performancetype;
//    @ApiModelProperty("开始时间")
//    private Date starttime;
    @ApiModelProperty("上报时间")
    private Date applyTime;
//
//    @ApiModelProperty("结束时间")
//    private Date endtime;
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementShared.java
@@ -386,5 +386,8 @@
    @ApiModelProperty("绩效:1、月度、2季度、3年度")
    @Excel(name = "绩效:1、月度、2季度、3年度")
    private Integer performancetype;
    @ApiModelProperty("上报时间")
    private Date applyTime;
}
ruoyi-project/src/main/resources/mapper/project/ServiceFundMapper.xml
@@ -59,6 +59,7 @@
        <result property="performancetype" column="performancetype"/>
        <result property="istax" column="istax"/>
        <result property="fundtaxtime" column="fundtaxtime"/>
        <result property="applyTime" column="apply_time"/>
    </resultMap>
ruoyi-project/src/main/resources/mapper/project/ServiceFundSharedMapper.xml
@@ -62,6 +62,7 @@
        <result property="bh" column="bh"/>
        <result property="checkstatus" column="checkstatus"/>
        <result property="performancetype" column="performancetype"/>
        <result property="applyTime" column="apply_time"/>
    </resultMap>
    <sql id="selectServiceFundSharedVo">
@@ -121,6 +122,7 @@
               riqi,
               bh,
               checkstatus,
               applytime,
               performancetype
        from service_fund_shared
    </sql>
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml
@@ -62,6 +62,7 @@
        <result property="bh" column="bh"/>
        <result property="checkstatus" column="checkstatus"/>
        <result property="performancetype" column="performancetype"/>
        <result property="applyTime" column="apply_time"/>
    </resultMap>
    <sql id="selectServiceReimbursementVo">
@@ -119,6 +120,7 @@
               riqi,
               bh,
               checkstatus,
               apply_time,
               performancetype
        from service_reimbursement
    </sql>
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementSharedMapper.xml
@@ -65,6 +65,7 @@
        <result property="bh" column="bh"/>
        <result property="checkstatus" column="checkstatus"/>
        <result property="performancetype" column="performancetype"/>
        <result property="applyTime" column="apply_time"/>
    </resultMap>
    <sql id="selectServiceReimbursementSharedVo">
@@ -127,6 +128,7 @@
               riqi,
               bh,
               checkstatus,
               apply_time,
               performancetype
        from service_reimbursement_shared
    </sql>