Commit 77ad3248 authored by kevin's avatar kevin

Merge branch 'dev_mysql' of https://gitee.com/Memorydoc/atms into dev_mysql

parents ef170d92 ad1615a4
package pwc.taxtech.atms.common;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
* author kevin
* target : Solve ThousandConvert
* version 1.0
*/
public class ThousandConvert extends JsonSerializer<BigDecimal> {
@Override
public void serialize(BigDecimal value, JsonGenerator jgen, SerializerProvider arg2)
throws IOException {
jgen.writeString(NumberFormat.getIntegerInstance(Locale.getDefault()).format(value));
}
}
package pwc.taxtech.atms.dto.analysis;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import pwc.taxtech.atms.common.ThousandConvert;
import java.math.BigDecimal;
/**
......@@ -11,16 +14,17 @@ public class AnalysisTaxDto {
private String companyName;
@JsonSerialize(using = ThousandConvert.class)
private BigDecimal segment1;
@JsonSerialize(using = ThousandConvert.class)
private BigDecimal segment2;
@JsonSerialize(using = ThousandConvert.class)
private BigDecimal segment3;
@JsonSerialize(using = ThousandConvert.class)
private BigDecimal segment4;
@JsonSerialize(using = ThousandConvert.class)
private BigDecimal segment5;
@JsonSerialize(using = ThousandConvert.class)
private BigDecimal segment6;
public String getCompanyName() {
......
......@@ -32,6 +32,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Date;
......@@ -197,18 +198,19 @@ public class AnalysisServiceImpl extends BaseService {
}
public OperationResultDto importDomesitcExcelFile(MultipartFile file, String periodDate, Integer type) {
StringBuilder notOrgMatch = new StringBuilder();
switch (type) {
case 0:
importAnalysisTaxExcelFile(file, periodDate);
notOrgMatch = importAnalysisTaxExcelFile(file, periodDate);
break;
case 1:
importAnalysisReturnTaxExcelFile(file, periodDate);
notOrgMatch = importAnalysisReturnTaxExcelFile(file, periodDate);
break;
case 2:
importAnalysisGMVSubsidyExcelFile(file, periodDate);
break;
case 3:
importAnalysisEmployeeNumExcelFile(file, periodDate);
notOrgMatch = importAnalysisEmployeeNumExcelFile(file, periodDate);
break;
case 4:
importAnalysisDriverNumExcelFile(file, periodDate);
......@@ -216,7 +218,7 @@ public class AnalysisServiceImpl extends BaseService {
default:
break;
}
return OperationResultDto.success();
return OperationResultDto.success(notOrgMatch);
}
public OperationResultDto importInterNationalExcelFile(MultipartFile file, String periodDate, Integer type,
......@@ -237,7 +239,9 @@ public class AnalysisServiceImpl extends BaseService {
private String[] headerArr = null;
private void importAnalysisTaxExcelFile(MultipartFile file, String periodDate) {
private StringBuilder importAnalysisTaxExcelFile(MultipartFile file, String periodDate) {
StringBuilder notMatchOrg = new StringBuilder();
List orgNotList = Lists.newArrayList();
try {
InputStream inputStream = file.getInputStream();
Workbook workbook = WorkbookFactory.create(inputStream);
......@@ -263,7 +267,8 @@ public class AnalysisServiceImpl extends BaseService {
example.createCriteria().andNameEqualTo(companyName);
List<Organization> orgs = organizationMapper.selectByExample(example);
if (orgs.isEmpty()) {
break;
orgNotList.add(j + 1);
continue;
}
for (int k = 1; k < sheet.getRow(0).getLastCellNum(); k++) {
AnalysisTax model = getAnalysisTax(selectedPer, sheet, k, j, orgs.get(0));
......@@ -284,6 +289,7 @@ public class AnalysisServiceImpl extends BaseService {
} catch (Exception e) {
throw new ServiceException(e);
}
return notMatchOrg.append(orgNotList + "机构匹配失败");
}
private AnalysisTax getAnalysisTax(Integer period, Sheet sheet, int k, int j, Organization org) {
......@@ -326,7 +332,9 @@ public class AnalysisServiceImpl extends BaseService {
}
private void importAnalysisReturnTaxExcelFile(MultipartFile file, String periodDate) {
private StringBuilder importAnalysisReturnTaxExcelFile(MultipartFile file, String periodDate) {
StringBuilder notMatchOrg = new StringBuilder();
List orgNotList = Lists.newArrayList();
try {
InputStream inputStream = file.getInputStream();
Workbook workbook = WorkbookFactory.create(inputStream);
......@@ -351,7 +359,8 @@ public class AnalysisServiceImpl extends BaseService {
example.createCriteria().andNameEqualTo(companyName);
List<Organization> orgs = organizationMapper.selectByExample(example);
if (orgs.isEmpty()) {
break;
orgNotList.add(j + 1);
continue;
}
for (int k = 1; k < sheet.getRow(0).getLastCellNum(); k++) {
AnalysisActualTaxReturn model = getAnalysisActualTaxReturn(selectedPer, sheet, k, j, orgs.get(0));
......@@ -373,6 +382,7 @@ public class AnalysisServiceImpl extends BaseService {
} catch (Exception e) {
throw new ServiceException(e);
}
return notMatchOrg.append(orgNotList + "行匹配失败");
}
private AnalysisActualTaxReturn getAnalysisActualTaxReturn(Integer period, Sheet sheet, int k, int j, Organization org) {
......@@ -387,7 +397,9 @@ public class AnalysisServiceImpl extends BaseService {
return model;
}
private void importAnalysisEmployeeNumExcelFile(MultipartFile file, String periodDate) {
private StringBuilder importAnalysisEmployeeNumExcelFile(MultipartFile file, String periodDate) {
StringBuilder notMatchOrg = new StringBuilder();
List orgNotList = Lists.newArrayList();
try {
InputStream inputStream = file.getInputStream();
Workbook workbook = WorkbookFactory.create(inputStream);
......@@ -409,7 +421,17 @@ public class AnalysisServiceImpl extends BaseService {
if (null == cell1 || StringUtils.isEmpty(getCellStringValue(cell1))) {
continue;
}
model.setCompanyName(getCellStringValue(sheet.getRow(j).getCell(0)));
//进行机构验证
String companyName = getCellStringValue(sheet.getRow(j).getCell(0));
OrganizationExample example1 = new OrganizationExample();
example1.createCriteria().andNameEqualTo(companyName);
List<Organization> orgs = organizationMapper.selectByExample(example1);
if (orgs.isEmpty()) {
orgNotList.add(j + 1);
continue;
}
model.setCompanyName(companyName);
try {
model.setSeqNo(getSeqNoByPeriod(getOrgByCompanyName(getCellStringValue(sheet.getRow(j).getCell(0))).getId(), selectedPer));
} catch (Exception e) {
......@@ -447,9 +469,11 @@ public class AnalysisServiceImpl extends BaseService {
e.printStackTrace();
throw new ServiceException(e);
}
return notMatchOrg.append(orgNotList + "行匹配失败");
}
private void importAnalysisGMVSubsidyExcelFile(MultipartFile file, String periodDate) {
try {
InputStream inputStream = file.getInputStream();
Workbook workbook = WorkbookFactory.create(inputStream);
......@@ -719,7 +743,6 @@ public class AnalysisServiceImpl extends BaseService {
public HttpServletResponse downloadDomesticFile(HttpServletResponse response, AnalysisDomesticlParam param, String fileName) {
String excelTemplatePathInClassPath = EnumAnalysisExpTempPath.getPath(param.getType());
List<Object> datas = displayAnalysisImportData(param);
try {
if (datas.size() < 1) {
throw new Exception("无可导出的数据");
......
......@@ -780,6 +780,7 @@
"ImportShipmentList": "导入发车清单",
"ImportShipmentListGd": "导入发车清单-GD",
"ImportSuccess": "导入成功",
"ImportSuccessCount": "导入成功,验证失败:",
"ImportTrialBalance": "导入试算平衡表",
"ImportTypeTip": "需要清除本月导入的财务数据,是否确认?",
"Import_AccountMapping": "科目对应",
......
analysisModule.controller('domesticDataImportController', ['$scope','$filter', '$log', '$translate', '$timeout', '$q', '$interval'
analysisModule.controller('domesticDataImportController', ['$scope', '$filter', '$log', '$translate', '$timeout', '$q', '$interval'
, 'apiInterceptor', 'Upload', 'vatImportService', 'SweetAlert', 'uiGridConstants', '$uibModal'
, 'vatSessionService', 'enums', 'vatOperationLogService'
, 'projectService', 'vatCommonService','templateService','orgService',
function ($scope,$filter, $log, $translate, $timeout, $q, $interval
, 'projectService', 'vatCommonService', 'templateService', 'orgService',
function ($scope, $filter, $log, $translate, $timeout, $q, $interval
, apiInterceptor, Upload, vatImportService, SweetAlert, uiGridConstants, $uibModal
, vatSessionService, enums, vatOperationLogService
, projectService, vatCommonService,templateService,orgService) {
, projectService, vatCommonService, templateService, orgService) {
'use strict';
var comment = vatSessionService.project.name + " " + vatSessionService.project.year + "年" + vatSessionService.month + "月";
......@@ -21,20 +21,20 @@
$scope.projectID = vatSessionService.project.id;
$scope.startRowNum = 2;
$scope.validationType = 0;
$scope.sheetData = { sheetNameList: [], dataList: [], selectedSheetIndex: 0 };
$scope.sheetInfo = { selectedSheetName: '', selectedSheetIndex: 0 };
$scope.sheetData = {sheetNameList: [], dataList: [], selectedSheetIndex: 0};
$scope.sheetInfo = {selectedSheetName: '', selectedSheetIndex: 0};
$scope.balanceInputList = [];
$scope.toInputList = [];
$scope.importEnum = { Import: 0, CoverImport: 1, AddImport: 2 }; //导入方式
$scope.importEnum = {Import: 0, CoverImport: 1, AddImport: 2}; //导入方式
$scope.selectedPeriod = null;
$scope.showTotalSecondRow = false;
$scope.importExcelFileUrlList = {
taxData : apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile',
returnTax : apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile',
gmvSubsidy : apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile',
employeeNum : apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile',
driverNum : apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile'
taxData: apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile',
returnTax: apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile',
gmvSubsidy: apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile',
employeeNum: apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile',
driverNum: apiInterceptor.webApiHostUrl + '/Analysis/DomesitcExcelFile'
};
$scope.maxTitleLength = constant.maxButtonTitleLength;
......@@ -57,18 +57,18 @@
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth()+1;
$scope.selectedDate = new Date(year,date.getMonth(),1);
var month = date.getMonth() + 1;
$scope.selectedDate = new Date(year, date.getMonth(), 1);
$scope.startDate = new Date(year - 20, 1, 1);
$scope.endDate = new Date(year + 20, 1, 1);
$scope.viewMode = 1;
$scope.dateFormat = $translate.instant('dateFormat4YearMonth');
$scope.importExcelFile = null;
if(month.length<2){
$scope.UploadPeriodTime = year+" - 0"+month;
}else{
$scope.UploadPeriodTime = year+" - "+month;
if (month.length < 2) {
$scope.UploadPeriodTime = year + " - 0" + month;
} else {
$scope.UploadPeriodTime = year + " - " + month;
}
//写日志
......@@ -116,7 +116,7 @@
var param = {
companyName : $scope.selectCountry,
companyName: $scope.selectCountry,
type: $scope.importType,
period: $scope.UploadPeriodTime
};
......@@ -153,7 +153,7 @@
var url = urlCreator.createObjectURL(blob);
a.href = url;
a.target = '_blank';
a.download = fileName+".xlsx";
a.download = fileName + ".xlsx";
document.body.appendChild(a);
a.click();
}
......@@ -164,26 +164,54 @@
};
var doExport = function () {
var localDate=$filter('date')(new Date(), 'yyyyMMddHHmmss');
var localDate = $filter('date')(new Date(), 'yyyyMMddHHmmss');
var fileName = '';
constant.anlDownLoadFileNameList.forEach(function (m) {
if (m.code === $scope.importType) {
fileName = m.name + $scope.UploadPeriodTime+"_" +localDate;
fileName = m.name + $scope.UploadPeriodTime + "_" + localDate;
}
});
// param.companyName = $scope.selectCompany;
param.type = $scope.importType;
param.period = $scope.UploadPeriodTime;
vatImportService.downloadDomesticFile(param,fileName).then(function (data) {
vatImportService.downloadDomesticFile(param, fileName).then(function (data) {
if (data) {
ackMessageBox.success(translate('FileExportSuccess'));
}
});
};
var inProgress = false;
$scope.progressBarValue = 0;
$scope.progressBarOptions = {
min: 0,
max: 100,
width: "90%",
bindingOptions: {
value: "progressBarValue"
},
statusFormat: function (value) {
return "进度: " + value * 100 + "%";
},
onComplete: function (e) {
inProgress = true;
e.element.addClass("complete");
}
};
$('#progressBarStatus').hide();
var objPro;
var proBarFun = function () {
objPro = setInterval(function () {
if ($scope.progressBarValue < 95) {
$scope.progressBarValue =$scope.progressBarValue + Math.ceil(Math.random()*10);
}
}, 800)
}
//导入事件
var doUpload = function () {
$('#progressBarStatus').show();
$scope.progressBarValue = 0;
proBarFun();
var impExl = $scope.importExcelFile;
var deferred = $q.defer();
var token = $('input[name="__RequestVerificationToken"]').val();
......@@ -192,11 +220,9 @@
SweetAlert.warning($translate.instant('PleaseSelectFileFirst'));
return;
}
var url = getUploadUrl();
var period = $scope.UploadPeriodTime;
$('#busy-indicator-container').show();
Upload.upload({
url: url,
data: {
......@@ -213,24 +239,30 @@
},
__RequestVerificationToken: token,
withCredentials: true
}).then(function(resp) {
var ret = resp.data;
$('#busy-indicator-container').hide();
}).success(function (resp) {
deferred.resolve();
if (ret.result) {
uploadAfter();
if (resp.data|| resp.result) {
logDto.UpdateState = $translate.instant('ImportSuccess');
vatOperationLogService.addOperationLog(logDto);
if (resp.data) {
SweetAlert.success($translate.instant("ImportSuccessCount") + resp.data);
} else {
SweetAlert.success($translate.instant('ImportSuccess'));
}
} else {
if (resp.resultMsg && resp.resultMsg.length > 0) {
SweetAlert.warning($translate.instant(resp.resultMsg));
} else {
if (ret.resultMsg && ret.resultMsg.length > 0) {
SweetAlert.warning($translate.instant(ret.resultMsg));
}else{
SweetAlert.error($translate.instant('ImportFailed'));
}
}
$('#busy-indicator-container').hide();
$('#progressBarStatus').hide();
refreshGrid();
}, function(resp) {
}).error(function (resp) {
deferred.resolve();
uploadAfter()
if (resp.statusText === 'HttpRequestValidationException') {
SweetAlert.warning($translate.instant('HttpRequestValidationException'));
} else {
......@@ -238,14 +270,19 @@
}
SweetAlert.error($translate.instant('ImportFail'));
console.log('Error status: ' + resp.status);
}, function(evt) {
deferred.resolve();
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
$log.debug('progress: ' + progressPercentage + '% ' + evt.config.data.file.name);
}).progress(function (evt) {
/* console.log(parseInt(100.0 * evt.loaded / evt.total))
$scope.progressBarValue = parseInt(100.0 * evt.loaded / evt.total);*/
});
};
var uploadAfter = function(){
$('#busy-indicator-container').hide();
$('#progressBarStatus').hide();
clearInterval(objPro);
$scope.progressBarValue =100;
}
var getUploadUrl = function(){
var getUploadUrl = function () {
var url = "";
switch ($scope.importType) {
case 0:
......@@ -293,10 +330,10 @@
var getGridHeight = function () {
if ($scope.isLoadComplete) {
return { height: ($('.balance-ouput-grid-wrapper').height()) + "px" };
return {height: ($('.balance-ouput-grid-wrapper').height()) + "px"};
}
else {
return { height: 0 + "px" };
return {height: 0 + "px"};
}
};
......@@ -360,7 +397,7 @@
autoExpandAll: false
},
allowColumnResizing: true,
allowColumnReordering:true,
allowColumnReordering: true,
columnAutoWidth: true,
showRowLines: true,
showColumnLines: true,
......@@ -395,7 +432,7 @@
vatImportService.displayAnalysisImportData(param).success(function (data) {
if (data.data) {
$scope.taxGridSource = data.data;
}else {
} else {
SweetAlert.error($translate.instant('SystemError'));
}
});
......@@ -455,7 +492,7 @@
autoExpandAll: false
},
allowColumnResizing: true,
allowColumnReordering:true,
allowColumnReordering: true,
columnAutoWidth: true,
showRowLines: true,
showColumnLines: true,
......@@ -490,7 +527,7 @@
vatImportService.displayAnalysisImportData(param).success(function (data) {
if (data.data) {
$scope.returnTaxGridSource = data.data;
}else {
} else {
SweetAlert.error($translate.instant('SystemError'));
}
});
......@@ -555,7 +592,7 @@
autoExpandAll: false
},
allowColumnResizing: true,
allowColumnReordering:true,
allowColumnReordering: true,
columnAutoWidth: true,
showRowLines: true,
showColumnLines: true,
......@@ -590,7 +627,7 @@
vatImportService.displayAnalysisImportData(param).success(function (data) {
if (data.data) {
$scope.GMVSubsidyGridSource = data.data;
}else {
} else {
SweetAlert.error($translate.instant('SystemError'));
}
});
......@@ -650,7 +687,7 @@
autoExpandAll: false
},
allowColumnResizing: true,
allowColumnReordering:true,
allowColumnReordering: true,
columnAutoWidth: true,
showRowLines: true,
showColumnLines: true,
......@@ -685,7 +722,7 @@
vatImportService.displayAnalysisImportData(param).success(function (data) {
if (data.data) {
$scope.employeeNumGridSource = data.data;
}else {
} else {
SweetAlert.error($translate.instant('SystemError'));
}
});
......@@ -730,7 +767,7 @@
autoExpandAll: false
},
allowColumnResizing: true,
allowColumnReordering:true,
allowColumnReordering: true,
columnAutoWidth: true,
showRowLines: true,
showColumnLines: true,
......@@ -765,7 +802,7 @@
vatImportService.displayAnalysisImportData(param).success(function (data) {
if (data.data) {
$scope.driverNumGridSource = data.data;
}else {
} else {
SweetAlert.error($translate.instant('SystemError'));
}
});
......@@ -825,16 +862,16 @@
var setButtonWrapStyle = function () {
if ($scope.fileName) {
return { width: "100%" };
return {width: "100%"};
}
};
var setGridStyle = function () {
if ($scope.showTotalSecondRow) {
return { 'margin-top': '60px' }
return {'margin-top': '60px'}
}
else {
return { 'margin-top': '55px' }
return {'margin-top': '55px'}
}
};
......@@ -872,18 +909,18 @@
});
};
$scope.selectCompanyEvent = function(i){
$scope.selectCompany=i.name;
$scope.selectCompanyEvent = function (i) {
$scope.selectCompany = i.name;
refreshGrid();
};
$scope.selectOne = function () {
$scope.checkedCompanyList = [];
angular.forEach($scope.companyList , function (i) {
angular.forEach($scope.companyList, function (i) {
var index = $scope.checkedCompanyList.indexOf(i.id);
if(i.checked && index === -1) {
if (i.checked && index === -1) {
$scope.checkedCompanyList.push(i);
} else if (!i.checked && index !== -1){
} else if (!i.checked && index !== -1) {
$scope.checkedCompanyList.splice(index, 1);
}
});
......@@ -892,22 +929,22 @@
$scope.checkedCompanyTypeList = "";
$scope.checkedCompanyCodeList = [];
angular.forEach($scope.checkedCompanyList,function (i) {
$scope.checkedCompanyTypeList += i.name+";";
angular.forEach($scope.checkedCompanyList, function (i) {
$scope.checkedCompanyTypeList += i.name + ";";
$scope.checkedCompanyCodeList.push(i.id);
});
console.log($scope.checkedCompanyList);
};
$scope.selectAll = function () {
if($scope.selectedAll) {
if ($scope.selectedAll) {
$scope.selectedOne = true;
$scope.checkedCompanyList = [];
angular.forEach($scope.companyList, function (i, index) {
$scope.checkedCompanyList.push(i);
i.checked = true;
})
}else {
} else {
$scope.selectedOne = false;
$scope.checkedCompanyList = [];
angular.forEach($scope.companyList, function (i, index) {
......@@ -916,14 +953,14 @@
}
$scope.checkedCompanyTypeList = "";
$scope.checkedCompanyCodeList = [];
angular.forEach($scope.checkedCompanyList,function (i) {
angular.forEach($scope.checkedCompanyList, function (i) {
$scope.checkedCompanyTypeList += i.name;
$scope.checkedCompanyCodeList.push(i.id);
});
console.log($scope.checkedCompanyList);
};
$scope.changeTab = function(i){
$scope.changeTab = function (i) {
$scope.importType = i.code;
$scope.selectType = i.type;
$scope.showTaxGrid = false;
......
......@@ -71,7 +71,9 @@
</div>
</div>
</form>
<div id="progress">
<div id="progressBarStatus" dx-progress-bar="progressBarOptions"></div>
</div>
<div class="dt-init-wrapper">
<div class="dx-viewport grid-container">
<div id="taxGridContainer" dx-data-grid="taxGridOptions"
......
......@@ -210,7 +210,6 @@
vatOperationLogService.addOperationLog(logDto);
}
getImportRLITStatus();
}, function(resp) {
deferred.resolve();
if (resp.statusText === 'HttpRequestValidationException') {
......
......@@ -133,7 +133,6 @@
//todo:注册之后这里去掉注释
//var sheet = spread.getActiveSheet();
var sheet;
if (constant.regesterInformation.active) {
sheet = spread.getActiveSheet();
......
......@@ -1234,6 +1234,5 @@
_.extend(scope.selectOrgOptions, exp);
};
/*-----------------------------------------------------------------------------------------*/
})(window)
\ No newline at end of file
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