Commit 7ab29d95 authored by gary's avatar gary

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

parents d077b460 3a96d22f
......@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.dto.ApiResultDto;
import pwc.taxtech.atms.dto.CitAssetsListDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.entity.CitAssetGroupResult;
import pwc.taxtech.atms.entity.CitAssetsList;
......@@ -71,6 +72,27 @@ public class AssetListController {
return apiResultDto;
}
}
/**
* 根据资产类别(固定资产、长期待摊、无形资产)查询出结果
* @param citAssetsListDto
* @return
*/
@RequestMapping(value = "/getAssetResultListPage", method = RequestMethod.POST)
public @ResponseBody ApiResultDto getAssetResultListPage(@RequestBody CitAssetsListDto citAssetsListDto){
logger.info("根据资产类别获取资产清单");
ApiResultDto apiResultDto = new ApiResultDto();
try{
apiResultDto.setCode(1);
apiResultDto.setMessage("获取成功");
apiResultDto.setData(assetListService.getAssetResultListPage(citAssetsListDto));
return apiResultDto;
}catch(Exception e){
e.printStackTrace();
apiResultDto.setCode(0);
apiResultDto.setMessage("获取失败");
return apiResultDto;
}
}
/**
*
......
......@@ -7,7 +7,9 @@ import org.springframework.web.bind.annotation.*;
import pwc.taxtech.atms.constant.enums.EnumServiceType;
import pwc.taxtech.atms.dpo.ReportDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.vatdto.PeriodJobDto;
import pwc.taxtech.atms.service.impl.CitReportServiceImpl;
import pwc.taxtech.atms.vat.entity.PeriodJob;
import pwc.taxtech.atms.vat.service.impl.ReportServiceImpl;
import java.util.List;
......@@ -57,4 +59,15 @@ public class CitReportController {
return citReportService.getFilterReportTemplate(projectId, EnumServiceType.getEnumByCode(serviceType), period);
}
@RequestMapping(value = "getPeriodJob/{projectId}/{period}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public PeriodJobDto getPeriodJob(@PathVariable String projectId, @PathVariable Integer period) {
PeriodJob job = citReportService.getPeriodJob(projectId, period);
if (job != null) {
return new PeriodJobDto().copyFromPeriodJob(job);
} else {
return null;
}
}
}
\ No newline at end of file
......@@ -54,9 +54,11 @@ public class ReportController {
@ResponseBody
public PeriodJobDto getRunningJob(@PathVariable String projectId, @PathVariable Integer period) {
PeriodJob job = reportService.getRunningJob(projectId, period);
if (job != null)
if (job != null) {
return new PeriodJobDto().copyFromPeriodJob(job);
else return null;
} else {
return null;
}
}
@RequestMapping(value = "getJobStatus/{projectId}//{period}/{jobId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
......
......@@ -2,6 +2,7 @@ package pwc.taxtech.atms.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import pwc.taxtech.atms.common.util.PwCIdSerialize;
import pwc.taxtech.atms.dpo.PagingDto;
import pwc.taxtech.atms.entity.BaseEntity;
import java.io.Serializable;
......@@ -423,6 +424,8 @@ public class CitAssetsListDto implements Serializable {
*/
private String taxGroupName;
private PagingDto pageInfo;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table assets_list
......@@ -1307,6 +1310,18 @@ public class CitAssetsListDto implements Serializable {
this.taxGroupName = taxGroupName == null ? null : taxGroupName.trim();
}
public Integer getTaxAccountCompare() {
return taxAccountCompare;
}
public PagingDto getPageInfo() {
return pageInfo;
}
public void setPageInfo(PagingDto pageInfo) {
this.pageInfo = pageInfo;
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table assets_list
......
......@@ -36,15 +36,21 @@ public class PeriodJobDto {
this.errorMsg = job.getErrorMsg();
MyAsserts.assertNotEmpty(stepsCode, Exceptions.SERVER_ERROR_EXCEPTION);
if (StringUtils.isBlank(status)) this.jobStatus = STATUS_BEGIN;
else {
if (StringUtils.isBlank(status)) {
this.jobStatus = STATUS_BEGIN;
} else {
List<WrapPeriodJobDto.Task> tasks = WrapPeriodJobDto.fromJson(status);
if (Collections.isEmpty(tasks)) this.jobStatus = STATUS_BEGIN;
else {
if (Collections.isEmpty(tasks)) {
this.jobStatus = STATUS_BEGIN;
} else {
String[] codes = stepsCode.split(",");
if (tasks.stream().anyMatch(m -> m.status.equals(STATUS_ERROR))) this.jobStatus = STATUS_ERROR;
else if (tasks.size() < codes.length) this.jobStatus = STATUS_RUNNING;
else this.jobStatus = STATUS_END;
if (tasks.stream().anyMatch(m -> m.status.equals(STATUS_ERROR))) {
this.jobStatus = STATUS_ERROR;
} else if (tasks.size() < codes.length) {
this.jobStatus = STATUS_RUNNING;
} else {
this.jobStatus = STATUS_END;
}
}
}
......
package pwc.taxtech.atms.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.io.FileUtils;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
......@@ -83,6 +86,34 @@ public class AssetListServiceImpl extends BaseService {
return citAssetsListDtos;
}
/**
* 根据资产类别(固定资产、长期待摊、无形资产)查询出结果
*/
public PageInfo<CitAssetsListDto> getAssetResultListPage(CitAssetsListDto citAssetsListDto) throws Exception {
logger.debug("根据资产类别(固定资产、长期待摊、无形资产)查询出结果");
CitAssetsListExample assetListExample = new CitAssetsListExample();
CitAssetsListExample.Criteria criteria = assetListExample.createCriteria();
criteria.andProjectIdEqualTo(citAssetsListDto.getProjectId());
criteria.andAssetTypeEqualTo(citAssetsListDto.getAssetType());
criteria.andStatusEqualTo(1);
if(citAssetsListDto.getTaxAccountCompare() != 2){
criteria.andTaxAccountCompareEqualTo(citAssetsListDto.getTaxAccountCompare());
}
Page page = PageHelper.startPage(citAssetsListDto.getPageInfo().getPageIndex(),citAssetsListDto.getPageInfo().getPageSize());
List<CitAssetsList> citAssetsLists = assetListMapper.selectByExample(assetListExample);
List<CitAssetsListDto> citAssetsListDtos = new ArrayList<>();
for (CitAssetsList citAssetsList:citAssetsLists){
CitAssetsListDto temp = new CitAssetsListDto();
BeanUtils.copyProperties(citAssetsList,temp);
citAssetsListDtos.add(temp);
}
PageInfo<CitAssetsListDto> pageInfo =new PageInfo<>(citAssetsListDtos);
pageInfo.setTotal(page.getTotal());
pageInfo.setPageNum(citAssetsListDto.getPageInfo().getPageIndex());
return pageInfo;
}
public List<CitAssetGroupResultDto> getAssetGroupResultData(String projectId) throws Exception {
logger.debug("根据projectId获取该资产类别相关数据");
CitAssetGroupResultExample assetGroupResultExample = new CitAssetGroupResultExample();
......
......@@ -655,6 +655,17 @@ public class CitReportServiceImpl extends BaseService {
}
}
/**
* 查询最新的任务
* @param projectId
* @param period
* @return
*/
public PeriodJob getPeriodJob(String projectId, Integer period) {
return periodJobMapper.getPeriodJob(projectId, period);
}
/**
* 获取符合条件的PeriodJob以供前台判断job执行的阶段
*
......
......@@ -125,6 +125,25 @@ public interface PeriodJobMapper extends MyVatMapper {
" AND period =#{period}")
PeriodJob getRunningJob(@Param("projectId") String projectId, @Param("period") Integer period);
@Select("SELECT " +
" id AS id, " +
" name AS name, " +
" current_step AS currentStep, " +
" project_id AS projectId, " +
" period AS period, " +
" steps_code AS stepsCode, " +
" create_time AS createTime, " +
" status AS status, " +
" error_msg AS errorMsg " +
"FROM " +
" period_job " +
"WHERE " +
" project_id = #{projectId} " +
" AND period =#{period}" +
" order by create_time desc LIMIT 1 "
)
PeriodJob getPeriodJob(@Param("projectId") String projectId, @Param("period") Integer period);
@Select("SELECT " +
" id AS id, " +
" name AS name, " +
......
......@@ -1038,7 +1038,7 @@
"chartType": "Chart Type",
"completed": "Completed",
"customInvoice": "Customs List",
"dateFormat4Year": " year",
"dateFormat4Year": " yyyy",
"dateFormat4YearMonth": " yyyy-mm",
"dateFormat4YearMonthDay": "yyyy-mm-dd",
"dateFormat4YearMonthDayCh": "yyyy-mm-dd",
......
......@@ -7,7 +7,7 @@
<td>
<!--税会差异的选择-->
<div class="input-group">
<div class="option" style="display: inline-block">
<div class="option">
<div id="taxAccountDifferenceButton" dx-select-box="taxAccountDifferenceOptions"></div>
</div>
</div>
......
......@@ -22,36 +22,6 @@
<button class="btn btn-vat-primary" translate="AssetClassification" ng-click="setAssetsGroup()"></button>
</div>
<form class="form-inline">
<!--<div class="form-group" ng-style="setButtonWrapStyle()">-->
<!--<div class="import-wrapper">-->
<!--<button type="button" ng-show="hasEditPermission" -->
<!--ngf-select="" ng-model="fileNameWrapper" ngf-drag-over-class="'dragover'" accept=".xls,.xlsx,.xlsm"-->
<!--ngf-multiple="false" ngf-allow-dir="false" class="btn btn-vat-third" style="margin-right:10px">-->
<!--{{'SelectFile' | translate}}-->
<!--</button>-->
<!--<div class="import-info-wrapper" ng-show="fileName">-->
<!--<span title="{{fileName}}">{{'FileName' | translate}}{{fileName | limitString:10}}</span>&nbsp;&nbsp;&nbsp;&nbsp;|-->
<!--<span translate="WorkSheet"></span>-->
<!--<div class="ui-select-no-border">-->
<!--<ui-select ng-model="sheetInfo.selectedSheetName" on-select="changeSheet($item)" search-enabled="false" style="width:120px;">-->
<!--<ui-select-match placeholder="{{'SelectASheet' | translate}}">{{$select.selected.name}}</ui-select-match>-->
<!--<ui-select-choices repeat="sheetName in sheetData.sheetNameList | propsFilter: {name: $select.search}">-->
<!--<div title="{{sheetName.name}}" ng-bind-html="sheetName.name | limitString:9"></div>-->
<!--</ui-select-choices>-->
<!--</ui-select>-->
<!--</div>-->
<!--&nbsp;&nbsp;&nbsp;&nbsp;|-->
<!--<span translate="StartRowNum"></span>-->
<!--<input id="StartRowNum" ng-model="StartRowNum" type="text"-->
<!--onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"-->
<!--onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" />-->
<!--</div>-->
<!--<button class="btn btn-vat-primary" style="float:right; margin-right: 10px;" ng-if="isShowImportTotalBtn && hasEditPermission" translate="ImportBtn" ng-click="importData(importEnum.Import)"></button>-->
<!--<div class="btn-wrapper" ng-if="!isShowImportTotalBtn && hasEditPermission">-->
<!--<button class="btn btn-vat-primary" translate="ConverImportBtn" ng-click="importData(importEnum.CoverImport)"></button>|<button class="btn btn-vat-primary" translate="AddImportBtn" ng-click="importData(importEnum.AddImport)"></button>-->
<!--</div>-->
<!--</div>-->
<!--</div>-->
<div class="form-group">
<div class="col-sm-5">
......@@ -69,13 +39,6 @@
</div>
</div>
<!--分页栏-->
<!--<div class="form-group page-form-group" ng-show="!showImportTable">-->
<!--<div class="page-footer">-->
<!--<ack-pagination page-options="pagingOptions" refresh-table="pagingService.refreshInvoiceDataGrid()" hide-page-size-selector="true"></ack-pagination>-->
<!--</div>-->
<!--</div>-->
</form>
<!--导入数据界面-->
......@@ -181,7 +144,10 @@
</button>
</div>
</div>
<div class="page-footer">
<ack-pagination page-options="pagingOptions2"
refresh-table="refreshAssetResultListGrid()"></ack-pagination>
</div>
</div>
</div>
......@@ -205,49 +171,6 @@
</div>
</script>
<!--前台错误信息界面-->
<div class="error-list-modal">
<div class="modal fade" id="errorListModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
data-backdrop="static" data-keyboard="false">
<div class="modal-dialog" style="width: 720px; height: 200px;" role="document">
<div class="modal-content">
<div class="modal-header">
<div class="modal-title">
{{'ImportErrorPopUpTitle' | translate}}
</div>
</div>
<div class="modal-body">
{{'ImportErrorPopUpErrorDetail' | translate}}:
<br/>
<table>
<thead>
<tr>
<th width="10%" style="text-align:center;">{{'ImportErrorPopUpNoCol' | translate}}</th>
<th width="20%">{{'ImportErrorPopUpErrorTypeCol' | translate}}</th>
<th width="10%" style="text-align:center;">{{'ImportErrorPopUpErrorCountCol' |
translate}}
</th>
<th width="60%">{{'ImportErrorPopUpErrorDescCol' | translate}}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="error in errorMsgMap track by $index">
<td width="10%" style="text-align:center;">{{$index + 1}}</td>
<td width="20%">{{error.errorType}}</td>
<td width="10%" style="text-align:center;">{{error.errorCount}}</td>
<td width="60%" ng-bind-html="error.errorContent"></td>
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" translate="Confirm" data-dismiss="modal"></button>
</div>
</div>
</div>
</div>
</div>
<!--资产分类设置界面-->
<script type="text/ng-template" id="set-asset-group-modal.html">
<div class="modal-content">
......
......@@ -204,17 +204,13 @@ debugger;
// result.push({ name: $translate.instant('ProcessData'), items: [new task('GenerateStdTb', 'unstarted')] });
// result.push({ name: $translate.instant('ProcessData'), items: [new task('CompareUnbilled', 'unstarted')] });
// result.push({ name: $translate.instant('ProcessData'), items: [new task('CaculateUnbilled', 'unstarted'), new task('UpdateReportConfig', 'unstarted'), new task('GenerateFinanceReport', 'unstarted')] });
/* var dataValidateItems = [/!*"本期余额表累计数+导入调整表是否等于本期利润表累计数", "本期余额表本期数+导入调整表是否等于本期利润表本期数", "上期利润表本年累进+本期利润表本期数是否等于本期利润表本年累计",*!/ ""];
var dataValidateCode = [/!*'DA001', 'DA002', 'DA003',*!/ ''];*/
//数据配置
result.push({ name: $translate.instant('ProcessData'), items: [new task('UpdateReportConfig', 'unstarted')] });
result[result.length - 1].items.forEach(function (t) { t.seqNo = result.length - 1 });
//数据校验
var reItem = [];
reItem.push( new task(Math.ceil(Math.random()*1000000).toString(), "unstarted","上期导入调整表是否等于本期调整日记账发生额(摘要中包含“调表不调账”关键字)", "DA004"));
......@@ -252,6 +248,7 @@ debugger;
i++;
taskList = taskList.concat(item.items);
});
debugger;
$scope.tasks = result;
getInitTaskStatus();
});
......@@ -295,13 +292,14 @@ debugger;
debugger;
$scope.readonly = true;
if(data && data.result)
updateTasksStatus(data.data);
updateTasksStatus(data.data);
if(data.data.jobStatus=='Begin'||data.data.jobStatus=='Running'){
if(!$scope.timer)
$scope.timer= $interval(function(){
debugger;
citReportService.getJobStatus(vatSessionService.project.id,0,data.data.id).then(function(result){
if(result.data && result.status == 200){
debugger;
if(result.data && result.status == 200){
updateTasksStatus(result.data);
}else{
if($scope.timer)
......@@ -576,25 +574,26 @@ debugger;
};
var updateTasksStatus = function(job){
debugger;
var items = $scope.tasks;
var tasks = JSON.parse(job.status)
var tasks = JSON.parse(job.status);
debugger;
if(job.jobStatus == 'End'){
items.forEach(function(item,index){
debugger;
item.status = 'completed';
item.text = $translate.instant('completed');
});
$scope.tasks[0].items[0].status = 'completed';
$scope.tasks[0].items[0].text= $translate.instant('completed');
$scope.tasks[tasks.length-1].items[items.length-1].status = 'completed';
$scope.tasks[tasks.length-1].items[items.length-1].status.text = $translate.instant(_task.status);
if($scope.timer){
$interval.cancel($scope.timer);
vatCommonService.setProjectStatus(vatSessionService.project.id, vatSessionService.month, constant.ProjectStatusEnum.Generated
, constant.DictionaryDictKey.WFDataProcess, enums.FinishStatusEnum.Finished);
}
}else if(job.jobStatus=='Running'|| job.jobStatus=='Error'){
var updateConfig = tasks[0];
if(updateConfig.status == 'Error'){
$scope.tasks[0].items[0].status = 'error';
......@@ -622,10 +621,13 @@ debugger;
if($scope.timer)$interval.cancel($scope.timer);
}
}
debugger;
items.forEach(function(item,index){
debugger;
item.items.forEach(function (_task, index) {
debugger;
tasks.forEach(function(task){
debugger;
if(task.code==_task.code){
if(task.status == 'Error'){
_task.status = 'error';
......@@ -654,6 +656,7 @@ debugger;
debugger;
citReportService.getJobStatus(vatSessionService.project.id,0,result.data.id)
.then(function(result){
debugger;
if(result.data && result.status == 200){
updateTasksStatus(result.data);
}else{
......
......@@ -8,6 +8,10 @@ webservices.factory('assetListService', ['$http', 'apiConfig', function ($http,
getAssetResultList: function (assetType,projectId, taxAccountCompare) {
return $http.get('/asset/getAssetResultList?assetType=' + assetType + '&projectId=' + projectId + '&taxAccountCompare=' + taxAccountCompare, apiConfig.create());
},
getAssetResultListPage: function (citAssetsListDto) {
debugger;
return $http.post('/asset/getAssetResultListPage', citAssetsListDto, apiConfig.create());
},
getAssetGroupResultData: function (projectId) {
return $http.get('/asset/getAssetGroupResultData?projectId=' + projectId, apiConfig.create());
},
......
......@@ -52,7 +52,7 @@
return $http.post('/citReport/generateByTotal/' + projectId + '/' + isMergeManualDataSource + '?generator=' + generator , {}, apiConfig.createVat({ignoreLoadingBar: true}));
},
getRunningJob: function (projectId, period) {
return $http.get('/Report/getRunningJob/' + projectId+'/'+period, apiConfig.createVat());
return $http.get('/citReport/getPeriodJob/' + projectId+'/'+period, apiConfig.createVat());
},
getJobStatus: function (projectId, period, jobId) {
return $http.get('/Report/getJobStatus/' + projectId +'/'+ period +'/'+ jobId, apiConfig.createVat({ignoreLoadingBar: true}));
......
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