liusheng
2023-05-30 5ec90e5ccaa103b6057b0ce9ea1c416f0c606513
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package com.ruoyi.project.service.impl;
 
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
import java.util.List;
 
import com.ruoyi.project.domain.*;
import com.ruoyi.project.mapper.ServiceFundMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.project.mapper.ServiceFunddetailMapper;
import com.ruoyi.project.service.IServiceFunddetailService;
 
/**
 * 费用申请明细Service业务层处理
 *
 * @author ruoyi
 * @date 2022-01-25
 */
@Service
public class ServiceFunddetailServiceImpl extends ServiceImpl<ServiceFunddetailMapper, ServiceFunddetail> implements IServiceFunddetailService {
 
    @Autowired
    ServiceFunddetailMapper serviceFunddetailMapper;
 
    @Autowired
    ServiceFundMapper serviceFundMapper;
 
 
    /**
     * 查询费用申请明细列表
     *
     * @param serviceFunddetail 费用申请明细
     * @return 费用申请明细
     */
    @Override
    public List<ServiceFunddetail> queryList(ServiceFunddetail serviceFunddetail) {
        LambdaQueryWrapper<ServiceFunddetail> wrappers = Wrappers.lambdaQuery();
        if (StringUtils.isNotBlank(serviceFunddetail.getBeneficiaryname())) {
            wrappers.like(ServiceFunddetail::getBeneficiaryname, serviceFunddetail.getBeneficiaryname());
        }
        if (StringUtils.isNotBlank(serviceFunddetail.getUnitname())) {
            wrappers.like(ServiceFunddetail::getUnitname, serviceFunddetail.getUnitname());
        }
        if (StringUtils.isNotBlank(serviceFunddetail.getApplytype())) {
            wrappers.eq(ServiceFunddetail::getApplytype, serviceFunddetail.getApplytype());
        }
        if (StringUtils.isNotBlank(serviceFunddetail.getItemname())) {
            wrappers.like(ServiceFunddetail::getItemname, serviceFunddetail.getItemname());
        }
        if (StringUtils.isNotBlank(serviceFunddetail.getItemtype())) {
            wrappers.eq(ServiceFunddetail::getItemtype, serviceFunddetail.getItemtype());
        }
        if (StringUtils.isNotBlank(serviceFunddetail.getRecordstatus())) {
            wrappers.eq(ServiceFunddetail::getRecordstatus, serviceFunddetail.getRecordstatus());
        }
        if (StringUtils.isNotBlank(serviceFunddetail.getCreateBy())) {
            wrappers.eq(ServiceFunddetail::getCreateBy, serviceFunddetail.getCreateBy());
        }
        if (serviceFunddetail.getCreateTime() != null) {
            wrappers.eq(ServiceFunddetail::getCreateTime, serviceFunddetail.getCreateTime());
        }
        if (StringUtils.isNotBlank(serviceFunddetail.getUploadflag())) {
            wrappers.eq(ServiceFunddetail::getUploadflag, serviceFunddetail.getUploadflag());
        }
        if (serviceFunddetail.getUploadtime() != null) {
            wrappers.eq(ServiceFunddetail::getUploadtime, serviceFunddetail.getUploadtime());
        }
        return this.list(wrappers);
    }
 
    @Override
    public List<ServiceFunddetail> getDataBybeneficiaryNo(FunddetailReqVo funddetailReqVo) {
        if (StringUtils.isEmpty(funddetailReqVo.getStarttime())) {
            // 获取当月第一天日期
            funddetailReqVo.setStarttime(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).toString());
        }
        if (StringUtils.isEmpty(funddetailReqVo.getEndtime())) {
            // 获取当月最后一天日期
            funddetailReqVo.setEndtime(LocalDate.now().with(TemporalAdjusters.lastDayOfMonth()).toString());
        }
        List<ServiceFunddetail> dataBybeneficiaryNo = serviceFunddetailMapper.getDataBybeneficiaryNo(funddetailReqVo);
 
        return dataBybeneficiaryNo;
    }
 
    @Override
    public List<ServiceFunddetail> getAllDetailsByFDIDLW(Long id) {
        return serviceFunddetailMapper.getAllDetailsByFDIDLW(id);
    }
 
    @Override
    public List<ServiceFunddetail> getAllDetailsByFDIDSH(Long id) {
        return serviceFunddetailMapper.getAllDetailsByFDIDSH(id);
    }
 
    @Override
    public List<ServiceFunddetail> getAllDetailsByFDIDSS(Long id) {
        return serviceFunddetailMapper.getAllDetailsByFDIDSS(id);
    }
 
    @Override
    public List<ServiceFunddetail> getAllDetailsByFDIDYX(Long id) {
        return serviceFunddetailMapper.getAllDetailsByFDIDYX(id);
    }
 
    @Override
    public List<ServiceFunddetail> getAllDetailsByFDIDHZ(Long id) {
        return serviceFunddetailMapper.getAllDetailsByFDIDHZ(id);
    }
 
    @Override
    public List<ServiceFunddetail> getAllDetailsByFDIDLWF(Long id) {
        return serviceFunddetailMapper.getAllDetailsByFDIDLWF(id);
    }
 
    @Override
    public List<ServiceFunddetail> selectServiceFunddetailList(ServiceFunddetail serviceFunddetail) {
        return serviceFunddetailMapper.selectServiceFunddetailList(serviceFunddetail);
    }
 
    @Override
    public int deleteDetail(Long id) {
        ServiceFunddetail serviceFunddetail = serviceFunddetailMapper.selectById(id);
        Long fundid = serviceFunddetail.getFundid();
        ServiceFund serviceFund = serviceFundMapper.selectById(fundid);
 
        Double pretax = serviceFund.getPretaxcost();
        Double aftertax = serviceFund.getTaxedcost();
        pretax = pretax - serviceFunddetail.getAmount();
        aftertax = aftertax - serviceFunddetail.getTaxedamount();
        Double amount = pretax + aftertax;
 
        serviceFund.setPretaxcost(pretax);
        serviceFund.setTaxedcost(aftertax);
        serviceFund.setAmountrequested(amount);
        int updateAmount = serviceFundMapper.updateById(serviceFund);
 
        return serviceFunddetailMapper.deleteById(id);
    }
 
 
}