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
7e67c133
Commit
7e67c133
authored
Feb 20, 2019
by
eddie.woo
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
f6e95b16
bec57933
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
318 additions
and
7 deletions
+318
-7
EbsApiController.java
...in/java/pwc/taxtech/atms/controller/EbsApiController.java
+40
-0
JEqueryDto.java
...src/main/java/pwc/taxtech/atms/dto/ebsdto/JEqueryDto.java
+0
-0
CashFlowHeader.java
...c/taxtech/atms/dto/vatdto/excelheader/CashFlowHeader.java
+7
-7
EbsApiService.java
...src/main/java/pwc/taxtech/atms/service/EbsApiService.java
+14
-0
EbsApiServiceImpl.java
...java/pwc/taxtech/atms/service/impl/EbsApiServiceImpl.java
+165
-0
EbsApiServiceImplTest.java
.../pwc/taxtech/atms/service/impl/EbsApiServiceImplTest.java
+92
-0
No files found.
atms-api/src/main/java/pwc/taxtech/atms/controller/EbsApiController.java
0 → 100644
View file @
7e67c133
package
pwc
.
taxtech
.
atms
.
controller
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
pwc.taxtech.atms.dto.ApiResultDto
;
import
pwc.taxtech.atms.dto.ebsdto.JEqueryDto
;
import
pwc.taxtech.atms.service.EbsApiService
;
import
javax.annotation.Resource
;
import
java.util.Collections
;
import
java.util.List
;
@RestController
@RequestMapping
(
"/ebs/api/v1/dd"
)
public
class
EbsApiController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
EbsApiController
.
class
);
@Resource
private
EbsApiService
ebsApiService
;
@RequestMapping
(
value
=
"/queryRemoteServerThenUpdateJE"
,
method
=
RequestMethod
.
POST
)
public
ApiResultDto
queryRemoteServerThenUpdateJE
(
@RequestBody
List
<
JEqueryDto
>
items
)
{
if
(
items
!=
null
&&!
items
.
isEmpty
())
{
return
ApiResultDto
.
success
(
Collections
.
emptyList
());
}
try
{
ebsApiService
.
queryRemoteServerThenUpdateJE
(
items
);
return
ApiResultDto
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"queryRemoteServerThenUpdateJE error."
,
e
);
}
return
ApiResultDto
.
fail
();
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/ebsdto/JEqueryDto.java
0 → 100644
View file @
7e67c133
This diff is collapsed.
Click to expand it.
atms-api/src/main/java/pwc/taxtech/atms/dto/vatdto/excelheader/CashFlowHeader.java
View file @
7e67c133
...
...
@@ -10,7 +10,7 @@ public class CashFlowHeader {
private
String
status
;
public
String
getCompanyNameCn
()
{
return
this
.
companyNameCn
;
return
companyNameCn
;
}
public
void
setCompanyNameCn
(
String
companyNameCn
)
{
...
...
@@ -18,7 +18,7 @@ public class CashFlowHeader {
}
public
String
getCompanyNameEn
()
{
return
this
.
companyNameEn
;
return
companyNameEn
;
}
public
void
setCompanyNameEn
(
String
companyNameEn
)
{
...
...
@@ -26,7 +26,7 @@ public class CashFlowHeader {
}
public
Integer
getPeriodStart
()
{
return
this
.
periodStart
;
return
periodStart
;
}
public
void
setPeriodStart
(
Integer
periodStart
)
{
...
...
@@ -34,7 +34,7 @@ public class CashFlowHeader {
}
public
Integer
getPeriodEnd
()
{
return
this
.
periodEnd
;
return
periodEnd
;
}
public
void
setPeriodEnd
(
Integer
periodEnd
)
{
...
...
@@ -42,7 +42,7 @@ public class CashFlowHeader {
}
public
String
getLedgerName
()
{
return
this
.
ledgerName
;
return
ledgerName
;
}
public
void
setLedgerName
(
String
ledgerName
)
{
...
...
@@ -50,7 +50,7 @@ public class CashFlowHeader {
}
public
String
getLedgerCurrencyCode
()
{
return
this
.
ledgerCurrencyCode
;
return
ledgerCurrencyCode
;
}
public
void
setLedgerCurrencyCode
(
String
ledgerCurrencyCode
)
{
...
...
@@ -58,7 +58,7 @@ public class CashFlowHeader {
}
public
String
getStatus
()
{
return
this
.
status
;
return
status
;
}
public
void
setStatus
(
String
status
)
{
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/EbsApiService.java
0 → 100644
View file @
7e67c133
package
pwc
.
taxtech
.
atms
.
service
;
import
pwc.taxtech.atms.dto.ebsdto.JEqueryDto
;
import
java.util.List
;
public
interface
EbsApiService
{
/**
* EBS 日记账同步更新
* @param items
*/
void
queryRemoteServerThenUpdateJE
(
List
<
JEqueryDto
>
items
);
}
atms-api/src/main/java/pwc/taxtech/atms/service/impl/EbsApiServiceImpl.java
0 → 100644
View file @
7e67c133
package
pwc
.
taxtech
.
atms
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
org.apache.commons.lang3.StringUtils
;
import
org.nutz.lang.Lang
;
import
org.nutz.lang.Strings
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
pwc.taxtech.atms.common.util.BeanUtil
;
import
pwc.taxtech.atms.dto.ebsdto.JEqueryDto
;
import
pwc.taxtech.atms.service.EbsApiService
;
import
pwc.taxtech.atms.vat.dao.JournalEntryMapper
;
import
pwc.taxtech.atms.vat.entity.JournalEntry
;
import
pwc.taxtech.atms.vat.entity.JournalEntryExample
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Optional
;
@Service
public
class
EbsApiServiceImpl
implements
EbsApiService
{
@Resource
private
JournalEntryMapper
journalEntryMapper
;
@Resource
private
DistributedIdService
distributedIdService
;
@Resource
private
BeanUtil
beanUtil
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
EbsApiServiceImpl
.
class
);
@Override
public
void
queryRemoteServerThenUpdateJE
(
List
<
JEqueryDto
>
items
)
{
long
start
=
System
.
currentTimeMillis
();
logger
.
debug
(
"start queryRemoteServerThenUpdateJE"
);
//判断数据是否存在
if
(
items
.
size
()==
0
){
logger
.
error
(
"empty EBS JE response, skip processing"
);
return
;
}
logger
.
debug
(
"requestJEItems:"
+
JSON
.
toJSONString
(
items
));
for
(
JEqueryDto
a:
items
){
try
{
processJE
(
a
);
}
catch
(
Exception
e
){
logger
.
error
(
"break loop as catch:"
+
e
,
e
);
}
}
logger
.
debug
(
"end queryRemoteServerThenUpdateJE,took [{}] ms"
,
System
.
currentTimeMillis
()-
start
);
}
private
void
processJE
(
JEqueryDto
item
){
JournalEntryExample
journalEntryExample
=
new
JournalEntryExample
();
journalEntryExample
.
createCriteria
().
andHeaderIdEqualTo
(
item
.
getHeaderId
()).
andLineNumEqualTo
(
item
.
getLineNum
());
List
<
JournalEntry
>
journalEntryList
=
journalEntryMapper
.
selectByExample
(
journalEntryExample
);
//唯一则更新否则插入
JournalEntry
journalEntry
=
new
JournalEntry
();
if
(
journalEntryList
.
size
()==
1
){
logger
.
info
(
"exit and update journalEntry headerId:{},lineNum:{}"
,
item
.
getHeaderId
(),
item
.
getLineNum
());
journalEntry
=
journalEntryList
.
get
(
0
);
populateFieldsJE
(
item
,
journalEntry
);
journalEntryMapper
.
updateByPrimaryKey
(
journalEntry
);
}
else
{
logger
.
info
(
"miss and insert journalEntry headerId:{},lineNum:{}"
,
item
.
getHeaderId
(),
item
.
getLineNum
());
populateFieldsJE
(
item
,
journalEntry
);
journalEntry
.
setId
(
distributedIdService
.
nextId
());
journalEntry
.
setCreatedBy
(
""
);
journalEntry
.
setCreatedDate
(
new
Date
());
journalEntry
.
setCreateTime
(
new
Date
());
journalEntryMapper
.
insertSelective
(
journalEntry
);
}
}
private
void
populateFieldsJE
(
JEqueryDto
item
,
JournalEntry
result
){
result
.
setOrganizationId
(
trimLimit
(
item
.
getOrganizationId
(),
128
));
result
.
setProjectId
(
trimLimit
(
item
.
getProjectId
(),
128
));
result
.
setDate
(
item
.
getDate
());
result
.
setSource
(
trimLimit
(
item
.
getSource
(),
20
));
result
.
setLedgerId
(
trimLimit
(
item
.
getLedgerId
(),
128
));
result
.
setLedgerName
(
trimLimit
(
item
.
getLedgerName
(),
300
));
result
.
setCurrencyCode
(
trimLimit
(
item
.
getCurrencyCode
(),
20
));
result
.
setStatus
(
trimLimit
(
item
.
getStatus
(),
10
));
result
.
setHeaderId
(
trimLimit
(
item
.
getHeaderId
(),
128
));
result
.
setLineNum
(
trimLimit
(
item
.
getLineNum
(),
300
));
result
.
setApprovalStatus
(
trimLimit
(
item
.
getApprovalStatus
(),
20
));
result
.
setPostedStatus
(
trimLimit
(
item
.
getPostedStatus
(),
20
));
result
.
setPeriod
(
StringUtils
.
isBlank
(
item
.
getPeriod
().
toString
())?
0
:
item
.
getPeriod
());
result
.
setAccountingDate
(
item
.
getAccountingDate
());
result
.
setJournalSource
(
trimLimit
(
item
.
getJournalSource
(),
20
));
result
.
setCategory
(
trimLimit
(
item
.
getCategory
(),
50
));
result
.
setName
(
trimLimit
(
item
.
getName
(),
300
));
result
.
setVoucherNum
(
trimLimit
(
item
.
getVoucherNum
(),
128
));
result
.
setDescription
(
trimLimit
(
item
.
getDescription
(),
500
));
result
.
setSegment1
(
trimLimit
(
item
.
getSegment1
(),
300
));
result
.
setSegment2
(
trimLimit
(
item
.
getSegment2
(),
300
));
result
.
setSegment3
(
trimLimit
(
item
.
getSegment3
(),
300
));
result
.
setSegment4
(
trimLimit
(
item
.
getSegment4
(),
300
));
result
.
setSegment5
(
trimLimit
(
item
.
getSegment5
(),
300
));
result
.
setSegment6
(
trimLimit
(
item
.
getSegment6
(),
300
));
result
.
setSegment7
(
trimLimit
(
item
.
getSegment7
(),
300
));
result
.
setSegment8
(
trimLimit
(
item
.
getSegment8
(),
300
));
result
.
setSegment9
(
trimLimit
(
item
.
getSegment9
(),
300
));
result
.
setSegment10
(
trimLimit
(
item
.
getSegment10
(),
300
));
result
.
setSegment1Name
(
trimLimit
(
item
.
getSegment1Name
(),
300
));
result
.
setSegment2Name
(
trimLimit
(
item
.
getSegment2Name
(),
300
));
result
.
setSegment3Name
(
trimLimit
(
item
.
getSegment3Name
(),
300
));
result
.
setSegment4Name
(
trimLimit
(
item
.
getSegment4Name
(),
300
));
result
.
setSegment5Name
(
trimLimit
(
item
.
getSegment5Name
(),
300
));
result
.
setSegment6Name
(
trimLimit
(
item
.
getSegment6Name
(),
300
));
result
.
setSegment7Name
(
trimLimit
(
item
.
getSegment7Name
(),
300
));
result
.
setSegment8Name
(
trimLimit
(
item
.
getSegment8Name
(),
300
));
result
.
setSegment9Name
(
trimLimit
(
item
.
getSegment9Name
(),
300
));
result
.
setSegment10Name
(
trimLimit
(
item
.
getSegment10Name
(),
300
));
result
.
setJournalCurrencyCode
(
trimLimit
(
item
.
getJournalCurrencyCode
(),
20
));
result
.
setSobCurrencyCode
(
trimLimit
(
item
.
getSobCurrencyCode
(),
20
));
result
.
setAccountedDr
(
Optional
.
ofNullable
(
item
.
getAccountedDr
()).
map
(
x
->
x
.
setScale
(
4
,
RoundingMode
.
HALF_UP
)).
orElse
(
BigDecimal
.
ZERO
));
result
.
setAccountedCr
(
Optional
.
ofNullable
(
item
.
getAccountedCr
()).
map
(
x
->
x
.
setScale
(
4
,
RoundingMode
.
HALF_UP
)).
orElse
(
BigDecimal
.
ZERO
));
result
.
setEnteredDr
(
Optional
.
ofNullable
(
item
.
getEnteredDr
()).
map
(
x
->
x
.
setScale
(
4
,
RoundingMode
.
HALF_UP
)).
orElse
(
BigDecimal
.
ZERO
));
result
.
setEnteredCr
(
Optional
.
ofNullable
(
item
.
getEnteredCr
()).
map
(
x
->
x
.
setScale
(
4
,
RoundingMode
.
HALF_UP
)).
orElse
(
BigDecimal
.
ZERO
));
result
.
setCfItem
(
trimLimit
(
item
.
getCfItem
(),
50
));
result
.
setAttribute1
(
trimLimit
(
item
.
getAttribute1
(),
300
));
result
.
setAttribute2
(
item
.
getAttribute2
());
result
.
setAttribute3
(
trimLimit
(
item
.
getAttribute3
(),
300
));
result
.
setAttribute4
(
trimLimit
(
item
.
getAttribute4
(),
300
));
result
.
setAttribute5
(
trimLimit
(
item
.
getAttribute5
(),
300
));
result
.
setAttribute6
(
trimLimit
(
item
.
getAttribute6
(),
300
));
result
.
setAttribute7
(
trimLimit
(
item
.
getAttribute7
(),
300
));
result
.
setAttribute8
(
trimLimit
(
item
.
getAttribute8
(),
300
));
result
.
setAttribute9
(
trimLimit
(
item
.
getAttribute9
(),
300
));
result
.
setAttribute10
(
trimLimit
(
item
.
getAttribute10
(),
300
));
result
.
setAttribute11
(
trimLimit
(
item
.
getAttribute11
(),
300
));
result
.
setAttribute12
(
trimLimit
(
item
.
getAttribute12
(),
300
));
result
.
setAttribute13
(
trimLimit
(
item
.
getAttribute13
(),
300
));
result
.
setAttribute14
(
trimLimit
(
item
.
getAttribute14
(),
300
));
result
.
setAttribute15
(
trimLimit
(
item
.
getAttribute15
(),
300
));
result
.
setAttribute16
(
trimLimit
(
item
.
getAttribute16
(),
300
));
result
.
setLateUpdatedBy
(
""
);
result
.
setLateUpdatedDate
(
new
Date
());
result
.
setUpdateTime
(
new
Date
());
}
/** Trim字符串,并限定字符串的长度. 如果是输入值是空指针,会返回空字符串 */
public
String
trimLimit
(
String
str
,
int
limit
)
{
if
(
Strings
.
isBlank
(
str
))
{
return
""
;
}
String
tmp
=
str
.
trim
();
String
result
=
cutString
(
tmp
,
limit
);
if
(
result
==
null
)
result
=
""
;
return
result
;
}
/** 限定字符串的长度. */
public
String
cutString
(
String
s
,
int
length
)
{
if
(
Lang
.
isEmpty
(
length
)
||
Lang
.
isEmpty
(
s
))
return
""
;
else
if
(
s
.
length
()
<=
length
)
return
s
;
else
return
s
.
substring
(
0
,
length
);
}
}
atms-api/src/test/java/pwc/taxtech/atms/service/impl/EbsApiServiceImplTest.java
0 → 100644
View file @
7e67c133
package
pwc
.
taxtech
.
atms
.
service
.
impl
;
import
org.junit.Test
;
import
pwc.taxtech.atms.CommonIT
;
import
pwc.taxtech.atms.dto.ebsdto.JEqueryDto
;
import
pwc.taxtech.atms.service.EbsApiService
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
public
class
EbsApiServiceImplTest
extends
CommonIT
{
@Resource
private
EbsApiService
ebsApiService
;
@Resource
private
DistributedIdService
distributedIdService
;
@Test
public
void
queryRemoteServerThenUpdateJE
(){
List
<
JEqueryDto
>
items
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
10
;
i
++){
JEqueryDto
jEqueryDto
=
new
JEqueryDto
();
jEqueryDto
.
setId
(
distributedIdService
.
nextId
());
jEqueryDto
.
setOrganizationId
(
"44250A49-F3EF-4A1E-89E0-165BB89A94D0"
);
jEqueryDto
.
setProjectId
(
"44250A49-F3EF-4A1E-89E0-165BB89A94D0"
);
jEqueryDto
.
setDate
(
new
Date
());
jEqueryDto
.
setSource
(
"这是哪里"
+
i
);
jEqueryDto
.
setLedgerId
(
"我关联谁"
+
i
);
jEqueryDto
.
setLedgerName
(
"我是谁"
+
i
);
jEqueryDto
.
setCurrencyCode
(
"123"
+
i
);
jEqueryDto
.
setStatus
(
"1"
);
jEqueryDto
.
setHeaderId
(
"123456789"
);
jEqueryDto
.
setLineNum
(
"1"
);
jEqueryDto
.
setApprovalStatus
(
"1"
);
jEqueryDto
.
setPostedStatus
(
"1"
);
jEqueryDto
.
setPeriod
(
0
);
jEqueryDto
.
setAccountingDate
(
new
Date
());
jEqueryDto
.
setJournalSource
(
"setJournalSource"
);
jEqueryDto
.
setCategory
(
"setCategory"
);
jEqueryDto
.
setName
(
"setName"
);
jEqueryDto
.
setVoucherNum
(
"setVoucherNum"
);
jEqueryDto
.
setDescription
(
"setDescription"
);
jEqueryDto
.
setSegment1
(
"setSegment1"
);
jEqueryDto
.
setSegment2
(
"setSegment2"
);
jEqueryDto
.
setSegment3
(
""
);
jEqueryDto
.
setSegment4
(
""
);
jEqueryDto
.
setSegment5
(
""
);
jEqueryDto
.
setSegment6
(
""
);
jEqueryDto
.
setSegment7
(
""
);
jEqueryDto
.
setSegment8
(
""
);
jEqueryDto
.
setSegment9
(
""
);
jEqueryDto
.
setSegment10
(
""
);
jEqueryDto
.
setSegment1Name
(
""
);
jEqueryDto
.
setSegment2Name
(
""
);
jEqueryDto
.
setSegment3Name
(
""
);
jEqueryDto
.
setSegment4Name
(
""
);
jEqueryDto
.
setSegment5Name
(
""
);
jEqueryDto
.
setSegment6Name
(
""
);
jEqueryDto
.
setSegment7Name
(
""
);
jEqueryDto
.
setSegment8Name
(
""
);
jEqueryDto
.
setSegment9Name
(
""
);
jEqueryDto
.
setSegment10Name
(
""
);
jEqueryDto
.
setJournalCurrencyCode
(
""
);
jEqueryDto
.
setSobCurrencyCode
(
""
);
jEqueryDto
.
setAccountedDr
(
new
BigDecimal
(
"0"
));
jEqueryDto
.
setAccountedCr
(
new
BigDecimal
(
"0"
));
jEqueryDto
.
setEnteredDr
(
new
BigDecimal
(
"0"
));
jEqueryDto
.
setEnteredCr
(
new
BigDecimal
(
"0"
));
jEqueryDto
.
setCfItem
(
""
);
jEqueryDto
.
setAttribute1
(
""
);
jEqueryDto
.
setAttribute2
(
new
Date
());
jEqueryDto
.
setAttribute3
(
""
);
jEqueryDto
.
setAttribute4
(
""
);
jEqueryDto
.
setAttribute5
(
""
);
jEqueryDto
.
setAttribute6
(
""
);
jEqueryDto
.
setAttribute7
(
""
);
jEqueryDto
.
setAttribute8
(
""
);
jEqueryDto
.
setAttribute9
(
""
);
jEqueryDto
.
setAttribute10
(
""
);
jEqueryDto
.
setAttribute11
(
""
);
jEqueryDto
.
setAttribute12
(
""
);
jEqueryDto
.
setAttribute13
(
""
);
jEqueryDto
.
setAttribute14
(
""
);
jEqueryDto
.
setAttribute15
(
""
);
jEqueryDto
.
setAttribute16
(
""
);
items
.
add
(
jEqueryDto
);
}
ebsApiService
.
queryRemoteServerThenUpdateJE
(
items
);
}
}
\ 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