Commit 96abb90a authored by neo.wang's avatar neo.wang

Merge branch 'dev_neo' into 'dev'

Dev neo

See merge request root/atms!64
parents b9b5e708 ccf0112a
...@@ -28,7 +28,7 @@ public class CloseableFormulaDataSource implements AutoCloseable{ ...@@ -28,7 +28,7 @@ public class CloseableFormulaDataSource implements AutoCloseable{
@Override @Override
public void close() throws Exception { public void close() throws Exception {
if(!dataSourceList.isEmpty()){ if(!dataSourceList.isEmpty()){
// agent.save(dataSourceList);//TODO: save datasources; agent.save(dataSourceList);//TODO: save datasources;
} }
} }
} }
...@@ -5,7 +5,7 @@ import pwc.taxtech.atms.dto.vatdto.CellCalcInfoDto; ...@@ -5,7 +5,7 @@ import pwc.taxtech.atms.dto.vatdto.CellCalcInfoDto;
import java.util.List; import java.util.List;
public interface ReportGenerator { public interface ReportGenerator {
String generateData(String projectId, List<Long> templateIds, Boolean ifDeleteManualDataSource, List<String> exceptCellTemplates,Integer periodParam, String generator); String generateData(String projectId, List<Long> templateIds, Boolean ifDeleteManualDataSource, List<String> exceptCellTemplates, Integer periodParam, String generator);
List<CellCalcInfoDto> getCellCalcInfo(List<Long> templateIDList, Integer periodParam); List<CellCalcInfoDto> getCellCalcInfo(List<Long> templateIDList, Integer periodParam);
} }
...@@ -6,6 +6,7 @@ import pwc.taxtech.atms.constant.enums.EnumServiceType; ...@@ -6,6 +6,7 @@ import pwc.taxtech.atms.constant.enums.EnumServiceType;
import pwc.taxtech.atms.dao.FormulaAdminMapper; import pwc.taxtech.atms.dao.FormulaAdminMapper;
import pwc.taxtech.atms.dto.GroupId; import pwc.taxtech.atms.dto.GroupId;
import pwc.taxtech.atms.dto.vatdto.CellTemplatePerGroupDto; import pwc.taxtech.atms.dto.vatdto.CellTemplatePerGroupDto;
import pwc.taxtech.atms.dto.vatdto.FormulaDataSourceDto;
import pwc.taxtech.atms.entitiy.ProjectServiceType; import pwc.taxtech.atms.entitiy.ProjectServiceType;
import pwc.taxtech.atms.entitiy.ProjectServiceTypeExample; import pwc.taxtech.atms.entitiy.ProjectServiceTypeExample;
import pwc.taxtech.atms.vat.dao.CellDataMapper; import pwc.taxtech.atms.vat.dao.CellDataMapper;
...@@ -13,6 +14,7 @@ import pwc.taxtech.atms.vat.dao.FormulaProjectMapper; ...@@ -13,6 +14,7 @@ import pwc.taxtech.atms.vat.dao.FormulaProjectMapper;
import pwc.taxtech.atms.vat.dao.ReportMapper; import pwc.taxtech.atms.vat.dao.ReportMapper;
import pwc.taxtech.atms.vat.entity.CellData; import pwc.taxtech.atms.vat.entity.CellData;
import pwc.taxtech.atms.vat.entity.CellDataExample; import pwc.taxtech.atms.vat.entity.CellDataExample;
import pwc.taxtech.atms.vat.entity.DataSource;
import pwc.taxtech.atms.vat.entity.Report; import pwc.taxtech.atms.vat.entity.Report;
import pwc.taxtech.atms.vat.entity.ReportExample; import pwc.taxtech.atms.vat.entity.ReportExample;
...@@ -58,7 +60,7 @@ public class FormulaAgent extends VatAbstractService { ...@@ -58,7 +60,7 @@ public class FormulaAgent extends VatAbstractService {
.andPeriodEqualTo(periodId); .andPeriodEqualTo(periodId);
List<Report> reports = reportMapper.selectByExample(example); List<Report> reports = reportMapper.selectByExample(example);
if (reports != null || !reports.isEmpty()) return reports.get(FIRST_OR_DEFAULT); if (reports != null && !reports.isEmpty()) return reports.get(FIRST_OR_DEFAULT);
return null; return null;
} }
...@@ -67,8 +69,27 @@ public class FormulaAgent extends VatAbstractService { ...@@ -67,8 +69,27 @@ public class FormulaAgent extends VatAbstractService {
dataExample.createCriteria().andCellTemplateIdEqualTo(Long.valueOf(templateId)); dataExample.createCriteria().andCellTemplateIdEqualTo(Long.valueOf(templateId));
List<CellData> cellDataList = cellDataMapper.selectByExample(dataExample); List<CellData> cellDataList = cellDataMapper.selectByExample(dataExample);
if (cellDataList != null || !cellDataList.isEmpty()) return cellDataList.get(FIRST_OR_DEFAULT); if (cellDataList != null && !cellDataList.isEmpty()) return cellDataList.get(FIRST_OR_DEFAULT);
return null; return null;
} }
public void save(List<FormulaDataSourceDto> dataSourceDtos){
dataSourceDtos.forEach(m->{
DataSource ds = new DataSource();
ds.setAmount(m.getAmount());
ds.setCreateBy(m.getCreator());
ds.setCreateTime(m.getCreateTime());
ds.setDescription(m.getDescription());
ds.setKeyValueDataId(m.getKeyValueDataID());
ds.setName(m.getName());
ds.setId(Long.parseLong(m.getId()));
ds.setType(m.getType());
ds.setUpdateBy(m.getUpdater());
ds.setUpdateTime(m.getUpdateTime());
dataSourceMapper.insert(ds);
});
}
} }
...@@ -109,7 +109,7 @@ public class ReportFormulaFactory { ...@@ -109,7 +109,7 @@ public class ReportFormulaFactory {
ShardingContextHolder.setDataSourceKey(dbName); ShardingContextHolder.setDataSourceKey(dbName);
try { try {
Report report = agent.getReportByTemplate(cellTemplateData.getCellTemplateID(), curPeriod.getCurPeriod()); Report report = agent.getReportByTemplate(cellTemplateData.getReportTemplateID(), curPeriod.getCurPeriod());
MyAsserts.assertNotNull(report, Exceptions.BB_REPORT_NULL); MyAsserts.assertNotNull(report, Exceptions.BB_REPORT_NULL);
CellData cellData = agent.getCellDataListByTemplate(cellTemplateData.getCellTemplateID(), report.getId()); CellData cellData = agent.getCellDataListByTemplate(cellTemplateData.getCellTemplateID(), report.getId());
......
...@@ -6,17 +6,32 @@ import org.apache.poi.ss.formula.functions.FreeRefFunction; ...@@ -6,17 +6,32 @@ import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.udf.AggregatingUDFFinder; import org.apache.poi.ss.formula.udf.AggregatingUDFFinder;
import org.apache.poi.ss.formula.udf.DefaultUDFFinder; import org.apache.poi.ss.formula.udf.DefaultUDFFinder;
import org.apache.poi.ss.formula.udf.UDFFinder; import org.apache.poi.ss.formula.udf.UDFFinder;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import pwc.taxtech.atms.common.POIUtil; import pwc.taxtech.atms.common.POIUtil;
import pwc.taxtech.atms.constant.enums.CellDataSourceType; import pwc.taxtech.atms.constant.enums.CellDataSourceType;
import pwc.taxtech.atms.dao.ProjectMapper;
import pwc.taxtech.atms.dto.vatdto.CellCalcInfoDto; import pwc.taxtech.atms.dto.vatdto.CellCalcInfoDto;
import pwc.taxtech.atms.dto.vatdto.CellTemplateConfigGroupDto; import pwc.taxtech.atms.dto.vatdto.CellTemplateConfigGroupDto;
import pwc.taxtech.atms.dto.vatdto.PeriodCellTemplateConfigExtendDto; import pwc.taxtech.atms.dto.vatdto.PeriodCellTemplateConfigExtendDto;
import pwc.taxtech.atms.vat.entity.*; import pwc.taxtech.atms.entitiy.Project;
import pwc.taxtech.atms.vat.entity.CellData;
import pwc.taxtech.atms.vat.entity.PeriodCellTemplate;
import pwc.taxtech.atms.vat.entity.PeriodCellTemplateConfig;
import pwc.taxtech.atms.vat.entity.PeriodCellTemplateConfigExample;
import pwc.taxtech.atms.vat.entity.PeriodCellTemplateExample;
import pwc.taxtech.atms.vat.entity.PeriodTemplate;
import pwc.taxtech.atms.vat.entity.PeriodTemplateExample;
import pwc.taxtech.atms.vat.entity.Report;
import pwc.taxtech.atms.vat.service.ReportGenerator; import pwc.taxtech.atms.vat.service.ReportGenerator;
import pwc.taxtech.atms.vat.service.impl.report.functions.FSJZ; import pwc.taxtech.atms.vat.service.impl.report.functions.FSJZ;
import pwc.taxtech.atms.vat.service.impl.report.functions.FormulaContext; import pwc.taxtech.atms.vat.service.impl.report.functions.FormulaContext;
...@@ -26,7 +41,12 @@ import pwc.taxtech.atms.vat.service.impl.report.functions.SGSR; ...@@ -26,7 +41,12 @@ import pwc.taxtech.atms.vat.service.impl.report.functions.SGSR;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static pwc.taxtech.atms.constant.Constant.EMPTY; import static pwc.taxtech.atms.constant.Constant.EMPTY;
...@@ -35,14 +55,17 @@ import static pwc.taxtech.atms.constant.Constant.EMPTY; ...@@ -35,14 +55,17 @@ import static pwc.taxtech.atms.constant.Constant.EMPTY;
public class ReportGeneratorImpl extends VatAbstractService implements ReportGenerator { public class ReportGeneratorImpl extends VatAbstractService implements ReportGenerator {
private static final Logger logger = LoggerFactory.getLogger(ReportGeneratorImpl.class); private static final Logger logger = LoggerFactory.getLogger(ReportGeneratorImpl.class);
@Autowired
private ProjectMapper projectMapper;
@Override @Override
public String generateData(String projectId, List<Long> templateIds public String generateData(String projectId, List<Long> templateIds, Boolean ifDeleteManualDataSource,
, Boolean ifDeleteManualDataSource, List<String> exceptCellTemplates List<String> exceptCellTemplates, Integer periodParam, String generator) {
, Integer periodParam, String generator) {
Date createTime = new Date(); Date createTime = new Date();
int period = periodParam != null ? periodParam : 0; int period = periodParam != null ? periodParam : 0;
Project project = projectMapper.selectByPrimaryKey(projectId);
PeriodTemplateExample periodTemplateExample = new PeriodTemplateExample(); PeriodTemplateExample periodTemplateExample = new PeriodTemplateExample();
periodTemplateExample.createCriteria().andIdIn(templateIds); periodTemplateExample.createCriteria().andIdIn(templateIds);
List<PeriodTemplate> periodTemplateList = periodTemplateMapper.selectByExample(periodTemplateExample); List<PeriodTemplate> periodTemplateList = periodTemplateMapper.selectByExample(periodTemplateExample);
...@@ -69,8 +92,9 @@ public class ReportGeneratorImpl extends VatAbstractService implements ReportGen ...@@ -69,8 +92,9 @@ public class ReportGeneratorImpl extends VatAbstractService implements ReportGen
formulaContext.setFormulaAgent(formulaAgent); formulaContext.setFormulaAgent(formulaAgent);
formulaContext.setPeriod(6);//todo: assign value later formulaContext.setPeriod(6);//todo: assign value later
formulaContext.setReportTemplateGroupID(templateGroupID); formulaContext.setReportTemplateGroupID(templateGroupID);
formulaContext.setProjectID(projectId); formulaContext.setProjectID(project.getID());
formulaContext.setYear(2018);//todo: assign value later formulaContext.setYear(project.getYear());//todo: assign value later
formulaContext.setOrganizationID(project.getOrganizationID());
addFunctionsToWorkbook(newWorkbook, formulaContext); addFunctionsToWorkbook(newWorkbook, formulaContext);
int sheetCount = newWorkbook.getNumberOfSheets(); int sheetCount = newWorkbook.getNumberOfSheets();
......
...@@ -270,7 +270,6 @@ public class ReportServiceImpl extends VatAbstractService implements ReportServi ...@@ -270,7 +270,6 @@ public class ReportServiceImpl extends VatAbstractService implements ReportServi
templateIds = periodTemplateMapper.selectByExample(periodTemplateExample).stream().map(PeriodTemplate::getId).collect(Collectors.toList()); templateIds = periodTemplateMapper.selectByExample(periodTemplateExample).stream().map(PeriodTemplate::getId).collect(Collectors.toList());
} }
String rslt = reportGenerator.generateData(projectId, templateIds, ifDeleteManualDataSource, null, periodParam, generator); String rslt = reportGenerator.generateData(projectId, templateIds, ifDeleteManualDataSource, null, periodParam, generator);
if (StringUtils.isBlank(rslt)) { if (StringUtils.isBlank(rslt)) {
operationResultDto.setResultMsg("ReportGenerateFailed!"); operationResultDto.setResultMsg("ReportGenerateFailed!");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment