|
|
|
@ -2,22 +2,26 @@ package com.dxhy.core.service.frJob; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
|
import com.dxhy.common.utils.R; |
|
|
|
|
import com.dxhy.core.dao.frTask.RecordToQueryDao; |
|
|
|
|
import com.dxhy.common.enums.KjkmTaxEnmu; |
|
|
|
|
import com.dxhy.core.entity.frJob.FpTaxAmount; |
|
|
|
|
import com.dxhy.core.entity.frJob.FrRequestDto; |
|
|
|
|
import com.dxhy.core.entity.frJob.VoucherRecordQuery; |
|
|
|
|
import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; |
|
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.Calendar; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
@Service("recordToQueryService") |
|
|
|
|
@Slf4j |
|
|
|
|
public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, VoucherRecordQuery> implements RecordToQueryService { |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
@ -35,16 +39,19 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc |
|
|
|
|
|
|
|
|
|
private final String JXSZC = "2221010900"; |
|
|
|
|
|
|
|
|
|
//分页大小
|
|
|
|
|
private int pageSize = 5000; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void getDataForFr() { |
|
|
|
|
public void getDataForFr(String param) { |
|
|
|
|
|
|
|
|
|
pageSize = stringToInt(param); |
|
|
|
|
//开始插入主数据信息
|
|
|
|
|
try { |
|
|
|
|
boolean flag1 = this.insertJxDataToQuery(); |
|
|
|
|
if (flag1){ |
|
|
|
|
queryDetailDataService.insertJxDataToQueryDetail(); |
|
|
|
|
queryDetailDataService.insertJxDataToQueryDetail(pageSize); |
|
|
|
|
} |
|
|
|
|
}catch (Exception e) { |
|
|
|
|
log.error("帆软进项增值税数据获取异常",e); |
|
|
|
@ -53,7 +60,7 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc |
|
|
|
|
try { |
|
|
|
|
boolean flag2 = this.insertXxDataToQuery(); |
|
|
|
|
if (flag2){ |
|
|
|
|
queryDetailDataService.insertXxDataToQueryDetail(); |
|
|
|
|
queryDetailDataService.insertXxDataToQueryDetail(pageSize); |
|
|
|
|
} |
|
|
|
|
}catch (Exception e) { |
|
|
|
|
log.error("帆软销项增值税数据获取异常",e); |
|
|
|
@ -62,7 +69,7 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc |
|
|
|
|
try { |
|
|
|
|
boolean flag3 = this.insertZyDataToQuery(); |
|
|
|
|
if (flag3){ |
|
|
|
|
queryDetailDataService.insertZyDataToQueryDetail(); |
|
|
|
|
queryDetailDataService.insertZyDataToQueryDetail(pageSize); |
|
|
|
|
} |
|
|
|
|
}catch (Exception e) { |
|
|
|
|
log.error("帆软主营业务收入数据获取异常",e); |
|
|
|
@ -70,179 +77,156 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc |
|
|
|
|
this.insertOutDataToQuery(); |
|
|
|
|
|
|
|
|
|
//更新发票认证状态
|
|
|
|
|
List<String> uuids = queryDetailDataService.getRzztDetail(); |
|
|
|
|
|
|
|
|
|
if (uuids != null && uuids.size() > 0){ |
|
|
|
|
if (uuids.size() > 5000){ |
|
|
|
|
|
|
|
|
|
int count = uuids.size()%5000==0?uuids.size()/5000:uuids.size()/5000+1; |
|
|
|
|
for (int i = 0; i < count; i++) { |
|
|
|
|
int start = i*5000; |
|
|
|
|
int end = (i+1)*5000; |
|
|
|
|
if (i == count-1){ |
|
|
|
|
end = uuids.size(); |
|
|
|
|
} |
|
|
|
|
List<String> subList = uuids.subList(start,end); |
|
|
|
|
queryDetailDataService.updateRzzt(subList); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
List<String> rzztList = recordToQueryDao.getRzzt(uuids); |
|
|
|
|
|
|
|
|
|
if (rzztList != null && rzztList.size() > 0){ |
|
|
|
|
queryDetailDataService.updateRzzt(rzztList); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
updateRzStatus(); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean insertJxDataToQuery() { |
|
|
|
|
|
|
|
|
|
boolean flag = false; |
|
|
|
|
boolean flag = true; |
|
|
|
|
//1.获取时间
|
|
|
|
|
String[] time = getTime(JXZZS); |
|
|
|
|
|
|
|
|
|
//2.查询数据
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getDataFromRecordItems(time[0], time[1],JXZZS); |
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0){ |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
voucherRecordQuerys.forEach(v->v.setSl(taxMap.get(v.getKjkmbh()))); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size()>0){ |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
//7.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
//8.保存或更新
|
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys.size()>5000){ |
|
|
|
|
int count = voucherRecordQuerys.size()%5000==0?voucherRecordQuerys.size()/5000:voucherRecordQuerys.size()/5000+1; |
|
|
|
|
for (int i = 0; i < count; i++) { |
|
|
|
|
int start = i*5000; |
|
|
|
|
int end = (i+1)*5000; |
|
|
|
|
if (i == count-1){ |
|
|
|
|
end = voucherRecordQuerys.size(); |
|
|
|
|
} |
|
|
|
|
List<VoucherRecordQuery> subList = voucherRecordQuerys.subList(start,end); |
|
|
|
|
recordToQueryDao.insertOrUpdate(subList); |
|
|
|
|
//是否继续循环
|
|
|
|
|
boolean hasNext = true; |
|
|
|
|
//页数
|
|
|
|
|
int pageNum = 1; |
|
|
|
|
|
|
|
|
|
while (hasNext){ |
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
//2.查询数据
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getDataFromRecordItems(time[0], time[1],JXZZS); |
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0){ |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
voucherRecordQuerys.forEach(v->v.setSl(taxMap.get(v.getKjkmbh()))); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size()>0){ |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
//7.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
//8.保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(voucherRecordQuerys); |
|
|
|
|
PageInfo<VoucherRecordQuery> pageInfo = new PageInfo<>(voucherRecordQuerys); |
|
|
|
|
hasNext = pageInfo.isHasNextPage(); |
|
|
|
|
pageNum++; |
|
|
|
|
}else { |
|
|
|
|
hasNext = false; |
|
|
|
|
} |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return flag; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean insertXxDataToQuery() { |
|
|
|
|
boolean flag = false; |
|
|
|
|
boolean flag = true; |
|
|
|
|
//1.获取时间
|
|
|
|
|
String[] time = getTime(XXZZS); |
|
|
|
|
|
|
|
|
|
//2.查询数据
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getDataXFromRecordItems(time[0],time[1],XXZZS); |
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> { |
|
|
|
|
v.setSl(taxMap.get(v.getKjkmbh())); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size() > 0) { |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
|
|
|
|
|
//7.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//8.保存或更新
|
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys.size()>5000){ |
|
|
|
|
int count = voucherRecordQuerys.size()%5000==0?voucherRecordQuerys.size()/5000:voucherRecordQuerys.size()/5000+1; |
|
|
|
|
for (int i = 0; i < count; i++) { |
|
|
|
|
int start = i*5000; |
|
|
|
|
int end = (i+1)*5000; |
|
|
|
|
if (i == count-1){ |
|
|
|
|
end = voucherRecordQuerys.size(); |
|
|
|
|
} |
|
|
|
|
List<VoucherRecordQuery> subList = voucherRecordQuerys.subList(start,end); |
|
|
|
|
recordToQueryDao.insertOrUpdate(subList); |
|
|
|
|
//是否继续循环
|
|
|
|
|
boolean hasNext = true; |
|
|
|
|
//页数
|
|
|
|
|
int pageNum = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while (hasNext) { |
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
//2.查询数据
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getDataXFromRecordItems(time[0],time[1],XXZZS); |
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> { |
|
|
|
|
v.setSl(taxMap.get(v.getKjkmbh())); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size() > 0) { |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
|
|
|
|
|
//7.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
|
|
|
|
|
//8.保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(voucherRecordQuerys); |
|
|
|
|
PageInfo<VoucherRecordQuery> pageInfo = new PageInfo<>(voucherRecordQuerys); |
|
|
|
|
hasNext = pageInfo.isHasNextPage(); |
|
|
|
|
pageNum++; |
|
|
|
|
}else { |
|
|
|
|
hasNext = false; |
|
|
|
|
} |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return flag; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean insertZyDataToQuery() { |
|
|
|
|
boolean flag = false; |
|
|
|
|
boolean flag = true; |
|
|
|
|
//1.获取时间
|
|
|
|
|
String[] time = getTime(ZYYWSR); |
|
|
|
|
|
|
|
|
|
//2.查询数据
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getDataZFromRecordItems(time[0],time[1],ZYYWSR); |
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
|
|
|
|
|
|
|
|
|
//3.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//4.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getZTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size() > 0) { |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpje)); |
|
|
|
|
//是否继续循环
|
|
|
|
|
boolean hasNext = true; |
|
|
|
|
//页数
|
|
|
|
|
int pageNum = 1; |
|
|
|
|
|
|
|
|
|
while (hasNext) { |
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
//2.查询数据
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getDataZFromRecordItems(time[0],time[1],ZYYWSR); |
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
|
|
|
|
|
|
|
|
|
//3.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//4.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getZTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size() > 0) { |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpje)); |
|
|
|
|
|
|
|
|
|
//5.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//5.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
//6.保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(voucherRecordQuerys); |
|
|
|
|
|
|
|
|
|
//6.保存或更新
|
|
|
|
|
if (voucherRecordQuerys.size()>5000){ |
|
|
|
|
int count = voucherRecordQuerys.size()%5000==0?voucherRecordQuerys.size()/5000:voucherRecordQuerys.size()/5000+1; |
|
|
|
|
for (int i = 0; i < count; i++) { |
|
|
|
|
int start = i*5000; |
|
|
|
|
int end = (i+1)*5000; |
|
|
|
|
if (i == count-1){ |
|
|
|
|
end = voucherRecordQuerys.size(); |
|
|
|
|
} |
|
|
|
|
List<VoucherRecordQuery> subList = voucherRecordQuerys.subList(start,end); |
|
|
|
|
recordToQueryDao.insertOrUpdate(subList); |
|
|
|
|
} |
|
|
|
|
PageInfo<VoucherRecordQuery> pageInfo = new PageInfo<>(voucherRecordQuerys); |
|
|
|
|
hasNext = pageInfo.isHasNextPage(); |
|
|
|
|
pageNum++; |
|
|
|
|
}else { |
|
|
|
|
recordToQueryDao.insertOrUpdate(voucherRecordQuerys); |
|
|
|
|
hasNext = false; |
|
|
|
|
} |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return flag; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -250,26 +234,25 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc |
|
|
|
|
public void insertOutDataToQuery() { |
|
|
|
|
//获取时间
|
|
|
|
|
String[] time = this.getTime(JXSZC); |
|
|
|
|
//查询数据
|
|
|
|
|
List<VoucherRecordQuery> dataFromRecordItems = recordToQueryDao.getDataFromRecordItems(time[0], time[1], JXSZC); |
|
|
|
|
|
|
|
|
|
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ |
|
|
|
|
|
|
|
|
|
if (dataFromRecordItems.size()>5000){ |
|
|
|
|
int count = dataFromRecordItems.size()%5000==0?dataFromRecordItems.size()/5000:dataFromRecordItems.size()/5000+1; |
|
|
|
|
for (int i = 0; i < count; i++) { |
|
|
|
|
int start = i*5000; |
|
|
|
|
int end = (i+1)*5000; |
|
|
|
|
if (i == count-1){ |
|
|
|
|
end = dataFromRecordItems.size(); |
|
|
|
|
} |
|
|
|
|
List<VoucherRecordQuery> subList = dataFromRecordItems.subList(start,end); |
|
|
|
|
recordToQueryDao.insertOrUpdate(subList); |
|
|
|
|
} |
|
|
|
|
}else { |
|
|
|
|
//是否继续循环
|
|
|
|
|
boolean hasNext = true; |
|
|
|
|
//页数
|
|
|
|
|
int pageNum = 1; |
|
|
|
|
|
|
|
|
|
while (hasNext) { |
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
//查询数据
|
|
|
|
|
List<VoucherRecordQuery> dataFromRecordItems = recordToQueryDao.getDataFromRecordItems(time[0], time[1], JXSZC); |
|
|
|
|
|
|
|
|
|
if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ |
|
|
|
|
|
|
|
|
|
recordToQueryDao.insertOrUpdate(dataFromRecordItems); |
|
|
|
|
PageInfo<VoucherRecordQuery> pageInfo = new PageInfo<>(dataFromRecordItems); |
|
|
|
|
hasNext = pageInfo.isHasNextPage(); |
|
|
|
|
pageNum++; |
|
|
|
|
}else { |
|
|
|
|
hasNext = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -299,4 +282,338 @@ public class RecordToQueryServiceImpl extends ServiceImpl<RecordToQueryDao, Vouc |
|
|
|
|
return time; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void updateRzStatus() { |
|
|
|
|
|
|
|
|
|
//是否继续循环
|
|
|
|
|
boolean hasNext = true; |
|
|
|
|
//页数
|
|
|
|
|
int pageNum = 1; |
|
|
|
|
|
|
|
|
|
List<List<String>> result = new ArrayList<>(); |
|
|
|
|
while (hasNext){ |
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
List<String> uuids = queryDetailDataService.getRzztDetail(); |
|
|
|
|
if (uuids != null && uuids.size() > 0){ |
|
|
|
|
|
|
|
|
|
List<String> rzztList = recordToQueryDao.getRzzt(uuids); |
|
|
|
|
if (rzztList != null && rzztList.size() > 0) { |
|
|
|
|
result.add(rzztList); |
|
|
|
|
} |
|
|
|
|
PageInfo<String> pageInfo = new PageInfo<>(uuids); |
|
|
|
|
hasNext = pageInfo.isHasNextPage(); |
|
|
|
|
pageNum++; |
|
|
|
|
}else { |
|
|
|
|
hasNext = false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (result != null && !result.isEmpty()){ |
|
|
|
|
|
|
|
|
|
for (List<String> uuids : result) { |
|
|
|
|
queryDetailDataService.updateRzzt(uuids); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<String> cxRzzt = recordToQueryDao.getCxRzzt(); |
|
|
|
|
|
|
|
|
|
if (cxRzzt != null && cxRzzt.size() > 0){ |
|
|
|
|
queryDetailDataService.updateCxRzzt(cxRzzt); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public int stringToInt(String param) { |
|
|
|
|
int count = pageSize; |
|
|
|
|
try { |
|
|
|
|
count = Integer.parseInt(param); |
|
|
|
|
}catch (Exception e){ |
|
|
|
|
log.error("分页大小转换失败,传入参数为{}",param); |
|
|
|
|
} |
|
|
|
|
return count; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R refreshAuthStatus(FrRequestDto requestParam) { |
|
|
|
|
this.updateRzStatus(); |
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R processJxDataByBzdh(FrRequestDto requestDto) { |
|
|
|
|
|
|
|
|
|
if (requestDto != null && StringUtils.isNotBlank(requestDto.getBadh())){ |
|
|
|
|
Map<String,String> param = new HashMap<>(); |
|
|
|
|
param.put("bzdh",requestDto.getBadh()); |
|
|
|
|
param.put("kjkmbh",JXZZS); |
|
|
|
|
List<VoucherRecordQuery> dataFromRecord = recordToQueryDao.getDataFromRecord(param); |
|
|
|
|
|
|
|
|
|
if (dataFromRecord != null && dataFromRecord.size() > 0){ |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
dataFromRecord.forEach(v->v.setSl(taxMap.get(v.getKjkmbh()))); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= dataFromRecord.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size()>0){ |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
//7.添加税率
|
|
|
|
|
dataFromRecord.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
//8.保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(dataFromRecord); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
queryDetailDataService.insertJxDataToQuery(param); |
|
|
|
|
|
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|
return R.error("报账单号不能为空"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R processJxDataByTime(FrRequestDto requestDto) { |
|
|
|
|
|
|
|
|
|
if (requestDto != null && StringUtils.isNotBlank(requestDto.getStartTime()) && StringUtils.isNotBlank(requestDto.getEndTime())){ |
|
|
|
|
Map<String,String> param = new HashMap<>(); |
|
|
|
|
param.put("startTime",requestDto.getStartTime()); |
|
|
|
|
param.put("endTime",requestDto.getEndTime()); |
|
|
|
|
param.put("kjkmbh",JXZZS); |
|
|
|
|
//是否继续循环
|
|
|
|
|
boolean hasNext = true; |
|
|
|
|
//页数
|
|
|
|
|
int pageNum = 1; |
|
|
|
|
|
|
|
|
|
while (hasNext) { |
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getDataFromRecord(param); |
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setSl(taxMap.get(v.getKjkmbh()))); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size() > 0) { |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
//7.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
//8.保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(voucherRecordQuerys); |
|
|
|
|
PageInfo<VoucherRecordQuery> pageInfo = new PageInfo<>(voucherRecordQuerys); |
|
|
|
|
hasNext = pageInfo.isHasNextPage(); |
|
|
|
|
pageNum++; |
|
|
|
|
} else { |
|
|
|
|
hasNext = false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
queryDetailDataService.insertJxDataToQuery(param); |
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|
return R.error("开始时间或者结束时间不能为空"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R processZyDataByTime(FrRequestDto requestParam) { |
|
|
|
|
if (requestParam != null && StringUtils.isNotBlank(requestParam.getStartTime()) && StringUtils.isNotBlank(requestParam.getEndTime())){ |
|
|
|
|
Map<String,String> param = new HashMap<>(); |
|
|
|
|
param.put("startTime",requestParam.getStartTime()); |
|
|
|
|
param.put("endTime",requestParam.getEndTime()); |
|
|
|
|
param.put("kjkmbh",ZYYWSR); |
|
|
|
|
//是否继续循环
|
|
|
|
|
boolean hasNext = true; |
|
|
|
|
//页数
|
|
|
|
|
int pageNum = 1; |
|
|
|
|
|
|
|
|
|
while (hasNext) { |
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getDataFromRecordZy(param); |
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setSl(taxMap.get(v.getKjkmbh()))); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getZTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size() > 0) { |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
//7.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
//8.保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(voucherRecordQuerys); |
|
|
|
|
PageInfo<VoucherRecordQuery> pageInfo = new PageInfo<>(voucherRecordQuerys); |
|
|
|
|
hasNext = pageInfo.isHasNextPage(); |
|
|
|
|
pageNum++; |
|
|
|
|
} else { |
|
|
|
|
hasNext = false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
queryDetailDataService.insertZyDataToQuery(param); |
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|
return R.error("开始时间或者结束时间不能为空"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R processZyDataByBzdh(FrRequestDto requestParam) { |
|
|
|
|
if (requestParam != null && StringUtils.isNotBlank(requestParam.getBadh())){ |
|
|
|
|
Map<String,String> param = new HashMap<>(); |
|
|
|
|
param.put("bzdh",requestParam.getBadh()); |
|
|
|
|
param.put("kjkmbh",ZYYWSR); |
|
|
|
|
List<VoucherRecordQuery> dataFromRecord = recordToQueryDao.getDataFromRecord(param); |
|
|
|
|
|
|
|
|
|
if (dataFromRecord != null && dataFromRecord.size() > 0){ |
|
|
|
|
|
|
|
|
|
//报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= dataFromRecord.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getZTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size()>0){ |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
//添加税率
|
|
|
|
|
dataFromRecord.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
//保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(dataFromRecord); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
queryDetailDataService.insertZyDataToQuery(param); |
|
|
|
|
|
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|
return R.error("报账单号不能为空"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R processXxDataByTime(FrRequestDto requestParam) { |
|
|
|
|
|
|
|
|
|
if (requestParam != null && StringUtils.isNotBlank(requestParam.getStartTime()) && StringUtils.isNotBlank(requestParam.getEndTime())){ |
|
|
|
|
Map<String,String> param = new HashMap<>(); |
|
|
|
|
param.put("startTime",requestParam.getStartTime()); |
|
|
|
|
param.put("endTime",requestParam.getEndTime()); |
|
|
|
|
param.put("kjkmbh",XXZZS); |
|
|
|
|
//是否继续循环
|
|
|
|
|
boolean hasNext = true; |
|
|
|
|
//页数
|
|
|
|
|
int pageNum = 1; |
|
|
|
|
|
|
|
|
|
while (hasNext) { |
|
|
|
|
PageHelper.startPage(pageNum, pageSize); |
|
|
|
|
|
|
|
|
|
List<VoucherRecordQuery> voucherRecordQuerys = |
|
|
|
|
recordToQueryDao.getXxDataFromRecord(param); |
|
|
|
|
|
|
|
|
|
if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setSl(taxMap.get(v.getKjkmbh()))); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size() > 0) { |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
//7.添加税率
|
|
|
|
|
voucherRecordQuerys.forEach(v -> v.setFpse(amountMap.get(v.getSl() + v.getBzdh()) == null ? "0" : amountMap.get(v.getSl() + v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
//8.保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(voucherRecordQuerys); |
|
|
|
|
PageInfo<VoucherRecordQuery> pageInfo = new PageInfo<>(voucherRecordQuerys); |
|
|
|
|
hasNext = pageInfo.isHasNextPage(); |
|
|
|
|
pageNum++; |
|
|
|
|
} else { |
|
|
|
|
hasNext = false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
queryDetailDataService.insertXxDataToQuery(param); |
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|
return R.error("开始时间或者结束时间不能为空"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R processXxDataByBzdh(FrRequestDto requestParam) { |
|
|
|
|
|
|
|
|
|
if (requestParam != null && StringUtils.isNotBlank(requestParam.getBadh())){ |
|
|
|
|
Map<String,String> param = new HashMap<>(); |
|
|
|
|
param.put("bzdh",requestParam.getBadh()); |
|
|
|
|
param.put("kjkmbh",XXZZS); |
|
|
|
|
List<VoucherRecordQuery> dataFromRecord = recordToQueryDao.getXxDataFromRecord(param); |
|
|
|
|
|
|
|
|
|
if (dataFromRecord != null && dataFromRecord.size() > 0){ |
|
|
|
|
//3.查询税率
|
|
|
|
|
Map<String, String> taxMap = KjkmTaxEnmu.getTaxMap(); |
|
|
|
|
//4.清洗税率
|
|
|
|
|
dataFromRecord.forEach(v->v.setSl(taxMap.get(v.getKjkmbh()))); |
|
|
|
|
|
|
|
|
|
//5.报账单号去重
|
|
|
|
|
List<String> bzdhs |
|
|
|
|
= dataFromRecord.stream().map(VoucherRecordQuery::getBzdh) |
|
|
|
|
.distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
//6.根据报账单号获取发票税额
|
|
|
|
|
List<FpTaxAmount> taxAmounts = recordToQueryDao.getXTaxAmount((bzdhs)); |
|
|
|
|
if (taxAmounts != null && taxAmounts.size()>0){ |
|
|
|
|
Map<String, String> amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpse)); |
|
|
|
|
//7.添加税率
|
|
|
|
|
dataFromRecord.forEach(v->v.setFpse(amountMap.get(v.getSl()+v.getBzdh())==null?"0":amountMap.get(v.getSl()+v.getBzdh()))); |
|
|
|
|
} |
|
|
|
|
//8.保存或更新
|
|
|
|
|
recordToQueryDao.insertOrUpdate(dataFromRecord); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
queryDetailDataService.insertXxDataToQuery(param); |
|
|
|
|
|
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|
return R.error("报账单号不能为空"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|