Commit 7e174a80 authored by chase's avatar chase

文件上传接口及报表上传下载

parent 725227db
......@@ -3,7 +3,6 @@ package pwc.taxtech.atms.controller;
import com.alibaba.fastjson.JSONArray;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import com.google.common.collect.Lists;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.message.ErrorMessage;
import pwc.taxtech.atms.dpo.PagingDto;
......@@ -15,6 +14,7 @@ import pwc.taxtech.atms.dto.vatdto.TrialBalanceDto;
import pwc.taxtech.atms.dto.vatdto.TrialBalanceParam;
import pwc.taxtech.atms.exception.ServiceException;
import pwc.taxtech.atms.service.impl.DataImportService;
import pwc.taxtech.atms.service.impl.DidiFileUploadService;
import pwc.taxtech.atms.service.impl.LgGlBalanceService;
import javax.annotation.Resource;
......@@ -29,6 +29,8 @@ public class DataImportController extends BaseController {
@Resource
private LgGlBalanceService lgGlBalanceService;
@Resource
private DidiFileUploadService didiFileUploadService;
@PostMapping("GetBalanceDataForDisplay")
public PagingResultDto<TrialBalanceDto> getBalanceDataForDisplay(@RequestBody TrialBalanceParam param) {
PagingResultDto<TrialBalanceDto> resultDto = new PagingResultDto<>();
......@@ -91,6 +93,7 @@ public class DataImportController extends BaseController {
@RequestMapping(value = "RLITExcelFile", method = RequestMethod.POST)
public OperationResultDto importRLITExcelFile(@RequestParam MultipartFile file,@RequestParam String orgIds,@RequestParam String periodDate,@RequestParam Integer importType) {
try {
didiFileUploadService.uploadFile(file,"aaaa.xlsx","didi");
List<String> orgList = (List<String>)JSONArray.parse(orgIds);
String valMsg = valParameter(file,orgList,periodDate);
if(StringUtils.isNotEmpty(valMsg)){
......
package pwc.taxtech.atms.controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import pwc.taxtech.atms.dto.input.CamelPagingResultDto;
import pwc.taxtech.atms.dto.reportUpload.ReportUploadParam;
import pwc.taxtech.atms.dto.reportUpload.ReportUploadResult;
import pwc.taxtech.atms.service.impl.ReportUploadService;
import javax.annotation.Resource;
@RestController
@RequestMapping(value = "api/v1/reportUploadDetail")
public class ReportUploadDetailController extends BaseController {
@Resource
private ReportUploadService reportUploadService;
@PostMapping("queryPage")
public CamelPagingResultDto<ReportUploadResult> queryPage(@RequestBody ReportUploadParam param) {
return new CamelPagingResultDto<>(reportUploadService.queryPage(param));
}
}
package pwc.taxtech.atms.dto.reportUpload;
import pwc.taxtech.atms.dto.input.CamelPagingDto;
import java.io.Serializable;
public class ReportUploadParam implements Serializable {
private static final long serialVersionUID = -6945211413340301685L;
private CamelPagingDto pageInfo;
private String projectId;
private Integer period;
public String getProjectId() {
return projectId;
}
public Integer getPeriod() {
return period;
}
public CamelPagingDto getPageInfo() {
return this.pageInfo;
}
public void setPageInfo(CamelPagingDto pageInfo) {
this.pageInfo = pageInfo;
}
}
package pwc.taxtech.atms.dto.reportUpload;
import pwc.taxtech.atms.vat.entity.ReportUpload;
public class ReportUploadResult extends ReportUpload {
private static final long serialVersionUID = -2559545351825736401L;
private String fileUrl;
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
}
......@@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpDelete;
......@@ -18,12 +19,10 @@ import org.apache.http.entity.mime.content.ByteArrayBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.config.FileServiceConfig;
import pwc.taxtech.atms.constant.Constant;
import pwc.taxtech.atms.dto.didiFileUpload.DidiFileIUploadParam;
import pwc.taxtech.atms.dto.didiFileUpload.DidiFileUploadDetailResult;
......@@ -49,8 +48,6 @@ import java.util.stream.Collectors;
*/
@Service
public class DidiFileUploadService extends BaseService {
@Autowired
private FileServiceConfig config;
@Resource
private FileUploadMapper fileUploadMapper;
......@@ -77,7 +74,7 @@ public class DidiFileUploadService extends BaseService {
private static final String PROXY_PORT = "11007";
public FileUpload uploadFile(MultipartFile file, String bizSource) throws ServiceException {
public FileUpload uploadFile(MultipartFile file, String fileName,String bizSource) throws ServiceException {
CloseableHttpClient httpClient = null;
String requestKey = CommonUtils.getUUID();
String requestUrl = upload_post_url + "/" + requestKey;
......@@ -89,7 +86,7 @@ public class DidiFileUploadService extends BaseService {
httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(requestUrl);
String md5Str = getFileMD5String(file);
ByteArrayBody byteBody = new ByteArrayBody(file.getBytes(), ContentType.MULTIPART_FORM_DATA, file.getOriginalFilename());
ByteArrayBody byteBody = new ByteArrayBody(file.getBytes(), ContentType.MULTIPART_FORM_DATA, StringUtils.isBlank(fileName)?file.getOriginalFilename():fileName);
StringBody md5 = new StringBody(md5Str, ContentType.create("text/plain"));
HttpEntity httpEntity = MultipartEntityBuilder.create().addPart("filecontent", byteBody).addPart("md5", md5).build();
httpPost.setEntity(httpEntity);
......@@ -101,7 +98,7 @@ public class DidiFileUploadService extends BaseService {
fileUpload = new FileUpload();
fileUpload.setBizSource(bizSource);
fileUpload.setUid(CommonUtils.getUUID());
fileUpload.setFileName(file.getOriginalFilename());
fileUpload.setFileName(StringUtils.isBlank(fileName)?file.getOriginalFilename():fileName);
fileUpload.setResourceKey(requestKey);
assemblyModel(resultDto, fileUpload);
uploadLog.setFileUploadId(fileUpload.getUid());
......
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.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import pwc.taxtech.atms.common.AuthUserHelper;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dao.ProjectMapper;
import pwc.taxtech.atms.dao.UserMapper;
import pwc.taxtech.atms.dto.didiFileUpload.DidiFileIUploadParam;
import pwc.taxtech.atms.dto.didiFileUpload.DidiFileUploadDetailResult;
import pwc.taxtech.atms.dto.reportUpload.ReportUploadParam;
import pwc.taxtech.atms.dto.reportUpload.ReportUploadResult;
import pwc.taxtech.atms.entity.Project;
import pwc.taxtech.atms.entity.User;
import pwc.taxtech.atms.vat.dao.ReportUploadMapper;
import pwc.taxtech.atms.vat.entity.FileUpload;
import pwc.taxtech.atms.vat.entity.ReportUpload;
import pwc.taxtech.atms.vat.entity.ReportUploadExample;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class ReportUploadService extends BaseService {
@Resource
private ReportUploadMapper reportUploadMapper;
@Autowired
protected AuthUserHelper authUserHelper;
@Resource
private UserMapper userMapper;
@Resource
private ProjectMapper projectMapper;
@Autowired
DidiFileUploadService didiFileUploadService;
public PageInfo<ReportUploadResult> queryPage(ReportUploadParam param) {
Page page = PageHelper.startPage(param.getPageInfo().getPageIndex(), param.getPageInfo().getPageSize());
ReportUploadExample example = new ReportUploadExample();
example.createCriteria().andProjectIdEqualTo(param.getProjectId()).andPeriodEqualTo(param.getPeriod());
List<ReportUpload> dataList = reportUploadMapper.selectByExample(example);
DidiFileIUploadParam fileParam = new DidiFileIUploadParam();
fileParam.setUuids(dataList.stream()
.map(o -> o.getFileUploadId()).collect(Collectors.toList()));
PageInfo<DidiFileUploadDetailResult> uploadDetail = didiFileUploadService.queryPage(fileParam);
Map<String,String> urlMap = null;
if(CollectionUtils.isNotEmpty(uploadDetail.getList())){
urlMap = uploadDetail.getList().stream().collect(Collectors.toMap(DidiFileUploadDetailResult::getUid, didiFileUploadDetailResult -> didiFileUploadDetailResult.getViewHttpUrl()));
}
List<ReportUploadResult> resultList = new ArrayList<ReportUploadResult>();
for(ReportUpload data:dataList){
ReportUploadResult result = beanUtil.copyProperties(data, new ReportUploadResult());
result.setFileUrl(urlMap.get(data.getFileUploadId()));
resultList.add(result);
}
PageInfo<ReportUploadResult> pageInfo = new PageInfo<>(resultList);
pageInfo.setTotal(page.getTotal());
return pageInfo;
}
public void saveData(MultipartFile file, ReportUpload data) {
String uid = authUserHelper.getCurrentUserId();
User user = userMapper.selectByPrimaryKey(uid);
data.setCreator(user.getUserName());
String fileName = "";
Project project = projectMapper.selectByPrimaryKey(data.getProjectId());
data.setOrgId(project.getOrganizationId());
fileName += project.getName();
fileName += "-";
fileName += data.getPeriod();
fileName += "-V";
ReportUploadExample example = new ReportUploadExample();
example.createCriteria().andProjectIdEqualTo(data.getProjectId()).andPeriodEqualTo(data.getPeriod());
example.setOrderByClause("version desc");
List<ReportUpload> dataList = reportUploadMapper.selectByExample(example);
if (CollectionUtils.isNotEmpty(dataList)) {
fileName += (dataList.get(0).getVersion() + 1);
data.setVersion(dataList.get(0).getVersion() + 1);
} else {
fileName += 1;
data.setVersion(1);
}
fileName += ".xlsx";
data.setReportName(fileName);
FileUpload fileUpload = didiFileUploadService.uploadFile(file, fileName, "ReportUpload");
data.setFileUploadId(fileUpload.getUid());
data.setUid(CommonUtils.getUUID());
data.setCreateTime(new Date());
reportUploadMapper.insert(data);
}
}
package pwc.taxtech.atms.vat.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import pwc.taxtech.atms.MyVatMapper;
import pwc.taxtech.atms.vat.entity.ReportUpload;
import pwc.taxtech.atms.vat.entity.ReportUploadExample;
@Mapper
public interface ReportUploadMapper extends MyVatMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
long countByExample(ReportUploadExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
int deleteByExample(ReportUploadExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
int insert(ReportUpload record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
int insertSelective(ReportUpload record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
List<ReportUpload> selectByExampleWithRowbounds(ReportUploadExample example, RowBounds rowBounds);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
List<ReportUpload> selectByExample(ReportUploadExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") ReportUpload record, @Param("example") ReportUploadExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
int updateByExample(@Param("record") ReportUpload record, @Param("example") ReportUploadExample example);
}
\ No newline at end of file
package pwc.taxtech.atms.vat.entity;
import java.io.Serializable;
import java.util.Date;
import pwc.taxtech.atms.entity.BaseEntity;
/**
*
* This class was generated by MyBatis Generator.
* This class corresponds to the database table report_upload
*
* @mbg.generated do_not_delete_during_merge
*/
public class ReportUpload extends BaseEntity implements Serializable {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.uid
*
* @mbg.generated
*/
private String uid;
/**
* Database Column Remarks:
* 组织id
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.org_id
*
* @mbg.generated
*/
private String orgId;
/**
* Database Column Remarks:
* 项目id
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.project_id
*
* @mbg.generated
*/
private String projectId;
/**
* Database Column Remarks:
* 期数
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.period
*
* @mbg.generated
*/
private Integer period;
/**
* Database Column Remarks:
* 创建人
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.creator
*
* @mbg.generated
*/
private String creator;
/**
* Database Column Remarks:
* 创建时间
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.create_time
*
* @mbg.generated
*/
private Date createTime;
/**
* Database Column Remarks:
* 报表名称
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.report_name
*
* @mbg.generated
*/
private String reportName;
/**
* Database Column Remarks:
* 版本号
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.version
*
* @mbg.generated
*/
private Integer version;
/**
* Database Column Remarks:
* 文件上传表id
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column report_upload.file_upload_id
*
* @mbg.generated
*/
private String fileUploadId;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database table report_upload
*
* @mbg.generated
*/
private static final long serialVersionUID = 1L;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.uid
*
* @return the value of report_upload.uid
*
* @mbg.generated
*/
public String getUid() {
return uid;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.uid
*
* @param uid the value for report_upload.uid
*
* @mbg.generated
*/
public void setUid(String uid) {
this.uid = uid == null ? null : uid.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.org_id
*
* @return the value of report_upload.org_id
*
* @mbg.generated
*/
public String getOrgId() {
return orgId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.org_id
*
* @param orgId the value for report_upload.org_id
*
* @mbg.generated
*/
public void setOrgId(String orgId) {
this.orgId = orgId == null ? null : orgId.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.project_id
*
* @return the value of report_upload.project_id
*
* @mbg.generated
*/
public String getProjectId() {
return projectId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.project_id
*
* @param projectId the value for report_upload.project_id
*
* @mbg.generated
*/
public void setProjectId(String projectId) {
this.projectId = projectId == null ? null : projectId.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.period
*
* @return the value of report_upload.period
*
* @mbg.generated
*/
public Integer getPeriod() {
return period;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.period
*
* @param period the value for report_upload.period
*
* @mbg.generated
*/
public void setPeriod(Integer period) {
this.period = period;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.creator
*
* @return the value of report_upload.creator
*
* @mbg.generated
*/
public String getCreator() {
return creator;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.creator
*
* @param creator the value for report_upload.creator
*
* @mbg.generated
*/
public void setCreator(String creator) {
this.creator = creator == null ? null : creator.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.create_time
*
* @return the value of report_upload.create_time
*
* @mbg.generated
*/
public Date getCreateTime() {
return createTime;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.create_time
*
* @param createTime the value for report_upload.create_time
*
* @mbg.generated
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.report_name
*
* @return the value of report_upload.report_name
*
* @mbg.generated
*/
public String getReportName() {
return reportName;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.report_name
*
* @param reportName the value for report_upload.report_name
*
* @mbg.generated
*/
public void setReportName(String reportName) {
this.reportName = reportName == null ? null : reportName.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.version
*
* @return the value of report_upload.version
*
* @mbg.generated
*/
public Integer getVersion() {
return version;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.version
*
* @param version the value for report_upload.version
*
* @mbg.generated
*/
public void setVersion(Integer version) {
this.version = version;
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column report_upload.file_upload_id
*
* @return the value of report_upload.file_upload_id
*
* @mbg.generated
*/
public String getFileUploadId() {
return fileUploadId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column report_upload.file_upload_id
*
* @param fileUploadId the value for report_upload.file_upload_id
*
* @mbg.generated
*/
public void setFileUploadId(String fileUploadId) {
this.fileUploadId = fileUploadId == null ? null : fileUploadId.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table report_upload
*
* @mbg.generated
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", uid=").append(uid);
sb.append(", orgId=").append(orgId);
sb.append(", projectId=").append(projectId);
sb.append(", period=").append(period);
sb.append(", creator=").append(creator);
sb.append(", createTime=").append(createTime);
sb.append(", reportName=").append(reportName);
sb.append(", version=").append(version);
sb.append(", fileUploadId=").append(fileUploadId);
sb.append("]");
return sb.toString();
}
}
\ No newline at end of file
......@@ -1072,7 +1072,23 @@ var vatModule = angular.module('app.vat', ['ui.grid', 'ui.grid.selection', 'ui.g
deepStateRedirect: false,
sticky: false
});
//report upload list view
$stateProvider.state({
name: 'vat.generateReport.reportUploadView',
url: '/reportUploadView',
views: {
'@vat.generateReport': {
controller: ['$scope', '$stateParams', 'appTranslation',
function ($scope, $stateParams, appTranslation) {
appTranslation.load([appTranslation.vat]);
}],
template: '<vat-report-upload-detail></vat-report-upload-detail>',
}
},
resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.vat),
deepStateRedirect: true,
sticky: true
});
/**********a beautiful separated line for analyzeReport*********/
$stateProvider.state({
......
......@@ -654,6 +654,7 @@
"Expand": "展开",
"ExportBtn": "导出",
"ExportExcel": "导出Excel",
"UploadExcel": "上传保存Excel",
"ExportReportRequiredCheck": "至少选择一个报表导出",
"FCompany": "F 公司",
"FaceAmountNoTax": "票面金额(不含税)",
......@@ -2214,5 +2215,11 @@
"Operater": "操作员",
"OperateTime": "操作时间",
"ReportUploadDetail": "历史版本计算表",
"RepUploadDtlColSerialNo": "序号",
"RepUploadDtlColCreateTime": "保存时间",
"RepUploadDtlColCreator": "存档用户",
"RepUploadDtlColFileName": "计算表名称-系统生成",
"RepUploadDtlColDownload": "下载",
"~MustBeEndOneApp": "我必须是最后一个!"
}
vatModule.controller('vatReportUploadDetailController', ['$scope', '$log', '$translate', '$timeout', 'SweetAlert', '$q',
'$interval', 'dxDataGridService', '$http', 'apiConfig', 'vatSessionService',
function ($scope, $log, $translate, $timeout, SweetAlert, $q, $interval, dxDataGridService, $http, apiConfig, vatSessionService) {
'use strict';
$log.debug('vatReportUploadDetailController.ctor()...');
//表格配置
$scope.revenueGridOptions = $.extend(true, {}, dxDataGridService.BASIC_GRID_OPTIONS, {
columns: [
{
dataField: 'serialNo',
caption: $translate.instant('RepUploadDtlColSerialNo'),
fixed: true,
allowHeaderFiltering: true, cellTemplate: function (container, options) {
try {
$("<span>" + (options.rowIndex + 1) + "</span>")
.appendTo(container);
} catch (e) {
$log.error(e);
}
}
},
{
dataField: 'createTime',
caption: $translate.instant('RepUploadDtlColCreateTime'),
fixed: true,
allowHeaderFiltering: true,
dataType: "date",
format: "yyyy-MM-dd HH:mm:ss",
},
{
dataField: 'creator',
caption: $translate.instant('RepUploadDtlColCreator'),
fixed: true,
allowHeaderFiltering: true
},
{
dataField: 'reportName',
caption: $translate.instant('RepUploadDtlColFileName'),
fixed: true,
allowHeaderFiltering: true
},
{
dataField: 'fileUrl',
caption: $translate.instant('RepUploadDtlColDownload'),
fixed: true,
allowHeaderFiltering: true,
cellTemplate: function (container, options) {
try {
$("<a href='"+options.data.fileUrl+"'>下载</a>")
.appendTo(container);
} catch (e) {
$log.error(e);
}
}
}
],
bindingOptions: {
dataSource: 'pageConfDataSource'
}
});
//刷新页面
$scope.refreshGrid = function () {
$scope.searchParam.projectId = vatSessionService.project.id;
var month = vatSessionService.month < 10 ? ("0" + vatSessionService.month) : vatSessionService.month;
$scope.searchParam.period = "" + vatSessionService.year + month;
$scope.searchParam.pageInfo = {
pageIndex: $scope.pagingOptions.pageIndex,
totalItems: $scope.pagingOptions.totalItems,
pageSize: $scope.pagingOptions.pageSize
};
$http.post('/reportUploadDetail/queryPage', $scope.searchParam, apiConfig.createVat())
.success(function (res) {
if (res && res.list) {
$scope.pageConfDataSource = res.list;
$scope.pagingOptions.totalItems = res.pageInfo.totalCount;
} else {
SweetAlert.error($translate.instant('SystemError'));
}
})
};
(function initialize() {
//分页的设置
$scope.pagingOptions = {
pageIndex: 1, //当前页码
totalItems: 0, //总数据
pageSize: 20 //每页多少条数据
};
$scope.searchParam = {};
function init() {
$scope.refreshGrid();
}
init()
})();
}
]);
\ No newline at end of file
vatModule.directive('vatReportUploadDetail', ['$log', 'browserService', '$translate', 'region', '$timeout',
function ($log, browserService, $translate, region, $timeout) {
$log.debug('vatReportUploadDetail.ctor()...');
return {
restrict: 'E',
templateUrl: 'app/common/controls/vat-report-upload-view/vat-report-upload.html' + '?_=' + Math.random(),
scope: {},
controller: 'vatReportUploadDetailController'
}
}
]);
\ No newline at end of file

@border-color: #d4d4d4;
@margin-left: 60px;
@container-width: 970px;
@control-width: 120px;
//sharing
.header {
padding: 15px;
img {
margin-top: 3px;
}
.search-panel {
border: 1px solid #CDCDCD;
border-radius: 5px;
padding: 5px;
.row {
margin: 10px 0;
.filter-item {
display: inline-block;
vertical-align: middle;
height: 32px;
}
.fileter-label {
text-align: right;
height: 32px;
padding-top: 5px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
padding-left: 0;
}
.invoice-btn {
min-width: 90px;
height: 34px;
}
}
.table-bottom {
margin-bottom: 0px !important;
.lbl-name {
word-break: keep-all;
}
td {
vertical-align: middle;
}
}
}
}
.table-bottom {
margin-bottom: 0px !important;
.lbl-name {
word-break: keep-all;
}
td {
vertical-align: middle;
}
}
.red-color {
color: #d04a02;
/*vertical-align: middle;*/
}
.dx-widget {
font-size: 13px;
}
//share
.header-title {
padding: 10px;
.sub-title {
font-family: "Microsoft YaHei";
font-weight: 400;
font-size: 12px;
color: rgb(153, 153, 153);
}
.title-name {
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
}
}
.inline-block {
display: inline-block;
.left-side {
display: inline-block;
}
.right-side {
float: right;
display: inline-block;
}
}
.invoice-btn {
min-width: 80px;
height: 28px;
margin-right: 10px;
font-weight: normal;
font-size: 13px;
font-family: 'Microsoft YaHei';
}
.invoice-card {
width: 120px;
height: 130px;
border: 1px dashed @border-color;
border: 1px dashed rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: #fff; /*#fbfbfb;*/
text-align: center;
cursor: pointer;
float: left;
margin: 10px;
position: relative;
&:hover {
background-color: #fff !important;
box-shadow: #a06748 1px 1px;
}
//卡片顶部的绝对定位
.dx-checkbox-container {
position: absolute;
left: 59px;
top: -8px;
}
}
.span-btn {
color: #6699CC;
padding: 0px 4px;
cursor: pointer;
font-size: 12px;
}
.borderless td, .borderless th {
border: none !important;
vertical-align: middle !important;
}
.page-footer {
display: inline-block;
float: right;
/*padding-right: 20px;*/
}
.invoice-table-dialog {
.modal-dialog {
min-width: 650px;
.modal-title {
color: red;
}
}
}
.invoiceNumber-link {
cursor: pointer;
/*color:#6699cc;*/
}
.vat-bill-detail {
height: 100% !important;
padding-top: 0px !important;
position: relative;
font-size: 13px;
.period-picker {
width: 150px;
border: 1px solid #c7c5c0;
display: inline-block;
line-height: 20px;
margin-top: 7px;
}
.imp-subheader {
display: inline-block;
font-size: 15px;
height: 30px;
line-height: 30px;
vertical-align: middle;
border: none;
select {
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
background: transparent;
}
}
.dx-datagrid-group-closed:before {
/* font-family: "ui-grid"; */
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
font-variant: normal;
text-transform: none;
line-height: 1em;
margin-left: .2em;
content: inherit!important;
}
.header-title {
padding: 10px;
.title-name {
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
}
}
.custom-control {
width: @control-width !important;
height: 25px;
line-height: 25px;
}
.btn-search {
width: @control-width !important;
}
.content-container {
height: calc(~'100% - 40px');
position: relative;
.body {
.buttom-row {
padding: 15px;
display: inline-block;
width: 100%;
.left-side {
display: inline-block;
/*padding-left:5px;*/
.select-title {
margin-left: 20px;
}
.select-number {
padding: 0 1px;
color: red;
}
}
.right-side {
float: right;
display: inline-block;
/*padding-right:5px;*/
.btn {
margin-left: 20px;
}
}
}
.grid-container {
padding: 0px 15px;
/*height: 350px;*/
/*height:100%;*/
#invoiceGridContainer {
max-height: 100%;
}
.dx-datagrid-rowsview .dx-row > .dx-master-detail-cell {
padding: 0px !important;
}
.dx-datagrid-nowrap.dx-datagrid-headers .dx-header-row > td > .dx-datagrid-text-content {
white-space: normal !important;
}
.internal-grid-container {
padding: 10px 10px 10px 0;
& > div:first-child {
padding: 0 0 5px 10px;
font-size: 13px;
/*font-weight: bold;*/
}
}
}
}
}
.importVerifyInvoiceModal {
.modal-dialog {
height: 200px;
width: 610px;
}
.modal-footer {
text-align: left;
}
}
}
<div class="vat-bill-detail">
<div class="header-title">
<div style="display:inline-block"><span class="title-name">{{'ReportUploadDetail' | translate }}</span></div>
</div>
<div class="content-container">
<div class="body">
<div class="grid-container">
<div id="invoiceGridContainer" dx-data-grid="revenueGridOptions">
<div data-options="dxTemplate:{ name:'editCellTemplate' }">
</div>
</div>
</div>
<div class="page-footer">
<ack-pagination page-options="pagingOptions"
refresh-table="refreshGrid()"></ack-pagination>
</div>
</div>
</div>
</div>
<div class='vat-report-view'>
<!--Report SpreadJS-->
<div ng-if="!isDocumentList" class="row">
<span ng-if="!isBSPL" ng-click="openExportPop();"><i class="fa fa-download"></i>&nbsp;{{'ExportExcel' | translate}}</span>
<span ng-if="!isBSPL" ng-click="openExportPop('export');"><i class="fa fa-download"></i>&nbsp;{{'ExportExcel' | translate}}</span>
<span ng-if="!isBSPL" ng-click="commitApprove();"><i
class="fa fa-floppy-o"></i>&nbsp;{{'报表提审'}}</span>
<span ng-if="!isBSPL" ng-click="doApprove();"><i
......@@ -9,6 +9,7 @@
<span ng-if="!isBSPL" ng-click="upLoadManual();"><i
class="fa fa-floppy-o"></i>&nbsp;{{'上传手工数据'}}
</span>
<span ng-if="!isBSPL" ng-click="openExportPop('upload');"><i class="fa fa-upload"></i>&nbsp;{{'UploadExcel' | translate}}</span>
<!--<span ng-if="!isBSPL" ng-click="saveReportCache();"><i-->
<!--class="fa fa-floppy-o"></i>&nbsp;{{'Save' | translate}}</span>-->
</div>
......@@ -96,6 +97,10 @@
</script>
</div>
<!-- File Vouchers Upload Popup -->
<div class="modal fade" id="showVoucherUploadPortal" tabindex="-1" role="dialog" aria-labelledby="myModal"
data-backdrop="static" data-keyboard="false">
......
......@@ -180,6 +180,7 @@
var toggleGroup = function (group) {
group.isExpand = !group.isExpand;
};
$scope.uploadliShow = false;
(function initialize() {
checkUserOrganizationPermissionList();
loadTemplateMenu();
......
......@@ -13,16 +13,35 @@
<div class="divider"></div>
<div ng-show="group.isExpand" class="animate-show-hide">
<div class="li tree" ng-repeat="menu in group.children">
<a ui-sref-active="active" data-template-id="{{menu.id}}" ng-class="{'active':selectedTemplateId===menu.id}"
<a ui-sref-active="active" data-template-id="{{menu.id}}"
ng-class="{'active':selectedTemplateId===menu.id}"
ui-sref=".reportView({ id: menu.reportId, templateid: menu.id, name:menu.name,templatecode:menu.code })"
ng-bind-html="::menu.name"></a>
</div>
</div>
</li>
</ul>
<ul class="nav nav-report">
<li>
<div class="group-section" ng-click="uploadliShow=!uploadliShow;">
<i class="fa toggle-group-icon" ng-class="'fa-chevron-down'"
aria-hidden="true"></i>
<label class="tree-toggle nav-header" translate="">历史版本</label>
</div>
<div class="divider"></div>
<div class="animate-show-hide" ng-show="uploadliShow">
<div class="li tree">
<a ng-class="'active'" ui-sref-active="active"
ui-sref=".reportUploadView()"
class="active">历史版本计算表</a>
</div>
</div>
</li>
</ul>
</perfect-scrollbar>
</div>
<div id="vat-report-content" style="overflow:hidden;height:100%" >
</div>
<div id="vat-report-content" style="overflow:hidden;height:100%">
<div class="vat-report-content" ui-view></div>
</div>
......
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