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
02cb5205
Commit
02cb5205
authored
Feb 27, 2019
by
eddie.woo
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev_mysql' of
http://code.tech.tax.asia.pwcinternal.com/root/atms
into dev_mysql
parents
5c41d6eb
bf945c3a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
38 changed files
with
1500 additions
and
110 deletions
+1500
-110
EbsApiController.java
...in/java/pwc/taxtech/atms/controller/EbsApiController.java
+32
-32
ReportController.java
...in/java/pwc/taxtech/atms/controller/ReportController.java
+11
-3
RevenueConfController.java
...va/pwc/taxtech/atms/controller/RevenueConfController.java
+6
-1
RevenueDetailController.java
.../pwc/taxtech/atms/controller/RevenueDetailController.java
+27
-0
ReportAttachDto.java
...i/src/main/java/pwc/taxtech/atms/dto/ReportAttachDto.java
+42
-0
RevenueDetailParam.java
...wc/taxtech/atms/dto/revenueDetail/RevenueDetailParam.java
+140
-0
RevenueDetailResult.java
...c/taxtech/atms/dto/revenueDetail/RevenueDetailResult.java
+130
-0
WrapPeriodJobDto.java
...in/java/pwc/taxtech/atms/dto/vatdto/WrapPeriodJobDto.java
+4
-2
RevenueConfService.java
...ava/pwc/taxtech/atms/service/impl/RevenueConfService.java
+6
-0
RevenueDetailService.java
...a/pwc/taxtech/atms/service/impl/RevenueDetailService.java
+37
-0
ReportServiceImpl.java
.../pwc/taxtech/atms/vat/service/impl/ReportServiceImpl.java
+104
-8
RevenueDetailDto.java
.../src/main/java/pwc/taxtech/atms/dpo/RevenueDetailDto.java
+130
-0
AdjustmentTableMapper.java
.../java/pwc/taxtech/atms/vat/dao/AdjustmentTableMapper.java
+4
-0
JournalEntryMapper.java
...ain/java/pwc/taxtech/atms/vat/dao/JournalEntryMapper.java
+4
-0
TrialBalanceFinalMapper.java
...ava/pwc/taxtech/atms/vat/dao/TrialBalanceFinalMapper.java
+18
-1
AdjustmentTable.java
...ain/java/pwc/taxtech/atms/vat/entity/AdjustmentTable.java
+18
-0
JournalEntry.java
...c/main/java/pwc/taxtech/atms/vat/entity/JournalEntry.java
+9
-0
AdjustmentTableMapper.xml
...ources/pwc/taxtech/atms/vat/dao/AdjustmentTableMapper.xml
+32
-0
JournalEntryMapper.xml
...resources/pwc/taxtech/atms/vat/dao/JournalEntryMapper.xml
+22
-0
TrialBalanceFinalExtendsMapper.xml
...h/atms/vat/dao/extends/TrialBalanceFinalExtendsMapper.xml
+79
-0
module-part1.js
atms-web/src/main/webapp/Scripts/module-part1.js
+16
-0
vat.json
atms-web/src/main/webapp/app-resources/i18n/en-us/vat.json
+3
-4
vat.json
atms-web/src/main/webapp/app-resources/i18n/zh-CN/vat.json
+28
-1
tax-report-cell-detail-modal.ctrl.js
...rt-cell-detail-modal/tax-report-cell-detail-modal.ctrl.js
+87
-25
tax-report-cell-detail-modal.html
...eport-cell-detail-modal/tax-report-cell-detail-modal.html
+8
-1
constant.js
atms-web/src/main/webapp/app/common/utils/constant.js
+3
-2
vatReportService.js
...rc/main/webapp/app/common/vatservices/vatReportService.js
+6
-2
vat-revenue-config.ctrl.js
.../dataImport/vat-revenue-config/vat-revenue-config.ctrl.js
+1
-1
app-overview.ctrl.js
...in/webapp/app/framework/app-overview/app-overview.ctrl.js
+3
-1
vat-import-layout.ctrl.js
...pp/vat/import/vat-import-layout/vat-import-layout.ctrl.js
+4
-0
vat-caculate-data.ctrl.js
...vat/reduction/vat-caculate-data/vat-caculate-data.ctrl.js
+36
-9
vat-caculate-data.html
...pp/vat/reduction/vat-caculate-data/vat-caculate-data.html
+3
-3
vat-revenue-detail.ctrl.js
...t/reduction/vat-revenue-detail/vat-revenue-detail.ctrl.js
+0
-0
vat-revenue-detail.html
.../vat/reduction/vat-revenue-detail/vat-revenue-detail.html
+110
-0
vat-revenue-detail.js
...pp/vat/reduction/vat-revenue-detail/vat-revenue-detail.js
+14
-0
vat-revenue-detail.less
.../vat/reduction/vat-revenue-detail/vat-revenue-detail.less
+303
-0
vat-layout.ctrl.js
...web/src/main/webapp/app/vat/vat-layout/vat-layout.ctrl.js
+5
-0
vat-layout.html
atms-web/src/main/webapp/app/vat/vat-layout/vat-layout.html
+15
-14
No files found.
atms-api/src/main/java/pwc/taxtech/atms/controller/EbsApiController.java
View file @
02cb5205
...
...
@@ -23,122 +23,122 @@ public class EbsApiController {
@Resource
private
EbsApiService
ebsApiService
;
@RequestMapping
(
value
=
"/
queryRemoteServerThenU
pdateJE"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenU
pdateJE
(
@RequestBody
List
<
JournalEntryQueryDto
>
items
)
{
@RequestMapping
(
value
=
"/
u
pdateJE"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
u
pdateJE
(
@RequestBody
List
<
JournalEntryQueryDto
>
items
)
{
if
(
CollectionUtils
.
isEmpty
(
items
))
{
logger
.
debug
(
"the
queryRemoteServerThenU
pdateJE return items is empty"
);
logger
.
debug
(
"the
u
pdateJE return items is empty"
);
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdateJE
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"
queryRemoteServerThenU
pdateJE error."
,
e
);
logger
.
error
(
"
u
pdateJE error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
@RequestMapping
(
value
=
"/
queryRemoteServerThenU
pdateTB"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenU
pdateTB
(
@RequestBody
List
<
TrialBalanceQueryDto
>
items
)
{
@RequestMapping
(
value
=
"/
u
pdateTB"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
u
pdateTB
(
@RequestBody
List
<
TrialBalanceQueryDto
>
items
)
{
if
(
CollectionUtils
.
isEmpty
(
items
))
{
logger
.
debug
(
"the
queryRemoteServerThenU
pdateTB return items is empty"
);
logger
.
debug
(
"the
u
pdateTB return items is empty"
);
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdateTB
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"
queryRemoteServerThenU
pdateTB error."
,
e
);
logger
.
error
(
"
u
pdateTB error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
@RequestMapping
(
value
=
"/
queryRemoteServerThenU
pdateCF"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenU
pdateCF
(
@RequestBody
List
<
CashFlowQueryDto
>
items
)
{
@RequestMapping
(
value
=
"/
u
pdateCF"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
u
pdateCF
(
@RequestBody
List
<
CashFlowQueryDto
>
items
)
{
if
(
CollectionUtils
.
isEmpty
(
items
))
{
logger
.
debug
(
"the
queryRemoteServerThenU
pdateCF return items is empty"
);
logger
.
debug
(
"the
u
pdateCF return items is empty"
);
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdateCF
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"
queryRemoteServerThenU
pdateCF error."
,
e
);
logger
.
error
(
"
u
pdateCF error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
@RequestMapping
(
value
=
"/
queryRemoteServerThenU
pdateBS"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenU
pdateBS
(
@RequestBody
List
<
BalanceSheetQueryDto
>
items
)
{
@RequestMapping
(
value
=
"/
u
pdateBS"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
u
pdateBS
(
@RequestBody
List
<
BalanceSheetQueryDto
>
items
)
{
if
(
CollectionUtils
.
isEmpty
(
items
))
{
logger
.
debug
(
"the
queryRemoteServerThenU
pdateBS return items is empty"
);
logger
.
debug
(
"the
u
pdateBS return items is empty"
);
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdateBS
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"
queryRemoteServerThenU
pdateBS error."
,
e
);
logger
.
error
(
"
u
pdateBS error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
@RequestMapping
(
value
=
"/
queryRemoteServerThenU
pdatePL"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenU
pdatePL
(
@RequestBody
List
<
ProfitLossStatementQueryDto
>
items
)
{
@RequestMapping
(
value
=
"/
u
pdatePL"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
u
pdatePL
(
@RequestBody
List
<
ProfitLossStatementQueryDto
>
items
)
{
if
(
CollectionUtils
.
isEmpty
(
items
))
{
logger
.
debug
(
"the
queryRemoteServerThenU
pdatePL return items is empty"
);
logger
.
debug
(
"the
u
pdatePL return items is empty"
);
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdatePL
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"
queryRemoteServerThenU
pdatePL error."
,
e
);
logger
.
error
(
"
u
pdatePL error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
@RequestMapping
(
value
=
"/
queryRemoteServerThenU
pdateBSprc"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenU
pdateBSprc
(
@RequestBody
List
<
BalanceSheetPrcQueryDto
>
items
)
{
@RequestMapping
(
value
=
"/
u
pdateBSprc"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
u
pdateBSprc
(
@RequestBody
List
<
BalanceSheetPrcQueryDto
>
items
)
{
if
(
CollectionUtils
.
isEmpty
(
items
))
{
logger
.
debug
(
"the
queryRemoteServerThenU
pdateBSprc return items is empty"
);
logger
.
debug
(
"the
u
pdateBSprc return items is empty"
);
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdateBSprc
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"
queryRemoteServerThenU
pdateBSprc error."
,
e
);
logger
.
error
(
"
u
pdateBSprc error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
@RequestMapping
(
value
=
"/
queryRemoteServerThenU
pdatePLprc"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenU
pdatePLprc
(
@RequestBody
List
<
ProfitLossStatementPrcQueryDto
>
items
)
{
@RequestMapping
(
value
=
"/
u
pdatePLprc"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
u
pdatePLprc
(
@RequestBody
List
<
ProfitLossStatementPrcQueryDto
>
items
)
{
if
(
CollectionUtils
.
isEmpty
(
items
))
{
logger
.
debug
(
"the
queryRemoteServerThenUpdatePL
return items is empty"
);
logger
.
debug
(
"the
updatePLprc
return items is empty"
);
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdatePLprc
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"
queryRemoteServerThenU
pdatePLprc error."
,
e
);
logger
.
error
(
"
u
pdatePLprc error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
@RequestMapping
(
value
=
"/
queryRemoteServerThenU
pdateOAR"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenU
pdateOAR
(
@RequestBody
List
<
OrganizationAccountingRateQueryDto
>
items
)
{
@RequestMapping
(
value
=
"/
u
pdateOAR"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
u
pdateOAR
(
@RequestBody
List
<
OrganizationAccountingRateQueryDto
>
items
)
{
if
(
CollectionUtils
.
isEmpty
(
items
))
{
logger
.
debug
(
"the
queryRemoteServerThenU
pdateOAR return items is empty"
);
logger
.
debug
(
"the
u
pdateOAR return items is empty"
);
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdateOAR
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"
queryRemoteServerThenU
pdateOAR error."
,
e
);
logger
.
error
(
"
u
pdateOAR error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
...
...
atms-api/src/main/java/pwc/taxtech/atms/controller/ReportController.java
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.github.pagehelper.PageInfo
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
...
...
@@ -12,6 +13,7 @@ import pwc.taxtech.atms.constant.enums.EnumServiceType;
import
pwc.taxtech.atms.dpo.ReportDto
;
import
pwc.taxtech.atms.dto.FileDto
;
import
pwc.taxtech.atms.dto.OperationResultDto
;
import
pwc.taxtech.atms.dto.ReportAttachDto
;
import
pwc.taxtech.atms.dto.vatdto.*
;
import
pwc.taxtech.atms.vat.entity.PeriodCellTemplateConfig
;
import
pwc.taxtech.atms.vat.entity.PeriodJob
;
...
...
@@ -165,9 +167,15 @@ public class ReportController {
return
operationResultDto
;
}
@RequestMapping
(
value
=
"loadAttachList"
,
method
=
RequestMethod
.
GET
)
public
List
<
PwcReportAttach
>
loadAttachList
(
Long
col
,
Long
row
,
String
templateId
){
return
reportService
.
loadAttachList
(
col
,
row
,
templateId
);
@RequestMapping
(
"loadAttachList"
)
public
List
<
PwcReportAttach
>
loadAttachList
(
@RequestBody
ReportAttachDto
reportAttachDto
){
System
.
out
.
println
(
"sdsdfsd"
);
return
reportService
.
loadAttachList
(
reportAttachDto
);
}
@RequestMapping
(
"deleteAttach"
)
public
OperationResultDto
deleteAttach
(
Long
id
){
return
reportService
.
deleteAttach
(
id
);
}
...
...
atms-api/src/main/java/pwc/taxtech/atms/controller/RevenueConfController.java
View file @
02cb5205
...
...
@@ -13,6 +13,7 @@ import pwc.taxtech.atms.service.impl.RevenueConfService;
import
pwc.taxtech.atms.vat.entity.RevenueConfig
;
import
javax.annotation.Resource
;
import
java.util.List
;
@RestController
@RequestMapping
(
value
=
"api/v1/revenueConf"
)
...
...
@@ -26,6 +27,11 @@ public class RevenueConfController extends BaseController {
return
new
CamelPagingResultDto
<>(
revenueConfService
.
queryPage
(
param
));
}
@PostMapping
(
"queryAll"
)
public
List
<
RevenueConfResult
>
queryAll
(
@RequestBody
RevenueConfParam
param
)
{
return
revenueConfService
.
queryAll
(
param
);
}
@PostMapping
(
"add"
)
public
ApiResultDto
addConf
(
@RequestBody
RevConfAddDto
addDto
)
{
revenueConfService
.
addConfig
(
addDto
);
...
...
@@ -37,5 +43,4 @@ public class RevenueConfController extends BaseController {
revenueConfService
.
updateConfig
(
config
);
return
ApiResultDto
.
success
();
}
}
atms-api/src/main/java/pwc/taxtech/atms/controller/RevenueDetailController.java
0 → 100644
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
controller
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
pwc.taxtech.atms.dto.input.CamelPagingResultDto
;
import
pwc.taxtech.atms.dto.revenueDetail.RevenueDetailParam
;
import
pwc.taxtech.atms.dto.revenueDetail.RevenueDetailResult
;
import
pwc.taxtech.atms.service.impl.RevenueDetailService
;
import
javax.annotation.Resource
;
@RestController
@RequestMapping
(
value
=
"api/v1/revenueDetail"
)
public
class
RevenueDetailController
extends
BaseController
{
@Resource
private
RevenueDetailService
revenueDetailService
;
@PostMapping
(
"queryPage"
)
public
CamelPagingResultDto
<
RevenueDetailResult
>
queryPage
(
@RequestBody
RevenueDetailParam
param
)
{
return
new
CamelPagingResultDto
<>(
revenueDetailService
.
queryPage
(
param
));
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/ReportAttachDto.java
0 → 100644
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
dto
;
import
pwc.taxtech.atms.dto.revenuconf.RevenueConfParam
;
public
class
ReportAttachDto
extends
RevenueConfParam
{
private
Long
activeCol
;
private
Long
activeRow
;
private
String
activeTemplateId
;
public
Long
getActiveCol
()
{
return
activeCol
;
}
public
void
setActiveCol
(
Long
activeCol
)
{
this
.
activeCol
=
activeCol
;
}
public
Long
getActiveRow
()
{
return
activeRow
;
}
public
void
setActiveRow
(
Long
activeRow
)
{
this
.
activeRow
=
activeRow
;
}
public
String
getActiveTemplateId
()
{
return
activeTemplateId
;
}
public
void
setActiveTemplateId
(
String
activeTemplateId
)
{
this
.
activeTemplateId
=
activeTemplateId
;
}
@Override
public
String
toString
()
{
return
"ReportAttachDto{"
+
"activeCol="
+
activeCol
+
", activeRow="
+
activeRow
+
", activeTemplateId='"
+
activeTemplateId
+
'\''
+
'}'
;
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/revenueDetail/RevenueDetailParam.java
0 → 100644
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
dto
.
revenueDetail
;
import
pwc.taxtech.atms.dto.input.CamelPagingDto
;
import
java.io.Serializable
;
public
class
RevenueDetailParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
6544829900689477447L
;
private
CamelPagingDto
pageInfo
;
private
String
accountCode
;
private
String
accountName
;
private
String
type
;
private
String
profitCenterCode
;
private
String
profitCenterName
;
private
Integer
taxOn
;
private
String
productCode
;
private
String
productName
;
private
Integer
category
;
private
String
projectId
;
private
Integer
period
;
private
String
queryDate
;
public
String
getQueryDate
()
{
return
queryDate
;
}
public
void
setQueryDate
(
String
queryDate
)
{
this
.
queryDate
=
queryDate
;
}
public
String
getAccountCode
()
{
return
accountCode
;
}
public
void
setAccountCode
(
String
accountCode
)
{
this
.
accountCode
=
accountCode
;
}
public
String
getAccountName
()
{
return
accountName
;
}
public
void
setAccountName
(
String
accountName
)
{
this
.
accountName
=
accountName
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getProfitCenterCode
()
{
return
profitCenterCode
;
}
public
void
setProfitCenterCode
(
String
profitCenterCode
)
{
this
.
profitCenterCode
=
profitCenterCode
;
}
public
String
getProfitCenterName
()
{
return
profitCenterName
;
}
public
void
setProfitCenterName
(
String
profitCenterName
)
{
this
.
profitCenterName
=
profitCenterName
;
}
public
Integer
getTaxOn
()
{
return
taxOn
;
}
public
void
setTaxOn
(
Integer
taxOn
)
{
this
.
taxOn
=
taxOn
;
}
public
String
getProductCode
()
{
return
productCode
;
}
public
void
setProductCode
(
String
productCode
)
{
this
.
productCode
=
productCode
;
}
public
String
getProductName
()
{
return
productName
;
}
public
void
setProductName
(
String
productName
)
{
this
.
productName
=
productName
;
}
public
Integer
getCategory
()
{
return
category
;
}
public
void
setCategory
(
Integer
category
)
{
this
.
category
=
category
;
}
public
String
getProjectId
()
{
return
projectId
;
}
public
void
setProjectId
(
String
projectId
)
{
this
.
projectId
=
projectId
;
}
public
Integer
getPeriod
()
{
return
period
;
}
public
void
setPeriod
(
Integer
period
)
{
this
.
period
=
period
;
}
public
CamelPagingDto
getPageInfo
()
{
return
this
.
pageInfo
;
}
public
void
setPageInfo
(
CamelPagingDto
pageInfo
)
{
this
.
pageInfo
=
pageInfo
;
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/revenueDetail/RevenueDetailResult.java
0 → 100644
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
dto
.
revenueDetail
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
public
class
RevenueDetailResult
implements
Serializable
{
private
static
final
long
serialVersionUID
=
8385521700489579616L
;
private
String
subject
;
private
String
account
;
private
String
profitCenter
;
private
String
product
;
private
String
subjectExplain
;
private
String
accountExplain
;
private
String
profitCenterExplain
;
private
String
productExplain
;
private
BigDecimal
amount
;
private
String
type
;
private
String
category
;
private
String
taxOn
;
public
String
getSubject
()
{
return
subject
;
}
public
void
setSubject
(
String
subject
)
{
this
.
subject
=
subject
;
}
public
String
getAccount
()
{
return
account
;
}
public
void
setAccount
(
String
account
)
{
this
.
account
=
account
;
}
public
String
getProfitCenter
()
{
return
profitCenter
;
}
public
void
setProfitCenter
(
String
profitCenter
)
{
this
.
profitCenter
=
profitCenter
;
}
public
String
getProduct
()
{
return
product
;
}
public
void
setProduct
(
String
product
)
{
this
.
product
=
product
;
}
public
String
getSubjectExplain
()
{
return
subjectExplain
;
}
public
void
setSubjectExplain
(
String
subjectExplain
)
{
this
.
subjectExplain
=
subjectExplain
;
}
public
String
getAccountExplain
()
{
return
accountExplain
;
}
public
void
setAccountExplain
(
String
accountExplain
)
{
this
.
accountExplain
=
accountExplain
;
}
public
String
getProfitCenterExplain
()
{
return
profitCenterExplain
;
}
public
void
setProfitCenterExplain
(
String
profitCenterExplain
)
{
this
.
profitCenterExplain
=
profitCenterExplain
;
}
public
String
getProductExplain
()
{
return
productExplain
;
}
public
void
setProductExplain
(
String
productExplain
)
{
this
.
productExplain
=
productExplain
;
}
public
BigDecimal
getAmount
()
{
return
amount
;
}
public
void
setAmount
(
BigDecimal
amount
)
{
this
.
amount
=
amount
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getCategory
()
{
return
category
;
}
public
void
setCategory
(
String
category
)
{
this
.
category
=
category
;
}
public
String
getTaxOn
()
{
return
taxOn
;
}
public
void
setTaxOn
(
String
taxOn
)
{
this
.
taxOn
=
taxOn
;
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/vatdto/WrapPeriodJobDto.java
View file @
02cb5205
...
...
@@ -22,7 +22,7 @@ public class WrapPeriodJobDto {
public
static
final
String
STEP_UPDATE_CONFIG
=
"UpdateConfig"
;
public
static
PeriodJob
createReportGenJob
(
String
projectId
,
Integer
period
,
List
<
Template
>
templates
)
{
public
static
PeriodJob
createReportGenJob
(
String
projectId
,
Integer
period
,
List
<
Template
>
templates
,
List
<
String
>
dataValidateArray
)
{
MyAsserts
.
assertNotEmpty
(
templates
,
Exceptions
.
NOT_FOUND_TEMPLATE_EXCEPTION
);
PeriodJob
job
=
new
PeriodJob
();
job
.
setCreateTime
(
new
Date
());
...
...
@@ -33,10 +33,12 @@ public class WrapPeriodJobDto {
job
.
setCurrentStep
(
STEP_UPDATE_CONFIG
);
setStatus
(
job
,
STEP_UPDATE_CONFIG
,
STATUS_BEGIN
);
StringBuilder
builder
=
new
StringBuilder
(
STEP_UPDATE_CONFIG
);
dataValidateArray
.
forEach
(
m
->{
builder
.
append
(
","
).
append
(
m
);
});
templates
.
forEach
(
m
->
{
builder
.
append
(
","
).
append
(
m
.
getCode
());
});
job
.
setStepsCode
(
builder
.
toString
());
return
job
;
}
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/RevenueConfService.java
View file @
02cb5205
...
...
@@ -47,6 +47,12 @@ public class RevenueConfService extends BaseService {
return
pageInfo
;
}
public
List
<
RevenueConfResult
>
queryAll
(
RevenueConfParam
param
)
{
RevenueConfigExample
example
=
new
RevenueConfigExample
();
example
.
createCriteria
().
andOrgIdEqualTo
(
param
.
getOrgId
()).
andStartDateLessThanOrEqualTo
(
param
.
getStartDate
()).
andEndDateGreaterThanOrEqualTo
(
param
.
getEndDate
());
return
revenueConfigMapper
.
selectByExample
(
example
).
stream
()
.
map
(
o
->
beanUtil
.
copyProperties
(
o
,
new
RevenueConfResult
())).
collect
(
Collectors
.
toList
());
}
/**
* 新增配置
*
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/RevenueDetailService.java
0 → 100644
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
service
.
impl
;
import
com.github.pagehelper.Page
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
org.springframework.stereotype.Service
;
import
pwc.taxtech.atms.dpo.RevenueDetailDto
;
import
pwc.taxtech.atms.dto.revenueDetail.RevenueDetailParam
;
import
pwc.taxtech.atms.dto.revenueDetail.RevenueDetailResult
;
import
pwc.taxtech.atms.vat.dao.TrialBalanceFinalMapper
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
public
class
RevenueDetailService
extends
BaseService
{
@Resource
private
TrialBalanceFinalMapper
trialBalanceFinalMapper
;
/**
* @param param
* @return
*/
public
PageInfo
<
RevenueDetailResult
>
queryPage
(
RevenueDetailParam
param
)
{
Page
page
=
PageHelper
.
startPage
(
param
.
getPageInfo
().
getPageIndex
(),
param
.
getPageInfo
().
getPageSize
());
List
<
RevenueDetailDto
>
dataList
=
trialBalanceFinalMapper
.
queryBalanceWithRevenueConfig
(
param
.
getAccountCode
(),
param
.
getAccountName
(),
param
.
getType
(),
param
.
getProfitCenterCode
(),
param
.
getProfitCenterName
(),
param
.
getTaxOn
(),
param
.
getProductCode
(),
param
.
getProductName
(),
param
.
getCategory
(),
param
.
getProjectId
(),
param
.
getPeriod
(),
param
.
getQueryDate
());
PageInfo
<
RevenueDetailResult
>
pageInfo
=
new
PageInfo
<>(
dataList
.
stream
()
.
map
(
o
->
beanUtil
.
copyProperties
(
o
,
new
RevenueDetailResult
())).
collect
(
Collectors
.
toList
()));
pageInfo
.
setTotal
(
page
.
getTotal
());
return
pageInfo
;
}
}
atms-api/src/main/java/pwc/taxtech/atms/vat/service/impl/ReportServiceImpl.java
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
vat
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.github.pagehelper.Page
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
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.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.FormulaEvaluator
;
import
org.apache.poi.ss.usermodel.Workbook
;
...
...
@@ -23,6 +27,8 @@ import pwc.taxtech.atms.dao.*;
import
pwc.taxtech.atms.dpo.ReportDto
;
import
pwc.taxtech.atms.dto.FileDto
;
import
pwc.taxtech.atms.dto.OperationResultDto
;
import
pwc.taxtech.atms.dto.ReportAttachDto
;
import
pwc.taxtech.atms.dto.revenuconf.RevenueConfResult
;
import
pwc.taxtech.atms.dto.vatdto.*
;
import
pwc.taxtech.atms.entity.*
;
import
pwc.taxtech.atms.exception.Exceptions
;
...
...
@@ -273,12 +279,11 @@ public class ReportServiceImpl extends BaseService {
}
private
void
updateConfig
(
String
projectId
,
Integer
period
,
Boolean
isMergeManualData
,
List
<
Template
>
templates
,
PeriodJob
job
)
{
setStatus
(
job
,
STATUS_BEGIN
);
periodJobMapper
.
updateByPrimaryKey
(
job
);
List
<
Long
>
exceptTemplateIds
=
templateMapper
.
getIdsForExceptTemplate
();
clearPeriodData
(
projectId
,
period
,
exceptTemplateIds
,
isMergeManualData
);
copyTemplateAndConfigFromAdmin
(
projectId
,
templates
,
period
);
setStatus
(
job
,
STATUS_END
);
periodJobMapper
.
updateByPrimaryKey
(
job
);
}
private
List
<
Template
>
getTemplatesByProjectId
(
String
projectId
)
{
...
...
@@ -489,13 +494,22 @@ public class ReportServiceImpl extends BaseService {
return
operationResultDto
;
}
List
<
Template
>
templates
=
getTemplatesByProjectId
(
projectId
);
PeriodJob
genJob
=
WrapPeriodJobDto
.
createReportGenJob
(
projectId
,
periodParam
,
templates
);
List
<
String
>
dataValidateArray
=
new
ArrayList
<
String
>();
/*dataValidateArray.add("DA001");
dataValidateArray.add("DA002");
dataValidateArray.add("DA003");*/
dataValidateArray
.
add
(
"DA004"
);
PeriodJob
genJob
=
WrapPeriodJobDto
.
createReportGenJob
(
projectId
,
periodParam
,
templates
,
dataValidateArray
);
periodJobMapper
.
insert
(
genJob
);
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
//进行数据校验
DataValidation
(
periodParam
,
projectId
,
genJob
);
updateConfig
(
projectId
,
periodParam
,
isMergeManualData
,
templates
,
genJob
);
PeriodResources
resources
=
reportGenerator
.
getPeriodResources
(
projectId
,
periodParam
,
...
...
@@ -519,6 +533,7 @@ public class ReportServiceImpl extends BaseService {
periodJobMapper
.
updateByPrimaryKey
(
genJob
);
}
}
}).
start
();
operationResultDto
.
setData
(
new
PeriodJobDto
().
copyFromPeriodJob
(
genJob
));
operationResultDto
.
setResult
(
true
);
...
...
@@ -528,6 +543,67 @@ public class ReportServiceImpl extends BaseService {
}
return
operationResultDto
;
}
@Autowired
private
TrialBalanceMapper
trialBalanceMapper
;
@Autowired
private
AdjustmentTableMapper
adjustmentTableMapper
;
@Autowired
private
ProfitLossStatementMapper
profitLossStatementMapper
;
@Autowired
private
JournalEntryMapper
journalEntryMapper
;
/* @Autowired
private CitJour*/
//数据校验
private
void
DataValidation
(
Integer
periodParam
,
String
projectId
,
PeriodJob
genJob
)
{
setStatus
(
genJob
,
"DA004"
,
STATUS_BEGIN
);
//本期余额表
/* TrialBalanceExample trialBalanceExample = new TrialBalanceExample();
TrialBalanceExample.Criteria criteria = trialBalanceExample.createCriteria();
criteria.andProjectIdEqualTo(projectId);
criteria.andPeriodEqualTo(periodParam);
TrialBalance trialBalances = trialBalanceMapper.selectByExample(trialBalanceExample).get(0);
//本期利润表
ProfitLossStatementExample profitLossStatementExample = new ProfitLossStatementExample();
ProfitLossStatementExample.Criteria criteria2 = profitLossStatementExample.createCriteria();
criteria2.andProjectIdEqualTo(projectId);
criteria2.andPeriodEqualTo(periodParam);
ProfitLossStatement profitLossStatements = profitLossStatementMapper.selectByExample(profitLossStatementExample).get(0);*/
//调整表
Map
<
String
,
Object
>
map1
=
new
HashedMap
();
map1
.
put
(
"projectId"
,
projectId
);
map1
.
put
(
"period"
,
periodParam
);
if
((
periodParam
+
""
).
length
()
==
1
){
map1
.
put
(
"period"
,
"0"
+
periodParam
);
}
else
{
map1
.
put
(
"period"
,
""
+
periodParam
);
}
List
<
AdjustmentTable
>
adjustmentTables
=
adjustmentTableMapper
.
selectBeforeAdjustData
(
map1
);
Map
<
String
,
Object
>
map2
=
new
HashedMap
();
map2
.
put
(
"projectId"
,
projectId
);
if
((
periodParam
+
""
).
length
()
==
1
){
map2
.
put
(
"period"
,
"0"
+
periodParam
);
}
else
{
map2
.
put
(
"period"
,
""
+
periodParam
);
}
List
<
JournalEntry
>
journalEntries
=
journalEntryMapper
.
selectNowAdjustData
(
map2
);
for
(
int
i
=
0
;
i
<
adjustmentTables
.
size
();
i
++){
for
(
int
j
=
0
;
j
<
journalEntries
.
size
();
j
++){
if
(
journalEntries
.
get
(
j
).
getSegment3
().
equals
(
adjustmentTables
.
get
(
j
).
getSegment3
())
&&
journalEntries
.
get
(
j
).
getSegment5
().
equals
(
adjustmentTables
.
get
(
j
).
getSegment5
())&&
journalEntries
.
get
(
j
).
getSegment6
().
equals
(
adjustmentTables
.
get
(
j
).
getSegment6
())
&&
journalEntries
.
get
(
j
).
getPeriodJrMinDr
()
!=
adjustmentTables
.
get
(
j
).
getPeriodDrMixCr
()
){
setStatus
(
genJob
,
STATUS_ERROR
);
}
}
}
setStatus
(
genJob
,
STATUS_END
);
periodJobMapper
.
updateByPrimaryKey
(
genJob
);
}
public
List
<
CellTemplateReferenceDto
>
getTemplateReferences
(
int
period
)
{
return
new
ArrayList
<>();
...
...
@@ -1333,17 +1409,37 @@ public class ReportServiceImpl extends BaseService {
pwcReportAttach
.
setUploadUser
(
file
.
getUploadUser
());
pwcReportAttach
.
setFileUrl
(
file
.
getFileUrl
());
pwcReportAttach
.
setSize
(
file
.
getSize
());
pwcReportAttach
.
setRemarks
(
file
.
getRemarks
());
pwcReportAttachMapper
.
insert
(
pwcReportAttach
);
System
.
out
.
println
(
"==>>>附件绑定成功"
);
}
public
List
<
PwcReportAttach
>
loadAttachList
(
Long
col
,
Long
row
,
String
templateId
)
{
public
List
<
PwcReportAttach
>
loadAttachList
(
ReportAttachDto
param
)
{
PwcReportAttachExample
example
=
new
PwcReportAttachExample
();
Page
page
=
PageHelper
.
startPage
(
param
.
getPageInfo
().
getPageIndex
(),
param
.
getPageInfo
().
getPageSize
());
PwcReportAttachExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andColEqualTo
(
col
);
criteria
.
andRowEqualTo
(
row
);
criteria
.
andTemplateIdEqualTo
(
templateId
);
criteria
.
andColEqualTo
(
param
.
getActiveCol
()
);
criteria
.
andRowEqualTo
(
param
.
getActiveRow
()
);
criteria
.
andTemplateIdEqualTo
(
param
.
getActiveTemplateId
()
);
example
.
setOrderByClause
(
"create_time DESC"
);
/* PageInfo<PwcReportAttach> pageInfo = new PageInfo<PwcReportAttach>();
pageInfo.setTotal(page.getTotal());*/
return
pwcReportAttachMapper
.
selectByExample
(
example
);
}
/**
* 删除附件
* @param id
* @return
*/
public
OperationResultDto
deleteAttach
(
Long
id
)
{
PwcReportAttachExample
example
=
new
PwcReportAttachExample
();
OperationResultDto
<
Object
>
objectOperationResultDto
=
new
OperationResultDto
<>();
example
.
createCriteria
().
andIdEqualTo
(
id
);
int
i
=
pwcReportAttachMapper
.
deleteByExample
(
example
);
if
(
i
>
0
){
objectOperationResultDto
.
setResultMsg
(
"success"
);
}
return
objectOperationResultDto
;
}
}
atms-dao/src/main/java/pwc/taxtech/atms/dpo/RevenueDetailDto.java
0 → 100644
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
dpo
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
public
class
RevenueDetailDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3774022182707357862L
;
private
String
subject
;
private
String
account
;
private
String
profitCenter
;
private
String
product
;
private
String
subjectExplain
;
private
String
accountExplain
;
private
String
profitCenterExplain
;
private
String
productExplain
;
private
BigDecimal
amount
;
private
String
type
;
private
String
category
;
private
String
taxOn
;
public
String
getSubject
()
{
return
subject
;
}
public
void
setSubject
(
String
subject
)
{
this
.
subject
=
subject
;
}
public
String
getAccount
()
{
return
account
;
}
public
void
setAccount
(
String
account
)
{
this
.
account
=
account
;
}
public
String
getProfitCenter
()
{
return
profitCenter
;
}
public
void
setProfitCenter
(
String
profitCenter
)
{
this
.
profitCenter
=
profitCenter
;
}
public
String
getProduct
()
{
return
product
;
}
public
void
setProduct
(
String
product
)
{
this
.
product
=
product
;
}
public
String
getSubjectExplain
()
{
return
subjectExplain
;
}
public
void
setSubjectExplain
(
String
subjectExplain
)
{
this
.
subjectExplain
=
subjectExplain
;
}
public
String
getAccountExplain
()
{
return
accountExplain
;
}
public
void
setAccountExplain
(
String
accountExplain
)
{
this
.
accountExplain
=
accountExplain
;
}
public
String
getProfitCenterExplain
()
{
return
profitCenterExplain
;
}
public
void
setProfitCenterExplain
(
String
profitCenterExplain
)
{
this
.
profitCenterExplain
=
profitCenterExplain
;
}
public
String
getProductExplain
()
{
return
productExplain
;
}
public
void
setProductExplain
(
String
productExplain
)
{
this
.
productExplain
=
productExplain
;
}
public
BigDecimal
getAmount
()
{
return
amount
;
}
public
void
setAmount
(
BigDecimal
amount
)
{
this
.
amount
=
amount
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getCategory
()
{
return
category
;
}
public
void
setCategory
(
String
category
)
{
this
.
category
=
category
;
}
public
String
getTaxOn
()
{
return
taxOn
;
}
public
void
setTaxOn
(
String
taxOn
)
{
this
.
taxOn
=
taxOn
;
}
}
atms-dao/src/main/java/pwc/taxtech/atms/vat/dao/AdjustmentTableMapper.java
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
vat
.
dao
;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.session.RowBounds
;
...
...
@@ -108,4 +110,5 @@ public interface AdjustmentTableMapper extends MyVatMapper {
int
insertBatch
(
List
<
AdjustmentTable
>
rlits
);
List
<
AdjustmentTable
>
selectBeforeAdjustData
(
Map
<
String
,
Object
>
map1
);
}
\ No newline at end of file
atms-dao/src/main/java/pwc/taxtech/atms/vat/dao/JournalEntryMapper.java
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
vat
.
dao
;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.session.RowBounds
;
...
...
@@ -109,4 +111,5 @@ public interface JournalEntryMapper extends MyVatMapper {
List
<
JournalEntry
>
selectByCondition
(
@Param
(
"jeCondition"
)
JournalEntryCondition
journalEntryCondition
);
List
<
JournalEntry
>
selectNowAdjustData
(
Map
<
String
,
Object
>
map2
);
}
\ No newline at end of file
atms-dao/src/main/java/pwc/taxtech/atms/vat/dao/TrialBalanceFinalMapper.java
View file @
02cb5205
package
pwc
.
taxtech
.
atms
.
vat
.
dao
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.session.RowBounds
;
import
pwc.taxtech.atms.MyVatMapper
;
import
pwc.taxtech.atms.dpo.RevenueDetailDto
;
import
pwc.taxtech.atms.vat.entity.TrialBalanceFinal
;
import
pwc.taxtech.atms.vat.entity.TrialBalanceFinalExample
;
import
java.util.List
;
@Mapper
public
interface
TrialBalanceFinalMapper
extends
MyVatMapper
{
/**
...
...
@@ -105,4 +107,18 @@ public interface TrialBalanceFinalMapper extends MyVatMapper {
* @mbg.generated
*/
int
updateByPrimaryKey
(
TrialBalanceFinal
record
);
List
<
RevenueDetailDto
>
queryBalanceWithRevenueConfig
(
@Param
(
"accountCode"
)
String
accountCode
,
@Param
(
"accountName"
)
String
accountName
,
@Param
(
"type"
)
String
type
,
@Param
(
"profitCenterCode"
)
String
profitCenterCode
,
@Param
(
"profitCenterName"
)
String
profitCenterName
,
@Param
(
"taxOn"
)
Integer
taxOn
,
@Param
(
"productCode"
)
String
productCode
,
@Param
(
"productName"
)
String
productName
,
@Param
(
"category"
)
Integer
category
,
@Param
(
"projectId"
)
String
projectId
,
@Param
(
"period"
)
Integer
period
,
@Param
(
"queryDate"
)
String
queryDate
);
}
\ No newline at end of file
atms-dao/src/main/java/pwc/taxtech/atms/vat/entity/AdjustmentTable.java
View file @
02cb5205
...
...
@@ -35,6 +35,8 @@ public class AdjustmentTable extends BaseEntity implements Serializable {
*/
private
String
organizationId
;
/**
* Database Column Remarks:
* 项目ID
...
...
@@ -288,6 +290,14 @@ public class AdjustmentTable extends BaseEntity implements Serializable {
*/
private
BigDecimal
periodDrBeq
;
/**
* 本位币借方发生额-本位币贷方发生额
*/
private
BigDecimal
periodDrMixCr
;
/**
* Database Column Remarks:
* 本位币本期贷方发生额
...
...
@@ -496,6 +506,14 @@ public class AdjustmentTable extends BaseEntity implements Serializable {
return
segment3
;
}
public
BigDecimal
getPeriodDrMixCr
()
{
return
periodDrMixCr
;
}
public
void
setPeriodDrMixCr
(
BigDecimal
periodDrMixCr
)
{
this
.
periodDrMixCr
=
periodDrMixCr
;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column adjustment_table.segment3
...
...
atms-dao/src/main/java/pwc/taxtech/atms/vat/entity/JournalEntry.java
View file @
02cb5205
...
...
@@ -221,6 +221,15 @@ public class JournalEntry extends BaseEntity implements Serializable {
* @mbg.generated
*/
private
String
voucherNum
;
private
BigDecimal
periodJrMinDr
;
public
BigDecimal
getPeriodJrMinDr
()
{
return
periodJrMinDr
;
}
public
void
setPeriodJrMinDr
(
BigDecimal
periodJrMinDr
)
{
this
.
periodJrMinDr
=
periodJrMinDr
;
}
/**
* Database Column Remarks:
...
...
atms-dao/src/main/resources/pwc/taxtech/atms/vat/dao/AdjustmentTableMapper.xml
View file @
02cb5205
...
...
@@ -666,4 +666,35 @@
order by ${orderByClause}
</if>
</select>
<select
id =
"selectBeforeAdjustData"
parameterType=
"java.util.Map"
resultType=
"pwc.taxtech.atms.vat.entity.AdjustmentTable"
>
SELECT
max(CASE #{period}
WHEN 0 THEN
0
ELSE
(
t.period_dr_beq - t.period_cr_beq
) END )
periodDrMixCr,
max(t.period),
max(t.project_id),
t.segment3,
t.segment5,
t.segment6
FROM
adjustment_table t
WHERE
1 = 1
<if
test=
"projectId!= '' and projectId != null"
>
and t.project_id = #{projectId}
</if>
<if
test=
"period !=null and period != '' "
>
AND substring(t.period, -2) = ${period}
</if>
group by t.segment3, t.segment5, t.segment6
</select>
</mapper>
\ No newline at end of file
atms-dao/src/main/resources/pwc/taxtech/atms/vat/dao/JournalEntryMapper.xml
View file @
02cb5205
...
...
@@ -1299,4 +1299,25 @@
order by ${orderByClause}
</if>
</select>
<select
id =
"selectNowAdjustData"
parameterType=
"java.util.Map"
resultType=
"pwc.taxtech.atms.vat.entity.JournalEntry"
>
SELECT
max(t.entered_dr - t.entered_cr) as periodJrMinDr,
max(t.period),
max(t.project_id),
t.segment3,
t.segment5,
t.segment6
FROM
journal_entry t
where 1 =1 and t.description like '%调表不调账%'
<if
test=
"projectId != null and projectId != '' "
>
and t.project_id = #{projectId}
</if>
<if
test=
"period!= null and period != '' "
>
and substring(t.period, -2) = ${period}
</if>
group by t.segment3, t.segment5, t.segment6
</select>
</mapper>
\ No newline at end of file
atms-dao/src/main/resources/pwc/taxtech/atms/vat/dao/extends/TrialBalanceFinalExtendsMapper.xml
0 → 100644
View file @
02cb5205
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"pwc.taxtech.atms.vat.dao.TrialBalanceFinalMapper"
>
<select
id=
"queryBalanceWithRevenueConfig"
resultType=
"pwc.taxtech.atms.dpo.RevenueDetailDto"
>
select detail.*
from (
select tbf.segment1 as subject,
tbf.segment3 as account,
tbf.segment5 profitCenter,
tbf.segment6 product,
tbf.segment1_name subjectExplain,
tbf.segment3_name accountExplain,
tbf.segment5_name profitCenterExplain,
tbf.segment6_name productExplain,
tbf.period_dr amount,
rc.name type,
rc.revenue_type category,
rc.tax_type taxOn,
case
when tbf.segment3 like '4001%' and rc.id is null then 1
when tbf.segment3 like '4002%' and rc.id is null then 1
when tbf.segment3 like '4010%' and rc.id is null then 1
when tbf.segment3 like '8002%' and rc.id is null then 1
<![CDATA[WHEN rc.id IS NOT NULL and (rc.start_date > #{queryDate} or rc.end_date < #{queryDate}) then 1]]>
<![CDATA[WHEN rc.id IS NOT NULL and rc.start_date <= #{queryDate} and rc.end_date >= #{queryDate} THEN 2]]>
else 3 end as isEmpty
from trial_balance_final as tbf
left join
revenue_config as rc
on
rc.org_id = tbf.organization_id
and
rc.tb_segment3 = tbf.segment3
and
rc.tb_segment5 = tbf.segment5
and
rc.tb_segment6 = tbf.segment6
where
tbf.project_id = #{projectId}
and tbf.period = #{period}
<if
test=
"accountCode != null and accountCode != ''"
>
and tbf.segment3 like concat('%',#{accountCode},'%')
</if>
<if
test=
"accountName != null and accountName != ''"
>
and tbf.segment3_name like concat('%',#{accountName},'%')
</if>
<if
test=
"profitCenterCode != null and profitCenterCode != ''"
>
and tbf.segment5 like concat('%',#{profitCenterCode},'%')
</if>
<if
test=
"profitCenterName != null and profitCenterName != ''"
>
and tbf.segment5_name like concat('%',#{profitCenterName},'%')
</if>
<if
test=
"productCode != null and productCode != ''"
>
and tbf.segment6 like concat('%',#{productCode},'%')
</if>
<if
test=
"productName != null and productName != ''"
>
and tbf.segment6_name like concat('%',#{productName},'%')
</if>
<if
test=
"type != null"
>
and rc.name = #{type}
</if>
<if
test=
"category != null"
>
and rc.revenue_type = #{category}
</if>
<if
test=
"taxOn != null"
>
and rc.tax_type = #{taxOn}
</if>
) as detail
where
<![CDATA[detail.isEmpty < 3]]>
order by detail.isEmpty
</select>
</mapper>
\ No newline at end of file
atms-web/src/main/webapp/Scripts/module-part1.js
View file @
02cb5205
...
...
@@ -966,6 +966,22 @@ var vatModule = angular.module('app.vat', ['ui.grid', 'ui.grid.selection', 'ui.g
sticky
:
true
});
$stateProvider
.
state
({
name
:
'vat.reductionData.revenueDetail'
,
url
:
'/revenueDetail'
,
views
:
{
'@vat.reductionData'
:
{
controller
:
[
'$scope'
,
'$stateParams'
,
'appTranslation'
,
function
(
$scope
,
$stateParams
,
appTranslation
)
{
appTranslation
.
load
([
appTranslation
.
vat
]);
}],
template
:
'<vat-revenue-detail></vat-revenue-detail>'
,
}
},
resolve
:
scriptDependencyProvider
.
createDependenciesMap
(
scriptDependencyProvider
.
vat
),
deepStateRedirect
:
true
,
sticky
:
true
});
$stateProvider
.
state
({
name
:
'vat.reductionData.unbilledInvoice'
,
url
:
'/unbilledInvoice'
,
...
...
atms-web/src/main/webapp/app-resources/i18n/en-us/vat.json
View file @
02cb5205
...
...
@@ -1841,8 +1841,6 @@
"extractInvoiceData"
:
"Extract Invoice Data"
,
"ExtractInvoiceDataTitle"
:
"Extract Invoice Data"
,
"TBInterCompany"
:
"Inter-Company"
,
"~MustBeEndOneApp"
:
"I Must be the End One, please!"
"~MustBeEndOneApp"
:
"I Must be the End One, please!"
,
"dataValidate"
:
"data Validate"
}
\ No newline at end of file
atms-web/src/main/webapp/app-resources/i18n/zh-CN/vat.json
View file @
02cb5205
...
...
@@ -1745,6 +1745,7 @@
"c_vatType"
:
"增值税纳税类型"
,
"c_year"
:
"申报年"
,
"caculateData"
:
"数据处理"
,
"revenueDetail"
:
"收入明细"
,
"cancelled"
:
"已作废"
,
"caseNumberColon"
:
"事件号"
,
"chartData"
:
"数据"
,
...
...
@@ -2106,6 +2107,31 @@
"RevenueGetOrgError"
:
"获取机构信息失败"
,
"RevenueAddSuccess"
:
"添加成功"
,
"RevenueUpdateSuccess"
:
"更新成功"
,
"dataValidate"
:
"数据校验"
,
"RevDetail"
:
"收入明细"
,
"RevSearchAccountCode"
:
"科目代码"
,
"RevSearchAccountName"
:
"科目名称"
,
"RevSearchProfitCenterCode"
:
"利润中心代码"
,
"RevSearchProfitCenterName"
:
"利润中心名称"
,
"RevSearchProductCode"
:
"产品代码"
,
"RevSearchProductName"
:
"产品名称"
,
"RevSearchType"
:
"收入类型"
,
"RevSearchCategory"
:
"收入类别"
,
"RevSearchTaxOn"
:
"计税方法"
,
"RevDetailSearch"
:
"查询"
,
"RevDetailReset"
:
"重置"
,
"RevDetailColSerialNo"
:
"序号"
,
"RevDetailColSubject"
:
"主体"
,
"RevDetailColAccount"
:
"科目"
,
"RevDetailColProfitCenter"
:
"利润中心"
,
"RevDetailProduct"
:
"产品"
,
"RevDetailColSubjectExp"
:
"主体说明"
,
"RevDetailColAccountExp"
:
"科目说明"
,
"RevDetailColProfitCenterExp"
:
"利润中心说明"
,
"RevDetailProductExp"
:
"产品说明"
,
"RevDetailAmount"
:
"发生额"
,
"RevDetailType"
:
"收入类型"
,
"RevDetailCategory"
:
"收入类别"
,
"RevDetailTaxOn"
:
"计税方法"
,
"~MustBeEndOneApp"
:
"我必须是最后一个!"
}
\ No newline at end of file
atms-web/src/main/webapp/app/common/controls/tax-report-cell-detail-modal/tax-report-cell-detail-modal.ctrl.js
View file @
02cb5205
...
...
@@ -2338,11 +2338,8 @@
columns
:
[{
caption
:
'序号'
,
dataField
:
"xh"
},
{
caption
:
'文件名'
,
dataField
:
"fileName"
,
cellTemplate
:
function
(
container
,
options
)
{
try
{
$
(
'<i class="fa fa-pencil-square-o" style="cursor: pointer"></i> '
)
.
on
(
'click'
,
function
()
{
location
.
href
=
options
.
data
.
fileUrl
;
});
$
(
'<a href="'
+
options
.
data
.
fileUrl
+
'" target="_blank" style="cursor: pointer">"'
+
options
.
data
.
fileName
+
'"</a> '
)
.
appendTo
(
container
);
}
catch
(
e
)
{
$log
.
error
(
e
);
...
...
@@ -2352,15 +2349,25 @@
{
caption
:
'文件大小'
,
dataField
:
"size"
},
{
caption
:
'备注信息'
,
dataField
:
"remarks"
},
{
caption
:
'用户'
,
dataField
:
"uploadUser"
},
{
caption
:
'操作时间'
,
dataField
:
"createTime"
}
{
caption
:
'操作时间'
,
dataField
:
"createTime"
},
{
caption
:
'操作'
,
cellTemplate
:
function
(
container
,
options
)
{
try
{
$
(
'<button type="button" class="btn btn-in-grid" onclick = "deleteAttach('
+
options
.
data
.
id
+
')"><i class="material-icons middle" style="vertical-align: text-bottom">delete</i>删除</button> '
)
.
appendTo
(
container
);
}
catch
(
e
)
{
$log
.
error
(
e
);
}
}
}
],
showBorders
:
true
,
showBorders
:
true
/*
,
editing: {
mode: "cell",
allowAdding: false,
allowUpdating: false,
allowDeleting
:
true
},
allowDeleting: true,
}*/
,
onInitialized
:
function
(
e
){
$scope
.
dataGrid
=
e
.
component
;
},
...
...
@@ -2368,27 +2375,61 @@
dataSource
:
'_gridData'
}
};
window
.
deleteAttach
=
function
(
id
,
data
){
swal
({
title
:
"warning!"
,
text
:
"确定删除该附件?"
,
type
:
"warning"
,
showCancelButton
:
true
,
confirmButtonColor
:
"#DD6B55"
,
confirmButtonText
:
$translate
.
instant
(
'Yes'
),
cancelButtonText
:
$translate
.
instant
(
'No'
),
closeOnConfirm
:
true
,
closeOnCancel
:
true
},
function
(
tmpConfirm
)
{
if
(
tmpConfirm
)
{
vatReportService
.
deleteAttach
(
id
).
success
(
function
(
res
){
if
(
res
.
resultMsg
==
"success"
){
$scope
.
loadAttach
();
}
});
}
});
}
//加载附件信息列表
$scope
.
loadAttach
=
function
()
{
$scope
.
_gridData
=
[];
$scope
.
activeSheet
.
pageInfo
=
$scope
.
pagingOptions
;
if
(
$scope
.
activeSheet
.
activeRow
&&
$scope
.
activeSheet
.
activeCol
&&
$scope
.
activeSheet
.
activeTemplateId
)
{
//获取附件信息
vatReportService
.
loadAttachList
(
$scope
.
activeSheet
).
success
(
function
(
data
)
{
var
_xh
=
0
;
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
){
var
_data
=
{
xh
:
i
+
1
,
fileName
:
data
[
i
].
fileName
,
size
:
data
[
i
].
size
,
remarks
:
data
[
i
].
remarks
,
uploadUser
:
data
[
i
].
uploadUser
,
createTime
:
data
[
i
].
createTime
if
(
data
)
{
var
_xh
=
0
;
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
){
/* var _data1 = {
xh : i+1,
fileName : data[i].fileName,
size : data[i].size,
remarks : data[i].remarks,
uploadUser : data[i].uploadUser,
createTime : data[i].createTime,
fileUrl : data[i].
}*/
data
[
i
].
xh
=
i
+
1
;
$scope
.
_gridData
.
push
(
data
[
i
]);
_xh
=
i
+
1
;
}
$scope
.
_gridData
.
push
(
_data
);
_xh
=
i
+
1
;
$scope
.
xh
=
_xh
;
//$scope._gridData = data;
//$scope.pagingOptions.totalItems = data.totalCount;
}
else
{
SweetAlert
.
error
(
$translate
.
instant
(
'SystemError'
));
}
$scope
.
xh
=
_xh
;
//刷新附件列表
// $scope.dataGrid.refresh();
// dataGrid.refresh();
...
...
@@ -2441,7 +2482,8 @@
size
:
dataSource
.
data
.
size
,
remarks
:
dataSource
.
data
.
remarks
,
uploadUser
:
dataSource
.
data
.
uploadUser
,
createTime
:
dataSource
.
data
.
createTime
createTime
:
dataSource
.
data
.
createTime
,
fileUrl
:
dataSource
.
data
.
fileUrl
}
$scope
.
_gridData
.
push
(
_data
);
...
...
@@ -2494,6 +2536,22 @@
}
}
});
//点击分页
/* //刷新页面
$scope.refreshConfigGrid = function () {
$http.post('/revenueConf/queryPage',{pageInfo: $scope.pagingOptions}, apiConfig.createVat())
.success(function (res) {
if (res && res.list) {
$scope.pageConfDataSource = res.list;
$scope.pagingOptions.totalItems = res.pageInfo.totalCount;
}else {
SweetAlert.error($translate.instant('SystemError'));
}
})
};*/
//保存按钮
$scope
.
uploadCellAttachment
=
function
()
{
uploadfile
(
$scope
.
fileNameWrapper
);
...
...
@@ -2504,8 +2562,12 @@
(
function
()
{
//分页的设置
$scope
.
pagingOptions
=
{
pageIndex
:
1
,
//当前页码
totalItems
:
0
,
//总数据
pageSize
:
20
,
//每页多少条数据
};
$scope
.
hidePanel
=
hidePanel
;
$scope
.
isExpand
=
true
;
$scope
.
togglePanel
=
togglePanel
;
...
...
atms-web/src/main/webapp/app/common/controls/tax-report-cell-detail-modal/tax-report-cell-detail-modal.html
View file @
02cb5205
...
...
@@ -280,11 +280,18 @@
<div
class=
"attach-upload"
ng-show=
"tabType===5"
style=
""
>
<button
style=
"margin-bottom:20px;"
class=
"btn btn-primary"
ng-click=
"openAddCellAttachmentDialog();"
>
上传文档
</button>
<div
class=
"dt-init-wrapper"
>
<div
id=
"cellAttachmentDataGrid"
dx-data-grid=
"cellAttachmentDataGirdOptions"
class=
"dx-widget dx-visibility-change-handler"
role=
"application"
aria-label=
"Data grid"
style=
"height: 450px;"
>
</div>
<!-- <div class="page-footer">
<ack-pagination page-options="pagingOptions"
refresh-table="loadAttach()"></ack-pagination>
</div>-->
</div>
</div>
</div>
...
...
atms-web/src/main/webapp/app/common/utils/constant.js
View file @
02cb5205
...
...
@@ -500,8 +500,9 @@ constant.vatPermission = {
saveCode
:
'02.003.002.002'
},
revenueDetailCode
:
'02.003.004'
,
caculateDataCode
:
'02.003.003'
,
unbilledInvoiceCode
:
'02.003.004'
,
},
reportView
:
{
...
...
@@ -1435,7 +1436,7 @@ constant.fileTypeList = [
{
code
:
2
,
type
:
"所有者权益变动表和汇率表"
}
];
constant
.
maxButtonTitleLength
=
20
;
...
...
atms-web/src/main/webapp/app/common/vatservices/vatReportService.js
View file @
02cb5205
...
...
@@ -196,8 +196,12 @@
return
$http
.
get
(
'/Report/hasManualDataSource/'
+
projectId
+
'/'
+
period
,
apiConfig
.
createVat
());
},
loadAttachList
:
function
(
activeSheet
){
return
$http
.
get
(
'/Report/loadAttachList?col='
+
activeSheet
.
activeCol
+
"&row="
+
activeSheet
.
activeRow
+
"&templateId="
+
activeSheet
.
activeTemplateId
,
apiConfig
.
createVat
());
}
return
$http
.
post
(
'/Report/loadAttachList'
,
activeSheet
,
apiConfig
.
createVat
());
},
deleteAttach
:
function
(
id
){
var
config
=
{
isBusyRequest
:
true
};
return
$http
.
get
(
'/Report/deleteAttach?id='
+
id
,
apiConfig
.
create
(
config
));
}
};
...
...
atms-web/src/main/webapp/app/dataImport/vat-revenue-config/vat-revenue-config.ctrl.js
View file @
02cb5205
ci
tModule
.
controller
(
'VatRevenueConfigController'
,
[
'$scope'
,
'$log'
,
'$translate'
,
'$timeout'
,
'SweetAlert'
,
'$q'
,
va
tModule
.
controller
(
'VatRevenueConfigController'
,
[
'$scope'
,
'$log'
,
'$translate'
,
'$timeout'
,
'SweetAlert'
,
'$q'
,
'$interval'
,
'dxDataGridService'
,
'$http'
,
'apiConfig'
,
function
(
$scope
,
$log
,
$translate
,
$timeout
,
SweetAlert
,
$q
,
$interval
,
dxDataGridService
,
$http
,
apiConfig
)
{
'use strict'
;
...
...
atms-web/src/main/webapp/app/framework/app-overview/app-overview.ctrl.js
View file @
02cb5205
...
...
@@ -946,7 +946,9 @@
// }
else
if
(
data
[
constant
.
vatPermission
.
dataManage
.
caculateDataCode
])
{
$state
.
go
(
'vat.reductionData.caculateData'
);
}
/*else if (data[constant.vatPermission.dataManage.unbilledInvoiceCode]) {
}
else
if
(
data
[
constant
.
vatPermission
.
dataManage
.
revenueDetailCode
]){
$state
.
go
(
'vat.reductionData.revenueDetail'
);
}
/*else if (data[constant.vatPermission.dataManage.unbilledInvoiceCode]) {
$state.go('vat.reductionData.unbilledInvoice');
}*/
else
if
(
data
[
constant
.
vatPermission
.
reportView
.
bsplCode
]
||
data
[
constant
.
vatPermission
.
reportView
.
taxReturnCode
])
{
$state
.
go
(
'vat.generateReport'
);
...
...
atms-web/src/main/webapp/app/vat/import/vat-import-layout/vat-import-layout.ctrl.js
View file @
02cb5205
...
...
@@ -103,6 +103,10 @@ function ($scope, $log, $translate, $location, loginContext, enums, vatSessionSe
name
:
'caculateData'
,
permission
:
constant
.
vatPermission
.
dataManage
.
caculateDataCode
,
text
:
$translate
.
instant
(
'caculateData'
),
icon
:
'fa fa-random'
,
show
:
true
},
{
name
:
'revenueDetail'
,
permission
:
constant
.
vatPermission
.
dataManage
.
revenueDetailCode
,
text
:
$translate
.
instant
(
'revenueDetail'
),
icon
:
'fa fa-random'
,
show
:
true
},
/*{
name: 'accountMapping', permission: constant.vatPermission.dataManage.accountMappingCode,
text: $translate.instant('accountMapping'), icon: 'fa fa-map', show: true
...
...
atms-web/src/main/webapp/app/vat/reduction/vat-caculate-data/vat-caculate-data.ctrl.js
View file @
02cb5205
...
...
@@ -199,13 +199,27 @@
task
.
prototype
.
code
=
null
;
vatReportService
.
getTemplate
(
vatSessionService
.
project
.
id
,
constant
.
serviceType
.
VAT
,
vatSessionService
.
month
).
then
(
function
(
report
)
{
var
result
=
[];
// result.push({ name: $translate.instant('ProcessData'), items: [new task('GenerateStdTb', 'unstarted')] });
// result.push({ name: $translate.instant('ProcessData'), items: [new task('CompareUnbilled', 'unstarted')] });
// result.push({ name: $translate.instant('ProcessData'), items: [new task('CaculateUnbilled', 'unstarted'), new task('UpdateReportConfig', 'unstarted'), new task('GenerateFinanceReport', 'unstarted')] });
/* var dataValidateItems = [/!*"本期余额表累计数+导入调整表是否等于本期利润表累计数", "本期余额表本期数+导入调整表是否等于本期利润表本期数", "上期利润表本年累进+本期利润表本期数是否等于本期利润表本年累计",*!/ ""];
var dataValidateCode = [/!*'DA001', 'DA002', 'DA003',*!/ ''];*/
//数据配置
result
.
push
({
name
:
$translate
.
instant
(
'ProcessData'
),
items
:
[
new
task
(
'UpdateReportConfig'
,
'unstarted'
)]
});
result
[
result
.
length
-
1
].
items
.
forEach
(
function
(
t
)
{
t
.
seqNo
=
result
.
length
-
1
});
//数据校验
var
reItem
=
[];
reItem
.
push
(
new
task
(
Math
.
ceil
(
Math
.
random
()
*
1000000
).
toString
(),
"unstarted"
,
"上期导入调整表是否等于本期调整日记账发生额(摘要中包含“调表不调账”关键字)"
,
"DA004"
));
result
.
push
({
name
:
$translate
.
instant
(
'dataValidate'
),
isReportTask
:
true
,
items
:
reItem
});
fixedRef
=
[];
if
(
report
&&
report
.
data
&&
report
.
data
.
data
)
{
result
.
push
({
...
...
@@ -238,7 +252,6 @@
i
++
;
taskList
=
taskList
.
concat
(
item
.
items
);
});
$scope
.
tasks
=
result
;
getInitTaskStatus
();
});
...
...
@@ -556,7 +569,8 @@
};
var
updateTasksStatus
=
function
(
job
){
var
items
=
$scope
.
tasks
[
1
].
items
;
var
items
=
$scope
.
tasks
;
var
tasks
=
JSON
.
parse
(
job
.
status
)
if
(
job
.
jobStatus
==
'End'
){
items
.
forEach
(
function
(
item
,
index
){
item
.
status
=
'completed'
;
...
...
@@ -565,14 +579,13 @@
$scope
.
tasks
[
0
].
items
[
0
].
status
=
'completed'
;
$scope
.
tasks
[
0
].
items
[
0
].
text
=
$translate
.
instant
(
'completed'
);
if
(
$scope
.
timer
){
$interval
.
cancel
(
$scope
.
timer
);
vatCommonService
.
setProjectStatus
(
vatSessionService
.
project
.
id
,
vatSessionService
.
month
,
constant
.
ProjectStatusEnum
.
Generated
,
constant
.
DictionaryDictKey
.
WFDataProcess
,
enums
.
FinishStatusEnum
.
Finished
);
}
}
else
if
(
job
.
jobStatus
==
'Running'
||
job
.
jobStatus
==
'Error'
){
var
tasks
=
JSON
.
parse
(
job
.
status
)
var
updateConfig
=
tasks
[
0
];
if
(
updateConfig
.
status
==
'Error'
){
...
...
@@ -583,7 +596,7 @@
$scope
.
tasks
[
0
].
items
[
0
].
status
=
'processing'
;
}
$scope
.
tasks
[
0
].
items
[
0
].
text
=
$translate
.
instant
(
$scope
.
tasks
[
0
].
items
[
0
].
status
);
items
.
forEach
(
function
(
item
,
index
){
/*
items.forEach(function(item,index){
tasks.forEach(function(task){
if(task.code==item.code){
if(task.status == 'Error'){
...
...
@@ -596,12 +609,28 @@
item.text = $translate.instant(item.status);
}
})
});
});*/
if
(
job
.
jobStatus
==
'Error'
){
if
(
$scope
.
timer
)
$interval
.
cancel
(
$scope
.
timer
);
}
}
items
.
forEach
(
function
(
item
,
index
){
item
.
items
.
forEach
(
function
(
_task
,
index
)
{
tasks
.
forEach
(
function
(
task
){
if
(
task
.
code
==
_task
.
code
){
if
(
task
.
status
==
'Error'
){
_task
.
status
=
'error'
;
}
else
if
(
task
.
status
==
'End'
){
_task
.
status
=
'completed'
;
}
else
if
(
task
.
status
==
'Begin'
){
_task
.
status
=
'processing'
;
}
_task
.
text
=
$translate
.
instant
(
_task
.
status
);
}
})
})
});
}
var
getInitTaskStatus
=
function
(){
...
...
@@ -620,13 +649,11 @@
$interval
.
cancel
(
$scope
.
timer
);
}
});
},
1000
);
}
}
else
{
$log
.
debug
(
"not running job"
);
}
});
}
...
...
atms-web/src/main/webapp/app/vat/reduction/vat-caculate-data/vat-caculate-data.html
View file @
02cb5205
...
...
@@ -29,11 +29,11 @@
<script
type=
"text/ng-template"
id=
"group_template"
>
<
div
>
<
div
ng
-
if
=
"group.items.length > 1"
class
=
"task"
style
=
"margin-bottom:5px;padding-left:20px;"
>
{{
group
.
name
}}
<
/div
>
<
ul
ng
-
if
=
"group.items.length > 1"
ng
-
repeat
=
"task in group.items track by $index"
>
<
div
ng
-
if
=
"group.items.length >
=
1"
class
=
"task"
style
=
"margin-bottom:5px;padding-left:20px;"
>
{{
group
.
name
}}
<
/div
>
<
ul
ng
-
if
=
"group.items.length >
=
1"
ng
-
repeat
=
"task in group.items track by $index"
>
<
li
ng
-
include
=
"'task_template'"
/>
<
/ul
>
<
div
ng
-
if
=
"group.items.length == 1"
ng
-
repeat
=
"task in group.items track by $index"
style
=
"height:42px;"
ng
-
include
=
"'task_template'"
/
>
<!--
<
div
ng
-
if
=
"group.items.length == 1"
ng
-
repeat
=
"task in group.items track by $index"
style
=
"height:42px;"
ng
-
include
=
"'task_template'"
/>--
>
</script>
<script
type=
"text/ng-template"
id=
"task_template"
>
...
...
atms-web/src/main/webapp/app/vat/reduction/vat-revenue-detail/vat-revenue-detail.ctrl.js
0 → 100644
View file @
02cb5205
This diff is collapsed.
Click to expand it.
atms-web/src/main/webapp/app/vat/reduction/vat-revenue-detail/vat-revenue-detail.html
0 → 100644
View file @
02cb5205
<div
class=
"vat-revenue-detail"
>
<div
class=
"header-title"
>
<div
style=
"display:inline-block"
><span
class=
"title-name"
>
{{'RevDetail' | translate }}
</span></div>
</div>
<div
class=
"content-container"
>
<div
class=
"header"
>
<div
class=
"search-panel"
>
<table
class=
"table borderless table-bottom"
>
<tr>
<td><span
class=
"lbl-name"
>
{{'RevSearchAccountCode' | translate }}:
</span></td>
<td>
<input
class=
"form-control"
name=
"name"
ng-model=
"searchParam.accountCode"
maxlength=
"20"
>
</td>
<td><span
class=
"lbl-name"
>
{{'RevSearchAccountName' | translate }}:
</span>
:
</td>
<td>
<input
class=
"form-control"
name=
"name"
ng-model=
"searchParam.accountName"
maxlength=
"20"
>
</td>
<td><span
class=
"lbl-name"
>
{{'RevSearchType' | translate }}:
</span></td>
<td>
<div
dx-select-box=
"searchOptions.typeOptions"
></div>
</td>
<td
ng-show=
"!hasShowMoreSearchBox"
>
<button
type=
"button"
class=
"btn btn-primary invoice-btn"
ng-click=
"searchboxService.search()"
>
查询
</button>
</td>
<td
ng-show=
"!hasShowMoreSearchBox"
>
<button
type=
"button"
class=
"btn btn-primary invoice-btn"
ng-click=
"searchboxService.resetBox()"
>
重置
</button>
</td>
<td
ng-show=
"!hasShowMoreSearchBox"
>
<span
class=
"lbl-name"
>
<a
href=
"javacript:void(0)"
ng-click=
"searchboxService.showOrHideSearchBox()"
><span><i
class=
"fa fa-chevron-down"
aria-hidden=
"true"
></i><span
style=
"margin-left:3px;"
>
更多查询
</span></span></a>
</span>
</td>
</tr>
<tr
ng-show=
"hasShowMoreSearchBox"
>
</td>
<td><span
class=
"lbl-name"
>
{{'RevSearchProfitCenterCode' | translate }}:
</span></td>
<td>
<input
class=
"form-control"
name=
"name"
ng-model=
"searchParam.profitCenterCode"
maxlength=
"20"
>
</td>
<td><span
class=
"lbl-name"
>
{{'RevSearchProfitCenterName' | translate }}:
</span></td>
<td>
<input
class=
"form-control"
name=
"name"
ng-model=
"searchParam.profitCenterName"
maxlength=
"20"
>
</td>
<td><span
class=
"lbl-name"
>
{{'RevSearchTaxOn' | translate }}:
</span></td>
<td>
<div
dx-select-box=
"searchOptions.taxOnOptions"
></div>
</td>
</tr>
<tr
ng-show=
"hasShowMoreSearchBox"
>
<td><span
class=
"lbl-name"
>
{{'RevSearchProductCode' | translate }}:
</span></td>
<td>
<input
class=
"form-control"
name=
"name"
ng-model=
"searchParam.productCode"
maxlength=
"20"
>
</td>
<td><span
class=
"lbl-name"
>
{{'RevSearchProductName' | translate }}:
</span></td>
<td>
<input
class=
"form-control"
name=
"name"
ng-model=
"searchParam.productName"
maxlength=
"20"
>
</td>
<td><span
class=
"lbl-name"
>
{{'RevSearchCategory' | translate }}:
</span></td>
<td>
<div
dx-select-box=
"searchOptions.categoryOptions"
></div>
</td>
<td>
<button
type=
"button"
class=
"btn btn-primary invoice-btn"
ng-click=
"searchboxService.search()"
>
查询
</button>
</td>
<td>
<button
type=
"button"
class=
"btn btn-primary invoice-btn"
ng-click=
"searchboxService.resetBox()"
>
重置
</button>
</td>
<td>
<a
href=
"javascript:void(0);"
ng-click=
"searchboxService.showOrHideSearchBox()"
>
<span><i
class=
"fa fa-chevron-up"
aria-hidden=
"true"
></i><span
style=
"margin-left:3px;"
>
收起
</span></span></a>
</td>
</tr>
</table>
</div>
</div>
<div
class=
"body"
>
<div
class=
"grid-container"
>
<div
id=
"invoiceGridContainer"
dx-data-grid=
"revenueGridOptions"
>
<div
data-options=
"dxTemplate:{ name:'editCellTemplate' }"
>
</div>
</div>
</div>
<div
class=
"page-footer"
>
<ack-pagination
page-options=
"pagingOptions"
refresh-table=
"refreshGrid()"
></ack-pagination>
</div>
</div>
</div>
</div>
atms-web/src/main/webapp/app/vat/reduction/vat-revenue-detail/vat-revenue-detail.js
0 → 100644
View file @
02cb5205
vatModule
.
directive
(
'vatRevenueDetail'
,
[
'$log'
,
'browserService'
,
'$translate'
,
'region'
,
'$timeout'
,
function
(
$log
,
browserService
,
$translate
,
region
,
$timeout
)
{
$log
.
debug
(
'vatRevenueDetail.ctor()...'
);
return
{
restrict
:
'E'
,
templateUrl
:
'/app/vat/reduction/vat-revenue-detail/vat-revenue-detail.html'
+
'?_='
+
Math
.
random
(),
scope
:
{},
controller
:
'vatRevenueDetailController'
}
}
]);
\ No newline at end of file
atms-web/src/main/webapp/app/vat/reduction/vat-revenue-detail/vat-revenue-detail.less
0 → 100644
View file @
02cb5205
@border-color: #d4d4d4;
@margin-left: 60px;
@container-width: 970px;
@control-width: 120px;
//sharing
.header {
padding: 15px;
img {
margin-top: 3px;
}
.search-panel {
border: 1px solid #CDCDCD;
border-radius: 5px;
padding: 5px;
.row {
margin: 10px 0;
.filter-item {
display: inline-block;
vertical-align: middle;
height: 32px;
}
.fileter-label {
text-align: right;
height: 32px;
padding-top: 5px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
padding-left: 0;
}
.invoice-btn {
min-width: 90px;
height: 34px;
}
}
.table-bottom {
margin-bottom: 0px !important;
.lbl-name {
word-break: keep-all;
}
td {
vertical-align: middle;
}
}
}
}
.table-bottom {
margin-bottom: 0px !important;
.lbl-name {
word-break: keep-all;
}
td {
vertical-align: middle;
}
}
.red-color {
color: #d04a02;
/*vertical-align: middle;*/
}
.dx-widget {
font-size: 13px;
}
//share
.header-title {
padding: 10px;
.sub-title {
font-family: "Microsoft YaHei";
font-weight: 400;
font-size: 12px;
color: rgb(153, 153, 153);
}
.title-name {
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
}
}
.inline-block {
display: inline-block;
.left-side {
display: inline-block;
}
.right-side {
float: right;
display: inline-block;
}
}
.invoice-btn {
min-width: 80px;
height: 28px;
margin-right: 10px;
font-weight: normal;
font-size: 13px;
font-family: 'Microsoft YaHei';
}
.invoice-card {
width: 120px;
height: 130px;
border: 1px dashed @border-color;
border: 1px dashed rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: #fff; /*#fbfbfb;*/
text-align: center;
cursor: pointer;
float: left;
margin: 10px;
position: relative;
&:hover {
background-color: #fff !important;
box-shadow: #a06748 1px 1px;
}
//卡片顶部的绝对定位
.dx-checkbox-container {
position: absolute;
left: 59px;
top: -8px;
}
}
.span-btn {
color: #6699CC;
padding: 0px 4px;
cursor: pointer;
font-size: 12px;
}
.borderless td, .borderless th {
border: none !important;
vertical-align: middle !important;
}
.page-footer {
display: inline-block;
float: right;
/*padding-right: 20px;*/
}
.invoice-table-dialog {
.modal-dialog {
min-width: 650px;
.modal-title {
color: red;
}
}
}
.invoiceNumber-link {
cursor: pointer;
/*color:#6699cc;*/
}
.vat-revenue-detail {
height: 100% !important;
padding-top: 0px !important;
position: relative;
font-size: 13px;
.dx-datagrid-group-closed:before {
/* font-family: "ui-grid"; */
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
font-variant: normal;
text-transform: none;
line-height: 1em;
margin-left: .2em;
content: inherit!important;
}
.header-title {
padding: 10px;
.title-name {
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
}
}
.custom-control {
width: @control-width !important;
height: 25px;
line-height: 25px;
}
.btn-search {
width: @control-width !important;
}
.content-container {
height: calc(~'100% - 40px');
position: relative;
.body {
.buttom-row {
padding: 15px;
display: inline-block;
width: 100%;
.left-side {
display: inline-block;
/*padding-left:5px;*/
.select-title {
margin-left: 20px;
}
.select-number {
padding: 0 1px;
color: red;
}
}
.right-side {
float: right;
display: inline-block;
/*padding-right:5px;*/
.btn {
margin-left: 20px;
}
}
}
.grid-container {
padding: 0px 15px;
/*height: 350px;*/
/*height:100%;*/
#invoiceGridContainer {
max-height: 100%;
}
.dx-datagrid-rowsview .dx-row > .dx-master-detail-cell {
padding: 0px !important;
}
.dx-datagrid-nowrap.dx-datagrid-headers .dx-header-row > td > .dx-datagrid-text-content {
white-space: normal !important;
}
.internal-grid-container {
padding: 10px 10px 10px 0;
& > div:first-child {
padding: 0 0 5px 10px;
font-size: 13px;
/*font-weight: bold;*/
}
}
}
}
}
.importVerifyInvoiceModal {
.modal-dialog {
height: 200px;
width: 610px;
}
.modal-footer {
text-align: left;
}
}
}
atms-web/src/main/webapp/app/vat/vat-layout/vat-layout.ctrl.js
View file @
02cb5205
...
...
@@ -142,6 +142,7 @@ function ($scope, $rootScope, $q, $log, $timeout, $state, $translate, projectSer
constant
.
vatPermission
.
dataPreview
.
inputInvoice
.
queryCode
,
constant
.
vatPermission
.
dataManage
.
caculateDataCode
,
constant
.
vatPermission
.
dataManage
.
revenueDetailCode
,
// constant.vatPermission.dataManage.accountMappingCode,
// constant.vatPermission.dataManage.goodsMappingCode,
// constant.vatPermission.dataManage.unbilledInvoiceCode,
...
...
@@ -331,6 +332,10 @@ function ($scope, $rootScope, $q, $log, $timeout, $state, $translate, projectSer
name
:
'reductionData.caculateData'
,
state
:
'reductionData.caculateData'
,
num
:
3
,
permission
:
constant
.
vatPermission
.
dataManage
.
caculateDataCode
,
url
:
'#/vat/reductionData/caculateData'
});
subMenus
.
push
({
name
:
'reductionData.revenueDetail'
,
state
:
'reductionData.revenueDetail'
,
num
:
3
,
permission
:
constant
.
vatPermission
.
dataManage
.
revenueDetailCode
,
url
:
'#/vat/reductionData/revenueDetail'
});
}
else
if
(
data
[
constant
.
vatPermission
.
dataManage
.
accountMappingCode
])
{
$scope
.
menus
.
push
({
...
...
atms-web/src/main/webapp/app/vat/vat-layout/vat-layout.html
View file @
02cb5205
...
...
@@ -8,23 +8,23 @@
<span
class=
"vat-subheader"
style=
"margin:0px 20px 0px 0px;font-weight:bold"
title=
"{{projectName}}"
>
{{projectName | limitString:15}}
</span>
<!--<span class="vat-subheader" style="margin:0px 20px 0px 0px;font-weight:bold">{{projectName}}</span>-->
<span
class=
"project-statuts-title"
>
<i
id=
"imgProjectStatus"
class=
"fa fa-lightbulb-o"
<i
id=
"imgProjectStatus"
class=
"fa fa-lightbulb-o"
ng-class=
"{'project-statuts-title-i-inactive' : layoutVatSession.project.projectStatusList[period] === 10}"
aria-hidden=
"true"
ng-click=
"showProjectStatus()"
>
{{statusTitle}}
</i>
</span>
<!--<i id="imgProjectStatus" class="fa fa-info" aria-hidden="true" ng-click="showProjectStatus()"></i>-->
<i
class=
"fa fa-calendar vat-subheader red-color"
style=
"font-size:20px;"
></i>
<i
class=
"fa fa-calendar vat-subheader red-color"
style=
"font-size:20px;"
></i>
<input
type=
"text"
id=
"vatDatepicker"
class=
"datepicker vat-subheader"
style=
"border-width:0;outline:none;"
readonly=
"readonly"
/>
<div
id=
"vat-menu-buttons"
style=
"display:inline-block;"
>
<a
ng-repeat=
"menu in menus"
ui-sref-active=
"active"
ng-click=
"setReportSession(menu.name);"
ui-sref=
".{{menu.name}}"
atms-permission
permission-control-type=
"ngIf"
permission-code=
"{{menu.permission}}"
>
{{menu.state | translate}}
</a>
</div>
<!--<button class="btn btn-vat-primary" translate="TriggerMessageSchedulerJob" ng-click="triggerSchedulerJob()"></button>-->
</div>
<!--<div id="vat-menu-buttons">
<a ng-repeat="menu in menus" ui-sref-active="active" ui-sref=".{{menu.name}}"><span>{{menu.num}}</span>{{menu.name | translate}}</a>
</div>-->
...
...
@@ -39,24 +39,24 @@
ng-class=
"[{ 'slideup': menuState === menuStates.collapsing }, { 'slidedown': menuState === menuStates.expanding }, { 'expanded': menuState === menuStates.collapsing || menuState === menuStates.collapsed }]"
></div>
<!-- 项目状态 -->
<script
type=
"text/ng-template"
id=
"model-project-status.html"
class=
"model-project-status"
>
<!--<
div
class
=
"modal-header"
>
<!--<
div
class
=
"modal-header"
>
<
div
class
=
"modal-title"
>
<
/div
>
<
/div>--
>
<
div
class
=
"modal-body"
>
<
i
class
=
"fa fa-times"
aria
-
hidden
=
"true"
style
=
"float: right; font-size: 11px; color: #CF2D1B"
ng
-
click
=
"closeModal()"
><
/i>
<
i
class
=
"fa fa-times"
aria
-
hidden
=
"true"
style
=
"float: right; font-size: 11px; color: #CF2D1B"
ng
-
click
=
"closeModal()"
><
/i
>
<
ul
class
=
"ul-status"
>
<
li
>
<
i
class
=
"fa fa-circle"
aria
-
hidden
=
"true"
ng
-
class
=
"{'i-inactive' : layoutVatSession.project.projectStatusList[period] === 10}"
>&
nbsp
;
&
nbsp
;
&
nbsp
;{{
startStatusText
}}
<
/i>
<
i
class
=
"fa fa-circle"
aria
-
hidden
=
"true"
ng
-
class
=
"{'i-inactive' : layoutVatSession.project.projectStatusList[period] === 10}"
>&
nbsp
;
&
nbsp
;
&
nbsp
;{{
startStatusText
}}
<
/i
>
<
div
class
=
"verticalLine"
ng
-
class
=
"{'verticalLine-inactive' : layoutVatSession.project.projectStatusList[period] === 10}"
>&
nbsp
;
<
/div
>
<
/li
>
<
li
ng
-
click
=
"showSubStatus()"
>
<
i
class
=
"fa fa-dot-circle-o"
aria
-
hidden
=
"true"
ng
-
class
=
"{'i-inactive' : layoutVatSession.project.projectStatusList[period] < 20}"
>&
nbsp
;
&
nbsp
;
&
nbsp
;{{
'ProjectStatusImported'
|
translate
}}
<
/i
>
<
div
class
=
"verticalLine"
ng
-
class
=
"{'verticalLine-inactive' : layoutVatSession.project.projectStatusList[period] < 20, 'verticalLine-add-bottom-line' : displaySubStatus}"
>&
nbsp
;
<
/div
>
<
ul
ng
-
show
=
"displaySubStatus"
>
<
ul
ng
-
show
=
"displaySubStatus"
>
<
li
ng
-
repeat
=
"item in subStatusList track by $index"
>
<
i
class
=
"fa fa-check-circle"
aria
-
hidden
=
"true"
ng
-
class
=
"{'i-inactive' : !item.isImported}"
>&
nbsp
;
&
nbsp
;{{
item
.
name
}}
<
/i
>
<
div
ng
-
show
=
"$index < subStatusList.length - 1"
class
=
"vertical-bottom-line"
ng
-
class
=
"{'verticalLine-inactive' : !item.isImported}"
>&
nbsp
;
<
/div
>
...
...
@@ -68,12 +68,12 @@
<
div
class
=
"verticalLine"
ng
-
class
=
"{'verticalLine-inactive' : layoutVatSession.project.projectStatusList[period] < 30}"
>&
nbsp
;
<
/div
>
<
/li
>
<
li
>
<
i
class
=
"fa fa-circle"
aria
-
hidden
=
"true"
ng
-
class
=
"{'i-inactive' : layoutVatSession.project.projectStatusList[period] < 40}"
>&
nbsp
;
&
nbsp
;
&
nbsp
;{{
'ProjectStatusGenerated'
|
translate
}}
<
/i>
<
i
class
=
"fa fa-circle"
aria
-
hidden
=
"true"
ng
-
class
=
"{'i-inactive' : layoutVatSession.project.projectStatusList[period] < 40}"
>&
nbsp
;
&
nbsp
;
&
nbsp
;{{
'ProjectStatusGenerated'
|
translate
}}
<
/i
>
<
div
class
=
"verticalLine"
ng
-
class
=
"{'verticalLine-inactive' : layoutVatSession.project.projectStatusList[period] < 40}"
>&
nbsp
;
<
/div
>
<
/li
>
<
li
>
<
i
class
=
"fa fa-circle"
aria
-
hidden
=
"true"
ng
-
class
=
"{'i-inactive' : layoutVatSession.project.projectStatusList[period] < 50}"
>
&
nbsp
;
&
nbsp
;{{
'ProjectStatusReportSubmitted'
|
translate
}}
&
nbsp
;
&
nbsp
;{{
'ProjectStatusReportSubmitted'
|
translate
}}
&
nbsp
;
&
nbsp
;
<
span
ng
-
show
=
"submitDetailDto.isDone"
style
=
"font-size:12px"
>
{{
submitDetailDto
.
finishedData
}}
<
/span
>
<
/i
>
<
div
class
=
"verticalLine"
ng
-
class
=
"{'verticalLine-inactive' : layoutVatSession.project.projectStatusList[period] < 50}"
>&
nbsp
;
<
/div
>
...
...
@@ -93,7 +93,7 @@
<
li
>
<
i
class
=
"fa fa-circle"
aria
-
hidden
=
"true"
ng
-
class
=
"{'i-inactive' : layoutVatSession.project.projectStatusList[period] < 100}"
>&
nbsp
;
&
nbsp
;
&
nbsp
;{{
'ProejctStatusCompleted'
|
translate
}}
<
/i
>
<
/li
>
<
/ul
>
<
/div
>
...
...
@@ -102,5 +102,5 @@
<
/div>--
>
</script>
</div>
\ No newline at end of file
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