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
ec479c4f
Commit
ec479c4f
authored
Mar 21, 2019
by
gary
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、last commit!
parent
8093e0da
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
357 additions
and
223 deletions
+357
-223
AuthUserHelperImpl.java
...main/java/pwc/taxtech/atms/common/AuthUserHelperImpl.java
+1
-1
AnalysisController.java
.../java/pwc/taxtech/atms/controller/AnalysisController.java
+2
-2
DataImportController.java
...ava/pwc/taxtech/atms/controller/DataImportController.java
+7
-1
DataImportAllParam.java
...a/pwc/taxtech/atms/dto/dataimport/DataImportAllParam.java
+46
-0
DataProcessParam.java
...ava/pwc/taxtech/atms/dto/dataimport/DataProcessParam.java
+21
-0
JwtAuthenticationFilter.java
...va/pwc/taxtech/atms/security/JwtAuthenticationFilter.java
+2
-33
JwtUser.java
...-api/src/main/java/pwc/taxtech/atms/security/JwtUser.java
+1
-14
JwtUtil.java
...-api/src/main/java/pwc/taxtech/atms/security/JwtUtil.java
+17
-19
AnalysisJobServiceImpl.java
...pwc/taxtech/atms/service/impl/AnalysisJobServiceImpl.java
+4
-4
AnalysisServiceImpl.java
...va/pwc/taxtech/atms/service/impl/AnalysisServiceImpl.java
+0
-0
DataImportService.java
...java/pwc/taxtech/atms/service/impl/DataImportService.java
+39
-5
MenuServiceImpl.java
...n/java/pwc/taxtech/atms/service/impl/MenuServiceImpl.java
+0
-55
BalanceSheet.xlsx
.../src/main/resources/Document/DataImport/BalanceSheet.xlsx
+0
-0
conf.properties
atms-api/src/main/resources/conf/conf.properties
+9
-2
conf_profile_dev.properties
atms-api/src/main/resources/conf/conf_profile_dev.properties
+0
-1
conf_profile_pub.properties
atms-api/src/main/resources/conf/conf_profile_pub.properties
+0
-1
conf_profile_staging.properties
...i/src/main/resources/conf/conf_profile_staging.properties
+0
-1
CashFlowManualMapper.java
...n/java/pwc/taxtech/atms/vat/dao/CashFlowManualMapper.java
+14
-20
CashFlowManualMapper.xml
...sources/pwc/taxtech/atms/vat/dao/CashFlowManualMapper.xml
+32
-16
CashFlowExtendsMapper.xml
...wc/taxtech/atms/vat/dao/extends/CashFlowExtendsMapper.xml
+4
-0
CashFlowFinalExtendsMapper.xml
...xtech/atms/vat/dao/extends/CashFlowFinalExtendsMapper.xml
+4
-0
CashFlowManualExtendsMapper.xml
...tech/atms/vat/dao/extends/CashFlowManualExtendsMapper.xml
+4
-0
app.json
atms-web/src/main/webapp/app-resources/i18n/en-us/app.json
+1
-0
vat.json
atms-web/src/main/webapp/app-resources/i18n/en-us/vat.json
+2
-0
app.json
atms-web/src/main/webapp/app-resources/i18n/zh-CN/app.json
+2
-0
vat.json
atms-web/src/main/webapp/app-resources/i18n/zh-CN/vat.json
+2
-0
domestic-data-import.ctrl.js
...-import/domestic-data-import/domestic-data-import.ctrl.js
+7
-7
domestic-data-import.html
...ata-import/domestic-data-import/domestic-data-import.html
+2
-2
international-data-import.ctrl.js
...ternational-data-import/international-data-import.ctrl.js
+29
-9
vatImportService.js
...rc/main/webapp/app/common/vatservices/vatImportService.js
+3
-0
import-log.ctrl.js
...n/webapp/app/dataImport/log/import-log/import-log.ctrl.js
+44
-18
import-log.html
...main/webapp/app/dataImport/log/import-log/import-log.html
+12
-0
process-log.ctrl.js
...webapp/app/dataImport/log/process-log/process-log.ctrl.js
+34
-12
process-log.html
...in/webapp/app/dataImport/log/process-log/process-log.html
+12
-0
No files found.
atms-api/src/main/java/pwc/taxtech/atms/common/AuthUserHelperImpl.java
View file @
ec479c4f
...
...
@@ -128,6 +128,6 @@ public class AuthUserHelperImpl implements AuditorAware<String>, AuthUserHelper
if
(
jwtUser
==
null
)
{
return
null
;
}
return
(
DDUserInfo
)
jwtUser
.
get
ClientUserInfo
(
);
return
(
DDUserInfo
)
jwtUser
.
get
DefaultClaims
().
get
(
"dduserInfo"
);
}
}
atms-api/src/main/java/pwc/taxtech/atms/controller/AnalysisController.java
View file @
ec479c4f
...
...
@@ -79,13 +79,13 @@ public class AnalysisController extends BaseController {
@ResponseBody
@RequestMapping
(
value
=
"DomesitcExcelFile"
,
method
=
RequestMethod
.
POST
)
public
OperationResultDto
importDomesitcExcelFile
(
@RequestParam
MultipartFile
file
,
@RequestParam
String
period
,
@RequestParam
Integer
type
,
@RequestParam
String
companyName
)
{
public
OperationResultDto
importDomesitcExcelFile
(
@RequestParam
MultipartFile
file
,
@RequestParam
String
period
,
@RequestParam
Integer
type
)
{
try
{
String
valMsg
=
valParameter
(
file
,
period
,
type
);
if
(
StringUtils
.
isNotEmpty
(
valMsg
)){
return
OperationResultDto
.
error
(
valMsg
);
}
return
analysisServiceImpl
.
importDomesitcExcelFile
(
file
,
period
,
type
,
companyName
);
return
analysisServiceImpl
.
importDomesitcExcelFile
(
file
,
period
,
type
);
}
catch
(
ServiceException
e
)
{
return
OperationResultDto
.
error
(
e
.
getMessage
());
}
catch
(
Exception
e
)
{
...
...
atms-api/src/main/java/pwc/taxtech/atms/controller/DataImportController.java
View file @
ec479c4f
...
...
@@ -7,7 +7,7 @@ import org.springframework.web.multipart.MultipartFile;
import
pwc.taxtech.atms.common.message.ErrorMessage
;
import
pwc.taxtech.atms.dpo.PagingDto
;
import
pwc.taxtech.atms.dto.*
;
import
pwc.taxtech.atms.dto.
analysis.AnalysisInternation
lParam
;
import
pwc.taxtech.atms.dto.
dataimport.DataImportAl
lParam
;
import
pwc.taxtech.atms.dto.dataimport.DataImportParam
;
import
pwc.taxtech.atms.dto.dataimport.DataProcessParam
;
import
pwc.taxtech.atms.dto.input.CamelPagingResultDto
;
...
...
@@ -222,6 +222,12 @@ public class DataImportController extends BaseController {
return
new
CamelPagingResultDto
<>(
dataImportService
.
displayImportLog
(
param
));
}
@ResponseBody
@RequestMapping
(
value
=
"displayImportLogAll"
,
method
=
RequestMethod
.
POST
)
public
CamelPagingResultDto
<
DataImportLogDto
>
displayImportLogAll
(
@RequestBody
DataImportAllParam
param
)
{
return
new
CamelPagingResultDto
<>(
dataImportService
.
displayImportLogAll
(
param
));
}
@ResponseBody
@RequestMapping
(
value
=
"displayProcessLog"
,
method
=
RequestMethod
.
POST
)
public
CamelPagingResultDto
<
DataValidateLogDto
>
displayProcessLog
(
@RequestBody
DataProcessParam
param
)
{
...
...
atms-api/src/main/java/pwc/taxtech/atms/dto/dataimport/DataImportAllParam.java
0 → 100644
View file @
ec479c4f
package
pwc
.
taxtech
.
atms
.
dto
.
dataimport
;
import
pwc.taxtech.atms.dto.input.CamelPagingDto
;
public
class
DataImportAllParam
{
private
CamelPagingDto
pageInfo
;
private
String
startDate
;
private
String
endDate
;
private
Integer
type
;
public
CamelPagingDto
getPageInfo
()
{
return
this
.
pageInfo
;
}
public
void
setPageInfo
(
CamelPagingDto
pageInfo
)
{
this
.
pageInfo
=
pageInfo
;
}
public
Integer
getType
()
{
return
type
;
}
public
void
setType
(
Integer
type
)
{
this
.
type
=
type
;
}
public
String
getStartDate
()
{
return
startDate
;
}
public
void
setStartDate
(
String
startDate
)
{
this
.
startDate
=
startDate
;
}
public
String
getEndDate
()
{
return
endDate
;
}
public
void
setEndDate
(
String
endDate
)
{
this
.
endDate
=
endDate
;
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/dataimport/DataProcessParam.java
View file @
ec479c4f
...
...
@@ -2,10 +2,16 @@ package pwc.taxtech.atms.dto.dataimport;
import
pwc.taxtech.atms.dto.input.CamelPagingDto
;
import
java.util.Date
;
public
class
DataProcessParam
{
private
CamelPagingDto
pageInfo
;
private
String
startDate
;
private
String
endDate
;
//后续添加查询条件
public
CamelPagingDto
getPageInfo
()
{
...
...
@@ -16,4 +22,19 @@ public class DataProcessParam {
this
.
pageInfo
=
pageInfo
;
}
public
String
getStartDate
()
{
return
startDate
;
}
public
void
setStartDate
(
String
startDate
)
{
this
.
startDate
=
startDate
;
}
public
String
getEndDate
()
{
return
endDate
;
}
public
void
setEndDate
(
String
endDate
)
{
this
.
endDate
=
endDate
;
}
}
atms-api/src/main/java/pwc/taxtech/atms/security/JwtAuthenticationFilter.java
View file @
ec479c4f
...
...
@@ -50,48 +50,17 @@ public class JwtAuthenticationFilter extends AbstractAuthenticationProcessingFil
@Override
public
Authentication
attemptAuthentication
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
String
header
=
request
.
getHeader
(
"Authorization"
);
if
(
header
==
null
||
!(
header
.
startsWith
(
"bearer "
)
||
header
.
startsWith
(
"Bearer "
)))
{
throw
new
AuthenticationCredentialsNotFoundException
(
"No JWT token found in request headers"
);
}
String
authToken
=
header
.
substring
(
7
);
if
(!
StringUtils
.
hasText
(
authToken
))
{
throw
new
AuthenticationCredentialsNotFoundException
(
"Empty Bearer token"
);
}
JwtAuthenticationToken
authRequest
=
new
JwtAuthenticationToken
(
authToken
);
setDetails
(
request
,
authRequest
);
Authentication
authResult
=
getAuthenticationManager
().
authenticate
(
authRequest
);
if
(
checkTicket
)
{
Cookie
[]
cookies
=
request
.
getCookies
();
String
ticket
=
""
;
try
{
for
(
Cookie
cookie
:
cookies
)
{
if
(
"ddTicket"
.
equals
(
cookie
.
getName
()))
{
ticket
=
cookie
.
getValue
();
break
;
}
}
JSONObject
object
;
String
ddResp
=
HttpUtil
.
post
(
getUserInfoUrl
+
"check_ticket"
,
"ticket="
+
ticket
+
"&app_id="
+
appId
,
"application/x-www-form-urlencoded"
,
"UTF-8"
,
10000
,
10000
);
object
=
JSONObject
.
parseObject
(
ddResp
);
Map
<
String
,
Object
>
res
=
object
.
getInnerMap
();
int
code
=
(
int
)
res
.
get
(
"errno"
);
if
(
code
!=
0
)
{
logger
.
warn
(
String
.
format
(
"DD Ticket Check Failed:[%s]"
,
object
.
toJSONString
()));
return
null
;
}
logger
.
debug
(
"ddTicket校验CODE:"
+
code
);
}
catch
(
Exception
e
)
{
logger
.
error
(
String
.
format
(
"调用DD获取用户信息失败:[%s]"
,
e
.
getMessage
()),
e
);
}
}
return
authResult
;
return
getAuthenticationManager
().
authenticate
(
authRequest
);
}
protected
void
setDetails
(
HttpServletRequest
request
,
...
...
@@ -113,7 +82,7 @@ public class JwtAuthenticationFilter extends AbstractAuthenticationProcessingFil
DefaultClaims
claims
=
jwtUser
.
getDefaultClaims
();
if
(
claims
.
getExpiration
().
getTime
()
-
System
.
currentTimeMillis
()
<=
jwtRefreshSecond
*
1000
)
{
String
newToken
=
jwtUtil
.
generateToken
(
jwtUser
.
getUsername
(),
jwtUser
.
getDatabaseUsername
(),
jwtUser
.
getUserid
(),
jwtUser
.
getTicket
(
));
jwtUser
.
getUserid
(),
(
String
)
claims
.
get
(
"ticket"
));
response
.
setHeader
(
"Access-Control-Expose-Headers"
,
"refreshToken"
);
response
.
setHeader
(
"refreshToken"
,
newToken
);
logger
.
debug
(
"refreshToken: "
+
newToken
);
...
...
atms-api/src/main/java/pwc/taxtech/atms/security/JwtUser.java
View file @
ec479c4f
...
...
@@ -17,21 +17,15 @@ public class JwtUser implements UserDetails {
/** 数据库用户名, 比如Admin */
private
final
String
databaseUsername
;
private
final
String
ticket
;
private
Object
clientUserInfo
;
private
final
Collection
<?
extends
GrantedAuthority
>
authorities
;
private
DefaultClaims
defaultClaims
;
public
JwtUser
(
String
userid
,
String
username
,
String
databaseUsername
,
String
ticket
,
Object
clientUserInfo
,
public
JwtUser
(
String
userid
,
String
username
,
String
databaseUsername
,
DefaultClaims
defaultClaims
,
Collection
<?
extends
GrantedAuthority
>
authorities
)
{
this
.
userid
=
userid
;
this
.
username
=
username
;
this
.
databaseUsername
=
databaseUsername
;
this
.
ticket
=
ticket
;
this
.
clientUserInfo
=
clientUserInfo
;
this
.
authorities
=
authorities
;
this
.
defaultClaims
=
defaultClaims
;
}
...
...
@@ -71,17 +65,10 @@ public class JwtUser implements UserDetails {
return
true
;
}
public
String
getTicket
()
{
return
ticket
;
}
public
static
long
getSerialVersionUId
()
{
return
serialVersionUId
;
}
public
Object
getClientUserInfo
()
{
return
clientUserInfo
;
}
public
String
getUserid
()
{
return
userid
;
...
...
atms-api/src/main/java/pwc/taxtech/atms/security/JwtUtil.java
View file @
ec479c4f
...
...
@@ -61,6 +61,9 @@ public class JwtUtil implements InitializingBean {
@SuppressWarnings
({
"unchecked"
,
"rawtypes"
})
public
JwtUser
parseToken
(
String
token
)
{
if
(
StringUtils
.
hasText
(
jwtPowerToken
)
&&
jwtPowerToken
.
equals
(
token
))
{
return
new
JwtUser
(
"test_userid"
,
"admin"
,
"Admin"
,
null
,
getAuthorities
());
}
JwtParser
parser
=
Jwts
.
parser
().
setSigningKey
(
jwtBase64Secret
);
Jwt
jwt
=
parser
.
parseClaimsJws
(
token
);
DefaultJws
<
DefaultClaims
>
defaultJws
=
(
DefaultJws
<
DefaultClaims
>)
jwt
;
...
...
@@ -68,25 +71,8 @@ public class JwtUtil implements InitializingBean {
String
databaseUsername
=
String
.
valueOf
(
defaultClaims
.
get
(
"databaseUsername"
));
String
username
=
String
.
valueOf
(
defaultClaims
.
get
(
"username"
));
String
userid
=
String
.
valueOf
(
defaultClaims
.
get
(
"userid"
));
String
ticket
=
""
;
JSONObject
object
;
Object
userInfo
=
null
;
if
(
checkTicket
){
ticket
=
String
.
valueOf
(
defaultClaims
.
get
(
"ticket"
));
try
{
String
response
=
HttpUtil
.
post
(
getUserInfoUrl
+
"get_user_by_ticket"
,
"ticket="
+
ticket
+
"&app_id="
+
appId
,
"application/x-www-form-urlencoded"
,
"UTF-8"
,
10000
,
10000
);
object
=
JSONObject
.
parseObject
(
response
);
Map
<
String
,
Object
>
res
=
object
.
getInnerMap
();
userInfo
=
res
.
get
(
"data"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
String
.
format
(
"调用DD获取用户信息失败:[%s]"
,
e
.
getMessage
()),
e
);
}
}
if
(
StringUtils
.
hasText
(
jwtPowerToken
)
&&
jwtPowerToken
.
equals
(
token
))
{
return
new
JwtUser
(
"test_userid"
,
"admin"
,
"Admin"
,
ticket
,
userInfo
,
null
,
getAuthorities
());
}
// 原版 UserDetails return new JwtUser(userid, username, databaseUsername, defaultClaims, getAuthorities());
return
new
JwtUser
(
userid
,
username
,
databaseUsername
,
ticket
,
userInfo
,
defaultClaims
,
getAuthorities
(
userid
));
return
new
JwtUser
(
userid
,
username
,
databaseUsername
,
defaultClaims
,
getAuthorities
(
userid
));
}
private
List
<
SimpleGrantedAuthority
>
getAuthorities
()
{
...
...
@@ -141,6 +127,18 @@ public class JwtUtil implements InitializingBean {
jwtBuilder
.
claim
(
"databaseUsername"
,
databaseUsername
);
jwtBuilder
.
claim
(
"userid"
,
userid
);
jwtBuilder
.
claim
(
"ticket"
,
ticket
);
DDUserInfo
dduserInfo
=
null
;
if
(
checkTicket
){
try
{
String
response
=
HttpUtil
.
post
(
getUserInfoUrl
+
"get_user_by_ticket"
,
"ticket="
+
ticket
+
"&app_id="
+
appId
,
"application/x-www-form-urlencoded"
,
"UTF-8"
,
10000
,
10000
);
JSONObject
object
=
JSONObject
.
parseObject
(
response
);
Map
<
String
,
Object
>
res
=
object
.
getInnerMap
();
dduserInfo
=
(
DDUserInfo
)
res
.
get
(
"data"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
String
.
format
(
"调用DD获取用户信息失败:[%s]"
,
e
.
getMessage
()),
e
);
}
}
jwtBuilder
.
claim
(
"dduserInfo"
,
dduserInfo
);
// 设置body.username为数据库用户名
jwtBuilder
.
signWith
(
SignatureAlgorithm
.
HS512
,
jwtBase64Secret
);
return
jwtBuilder
.
compact
();
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/AnalysisJobServiceImpl.java
View file @
ec479c4f
...
...
@@ -183,10 +183,10 @@ public class AnalysisJobServiceImpl extends BaseService {
* 19/03/2019 15:55
* VAT、CIT申报表取数
* 1、根据机构、项目、期间、报表名称查出所有机构的增值税申报表
* 2、获取该表的row、column、value 计算出部分segment
* 2、获取该表的row、column、value 计算出部分segment
[]1
* 3、根据项目、机构、期间、Code-VAT100 查出对应机构的小微纳税人报表
* 4、计算小微segment
并
合并
* 5、获取利润表segment
* 4、计算小微segment
[]2并segment[]1
合并
* 5、获取利润表segment
[]3
* [orgs,period]
*
* @return
...
...
@@ -333,7 +333,7 @@ public class AnalysisJobServiceImpl extends BaseService {
/**
* 19/03/2019 15:56
* 计算返还后各税种税额
* 计算返还后各税种税额
tax - actualReturn
* [orgs,period]
*
* @return
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/AnalysisServiceImpl.java
View file @
ec479c4f
This diff is collapsed.
Click to expand it.
atms-api/src/main/java/pwc/taxtech/atms/service/impl/DataImportService.java
View file @
ec479c4f
...
...
@@ -34,6 +34,7 @@ import pwc.taxtech.atms.dto.DataExtractParam;
import
pwc.taxtech.atms.dto.DataImportLogDto
;
import
pwc.taxtech.atms.dto.DataValidateLogDto
;
import
pwc.taxtech.atms.dto.OperationResultDto
;
import
pwc.taxtech.atms.dto.dataimport.DataImportAllParam
;
import
pwc.taxtech.atms.dto.dataimport.DataImportParam
;
import
pwc.taxtech.atms.dto.dataimport.DataProcessParam
;
import
pwc.taxtech.atms.dto.ebsdto.EbsCallRateResp
;
...
...
@@ -262,20 +263,20 @@ public class DataImportService extends BaseService {
Sheet
sheet
=
workbook
.
getSheetAt
(
i
);
if
(
isSheetEmpty
(
sheet
))
continue
;
List
<
ProfitLossStatement
>
pls
=
Lists
.
newArrayList
();
String
company
Code
=
getCellStringValue
(
sheet
.
getRow
(
5
).
getCell
(
1
));
String
company
Name
=
getCellStringValue
(
sheet
.
getRow
(
4
).
getCell
(
1
));
OrganizationExample
example
=
new
OrganizationExample
();
example
.
createCriteria
().
and
CodeEqualTo
(
companyCod
e
);
example
.
createCriteria
().
and
NameEqualTo
(
companyNam
e
);
List
<
Organization
>
organizations
=
organizationMapper
.
selectByExample
(
example
);
String
orgId
=
""
;
String
companyCode
=
""
;
String
taxPayerId
=
""
;
if
(
organizations
.
size
()
>
0
)
{
orgId
=
organizations
.
get
(
0
).
getId
();
taxPayerId
=
StringUtils
.
isNotEmpty
(
organizations
.
get
(
0
).
getLegalCode
())
?
organizations
.
get
(
0
).
getLegalCode
()
:
organizations
.
get
(
0
).
getTaxPayerNumber
();
companyCode
=
organizations
.
get
(
0
).
getCode
();
}
String
periodStr
=
getCellStringValue
(
sheet
.
getRow
(
2
).
getCell
(
2
)).
substring
(
3
);
String
companyName
=
getCellStringValue
(
sheet
.
getRow
(
4
).
getCell
(
1
));
String
fileType
=
getCellStringValue
(
sheet
.
getRow
(
0
).
getCell
(
2
));
Integer
period
=
DateUtils
.
strToPeriod
(
periodStr
);
...
...
@@ -1798,6 +1799,36 @@ public class DataImportService extends BaseService {
return
pageInfo
;
}
/**
* 25/02/2019 18:52
*
* [type]
* @author Gary J Li
* @return
*
*/
public
PageInfo
<
DataImportLogDto
>
displayImportLogAll
(
DataImportAllParam
param
)
{
Date
strDate
=
DateUtils
.
strToDate2
(
param
.
getStartDate
());
Date
endDate
=
DateUtils
.
strToDate2
(
param
.
getEndDate
());
DataImportLogExample
example
=
new
DataImportLogExample
();
DataImportLogExample
.
Criteria
criteria
=
example
.
createCriteria
();
Page
page
=
PageHelper
.
startPage
(
param
.
getPageInfo
().
getPageIndex
(),
param
.
getPageInfo
().
getPageSize
());
List
<
String
>
orgIds
=
organizationService
.
getMyOrgList
().
stream
().
map
(
OrgSelectDto:
:
getId
).
collect
(
Collectors
.
toList
());
criteria
.
andOrganizationIdIn
(
orgIds
).
andCreateTimeBetween
(
strDate
,
endDate
);
example
.
setOrderByClause
(
"update_time desc"
);
PageInfo
<
DataImportLogDto
>
pageInfo
=
new
PageInfo
<>(
dataImportLogMapper
.
selectByExample
(
example
).
stream
()
.
map
(
o
->
beanUtil
.
copyProperties
(
o
,
new
DataImportLogDto
())).
collect
(
Collectors
.
toList
()));
pageInfo
.
setTotal
(
page
.
getTotal
());
return
pageInfo
;
}
/**
* 25/02/2019 18:52
*
...
...
@@ -1808,6 +1839,9 @@ public class DataImportService extends BaseService {
*/
public
PageInfo
<
DataValidateLogDto
>
displayProcessLog
(
DataProcessParam
param
)
{
Date
strDate
=
DateUtils
.
strToDate2
(
param
.
getStartDate
());
Date
endDate
=
DateUtils
.
strToDate2
(
param
.
getEndDate
());
DataValidateLogExample
example
=
new
DataValidateLogExample
();
DataValidateLogExample
.
Criteria
criteria
=
example
.
createCriteria
();
...
...
@@ -1817,7 +1851,7 @@ public class DataImportService extends BaseService {
List
<
String
>
orgIds
=
organizationService
.
getMyOrgList
().
stream
().
map
(
OrgSelectDto:
:
getId
).
collect
(
Collectors
.
toList
());
// 这里会导致任何人都可以看到未映射到主体的数据
orgIds
.
add
(
""
);
criteria
.
andOrganizationIdIn
(
orgIds
);
criteria
.
andOrganizationIdIn
(
orgIds
)
.
andCreateTimeBetween
(
strDate
,
endDate
)
;
example
.
setOrderByClause
(
"update_time desc"
);
PageInfo
<
DataValidateLogDto
>
pageInfo
=
new
PageInfo
<>(
dataValidateLogMapper
.
selectByExample
(
example
).
stream
()
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/MenuServiceImpl.java
View file @
ec479c4f
...
...
@@ -121,61 +121,6 @@ public class MenuServiceImpl {
permissionExample
.
createCriteria
().
andIdIn
(
permissionIds
);
List
<
String
>
menuIds
=
permissionMapper
.
selectByExample
(
permissionExample
)
.
stream
().
map
(
Permission:
:
getMenuId
).
collect
(
Collectors
.
toList
());
// admin权限暂时不做控制
if
(
moduleId
==
1
){
menuIds
.
add
(
"91223c21-c15a-4882-89cc-42f3807ec9e3"
);
menuIds
.
add
(
"9bf855fb-6b44-49cd-b95b-41a6a9a8c098"
);
menuIds
.
add
(
"F9A18F3A-7E39-4661-BA00-F149710577C3"
);
menuIds
.
add
(
"F9A18F3A-7E39-4661-BA00-F149710577C4"
);
menuIds
.
add
(
"F9A18F3A-7E39-4661-BA00-F149710577C7"
);
}
else
if
(
moduleId
==
3
){
// 这里的权限之后需要在数据库中加上对应的权限数据
menuIds
.
add
(
"6b404066-2200-4d11-9436-d0870dfd3188"
);
menuIds
.
add
(
"6b404066-2200-4d11-9436-d0870dfd3189"
);
menuIds
.
add
(
"5bdbc9a7-197b-43cc-b0e6-3f50e41b13eb"
);
menuIds
.
add
(
"5bdbc9a7-197b-43cc-b0e6-3f50e41b13ec"
);
menuIds
.
add
(
"5bdbc9a7-197b-43cc-b0e6-3f50e41b13eg"
);
menuIds
.
add
(
"5bdbc9a7-197b-43cc-b0e6-3f50e41b13eh"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0813"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0814"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0815"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0816"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0817"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0818"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0819"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0820"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0821"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0822"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0823"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0824"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0825"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0826"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0827"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0828"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0829"
);
menuIds
.
add
(
"a9b1cd87-89ef-4dae-b798-b19e9bbe0830"
);
menuIds
.
add
(
"b8c74ee9-e5d7-467b-8565-e77efe6a499f"
);
}
else
if
(
moduleId
==
4
){
// 这里的权限之后需要在数据库中加上对应的权限数据
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d75047"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d75048"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d75049"
);
menuIds
.
add
(
"17d6cd83-f5b6-46f2-88e0-58d21957ad29"
);
menuIds
.
add
(
"17d6cd83-f5b6-46f2-88e0-58d21957ad30"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74046"
);
menuIds
.
add
(
"17d6cd83-f5b6-46f2-88e0-58d21957ad30"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74050"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74051"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d740510"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74052"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74053"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74054"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74055"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74056"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74057"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74058"
);
menuIds
.
add
(
"12776533-9c54-4737-a28c-0cd2a3d74059"
);
}
// List<MenuDto> menus = getMenus(moduleId).stream().filter(x -> permissionNames.contains(x.getName())).collect(Collectors.toList());
return
menuIds
;
...
...
atms-api/src/main/resources/Document/DataImport/BalanceSheet.xlsx
View file @
ec479c4f
No preview for this file type
atms-api/src/main/resources/conf/conf.properties
View file @
ec479c4f
...
...
@@ -48,16 +48,23 @@ file_upload_post_url=${file_upload_post_url}
file_upload_query_url
=
${file_upload_query_url}
#didi-config
#是否调用滴滴ticket接口
check_ticket
=
${check_ticket}
#滴滴SSO地址
get_user_info_url
=
${get_user_info_url}
#滴滴备案TMS系统appId
app_id
=
${app_id}
#滴滴备案TMS系统appKey
app_key
=
${app_key}
#cookie最大时长
cookie.maxAgeSeconds
=
${cookie.maxAgeSeconds}
api_white_list
=
${api_white_list}
#机构信息同步地址
org_sync_url
=
${org_sync_url}
#机构信息同步token
org_sync_token
=
${org_sync_token}
#滴滴-与主数据接口调用的生成token所需的公钥
dd_pubkey
=
${dd_pubkey}
#滴滴-EBS抽取接口地址
ebs_call_url
=
${ebs_call_url}
#tableau config
...
...
atms-api/src/main/resources/conf/conf_profile_dev.properties
View file @
ec479c4f
...
...
@@ -51,7 +51,6 @@ get_user_info_url=http://mis.diditaxi.com.cn/auth/sso/api/
app_id
=
2500
app_key
=
983258e7fd04d7fa0534735f7b1c33f3
cookie.maxAgeSeconds
=
86400
api_white_list
=
/ebs/api/v1/dd;
org_sync_url
=
http://10.96.238.10/erp-main-data-test-v2/api/companies
org_sync_token
=
174af08f
dd_pubkey
=
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKUfMPRKV6I5num1dDWcxTrgTjXf5LctsVj0CpbwHE83mmjUO5CAlvA0Fwy30ajCX5sLmsyi+Eu/4uNmM6GQF3kCAwEAAQ==
...
...
atms-api/src/main/resources/conf/conf_profile_pub.properties
View file @
ec479c4f
...
...
@@ -54,7 +54,6 @@ get_user_info_url=http://mis.diditaxi.com.cn/auth/sso/api/
app_id
=
2500
app_key
=
983258e7fd04d7fa0534735f7b1c33f3
cookie.maxAgeSeconds
=
18000
api_white_list
=
/ebs/api/v1/dd;
org_sync_url
=
http://10.96.238.10/erp-main-data-test-v2/api/companies
org_sync_token
=
174af08f
dd_pubkey
=
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKUfMPRKV6I5num1dDWcxTrgTjXf5LctsVj0CpbwHE83mmjUO5CAlvA0Fwy30ajCX5sLmsyi+Eu/4uNmM6GQF3kCAwEAAQ==
...
...
atms-api/src/main/resources/conf/conf_profile_staging.properties
View file @
ec479c4f
...
...
@@ -49,7 +49,6 @@ get_user_info_url=http://mis.diditaxi.com.cn/auth/sso/api/
app_id
=
2500
app_key
=
983258e7fd04d7fa0534735f7b1c33f3
cookie.maxAgeSeconds
=
86400
api_white_list
=
/ebs/api/v1/dd;
org_sync_url
=
http://10.96.238.10/erp-main-data-test-v2/api/companies
org_sync_token
=
174af08f
dd_pubkey
=
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKUfMPRKV6I5num1dDWcxTrgTjXf5LctsVj0CpbwHE83mmjUO5CAlvA0Fwy30ajCX5sLmsyi+Eu/4uNmM6GQF3kCAwEAAQ==
...
...
atms-dao/src/main/java/pwc/taxtech/atms/vat/dao/CashFlowManualMapper.java
View file @
ec479c4f
...
...
@@ -5,9 +5,8 @@ import org.apache.ibatis.annotations.Mapper;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.session.RowBounds
;
import
pwc.taxtech.atms.MyVatMapper
;
import
pwc.taxtech.atms.vat.dpo.CashFlowCondition
;
import
pwc.taxtech.atms.vat.entity.CashFlow
;
import
pwc.taxtech.atms.vat.entity.CashFlowExample
;
import
pwc.taxtech.atms.vat.entity.CashFlowManual
;
import
pwc.taxtech.atms.vat.entity.CashFlowManualExample
;
@Mapper
public
interface
CashFlowManualMapper
extends
MyVatMapper
{
...
...
@@ -17,7 +16,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
long
countByExample
(
CashFlowExample
example
);
long
countByExample
(
CashFlow
Manual
Example
example
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -25,7 +24,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
int
deleteByExample
(
CashFlowExample
example
);
int
deleteByExample
(
CashFlow
Manual
Example
example
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -41,7 +40,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
int
insert
(
CashFlow
record
);
int
insert
(
CashFlow
Manual
record
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -49,7 +48,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
int
insertSelective
(
CashFlow
record
);
int
insertSelective
(
CashFlow
Manual
record
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -57,7 +56,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
List
<
CashFlow
>
selectByExampleWithRowbounds
(
CashFlow
Example
example
,
RowBounds
rowBounds
);
List
<
CashFlow
Manual
>
selectByExampleWithRowbounds
(
CashFlowManual
Example
example
,
RowBounds
rowBounds
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -65,7 +64,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
List
<
CashFlow
>
selectByExample
(
CashFlow
Example
example
);
List
<
CashFlow
Manual
>
selectByExample
(
CashFlowManual
Example
example
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -73,7 +72,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
CashFlow
selectByPrimaryKey
(
Long
id
);
CashFlow
Manual
selectByPrimaryKey
(
Long
id
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -81,7 +80,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
int
updateByExampleSelective
(
@Param
(
"record"
)
CashFlow
record
,
@Param
(
"example"
)
CashFlow
Example
example
);
int
updateByExampleSelective
(
@Param
(
"record"
)
CashFlow
Manual
record
,
@Param
(
"example"
)
CashFlowManual
Example
example
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -89,7 +88,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
int
updateByExample
(
@Param
(
"record"
)
CashFlow
record
,
@Param
(
"example"
)
CashFlow
Example
example
);
int
updateByExample
(
@Param
(
"record"
)
CashFlow
Manual
record
,
@Param
(
"example"
)
CashFlowManual
Example
example
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -97,7 +96,7 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
int
updateByPrimaryKeySelective
(
CashFlow
record
);
int
updateByPrimaryKeySelective
(
CashFlow
Manual
record
);
/**
* This method was generated by MyBatis Generator.
...
...
@@ -105,11 +104,5 @@ public interface CashFlowManualMapper extends MyVatMapper {
*
* @mbg.generated
*/
int
updateByPrimaryKey
(
CashFlow
record
);
List
<
CashFlow
>
selectByCondition
(
@Param
(
"cfCondition"
)
CashFlowCondition
condition
);
Integer
selectCountByCondition
(
@Param
(
"cfCondition"
)
CashFlowCondition
condition
);
int
insertBatch
(
List
<
CashFlow
>
cfs
);
int
updateByPrimaryKey
(
CashFlowManual
record
);
}
\ No newline at end of file
atms-dao/src/main/resources/pwc/taxtech/atms/vat/dao/CashFlowManualMapper.xml
View file @
ec479c4f
<?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.CashFlowManualMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"pwc.taxtech.atms.vat.entity.CashFlow"
>
<resultMap
id=
"BaseResultMap"
type=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
@@ -27,6 +27,7 @@
<result
column=
"ytd_amt"
jdbcType=
"DECIMAL"
property=
"ytdAmt"
/>
<result
column=
"create_time"
jdbcType=
"TIMESTAMP"
property=
"createTime"
/>
<result
column=
"update_time"
jdbcType=
"TIMESTAMP"
property=
"updateTime"
/>
<result
column=
"task_id"
jdbcType=
"VARCHAR"
property=
"taskId"
/>
</resultMap>
<sql
id=
"Example_Where_Clause"
>
<!--
...
...
@@ -101,9 +102,10 @@
-->
id, organization_id, project_id, `date`, `source`, tms_period, period, `status`,
ledger_id, ledger_name, ledger_currency_code, entity_code, entity_name, category,
frequency, item_name, item_name2, period_amt, ytd_amt, create_time, update_time
frequency, item_name, item_name2, period_amt, ytd_amt, create_time, update_time,
task_id
</sql>
<select
id=
"selectByExample"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlowExample"
resultMap=
"BaseResultMap"
>
<select
id=
"selectByExample"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
Example"
resultMap=
"BaseResultMap"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
@@ -139,7 +141,7 @@
delete from cash_flow_manual
where id = #{id,jdbcType=BIGINT}
</delete>
<delete
id=
"deleteByExample"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlowExample"
>
<delete
id=
"deleteByExample"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
Example"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
@@ -149,7 +151,7 @@
<include
refid=
"Example_Where_Clause"
/>
</if>
</delete>
<insert
id=
"insert"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow"
>
<insert
id=
"insert"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
@@ -160,18 +162,18 @@
ledger_name, ledger_currency_code, entity_code,
entity_name, category, frequency,
item_name, item_name2, period_amt,
ytd_amt, create_time, update_time
)
ytd_amt, create_time, update_time
,
task_id
)
values (#{id,jdbcType=BIGINT}, #{organizationId,jdbcType=VARCHAR}, #{projectId,jdbcType=VARCHAR},
#{date,jdbcType=TIMESTAMP}, #{source,jdbcType=VARCHAR}, #{tmsPeriod,jdbcType=INTEGER},
#{period,jdbcType=INTEGER}, #{status,jdbcType=VARCHAR}, #{ledgerId,jdbcType=VARCHAR},
#{ledgerName,jdbcType=VARCHAR}, #{ledgerCurrencyCode,jdbcType=VARCHAR}, #{entityCode,jdbcType=VARCHAR},
#{entityName,jdbcType=VARCHAR}, #{category,jdbcType=VARCHAR}, #{frequency,jdbcType=VARCHAR},
#{itemName,jdbcType=VARCHAR}, #{itemName2,jdbcType=VARCHAR}, #{periodAmt,jdbcType=DECIMAL},
#{ytdAmt,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
)
#{ytdAmt,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
,
#{taskId,jdbcType=VARCHAR}
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow"
>
<insert
id=
"insertSelective"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
@@ -241,6 +243,9 @@
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"taskId != null"
>
task_id,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
...
...
@@ -306,9 +311,12 @@
<if
test=
"updateTime != null"
>
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if
test=
"taskId != null"
>
#{taskId,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select
id=
"countByExample"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlowExample"
resultType=
"java.lang.Long"
>
<select
id=
"countByExample"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
Example"
resultType=
"java.lang.Long"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
@@ -388,6 +396,9 @@
<if
test=
"record.updateTime != null"
>
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
</if>
<if
test=
"record.taskId != null"
>
task_id = #{record.taskId,jdbcType=VARCHAR},
</if>
</set>
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
...
...
@@ -419,12 +430,13 @@
period_amt = #{record.periodAmt,jdbcType=DECIMAL},
ytd_amt = #{record.ytdAmt,jdbcType=DECIMAL},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_time = #{record.updateTime,jdbcType=TIMESTAMP}
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
task_id = #{record.taskId,jdbcType=VARCHAR}
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
</if>
</update>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow"
>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
@@ -491,10 +503,13 @@
<if
test=
"updateTime != null"
>
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if
test=
"taskId != null"
>
task_id = #{taskId,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow"
>
<update
id=
"updateByPrimaryKey"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
@@ -519,10 +534,11 @@
period_amt = #{periodAmt,jdbcType=DECIMAL},
ytd_amt = #{ytdAmt,jdbcType=DECIMAL},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
update_time = #{updateTime,jdbcType=TIMESTAMP},
task_id = #{taskId,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
<select
id=
"selectByExampleWithRowbounds"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlowExample"
resultMap=
"BaseResultMap"
>
<select
id=
"selectByExampleWithRowbounds"
parameterType=
"pwc.taxtech.atms.vat.entity.CashFlow
Manual
Example"
resultMap=
"BaseResultMap"
>
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
...
...
atms-dao/src/main/resources/pwc/taxtech/atms/vat/dao/extends/CashFlowExtendsMapper.xml
View file @
ec479c4f
...
...
@@ -133,6 +133,10 @@
<when
test=
"item.updateTime != null"
>
#{item.updateTime,jdbcType=TIMESTAMP},
</when>
<otherwise>
CURRENT_TIMESTAMP,
</otherwise>
</choose>
<choose>
<when
test=
"item.taskId != null"
>
#{item.taskId,jdbcType=VARCHAR},
</when>
<otherwise>
'',
</otherwise>
</choose>
</trim>
</foreach>
;
SELECT 1 FROM DUAL;
...
...
atms-dao/src/main/resources/pwc/taxtech/atms/vat/dao/extends/CashFlowFinalExtendsMapper.xml
View file @
ec479c4f
...
...
@@ -133,6 +133,10 @@
<when
test=
"item.updateTime != null"
>
#{item.updateTime,jdbcType=TIMESTAMP},
</when>
<otherwise>
CURRENT_TIMESTAMP,
</otherwise>
</choose>
<choose>
<when
test=
"item.taskId != null"
>
#{item.taskId,jdbcType=VARCHAR},
</when>
<otherwise>
'',
</otherwise>
</choose>
</trim>
</foreach>
;
SELECT 1 FROM DUAL;
...
...
atms-dao/src/main/resources/pwc/taxtech/atms/vat/dao/extends/CashFlowManualExtendsMapper.xml
View file @
ec479c4f
...
...
@@ -133,6 +133,10 @@
<when
test=
"item.updateTime != null"
>
#{item.updateTime,jdbcType=TIMESTAMP},
</when>
<otherwise>
CURRENT_TIMESTAMP,
</otherwise>
</choose>
<choose>
<when
test=
"item.taskId != null"
>
#{item.taskId,jdbcType=VARCHAR},
</when>
<otherwise>
'',
</otherwise>
</choose>
</trim>
</foreach>
;
SELECT 1 FROM DUAL;
...
...
atms-web/src/main/webapp/app-resources/i18n/en-us/app.json
View file @
ec479c4f
...
...
@@ -849,5 +849,6 @@
"InternationalDataImport"
:
"International Data Import"
,
"TBEBITForm"
:
"TB EBIT Form"
,
"ClickEnsureTip"
:
"Click Ensure Button!"
,
"RevenueTypeConfiguration"
:
"Revenue Type Config"
}
atms-web/src/main/webapp/app-resources/i18n/en-us/vat.json
View file @
ec479c4f
...
...
@@ -1866,6 +1866,8 @@
"ImportTime"
:
"Import Time"
,
"DataImportLog"
:
"Data Import Log"
,
"DataImportLogTitle"
:
"Data Import Log"
,
"StartDateMao"
:
"Start Date:"
,
"EndDateMao"
:
"End Date:"
,
"SelectedOrganization"
:
"Selected Organization"
,
"SelectedDataType"
:
"Selected DataType"
,
"extractFinancialData"
:
"Extract Financial Data"
,
...
...
atms-web/src/main/webapp/app-resources/i18n/zh-CN/app.json
View file @
ec479c4f
...
...
@@ -905,6 +905,8 @@
"MenuBrazilianTax"
:
"巴西税务分析"
,
"MenuOtherCountries"
:
"其他国家税务分析"
,
"true"
:
"是"
,
"false"
:
"否"
,
...
...
atms-web/src/main/webapp/app-resources/i18n/zh-CN/vat.json
View file @
ec479c4f
...
...
@@ -2126,6 +2126,8 @@
"DataImportLog"
:
"数据导入记录"
,
"DataImportLogTitle"
:
"数据导入记录"
,
"StartDateMao"
:
"开始日期:"
,
"EndDateMao"
:
"结束日期:"
,
"SelectedOrganization"
:
"选择机构"
,
"SelectedDataType"
:
"选择数据类型"
,
...
...
atms-web/src/main/webapp/app/analysis/data-import/domestic-data-import/domestic-data-import.ctrl.js
View file @
ec479c4f
...
...
@@ -171,7 +171,7 @@
fileName
=
m
.
name
+
$scope
.
UploadPeriodTime
+
"_"
+
localDate
;
}
});
param
.
companyName
=
$scope
.
selectCompany
;
//
param.companyName = $scope.selectCompany;
param
.
type
=
$scope
.
importType
;
param
.
period
=
$scope
.
UploadPeriodTime
;
vatImportService
.
downloadDomesticFile
(
param
,
fileName
).
then
(
function
(
data
)
{
...
...
@@ -200,7 +200,7 @@
Upload
.
upload
({
url
:
url
,
data
:
{
companyName
:
$scope
.
selectCompany
,
//
companyName:$scope.selectCompany,
period
:
period
,
type
:
$scope
.
importType
},
...
...
@@ -389,7 +389,7 @@
};
var
getImportTax
=
function
()
{
param
.
companyName
=
$scope
.
selectCompany
;
//
param.companyName = $scope.selectCompany;
param
.
type
=
$scope
.
importType
;
param
.
period
=
$scope
.
UploadPeriodTime
;
vatImportService
.
displayAnalysisImportData
(
param
).
success
(
function
(
data
)
{
...
...
@@ -484,7 +484,7 @@
};
var
getImportReturnTax
=
function
()
{
param
.
companyName
=
$scope
.
selectCompany
;
//
param.companyName = $scope.selectCompany;
param
.
type
=
$scope
.
importType
;
param
.
period
=
$scope
.
UploadPeriodTime
;
vatImportService
.
displayAnalysisImportData
(
param
).
success
(
function
(
data
)
{
...
...
@@ -584,7 +584,7 @@
};
var
getImportGMVSubsidy
=
function
()
{
param
.
companyName
=
$scope
.
selectCompany
;
//
param.companyName = $scope.selectCompany;
param
.
type
=
$scope
.
importType
;
param
.
period
=
$scope
.
UploadPeriodTime
;
vatImportService
.
displayAnalysisImportData
(
param
).
success
(
function
(
data
)
{
...
...
@@ -679,7 +679,7 @@
};
var
getImportEmployeeNum
=
function
()
{
param
.
companyName
=
$scope
.
selectCompany
;
//
param.companyName = $scope.selectCompany;
param
.
type
=
$scope
.
importType
;
param
.
period
=
$scope
.
UploadPeriodTime
;
vatImportService
.
displayAnalysisImportData
(
param
).
success
(
function
(
data
)
{
...
...
@@ -759,7 +759,7 @@
};
var
getImportDriverNum
=
function
()
{
param
.
companyName
=
$scope
.
selectCompany
;
//
param.companyName = $scope.selectCompany;
param
.
type
=
$scope
.
importType
;
param
.
period
=
$scope
.
UploadPeriodTime
;
vatImportService
.
displayAnalysisImportData
(
param
).
success
(
function
(
data
)
{
...
...
atms-web/src/main/webapp/app/analysis/data-import/domestic-data-import/domestic-data-import.html
View file @
ec479c4f
...
...
@@ -33,7 +33,7 @@
readonly=
"readonly"
ng-model=
"UploadPeriodTime"
/>
<i
class=
"fa fa-calendar imp-subheader red-color"
style=
"width:20px;"
></i>
</div>
<span
class=
"text-bold"
translate=
"Company"
></span>
:
<
!--<
span class="text-bold" translate="Company"></span>:
<div class="dropdown" style="margin-left:10px">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu4"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" style="width: 320px;">
...
...
@@ -47,7 +47,7 @@
</div>
</li>
</ul>
</div>
</div>
-->
<button
type=
"button"
ngf-select=
""
type=
"file"
ng-model=
"importExcelFile"
ngf-drag-over-class=
"'dragover'"
accept=
".xls,.xlsx"
ngf-multiple=
"false"
ngf-allow-dir=
"false"
class=
"btn btn-vat-third"
style=
"margin-right:10px;margin-left:10px"
>
...
...
atms-web/src/main/webapp/app/analysis/data-import/international-data-import/international-data-import.ctrl.js
View file @
ec479c4f
...
...
@@ -299,20 +299,40 @@
showBorders
:
true
,
columns
:
[
{
dataField
:
"
category
"
,
width
:
'
40
%'
,
dataField
:
"
gmv
"
,
width
:
'
14
%'
,
allowHeaderFiltering
:
false
,
caption
:
'
Category
'
caption
:
'
Gmv
'
},
{
dataField
:
"
name
"
,
dataField
:
"
trips
"
,
allowHeaderFiltering
:
false
,
caption
:
'
Name
'
,
width
:
'
30
%'
caption
:
'
Trips
'
,
width
:
'
14
%'
},
{
dataField
:
"
amount
"
,
dataField
:
"
subsidyB
"
,
allowHeaderFiltering
:
false
,
width
:
'30%'
,
caption
:
'Amount'
width
:
'14%'
,
caption
:
'SubsidyB'
},
{
dataField
:
"subsidyC"
,
allowHeaderFiltering
:
false
,
width
:
'14%'
,
caption
:
'SubsidyC'
},
{
dataField
:
"revenue"
,
allowHeaderFiltering
:
false
,
width
:
'14%'
,
caption
:
'Revenue'
},
{
dataField
:
"profit"
,
allowHeaderFiltering
:
false
,
width
:
'14%'
,
caption
:
'Profit'
},
{
dataField
:
"exchangeRate"
,
allowHeaderFiltering
:
false
,
width
:
'14%'
,
caption
:
'ExchangeRate'
}],
onContentReady
:
function
(
e
)
{
$scope
.
accountingRateListInstance
=
e
.
component
;
...
...
atms-web/src/main/webapp/app/common/vatservices/vatImportService.js
View file @
ec479c4f
...
...
@@ -403,6 +403,9 @@
displayImportLog
:
function
(
pageInfo
,
type
)
{
return
$http
.
post
(
'/DataImport/displayImportLog'
,
{
pageInfo
:
pageInfo
,
type
:
type
},
apiConfig
.
create
());
},
displayImportLogAll
:
function
(
param
)
{
return
$http
.
post
(
'/DataImport/displayImportLogAll'
,
param
,
apiConfig
.
create
());
},
displayProcessLog
:
function
(
queryParams
)
{
return
$http
.
post
(
'/DataImport/displayProcessLog'
,
queryParams
,
apiConfig
.
create
());
},
...
...
atms-web/src/main/webapp/app/dataImport/log/import-log/import-log.ctrl.js
View file @
ec479c4f
...
...
@@ -6,19 +6,21 @@
,
vatSessionService
,
enums
)
{
'use strict'
;
$scope
.
pleaseSelect
=
$translate
.
instant
(
'PleaseSelect'
);
$scope
.
startDate
=
new
Date
(
new
Date
().
getFullYear
()
-
20
,
1
,
1
);
$scope
.
endDate
=
new
Date
(
new
Date
().
getFullYear
()
+
20
,
1
,
1
);
$scope
.
viewMode
=
'days'
;
$scope
.
period
=
$scope
.
periodId
;
$scope
.
moduleid
=
enums
.
vatModuleEnum
.
Import_TrialBalance
;
$scope
.
chunkSize
=
100000
;
$scope
.
projectID
=
vatSessionService
.
project
.
id
;
$scope
.
startRowNum
=
2
;
var
date
=
new
Date
();
var
year
=
date
.
getFullYear
();
var
month
=
date
.
getMonth
();
$scope
.
selectedDate
=
new
Date
(
vatSessionService
.
year
,
vatSessionService
.
month
-
1
,
1
);
$scope
.
startDate
=
new
Date
(
year
-
20
,
1
,
1
);
$scope
.
endDate
=
new
Date
(
year
+
20
,
1
,
1
);
$scope
.
viewMode
=
1
;
var
month
=
date
.
getMonth
()
+
1
;
var
day
=
date
.
getDate
();
$scope
.
dateFormat
=
$translate
.
instant
(
'dateFormat4YearMonth'
);
//初始化ack-pagination
...
...
@@ -38,14 +40,20 @@
//初始化查询参数
$scope
.
queryParams
=
{
pageInfo
:
{
totalCount
:
0
,
pageIndex
:
0
,
pageSize
:
0
,
totalPage
:
0
pageIndex
:
1
,
//当前页码
totalItems
:
0
,
//总数据
totalPages
:
10
,
//总页数
maxSize
:
5
,
//分页数字的限制。
pageSize
:
constant
.
page
.
pageSizeArrary
[
3
],
//每页多少条数据,100条
pageSizeString
:
constant
.
page
.
pageSizeArrary
[
3
].
toString
(),
firstPage
:
$translate
.
instant
(
'PagingFirstPage'
),
previousPage
:
$translate
.
instant
(
'PagingPreviousPage'
),
nextPage
:
$translate
.
instant
(
'PagingNextPage'
),
lastPage
:
$translate
.
instant
(
'PagingLastPage'
)
},
periodId
:
$scope
.
perio
d
,
s
erviceTypeId
:
$scope
.
serviceTypeId
,
projectId
:
$scope
.
projectID
type
:
constant
.
importFileType
.
undefine
d
,
s
tartDate
:
year
+
'/'
+
month
+
'/'
+
day
,
endDate
:
year
+
'/'
+
month
+
'/'
+
day
};
var
loadImportLogInfoDatagrid
=
function
()
{
...
...
@@ -143,7 +151,7 @@
};
var
getImportLog
=
function
()
{
vatImportService
.
displayImportLog
(
$scope
.
pagingOptions
,
constant
.
importFileType
.
undefined
).
success
(
function
(
data
)
{
vatImportService
.
displayImportLog
All
(
$scope
.
queryParams
).
success
(
function
(
data
)
{
if
(
data
&&
data
.
list
)
{
$scope
.
ImportLogGridSource
=
data
.
list
;
$scope
.
pagingOptions
.
totalItems
=
data
.
pageInfo
.
totalCount
;
...
...
@@ -197,8 +205,8 @@
};
var
initDatePicker
=
function
()
{
var
ele
1
=
$
(
"#period
Datepicker"
);
ele
1
.
datepicker
({
var
ele
=
$
(
".start
Datepicker"
);
ele
.
datepicker
({
startDate
:
$scope
.
startDate
,
endDate
:
$scope
.
endDate
,
viewMode
:
$scope
.
viewMode
,
...
...
@@ -206,15 +214,33 @@
autoclose
:
true
,
//选中之后自动隐藏日期选择框
clearBtn
:
true
,
//清除按钮
todayBtn
:
false
,
//今日按钮
format
:
$scope
.
dateFormat
//日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
format
:
'yyyy/mm/dd'
//日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
});
ele1
.
datepicker
(
"setDate"
,
$scope
.
selectedDate
);
ele
.
datepicker
(
"setDate"
,
new
Date
().
formatDateTime
(
'yyyy/mm/dd'
));
var
ele2
=
$
(
".endDatepicker"
);
ele2
.
datepicker
({
startDate
:
$scope
.
startDate
,
endDate
:
$scope
.
endDate
,
viewMode
:
$scope
.
viewMode
,
minViewMode
:
$scope
.
viewMode
,
autoclose
:
true
,
//选中之后自动隐藏日期选择框
clearBtn
:
true
,
//清除按钮
todayBtn
:
false
,
//今日按钮
format
:
'yyyy/mm/dd'
//日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
});
ele2
.
datepicker
(
"setDate"
,
new
Date
().
formatDateTime
(
'yyyy/mm/dd'
));
};
var
initParam
=
function
()
{
$scope
.
initPagingControl
=
initPagingControl
;
$scope
.
setButtonWrapStyle
=
setButtonWrapStyle
;
$scope
.
setGridStyle
=
setGridStyle
;
$scope
.
$watch
(
'queryParams.startDate'
,
function
(
newValue
,
oldValue
)
{
getImportLog
();
});
$scope
.
$watch
(
'queryParams.endDate'
,
function
(
newValue
,
oldValue
)
{
getImportLog
();
});
};
//开始
...
...
atms-web/src/main/webapp/app/dataImport/log/import-log/import-log.html
View file @
ec479c4f
...
...
@@ -4,6 +4,18 @@
<div
class=
"nav-header"
translate=
"DataImportLogTitle"
></div>
</div>
<div
id=
"tab_total"
>
<div
class=
"select-period"
style=
"height: 10px;"
>
<span
class=
"text-bold"
style=
"float: left; margin-top: 5px;"
>
{{'StartDateMao'|translate}}
</span>
<div
class=
"input-daterange input-group startDatepicker"
style=
"float: left;width: 10%;"
>
<input
type=
"text"
id=
"startDate"
class=
"input-sm form-control"
name=
"startDate"
ng-model=
"queryParams.startDate"
style=
"width: 120px;margin-left: 50px;"
/>
</div>
<span
class=
"text-bold"
style=
"float: left; margin-left: 50px; margin-top: 5px;"
>
{{'EndDateMao'|translate}}
</span>
<div
class=
"input-daterange input-group endDatepicker"
style=
"float: left;width: 10%;"
>
<input
type=
"text"
id=
"endDate"
class=
"input-sm form-control"
name=
"endDate"
ng-model=
"queryParams.endDate"
style=
"width: 120px;margin-left: 50px;"
/>
</div>
</div>
<div
class=
"dt-init-wrapper"
>
<div
class=
"dx-viewport grid-container"
>
<div
id=
"importLogGridContainer"
dx-data-grid=
"importLogGridOptions"
...
...
atms-web/src/main/webapp/app/dataImport/log/process-log/process-log.ctrl.js
View file @
ec479c4f
...
...
@@ -6,18 +6,22 @@
,
vatSessionService
,
enums
)
{
'use strict'
;
$scope
.
pleaseSelect
=
$translate
.
instant
(
'PleaseSelect'
);
$scope
.
startDate
=
new
Date
(
new
Date
().
getFullYear
()
-
20
,
1
,
1
);
$scope
.
endDate
=
new
Date
(
new
Date
().
getFullYear
()
+
20
,
1
,
1
);
$scope
.
viewMode
=
'days'
;
$scope
.
period
=
$scope
.
periodId
;
$scope
.
moduleid
=
enums
.
vatModuleEnum
.
Import_TrialBalance
;
$scope
.
chunkSize
=
100000
;
$scope
.
projectID
=
vatSessionService
.
project
.
id
;
$scope
.
startRowNum
=
2
;
var
date
=
new
Date
();
var
year
=
date
.
getFullYear
();
var
month
=
date
.
getMonth
();
var
month
=
date
.
getMonth
()
+
1
;
var
day
=
date
.
getDate
();
$scope
.
selectedDate
=
new
Date
(
vatSessionService
.
year
,
vatSessionService
.
month
-
1
,
1
);
$scope
.
startDate
=
new
Date
(
year
-
20
,
1
,
1
);
$scope
.
endDate
=
new
Date
(
year
+
20
,
1
,
1
);
$scope
.
viewMode
=
1
;
$scope
.
dateFormat
=
$translate
.
instant
(
'dateFormat4YearMonth'
);
...
...
@@ -47,8 +51,10 @@
firstPage
:
$translate
.
instant
(
'PagingFirstPage'
),
previousPage
:
$translate
.
instant
(
'PagingPreviousPage'
),
nextPage
:
$translate
.
instant
(
'PagingNextPage'
),
lastPage
:
$translate
.
instant
(
'PagingLastPage'
),
}
lastPage
:
$translate
.
instant
(
'PagingLastPage'
)
},
startDate
:
year
+
'/'
+
month
+
'/'
+
day
,
endDate
:
year
+
'/'
+
month
+
'/'
+
day
};
var
loadProcessLogInfoDatagrid
=
function
()
{
...
...
@@ -204,10 +210,21 @@
return
{
'margin-top'
:
'55px'
}
}
};
var
initDatePicker
=
function
()
{
var
ele1
=
$
(
"#periodDatepicker"
);
ele1
.
datepicker
({
var
ele
=
$
(
".startDatepicker"
);
ele
.
datepicker
({
startDate
:
$scope
.
startDate
,
endDate
:
$scope
.
endDate
,
viewMode
:
$scope
.
viewMode
,
minViewMode
:
$scope
.
viewMode
,
autoclose
:
true
,
//选中之后自动隐藏日期选择框
clearBtn
:
true
,
//清除按钮
todayBtn
:
false
,
//今日按钮
format
:
'yyyy/mm/dd'
//日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
});
ele
.
datepicker
(
"setDate"
,
new
Date
().
formatDateTime
(
'yyyy/mm/dd'
));
var
ele2
=
$
(
".endDatepicker"
);
ele2
.
datepicker
({
startDate
:
$scope
.
startDate
,
endDate
:
$scope
.
endDate
,
viewMode
:
$scope
.
viewMode
,
...
...
@@ -215,15 +232,21 @@
autoclose
:
true
,
//选中之后自动隐藏日期选择框
clearBtn
:
true
,
//清除按钮
todayBtn
:
false
,
//今日按钮
format
:
$scope
.
dateFormat
//日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
format
:
'yyyy/mm/dd'
//日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
});
ele
1
.
datepicker
(
"setDate"
,
$scope
.
selectedDate
);
ele
2
.
datepicker
(
"setDate"
,
new
Date
().
formatDateTime
(
'yyyy/mm/dd'
)
);
};
var
initParam
=
function
()
{
$scope
.
initPagingControl
=
initPagingControl
;
$scope
.
setButtonWrapStyle
=
setButtonWrapStyle
;
$scope
.
setGridStyle
=
setGridStyle
;
$scope
.
$watch
(
'queryParams.startDate'
,
function
(
newValue
,
oldValue
)
{
getProcessLog
();
});
$scope
.
$watch
(
'queryParams.endDate'
,
function
(
newValue
,
oldValue
)
{
getProcessLog
();
});
};
//开始
...
...
@@ -234,7 +257,6 @@
getUserPermission
();
loadProcessLogInfoDatagrid
();
initDatePicker
();
$timeout
(
function
()
{
$scope
.
isLoadComplete
=
true
;
},
500
);
...
...
atms-web/src/main/webapp/app/dataImport/log/process-log/process-log.html
View file @
ec479c4f
...
...
@@ -4,6 +4,18 @@
<div
class=
"nav-header"
translate=
"DataProcessLogTitle"
></div>
</div>
<div
id=
"tab_total"
>
<div
class=
"select-period"
style=
"height: 10px;"
>
<span
class=
"text-bold"
style=
"float: left; margin-top: 5px;"
>
{{'StartDateMao'|translate}}
</span>
<div
class=
"input-daterange input-group startDatepicker"
style=
"float: left;width: 10%;"
>
<input
type=
"text"
id=
"startDate"
class=
"input-sm form-control"
name=
"startDate"
ng-model=
"queryParams.startDate"
style=
"width: 120px;margin-left: 50px;"
/>
</div>
<span
class=
"text-bold"
style=
"float: left; margin-left: 50px; margin-top: 5px;"
>
{{'EndDateMao'|translate}}
</span>
<div
class=
"input-daterange input-group endDatepicker"
style=
"float: left;width: 10%;"
>
<input
type=
"text"
id=
"endDate"
class=
"input-sm form-control"
name=
"endDate"
ng-model=
"queryParams.endDate"
style=
"width: 120px;margin-left: 50px;"
/>
</div>
</div>
<div
class=
"dt-init-wrapper"
>
<div
class=
"dx-viewport grid-container"
>
<div
id=
"processLogGridContainer"
dx-data-grid=
"processLogGridOptions"
...
...
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