liusheng
2 天以前 fdc9651c4b83c18e044a3a9ac6b5e019ffa6328d
代码提交
已修改6个文件
75 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementEo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -320,7 +320,6 @@
                    serviceReimbursement.setFlowlevel(0L);
                    serviceReimbursement.setBackflowlevel(0L);
                }
            }
            if (!postids.contains(2) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) {
@@ -335,6 +334,32 @@
                serviceFundflow.setFlowlevel(serviceFundflowrules.get(0).getFlowlevel() - 1);
                serviceFundflowService.save(serviceFundflow);
                SysUser sysUser = null;
                if (serviceReimbursement.getFlowlevel() == 0L) {
                    //组长信息
                    SysUser su = new SysUser();
                    su.setNickName(serviceReimbursement.getManagername());
                    List<SysUser> sysUserList = sysUserService.selectUserList(su);
                    if (sysUserList.size() > 0) {
                        sysUser = sysUserList.get(0);
                    }
                } else if (serviceReimbursement.getFlowlevel() == 1L) {
                    //陈慕华信息
                    sysUser = sysUserService.selectUserByUserName("047");
                }
                ConcurrentHashMap map = new ConcurrentHashMap();
                ArrayList<ConcurrentHashMap<String, Object>> contentList = new ArrayList<>();
                map.put("提交人:", loginUser.getUser().getUserName());
                map.put("提交时间:", new Date());
                map.put("内容:", serviceReimbursement.getReason());
                contentList.add(map);
                DingTalkReqVo dingTalkReqVo = new DingTalkReqVo();
                dingTalkReqVo.setTitle("差旅审批信息");
                dingTalkReqVo.setNumber(sysUser != null ? sysUser.getPhonenumber() : "");
                dingTalkReqVo.setContents(contentList);
                dingTalkService.sendNotification(dingTalkReqVo);
            }
            serviceReimbursementService.updateById(serviceReimbursement);
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -81,7 +81,9 @@
        }
        SysUser sysUser = sysUserMapper.selectUserByUserName(username);
        if (sysUser.getErrorNums() >= 3) {
        //获取锁定次数
        String s = configService.selectConfigByKey("sys.opo.lockpwd");
        if (sysUser.getErrorNums() >= Integer.valueOf(s)) {
            //校验失败次数
            throw new BaseException("你的密码输入错误次数过多,请联系管理员处理");
        }
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java
@@ -289,6 +289,9 @@
    @ApiModelProperty("费用归属描述")
    private String costtypename;
    @ApiModelProperty("家属人数(仅限costtypename是家属的时候)")
    private Long personNum;
    @ApiModelProperty("捐献家属银行")
    private String donorbank;
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursementEo.java
@@ -30,6 +30,10 @@
    @TableId(type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("家属人数(仅限costtypename是家属的时候)")
    private Long personNum;
    /**
     * 报销人编号
     */
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
@@ -346,9 +346,9 @@
            // 5.2.3 算税逻辑
            if (detail.getServicesscopename().contains("税后")) {
                // 税后明细:累计税后金额,反推税前金额和税金
                if (idcard.equals("330103196704060019")) {
                    log.info("330103196704060019");
                }
//                if (idcard.equals("362329199103224511")) {
//                    log.info("朱玮安");
//                }
                BigDecimal newTaxedAmounts = BigDecimal.valueOf(taxSum.getTaxedAmounts()).add(BigDecimal.valueOf(detail.getTaxedamount()));
                String taxationBefore = TaxtUtils.getTaxationBefore(newTaxedAmounts);
                BigDecimal amountNow = new BigDecimal(taxationBefore).subtract(BigDecimal.valueOf(taxSum.getAmounts()));
@@ -360,26 +360,21 @@
                } else {
                    detail.setTaxTime(serviceFund1.getFundtaxtime());
                }
                if (tax.doubleValue() < 0) {
                    log.info("小于0了");
                }
                taxSum.setAmounts((BigDecimal.valueOf(taxSum.getAmounts()).add(amountNow)).doubleValue());
                taxSum.setTaxAmounts((BigDecimal.valueOf(taxSum.getTaxAmounts()).add(tax)).doubleValue());
                taxSum.setTaxedAmounts(newTaxedAmounts.doubleValue());
            } else {
                // 税前明细:累计税前金额,算总税金,再算本次税金和税后金额
                BigDecimal newAmounts = BigDecimal.valueOf(taxSum.getAmounts()).add(BigDecimal.valueOf(detail.getAmount()));
                if (idcard.equals("330103196704060019")) {
                    log.info("330103196704060019");
                }
//                if (idcard.equals("362329199103224511")) {
//                    log.info("朱玮安");
//                }
                String taxation = TaxtUtils.getTaxation(newAmounts);
                BigDecimal taxAmountNow = new BigDecimal(taxation).subtract(new BigDecimal(String.valueOf(taxSum.getTaxAmounts())));
                BigDecimal texdAfterNow = BigDecimal.valueOf(detail.getAmount()).subtract(taxAmountNow);
                detail.setTaxamount(taxAmountNow.doubleValue());
                detail.setTaxedamount(texdAfterNow.doubleValue());
                if (taxAmountNow.doubleValue() < 0) {
                    log.info("小于0了");
                }
                if (ObjectUtils.isEmpty(serviceFund1.getFundtaxtime())) {
                    detail.setTaxTime(new Date());
ruoyi-project/src/main/resources/mapper/project/ServiceReimbursementMapper.xml
@@ -65,11 +65,13 @@
        <result property="applyTime" column="apply_time"/>
        <result property="uploadStates" column="upload_states"/>
        <result property="notes" column="notes"/>
        <result property="personNum" column="person_num"/>
    </resultMap>
    <sql id="selectServiceReimbursementVo">
        select ID,
               del_flag,
               person_num,
               create_by,
               create_time,
               update_by,
@@ -143,6 +145,7 @@
            <if test="recordstatus != null  and recordstatus != ''">and RecordStatus = #{recordstatus}</if>
            <if test="uploadflag != null  and uploadflag != ''">and uploadflag = #{uploadflag}</if>
            <if test="travelers != null  and travelers != ''">and Travelers = #{travelers}</if>
            <if test="personNum != null ">and person_num = #{personNum}</if>
        </where>
    </select>
    <select id="getMaxId" resultType="java.lang.Long">
@@ -176,13 +179,19 @@
    </select>
    <select id="getRDInfoByItem" resultType="com.ruoyi.project.domain.ServiceReimbursementEo">
        SELECT a.id as id,a.apply_time as applyTime,a.UserNo as userno,a.FlowLevel as recordstatus,b.persontype as persontype,a.create_time as
        createTime,a.managername as managername,a.bh as bh,a.OPOchecker as opochecker,a.FinVicePresident as finvicepresident,a.BusVicePresident as busvicepresident,a.OfficeDirector  as officedirector,a.FinanceDirector  as financedirector,a.FinanceChecher  as financechecher,
        SELECT a.id as id,a.apply_time as applyTime,a.UserNo as userno,a.FlowLevel as recordstatus,b.persontype as
        persontype,a.create_time as
        createTime,a.managername as managername,a.bh as bh,a.OPOchecker as opochecker,a.FinVicePresident as
        finvicepresident,a.BusVicePresident as busvicepresident,a.OfficeDirector as officedirector,a.FinanceDirector as
        financedirector,a.FinanceChecher as financechecher,
        a.UserName as username,b.personname as travelers,a.AmountRequested as amountrequested,a.Reason as reason,a.Phone
        as phone,a.DepositBank as depositbank,a.BankCardNo as bankcardno,a.DonorName as donorname,a.DeptmentName as deptmentname,b.trafficexpense as
        as phone,a.DepositBank as depositbank,a.BankCardNo as bankcardno,a.DonorName as donorname,a.DeptmentName as
        deptmentname,b.trafficexpense as
        trafficexpense,b.hotelexpense as hotelexpense,b.FoodExpenses as foodexpenses, b.foodallowance as foodallowance,
        b.otherexpense as otherexpense,b.otherfeeamount as otherfeeamount,b.CityFee as cityfee FROM service_reimbursement a LEFT JOIN
        b.otherexpense as otherexpense,b.otherfeeamount as otherfeeamount,b.CityFee as cityfee,a.person_num as personNum FROM
        service_reimbursement a LEFT JOIN
        service_reimbursementdetail b on a.id=b.RBID where a.del_flag != 1 and b.del_flag!=1
        <if test="id != null">
            and a.id = #{id}
        </if>
@@ -201,6 +210,7 @@
        <if test='starttime != null and endtime != ""'>
            and a.create_time BETWEEN #{starttime} AND #{endtime}
        </if>
        <if test="personNum != null ">and a.person_num = #{personNum}</if>
        ORDER BY a.id desc
    </select>