Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
T
traffic-front
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangxiaoming
traffic-front
Commits
e3a1ae3f
Commit
e3a1ae3f
authored
Apr 10, 2019
by
zhkwei
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev_mysql' into dev_mysql
parents
6b2dadc1
d057309f
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
717 additions
and
393 deletions
+717
-393
AnalysisJob.java
...in/java/pwc/taxtech/atms/common/schedule/AnalysisJob.java
+8
-4
FileExcelUtil.java
...main/java/pwc/taxtech/atms/common/util/FileExcelUtil.java
+49
-0
OperationLogTaxDocController.java
...taxtech/atms/controller/OperationLogTaxDocController.java
+4
-10
AnalysisJobServiceImpl.java
...pwc/taxtech/atms/service/impl/AnalysisJobServiceImpl.java
+193
-48
AnalysisServiceImpl.java
...va/pwc/taxtech/atms/service/impl/AnalysisServiceImpl.java
+16
-3
TaxDocumentServiceImpl.java
...pwc/taxtech/atms/service/impl/TaxDocumentServiceImpl.java
+215
-161
ReportServiceImpl.java
.../pwc/taxtech/atms/vat/service/impl/ReportServiceImpl.java
+149
-143
AnalysisTest.java
...test/java/pwc/taxtech/atms/service/impl/AnalysisTest.java
+16
-6
app.json
atms-web/src/main/webapp/app-resources/i18n/zh-CN/app.json
+1
-0
doc-manage.html
...webapp/app/admin/infrastructure/docManage/doc-manage.html
+2
-2
app-usr-operate-log.ctrl.js
...framework/app-usr-operate-log/app-usr-operate-log.ctrl.js
+15
-9
tax-document-list.ctrl.js
...ocumentManage/tax-document-list/tax-document-list.ctrl.js
+44
-2
tax-document-list.html
...axDocumentManage/tax-document-list/tax-document-list.html
+5
-5
No files found.
atms-api/src/main/java/pwc/taxtech/atms/common/schedule/AnalysisJob.java
View file @
e3a1ae3f
...
...
@@ -37,9 +37,12 @@ public class AnalysisJob extends QuartzJobBean {
protected
void
executeInternal
(
JobExecutionContext
jobExecutionContext
)
throws
JobExecutionException
{
Integer
period
=
DateUtils
.
getPeriodNow
();
OrganizationExample
e
=
new
OrganizationExample
();
e
.
createCriteria
().
andIsActiveEqualTo
(
true
);
//
e.createCriteria().andIsActiveEqualTo(true);
List
<
Organization
>
orgs
=
organizationMapper
.
selectByExample
(
e
);
logger
.
info
(
String
.
format
(
"开始分析%s机构数据"
,
period
));
analysisJobService
.
analysisMaster
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
logger
.
info
(
String
.
format
(
"开始分析%s预期返还税数据"
,
period
));
analysisJobService
.
analysisExpectedTax
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
...
...
@@ -49,15 +52,16 @@ public class AnalysisJob extends QuartzJobBean {
logger
.
info
(
String
.
format
(
"开始分析%s档案管理数据"
,
period
));
analysisJobService
.
analysisFileManagement
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
logger
.
info
(
String
.
format
(
"开始分析%s机构数据"
,
period
));
analysisJobService
.
analysisMaster
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
logger
.
info
(
String
.
format
(
"开始分析%s申报表数据"
,
period
));
analysisJobService
.
analysisSales
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
logger
.
info
(
String
.
format
(
"开始分析%s返还后税数据"
,
period
));
analysisJobService
.
analysisTaxReturnEnd
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
logger
.
info
(
String
.
format
(
"开始分析%税种税金计算数据"
,
period
));
analysisJobService
.
analysisTax
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
}
}
atms-api/src/main/java/pwc/taxtech/atms/common/util/FileExcelUtil.java
View file @
e3a1ae3f
...
...
@@ -11,6 +11,7 @@ package pwc.taxtech.atms.common.util;
import
com.google.common.collect.Lists
;
import
org.activiti.engine.ProcessEngine
;
import
org.activiti.engine.ProcessEngineConfiguration
;
import
org.apache.poi.hssf.usermodel.HSSFCell
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.xssf.streaming.SXSSFSheet
;
import
org.nutz.http.Http
;
...
...
@@ -23,6 +24,7 @@ import javax.servlet.ServletOutputStream;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.math.BigDecimal
;
import
java.net.URLEncoder
;
import
java.util.List
;
import
java.util.zip.ZipEntry
;
...
...
@@ -379,4 +381,50 @@ public class FileExcelUtil {
}
}
/**
*
* @param cell 获取值的单元格
* @param zero 是否将空 或者null转换成 zero
* @return
*/
public
static
Object
getCellValue
(
Cell
cell
,
Boolean
zero
)
{
String
cellValue
=
null
;
switch
(
cell
.
getCellType
())
{
case
Cell
.
CELL_TYPE_STRING
:
//字符串类型
cellValue
=
cell
.
getStringCellValue
();
if
(
cellValue
.
trim
().
equals
(
""
)
||
cellValue
.
trim
().
length
()
<=
0
)
cellValue
=
""
;
break
;
case
Cell
.
CELL_TYPE_NUMERIC
:
//数值类型
cellValue
=
String
.
valueOf
(
cell
.
getNumericCellValue
());
break
;
case
Cell
.
CELL_TYPE_FORMULA
:
//公式
cell
.
setCellType
(
HSSFCell
.
CELL_TYPE_NUMERIC
);
cellValue
=
String
.
valueOf
(
cell
.
getNumericCellValue
());
break
;
case
Cell
.
CELL_TYPE_BLANK
:
cellValue
=
""
;
break
;
case
Cell
.
CELL_TYPE_BOOLEAN
:
break
;
case
Cell
.
CELL_TYPE_ERROR
:
break
;
default
:
break
;
}
if
(
""
.
equals
(
cellValue
)
&&
zero
)
return
BigDecimal
.
ZERO
;
if
(
zero
){
try
{
return
new
BigDecimal
(
cellValue
);
}
catch
(
Exception
e
){
logger
.
warn
(
"获取Cell,在值转换成数字的地方出错"
);
return
BigDecimal
.
ZERO
;
}
}
return
cellValue
;
}
}
\ No newline at end of file
atms-api/src/main/java/pwc/taxtech/atms/controller/OperationLogTaxDocController.java
View file @
e3a1ae3f
...
...
@@ -71,28 +71,22 @@ public class OperationLogTaxDocController {
@RequestMapping
(
"exportExcel"
)
@ResponseBody
// public void exportExcelFile(HttpServletResponse response, @RequestBody OperationLogTaxDocument operationLogTaxDocument) {
public
void
exportExcelFile
(
HttpServletResponse
response
)
{
public
void
exportExcelFile
(
HttpServletResponse
response
,
@RequestBody
OperationLogTaxDocument
operationLogTaxDocument
)
{
try
{
Map
<
String
,
String
>
headers
=
new
LinkedHashMap
<>();
headers
.
put
(
"id"
,
"id"
);
// headers.put("operation_content", "操作内容");
// headers.put("module_name", "模块名称");
// headers.put("operation_object", "操作对象");
headers
.
put
(
"operation_action"
,
"操作action"
);
// headers.put("original_state", "原始状态");
// headers.put("update_state", "更新状态");
headers
.
put
(
"update_state"
,
"操作内容"
);
headers
.
put
(
"operation_user"
,
"操作者"
);
headers
.
put
(
"ip"
,
"操作ip"
);
headers
.
put
(
"comment"
,
"内容"
);
headers
.
put
(
"create_time"
,
"创建时间"
);
List
<
OperationLogTaxDocument
>
TaxDocuments
=
operationLogTaxDocService
.
selectTaxDocumentList
();
// List<String> ids = operationLogTaxDocument.getIds() == null ? Lists.newArrayList() : operationLogTaxDocument.getIds(
);
List
<
String
>
ids
=
operationLogTaxDocument
.
getIds
()
==
null
?
Lists
.
newArrayList
()
:
operationLogTaxDocument
.
getIds
();
List
<
OperationLogTaxDocument
>
taxDocuments
=
operationLogTaxDocService
.
selectListForLog
(
ids
);
response
.
setContentType
(
"multipart/form-data"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;fileName="
+
new
String
(
"档案列表日志"
.
getBytes
(
"GB2312"
),
"ISO-8859-1"
));
OutputStream
ouputStream
=
response
.
getOutputStream
();
ExcelUtil
.
exportExcel
(
headers
,
T
axDocuments
,
ouputStream
);
ExcelUtil
.
exportExcel
(
headers
,
t
axDocuments
,
ouputStream
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/AnalysisJobServiceImpl.java
View file @
e3a1ae3f
package
pwc
.
taxtech
.
atms
.
service
.
impl
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.*
;
import
com.github.pagehelper.PageInfo
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.openxml4j.exceptions.InvalidFormatException
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.apache.poi.ss.usermodel.WorkbookFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
pwc.taxtech.atms.analysis.dao.*
;
import
pwc.taxtech.atms.analysis.entity.*
;
import
pwc.taxtech.atms.common.util.DateUtils
;
import
pwc.taxtech.atms.common.util.FileExcelUtil
;
import
pwc.taxtech.atms.constant.enums.EnumTbImportType
;
import
pwc.taxtech.atms.dao.*
;
import
pwc.taxtech.atms.dpo.AnalysisSalesValueDto
;
import
pwc.taxtech.atms.dpo.ProjectAnaylsisDto
;
import
pwc.taxtech.atms.dto.didiFileUpload.DidiFileIUploadParam
;
import
pwc.taxtech.atms.dto.didiFileUpload.DidiFileUploadDetailResult
;
import
pwc.taxtech.atms.entity.*
;
import
pwc.taxtech.atms.vat.dao.EbitSpreadDataMapper
;
import
pwc.taxtech.atms.vat.dao.PeriodCellDataMapper
;
import
pwc.taxtech.atms.vat.dao.ProfitLossStatementFinalMapper
;
import
pwc.taxtech.atms.vat.dao.TrialBalanceFinalMapper
;
import
pwc.taxtech.atms.vat.entity.ProfitLossStatement
;
import
pwc.taxtech.atms.vat.entity.ProfitLossStatementExample
;
import
pwc.taxtech.atms.vat.entity.TrialBalanceFinal
;
import
pwc.taxtech.atms.vat.entity.TrialBalanceFinalExample
;
import
pwc.taxtech.atms.vat.entity.*
;
import
javax.annotation.Resource
;
import
java.util.function.Function
;
...
...
@@ -99,15 +109,15 @@ public class AnalysisJobServiceImpl extends BaseService {
* @return
* @author Gary J Li
*/
public
void
analysisMaster
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
public
void
analysisMaster
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
List
<
String
>
orgIds
=
orgs
.
stream
().
map
(
Organization:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
AnalysisMasterExample
example
=
new
AnalysisMasterExample
();
example
.
createCriteria
().
andOrganizationIdIn
(
orgIds
).
andPeriodEqualTo
(
period
);
analysisMasterMapper
.
deleteByExample
(
example
);
}
OrganizationExample
e1
=
new
OrganizationExample
();
e1
.
createCriteria
().
andIsActiveEqualTo
(
true
);
/*
OrganizationExample e1 = new OrganizationExample();
e1.createCriteria().andIsActiveEqualTo(true);
*/
List
<
String
>
currencys
=
orgs
.
stream
().
map
(
Organization:
:
getCurrencyCode
).
collect
(
Collectors
.
toList
());
...
...
@@ -136,7 +146,7 @@ public class AnalysisJobServiceImpl extends BaseService {
try
{
AnalysisMaster
am
=
new
AnalysisMaster
();
am
.
setId
(
idService
.
nextId
());
am
.
setSeqNo
(
o
.
getCode
()
+
""
+
period
);
am
.
setSeqNo
(
UUID
.
randomUUID
().
toString
()
);
List
<
Organization
>
parents
=
orgs
.
stream
().
filter
(
org
->
org
.
getId
().
equals
(
o
.
getParentId
())).
collect
(
Collectors
.
toList
());
String
parentAbbreviation
=
""
;
if
(!
parents
.
isEmpty
())
{
...
...
@@ -150,7 +160,7 @@ public class AnalysisJobServiceImpl extends BaseService {
am
.
setName
(
o
.
getName
());
am
.
setArea
(
areaMap
.
get
(
o
.
getAreaId
()));
am
.
setCountry
(
o
.
getCountry
());
am
.
setOrganizationId
(
o
.
getId
());
String
regionMeg
=
regionMap
.
get
(
o
.
getRegionId
());
List
<
String
>
regionMs
=
Lists
.
newArrayList
();
if
(
StringUtils
.
isNotEmpty
(
regionMeg
))
{
...
...
@@ -179,6 +189,15 @@ public class AnalysisJobServiceImpl extends BaseService {
}
}
public
String
getSeqNoByPeriod
(
String
orgId
,
Integer
period
)
{
AnalysisMasterExample
analysisMasterExample
=
new
AnalysisMasterExample
();
analysisMasterExample
.
createCriteria
().
andPeriodEqualTo
(
period
).
andOrganizationIdEqualTo
(
orgId
);
List
<
AnalysisMaster
>
analysisMasters
=
analysisMasterMapper
.
selectByExample
(
analysisMasterExample
);
if
(
analysisMasters
.
size
()
!=
0
)
return
analysisMasters
.
get
(
0
).
getSeqNo
();
return
null
;
}
/**
* 19/03/2019 15:55
* VAT、CIT申报表取数
...
...
@@ -192,9 +211,9 @@ public class AnalysisJobServiceImpl extends BaseService {
* @return
* @author Gary J Li
*/
public
void
analysisSales
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
public
void
analysisSales
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
List
<
String
>
orgIds
=
orgs
.
stream
().
map
(
Organization:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
AnalysisSalesExample
example
=
new
AnalysisSalesExample
();
example
.
createCriteria
().
andOrganizationIdIn
(
orgIds
).
andPeriodEqualTo
(
period
);
analysisSalesMapper
.
deleteByExample
(
example
);
...
...
@@ -206,7 +225,8 @@ public class AnalysisJobServiceImpl extends BaseService {
try
{
AnalysisSales
as
=
new
AnalysisSales
();
as
.
setId
(
idService
.
nextId
());
as
.
setSeqNo
(
o
.
getCode
()
+
""
+
period
);
//as.setSeqNo(o.getCode() + "" + period);
as
.
setSeqNo
(
getSeqNoByPeriod
(
vatDto
.
getOrgId
(),
period
));
List
<
AnalysisSalesValueDto
>
values
=
periodCellDataMapper
.
selectAnalysisSalesValueDto
(
vatDto
.
getReportId
(),
vatDto
.
getProjectId
());
...
...
@@ -218,22 +238,22 @@ public class AnalysisJobServiceImpl extends BaseService {
vMap
.
get
(
9
+
":"
+
18
);
// S-19 AJ-33
BigDecimal
segment1
=
getSegmentAmount
(
vMap
,
9
,
18
).
add
(
getSegmentAmount
(
vMap
,
9
,
3
2
)).
add
(
getSegmentAmount
(
vMap
,
9
,
3
5
)).
add
(
getSegmentAmount
(
vMap
,
13
,
18
)).
add
(
getSegmentAmount
(
vMap
,
13
,
3
2
)).
add
(
getSegmentAmount
(
vMap
,
13
,
3
5
)).
add
(
getSegmentAmount
(
vMap
,
15
,
18
)).
add
(
getSegmentAmount
(
vMap
,
17
,
18
));
BigDecimal
segment2
=
getSegmentAmount
(
vMap
,
19
,
18
).
add
(
getSegmentAmount
(
vMap
,
19
,
3
2
));
BigDecimal
segment3
=
getSegmentAmount
(
vMap
,
20
,
18
).
add
(
getSegmentAmount
(
vMap
,
20
,
3
2
));
BigDecimal
segment4
=
getSegmentAmount
(
vMap
,
22
,
18
).
add
(
getSegmentAmount
(
vMap
,
22
,
3
2
));
BigDecimal
segment5
=
getSegmentAmount
(
vMap
,
21
,
18
).
add
(
getSegmentAmount
(
vMap
,
21
,
3
2
));
BigDecimal
segment6
=
getSegmentAmount
(
vMap
,
28
,
18
).
add
(
getSegmentAmount
(
vMap
,
28
,
3
2
));
BigDecimal
segment7
=
getSegmentAmount
(
vMap
,
29
,
18
).
add
(
getSegmentAmount
(
vMap
,
29
,
3
2
));
BigDecimal
segment8
=
getSegmentAmount
(
vMap
,
31
,
18
).
add
(
getSegmentAmount
(
vMap
,
31
,
3
2
));
BigDecimal
segment9
=
getSegmentAmount
(
vMap
,
32
,
18
).
add
(
getSegmentAmount
(
vMap
,
32
,
3
2
));
BigDecimal
segment10
=
getSegmentAmount
(
vMap
,
35
,
18
).
add
(
getSegmentAmount
(
vMap
,
35
,
3
2
));
BigDecimal
segment11
=
getSegmentAmount
(
vMap
,
42
,
18
).
add
(
getSegmentAmount
(
vMap
,
42
,
3
2
));
BigDecimal
segment2
=
getSegmentAmount
(
vMap
,
19
,
18
).
add
(
getSegmentAmount
(
vMap
,
19
,
3
5
));
BigDecimal
segment3
=
getSegmentAmount
(
vMap
,
20
,
18
).
add
(
getSegmentAmount
(
vMap
,
20
,
3
5
));
BigDecimal
segment4
=
getSegmentAmount
(
vMap
,
22
,
18
).
add
(
getSegmentAmount
(
vMap
,
22
,
3
5
));
BigDecimal
segment5
=
getSegmentAmount
(
vMap
,
21
,
18
).
add
(
getSegmentAmount
(
vMap
,
21
,
3
5
));
BigDecimal
segment6
=
getSegmentAmount
(
vMap
,
28
,
18
).
add
(
getSegmentAmount
(
vMap
,
28
,
3
5
));
BigDecimal
segment7
=
getSegmentAmount
(
vMap
,
29
,
18
).
add
(
getSegmentAmount
(
vMap
,
29
,
3
5
));
BigDecimal
segment8
=
getSegmentAmount
(
vMap
,
31
,
18
).
add
(
getSegmentAmount
(
vMap
,
31
,
3
5
));
BigDecimal
segment9
=
getSegmentAmount
(
vMap
,
32
,
18
).
add
(
getSegmentAmount
(
vMap
,
32
,
3
5
));
BigDecimal
segment10
=
getSegmentAmount
(
vMap
,
35
,
18
).
add
(
getSegmentAmount
(
vMap
,
35
,
3
5
));
BigDecimal
segment11
=
getSegmentAmount
(
vMap
,
42
,
18
).
add
(
getSegmentAmount
(
vMap
,
42
,
3
5
));
// 查询小微纳税人表
List
<
ProjectAnaylsisDto
>
tinyDto
=
projectMapper
.
getTemlateWithServiceType2
(
vatDto
.
getOrgId
(),
period
/
100
,
period
%
100
,
"VAT100"
);
...
...
@@ -247,7 +267,7 @@ public class AnalysisJobServiceImpl extends BaseService {
Map
<
String
,
String
>
tvMap
=
new
HashMap
<>();
tinyValues
.
forEach
(
v
->
{
tvMap
.
put
(
v
.
getRowIndex
()
+
""
+
v
.
getColumnIndex
(),
v
.
getData
());
tvMap
.
put
(
v
.
getRowIndex
()
+
"
:
"
+
v
.
getColumnIndex
(),
v
.
getData
());
});
//E10+F10+E15+F15+E18+F18+E21+F21+E25+F25
...
...
@@ -282,7 +302,7 @@ public class AnalysisJobServiceImpl extends BaseService {
as
.
setSegment12
(
segment12
);
as
.
setSegment13
(
segment13
);
as
.
setSegment14
(
segment14
);
setEbitData
(
as
,
o
.
getId
(),
period
);
segment1
=
segment1
.
add
(
segment1Tiny
);
segment9
=
segment9
.
add
(
segment9Tiny
);
segment10
=
segment10
.
add
(
segment10Tiny
);
...
...
@@ -299,9 +319,10 @@ public class AnalysisJobServiceImpl extends BaseService {
as
.
setSegment9
(
segment9
);
as
.
setSegment10
(
segment10
);
as
.
setSegment11
(
segment11
);
as
.
setSegment15
(
getPLData
(
vatDto
,
"一、营业收入"
));
/*
as.setSegment15(getPLData(vatDto, "一、营业收入"));
as.setSegment16(getPLData(vatDto, "减:营业成本"));
as
.
setSegment17
(
getPLData
(
vatDto
,
"三、利润总额(亏损总额以“-”号填列)"
));
as.setSegment17(getPLData(vatDto, "三、利润总额(亏损总额以“-”号填列)"));*/
setEbitData
(
as
,
o
.
getId
(),
period
);
//todo segment18需求未定义
as
.
setOrganizationId
(
o
.
getId
());
as
.
setCompanyName
(
o
.
getName
());
...
...
@@ -312,7 +333,65 @@ public class AnalysisJobServiceImpl extends BaseService {
}
});
}
@Autowired
private
EbitSpreadDataMapper
ebitSpreadDataMapper
;
@Autowired
private
DidiFileUploadService
didiFileUploadService
;
@Autowired
private
HttpFileService
httpFileService
;
private
void
setEbitData
(
AnalysisSales
analysisSales
,
String
orgId
,
Integer
period
)
{
EbitSpreadDataExample
example
=
new
EbitSpreadDataExample
();
example
.
createCriteria
().
andPeriodEqualTo
(
period
).
andOrganizationIdEqualTo
(
orgId
);
List
<
EbitSpreadData
>
ebitSpreadData
=
ebitSpreadDataMapper
.
selectByExample
(
example
);
if
(
ebitSpreadData
.
size
()
!=
0
)
{
DidiFileIUploadParam
fileParam
=
new
DidiFileIUploadParam
();
fileParam
.
setUuids
(
Arrays
.
asList
(
ebitSpreadData
.
get
(
0
).
getFileKey
()));
PageInfo
<
DidiFileUploadDetailResult
>
uploadDetail
=
didiFileUploadService
.
queryPage
(
fileParam
);
String
path
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
uploadDetail
.
getList
()))
{
path
=
uploadDetail
.
getList
().
get
(
0
).
getViewHttpUrl
();
}
InputStream
inputStream
=
httpFileService
.
getUserTemplate
(
path
);
Workbook
workbook
=
null
;
try
{
workbook
=
WorkbookFactory
.
create
(
inputStream
);
Sheet
sheet
=
workbook
.
getSheetAt
(
0
);
analysisSales
.
setSegment15
((
BigDecimal
)
FileExcelUtil
.
getCellValue
(
sheet
.
getRow
(
11
).
getCell
(
1
),
true
));
analysisSales
.
setSegment15
((
BigDecimal
)
FileExcelUtil
.
getCellValue
(
sheet
.
getRow
(
12
).
getCell
(
1
),
true
));
analysisSales
.
setSegment15
((
BigDecimal
)
FileExcelUtil
.
getCellValue
(
sheet
.
getRow
(
27
).
getCell
(
1
),
true
));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
catch
(
InvalidFormatException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
inputStream
!=
null
)
{
try
{
inputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
else
{
// 查询利润表
List
<
AnalysisSalesValueDto
>
tinyValues
=
Lists
.
newArrayList
();
List
<
ProjectAnaylsisDto
>
tinyDto
=
projectMapper
.
getTemlateWithServiceType2
(
orgId
,
period
/
100
,
period
%
100
,
"VAT10086"
);
if
(!
tinyDto
.
isEmpty
())
{
tinyValues
=
periodCellDataMapper
.
selectAnalysisSalesValueDto
(
tinyDto
.
get
(
0
).
getReportId
(),
tinyDto
.
get
(
0
).
getProjectId
());
}
if
(!
tinyValues
.
isEmpty
())
{
Map
<
String
,
String
>
tvMap
=
new
HashMap
<>();
tinyValues
.
forEach
(
v
->
{
tvMap
.
put
(
v
.
getRowIndex
()
+
":"
+
v
.
getColumnIndex
(),
v
.
getData
());
});
analysisSales
.
setSegment15
(
getSegmentAmount
(
tvMap
,
11
,
1
));
analysisSales
.
setSegment15
(
getSegmentAmount
(
tvMap
,
12
,
1
));
analysisSales
.
setSegment15
(
getSegmentAmount
(
tvMap
,
27
,
1
));
}
}
}
...
...
@@ -339,9 +418,9 @@ public class AnalysisJobServiceImpl extends BaseService {
* @return
* @author Gary J Li
*/
public
void
analysisTaxReturnEnd
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
public
void
analysisTaxReturnEnd
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
List
<
String
>
orgIds
=
orgs
.
stream
().
map
(
Organization:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
AnalysisTaxReturnEndExample
example
=
new
AnalysisTaxReturnEndExample
();
example
.
createCriteria
().
andOrganizationIdIn
(
orgIds
).
andPeriodEqualTo
(
period
);
analysisTaxReturnEndMapper
.
deleteByExample
(
example
);
...
...
@@ -370,7 +449,7 @@ public class AnalysisJobServiceImpl extends BaseService {
private
void
generalAnaysisReturnTaxEnd
(
Organization
org
,
List
<
AnalysisTax
>
orgATList
,
List
<
AnalysisActualTaxReturn
>
aatrs
)
{
BigDecimal
selfTax
=
new
BigDecimal
(
0
);
if
(
null
!=
orgATList
)
{
if
(
null
!=
orgATList
)
{
for
(
AnalysisTax
at
:
orgATList
)
{
if
(
"员工个税"
.
equals
(
at
.
getTaxGroup
())
||
"司机个税"
.
equals
(
at
.
getTaxGroup
()))
{
selfTax
.
add
(
at
.
getTaxAmount
());
...
...
@@ -380,11 +459,11 @@ public class AnalysisJobServiceImpl extends BaseService {
taxReturnEnd
.
setOrganizationId
(
org
.
getId
());
taxReturnEnd
.
setCompanyName
(
at
.
getCompanyName
());
taxReturnEnd
.
setPeriod
(
at
.
getPeriod
());
taxReturnEnd
.
setSeqNo
(
org
.
getCode
()
+
""
+
at
.
getPeriod
());
taxReturnEnd
.
setSeqNo
(
at
.
getSeqNo
());
taxReturnEnd
.
setTaxGroup
(
at
.
getTaxGroup
());
BigDecimal
taxAmount
=
at
.
getTaxAmount
();
// 该机构返还税信息不空时进行计算
if
(
null
!=
aatrs
)
{
if
(
null
!=
aatrs
)
{
if
(
"城建税"
.
equals
(
at
.
getTaxGroup
()))
{
String
returnTaxName
=
"城建税返还"
;
for
(
AnalysisActualTaxReturn
attr
:
aatrs
)
{
...
...
@@ -437,15 +516,15 @@ public class AnalysisJobServiceImpl extends BaseService {
selfTaxReturnEnd
.
setOrganizationId
(
org
.
getId
());
selfTaxReturnEnd
.
setCompanyName
(
orgATList
.
get
(
0
).
getCompanyName
());
selfTaxReturnEnd
.
setPeriod
(
orgATList
.
get
(
0
).
getPeriod
());
selfTaxReturnEnd
.
setSeqNo
(
org
.
getCode
()
+
""
+
orgATList
.
get
(
0
).
getPeriod
());
selfTaxReturnEnd
.
setSeqNo
(
org
ATList
.
get
(
0
).
getSeqNo
());
selfTaxReturnEnd
.
setTaxGroup
(
orgATList
.
get
(
0
).
getTaxGroup
());
BigDecimal
taxAmount
=
selfTax
.
subtract
(
selfTaxReturn
);
selfTaxReturnEnd
.
setTaxAmount
(
taxAmount
);
analysisTaxReturnEndMapper
.
insertSelective
(
selfTaxReturnEnd
);
}
}
/**
* 19/03/2019 15:57
* analysis_tax 与 organization_return_rate 计算预期返还税额
...
...
@@ -454,10 +533,10 @@ public class AnalysisJobServiceImpl extends BaseService {
* @return
* @author Gary J Li
*/
public
void
analysisExpectedTax
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
public
void
analysisExpectedTax
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
List
<
String
>
orgIds
=
orgs
.
stream
().
map
(
Organization:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
AnalysisExpectedTaxReturnExample
example
=
new
AnalysisExpectedTaxReturnExample
();
example
.
createCriteria
().
andOrganizationIdIn
(
orgIds
).
andPeriodEqualTo
(
period
);
analysisExpectedTaxReturnMapper
.
deleteByExample
(
example
);
...
...
@@ -509,9 +588,9 @@ public class AnalysisJobServiceImpl extends BaseService {
* @return
* @author Gary J Li
*/
public
void
analysisFee
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
public
void
analysisFee
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
List
<
String
>
orgIds
=
orgs
.
stream
().
map
(
Organization:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
AnalysisFeeExample
example
=
new
AnalysisFeeExample
();
example
.
createCriteria
().
andOrganizationIdIn
(
orgIds
).
andPeriodEqualTo
(
period
);
analysisFeeMapper
.
deleteByExample
(
example
);
...
...
@@ -531,7 +610,7 @@ public class AnalysisJobServiceImpl extends BaseService {
af
.
setId
(
idService
.
nextId
());
Organization
org
=
orgMap
.
get
(
k
);
String
subjectCode
=
tb
.
getSegment3
();
af
.
setSeqNo
(
org
.
getCode
()
+
""
+
period
);
af
.
setSeqNo
(
getSeqNoByPeriod
(
tb
.
getOrganizationId
(),
period
)
);
af
.
setSubject
(
subjectCode
);
af
.
setFeeClassification1
(
tb
.
getAcctName1
());
af
.
setFeeClassification2
(
tb
.
getAcctName2
());
...
...
@@ -562,9 +641,9 @@ public class AnalysisJobServiceImpl extends BaseService {
* @return
* @author Gary J Li
*/
public
void
analysisFileManagement
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
public
void
analysisFileManagement
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
List
<
String
>
orgIds
=
orgs
.
stream
().
map
(
Organization:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
AnalysisFileManagementExample
example
=
new
AnalysisFileManagementExample
();
example
.
createCriteria
().
andOrganizationIdIn
(
orgIds
).
andPeriodEqualTo
(
period
);
analysisFileManagementMapper
.
deleteByExample
(
example
);
...
...
@@ -580,20 +659,20 @@ public class AnalysisJobServiceImpl extends BaseService {
Map
<
String
,
List
<
OrganizationTaxRule
>>
ruleMap
=
taxRules
.
stream
().
collect
(
Collectors
.
groupingBy
(
OrganizationTaxRule:
:
getGroupName
));
for
(
TaxDocument
td
:
taxDocuments
)
{
for
(
TaxDocument
td
:
taxDocuments
)
{
Organization
o
=
orgMap
.
get
(
td
.
getCompanyId
());
AnalysisFileManagement
afm
=
new
AnalysisFileManagement
();
afm
.
setId
(
idService
.
nextId
());
afm
.
setSeqNo
(
o
.
getCode
()
+
""
+
period
);
afm
.
setSeqNo
(
getSeqNoByPeriod
(
o
.
getId
(),
period
)
);
afm
.
setFileType
(
td
.
getFileType
());
// 周期性上传 校验当年的当前及之前的周期是否有上传文件
if
(
StringUtils
.
isNotEmpty
(
td
.
getTaxType
())
&&
null
!=
td
.
getOwnTime
())
{
List
<
OrganizationTaxRule
>
otrs
=
ruleMap
.
get
(
td
.
getTaxType
());
Optional
<
OrganizationTaxRule
>
otrOP
=
otrs
.
stream
().
filter
(
otr
->
otr
.
getGroupName
().
equals
(
td
.
getTaxType
())).
map
(
OrganizationTaxRule:
:
getUpdateTime
).
max
(
new
ComparatorDate
());
Optional
<
OrganizationTaxRule
>
otrOP
=
otrs
.
stream
().
filter
(
otr
->
otr
.
getGroupName
().
equals
(
td
.
getTaxType
())).
map
(
OrganizationTaxRule:
:
getUpdateTime
).
max
(
new
ComparatorDate
());
OrganizationTaxRule
rule
=
otrOP
.
get
();
if
(
null
==
rule
)
{
if
(
null
==
rule
)
{
break
;
}
...
...
@@ -619,7 +698,7 @@ public class AnalysisJobServiceImpl extends BaseService {
archivingStatus
=
taxDocumentMapper
.
countByExample
(
example
)
>
0
?
"已归档"
:
archivingStatus
;
}
afm
.
setArchivingStatus
(
archivingStatus
);
}
else
{
}
else
{
afm
.
setReportingFrequency
(
"/"
);
// 由于是根据文档列表查询 必然已归档
afm
.
setArchivingStatus
(
"已归档"
);
...
...
@@ -631,6 +710,72 @@ public class AnalysisJobServiceImpl extends BaseService {
}
}
public
void
analysisTax
(
List
<
Organization
>
orgs
,
Integer
period
,
Integer
type
)
{
List
<
String
>
orgIds
=
orgs
.
stream
().
map
(
Organization:
:
getId
).
collect
(
Collectors
.
toList
());
if
(
type
.
equals
(
EnumTbImportType
.
CoverImport
.
getCode
()))
{
AnalysisTaxExample
example
=
new
AnalysisTaxExample
();
example
.
createCriteria
().
andOrganizationIdIn
(
orgIds
).
andPeriodEqualTo
(
period
).
andTaxGroupNotEqualTo
(
"企业所得税"
)
.
andTaxGroupNotEqualTo
(
"员工个税"
)
.
andTaxGroupNotEqualTo
(
"印花税"
)
.
andTaxGroupNotEqualTo
(
"司机个税"
)
.
andTaxGroupNotEqualTo
(
"返还后增值税"
)
.
andTaxGroupNotEqualTo
(
"返还后个人所得税"
)
.
andTaxGroupNotEqualTo
(
"员工个税"
);
analysisTaxMapper
.
deleteByExample
(
example
);
}
List
<
ProjectAnaylsisDto
>
vatDtos
=
projectMapper
.
getTemlateWithServiceType
(
orgIds
,
period
/
100
,
period
%
100
,
"增值税纳税申报表"
);
Map
<
String
,
Organization
>
orgMap
=
orgs
.
stream
().
collect
(
Collectors
.
toMap
(
Organization:
:
getId
,
Function
.
identity
()));
vatDtos
.
forEach
(
vatDto
->
{
Organization
o
=
orgMap
.
get
(
vatDto
.
getOrgId
());
try
{
AnalysisTax
as
=
new
AnalysisTax
();
as
.
setId
(
idService
.
nextId
());
as
.
setTaxGroup
(
"增值税"
);
as
.
setSeqNo
(
getSeqNoByPeriod
(
vatDto
.
getOrgId
(),
period
));
List
<
AnalysisSalesValueDto
>
values
=
periodCellDataMapper
.
selectAnalysisSalesValueDto
(
vatDto
.
getReportId
(),
vatDto
.
getProjectId
());
Map
<
String
,
String
>
vMap
=
new
HashMap
<>();
values
.
forEach
(
v
->
{
vMap
.
put
(
v
.
getRowIndex
()
+
":"
+
v
.
getColumnIndex
(),
v
.
getData
());
});
BigDecimal
zzse
=
getSegmentAmount
(
vMap
,
42
,
35
).
add
(
getSegmentAmount
(
vMap
,
42
,
18
));
analysisTaxMapper
.
insertSelective
(
as
);
}
catch
(
Exception
e
)
{
logger
.
error
(
String
.
format
(
"公司:[%s]生成应缴税额表分析数据失败!"
,
o
.
getName
()),
e
);
}
});
//企业所得税
List
<
ProjectAnaylsisDto
>
qysdsDto
=
projectMapper
.
getTemlateWithServiceType
(
orgIds
,
period
/
100
,
period
%
100
,
"企业所得税纳税申报表"
);
qysdsDto
.
forEach
(
qd
->
{
Organization
o
=
orgMap
.
get
(
qd
.
getOrgId
());
try
{
AnalysisTax
as
=
new
AnalysisTax
();
as
.
setId
(
idService
.
nextId
());
as
.
setTaxGroup
(
"企业所得税"
);
as
.
setSeqNo
(
getSeqNoByPeriod
(
qd
.
getOrgId
(),
period
));
List
<
AnalysisSalesValueDto
>
values
=
periodCellDataMapper
.
selectAnalysisSalesValueDto
(
qd
.
getReportId
(),
qd
.
getProjectId
());
Map
<
String
,
String
>
vMap
=
new
HashMap
<>();
values
.
forEach
(
v
->
{
vMap
.
put
(
v
.
getRowIndex
()
+
":"
+
v
.
getColumnIndex
(),
v
.
getData
());
});
BigDecimal
zzse
=
getSegmentAmount
(
vMap
,
42
,
35
).
add
(
getSegmentAmount
(
vMap
,
42
,
18
));
analysisTaxMapper
.
insertSelective
(
as
);
}
catch
(
Exception
e
)
{
logger
.
error
(
String
.
format
(
"公司:[%s]生成应缴税额表分析数据失败!"
,
o
.
getName
()),
e
);
}
});
}
public
class
ComparatorDate
implements
Comparator
{
public
static
final
String
TAG
=
"ComparatorDate"
;
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/AnalysisServiceImpl.java
View file @
e3a1ae3f
...
...
@@ -285,7 +285,7 @@ public class AnalysisServiceImpl extends BaseService {
AnalysisTax
model
=
new
AnalysisTax
();
model
.
setId
(
idService
.
nextId
());
model
.
setOrganizationId
(
org
.
getId
());
model
.
setSeqNo
(
org
.
getCode
()+
""
+
period
);
model
.
setSeqNo
(
getSeqNoByPeriod
(
org
.
getId
(),
period
)
);
model
.
setPeriod
(
period
);
model
.
setCompanyName
(
org
.
getName
());
model
.
setTaxGroup
(
getCellStringValue
(
sheet
.
getRow
(
0
).
getCell
(
k
)));
...
...
@@ -293,6 +293,16 @@ public class AnalysisServiceImpl extends BaseService {
return
model
;
}
public
String
getSeqNoByPeriod
(
String
orgId
,
Integer
period
){
AnalysisMasterExample
analysisMasterExample
=
new
AnalysisMasterExample
();
analysisMasterExample
.
createCriteria
().
andPeriodEqualTo
(
period
).
andOrganizationIdEqualTo
(
orgId
);
List
<
AnalysisMaster
>
analysisMasters
=
analysisMasterMapper
.
selectByExample
(
analysisMasterExample
);
if
(
analysisMasters
.
size
()
!=
0
)
return
analysisMasters
.
get
(
0
).
getSeqNo
();
return
null
;
}
private
void
importAnalysisReturnTaxExcelFile
(
MultipartFile
file
,
String
periodDate
)
{
try
{
InputStream
inputStream
=
file
.
getInputStream
();
...
...
@@ -346,7 +356,7 @@ public class AnalysisServiceImpl extends BaseService {
AnalysisActualTaxReturn
model
=
new
AnalysisActualTaxReturn
();
model
.
setId
(
idService
.
nextId
());
model
.
setOrganizationId
(
org
.
getId
());
model
.
setSeqNo
(
org
.
getCode
()+
""
+
period
);
model
.
setSeqNo
(
getSeqNoByPeriod
(
org
.
getId
(),
period
)
);
model
.
setPeriod
(
period
);
model
.
setCompanyName
(
org
.
getName
());
model
.
setTaxReturnGroup
(
getCellStringValue
(
sheet
.
getRow
(
0
).
getCell
(
k
)));
...
...
@@ -381,6 +391,10 @@ public class AnalysisServiceImpl extends BaseService {
model
.
setInternAmount
(
getCellBigDecimalValue
(
sheet
.
getRow
(
j
).
getCell
(
2
)));
model
.
setVendorAmount
(
getCellBigDecimalValue
(
sheet
.
getRow
(
j
).
getCell
(
3
)));
model
.
setTotalAmount
(
getCellBigDecimalValue
(
sheet
.
getRow
(
j
).
getCell
(
4
)));
//通过公司名称查询orgId
OrganizationExample
example
=
new
OrganizationExample
();
example
.
createCriteria
().
andNameEqualTo
(
getCellStringValue
(
sheet
.
getRow
(
j
).
getCell
(
0
)));
model
.
setSeqNo
(
getSeqNoByPeriod
(
organizationMapper
.
selectByExample
(
example
).
get
(
0
).
getId
(),
Integer
.
parseInt
(
periodDate
)));
lists
.
add
(
model
);
}
AnalysisEmployeeNumExample
example
=
new
AnalysisEmployeeNumExample
();
...
...
@@ -487,7 +501,6 @@ public class AnalysisServiceImpl extends BaseService {
throw
new
ServiceException
(
e
);
}
}
private
void
importAnalysisInterTaxDataExcelFile
(
MultipartFile
file
,
String
periodDate
,
String
companyName
,
String
country
)
{
try
{
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/TaxDocumentServiceImpl.java
View file @
e3a1ae3f
...
...
@@ -64,19 +64,19 @@ public class TaxDocumentServiceImpl {
private
OrganizationServiceImpl
organizationService
;
public
List
<
TaxDocument
>
selectTaxDocumentList
(
TaxDocumentDto
taxDocumentDto
,
List
<
String
>
orgIds
)
{
public
List
<
TaxDocument
>
selectTaxDocumentList
(
TaxDocumentDto
taxDocumentDto
,
List
<
String
>
orgIds
)
{
List
<
TaxDocument
>
dataList
=
taxDocumentMapper
.
selectByExample
(
getExample
(
taxDocumentDto
,
orgIds
));
List
<
TaxDocument
>
dataList
=
taxDocumentMapper
.
selectByExample
(
getExample
(
taxDocumentDto
,
orgIds
));
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
()))
{
Map
<
String
,
String
>
urlMap
=
null
;
if
(
CollectionUtils
.
isNotEmpty
(
uploadDetail
.
getList
()))
{
urlMap
=
uploadDetail
.
getList
().
stream
().
collect
(
Collectors
.
toMap
(
DidiFileUploadDetailResult:
:
getUid
,
didiFileUploadDetailResult
->
didiFileUploadDetailResult
.
getViewHttpUrl
()));
}
if
(
urlMap
!=
null
)
{
for
(
TaxDocument
data:
dataList
)
{
if
(
urlMap
!=
null
)
{
for
(
TaxDocument
data
:
dataList
)
{
data
.
setFilePositionUrl
(
urlMap
.
get
(
data
.
getFileUploadId
()));
}
}
...
...
@@ -92,7 +92,7 @@ public class TaxDocumentServiceImpl {
* @param taxDocumentDto
* @return
*/
private
TaxDocumentExample
getExample
(
TaxDocumentDto
taxDocumentDto
,
List
<
String
>
orgIds
)
{
private
TaxDocumentExample
getExample
(
TaxDocumentDto
taxDocumentDto
,
List
<
String
>
orgIds
)
{
TaxDocumentExample
example
=
new
TaxDocumentExample
();
TaxDocumentExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andCompanyIdIn
(
orgIds
);
...
...
@@ -172,6 +172,10 @@ public class TaxDocumentServiceImpl {
if
(
StringUtils
.
isNotBlank
(
taxDocumentDto
.
getCreator
()))
{
criteria
.
andCreatorLike
(
"%"
+
taxDocumentDto
.
getCreator
()
+
"%"
);
}
//ids
if
(
null
!=
taxDocumentDto
.
getIds
()
&&
taxDocumentDto
.
getIds
().
size
()
>
0
)
{
criteria
.
andIdIn
(
taxDocumentDto
.
getIds
());
}
//设置查询可用的数据
criteria
.
andEnableEqualTo
(
"T"
);
example
.
setOrderByClause
(
"create_time DESC"
);
...
...
@@ -182,27 +186,27 @@ public class TaxDocumentServiceImpl {
public
synchronized
boolean
addTaxDocumentList
(
MultipartFile
file
,
TaxDocument
taxDocument
)
{
try
{
//上传文件
if
(
StringUtils
.
isBlank
(
taxDocument
.
getFileUploadId
()))
{
if
(
StringUtils
.
isBlank
(
taxDocument
.
getFileUploadId
()))
{
if
(
ReportFileUploadEnum
.
ReportType
.
MAPPING
.
containsKey
(
taxDocument
.
getFileType
()))
{
if
(
ReportFileUploadEnum
.
ReportType
.
MAPPING
.
containsKey
(
taxDocument
.
getFileType
()))
{
//重新命名
String
fileName
=
taxDocument
.
getCompanyName
()
+
"_"
+
taxDocument
.
getFileType
()+
"_"
+
taxDocument
.
getOwnTime
();
fileName
+=
file
.
getOriginalFilename
().
substring
(
file
.
getOriginalFilename
().
lastIndexOf
(
"."
));
FileUpload
fileUpload
=
didiFileUploadService
.
uploadFile
(
file
,
fileName
,
FileUploadEnum
.
BizSource
.
RECORD_UPLOAD
.
name
());
String
fileName
=
taxDocument
.
getCompanyName
()
+
"_"
+
taxDocument
.
getFileType
()
+
"_"
+
taxDocument
.
getOwnTime
();
fileName
+=
file
.
getOriginalFilename
().
substring
(
file
.
getOriginalFilename
().
lastIndexOf
(
"."
));
FileUpload
fileUpload
=
didiFileUploadService
.
uploadFile
(
file
,
fileName
,
FileUploadEnum
.
BizSource
.
RECORD_UPLOAD
.
name
());
taxDocument
.
setFileUploadId
(
fileUpload
.
getUid
());
taxDocument
.
setFilePositionUrl
(
fileUpload
.
getViewHttpUrl
());
taxDocument
.
setFileName
(
fileName
);
ReportFileUpload
reportFileUpload
=
new
ReportFileUpload
();
reportFileUpload
.
setOrgId
(
taxDocument
.
getCompanyId
());
reportFileUpload
.
setSourceType
(
ReportFileUploadEnum
.
SuorceType
.
RECORD
.
name
());
String
period
=
String
.
valueOf
(
taxDocument
.
getOwnTime
()).
substring
(
0
,
6
);
String
period
=
String
.
valueOf
(
taxDocument
.
getOwnTime
()).
substring
(
0
,
6
);
reportFileUpload
.
setPeriod
(
Integer
.
valueOf
(
period
));
reportFileUpload
.
setFileUploadId
(
fileUpload
.
getUid
());
reportFileUpload
.
setReportType
(
taxDocument
.
getFileType
());
reportFileUpload
.
setReportFileName
(
fileName
);
reportFileUploadService
.
saveData
(
file
,
reportFileUpload
);
}
else
{
FileUpload
fileUpload
=
didiFileUploadService
.
uploadFile
(
file
,
file
.
getOriginalFilename
(),
FileUploadEnum
.
BizSource
.
RECORD_UPLOAD
.
name
());
reportFileUploadService
.
saveData
(
file
,
reportFileUpload
);
}
else
{
FileUpload
fileUpload
=
didiFileUploadService
.
uploadFile
(
file
,
file
.
getOriginalFilename
(),
FileUploadEnum
.
BizSource
.
RECORD_UPLOAD
.
name
());
taxDocument
.
setFileUploadId
(
fileUpload
.
getUid
());
taxDocument
.
setFilePositionUrl
(
fileUpload
.
getViewHttpUrl
());
}
...
...
@@ -275,6 +279,7 @@ public class TaxDocumentServiceImpl {
if
(
null
==
ids
||
ids
.
size
()
<
1
)
{
return
false
;
}
//逻辑批量删除(批量修改)
int
num
=
taxDocumentMapper
.
batchDelete
(
ids
);
if
(
num
>
0
)
{
for
(
Long
id
:
ids
)
{
...
...
@@ -348,30 +353,77 @@ public class TaxDocumentServiceImpl {
public
TaxDocument
queryWhetherData
(
TaxDocument
taxDocument
)
{
try
{
//简单参数校验
/* if (StringUtils.isAnyBlank(taxDocumentDto.getFileAttr(), taxDocumentDto.getFileName(),
taxDocumentDto.getFileType(), taxDocumentDto.getCompanyName())){
return false;
}*/
TaxDocumentExample
taxDocumentExample
=
new
TaxDocumentExample
();
TaxDocumentExample
.
Criteria
criteria
=
taxDocumentExample
.
createCriteria
();
criteria
.
andFileAttrEqualTo
(
taxDocument
.
getFileAttr
());
criteria
.
andFileTypeEqualTo
(
taxDocument
.
getFileType
());
criteria
.
andFileNameEqualTo
(
taxDocument
.
getFileName
());
criteria
.
andCompanyNameEqualTo
(
taxDocument
.
getCompanyName
());
criteria
.
andEnableEqualTo
(
"T"
);
if
(
null
!=
taxDocument
.
getOwnTime
()){
//档案属性 fileAttr
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getFileAttr
()))
{
criteria
.
andFileAttrEqualTo
(
taxDocument
.
getFileAttr
());
}
//档案类型 fileType
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getFileType
()))
{
criteria
.
andFileTypeEqualTo
(
taxDocument
.
getFileType
());
}
//文件生效日期 fileTime
if
(
null
!=
taxDocument
.
getFileTime
())
{
criteria
.
andFileTimeEqualTo
(
taxDocument
.
getFileTime
());
}
//所属时间 ownTime
if
(
null
!=
taxDocument
.
getOwnTime
())
{
criteria
.
andOwnTimeEqualTo
(
taxDocument
.
getOwnTime
());
}
//档案名称 fileName
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getFileName
()))
{
criteria
.
andFileNameEqualTo
(
taxDocument
.
getFileName
());
}
//业务线 businessLine
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getBusinessLine
()))
{
criteria
.
andBusinessLineEqualTo
(
taxDocument
.
getBusinessLine
());
}
//公司名称 companyName
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getCompanyName
()))
{
criteria
.
andCompanyNameEqualTo
(
taxDocument
.
getCompanyName
());
}
//到期日 effectiveTime
if
(
null
!=
taxDocument
.
getEffectiveTime
())
{
criteria
.
andEffectiveTimeEqualTo
(
taxDocument
.
getEffectiveTime
());
}
//税种 taxType
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getTaxType
()))
{
criteria
.
andTaxTypeEqualTo
(
taxDocument
.
getTaxType
());
}
//实物索引号 physicalIndexNumber
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getPhysicalIndexNumber
()))
{
criteria
.
andPhysicalIndexNumberEqualTo
(
taxDocument
.
getPhysicalIndexNumber
());
}
//实物存放地点 storageArea
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getStorageArea
()))
{
criteria
.
andStorageAreaEqualTo
(
taxDocument
.
getStorageArea
());
}
//实物保管人 keeper
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getKeeper
()))
{
criteria
.
andKeeperEqualTo
(
taxDocument
.
getKeeper
());
}
//审批状态 auditStatus
if
(
null
!=
taxDocument
.
getAuditStatus
())
{
criteria
.
andAuditStatusEqualTo
(
taxDocument
.
getAuditStatus
());
}
//创建人 creator
if
(
StringUtils
.
isNotBlank
(
taxDocument
.
getCreator
()))
{
criteria
.
andCreatorEqualTo
(
taxDocument
.
getCreator
());
}
//设置查询可用的数据
criteria
.
andEnableEqualTo
(
"T"
);
List
<
TaxDocument
>
taxDocuments
=
taxDocumentMapper
.
selectByExample
(
taxDocumentExample
);
if
(
null
!=
taxDocuments
&&
taxDocuments
.
size
()
>
0
)
{
return
taxDocuments
.
get
(
0
);
}
return
new
TaxDocument
();
}
catch
(
Exception
e
)
{
//
log.error("TaxDocumentServiceImpl queryWhetherData error :" + e.getMessage());
log
.
error
(
"TaxDocumentServiceImpl queryWhetherData error :"
+
e
.
getMessage
());
return
new
TaxDocument
();
}
}
public
void
downloadAllFile
(
HttpServletResponse
response
,
List
<
Long
>
ids
)
{
//如果只选择了一个附件,则不打包
if
(
null
!=
ids
&&
ids
.
size
()
==
1
)
{
...
...
@@ -522,7 +574,7 @@ public class TaxDocumentServiceImpl {
// }
//检查文件名是否有重复
int
fileNameRepeatTimes
=
0
;
if
(
fileNameList
.
size
()
>
0
)
{
if
(
fileNameList
.
size
()
>
0
)
{
fileNameRepeatTimes
=
Collections
.
frequency
(
fileNameList
,
item
.
getFileName
());
}
String
fileName
;
...
...
@@ -597,8 +649,9 @@ public class TaxDocumentServiceImpl {
}
}
public
Map
<
String
,
Object
>
multipalInitData
(
String
address
)
{
if
(
StringUtils
.
isBlank
(
address
)){
public
Map
<
String
,
Object
>
multipalInitData
(
String
address
)
{
if
(
StringUtils
.
isBlank
(
address
))
{
throw
new
RuntimeException
(
"地址格式错误"
);
}
Map
<
String
,
Object
>
resultMap
=
Maps
.
newHashMap
();
...
...
@@ -607,49 +660,77 @@ public class TaxDocumentServiceImpl {
ArrayList
<
String
>
successFileNameList
=
Lists
.
newArrayList
();
ArrayList
<
String
>
existedFileNameList
=
Lists
.
newArrayList
();
//读取固定文件目录下的所有文件的文件名
File
file
=
new
File
(
address
);
if
(!
file
.
isDirectory
()
||
!
file
.
exists
())
{
File
iniT
file
=
new
File
(
address
);
if
(!
iniTfile
.
isDirectory
()
||
!
iniTfile
.
exists
())
{
throw
new
RuntimeException
(
"文件夹地址错误"
);
}
List
<
File
>
files
=
Arrays
.
asList
(
file
.
listFiles
());
if
(
files
.
size
()
<
1
)
{
List
<
File
>
files
=
Arrays
.
asList
(
iniT
file
.
listFiles
());
if
(
files
.
size
()
<
1
)
{
throw
new
RuntimeException
(
"文件列表为空"
);
}
List
<
String
>
fileNames
=
files
.
stream
().
filter
(
e
->
e
.
isFile
()).
map
(
File:
:
getName
).
collect
(
Collectors
.
toList
());
/*
List<String> fileNames = files.stream().filter(e -> e.isFile()).map(File::getName).collect(Collectors.toList());
if (fileNames.size()<1){
throw new RuntimeException("文件列表为空");
}
}
*/
//公司名简称和公司序号Map(name-id)
Map
<
String
,
String
>
companyNameAndId
;
try
{
companyNameAndId
=
organizationService
.
findAllOrganizations
().
stream
().
collect
(
Collectors
.
toMap
(
Organization:
:
getAbbreviation
,
Organization:
:
getId
));
companyNameAndId
=
organizationService
.
findAllOrganizations
().
stream
().
collect
(
Collectors
.
toMap
(
Organization:
:
getAbbreviation
,
Organization:
:
getId
,
(
value1
,
value2
)
->
{
return
value2
;
}));
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"公司简称和id获取失败!请联系管理员"
);
}
if
(
companyNameAndId
.
size
()
<
1
)
{
throw
new
RuntimeException
(
"公司名称列表无数据!"
);
}
fileNames
.
forEach
(
fileName
->
{
//递归处理
recursiveSolveFile
(
errorFileNameList
,
successFileNameList
,
existedFileNameList
,
files
,
companyNameAndId
);
//返回成功列表和失败列表
resultMap
.
put
(
"successFileNameList"
,
successFileNameList
);
resultMap
.
put
(
"errorFileNameList"
,
errorFileNameList
);
resultMap
.
put
(
"existedFileNameList"
,
existedFileNameList
);
return
resultMap
;
}
/**
* 递归循环文件夹 处理
*
* @param errorFileNameList
* @param successFileNameList
* @param existedFileNameList
* @param files
* @param companyNameAndId
*/
private
void
recursiveSolveFile
(
ArrayList
<
String
>
errorFileNameList
,
ArrayList
<
String
>
successFileNameList
,
ArrayList
<
String
>
existedFileNameList
,
List
<
File
>
files
,
Map
<
String
,
String
>
companyNameAndId
)
{
files
.
forEach
(
file
->
{
if
(
file
.
isDirectory
())
{
recursiveSolveFile
(
errorFileNameList
,
successFileNameList
,
existedFileNameList
,
Arrays
.
asList
(
file
.
listFiles
()),
companyNameAndId
);
return
;
}
String
fileName
=
file
.
getName
();
//文件名/
String
filePath
=
file
.
getPath
();
//文件路径
//文件名校验 如果文件名中不包含_则不符合规则,添加到错误列表中
if
(!
fileName
.
contains
(
"_"
))
{
errorFileNameList
.
add
(
file
Name
);
errorFileNameList
.
add
(
file
Path
);
return
;
//此处相当于continue
}
//根据文件名格式分割,以 "_"来分割
List
<
String
>
params
=
Arrays
.
asList
(
fileName
.
substring
(
0
,
fileName
.
indexOf
(
"."
)).
split
(
"_"
));
//根据分割的长度来进行匹配对比 如果长度<3或者>6或公司简称匹配不上则添加至失败列表(目前最少的是3个,若以后有更改请更改此处参数)
if
(
params
.
size
()
<
3
||
params
.
size
()
>
6
||
!
companyNameAndId
.
containsKey
(
params
.
get
(
0
)))
{
errorFileNameList
.
add
(
fileName
);
try
{
List
<
String
>
params
=
Arrays
.
asList
(
fileName
.
substring
(
0
,
fileName
.
indexOf
(
"."
)).
split
(
"_"
));
//根据分割的长度来进行匹配对比 如果长度<3或者>6或公司简称匹配不上则添加至失败列表(目前最少的是3个,若以后有更改请更改此处参数)
if
(
params
.
size
()
<
3
||
params
.
size
()
>
6
||
!
companyNameAndId
.
containsKey
(
params
.
get
(
0
)))
{
errorFileNameList
.
add
(
filePath
);
return
;
//此处相当于continue
}
//根据档案类型匹配并初始化值
matchFileTypeToInitData
(
errorFileNameList
,
successFileNameList
,
existedFileNameList
,
companyNameAndId
,
file
,
params
,
filePath
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
errorFileNameList
.
add
(
filePath
);
return
;
//此处相当于continue
}
//根据档案类型匹配并初始化值
matchFileTypeToInitData
(
errorFileNameList
,
successFileNameList
,
existedFileNameList
,
companyNameAndId
,
fileName
,
params
);
});
//返回成功列表和失败列表
resultMap
.
put
(
"successFileNameList"
,
successFileNameList
);
resultMap
.
put
(
"errorFileNameList"
,
errorFileNameList
);
resultMap
.
put
(
"existedFileNameList"
,
existedFileNameList
);
return
resultMap
;
}
//初始化税种列表(后续可做成从数据库中拿)
...
...
@@ -857,7 +938,7 @@ public class TaxDocumentServiceImpl {
*
* @return
*/
private
TaxDocument
buildBaseTaxDocument
(
Map
<
String
,
String
>
companyNameAndId
,
List
<
String
>
params
,
String
fileName
)
{
private
TaxDocument
buildBaseTaxDocument
(
Map
<
String
,
String
>
companyNameAndId
,
List
<
String
>
params
,
String
fileName
)
{
TaxDocument
taxDocument
=
new
TaxDocument
();
taxDocument
.
setFileName
(
fileName
);
taxDocument
.
setCompanyId
(
companyNameAndId
.
get
(
params
.
get
(
0
)));
...
...
@@ -878,13 +959,13 @@ public class TaxDocumentServiceImpl {
/**
* 根据档案类型匹配并初始化值
*
* @param errorFileNameList
* @param successeFileNameList
* @param companyNameAndId
* @param fileName
* @param params
*/
private
void
matchFileTypeToInitData
(
ArrayList
<
String
>
errorFileNameList
,
ArrayList
<
String
>
successeFileNameList
,
ArrayList
<
String
>
existedFileNameList
,
Map
<
String
,
String
>
companyNameAndId
,
String
fileName
,
List
<
String
>
params
)
{
private
void
matchFileTypeToInitData
(
ArrayList
<
String
>
errorFileNameList
,
ArrayList
<
String
>
successeFileNameList
,
ArrayList
<
String
>
existedFileNameList
,
Map
<
String
,
String
>
companyNameAndId
,
File
file
,
List
<
String
>
params
,
String
filePath
)
{
//长度为3(先验证是否国际类型并校验匹配,若是国际类型档案类型索引为2(国际类型第三个为档案类型),否则索引为1为档案类型
if
(
params
.
size
()
==
3
&&
(
//国际类型 公司簡稱_档案属性_档案类型
...
...
@@ -900,172 +981,107 @@ public class TaxDocumentServiceImpl {
(
internationalGroupOfCompanyFileAttrFileType4
.
keySet
().
contains
(
params
.
get
(
2
))
&&
internationalGroupOfCompanyFileAttrFileType4
.
values
().
contains
(
params
.
get
(
1
)))))
{
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案属性 档案类型
taxDocument
.
setFileAttr
(
params
.
get
(
1
));
taxDocument
.
setFileType
(
params
.
get
(
2
));
//校验是否已存在
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
()){
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
fileName
);
//TODO 或做覆盖操作
}
}
else
if
(
params
.
size
()
==
3
//公司簡稱_档案类型_文件生效日期
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
if
(
params
.
size
()
==
3
//公司簡稱_档案类型_文件生效日期
&&
groupOfCompanyFileTypeFIleTime
.
keySet
().
contains
(
params
.
get
(
1
))
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
2
))){
//文件生效日期校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
2
)))
{
//文件生效日期校验
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案属性 档案类型 文件生效日期
taxDocument
.
setFileType
(
params
.
get
(
1
));
taxDocument
.
setFileAttr
(
groupOfCompanyFileTypeFIleTime
.
get
(
params
.
get
(
1
)));
taxDocument
.
setFileTime
(
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
2
)));
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
()){
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
fileName
);
//TODO 或做覆盖操作
}
}
else
if
(
params
.
size
()
==
3
//公司簡稱_档案类型_到期日
//校验是否已存在
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
if
(
params
.
size
()
==
3
//公司簡稱_档案类型_到期日
&&
groupOfCompanyFileTypeEffectiveTime
.
keySet
().
contains
(
params
.
get
(
1
))
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
2
))){
//到期日校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
2
)))
{
//到期日校验
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案属性 档案类型 到期日
taxDocument
.
setFileType
(
params
.
get
(
1
));
taxDocument
.
setFileAttr
(
groupOfCompanyFileTypeEffectiveTime
.
get
(
params
.
get
(
1
)));
taxDocument
.
setEffectiveTime
(
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
2
)));
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
()){
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
fileName
);
//TODO 或做覆盖操作
}
}
else
if
(
params
.
size
()
==
4
//国际类型 公司簡稱_档案属性_档案类型_所属期间
//校验是否已存在
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
if
(
params
.
size
()
==
4
//国际类型 公司簡稱_档案属性_档案类型_所属期间
&&
(
internationalGroupOfCompanyFileAttrFileTypeOwnTime
.
keySet
().
contains
(
params
.
get
(
2
))
&&
internationalGroupOfCompanyFileAttrFileTypeOwnTime
.
values
().
contains
(
params
.
get
(
1
)))
&&
checkOwnTime
(
params
.
get
(
3
))){
//所属期间校验
&&
checkOwnTime
(
params
.
get
(
3
)))
{
//所属期间校验
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案属性 档案类型 所属期间
taxDocument
.
setFileAttr
(
params
.
get
(
1
));
taxDocument
.
setFileType
(
params
.
get
(
2
));
taxDocument
.
setOwnTime
(
Integer
.
valueOf
(
params
.
get
(
3
)));
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
()){
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
fileName
);
//TODO 或做覆盖操作
}
}
else
if
(
params
.
size
()
==
4
//公司簡稱_档案类型_所属期间_文件生效日期
//校验是否已存在
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
if
(
params
.
size
()
==
4
//公司簡稱_档案类型_所属期间_文件生效日期
&&
groupOfCompanyFileTypeOwnTimeFileTime
.
keySet
().
contains
(
params
.
get
(
1
))
&&
checkOwnTime
(
params
.
get
(
2
))
//所属期间校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
))){
//文件生效日期校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
)))
{
//文件生效日期校验
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案类型 档案属性 所属期间 文件生效日期
taxDocument
.
setFileType
(
params
.
get
(
1
));
taxDocument
.
setFileAttr
(
groupOfCompanyFileTypeOwnTimeFileTime
.
get
(
params
.
get
(
1
)));
taxDocument
.
setOwnTime
(
Integer
.
valueOf
(
params
.
get
(
2
)));
taxDocument
.
setFileTime
(
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
)));
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
()){
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
fileName
);
//TODO 或做覆盖操作
}
}
else
if
(
params
.
size
()
==
4
//公司簡稱_档案类型_所属期间_到期日
//校验是否已存在
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
if
(
params
.
size
()
==
4
//公司簡稱_档案类型_所属期间_到期日
&&
groupOfCompanyFileTypeOwnTimeEffectiveTime
.
keySet
().
contains
(
params
.
get
(
1
))
&&
checkOwnTime
(
params
.
get
(
2
))
//所属期间校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
))){
//到期日校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
)))
{
//到期日校验
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案类型 档案属性 所属期间 到期日
taxDocument
.
setFileType
(
params
.
get
(
1
));
taxDocument
.
setFileAttr
(
groupOfCompanyFileTypeOwnTimeEffectiveTime
.
get
(
params
.
get
(
1
)));
taxDocument
.
setOwnTime
(
Integer
.
valueOf
(
params
.
get
(
2
)));
taxDocument
.
setEffectiveTime
(
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
)));
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
()){
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
fileName
);
//TODO 或做覆盖操作
}
}
else
if
(
params
.
size
()
==
5
//国际类型 公司簡稱_档案属性_档案类型_税种_所属期间
//校验是否已存在
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
if
(
params
.
size
()
==
5
//国际类型 公司簡稱_档案属性_档案类型_税种_所属期间
&&
(
internationalGroupOfCompanyFileAttrFileTypeTaxTypeOwnTime
.
keySet
().
contains
(
params
.
get
(
2
))
&&
internationalGroupOfCompanyFileAttrFileTypeTaxTypeOwnTime
.
values
().
contains
(
params
.
get
(
1
)))
&&
taxsList
.
contains
(
params
.
get
(
3
))
//税种校验
&&
checkOwnTime
(
params
.
get
(
4
))){
//所属期间校验
&&
checkOwnTime
(
params
.
get
(
4
)))
{
//所属期间校验
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案属性 档案类型 税种 所属期间
taxDocument
.
setFileAttr
(
params
.
get
(
1
));
taxDocument
.
setFileType
(
params
.
get
(
2
));
taxDocument
.
setTaxType
(
params
.
get
(
3
));
taxDocument
.
setOwnTime
(
Integer
.
valueOf
(
params
.
get
(
4
)));
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
()){
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
fileName
);
//TODO 或做覆盖操作
}
}
else
if
(
params
.
size
()
==
5
//公司簡稱_档案类型_税种_所属期间_文件生效日期
//校验是否已存在
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
if
(
params
.
size
()
==
5
//公司簡稱_档案类型_税种_所属期间_文件生效日期
&&
groupOfCompanyFileTypeTaxTypeOwnTimeFileTime
.
keySet
().
contains
(
params
.
get
(
1
))
&&
taxsList
.
contains
(
params
.
get
(
2
))
//税种校验
&&
checkOwnTime
(
params
.
get
(
3
))
//所属期间校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
4
))){
//文件生效日期校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
4
)))
{
//文件生效日期校验
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案类型 档案属性 税种 所属期间 文件生效日期
taxDocument
.
setFileType
(
params
.
get
(
1
));
taxDocument
.
setFileAttr
(
groupOfCompanyFileTypeTaxTypeOwnTimeFileTime
.
get
(
params
.
get
(
1
)));
taxDocument
.
setTaxType
(
params
.
get
(
2
));
taxDocument
.
setOwnTime
(
Integer
.
valueOf
(
params
.
get
(
3
)));
taxDocument
.
setFileTime
(
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
4
)));
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
()){
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
fileName
);
//TODO 或做覆盖操作
}
}
else
if
(
params
.
size
()
==
6
//公司簡稱_档案类型_所属期间_文件生效日期_实物存放地点_实物保管人
//校验是否已存在
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
if
(
params
.
size
()
==
6
//公司簡稱_档案类型_所属期间_文件生效日期_实物存放地点_实物保管人
&&
groupOfCompanyFileTypeOwnTimeFileTimeStorageAreaKeeper
.
keySet
().
contains
(
params
.
get
(
1
))
&&
checkOwnTime
(
params
.
get
(
2
))
//所属期间校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
))){
//文件生效日期校验
&&
null
!=
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
)))
{
//文件生效日期校验
//构建基础对象 设置基础值 公司简称 Id 文件名
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
fileName
);
TaxDocument
taxDocument
=
buildBaseTaxDocument
(
companyNameAndId
,
params
,
file
.
getName
()
);
//设置档案类型 档案属性 所属期间 文件生效日期 实物存放地点 实物保管人
taxDocument
.
setFileType
(
params
.
get
(
1
));
taxDocument
.
setFileAttr
(
groupOfCompanyFileTypeOwnTimeFileTimeStorageAreaKeeper
.
get
(
params
.
get
(
1
)));
...
...
@@ -1073,15 +1089,53 @@ public class TaxDocumentServiceImpl {
taxDocument
.
setFileTime
(
DateUtils
.
stringToDate4yyyyMMdd
(
params
.
get
(
3
)));
taxDocument
.
setStorageArea
(
params
.
get
(
4
));
taxDocument
.
setKeeper
(
params
.
get
(
5
));
//校验是否已存在
checkExistedAndInsertOrUpdate
(
successeFileNameList
,
existedFileNameList
,
file
,
taxDocument
,
filePath
);
}
else
{
errorFileNameList
.
add
(
filePath
);
}
}
private
void
checkExistedAndInsertOrUpdate
(
ArrayList
<
String
>
successeFileNameList
,
ArrayList
<
String
>
existedFileNameList
,
File
file
,
TaxDocument
taxDocument
,
String
filePath
)
{
if
(
null
==
queryWhetherData
(
taxDocument
).
getId
())
{
//TODO 上传文件 并填充文件url 上传人等信息
FileInputStream
fis
=
null
;
ByteArrayOutputStream
bos
=
null
;
try
{
fis
=
new
FileInputStream
(
file
);
bos
=
new
ByteArrayOutputStream
(
1000
);
byte
[]
b
=
new
byte
[
1000
];
int
n
;
while
((
n
=
fis
.
read
(
b
))
!=
-
1
)
{
bos
.
write
(
b
,
0
,
n
);
}
FileUpload
fileUpload
=
didiFileUploadService
.
uploadFile
(
bos
.
toByteArray
(),
file
.
getName
(),
FileUploadEnum
.
BizSource
.
RECORD_UPLOAD
.
name
());
taxDocument
.
setFileUploadId
(
fileUpload
.
getUid
());
taxDocument
.
setFilePositionUrl
(
fileUpload
.
getViewHttpUrl
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
fis
.
close
();
bos
.
close
();
}
catch
(
Exception
e
)
{
}
}
//插入数据
taxDocumentMapper
.
insert
(
taxDocument
);
//添加到成功列表中
successeFileNameList
.
add
(
fileName
);
}
else
{
errorFileNameList
.
add
(
fileName
);
successeFileNameList
.
add
(
filePath
);
}
else
{
//添加到已存在列表中
existedFileNameList
.
add
(
filePath
);
//TODO 或做覆盖操作
}
}
/**
* 检查所属期间转换是否正常
*
* @param s
* @return
*/
...
...
atms-api/src/main/java/pwc/taxtech/atms/vat/service/impl/ReportServiceImpl.java
View file @
e3a1ae3f
...
...
@@ -8,10 +8,8 @@ import com.google.common.collect.Lists;
import
com.google.common.collect.Sets
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.map.HashedMap
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.hssf.usermodel.HSSFCell
;
import
org.apache.poi.hssf.usermodel.HSSFCellStyle
;
import
org.apache.poi.openxml4j.exceptions.InvalidFormatException
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.xssf.usermodel.XSSFCell
;
...
...
@@ -26,7 +24,6 @@ import org.springframework.stereotype.Component;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartHttpServletRequest
;
import
pwc.taxtech.atms.analysis.entity.AnalysisTax
;
import
pwc.taxtech.atms.common.CommonUtils
;
import
pwc.taxtech.atms.common.POIUtil
;
import
pwc.taxtech.atms.common.message.ErrorMessage
;
...
...
@@ -61,7 +58,10 @@ import pwc.taxtech.atms.vat.service.impl.report.functions.FormulaHelper;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
...
...
@@ -71,7 +71,6 @@ import java.util.regex.Matcher;
import
java.util.regex.Pattern
;
import
java.util.stream.Collectors
;
import
static
pwc
.
taxtech
.
atms
.
common
.
util
.
FileExcelUtil
.
downloadExcel
;
import
static
pwc
.
taxtech
.
atms
.
dto
.
vatdto
.
WrapPeriodJobDto
.*;
@Component
...
...
@@ -352,17 +351,15 @@ public class ReportServiceImpl extends BaseService {
andStartDateLessThanOrEqualTo
(
queryDate
).
andEndDateGreaterThanOrEqualTo
(
queryDate
).
andStatusEqualTo
(
0
);
List
<
RevenueTypeMapping
>
mappingList
=
revenueTypeMappingMapper
.
selectByExample
(
mappingExample
);
//先清除数据
InvoiceRecord
delRecord
=
new
InvoiceRecord
();
delRecord
.
setRevenueCofId
(
null
);
if
(!
isMergeManualData
)
{
delRecord
.
setModifyRevenueCofId
(
null
);
}
InvoiceRecordExample
delExample
=
new
InvoiceRecordExample
();
delExample
.
createCriteria
().
andProjectIdEqualTo
(
projectId
)
.
andProjectIdEqualTo
(
projectId
).
delExample
.
createCriteria
().
andProjectIdEqualTo
(
projectId
).
andPeriodEqualTo
(
Integer
.
valueOf
(
queryDate
.
replace
(
"-"
,
""
)));
invoiceRecordMapper
.
deleteByExample
(
delExample
);
if
(
isMergeManualData
)
{
invoiceRecordMapper
.
clearRevenueCof
(
true
,
false
,
delExample
);
}
else
{
invoiceRecordMapper
.
clearRevenueCof
(
true
,
true
,
delExample
);
}
Map
<
String
,
Long
>
map
=
new
HashMap
<>();
for
(
RevenueTypeMapping
mapping
:
mappingList
)
{
if
(!
map
.
containsKey
(
mapping
.
getContent
()))
{
...
...
@@ -482,140 +479,78 @@ public class ReportServiceImpl extends BaseService {
for
(
int
r
=
sheet
.
getFirstRowNum
();
r
<=
sheet
.
getLastRowNum
();
r
++)
{
Row
row
=
sheet
.
getRow
(
r
);
for
(
int
c
=
row
.
getFirstCellNum
();
c
<=
row
.
getLastCellNum
();
c
++)
{
Cell
cell
=
row
.
getCell
(
c
);
if
(
cell
==
null
)
{
continue
;
//todo cell == null 如何处理
}
if
(
r
<=
addRowIndex
+
1
)
{
String
cellId
=
projectId
+
template
.
getId
()
+
period
+
r
+
c
;
if
((
r
-
1
)
>=
0
&&
(
r
-
1
)
<
configIds
.
size
())
{
cellId
+=
configIds
.
get
(
configIds
.
size
()
-
r
);
}
Long
cellTemplateId
=
Long
.
valueOf
(
cellId
.
hashCode
());
cellTemplateId
=
cellTemplateId
<
0
?
cellTemplateId
:
(
cellTemplateId
*
-
1
);
//更新手工数据源
PeriodDataSourceExample
delExample
=
new
PeriodDataSourceExample
();
delExample
.
createCriteria
().
andProjectIdEqualTo
(
projectId
)
.
andPeriodEqualTo
(
period
).
andTypeEqualTo
(
10
).
andColumnIndexEqualTo
(
c
).
andRowIndexEqualTo
(
r
);
PeriodDataSource
dataSource
=
new
DataSourceExtendDto
();
dataSource
.
setColumnIndex
(
999
);
dataSource
.
setRowIndex
(
999
);
periodDataSourceMapper
.
updateByExampleSelective
(
dataSource
,
delExample
);
PeriodDataSourceExample
updateExample
=
new
PeriodDataSourceExample
();
updateExample
.
createCriteria
().
andProjectIdEqualTo
(
projectId
)
.
andPeriodEqualTo
(
period
).
andTypeEqualTo
(
10
).
andCellTemplateIdEqualTo
(
cellTemplateId
);
dataSource
=
new
DataSourceExtendDto
();
dataSource
.
setColumnIndex
(
c
);
dataSource
.
setRowIndex
(
r
);
periodDataSourceMapper
.
updateByExampleSelective
(
dataSource
,
updateExample
);
PeriodCellTemplate
cellTemplate
=
new
PeriodCellTemplate
();
cellTemplate
.
setPeriod
(
period
);
cellTemplate
.
setRowName
(
POIUtil
.
getCellFormulaString
(
cell
));
cellTemplate
.
setProjectId
(
projectId
);
cellTemplate
.
setColumnIndex
(
c
);
cellTemplate
.
setCreateTime
(
now
);
cellTemplate
.
setCellTemplateId
(
cellTemplateId
);
cellTemplate
.
setUpdateTime
(
now
);
cellTemplate
.
setRowIndex
(
r
);
cellTemplate
.
setReportTemplateId
(
template
.
getId
());
cellTemplate
.
setId
(
distributedIdService
.
nextId
());
if
(
cell
.
getCellComment
()
!=
null
)
{
cellTemplate
.
setComment
(
cell
.
getCellComment
().
getString
().
getString
());
}
cellTemplate
.
setIsReadOnly
(
hasHandDatas
.
contains
(
c
)
?
0
:
1
);
cellTemplateList
.
add
(
cellTemplate
);
if
(
r
>
0
&&
hasFormulaDatas
.
contains
(
c
)
&&
StringUtils
.
isNotBlank
(
POIUtil
.
getCellFormulaString
(
cell
)))
{
PeriodCellTemplateConfig
periodCellTemplateConfig
=
new
PeriodCellTemplateConfig
();
periodCellTemplateConfig
.
setId
(
distributedIdService
.
nextId
());
periodCellTemplateConfig
.
setPeriod
(
period
);
periodCellTemplateConfig
.
setCellTemplateId
(
cellTemplateId
);
periodCellTemplateConfig
.
setReportTemplateId
(
template
.
getId
());
periodCellTemplateConfig
.
setDataSourceType
(
1
);
periodCellTemplateConfig
.
setFormula
(
POIUtil
.
getCellFormulaString
(
cell
));
periodCellTemplateConfig
.
setParsedFormula
(
null
);
if
(
r
==
addRowIndex
+
1
&&
c
>
TaxesCalculateReportEnum
.
Column
.
Column_14
.
getIndex
()){
assembleOriginalTemplateData
(
template
,
projectId
,
period
,
r
,
c
,
addRowIndex
,
cellTemplateList
,
cellTemplateConfigList
);
}
else
{
String
cellId
=
projectId
+
template
.
getId
()
+
period
+
r
+
c
;
if
((
r
-
1
)
>=
0
&&
(
r
-
1
)
<
configIds
.
size
())
{
cellId
+=
configIds
.
get
(
configIds
.
size
()
-
r
);
}
Long
cellTemplateId
=
Long
.
valueOf
(
cellId
.
hashCode
());
cellTemplateId
=
cellTemplateId
<
0
?
cellTemplateId
:
(
cellTemplateId
*
-
1
);
//更新手工数据源
PeriodDataSourceExample
delExample
=
new
PeriodDataSourceExample
();
delExample
.
createCriteria
().
andProjectIdEqualTo
(
projectId
)
.
andPeriodEqualTo
(
period
).
andTypeEqualTo
(
10
).
andColumnIndexEqualTo
(
c
).
andRowIndexEqualTo
(
r
);
PeriodDataSource
dataSource
=
new
DataSourceExtendDto
();
dataSource
.
setColumnIndex
(
999
);
dataSource
.
setRowIndex
(
999
);
periodDataSourceMapper
.
updateByExampleSelective
(
dataSource
,
delExample
);
PeriodDataSourceExample
updateExample
=
new
PeriodDataSourceExample
();
updateExample
.
createCriteria
().
andProjectIdEqualTo
(
projectId
)
.
andPeriodEqualTo
(
period
).
andTypeEqualTo
(
10
).
andCellTemplateIdEqualTo
(
cellTemplateId
);
dataSource
=
new
DataSourceExtendDto
();
dataSource
.
setColumnIndex
(
c
);
dataSource
.
setRowIndex
(
r
);
periodDataSourceMapper
.
updateByExampleSelective
(
dataSource
,
updateExample
);
PeriodCellTemplate
cellTemplate
=
new
PeriodCellTemplate
();
cellTemplate
.
setPeriod
(
period
);
cellTemplate
.
setRowName
(
POIUtil
.
getCellFormulaString
(
cell
));
cellTemplate
.
setProjectId
(
projectId
);
cellTemplate
.
setColumnIndex
(
c
);
cellTemplate
.
setCreateTime
(
now
);
cellTemplate
.
setCellTemplateId
(
cellTemplateId
);
cellTemplate
.
setUpdateTime
(
now
);
cellTemplate
.
setRowIndex
(
r
);
cellTemplate
.
setReportTemplateId
(
template
.
getId
());
cellTemplate
.
setId
(
distributedIdService
.
nextId
());
if
(
cell
.
getCellComment
()
!=
null
)
{
cellTemplate
.
setComment
(
cell
.
getCellComment
().
getString
().
getString
());
}
cellTemplate
.
setIsReadOnly
(
hasHandDatas
.
contains
(
c
)
?
0
:
1
);
cellTemplateList
.
add
(
cellTemplate
);
if
(
r
>
0
&&
hasFormulaDatas
.
contains
(
c
)
&&
StringUtils
.
isNotBlank
(
POIUtil
.
getCellFormulaString
(
cell
)))
{
PeriodCellTemplateConfig
periodCellTemplateConfig
=
new
PeriodCellTemplateConfig
();
periodCellTemplateConfig
.
setId
(
distributedIdService
.
nextId
());
periodCellTemplateConfig
.
setPeriod
(
period
);
periodCellTemplateConfig
.
setCellTemplateId
(
cellTemplateId
);
periodCellTemplateConfig
.
setReportTemplateId
(
template
.
getId
());
periodCellTemplateConfig
.
setDataSourceType
(
1
);
periodCellTemplateConfig
.
setFormula
(
POIUtil
.
getCellFormulaString
(
cell
));
periodCellTemplateConfig
.
setParsedFormula
(
null
);
// periodCellTemplateConfig.setCreateBy(authUserHelper.getCurrentUserId());
periodCellTemplateConfig
.
setCreateTime
(
now
);
periodCellTemplateConfig
.
setCreateTime
(
now
);
// periodCellTemplateConfig.setUpdateBy(authUserHelper.getCurrentUserId());
periodCellTemplateConfig
.
setUpdateTime
(
now
);
periodCellTemplateConfig
.
setFormulaDataSource
(
"报表数据"
);
periodCellTemplateConfig
.
setKeyValueParsedFormula
(
null
);
periodCellTemplateConfig
.
setProjectId
(
projectId
);
fixedParsedFormula
(
periodCellTemplateConfig
);
fixedAccountCode
(
periodCellTemplateConfig
);
cellTemplateConfigList
.
add
(
periodCellTemplateConfig
);
}
if
(
r
>
0
&&
r
<=
addRowIndex
&&
hasHandDatas
.
contains
(
c
))
{
addManualConfig
(
cellTemplate
,
cell
,
now
,
cellTemplateConfigList
);
}
}
else
{
//查询原来行cell是否有CellTemplate
CellTemplateExample
cellTemplateExample
=
new
CellTemplateExample
();
cellTemplateExample
.
createCriteria
().
andReportTemplateIdEqualTo
(
template
.
getId
()).
andRowIndexEqualTo
(
r
-
addRowIndex
).
andColumnIndexEqualTo
(
c
);
List
<
CellTemplate
>
cellTemplates
=
cellTemplateMapper
.
selectByExample
(
cellTemplateExample
);
if
(
CollectionUtils
.
isNotEmpty
(
cellTemplates
))
{
CellTemplate
cellTemplate
=
cellTemplates
.
get
(
0
);
PeriodCellTemplate
periodCellTemplate
=
new
PeriodCellTemplate
();
CommonUtils
.
copyProperties
(
cellTemplate
,
periodCellTemplate
);
periodCellTemplate
.
setId
(
distributedIdService
.
nextId
());
periodCellTemplate
.
setPeriod
(
period
);
periodCellTemplate
.
setReportTemplateId
(
template
.
getId
());
periodCellTemplate
.
setRowIndex
(
r
);
periodCellTemplate
.
setRowName
(
cellTemplate
.
getRowName
());
periodCellTemplate
.
setColumnIndex
(
c
);
periodCellTemplate
.
setColumnName
(
cellTemplate
.
getColumnName
());
periodCellTemplate
.
setComment
(
cellTemplate
.
getComment
());
periodCellTemplate
.
setCreateTime
(
cellTemplate
.
getCreateTime
());
periodCellTemplate
.
setUpdateTime
(
cellTemplate
.
getUpdateTime
());
periodCellTemplate
.
setCellTemplateId
(
cellTemplate
.
getId
());
periodCellTemplate
.
setDataType
(
cellTemplate
.
getDataType
());
periodCellTemplate
.
setIsReadOnly
(
cellTemplate
.
getIsReadOnly
()
?
1
:
0
);
periodCellTemplate
.
setCopyFromId
(
cellTemplate
.
getCopyFromId
());
periodCellTemplate
.
setCreateBy
(
StringUtils
.
isBlank
(
cellTemplate
.
getCreateBy
())
?
"admin"
:
cellTemplate
.
getCreateBy
());
periodCellTemplate
.
setUpdateBy
(
StringUtils
.
isBlank
(
cellTemplate
.
getUpdateBy
())
?
"admin"
:
cellTemplate
.
getUpdateBy
());
periodCellTemplate
.
setProjectId
(
projectId
);
cellTemplateList
.
add
(
periodCellTemplate
);
CellTemplateConfigExample
configExample
=
new
CellTemplateConfigExample
();
configExample
.
createCriteria
().
andCellTemplateIdEqualTo
(
cellTemplate
.
getId
());
List
<
CellTemplateConfig
>
configs
=
cellTemplateConfigMapper
.
selectByExample
(
configExample
);
if
(
CollectionUtils
.
isNotEmpty
(
configs
))
{
for
(
CellTemplateConfig
cellTemplateConfig
:
configs
)
{
PeriodCellTemplateConfig
periodCellTemplateConfig
=
new
PeriodCellTemplateConfig
();
CommonUtils
.
copyProperties
(
cellTemplateConfig
,
periodCellTemplateConfig
);
periodCellTemplateConfig
.
setId
(
distributedIdService
.
nextId
());
periodCellTemplateConfig
.
setPeriod
(
period
);
periodCellTemplateConfig
.
setCellTemplateId
(
cellTemplateConfig
.
getCellTemplateId
());
periodCellTemplateConfig
.
setReportTemplateId
(
template
.
getId
());
periodCellTemplateConfig
.
setDataSourceType
(
cellTemplateConfig
.
getDataSourceType
());
periodCellTemplateConfig
.
setFormula
(
StringUtils
.
isBlank
(
cellTemplateConfig
.
getFormula
())
?
null
:
cellTemplateConfig
.
getFormula
());
periodCellTemplateConfig
.
setParsedFormula
(
null
);
periodCellTemplateConfig
.
setFormulaDescription
(
cellTemplateConfig
.
getFormulaDescription
());
periodCellTemplateConfig
.
setAccountCodes
(
cellTemplateConfig
.
getAccountCodes
());
periodCellTemplateConfig
.
setInvoiceType
(
cellTemplateConfig
.
getInvoiceType
());
periodCellTemplateConfig
.
setTaxRate
(
cellTemplateConfig
.
getTaxRate
());
periodCellTemplateConfig
.
setInvoiceAmountType
(
cellTemplateConfig
.
getInvoiceAmountType
());
periodCellTemplateConfig
.
setModelIds
(
cellTemplateConfig
.
getModelIds
());
periodCellTemplateConfig
.
setCreateBy
(
StringUtils
.
isBlank
(
cellTemplateConfig
.
getCreateBy
())
?
"admin"
:
cellTemplateConfig
.
getCreateBy
());
periodCellTemplateConfig
.
setCreateTime
(
cellTemplateConfig
.
getCreateTime
());
periodCellTemplateConfig
.
setUpdateBy
(
StringUtils
.
isBlank
(
cellTemplateConfig
.
getUpdateBy
())
?
"admin"
:
cellTemplateConfig
.
getUpdateBy
());
periodCellTemplateConfig
.
setUpdateTime
(
cellTemplateConfig
.
getUpdateTime
());
periodCellTemplateConfig
.
setInvoiceCategory
(
cellTemplateConfig
.
getInvoiceCategory
());
periodCellTemplateConfig
.
setFormulaDataSource
(
cellTemplateConfig
.
getFormulaDataSource
());
periodCellTemplateConfig
.
setValidation
(
cellTemplateConfig
.
getValidation
());
periodCellTemplateConfig
.
setParsedValidation
(
null
);
periodCellTemplateConfig
.
setValidationDescription
(
cellTemplateConfig
.
getValidationDescription
());
periodCellTemplateConfig
.
setVoucherKeyword
(
cellTemplateConfig
.
getVoucherKeyword
());
periodCellTemplateConfig
.
setCellTemplateConfigId
(
cellTemplateConfig
.
getId
());
periodCellTemplateConfig
.
setKeyValueParsedFormula
(
null
);
periodCellTemplateConfig
.
setProjectId
(
projectId
);
fixedParsedFormula
(
periodCellTemplateConfig
);
fixedAccountCode
(
periodCellTemplateConfig
);
cellTemplateConfigList
.
add
(
periodCellTemplateConfig
);
}
periodCellTemplateConfig
.
setUpdateTime
(
now
);
periodCellTemplateConfig
.
setFormulaDataSource
(
"报表数据"
);
periodCellTemplateConfig
.
setKeyValueParsedFormula
(
null
);
periodCellTemplateConfig
.
setProjectId
(
projectId
);
fixedParsedFormula
(
periodCellTemplateConfig
);
fixedAccountCode
(
periodCellTemplateConfig
);
cellTemplateConfigList
.
add
(
periodCellTemplateConfig
);
}
if
(
r
>
0
&&
r
<=
addRowIndex
&&
hasHandDatas
.
contains
(
c
))
{
addManualConfig
(
cellTemplate
,
cell
,
now
,
cellTemplateConfigList
);
}
}
}
else
{
assembleOriginalTemplateData
(
template
,
projectId
,
period
,
r
,
c
,
addRowIndex
,
cellTemplateList
,
cellTemplateConfigList
);
}
}
}
...
...
@@ -630,6 +565,76 @@ public class ReportServiceImpl extends BaseService {
}
}
public
void
assembleOriginalTemplateData
(
Template
template
,
String
projectId
,
Integer
period
,
Integer
r
,
Integer
c
,
Integer
addRowIndex
,
List
<
PeriodCellTemplate
>
cellTemplateList
,
List
<
PeriodCellTemplateConfig
>
cellTemplateConfigList
)
{
//查询原来行cell是否有CellTemplate
CellTemplateExample
cellTemplateExample
=
new
CellTemplateExample
();
cellTemplateExample
.
createCriteria
().
andReportTemplateIdEqualTo
(
template
.
getId
()).
andRowIndexEqualTo
(
r
-
addRowIndex
).
andColumnIndexEqualTo
(
c
);
List
<
CellTemplate
>
cellTemplates
=
cellTemplateMapper
.
selectByExample
(
cellTemplateExample
);
if
(
CollectionUtils
.
isNotEmpty
(
cellTemplates
))
{
CellTemplate
cellTemplate
=
cellTemplates
.
get
(
0
);
PeriodCellTemplate
periodCellTemplate
=
new
PeriodCellTemplate
();
CommonUtils
.
copyProperties
(
cellTemplate
,
periodCellTemplate
);
periodCellTemplate
.
setId
(
distributedIdService
.
nextId
());
periodCellTemplate
.
setPeriod
(
period
);
periodCellTemplate
.
setReportTemplateId
(
template
.
getId
());
periodCellTemplate
.
setRowIndex
(
r
);
periodCellTemplate
.
setRowName
(
cellTemplate
.
getRowName
());
periodCellTemplate
.
setColumnIndex
(
c
);
periodCellTemplate
.
setColumnName
(
cellTemplate
.
getColumnName
());
periodCellTemplate
.
setComment
(
cellTemplate
.
getComment
());
periodCellTemplate
.
setCreateTime
(
cellTemplate
.
getCreateTime
());
periodCellTemplate
.
setUpdateTime
(
cellTemplate
.
getUpdateTime
());
periodCellTemplate
.
setCellTemplateId
(
cellTemplate
.
getId
());
periodCellTemplate
.
setDataType
(
cellTemplate
.
getDataType
());
periodCellTemplate
.
setIsReadOnly
(
cellTemplate
.
getIsReadOnly
()
?
1
:
0
);
periodCellTemplate
.
setCopyFromId
(
cellTemplate
.
getCopyFromId
());
periodCellTemplate
.
setCreateBy
(
StringUtils
.
isBlank
(
cellTemplate
.
getCreateBy
())
?
"admin"
:
cellTemplate
.
getCreateBy
());
periodCellTemplate
.
setUpdateBy
(
StringUtils
.
isBlank
(
cellTemplate
.
getUpdateBy
())
?
"admin"
:
cellTemplate
.
getUpdateBy
());
periodCellTemplate
.
setProjectId
(
projectId
);
cellTemplateList
.
add
(
periodCellTemplate
);
CellTemplateConfigExample
configExample
=
new
CellTemplateConfigExample
();
configExample
.
createCriteria
().
andCellTemplateIdEqualTo
(
cellTemplate
.
getId
());
List
<
CellTemplateConfig
>
configs
=
cellTemplateConfigMapper
.
selectByExample
(
configExample
);
if
(
CollectionUtils
.
isNotEmpty
(
configs
))
{
for
(
CellTemplateConfig
cellTemplateConfig
:
configs
)
{
PeriodCellTemplateConfig
periodCellTemplateConfig
=
new
PeriodCellTemplateConfig
();
CommonUtils
.
copyProperties
(
cellTemplateConfig
,
periodCellTemplateConfig
);
periodCellTemplateConfig
.
setId
(
distributedIdService
.
nextId
());
periodCellTemplateConfig
.
setPeriod
(
period
);
periodCellTemplateConfig
.
setCellTemplateId
(
cellTemplateConfig
.
getCellTemplateId
());
periodCellTemplateConfig
.
setReportTemplateId
(
template
.
getId
());
periodCellTemplateConfig
.
setDataSourceType
(
cellTemplateConfig
.
getDataSourceType
());
periodCellTemplateConfig
.
setFormula
(
StringUtils
.
isBlank
(
cellTemplateConfig
.
getFormula
())
?
null
:
cellTemplateConfig
.
getFormula
());
periodCellTemplateConfig
.
setParsedFormula
(
null
);
periodCellTemplateConfig
.
setFormulaDescription
(
cellTemplateConfig
.
getFormulaDescription
());
periodCellTemplateConfig
.
setAccountCodes
(
cellTemplateConfig
.
getAccountCodes
());
periodCellTemplateConfig
.
setInvoiceType
(
cellTemplateConfig
.
getInvoiceType
());
periodCellTemplateConfig
.
setTaxRate
(
cellTemplateConfig
.
getTaxRate
());
periodCellTemplateConfig
.
setInvoiceAmountType
(
cellTemplateConfig
.
getInvoiceAmountType
());
periodCellTemplateConfig
.
setModelIds
(
cellTemplateConfig
.
getModelIds
());
periodCellTemplateConfig
.
setCreateBy
(
StringUtils
.
isBlank
(
cellTemplateConfig
.
getCreateBy
())
?
"admin"
:
cellTemplateConfig
.
getCreateBy
());
periodCellTemplateConfig
.
setCreateTime
(
cellTemplateConfig
.
getCreateTime
());
periodCellTemplateConfig
.
setUpdateBy
(
StringUtils
.
isBlank
(
cellTemplateConfig
.
getUpdateBy
())
?
"admin"
:
cellTemplateConfig
.
getUpdateBy
());
periodCellTemplateConfig
.
setUpdateTime
(
cellTemplateConfig
.
getUpdateTime
());
periodCellTemplateConfig
.
setInvoiceCategory
(
cellTemplateConfig
.
getInvoiceCategory
());
periodCellTemplateConfig
.
setFormulaDataSource
(
cellTemplateConfig
.
getFormulaDataSource
());
periodCellTemplateConfig
.
setValidation
(
cellTemplateConfig
.
getValidation
());
periodCellTemplateConfig
.
setParsedValidation
(
null
);
periodCellTemplateConfig
.
setValidationDescription
(
cellTemplateConfig
.
getValidationDescription
());
periodCellTemplateConfig
.
setVoucherKeyword
(
cellTemplateConfig
.
getVoucherKeyword
());
periodCellTemplateConfig
.
setCellTemplateConfigId
(
cellTemplateConfig
.
getId
());
periodCellTemplateConfig
.
setKeyValueParsedFormula
(
null
);
periodCellTemplateConfig
.
setProjectId
(
projectId
);
fixedParsedFormula
(
periodCellTemplateConfig
);
fixedAccountCode
(
periodCellTemplateConfig
);
cellTemplateConfigList
.
add
(
periodCellTemplateConfig
);
}
}
}
}
private
void
addManualConfig
(
PeriodCellTemplate
cellTemplate
,
Cell
cell
,
Date
now
,
List
<
PeriodCellTemplateConfig
>
list
)
{
PeriodCellTemplateConfig
configManual
=
new
PeriodCellTemplateConfig
();
configManual
.
setId
(
distributedIdService
.
nextId
());
...
...
@@ -2465,6 +2470,7 @@ public class ReportServiceImpl extends BaseService {
for
(
int
m
=
0
;
m
<
3
;
m
++)
{
FileExcelUtil
.
cloneCell
(
sheetAt
.
getRow
(
m
).
getCell
(
2
),
sheetAt
.
getRow
(
m
).
getCell
(
1
));
sheetAt
.
getRow
(
m
).
getCell
(
3
).
setCellValue
(
""
);
sheetAt
.
getRow
(
m
).
getCell
(
1
).
setCellValue
(
""
);
}
style1
.
setFillBackgroundColor
(
IndexedColors
.
YELLOW
.
getIndex
());
...
...
@@ -2472,7 +2478,7 @@ public class ReportServiceImpl extends BaseService {
sheetAt
.
getRow
(
2
).
getCell
(
2
).
setCellValue
(
"本期:"
+
spreadData
.
get
(
0
).
getPeriod
());
}
/*
public String getCellStringValue(Cell cell) {
public
String
getCellStringValue
(
Cell
cell
)
{
String
cellValue
=
null
;
switch
(
cell
.
getCellType
())
{
case
HSSFCell
.
CELL_TYPE_STRING
:
//字符串类型
...
...
@@ -2498,7 +2504,7 @@ public class ReportServiceImpl extends BaseService {
break
;
}
return
cellValue
;
}
*/
}
@Autowired
private
OrganizationMapper
organizationMapper
;
...
...
@@ -2525,7 +2531,7 @@ public class ReportServiceImpl extends BaseService {
}
}
private
String
getCellStringValue
(
Cell
cell
)
{
/*
private String getCellStringValue(Cell cell) {
if (cell.getCellTypeEnum().equals(CellType.STRING)) {
return cell.getStringCellValue();
} else if (cell.getCellTypeEnum().equals(CellType.NUMERIC)) {
...
...
@@ -2534,5 +2540,5 @@ public class ReportServiceImpl extends BaseService {
}
logger.warn("获取单元格数据类型未匹配");
return null;
}
}
*/
}
atms-api/src/test/java/pwc/taxtech/atms/service/impl/AnalysisTest.java
View file @
e3a1ae3f
...
...
@@ -28,7 +28,7 @@ public class AnalysisTest extends CommonIT {
public
void
analysisExpectedTax
(){
Integer
period
=
DateUtils
.
getPeriodNow
();
OrganizationExample
e
=
new
OrganizationExample
();
e
.
createCriteria
().
andIsActiveEqualTo
(
true
);
//
e.createCriteria().andIsActiveEqualTo(true);
List
<
Organization
>
orgs
=
organizationMapper
.
selectByExample
(
e
);
logger
.
info
(
String
.
format
(
"开始分析%s预期返还税数据"
,
period
));
analysisJobService
.
analysisExpectedTax
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
...
...
@@ -39,7 +39,7 @@ public class AnalysisTest extends CommonIT {
public
void
analysisFee
(){
Integer
period
=
DateUtils
.
getPeriodNow
();
OrganizationExample
e
=
new
OrganizationExample
();
e
.
createCriteria
().
andIsActiveEqualTo
(
true
);
//
e.createCriteria().andIsActiveEqualTo(true);
List
<
Organization
>
orgs
=
organizationMapper
.
selectByExample
(
e
);
logger
.
info
(
String
.
format
(
"开始分析%s费用数据"
,
period
));
analysisJobService
.
analysisFee
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
...
...
@@ -49,7 +49,7 @@ public class AnalysisTest extends CommonIT {
public
void
analysisFileManagement
(){
Integer
period
=
DateUtils
.
getPeriodNow
();
OrganizationExample
e
=
new
OrganizationExample
();
e
.
createCriteria
().
andIsActiveEqualTo
(
true
);
//
e.createCriteria().andIsActiveEqualTo(true);
List
<
Organization
>
orgs
=
organizationMapper
.
selectByExample
(
e
);
logger
.
info
(
String
.
format
(
"开始分析%s文档管理数据"
,
period
));
...
...
@@ -60,7 +60,7 @@ public class AnalysisTest extends CommonIT {
public
void
analysisMaster
(){
Integer
period
=
DateUtils
.
getPeriodNow
();
OrganizationExample
e
=
new
OrganizationExample
();
e
.
createCriteria
().
andIsActiveEqualTo
(
true
);
//
e.createCriteria().andIsActiveEqualTo(true);
List
<
Organization
>
orgs
=
organizationMapper
.
selectByExample
(
e
);
logger
.
info
(
String
.
format
(
"开始分析%s机构数据"
,
period
));
analysisJobService
.
analysisMaster
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
...
...
@@ -70,7 +70,7 @@ public class AnalysisTest extends CommonIT {
public
void
analysisSales
(){
Integer
period
=
DateUtils
.
getPeriodNow
();
OrganizationExample
e
=
new
OrganizationExample
();
e
.
createCriteria
().
andIsActiveEqualTo
(
true
);
//
e.createCriteria().andIsActiveEqualTo(true);
List
<
Organization
>
orgs
=
organizationMapper
.
selectByExample
(
e
);
logger
.
info
(
String
.
format
(
"开始分析%s申报表数据"
,
period
));
analysisJobService
.
analysisSales
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
...
...
@@ -80,9 +80,19 @@ public class AnalysisTest extends CommonIT {
public
void
analysisTaxReturnEnd
(){
Integer
period
=
DateUtils
.
getPeriodNow
();
OrganizationExample
e
=
new
OrganizationExample
();
e
.
createCriteria
().
andIsActiveEqualTo
(
true
);
//
e.createCriteria().andIsActiveEqualTo(true);
List
<
Organization
>
orgs
=
organizationMapper
.
selectByExample
(
e
);
logger
.
info
(
String
.
format
(
"开始分析%s返还后税数据"
,
period
));
analysisJobService
.
analysisTaxReturnEnd
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
}
@Test
public
void
analysisTax
(){
Integer
period
=
DateUtils
.
getPeriodNow
();
OrganizationExample
e
=
new
OrganizationExample
();
//e.createCriteria().andIsActiveEqualTo(true);
List
<
Organization
>
orgs
=
organizationMapper
.
selectByExample
(
e
);
logger
.
info
(
String
.
format
(
"开始分析%s返还后税数据"
,
period
));
analysisJobService
.
analysisTax
(
orgs
,
period
,
EnumTbImportType
.
CoverImport
.
getCode
());
}
}
atms-web/src/main/webapp/app-resources/i18n/zh-CN/app.json
View file @
e3a1ae3f
...
...
@@ -924,5 +924,6 @@
"false"
:
"否"
,
"ConditionColumnNum"
:
"条件列"
,
"Condition"
:
"查询条件"
,
"Cancel4Tax"
:
"取消"
,
"~MustBeEndOneApp"
:
"I Must be the End One, please!"
}
atms-web/src/main/webapp/app/admin/infrastructure/docManage/doc-manage.html
View file @
e3a1ae3f
...
...
@@ -185,7 +185,7 @@
<!--<div class="modal-footer">
<button type="submit" class="btn btn-primary" translate="Confirm"
></button><!–ng-disabled="newDocFileTypeForm.roleName.$invalid || newDocFileTypeForm.service_id.$invalid"–>
<button type="button" class="btn btn-third" data-dismiss="modal" ng-click="cancelDocFileType()" translate="Cancel"></button>
<button type="button" class="btn btn-third" data-dismiss="modal" ng-click="cancelDocFileType()" translate="Cancel
4Tax
"></button>
</div>-->
<div
style=
"margin-bottom: 20px;"
>
<center>
...
...
@@ -193,7 +193,7 @@
></button>
<!--ng-disabled="newDocFileTypeForm.roleName.$invalid || newDocFileTypeForm.service_id.$invalid"-->
<button
type=
"button"
class=
"btn btn-third"
data-dismiss=
"modal"
ng-click=
"cancelDocFileType()"
translate=
"Cancel"
></button>
ng-click=
"cancelDocFileType()"
translate=
"Cancel
4Tax
"
></button>
</center>
</div>
</form>
...
...
atms-web/src/main/webapp/app/framework/app-usr-operate-log/app-usr-operate-log.ctrl.js
View file @
e3a1ae3f
...
...
@@ -29,8 +29,8 @@ frameworkModule.controller('appUsrOperateLogController',
SweetAlert
.
warning
(
"没有数据可以下载"
);
return
;
}
$scope
.
thisModuleId
=
[];
//清空查询id
$scope
.
dataGridUpdate
(
data
);
$scope
.
thisModuleId
=
[];
//清空查询id
})
};
// $scope.sniffHelpPopRadio = function(){
...
...
@@ -206,16 +206,22 @@ frameworkModule.directive('usrLogExportPlugin',function(){
function
(
$scope
,
SweetAlert
,
$translate
,
usrOperateLogService
,
$q
,
$log
){
$scope
.
exportTableData
=
function
()
{
var
checkedItems
=
$
(
".log-export-checked-item"
);
//
var checkedItems = $(".log-export-checked-item");
var
ids
=
[];
if
(
checkedItems
.
length
)
/*
if(checkedItems.length)
checkedItems.find("span[data-name='logCheckedItem']")
.
each
(
function
(
index
,
checkedItem
){
var
idLike
=
checkedItem
.
getAttribute
(
'data-id'
);
if
(
idLike
||
idLike
==
0
){
ids
.
push
(
idLike
);
}
});
.each(function(index,checkedItem){
var idLike = checkedItem.getAttribute('data-id');
if(idLike || idLike == 0){
ids.push(idLike);
}
});*/
var
datas
=
$scope
.
localData
;
for
(
var
i
=
0
;
i
<
datas
.
length
;
i
++
){
if
(
datas
[
i
].
id
){
ids
.
push
(
datas
[
i
].
id
);
}
}
usrOperateLogService
[
$scope
.
thisModuleName
+
"Export"
]({
"ids"
:
ids
}).
then
(
function
(
data
,
status
,
headers
)
{
...
...
atms-web/src/main/webapp/app/taxDocumentManage/tax-document-list/tax-document-list.ctrl.js
View file @
e3a1ae3f
...
...
@@ -18,7 +18,7 @@ taxDocumentManageModule.controller('taxDocumentListController',
};
$scope
.
localData
=
null
;
$scope
.
loadMainData
=
function
()
{
checkReminder
();
$scope
.
queryFieldModel
.
currentPage
=
$scope
.
pagingOptions
.
pageIndex
;
$scope
.
queryFieldModel
.
pageSize
=
$scope
.
pagingOptions
.
pageSize
;
...
...
@@ -51,6 +51,36 @@ taxDocumentManageModule.controller('taxDocumentListController',
})
};
function
checkReminder
(){
var
items
=
$scope
.
queryFieldModel
;
var
message
=
""
;
if
(
!
PWC
.
isNullOrEmpty
(
items
.
fileBeginTime
)
&&
!
PWC
.
isNullOrEmpty
(
items
.
fileEndTTime
)
&&
items
.
fileBeginTime
>
items
.
fileEndTTime
)
{
message
+=
$translate
.
instant
(
'AvailabilityDate'
)
+
","
;
}
if
(
!
PWC
.
isNullOrEmpty
(
items
.
ownBeginTime
)
&&
!
PWC
.
isNullOrEmpty
(
items
.
ownEndTime
)
&&
items
.
ownBeginTime
>
items
.
ownEndTime
)
{
message
+=
$translate
.
instant
(
'Duration'
)
+
","
;
}
if
(
!
PWC
.
isNullOrEmpty
(
items
.
effectiveBeginTime
)
&&
!
PWC
.
isNullOrEmpty
(
items
.
effectiveEndTime
)
&&
items
.
effectiveBeginTime
>
items
.
effectiveEndTime
)
{
message
+=
$translate
.
instant
(
'DueDate'
)
+
","
;
}
if
(
!
PWC
.
isNullOrEmpty
(
items
.
uploadBeginTime
)
&&
!
PWC
.
isNullOrEmpty
(
items
.
uploadEndTime
)
&&
items
.
uploadBeginTime
>
items
.
uploadEndTime
)
{
message
+=
$translate
.
instant
(
'UploadDate'
)
+
","
;
}
if
(
message
){
message
=
(
message
.
substring
(
message
.
length
-
1
)
==
','
)
?
message
.
substring
(
0
,
message
.
length
-
1
)
:
message
;
message
+=
"-"
+
$translate
.
instant
(
'DateWarningSearch'
);
window
.
swal
(
message
);
return
;
}
}
$scope
.
dataGridUpdate
=
function
(
_data
)
{
$scope
.
localData
=
_data
.
list
;
$scope
.
pagingOptions
.
pageIndex
=
_data
.
pageNo
;
...
...
@@ -1827,7 +1857,7 @@ taxDocumentManageModule.directive('tempModule', function () {
$scope
.
checkedItemIds
=
[];
$scope
.
sniffCheckbox
=
function
()
{
$scope
.
checkedItemIds
.
length
=
0
;
$
(
"
input[name='dataGridCheckBox
']"
).
each
(
function
(
index
,
item
)
{
$
(
"
tr td[name='logCheckedItem
']"
).
each
(
function
(
index
,
item
)
{
if
(
item
.
checked
)
{
var
cellId
=
$
(
item
).
attr
(
"data-id"
);
$scope
.
checkedItemIds
.
push
(
cellId
);
...
...
@@ -1938,6 +1968,8 @@ taxDocumentManageModule.directive('tempModule', function () {
result
=
1
;
}
else
if
(
src
===
$translate
.
instant
(
'ApprovalReject'
)){
result
=
-
1
;
}
else
{
result
=
""
;
}
return
result
;
};
...
...
@@ -1950,6 +1982,8 @@ taxDocumentManageModule.directive('tempModule', function () {
result
=
$translate
.
instant
(
'ApprovalPass'
);
}
else
if
(
src
==
-
1
){
result
=
$translate
.
instant
(
'ApprovalReject'
);
}
else
{
result
=
""
;
}
return
result
;
};
...
...
@@ -2068,7 +2102,15 @@ taxDocumentManageModule.directive('exportPlugin',function(){
$scope
.
queryFieldModel
.
currentPage
=
$scope
.
pagingOptions
.
pageIndex
;
$scope
.
queryFieldModel
.
pageSize
=
$scope
.
pagingOptions
.
pageSize
;
var
delIDs
=
[];
$
(
"input[name='dataGridCheckBox']"
).
each
(
function
(
index
,
tdCell
)
{
if
(
tdCell
.
checked
)
{
var
cellId
=
$
(
tdCell
).
attr
(
'data-id'
);
delIDs
.
push
(
cellId
);
}
});
var
params
=
angular
.
copy
(
$scope
.
queryFieldModel
);
params
.
ids
=
delIDs
;
params
.
fileBeginTime
=
getQueryDate
(
params
.
fileBeginTime
,
"-"
);
params
.
fileEndTTime
=
getQueryDate
(
params
.
fileEndTTime
,
"-"
);
params
.
ownBeginTime
=
getQueryDate
(
params
.
ownBeginTime
,
"-"
);
...
...
atms-web/src/main/webapp/app/taxDocumentManage/tax-document-list/tax-document-list.html
View file @
e3a1ae3f
...
...
@@ -897,7 +897,7 @@
<div
class=
"modal-footer"
>
<button
type=
"submit"
class=
"btn btn-primary"
translate=
"Confirm"
></button>
<button
type=
"button"
class=
"btn btn-third"
data-dismiss=
"modal"
ng-click=
"cancelDocFileType()"
translate=
"Cancel"
></button>
translate=
"Cancel
4Tax
"
></button>
</div>
</form>
</div>
...
...
@@ -1146,7 +1146,7 @@
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-primary"
translate=
"Confirm"
ng-click=
"multiUploadSubmit_handmade()"
></button>
<button
type=
"button"
class=
"btn btn-third"
data-dismiss=
"modal"
ng-click=
"closeUploadReview()"
translate=
"Cancel"
></button>
translate=
"Cancel
4Tax
"
></button>
</div>
</form>
</div>
...
...
@@ -1391,7 +1391,7 @@
<div class="modal-footer">
<button type="button" class="btn btn-primary" translate="Confirm" ng-click="multiUploadSubmit()"></button>
<button type="button" class="btn btn-third" data-dismiss="modal" ng-click="cancelDocFileType()"
translate="Cancel"></button>
translate="Cancel
4Tax
"></button>
</div>
</form>
</div>
...
...
@@ -1444,7 +1444,7 @@
</div>
<div
class=
"modal-footer"
>
<button
class=
"btn btn-primary"
translate=
"Confirm"
ng-click=
"confirmUploadResult()"
></button>
<button
type=
"button"
class=
"btn btn-third"
ng-if=
"multiUploadErrorItems.length"
data-dismiss=
"modal"
translate=
"Cancel"
></button>
<button
type=
"button"
class=
"btn btn-third"
ng-if=
"multiUploadErrorItems.length"
data-dismiss=
"modal"
translate=
"Cancel
4Tax
"
></button>
</div>
</div>
</div>
...
...
@@ -1465,7 +1465,7 @@
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-primary"
translate=
"Confirm"
ng-click=
"sniffHelpPopRadio()"
></button>
<button
type=
"button"
class=
"btn btn-third"
data-dismiss=
"modal"
ng-click=
"cancelDocFileType()"
translate=
"Cancel"
></button>
translate=
"Cancel
4Tax
"
></button>
</div>
</div>
</div>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment