package com.ruoyi.project.service.impl;
|
|
import java.util.HashMap;
|
import java.util.List;
|
|
import com.ruoyi.common.utils.bean.DtoConversionUtils;
|
import com.ruoyi.project.domain.*;
|
import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
|
import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
|
import com.ruoyi.project.mapper.*;
|
import com.ruoyi.project.service.IServiceReimbursementSharedService;
|
import com.ruoyi.project.service.IServiceReimbursementdetailSharedService;
|
import com.ruoyi.project.service.IServiceReimbursementpayeeSharedService;
|
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 java.util.Map;
|
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.project.service.IServiceReimbursementService;
|
import org.springframework.transaction.annotation.Transactional;
|
|
/**
|
* 报销申请Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2022-01-24
|
*/
|
@Service
|
public class ServiceReimbursementServiceImpl extends ServiceImpl<ServiceReimbursementMapper, ServiceReimbursement> implements IServiceReimbursementService {
|
|
@Autowired
|
ServiceReimbursementMapper serviceReimbursementMapper;
|
|
@Autowired
|
ServiceReimbursementdetailMapper serviceReimbursementdetailMapper;
|
|
@Autowired
|
ServiceReimbursementdetailSharedMapper serviceReimbursementdetailSharedMapper;
|
|
@Autowired
|
ServiceReimbursementpayeeMapper reimbursementpayeeMapper;
|
|
@Autowired
|
ServiceReimbursementpayeeSharedMapper reimbursementpayeeSharedMapper;
|
|
@Autowired
|
IServiceReimbursementdetailSharedService detailSharedService;
|
|
@Autowired
|
IServiceReimbursementSharedService sharedService;
|
|
@Autowired
|
IServiceReimbursementpayeeSharedService payeeSharedService;
|
|
/**
|
* 查询报销申请列表
|
*
|
* @param serviceReimbursement 报销申请
|
* @return 报销申请
|
*/
|
@Override
|
public List<ServiceReimbursement> queryList(ServiceReimbursement serviceReimbursement) {
|
LambdaQueryWrapper<ServiceReimbursement> wrappers = Wrappers.lambdaQuery();
|
if (StringUtils.isNotBlank(serviceReimbursement.getCreateBy())) {
|
wrappers.eq(ServiceReimbursement::getCreateBy, serviceReimbursement.getCreateBy());
|
}
|
if (serviceReimbursement.getCreateTime() != null) {
|
wrappers.eq(ServiceReimbursement::getCreateTime, serviceReimbursement.getCreateTime());
|
}
|
if (StringUtils.isNotBlank(serviceReimbursement.getUsername())) {
|
wrappers.like(ServiceReimbursement::getUsername, serviceReimbursement.getUsername());
|
}
|
if (StringUtils.isNotBlank(serviceReimbursement.getTravelers())) {
|
wrappers.like(ServiceReimbursement::getTravelers, serviceReimbursement.getTravelers());
|
}
|
if (StringUtils.isNotBlank(serviceReimbursement.getDeptmentname())) {
|
wrappers.like(ServiceReimbursement::getDeptmentname, serviceReimbursement.getDeptmentname());
|
}
|
if (StringUtils.isNotBlank(serviceReimbursement.getDonorno())) {
|
wrappers.eq(ServiceReimbursement::getDonorno, serviceReimbursement.getDonorno());
|
}
|
if (serviceReimbursement.getRecordstatus() != null) {
|
wrappers.eq(ServiceReimbursement::getRecordstatus, serviceReimbursement.getRecordstatus());
|
}
|
if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())) {
|
wrappers.eq(ServiceReimbursement::getUploadflag, serviceReimbursement.getUploadflag());
|
}
|
|
/* if (serviceReimbursement.getStarttime()!=null && serviceReimbursement.getEndtime()!=null){
|
wrappers.between(ServiceReimbursement::getCreateTime ,serviceReimbursement.getStarttime(),serviceReimbursement.getEndtime());
|
}*/
|
|
return this.list(wrappers);
|
}
|
|
@Override
|
public Long getMaxId() {
|
return serviceReimbursementMapper.getMaxId();
|
}
|
|
@Override
|
public List<ServiceReimbursementdetail> getRBDetailList(Long id) {
|
return serviceReimbursementdetailMapper.getRBDetailList(id);
|
}
|
|
@Override
|
@Transactional
|
public Boolean addSharedData(Long id) {
|
ServiceReimbursement serviceReimbursement = serviceReimbursementMapper.selectById(id);
|
Map<String, Object> columnMap = new HashMap<>();
|
columnMap.put("rbid", id);
|
//获取详情数据
|
List<ServiceReimbursementdetail> details = serviceReimbursementdetailMapper.selectByMap(columnMap);
|
//获取支付数据
|
List<ServiceReimbursementpayee> serviceReimbursementpayees = reimbursementpayeeMapper.selectByMap(columnMap);
|
//数据组装
|
ServiceReimbursementShared serviceReimbursementShared = DtoConversionUtils.sourceToTarget(serviceReimbursement, ServiceReimbursementShared.class);
|
serviceReimbursementShared.setReimid(id);
|
serviceReimbursementShared.setId(null);
|
List<ServiceReimbursementdetailShared> serviceReimbursementdetailShareds = DtoConversionUtils.sourceToTarget(details, ServiceReimbursementdetailShared.class);
|
List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds = DtoConversionUtils.sourceToTarget(serviceReimbursementpayees, ServiceReimbursementpayeeShared.class);
|
//将组装好的数据插入到分享表中
|
sharedService.save(serviceReimbursementShared);
|
|
//将serviceReimbursementdetail表里的id赋值给Rdid; 将serviceReimbursementShared里的ID赋值给RBID,并将serviceReimbursementdetailShared表里的id置空,由数据库重新生成
|
for (int i = 0; i < details.size(); i++) {
|
serviceReimbursementdetailShareds.get(i).setRdid(serviceReimbursementdetailShareds.get(i).getId());
|
serviceReimbursementdetailShareds.get(i).setRbid(serviceReimbursementShared.getId());
|
serviceReimbursementdetailShareds.get(i).setId(null);
|
}
|
detailSharedService.saveBatch(serviceReimbursementdetailShareds);
|
|
//将serviceReimbursementpayee表里的id赋值给Rpid; 将serviceReimbursementShared里的ID赋值给RBID,并将serviceReimbursementpayeeShared表里的id置空,由数据库重新生成
|
for (int i = 0; i < serviceReimbursementpayees.size(); i++) {
|
serviceReimbursementpayeeShareds.get(i).setRpid(Long.valueOf(serviceReimbursementpayees.get(i).getId()));
|
serviceReimbursementpayeeShareds.get(i).setRbid(serviceReimbursementShared.getId());
|
serviceReimbursementpayeeShareds.get(i).setId(null);
|
}
|
payeeSharedService.saveBatch(serviceReimbursementpayeeShareds);
|
|
return true;
|
}
|
|
@Override
|
public List<ServiceReimbursement> selectSearchList(ServiceReimbursementDto serviceReimbursementdto) {
|
return serviceReimbursementMapper.selectSearchList(serviceReimbursementdto);
|
}
|
|
@Override
|
public List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT, Integer CHECKFLAG, Integer APPLYTYPE) {
|
return serviceReimbursementMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE);
|
}
|
|
@Override
|
public List<ServiceReimbursement> getInfoByInfoId(Long infoid) {
|
return serviceReimbursementMapper.getInfoByInfoId(infoid);
|
}
|
|
@Override
|
public List<ServiceReimbursement> getInfoByInfoIdRelatives(Long infoid) {
|
return serviceReimbursementMapper.getInfoByInfoIdRelatives(infoid);
|
}
|
|
@Override
|
public List<ServiceReimbursementEo> getRDInfoByItem(ServiceReimbursementEo serviceReimbursementEo) {
|
return serviceReimbursementMapper.getRDInfoByItem(serviceReimbursementEo);
|
}
|
|
|
}
|