Commit 37c45a65 authored by neo's avatar neo

[dev] ImportOutputInvoiceData impl

parent df6963f3
package pwc.taxtech.atms.dto.vatdto;
import pwc.taxtech.atms.vat.entity.OutputVATInvoice;
import pwc.taxtech.atms.vat.entity.OutputVATInvoiceItem;
import java.util.List;
public class ImportOutputInvoiceDto {
public List<OutputVATInvoiceDto> OutputInvoiceList ;
public List<OutputVATInvoiceItemDto> OutputInvoiceItemList ;
public List<OutputVATInvoice> OutputInvoiceList ;
public List<OutputVATInvoiceItem> OutputInvoiceItemList ;
public Integer ImportType ;
}
package pwc.taxtech.atms.dto.vatdto;
import java.math.BigDecimal;
import java.util.Date;
public class OutputVATInvoiceItemDto {
public String ItemID ;
public String InvoiceID ;
public String CodeVersion ;
public String ProductName ;
public String DocumentNum ;
public String ProductStandard ;
public String Unit ;
public Integer Quantity ;
public Double UnitPrice ;
public BigDecimal Amount ;
public BigDecimal TaxRate ;
public BigDecimal TaxAmount ;
public int SeqNo ;
public String TaxClassCode ;
public String CreatorID ;
public Date CreateTime ;
public int PeriodID ;
}
package pwc.taxtech.atms.vat.service.impl;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.jdbc.ScriptRunner;
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.SqlSessionTemplate;
import org.reflections.util.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.PagingList;
import pwc.taxtech.atms.constant.enums.EnumTbImportType;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.PagingResultDto;
import pwc.taxtech.atms.dto.vatdto.ImportOutputInvoiceDto;
......@@ -19,10 +23,12 @@ import pwc.taxtech.atms.vat.entity.OutputVATInvoiceExample;
import pwc.taxtech.atms.vat.entity.OutputVATInvoiceItem;
import pwc.taxtech.atms.vat.entity.OutputVATInvoiceItemExample;
import java.io.StringReader;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -32,6 +38,10 @@ import java.util.stream.Stream;
public class OutputInvoiceServiceImpl extends VatAbstractService {
@Autowired
private ImportFileMapper importFileMapper;
private static final String _tableName = "OutputVATInvoice";
private static final String _itemTableName = "OutputVATInvoiceItem";
@Autowired
private SqlSessionTemplate dynamicSqlSessionTemplate;
public PagingResultDto<OutputVATInvoiceInfoDto> queryOutputInvoiceList(QueryOutputDto queryDto) {
PagingResultDto<OutputVATInvoiceInfoDto> qResult = new PagingResultDto<>();
......@@ -198,8 +208,34 @@ public class OutputInvoiceServiceImpl extends VatAbstractService {
return stream.sorted(Comparator.comparing(OutputVATInvoiceInfoDto::getInvoiceDate)).collect(Collectors.toList());
}
public OperationResultDto ImportOutputInvoiceData(ImportOutputInvoiceDto importDto, String id) {
return null;
public OperationResultDto ImportOutputInvoiceData(ImportOutputInvoiceDto importDto, String userID) {
if (importDto.OutputInvoiceList.size() > 0) {
int period = importDto.OutputInvoiceList.get(0).getPeriodID();
importDto.OutputInvoiceList.forEach(item -> {
item.setCreatorID(userID);
item.setCreateTime(new Date());
});
importDto.OutputInvoiceItemList.forEach(item -> {
item.setCreatorID(userID);
item.setCreateTime(new Date());
});
//如果是覆盖导入,则先删除该期间的数据,再进行数据导入
if (importDto.ImportType == EnumTbImportType.CoverImport.getCode()) {
ClearTableData(period, _tableName);
ClearTableData(period, _itemTableName);
}
// DeleteOutputValidation(period, 2);//todo:[validation] to be continue (neo)
//将发票数据转换为datatable
importDto.OutputInvoiceList.forEach(item -> outputVATInvoiceMapper.insert(item));
importDto.OutputInvoiceItemList.forEach(item -> outputVATInvoiceItemMapper.insert(item));
// ValidataionDuplicationData(period, userID);//todo:[validation] to be continue (neo)
// TaxRateValidation(period, userID);//todo:[validation] to be continue (neo)
// StartToSendMessage(period);//todo:[validation] to be continue (neo)
}
return new OperationResultDto(true);
}
public Boolean addImportFile(ImportFile fileDto) {
......@@ -209,4 +245,22 @@ public class OutputInvoiceServiceImpl extends VatAbstractService {
public OperationResultDto<List<OutputVATInvoiceInfoDto>> GetOutputInvoiceList(int period) {
return null;
}
private void ClearTableData(int period, String tableName) {
String clearCommand = "";
if (period > 0) {
clearCommand = "DELETE FROM " + tableName + " WHERE PeriodID = " + period;
} else {
clearCommand = "TRUNCATE TABLE " + tableName;
}
}
private void exeCommand(String command) {
try (SqlSession sqlSession = dynamicSqlSessionTemplate.getSqlSessionFactory().openSession();) {
ScriptRunner scriptRunner = new ScriptRunner(sqlSession.getConnection());
scriptRunner.setAutoCommit(true);
scriptRunner.runScript(new StringReader(command));
}
}
}
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