Commit 164b07be authored by zhkwei's avatar zhkwei

Merge remote-tracking branch 'origin/dev_mysql' into dev_mysql

parents bb9da620 c54b121a
...@@ -446,6 +446,7 @@ ...@@ -446,6 +446,7 @@
<activation> <activation>
<activeByDefault>true</activeByDefault> <activeByDefault>true</activeByDefault>
</activation> </activation>
<build> <build>
<filters> <filters>
<filter>src/main/resources/conf/conf_profile_dev.properties</filter> <filter>src/main/resources/conf/conf_profile_dev.properties</filter>
......
package pwc.taxtech.atms.common.pwc.Exception;
/**
* @version 1.0
* @program: atms
* @description: Controller统一处理
* @author: Kevin
* @create: 2019-04-22 19:22
**/
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.ui.Model;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import pwc.taxtech.atms.dto.OperationResultDto;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 异常统一处理
* @author lhzhian
* @date 2016年4月28日
*/
@ControllerAdvice
class GloalHander{
private final static String ERROR_PAGE = "系统错误";
private static Logger logger = LoggerFactory.getLogger(GloalHander.class);
@ExceptionHandler(PwcException.class)
@ResponseBody
public OperationResultDto handle(Exception e){
OperationResultDto operationResultDto = new OperationResultDto();
/* ModelAndView mv = new ModelAndView();
mv.addObject("message", e.getMessage());
mv.setViewName(ERROR_PAGE);*/
operationResultDto.error(e.getMessage());
return operationResultDto;
}
@ExceptionHandler(PageException.class)
@ResponseBody
public ModelAndView handSql(Exception ex){
logger.info("-->to error view " + ex.getMessage());
ModelAndView mv = new ModelAndView();
if(ex == null){
mv.addObject("message",ERROR_PAGE);
}
mv.setViewName("error.html");
return mv;
}
@ModelAttribute
//应用到所有@RequestMapping注解方法
//此处将键值对添加到全局,注解了@RequestMapping的方法都可以获得此键值对
public void addUser(Model model) {
//model.addAttribute("pwc.message", "sizegang");
}
@InitBinder
//应用到所有@RequestMapping注解方法,在其执行之前初始化数据绑定器
//用来设置WebDataBinder,用于自动绑定前台请求参数到Model中。
public void initBinder(WebDataBinder binder) {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
CustomDateEditor orderDateEditor = new CustomDateEditor(dateFormat, true);
binder.registerCustomEditor(Date.class, orderDateEditor);
}
}
\ No newline at end of file
package pwc.taxtech.atms.common.pwc.Exception;
/**
* @version 1.0
* @program: atms
* @description: 跳转页面异常
* @author: Kevin
* @create: 2019-04-22 19:33
**/
public class PageException extends Exception {
private static final long serialVersionUID = 1L;
//业务类型
private String bizType;
//业务代码
private int bizCode;
//错误信息
private String message;
public PageException(String bizType, int bizCode, String message){
super(message);
this.bizType = bizType;
this.bizCode = bizCode;
this.message = message;
}
public PageException(String message){
super(message);
this.bizType = "";
this.bizCode = -1;
this.message = message;
}
public PageException(String bizType, String message){
super(message);
this.bizType = bizType;
this.bizCode = -1;
this.message = message;
}
public PageException(int bizCode, String message){
super(message);
this.bizType = "";
this.bizCode = bizCode;
this.message = message;
}
public String getBizType() {
return bizType;
}
public void setBizType(String bizType) {
this.bizType = bizType;
}
public int getBizCode() {
return bizCode;
}
public void setBizCode(int bizCode) {
this.bizCode = bizCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
package pwc.taxtech.atms.common.pwc.Exception;
/**
* @version 1.0
* @program: atms
* @description: 自定义运行时异常
* @author: Kevin
* @create: 2019-04-22 19:26
**/
public class PwcException extends Exception {
private static final long serialVersionUID = 1L;
//业务类型
private String bizType;
//业务代码
private int bizCode;
//错误信息
private String message;
public PwcException(String bizType, int bizCode, String message){
super(message);
this.bizType = bizType;
this.bizCode = bizCode;
this.message = message;
}
public PwcException(String message){
super(message);
this.bizType = "";
this.bizCode = -1;
this.message = message;
}
public PwcException(String bizType, String message){
super(message);
this.bizType = bizType;
this.bizCode = -1;
this.message = message;
}
public PwcException(int bizCode, String message){
super(message);
this.bizType = "";
this.bizCode = bizCode;
this.message = message;
}
public String getBizType() {
return bizType;
}
public void setBizType(String bizType) {
this.bizType = bizType;
}
public int getBizCode() {
return bizCode;
}
public void setBizCode(int bizCode) {
this.bizCode = bizCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
...@@ -3,15 +3,14 @@ package pwc.taxtech.atms.controller; ...@@ -3,15 +3,14 @@ package pwc.taxtech.atms.controller;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.message.ErrorMessage; import pwc.taxtech.atms.common.message.ErrorMessage;
import pwc.taxtech.atms.controller.BaseController;
import pwc.taxtech.atms.dto.ApiResultDto; import pwc.taxtech.atms.dto.ApiResultDto;
import pwc.taxtech.atms.dto.OperationResultDto; import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.analysis.AnalysisDomesticlParam; import pwc.taxtech.atms.dto.analysis.AnalysisDomesticlParam;
import pwc.taxtech.atms.dto.analysis.AnalysisInternationlParam; import pwc.taxtech.atms.dto.analysis.AnalysisInternationlParam;
import pwc.taxtech.atms.dto.vatdto.CertifiedInvoicesListParam;
import pwc.taxtech.atms.exception.ServiceException; import pwc.taxtech.atms.exception.ServiceException;
import pwc.taxtech.atms.service.impl.AnalysisServiceImpl; import pwc.taxtech.atms.service.impl.AnalysisServiceImpl;
...@@ -79,7 +78,7 @@ public class AnalysisController extends BaseController { ...@@ -79,7 +78,7 @@ public class AnalysisController extends BaseController {
@ResponseBody @ResponseBody
@RequestMapping(value = "DomesitcExcelFile", method = RequestMethod.POST) @RequestMapping(value = "DomesitcExcelFile", method = RequestMethod.POST)
public OperationResultDto importDomesitcExcelFile(@RequestParam MultipartFile file, @RequestParam String period, @RequestParam Integer type) { public OperationResultDto importDomesitcExcelFile(@RequestParam MultipartFile file, @RequestParam String period, @RequestParam Integer type, Model model) {
try { try {
String valMsg = valParameter(file,period,type); String valMsg = valParameter(file,period,type);
if(StringUtils.isNotEmpty(valMsg)){ if(StringUtils.isNotEmpty(valMsg)){
...@@ -87,9 +86,7 @@ public class AnalysisController extends BaseController { ...@@ -87,9 +86,7 @@ public class AnalysisController extends BaseController {
} }
return analysisServiceImpl.importDomesitcExcelFile(file,period, type); return analysisServiceImpl.importDomesitcExcelFile(file,period, type);
} catch (ServiceException e) { } catch (ServiceException e) {
String message = e.getMessage(); return OperationResultDto.error(e.getMessage());
String[] split = message.split(":");
return OperationResultDto.error(split[1]);
} catch (Exception e) { } catch (Exception e) {
logger.error("importDomesitcExcelFile error.", e); logger.error("importDomesitcExcelFile error.", e);
return OperationResultDto.error(ErrorMessage.SystemError); return OperationResultDto.error(ErrorMessage.SystemError);
......
...@@ -362,17 +362,16 @@ public class ReportController { ...@@ -362,17 +362,16 @@ public class ReportController {
* 批量导出利润表 * 批量导出利润表
*/ */
@RequestMapping("manyExport") @RequestMapping("manyExport")
public ResponseEntity manyExport(@RequestBody RequestParameterDto requestParameterDto, HttpServletResponse response, HttpServletRequest request) { public OperationResultDto manyExport(@RequestBody RequestParameterDto requestParameterDto, HttpServletResponse response, HttpServletRequest request) {
OperationResultDto operationResultDto = new OperationResultDto(); OperationResultDto operationResultDto = new OperationResultDto();
try { try {
//taskExecutor.execute(new EbitBatchExportJob( reportService,requestParameterDto, request, response)); //taskExecutor.execute(new EbitBatchExportJob( reportService,requestParameterDto, request, response));
reportService.manyExport(requestParameterDto, request, response); reportService.manyExport(requestParameterDto, request, response);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
operationResultDto.error(e.getMessage()); return operationResultDto.error(e.getMessage());
return new ResponseEntity(HttpStatus.NO_CONTENT);
} }
return new ResponseEntity(HttpStatus.OK); return OperationResultDto.success();
} }
@Autowired @Autowired
......
...@@ -289,7 +289,7 @@ public class AnalysisServiceImpl extends BaseService { ...@@ -289,7 +289,7 @@ public class AnalysisServiceImpl extends BaseService {
} catch (Exception e) { } catch (Exception e) {
throw new ServiceException(e); throw new ServiceException(e);
} }
return notMatchOrg.append(orgNotList + "机构匹配失败"); return notMatchOrg.append(orgNotList + "行, 机构匹配失败");
} }
private AnalysisTax getAnalysisTax(Integer period, Sheet sheet, int k, int j, Organization org) { private AnalysisTax getAnalysisTax(Integer period, Sheet sheet, int k, int j, Organization org) {
......
...@@ -962,7 +962,7 @@ public class DataImportService extends BaseService { ...@@ -962,7 +962,7 @@ public class DataImportService extends BaseService {
for (int i = 0; i < workbook.getNumberOfSheets(); i++) { for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
Sheet sheet = workbook.getSheetAt(i); Sheet sheet = workbook.getSheetAt(i);
if (isSheetEmpty(sheet)) continue; if (isSheetEmpty(sheet)) continue;
List<RedLetterInfoTable> rlits = generalRLITs(sheet,evaluator); List<RedLetterInfoTable> rlits = generalRLITs(sheet,tmsPeriod, evaluator);
if (rlits.size() < 1) continue; if (rlits.size() < 1) continue;
// 根据主体分组处理 // 根据主体分组处理
Map<String, List<RedLetterInfoTable>> atsGroupRes = Map<String, List<RedLetterInfoTable>> atsGroupRes =
...@@ -1742,8 +1742,9 @@ public class DataImportService extends BaseService { ...@@ -1742,8 +1742,9 @@ public class DataImportService extends BaseService {
dataImportLogs.add(dataImportLog); dataImportLogs.add(dataImportLog);
} }
private List<RedLetterInfoTable> generalRLITs(Sheet sheet,FormulaEvaluator evaluator) { private List<RedLetterInfoTable> generalRLITs(Sheet sheet, Integer periodDate, FormulaEvaluator evaluator) {
List<RedLetterInfoTable> rlits = Lists.newArrayList(); List<RedLetterInfoTable> rlits = Lists.newArrayList();
SimpleDateFormat format = new SimpleDateFormat("yyyyMM");
for (int j = 1; j <= sheet.getLastRowNum(); j++) { for (int j = 1; j <= sheet.getLastRowNum(); j++) {
RedLetterInfoTable rlit = new RedLetterInfoTable(); RedLetterInfoTable rlit = new RedLetterInfoTable();
Long plId = idService.nextId(); Long plId = idService.nextId();
...@@ -1758,8 +1759,11 @@ public class DataImportService extends BaseService { ...@@ -1758,8 +1759,11 @@ public class DataImportService extends BaseService {
if (!"".equals(value)) { if (!"".equals(value)) {
rlit.setRedLetterInvoiceInfoTableNum(new BigDecimal(value.toString()).toPlainString()); rlit.setRedLetterInvoiceInfoTableNum(new BigDecimal(value.toString()).toPlainString());
} }
rlit.setPeriod(DateUtils.dateToPeriod(row.getCell(3).getDateCellValue())); rlit.setPeriod(periodDate);
rlit.setFillInDate(row.getCell(3).getDateCellValue()); try{
rlit.setFillInDate(row.getCell(1).getDateCellValue());
}catch (Exception e){
}
rlit.setSalesTaxNumber(getCellStringValue(row.getCell(4))); rlit.setSalesTaxNumber(getCellStringValue(row.getCell(4)));
rlit.setSalespersonName(getCellStringValue(row.getCell(5))); rlit.setSalespersonName(getCellStringValue(row.getCell(5)));
rlit.setTotalAmount(getCellBigDecimalValue(row.getCell(6),evaluator)); rlit.setTotalAmount(getCellBigDecimalValue(row.getCell(6),evaluator));
......
...@@ -26,6 +26,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest; ...@@ -26,6 +26,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import pwc.taxtech.atms.common.CommonUtils; import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.POIUtil; import pwc.taxtech.atms.common.POIUtil;
import pwc.taxtech.atms.common.message.ErrorMessage; import pwc.taxtech.atms.common.message.ErrorMessage;
import pwc.taxtech.atms.common.pwc.Exception.PwcException;
import pwc.taxtech.atms.common.util.*; import pwc.taxtech.atms.common.util.*;
import pwc.taxtech.atms.constant.Constant; import pwc.taxtech.atms.constant.Constant;
import pwc.taxtech.atms.constant.enums.*; import pwc.taxtech.atms.constant.enums.*;
...@@ -232,7 +233,8 @@ public class ReportServiceImpl extends BaseService { ...@@ -232,7 +233,8 @@ public class ReportServiceImpl extends BaseService {
return operationResult; return operationResult;
} }
private void clearPeriodData(String projectId, Integer period, boolean isMergeManualData) { private void clearPeriodData(String projectId, Integer period, List<Long> templateIds, boolean isMergeManualData) {
if (templateIds.isEmpty()) templateIds.add(Long.MAX_VALUE);
PeriodFormulaBlockExample periodFormulaBlockExample = new PeriodFormulaBlockExample(); PeriodFormulaBlockExample periodFormulaBlockExample = new PeriodFormulaBlockExample();
periodFormulaBlockExample.createCriteria().andProjectIdEqualTo(projectId).andPeriodEqualTo(period); periodFormulaBlockExample.createCriteria().andProjectIdEqualTo(projectId).andPeriodEqualTo(period);
periodFormulaBlockMapper.deleteByExample(periodFormulaBlockExample); periodFormulaBlockMapper.deleteByExample(periodFormulaBlockExample);
...@@ -242,15 +244,15 @@ public class ReportServiceImpl extends BaseService { ...@@ -242,15 +244,15 @@ public class ReportServiceImpl extends BaseService {
periodTaxRuleSettingMapper.deleteByExample(periodTaxRuleSettingExample); periodTaxRuleSettingMapper.deleteByExample(periodTaxRuleSettingExample);
PeriodCellTemplateExample periodCellTemplateExample = new PeriodCellTemplateExample(); PeriodCellTemplateExample periodCellTemplateExample = new PeriodCellTemplateExample();
periodCellTemplateExample.createCriteria().andProjectIdEqualTo(projectId).andPeriodEqualTo(period); periodCellTemplateExample.createCriteria().andProjectIdEqualTo(projectId).andPeriodEqualTo(period).andReportTemplateIdNotIn(templateIds);
periodCellTemplateMapper.deleteByExample(periodCellTemplateExample); periodCellTemplateMapper.deleteByExample(periodCellTemplateExample);
PeriodCellTemplateConfigExample periodCellTemplateConfigExample = new PeriodCellTemplateConfigExample(); PeriodCellTemplateConfigExample periodCellTemplateConfigExample = new PeriodCellTemplateConfigExample();
periodCellTemplateConfigExample.createCriteria().andProjectIdEqualTo(projectId).andPeriodEqualTo(period); periodCellTemplateConfigExample.createCriteria().andProjectIdEqualTo(projectId).andPeriodEqualTo(period).andReportTemplateIdNotIn(templateIds);
periodCellTemplateConfigMapper.deleteByExample(periodCellTemplateConfigExample); periodCellTemplateConfigMapper.deleteByExample(periodCellTemplateConfigExample);
PeriodTemplateExample periodTemplateExample = new PeriodTemplateExample(); PeriodTemplateExample periodTemplateExample = new PeriodTemplateExample();
periodTemplateExample.createCriteria().andProjectIdEqualTo(projectId).andPeriodEqualTo(period); periodTemplateExample.createCriteria().andProjectIdEqualTo(projectId).andPeriodEqualTo(period).andTemplateIdNotIn(templateIds);
periodTemplateMapper.deleteByExample(periodTemplateExample); periodTemplateMapper.deleteByExample(periodTemplateExample);
PeriodTaxPayerReportRuleExample periodTaxPayerReportRuleExample = new PeriodTaxPayerReportRuleExample(); PeriodTaxPayerReportRuleExample periodTaxPayerReportRuleExample = new PeriodTaxPayerReportRuleExample();
...@@ -304,13 +306,12 @@ public class ReportServiceImpl extends BaseService { ...@@ -304,13 +306,12 @@ public class ReportServiceImpl extends BaseService {
} }
private void updateConfig(String projectId, Integer period, Boolean isMergeManualData, List<Template> templates, PeriodJob job) { private void updateConfig(String projectId, Integer period, Boolean isMergeManualData, List<Template> templates, PeriodJob job) {
//财务报表不删除,这个逻辑用不到,先注释掉 List<Long> exceptTemplateIds = templateMapper.getIdsForExceptTemplate();
// List<Long> exceptTemplateIds = templateMapper.getIdsForExceptTemplate();
//根据收入类型映射生成开票记录关联数据 //根据收入类型映射生成开票记录关联数据
assembleInvoiceRecord(projectId, period, isMergeManualData); assembleInvoiceRecord(projectId, period, isMergeManualData);
//生成trial_balance_final数据 //生成trial_balance_final数据
assembleTrialBalanceFinal(projectId, period); assembleTrialBalanceFinal(projectId, period);
clearPeriodData(projectId, period, isMergeManualData); clearPeriodData(projectId, period, exceptTemplateIds, isMergeManualData);
copyTemplateAndConfigFromAdmin(projectId, templates, period); copyTemplateAndConfigFromAdmin(projectId, templates, period);
setStatus(job, STATUS_END); setStatus(job, STATUS_END);
periodJobMapper.updateByPrimaryKey(job); periodJobMapper.updateByPrimaryKey(job);
...@@ -374,10 +375,8 @@ public class ReportServiceImpl extends BaseService { ...@@ -374,10 +375,8 @@ public class ReportServiceImpl extends BaseService {
destRecord.setRevenueCofId(map.get(mapping.getContent())); destRecord.setRevenueCofId(map.get(mapping.getContent()));
InvoiceRecordExample recordExample = new InvoiceRecordExample(); InvoiceRecordExample recordExample = new InvoiceRecordExample();
recordExample.createCriteria().andProjectIdEqualTo(projectId) recordExample.createCriteria().andProjectIdEqualTo(projectId)
.andOrganizationIdEqualTo(mapping.getOrgId()).andBillingContentEqualTo(mapping.getContent()) .andOrganizationIdEqualTo(mapping.getOrgId()).andBillingContentEqualTo(mapping.getContent()).
.andTaxRateEqualTo(mapping.getTaxRate()) andPeriodEqualTo(Integer.valueOf(queryDate.replace("-", "")));
.andDepartmentEqualTo(mapping.getOuName())
.andPeriodEqualTo(Integer.valueOf(queryDate.replace("-", "")));
invoiceRecordMapper.updateByExampleSelective(destRecord, recordExample); invoiceRecordMapper.updateByExampleSelective(destRecord, recordExample);
} }
} }
...@@ -878,8 +877,8 @@ public class ReportServiceImpl extends BaseService { ...@@ -878,8 +877,8 @@ public class ReportServiceImpl extends BaseService {
row.getCell(TaxesCalculateReportEnum.Column.Column_4.getIndex()).setCellValue(0.00); row.getCell(TaxesCalculateReportEnum.Column.Column_4.getIndex()).setCellValue(0.00);
} else if (1 == config.getAccountType()) {//科目 } else if (1 == config.getAccountType()) {//科目
row.getCell(TaxesCalculateReportEnum.Column.Column_4.getIndex()).setCellValue( row.getCell(TaxesCalculateReportEnum.Column.Column_4.getIndex()).setCellValue(
"DFFS(\"" + config.getTbSegment3() + "\"," + project.getYear() + "," + period + ",3,\"" + config.getTbSegment5() + "\",\"" + config.getTbSegment6() + "\")-" "DFFS(\"" + config.getTbSegment3() + "\"," + project.getYear() + "," + period + ",1,\"" + config.getTbSegment5() + "\",\"" + config.getTbSegment6() + "\")-"
+ "JFFS(\"" + config.getTbSegment3() + "\"," + project.getYear() + "," + period + ",3,\"" + config.getTbSegment5() + "\",\"" + config.getTbSegment6() + "\")"); + "JFFS(\"" + config.getTbSegment3() + "\"," + project.getYear() + "," + period + ",1,\"" + config.getTbSegment5() + "\",\"" + config.getTbSegment6() + "\")");
} else if (2 == config.getAccountType()) {//手工输入 } else if (2 == config.getAccountType()) {//手工输入
} else { } else {
...@@ -897,9 +896,9 @@ public class ReportServiceImpl extends BaseService { ...@@ -897,9 +896,9 @@ public class ReportServiceImpl extends BaseService {
} else if (3 == config.getTaxBase()) {//手工录入 } else if (3 == config.getTaxBase()) {//手工录入
} else if (4 == config.getTaxBase()) {//借方发生额 } else if (4 == config.getTaxBase()) {//借方发生额
row.getCell(TaxesCalculateReportEnum.Column.Column_9.getIndex()).setCellValue("JFFS(\"" + config.getBaseDrCode() + "\"," + project.getYear() + "," + period + ",3,,)"); row.getCell(TaxesCalculateReportEnum.Column.Column_9.getIndex()).setCellValue("JFFS(\"" + config.getBaseDrCode() + "\"," + project.getYear() + "," + period + ",1,,)");
} else if (5 == config.getTaxBase()) {//贷方发生额 } else if (5 == config.getTaxBase()) {//贷方发生额
row.getCell(TaxesCalculateReportEnum.Column.Column_9.getIndex()).setCellValue("DFFS(\"" + config.getBaseCrCode() + "\"," + project.getYear() + "," + period + ",3,,)"); row.getCell(TaxesCalculateReportEnum.Column.Column_9.getIndex()).setCellValue("DFFS(\"" + config.getBaseCrCode() + "\"," + project.getYear() + "," + period + ",1,,)");
} else { } else {
row.getCell(TaxesCalculateReportEnum.Column.Column_9.getIndex()).setCellValue(""); row.getCell(TaxesCalculateReportEnum.Column.Column_9.getIndex()).setCellValue("");
} }
...@@ -935,7 +934,7 @@ public class ReportServiceImpl extends BaseService { ...@@ -935,7 +934,7 @@ public class ReportServiceImpl extends BaseService {
sumStr += cellNum + ","; sumStr += cellNum + ",";
} }
sumStr += "\")"; sumStr += "\")";
// sumStr = sumStr.replace(",\")", "\")"); sumStr = sumStr.replace(",\")", "\")");
sumRow.getCell(entry.getKey()).setCellValue(sumStr); sumRow.getCell(entry.getKey()).setCellValue(sumStr);
} }
...@@ -2092,17 +2091,16 @@ public class ReportServiceImpl extends BaseService { ...@@ -2092,17 +2091,16 @@ public class ReportServiceImpl extends BaseService {
PeriodDataSource dataSourceModel = null; PeriodDataSource dataSourceModel = null;
if (dataSourceExtendDtos.size() > 0) { if (dataSourceExtendDtos.size() > 0) {
dataSourceModel = dataSourceExtendDtos.get(0).getDataSource(); dataSourceModel = dataSourceExtendDtos.get(0).getDataSource();
dataSourceModel= periodDataSourceMapper.selectByPrimaryKey(dataSourceModel.getId());
if (StringUtils.isBlank(data.getKeyinData())) if (StringUtils.isBlank(data.getKeyinData()))
updateCellValueForDataSourceChange(dataSourceModel, data.getAmount()); updateCellValueForDataSourceChange(dataSourceModel, data.getAmount());
originalAmount = dataSourceModel.getAmount() != null ? dataSourceModel.getAmount() : new BigDecimal("0"); originalAmount = dataSourceModel.getAmount() != null ? dataSourceModel.getAmount() : new BigDecimal("0");
dataSourceModel.setName(data.getName()); dataSourceModel.setName(data.getName());
dataSourceModel.setDescription(data.getDescription()); dataSourceModel.setDescription(data.getDescription());
dataSourceModel.setAmount(data.getAmount()==null?new BigDecimal(0):data.getAmount()); dataSourceModel.setAmount(data.getAmount());
dataSourceModel.setUpdateBy("Admin"); dataSourceModel.setUpdateBy("Admin");
dataSourceModel.setKeyinData(data.getKeyinData()); dataSourceModel.setKeyinData(data.getKeyinData());
dataSourceModel.setUpdateTime(new Date()); dataSourceModel.setUpdateTime(new Date());
periodDataSourceMapper.updateByPrimaryKey(dataSourceModel); periodDataSourceMapper.updateByPrimaryKeySelective(dataSourceModel);
} else { } else {
dataSourceModel = new PeriodDataSource(); dataSourceModel = new PeriodDataSource();
Long cellDataSourceId = distributedIdService.nextId(); Long cellDataSourceId = distributedIdService.nextId();
...@@ -2659,7 +2657,7 @@ public class ReportServiceImpl extends BaseService { ...@@ -2659,7 +2657,7 @@ public class ReportServiceImpl extends BaseService {
templateExample.createCriteria().andCodeEqualTo(EBITTemplateCode).andNameEqualTo(EBITTemplateCode);//todo 这里是利润表模板的固定code,禁止重复 templateExample.createCriteria().andCodeEqualTo(EBITTemplateCode).andNameEqualTo(EBITTemplateCode);//todo 这里是利润表模板的固定code,禁止重复
List<Template> templates1 = templateMapper.selectByExample(templateExample); List<Template> templates1 = templateMapper.selectByExample(templateExample);
if (templates1.size() == 0) if (templates1.size() == 0)
throw new Exception("没有利润表模板,无法批量导出,请上传模板"); throw new PwcException("没有利润表模板,无法批量导出,请上传模板");
MyAsserts.assertNotEmpty(templates1, new NotFoundException()); MyAsserts.assertNotEmpty(templates1, new NotFoundException());
Template template = templates1.get(0); Template template = templates1.get(0);
String templatePath = template.getPath(); String templatePath = template.getPath();
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
from cash_flow from cash_flow
where where
<include refid="QueryCondition"/> <include refid="QueryCondition"/>
order by id desc
</select> </select>
<select id="selectCountByCondition" parameterType="pwc.taxtech.atms.vat.dpo.CashFlowCondition" resultType="Integer"> <select id="selectCountByCondition" parameterType="pwc.taxtech.atms.vat.dpo.CashFlowCondition" resultType="Integer">
select select
......
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="&#x56FE;&#x5C42;_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 28 28" style="enable-background:new 0 0 28 28;" xml:space="preserve">
<path d="M27,4H1C0.448,4,0,3.552,0,3v0c0-0.552,0.448-1,1-1h26c0.552,0,1,0.448,1,1v0C28,3.552,27.552,4,27,4z"/>
<path d="M27,15H1c-0.552,0-1-0.448-1-1v0c0-0.552,0.448-1,1-1h26c0.552,0,1,0.448,1,1v0C28,14.552,27.552,15,27,15z"/>
<path d="M27,26H1c-0.552,0-1-0.448-1-1v0c0-0.552,0.448-1,1-1h26c0.552,0,1,0.448,1,1v0C28,25.552,27.552,26,27,26z"/>
</svg>
<template> <template>
<v-container > <v-container>
<v-navigation-drawer <v-navigation-drawer
v-model="drawerRight" v-model="drawerRight"
fixed fixed
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
fixed fixed
app app
clipped-right clipped-right
height="90" height="45"
color="#ffffff" color="#ffffff"
style="border-bottom: 1px solid #dddddd" style="border-bottom: 1px solid #dddddd"
> >
...@@ -59,10 +59,10 @@ ...@@ -59,10 +59,10 @@
<span class="body-2" <span class="body-2"
@click.stop="drawerRight = !drawerRight" style="vertical-align: middle; margin-right: 5px; width:100%" @click.stop="drawerRight = !drawerRight" style="vertical-align: middle; margin-right: 5px; width:100%"
> >
<svg class="icon" aria-hidden="true" ><use <svg class="icon" aria-hidden="true" style="height:14px"><use
:xlink:href="selectedItem.iconName"></use></svg> :xlink:href="selectedItem.iconName"></use></svg>
<span style="vertical-align: middle; margin-left: 10px;font-weight:normal; font-size:26px" v-text="selectedItem.title"></span> <span style="vertical-align: middle; margin-left: 10px;font-weight:normal; font-size:12px/16px" v-text="selectedItem.title"></span>
<v-icon style="vertical-align: middle;margin-top:5px;float:right;height:28px;width:28px;color:#333333;">menu</v-icon> <img src="../assets/menu.svg" style="vertical-align: middle;margin-top:5px;float:right;height:14px;width:14px;color:#333333;"></img>
</span> </span>
<!-- <v-btn large--> <!-- <v-btn large-->
...@@ -73,10 +73,9 @@ ...@@ -73,10 +73,9 @@
<!-- </v-btn>--> <!-- </v-btn>-->
<!-- <v-toolbar-side-icon @click.stop="drawerRight = !drawerRight"></v-toolbar-side-icon>--> <!-- <v-toolbar-side-icon @click.stop="drawerRight = !drawerRight"></v-toolbar-side-icon>-->
</v-toolbar> </v-toolbar>
<v-container ma-0 pa-0> <v-container ma-0 pa-0 >
<Tableau :url="chartUrl" <Tableau :url="chartUrl"
width="100%" width="100%"
ref="tableau" ref="tableau"
:apiUrl="tableauApiUrl" :apiUrl="tableauApiUrl"
> >
...@@ -246,8 +245,5 @@ ...@@ -246,8 +245,5 @@
<style scoped> <style scoped>
.head {
height: 90px;
background-color: red;
}
</style> </style>
\ No newline at end of file
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
:active.sync="bottomNav" :active.sync="bottomNav"
:value="true" :value="true"
color="#ffffff" color="#ffffff"
height="48px"
absolute absolute
style=" overflow: hidden; style=" overflow: hidden;
position: fixed; position: fixed;
...@@ -16,26 +17,24 @@ ...@@ -16,26 +17,24 @@
border-top:1px solid #dddddd;" border-top:1px solid #dddddd;"
> >
<v-btn <v-btn @click="clickOne()"
color="#333333"
flat flat
value="panel" value="panel"
depressed depressed
:to="{name: 'panel'}" :to="{name: 'panel'}"
> >
<span style="font-size:20px ; ">仪表盘</span> <span :color="color_font1" style="font-size:10px ; ">仪表盘</span>
<v-icon >table_chart</v-icon> <v-icon :color="color_icon1" >table_chart</v-icon>
</v-btn> </v-btn>
<v-btn <v-btn @click="clickTwo()"
color="#333333"
flat flat
value="mine" value="mine"
depressed depressed
:to="{name: 'mine'}" :to="{name: 'mine'}"
> >
<span style="font-size:20px ; " > 我的</span> <span :color="color_font2" style="font-size:10px ; " > 我的</span>
<v-icon >account_box</v-icon> <v-icon :color="color_icon2" >account_box</v-icon>
</v-btn> </v-btn>
</v-bottom-nav> </v-bottom-nav>
...@@ -46,10 +45,32 @@ ...@@ -46,10 +45,32 @@
export default { export default {
data() { data() {
return { return {
color_icon2:'#dddddd',
color_icon1:'#333333',
color_font2:'#999999',
color_font1:'#333333',
bottomNav: 'panel' bottomNav: 'panel'
} }
}, },
methods: {
clickOne() {
this.color_icon1='#333333'
this.color_icon2='#dddddd'
this.color_font1='#333333'
this.color_font2='#999999'
},
clickTwo() {
this.color_icon2='#333333'
this.color_icon1='#dddddd'
this.color_font2='#333333'
this.color_font1='#999999'
}
},
components: { components: {
...@@ -83,7 +104,5 @@ ...@@ -83,7 +104,5 @@
</script> </script>
<style scoped> <style scoped>
.color_active{
color:red!important;
}
</style> </style>
\ No newline at end of file
...@@ -3144,7 +3144,6 @@ ...@@ -3144,7 +3144,6 @@
} }
setTimeout(function(){spreadTODb();}, 1000) setTimeout(function(){spreadTODb();}, 1000)
} }
$scope.singleExport = function () { $scope.singleExport = function () {
if ($scope.spread != undefined && $scope.spread) { if ($scope.spread != undefined && $scope.spread) {
var excelIo = new GC.Spread.Excel.IO(); var excelIo = new GC.Spread.Excel.IO();
...@@ -3153,7 +3152,6 @@ ...@@ -3153,7 +3152,6 @@
fileName += '.xlsx'; fileName += '.xlsx';
} }
var json = $scope.spread.toJSON(); var json = $scope.spread.toJSON();
// here is excel IO API // here is excel IO API
excelIo.save(json, function (blob) { excelIo.save(json, function (blob) {
saveAs(blob, ($scope.relation.orgName != undefined ? $scope.relation.orgName : "" + $scope.relation.period) + fileName); saveAs(blob, ($scope.relation.orgName != undefined ? $scope.relation.orgName : "" + $scope.relation.period) + fileName);
...@@ -3171,45 +3169,8 @@ ...@@ -3171,45 +3169,8 @@
templateId: $scope.templateId templateId: $scope.templateId
} }
/* $timeout(function () {
$('#busy-indicator-container').show();
var mainSpread = new GC.Spread.Sheets.Workbook(document.getElementById("report"), {sheetCount: 1});
mainSpread.isPaintSuspended(true);
mainSpread.sheets.pop();
for (var index = 0; index < $scope.spreads.length; index++) {
var currentSheet = $scope.spreads[index].getActiveSheet();
currentSheet.options.isProtected = false;
for (var rowIndex = 0; rowIndex < currentSheet.getRowCount(); rowIndex++) {
for (var columnIndex = 0; columnIndex < currentSheet.getColumnCount(); columnIndex++) {
var cellStyle = currentSheet.getActualStyle(rowIndex, columnIndex, GC.Spread.Sheets.SheetArea.viewport, true);
currentSheet.setStyle(rowIndex, columnIndex, cellStyle, GC.Spread.Sheets.SheetArea.viewport);
}
}
mainSpread.sheets.push(currentSheet);
}
var excelIo = new GC.Spread.Excel.IO();
excelIo.save(mainSpread.toJSON(), function (blob) {
if ('export' == $scope.evenType) {
saveAs(blob, vatSessionService.project.name + '-' + vatSessionService.month + '-纳税申报.xlsx');
$('#busy-indicator-container').hide();
}
}, function (e) {
alert(e);
});
$('.export-container').html('');
$('#export').html('');
$log.debug(mainSpread);
}, 500);*/
vatReportService.manyExport(param); vatReportService.manyExport(param);
}; };
/* $scope.relation._orgId = null;
$scope.$watch('relation._orgId', function (n, o) {
if (n != undefined)
$scope.relation.orgId = n.pop();
});*/
var initCompanyList = function () { var initCompanyList = function () {
var joinText = ""; var joinText = "";
......
...@@ -330,6 +330,7 @@ ...@@ -330,6 +330,7 @@
assetListService.getAssetResultListPage($scope.citAssetsListDto).success(function (assetListData) { assetListService.getAssetResultListPage($scope.citAssetsListDto).success(function (assetListData) {
debugger; debugger;
var data = assetListData.data.list; var data = assetListData.data.list;
$('.filter-button').popover("hide");
if (data) { if (data) {
var index = 1; var index = 1;
// data.forEach(function (v) { // data.forEach(function (v) {
...@@ -355,6 +356,7 @@ ...@@ -355,6 +356,7 @@
$scope.TotalCount = assetListData.data.total; $scope.TotalCount = assetListData.data.total;
$scope.pagingOptions.totalItems = assetListData.data.total; $scope.pagingOptions.totalItems = assetListData.data.total;
$scope.pageOptions.totalItems = assetListData.data.total; $scope.pageOptions.totalItems = assetListData.data.total;
}); });
} }
...@@ -1266,7 +1268,7 @@ ...@@ -1266,7 +1268,7 @@
//开始 //开始
(function initialize() { (function initialize() {
debugger;
/**************************************** function start*************************************************/ /**************************************** function start*************************************************/
$scope.displayType = 2; $scope.displayType = 2;
$scope.saveGroupType = 1; $scope.saveGroupType = 1;
......
...@@ -71,18 +71,10 @@ ...@@ -71,18 +71,10 @@
manyExport: function (param) { manyExport: function (param) {
var toParam = JSON.stringify(param); var toParam = JSON.stringify(param);
return $http.post('/Report/manyExport', toParam, apiConfig.createVat({responseType: 'arraybuffer'})).then(function (response) { return $http.post('/Report/manyExport', toParam, apiConfig.createVat({responseType: 'arraybuffer'})).then(function (response) {
if(response.status == 204){ if(!response.result){
SweetAlert.error("当前期间没有可导出的数据"); SweetAlert.error(response.resultMsg);
return
} }
var a = document.createElement('a'); PWC.downloadCallBack(new Blob([response.data], {type: response.headers('Content-Type')}),null, null,param.period + "-汇总利润表.xlsx" );
var data = new Blob([response.data], {type: response.headers('Content-Type')});
//FileSaver.saveAs(data, '利润表.zip');
a.href = URL.createObjectURL(data);
a.download = param.period + "-汇总利润表.xlsx";
a.click();
}); });
} }
, ,
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
$scope.startDate = new Date(vatSessionService.project.year, 0, 1); $scope.startDate = new Date(vatSessionService.project.year, 0, 1);
$scope.endDate = new Date(vatSessionService.project.year, 11, 31); $scope.endDate = new Date(vatSessionService.project.year, 11, 31);
$scope.dateFormat = $translate.instant('dateFormat4YearMonthDay'); $scope.dateFormat = $translate.instant('dateFormat4YearMonthDay');
$scope.startMonth = vatSessionService.year + vatSessionService.month; $scope.startMonth = vatSessionService.year + '' + vatSessionService.month;
$scope.endMonth = vatSessionService.year + vatSessionService.month; $scope.endMonth = vatSessionService.year + '' + vatSessionService.month;
$scope.totalMoneyAmount = 0; $scope.totalMoneyAmount = 0;
$scope.totalTaxAmount = 0; $scope.totalTaxAmount = 0;
$scope.pageSize = constant.vatPagesize; $scope.pageSize = constant.vatPagesize;
...@@ -205,6 +205,7 @@ ...@@ -205,6 +205,7 @@
pageInfo: {}, pageInfo: {},
periodStart: '', periodStart: '',
periodEnd: '', periodEnd: '',
orgId: '',
segment3: null, segment3: null,
segment3Name: null, segment3Name: null,
segment5: null, segment5: null,
...@@ -216,6 +217,7 @@ ...@@ -216,6 +217,7 @@
}; };
$scope.queryParams.periodStart = $scope.startMonth; $scope.queryParams.periodStart = $scope.startMonth;
$scope.queryParams.periodEnd = $scope.endMonth; $scope.queryParams.periodEnd = $scope.endMonth;
$scope.queryParams.orgId = vatSessionService.project.organizationID;
loadJournalEntryDataFromDB(1); loadJournalEntryDataFromDB(1);
$('.filter-button').popover("hide"); $('.filter-button').popover("hide");
}; };
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
$scope.startDate = new Date(vatSessionService.project.year, 0, 1); $scope.startDate = new Date(vatSessionService.project.year, 0, 1);
$scope.endDate = new Date(vatSessionService.project.year, 11, 31); $scope.endDate = new Date(vatSessionService.project.year, 11, 31);
$scope.dateFormat = $translate.instant('dateFormat4YearMonthDay'); $scope.dateFormat = $translate.instant('dateFormat4YearMonthDay');
$scope.startMonth =vatExportService.year+vatSessionService.month; $scope.startMonth =vatSessionService.year+''+vatSessionService.month;
$scope.endMonth = vatExportService.year+vatSessionService.month; $scope.endMonth = vatSessionService.year+''+vatSessionService.month;
$scope.totalMoneyAmount = 0; $scope.totalMoneyAmount = 0;
$scope.totalTaxAmount = 0; $scope.totalTaxAmount = 0;
$scope.pageSize = constant.vatPagesize; $scope.pageSize = constant.vatPagesize;
...@@ -202,6 +202,7 @@ ...@@ -202,6 +202,7 @@
pageInfo: {}, pageInfo: {},
periodStart: '', periodStart: '',
periodEnd: '', periodEnd: '',
orgId:'',
segment3 : null, segment3 : null,
segment3Name : null, segment3Name : null,
segment2 : null, segment2 : null,
...@@ -212,6 +213,7 @@ ...@@ -212,6 +213,7 @@
}; };
$scope.queryParams.periodStart = $scope.startMonth; $scope.queryParams.periodStart = $scope.startMonth;
$scope.queryParams.periodEnd = $scope.endMonth; $scope.queryParams.periodEnd = $scope.endMonth;
$scope.queryParams.orgId = vatSessionService.project.organizationID;
loadTrialBalanceDataFromDB(1); loadTrialBalanceDataFromDB(1);
$('.filter-button').popover("hide"); $('.filter-button').popover("hide");
}; };
......
...@@ -381,7 +381,9 @@ ...@@ -381,7 +381,9 @@
var year=now.getFullYear(); var year=now.getFullYear();
var vatMonth=vatSessionService.month; var vatMonth=vatSessionService.month;
if(vatSessionService.year==year){ if(vatSessionService.year==year){
if(vatMonth<month-1){ if(vatMonth===month-1){
return false;
}else{
return true; return true;
} }
} }
...@@ -390,35 +392,44 @@ ...@@ -390,35 +392,44 @@
} }
return true; return true;
} }
var startCaculate3 = function () {
var bool=checkYearMonthCaculate2(); var confirmWithContinue=function (title, text, customClass) {
if(bool){ var deferred = $q.defer();
swal({ SweetAlert.swal({
title: "warning!", title: title,
text: $translate.instant('IsConfirmTimeNotSame'), text: text,
type: "warning", html: true,
showCancelButton: true, type: "warning",
confirmButtonColor: "#dd6b55", customClass: customClass || '',
confirmButtonText: $translate.instant('Yes'), showCancelButton: true,
cancelButtonText: $translate.instant('No'), confirmButtonColor: "#dd6b55",
closeOnConfirm: true, allowOutsideClick: false,
closeOnCancel: true confirmButtonText: $translate.instant('Yes'),
}, cancelButtonText: $translate.instant('No'),
function (isConfirm) { closeOnConfirm: true,
if(isConfirm){ closeOnCancel: true
startCaculate2(); },
}else{ function (isConfirm) {
return ; deferred.resolve(isConfirm);
} });
})
return deferred.promise;
}
var startCaculate4=function(){
if(checkYearMonthCaculate2()){
confirmWithContinue($translate.instant('IsConfirmTimeNotSame')).then(function (isConfirm) {
if(isConfirm){
startCaculate2();
}
})
}else{ }else{
startCaculate2(); startCaculate2();
} }
} }
var startCaculate2 = function () { var startCaculate2 = function () {
if (vatSessionService.project.projectStatusList[vatSessionService.month] >= constant.ProjectStatusEnum.Generated) { if (vatSessionService.project.projectStatusList[vatSessionService.month] >= constant.ProjectStatusEnum.Generated) {
swal({ swal({
title: "warning!", title: "warning!",
...@@ -727,7 +738,7 @@ ...@@ -727,7 +738,7 @@
$scope.resolveRef = []; $scope.resolveRef = [];
initTasks(); initTasks();
$scope.startCaculate = startCaculate; $scope.startCaculate = startCaculate;
$scope.startCaculate3 = startCaculate3; $scope.startCaculate4 = startCaculate4;
$scope.$on('$destroy',function(){ $scope.$on('$destroy',function(){
if($scope.timer)$interval.cancel($scope.timer); if($scope.timer)$interval.cancel($scope.timer);
}); });
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="vat-caculate-data-title" ng-if="tasks.length > 0"> <div class="vat-caculate-data-title" ng-if="tasks.length > 0">
<!--<span translate="vatCaculateDataDesc"></span>--> <!--<span translate="vatCaculateDataDesc"></span>-->
<!--<button class="btn btn-vat-primary" translate="startCaculateData" ng-disabled="readonly" ng-click="startCaculate()"></button>--> <!--<button class="btn btn-vat-primary" translate="startCaculateData" ng-disabled="readonly" ng-click="startCaculate()"></button>-->
<button class="btn btn-vat-primary" translate="startCaculateData" ng-disabled="readonly" ng-click="startCaculate3()"></button> <button class="btn btn-vat-primary" translate="startCaculateData" ng-disabled="readonly" ng-click="startCaculate4()"></button>
<span ng-click="showOperateLogPop()"><i class="fa fa-file-excel-o" aria-hidden="true"></i>{{'Remarks' | translate}}</span> <span ng-click="showOperateLogPop()"><i class="fa fa-file-excel-o" aria-hidden="true"></i>{{'Remarks' | translate}}</span>
</div> </div>
......
.color_active[data-v-60ac6546]{color:red!important}.head[data-v-18a52f4a]{height:90px;background-color:red}.icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}
\ No newline at end of file
.icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}
\ No newline at end of file
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="&#x56FE;&#x5C42;_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 28 28" style="enable-background:new 0 0 28 28;" xml:space="preserve">
<path d="M27,4H1C0.448,4,0,3.552,0,3v0c0-0.552,0.448-1,1-1h26c0.552,0,1,0.448,1,1v0C28,3.552,27.552,4,27,4z"/>
<path d="M27,15H1c-0.552,0-1-0.448-1-1v0c0-0.552,0.448-1,1-1h26c0.552,0,1,0.448,1,1v0C28,14.552,27.552,15,27,15z"/>
<path d="M27,26H1c-0.552,0-1-0.448-1-1v0c0-0.552,0.448-1,1-1h26c0.552,0,1,0.448,1,1v0C28,25.552,27.552,26,27,26z"/>
</svg>
...@@ -49,4 +49,4 @@ ...@@ -49,4 +49,4 @@
//send 发送 //send 发送
xmlhttp.send(); xmlhttp.send();
}*/</script><link rel=icon href=favicon.ico><title>didi2</title><link rel=stylesheet href=font_roboto.css><link rel=stylesheet href=font_material.css><link href=js/about.17654e8a.js rel=prefetch><link href=css/app.73dfc5ab.css rel=preload as=style><link href=css/chunk-vendors.ce5e3dd4.css rel=preload as=style><link href=js/app.07374ae8.js rel=preload as=script><link href=js/chunk-vendors.670ff040.js rel=preload as=script><link href=css/chunk-vendors.ce5e3dd4.css rel=stylesheet><link href=css/app.73dfc5ab.css rel=stylesheet></head><body><noscript><strong>We're sorry but didi2 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.670ff040.js></script><script src=js/app.07374ae8.js></script></body></html> }*/</script><link rel=icon href=favicon.ico><title>didi2</title><link rel=stylesheet href=font_roboto.css><link rel=stylesheet href=font_material.css><link href=js/about.17654e8a.js rel=prefetch><link href=css/app.cf16809e.css rel=preload as=style><link href=css/chunk-vendors.ce5e3dd4.css rel=preload as=style><link href=js/app.49c9c2b6.js rel=preload as=script><link href=js/chunk-vendors.670ff040.js rel=preload as=script><link href=css/chunk-vendors.ce5e3dd4.css rel=stylesheet><link href=css/app.cf16809e.css rel=stylesheet></head><body><noscript><strong>We're sorry but didi2 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.670ff040.js></script><script src=js/app.49c9c2b6.js></script></body></html>
\ No newline at end of file \ No newline at end of file
This diff is collapsed.
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