From a6b3bd848bfdae0a4f457153ba6810ec74e5e20b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E6=98=8E=E6=85=A7?= <1191093413@qq.com> Date: Mon, 29 Jan 2024 14:35:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=86=E8=BD=AF=EF=BC=9A=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=BD=BF=E7=94=A8pageHelper=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E3=80=81=E4=BF=AE=E6=94=B9=E8=AE=A4=E8=AF=81=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=88=B7=E6=96=B0=E9=80=BB=E8=BE=91=E3=80=81=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=94=80=E9=A1=B9=E7=A8=8E=E5=AE=A2=E6=88=B7=E5=8F=96?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FrDataProcessController.java | 62 ++ .../core/dao/frTask/QueryDetailDataDao.java | 8 + .../core/dao/frTask/RecordToQueryDao.java | 9 + .../dxhy/core/entity/frJob/FrRequestDto.java | 27 + .../service/frJob/QueryDetailDataService.java | 15 +- .../frJob/QueryDetailDataServiceImpl.java | 231 +++++-- .../service/frJob/RecordToQueryService.java | 17 +- .../frJob/RecordToQueryServiceImpl.java | 641 +++++++++++++----- .../java/com/dxhy/core/task/FrDataTask.java | 2 +- .../mapper/frJob/QueryDetailDataDao.xml | 159 +++++ .../mapper/frJob/RecordToQueryDao.xml | 145 +++- 11 files changed, 1076 insertions(+), 240 deletions(-) create mode 100644 dxhy-core/src/main/java/com/dxhy/core/controller/FrDataProcessController.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/entity/frJob/FrRequestDto.java diff --git a/dxhy-core/src/main/java/com/dxhy/core/controller/FrDataProcessController.java b/dxhy-core/src/main/java/com/dxhy/core/controller/FrDataProcessController.java new file mode 100644 index 00000000..f7c10029 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/controller/FrDataProcessController.java @@ -0,0 +1,62 @@ +package com.dxhy.core.controller; + +import com.dxhy.auth.client.annotation.IgnoreClientToken; +import com.dxhy.common.utils.R; +import com.dxhy.core.entity.frJob.FrRequestDto; +import com.dxhy.core.service.frJob.RecordToQueryService; +import com.rabbitmq.client.Return; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@Slf4j +@RestController +@RequestMapping("/frData") +public class FrDataProcessController { + + @Resource + private RecordToQueryService recordToQueryService; + + @ResponseBody + @IgnoreClientToken + @PostMapping("/dataProcess") + public R dataProcess(@RequestBody FrRequestDto requestParam) { + + if (requestParam == null || StringUtils.isBlank(requestParam.getProcessType())){ + return R.error("请求参数不能为空"); + } + + R r = R.ok(); + switch (requestParam.getProcessType()) { + case "1": + r = recordToQueryService.processJxDataByBzdh(requestParam); + break; + case "2": + r = recordToQueryService.processJxDataByTime(requestParam); + break; + case "3": + r = recordToQueryService.processXxDataByBzdh(requestParam); + break; + case "4": + r = recordToQueryService.processXxDataByTime(requestParam); + break; + case "5": + r = recordToQueryService.processZyDataByBzdh(requestParam); + break; + case "6": + r = recordToQueryService.processZyDataByTime(requestParam); + break; + case "7": + r = recordToQueryService.refreshAuthStatus(requestParam); + break; + default: + r = R.error("请求参数错误"); + break; + } + + return r; + } + +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/QueryDetailDataDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/QueryDetailDataDao.java index d400c0f9..cffd4fe6 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/QueryDetailDataDao.java +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/QueryDetailDataDao.java @@ -9,6 +9,7 @@ import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; +import java.util.Map; @Mapper public interface QueryDetailDataDao extends BaseMapper { @@ -31,4 +32,11 @@ public interface QueryDetailDataDao extends BaseMapper void saveOrUpdate(List dataFromRecordItems); + List getUuidByRzzt(); + + List getFrDataFromRecord(Map param); + + List getZyDataFromRecord(Map param); + + List getFrDataFromRecordXx(Map param); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/RecordToQueryDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/RecordToQueryDao.java index 157e8e22..ee68f88a 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/RecordToQueryDao.java +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/frTask/RecordToQueryDao.java @@ -8,7 +8,9 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Mapper public interface RecordToQueryDao extends BaseMapper { @@ -38,4 +40,11 @@ public interface RecordToQueryDao extends BaseMapper { void insertOrUpdate(List voucherRecordQuerys); List getRzzt(@Param("uuids") List uuids); + List getCxRzzt(); + + List getDataFromRecord(Map param); + + List getDataFromRecordZy(Map param); + + List getXxDataFromRecord(Map param); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/FrRequestDto.java b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/FrRequestDto.java new file mode 100644 index 00000000..f896eeaf --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/frJob/FrRequestDto.java @@ -0,0 +1,27 @@ +package com.dxhy.core.entity.frJob; + +import lombok.Data; + +@Data +public class FrRequestDto { + + /** + * 处理类型 1 按照报账单号刷新进项税数据 2 按照日期刷新进项税数据 3 刷新认证状态 + */ + private String processType; + + /** + * 报账单号 + */ + private String badh; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java index 8fc987c6..70c36009 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataService.java @@ -7,20 +7,29 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dxhy.core.entity.frJob.VoucherRecordQueryDetail; import java.util.List; +import java.util.Map; public interface QueryDetailDataService extends IService { //插入进项数据 - void insertJxDataToQueryDetail(); + void insertJxDataToQueryDetail(int pageSize); //插入销项数据 - void insertXxDataToQueryDetail(); + void insertXxDataToQueryDetail(int pageSize); //插入主营业务收入数据 - void insertZyDataToQueryDetail(); + void insertZyDataToQueryDetail(int pageSize); String[] getTime(String km); List getRzztDetail(); void updateRzzt(List rzDetail); + + void insertJxDataToQuery(Map param); + + void insertZyDataToQuery(Map param); + + void insertXxDataToQuery(Map param); + + void updateCxRzzt(List cxRzzt); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java index 8dbe7307..b1bc3cdb 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/QueryDetailDataServiceImpl.java @@ -7,6 +7,8 @@ import com.dxhy.core.dao.frTask.QueryDetailDataDao; import com.dxhy.core.enmu.FplxEnmu; 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -14,6 +16,7 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Service("queryDetailDataService") @@ -31,87 +34,95 @@ public class QueryDetailDataServiceImpl extends ServiceImpl dataFromRecordItems = queryDetailDataDao.getDataFromRecord(time[0], time[1],JXZZS); - //3.添加发票类型 - if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ - dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); - //4.添加入库 - - 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 subList = dataFromRecordItems.subList(start,end); - queryDetailDataDao.saveOrUpdate(subList); - } - }else { + + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + + while (hasNext){ + PageHelper.startPage(pageNum,pageSize); + //2.按照时间查询增量数据 + List dataFromRecordItems = queryDetailDataDao.getDataFromRecord(time[0], time[1],JXZZS); + //3.添加发票类型 + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ + + dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 queryDetailDataDao.saveOrUpdate(dataFromRecordItems); - } + PageInfo pageInfo = new PageInfo<>(dataFromRecordItems); + hasNext = pageInfo.isHasNextPage(); + pageNum++; + }else { + hasNext = false; + } } + + } @Override - public void insertXxDataToQueryDetail(){ + public void insertXxDataToQueryDetail(int pageSize){ String[] time = getTime(XXZZS); - //2.按照时间查询增量数据 - List dataFromRecordItems = queryDetailDataDao.getDataFromRecordXx(time[0], time[1],XXZZS); - //3.添加发票类型 - if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ - dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); - //4.添加入库 - - 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 subList = dataFromRecordItems.subList(start,end); - queryDetailDataDao.saveOrUpdate(subList); - } - }else { + + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + + while (hasNext){ + PageHelper.startPage(pageNum,pageSize); + //2.按照时间查询增量数据 + List dataFromRecordItems = queryDetailDataDao.getDataFromRecordXx(time[0], time[1],XXZZS); + //3.添加发票类型 + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ + dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 queryDetailDataDao.saveOrUpdate(dataFromRecordItems); + PageInfo pageInfo = new PageInfo<>(dataFromRecordItems); + hasNext = pageInfo.isHasNextPage(); + pageNum++; + }else { + hasNext = false; } } + } @Override - public void insertZyDataToQueryDetail(){ + public void insertZyDataToQueryDetail(int pageSize){ String[] time = getTime(ZYYWSR); - //2.按照时间查询增量数据 - List dataFromRecordItems = queryDetailDataDao.getDataFromRecordJe(time[0], time[1],ZYYWSR); - //3添加发票类型 - if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ - dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); - //4.添加入库 - 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 subList = dataFromRecordItems.subList(start,end); - queryDetailDataDao.saveOrUpdate(subList); - } - }else { + + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + + while (hasNext){ + PageHelper.startPage(pageNum,pageSize); + //2.按照时间查询增量数据 + List dataFromRecordItems = queryDetailDataDao.getDataFromRecordJe(time[0], time[1],ZYYWSR); + //3添加发票类型 + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ + dataFromRecordItems.stream().forEach(e->e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 queryDetailDataDao.saveOrUpdate(dataFromRecordItems); + + PageInfo pageInfo = new PageInfo<>(dataFromRecordItems); + hasNext = pageInfo.isHasNextPage(); + pageNum++; + }else { + hasNext = false; } } + + } @Override @@ -141,13 +152,7 @@ public class QueryDetailDataServiceImpl extends ServiceImpl getRzztDetail() { - - LambdaQueryWrapper querywrapper = new LambdaQueryWrapper<>(); - querywrapper.select(VoucherRecordQueryDetail::getUuid); - querywrapper.eq(VoucherRecordQueryDetail::getRzzt,"0"); - - querywrapper.likeRight(VoucherRecordQueryDetail::getKjkmbh,JXZZS); - return this.list(querywrapper).stream().map(e -> e.getUuid()).distinct().collect(Collectors.toList()); + return queryDetailDataDao.getUuidByRzzt(); } @Override @@ -159,4 +164,96 @@ public class QueryDetailDataServiceImpl extends ServiceImpl param) { + + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + while (hasNext) { + + PageHelper.startPage(pageNum, 2000); + List dataFromRecordItems = queryDetailDataDao.getFrDataFromRecord(param); + + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0) { + + dataFromRecordItems.stream().forEach(e -> e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 + queryDetailDataDao.saveOrUpdate(dataFromRecordItems); + PageInfo pageInfo = new PageInfo<>(dataFromRecordItems); + hasNext = pageInfo.isHasNextPage(); + pageNum++; + }else { + hasNext = false; + } + } + + } + + @Override + public void insertZyDataToQuery(Map param) { + + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + while (hasNext) { + + PageHelper.startPage(pageNum, 2000); + List dataFromRecordItems = queryDetailDataDao.getZyDataFromRecord(param); + + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0) { + + dataFromRecordItems.stream().forEach(e -> e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 + queryDetailDataDao.saveOrUpdate(dataFromRecordItems); + PageInfo pageInfo = new PageInfo<>(dataFromRecordItems); + hasNext = pageInfo.isHasNextPage(); + pageNum++; + }else { + hasNext = false; + } + } + + } + + + @Override + public void insertXxDataToQuery(Map param) { + + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + while (hasNext) { + + PageHelper.startPage(pageNum, 2000); + List dataFromRecordItems = queryDetailDataDao.getFrDataFromRecordXx(param); + + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0) { + + dataFromRecordItems.stream().forEach(e -> e.setFplxmc(FplxEnmu.getFplxMap().get(e.getFplx()))); + //4.添加入库 + queryDetailDataDao.saveOrUpdate(dataFromRecordItems); + PageInfo pageInfo = new PageInfo<>(dataFromRecordItems); + hasNext = pageInfo.isHasNextPage(); + pageNum++; + }else { + hasNext = false; + } + } + + } + + @Override + public void updateCxRzzt(List cxRzzt) { + if (cxRzzt!= null && cxRzzt.size() > 0){ + LambdaUpdateWrapper updateWrap = new LambdaUpdateWrapper(); + updateWrap.in(VoucherRecordQueryDetail::getUuid,cxRzzt); + updateWrap.set(VoucherRecordQueryDetail::getRzzt,"0"); + this.update(updateWrap); + } + } } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java index 7a052fc6..6f27fa63 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryService.java @@ -2,10 +2,25 @@ package com.dxhy.core.service.frJob; import com.baomidou.mybatisplus.extension.service.IService; +import com.dxhy.common.utils.R; +import com.dxhy.core.entity.frJob.FrRequestDto; import com.dxhy.core.entity.frJob.VoucherRecordQuery; public interface RecordToQueryService extends IService { - void getDataForFr(); + void getDataForFr(String param); + R processJxDataByBzdh(FrRequestDto requestDto); + + R processJxDataByTime(FrRequestDto requestParam); + + R refreshAuthStatus(FrRequestDto requestParam); + + R processZyDataByTime(FrRequestDto requestParam); + + R processZyDataByBzdh(FrRequestDto requestParam); + + R processXxDataByTime(FrRequestDto requestParam); + + R processXxDataByBzdh(FrRequestDto requestParam); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java index 2021ede1..756ae538 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/frJob/RecordToQueryServiceImpl.java @@ -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 implements RecordToQueryService { @Resource @@ -35,16 +39,19 @@ public class RecordToQueryServiceImpl extends ServiceImpl 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 subList = uuids.subList(start,end); - queryDetailDataService.updateRzzt(subList); - } - }else { - List 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 voucherRecordQuerys = - recordToQueryDao.getDataFromRecordItems(time[0], time[1],JXZZS); - - if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0){ - //3.查询税率 - Map taxMap = KjkmTaxEnmu.getTaxMap(); - //4.清洗税率 - voucherRecordQuerys.forEach(v->v.setSl(taxMap.get(v.getKjkmbh()))); - - //5.报账单号去重 - List bzdhs - = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) - .distinct().collect(Collectors.toList()); - - //6.根据报账单号获取发票税额 - List taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); - if (taxAmounts != null && taxAmounts.size()>0){ - Map 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 subList = voucherRecordQuerys.subList(start,end); - recordToQueryDao.insertOrUpdate(subList); + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + + while (hasNext){ + PageHelper.startPage(pageNum, pageSize); + //2.查询数据 + List voucherRecordQuerys = + recordToQueryDao.getDataFromRecordItems(time[0], time[1],JXZZS); + + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0){ + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + voucherRecordQuerys.forEach(v->v.setSl(taxMap.get(v.getKjkmbh()))); + + //5.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size()>0){ + Map 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 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 voucherRecordQuerys = - recordToQueryDao.getDataXFromRecordItems(time[0],time[1],XXZZS); - - if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { - //3.查询税率 - Map taxMap = KjkmTaxEnmu.getTaxMap(); - //4.清洗税率 - voucherRecordQuerys.forEach(v -> { - v.setSl(taxMap.get(v.getKjkmbh())); - }); - - //5.报账单号去重 - List bzdhs - = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) - .distinct().collect(Collectors.toList()); - - //6.根据报账单号获取发票税额 - List taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); - if (taxAmounts != null && taxAmounts.size() > 0) { - Map 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 subList = voucherRecordQuerys.subList(start,end); - recordToQueryDao.insertOrUpdate(subList); + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + + + while (hasNext) { + PageHelper.startPage(pageNum, pageSize); + //2.查询数据 + List voucherRecordQuerys = + recordToQueryDao.getDataXFromRecordItems(time[0],time[1],XXZZS); + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + voucherRecordQuerys.forEach(v -> { + v.setSl(taxMap.get(v.getKjkmbh())); + }); + + //5.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size() > 0) { + Map 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 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 voucherRecordQuerys = - recordToQueryDao.getDataZFromRecordItems(time[0],time[1],ZYYWSR); - - if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { - - //3.报账单号去重 - List bzdhs - = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) - .distinct().collect(Collectors.toList()); - - //4.根据报账单号获取发票税额 - List taxAmounts = recordToQueryDao.getZTaxAmount(bzdhs); - if (taxAmounts != null && taxAmounts.size() > 0) { - Map amountMap = taxAmounts.stream().collect(Collectors.toMap(FpTaxAmount::getKey, FpTaxAmount::getFpje)); + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + + while (hasNext) { + PageHelper.startPage(pageNum, pageSize); + //2.查询数据 + List voucherRecordQuerys = + recordToQueryDao.getDataZFromRecordItems(time[0],time[1],ZYYWSR); + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { + + //3.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //4.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getZTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size() > 0) { + Map 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 subList = voucherRecordQuerys.subList(start,end); - recordToQueryDao.insertOrUpdate(subList); - } + PageInfo 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 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 subList = dataFromRecordItems.subList(start,end); - recordToQueryDao.insertOrUpdate(subList); - } - }else { + //是否继续循环 + boolean hasNext = true; + //页数 + int pageNum = 1; + + while (hasNext) { + PageHelper.startPage(pageNum, pageSize); + //查询数据 + List dataFromRecordItems = recordToQueryDao.getDataFromRecordItems(time[0], time[1], JXSZC); + + if (dataFromRecordItems != null && dataFromRecordItems.size() != 0){ + recordToQueryDao.insertOrUpdate(dataFromRecordItems); + PageInfo pageInfo = new PageInfo<>(dataFromRecordItems); + hasNext = pageInfo.isHasNextPage(); + pageNum++; + }else { + hasNext = false; } - } } @@ -299,4 +282,338 @@ public class RecordToQueryServiceImpl extends ServiceImpl> result = new ArrayList<>(); + while (hasNext){ + PageHelper.startPage(pageNum, pageSize); + List uuids = queryDetailDataService.getRzztDetail(); + if (uuids != null && uuids.size() > 0){ + + List rzztList = recordToQueryDao.getRzzt(uuids); + if (rzztList != null && rzztList.size() > 0) { + result.add(rzztList); + } + PageInfo pageInfo = new PageInfo<>(uuids); + hasNext = pageInfo.isHasNextPage(); + pageNum++; + }else { + hasNext = false; + } + + } + + if (result != null && !result.isEmpty()){ + + for (List uuids : result) { + queryDetailDataService.updateRzzt(uuids); + } + + } + + List 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 param = new HashMap<>(); + param.put("bzdh",requestDto.getBadh()); + param.put("kjkmbh",JXZZS); + List dataFromRecord = recordToQueryDao.getDataFromRecord(param); + + if (dataFromRecord != null && dataFromRecord.size() > 0){ + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + dataFromRecord.forEach(v->v.setSl(taxMap.get(v.getKjkmbh()))); + + //5.报账单号去重 + List bzdhs + = dataFromRecord.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size()>0){ + Map 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 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 voucherRecordQuerys = + recordToQueryDao.getDataFromRecord(param); + + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + voucherRecordQuerys.forEach(v -> v.setSl(taxMap.get(v.getKjkmbh()))); + + //5.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size() > 0) { + Map 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 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 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 voucherRecordQuerys = + recordToQueryDao.getDataFromRecordZy(param); + + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + voucherRecordQuerys.forEach(v -> v.setSl(taxMap.get(v.getKjkmbh()))); + + //5.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getZTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size() > 0) { + Map 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 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 param = new HashMap<>(); + param.put("bzdh",requestParam.getBadh()); + param.put("kjkmbh",ZYYWSR); + List dataFromRecord = recordToQueryDao.getDataFromRecord(param); + + if (dataFromRecord != null && dataFromRecord.size() > 0){ + + //报账单号去重 + List bzdhs + = dataFromRecord.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getZTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size()>0){ + Map 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 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 voucherRecordQuerys = + recordToQueryDao.getXxDataFromRecord(param); + + if (voucherRecordQuerys != null && voucherRecordQuerys.size() > 0) { + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + voucherRecordQuerys.forEach(v -> v.setSl(taxMap.get(v.getKjkmbh()))); + + //5.报账单号去重 + List bzdhs + = voucherRecordQuerys.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getXTaxAmount(bzdhs); + if (taxAmounts != null && taxAmounts.size() > 0) { + Map 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 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 param = new HashMap<>(); + param.put("bzdh",requestParam.getBadh()); + param.put("kjkmbh",XXZZS); + List dataFromRecord = recordToQueryDao.getXxDataFromRecord(param); + + if (dataFromRecord != null && dataFromRecord.size() > 0){ + //3.查询税率 + Map taxMap = KjkmTaxEnmu.getTaxMap(); + //4.清洗税率 + dataFromRecord.forEach(v->v.setSl(taxMap.get(v.getKjkmbh()))); + + //5.报账单号去重 + List bzdhs + = dataFromRecord.stream().map(VoucherRecordQuery::getBzdh) + .distinct().collect(Collectors.toList()); + + //6.根据报账单号获取发票税额 + List taxAmounts = recordToQueryDao.getXTaxAmount((bzdhs)); + if (taxAmounts != null && taxAmounts.size()>0){ + Map 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("报账单号不能为空"); + } + + } diff --git a/dxhy-core/src/main/java/com/dxhy/core/task/FrDataTask.java b/dxhy-core/src/main/java/com/dxhy/core/task/FrDataTask.java index 30478dcc..01303f2a 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/task/FrDataTask.java +++ b/dxhy-core/src/main/java/com/dxhy/core/task/FrDataTask.java @@ -23,7 +23,7 @@ public class FrDataTask { try { scheduleJobEntity.setJobStatus("1"); scheduleJobService.updateById(scheduleJobEntity); - recordToQueryService.getDataForFr(); + recordToQueryService.getDataForFr(scheduleJobEntity.getParams()); log.info("帆软抽取增量数据定时任务结束--"); } catch (Exception e) { e.printStackTrace(); diff --git a/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml b/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml index 0b230bdc..21a800df 100644 --- a/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml +++ b/dxhy-core/src/main/resources/mapper/frJob/QueryDetailDataDao.xml @@ -178,4 +178,163 @@ (#{item.id},#{item.uuid},#{item.zq},#{item.xfdm},#{item.xfmc},#{item.kb},#{item.bzdh},#{item.kjpz},#{item.fpse},#{item.kjkm},#{item.kjkmbh},#{item.sl},#{item.fpdm},#{item.fphm},#{item.fplx},#{item.fplxmc},#{item.createTime},#{item.rzzt}) + + + + + + + + + + diff --git a/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml b/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml index 91c18560..98d35afe 100644 --- a/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml +++ b/dxhy-core/src/main/resources/mapper/frJob/RecordToQueryDao.xml @@ -28,7 +28,12 @@ i.zkname as kb, i.racct as kjkmbh, i.txt50 as kjkm, - sum(CAST(i.zhslj as decimal(20,2))) as sapse, + sum( + CASE i.drcrk + WHEN 'H' THEN CAST(IFNULL(i.zhsld,0) as decimal(20,2)) + ELSE CAST(IFNULL(i.zhslj,0) as decimal(20,2)) + END + ) as sapse, GROUP_CONCAT(distinct v.belnr ) as pzh, v.zbzdh as bzdh, v.zbzcgt, @@ -65,7 +70,7 @@ #{bzdh} and d.goods_name != '(详见销货清单)' - and t.invoice_type in ('01','03','08','14','31','183') + and t.invoice_type in ('01','03','08','14','31','183','185') group by d.tax_rate,t.bzdh @@ -79,9 +84,16 @@ i.zkname as kb, i.racct as kjkmbh, i.txt50 as kjkm, - sum(CAST(i.zwsld as decimal(20,2))) as sapse, + sum( + CASE i.drcrk + WHEN 'H' THEN CAST(IFNULL(i.zhsld,0) as decimal(20,2)) + ELSE CAST(IFNULL(i.zhslj,0) as decimal(20,2)) + END + ) as sapse, GROUP_CONCAT(distinct v.belnr ) as pzh, v.zbzdh as bzdh, + i.zname2 as zbzcgt, + i.kunnr as zbzcg, v.create_time FROM voucher_record_item i @@ -104,7 +116,7 @@ and t.invoice_status != '2' and d.goods_name != '(详见销货清单)' - and t.invoice_type in ('01','03','08','14','31','183') + and t.invoice_type in ('01','03','08','14','31','183','185') group by d.tax_rate,t.bzdh @@ -117,7 +129,7 @@ #{bzdh} - and t.invoice_type in ('01','03','08','14','31','183') + and t.invoice_type in ('01','03','08','14','31','183','185') and t.invoice_status != '2' and d.goods_name != '(详见销货清单)' group by d.tax_rate,t.bzdh @@ -133,9 +145,16 @@ i.zkname as kb, i.racct as kjkmbh, i.txt50 as kjkm, - sum(CAST(i.zwsld as decimal(20,2))) as sapse, + sum( + CASE i.drcrk + WHEN 'H' THEN CAST(IFNULL(i.zhsld,0) as decimal(20,2)) + ELSE CAST(IFNULL(i.zhslj,0) as decimal(20,2)) + END + ) as sapse, GROUP_CONCAT(distinct v.belnr ) as pzh, v.zbzdh as bzdh, + i.zname2 as zbzcgt, + i.kunnr as zbzcg, v.create_time FROM voucher_record_item i @@ -163,4 +182,118 @@ and rzh_yesorno in ('1','2') + + + + + + + +