1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
package pwc.taxtech.atms.controller;
import com.alibaba.fastjson.JSON;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import pwc.taxtech.atms.constant.enums.EnumApiCodeMsg;
import pwc.taxtech.atms.dto.ApiResultDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.ebsdto.*;
import pwc.taxtech.atms.service.EbsApiService;
import javax.annotation.Resource;
import javax.validation.Valid;
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 = "/updateJE", method = RequestMethod.POST)
public @ResponseBody
ApiResultDto updateJE(@RequestParam(value="id",defaultValue = "123123123") Long id,@RequestBody List<JournalEntryQueryDto> items) {
logger.info("开始日记账同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updateJE return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdateJE(id,items);
logger.debug("日记账同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updateJE error.", e);
e.printStackTrace();
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "/updateTB", method = RequestMethod.POST)
public @ResponseBody ApiResultDto updateTB(@RequestParam("id") Long id,@RequestBody List<TrialBalanceQueryDto> items) {
logger.info("开始科目余额数据同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updateTB return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdateTB(id,items);
logger.debug("科目余额数据同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updateTB error.", e);
e.printStackTrace();
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "/updateCF", method = RequestMethod.POST)
public @ResponseBody ApiResultDto updateCF(@RequestParam("id") Long id,@RequestBody List<CashFlowQueryDto> items) {
logger.info("开始现金流量数据同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updateCF return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdateCF(id,items);
logger.debug("现金流量数据同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updateCF error.", e);
e.printStackTrace();
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "/updateBS", method = RequestMethod.POST)
public @ResponseBody ApiResultDto updateBS(@RequestParam("id") Long id,@RequestBody List<BalanceSheetQueryDto> items) {
logger.info("开始资产负债数据同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updateBS return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdateBS(id,items);
logger.debug("资产负债数据同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updateBS error.", e);
e.printStackTrace();
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "/updatePL", method = RequestMethod.POST)
public @ResponseBody ApiResultDto updatePL(@RequestParam("id") Long id,@RequestBody List<ProfitLossStatementQueryDto> items) {
logger.info("开始利润数据同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updatePL return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdatePL(id,items);
logger.debug("利润数据同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updatePL error.", e);
e.printStackTrace();
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "/updateBSprc", method = RequestMethod.POST)
public @ResponseBody ApiResultDto updateBSprc(@RequestParam("id") Long id,@RequestBody List<BalanceSheetPrcQueryDto> items) {
logger.info("开始资产负债PRC数据同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updateBSprc return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdateBSprc(id,items);
logger.debug("资产负债PRC数据同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updateBSprc error.", e);
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "/updatePLprc", method = RequestMethod.POST)
public @ResponseBody ApiResultDto updatePLprc(@RequestParam("id") Long id,@RequestBody List<ProfitLossStatementPrcQueryDto> items) {
logger.info("开始利润PRC数据同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updatePLprc return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdatePLprc(id,items);
logger.debug("利润PRC数据同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updatePLprc error.", e);
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "/updateOAR", method = RequestMethod.POST)
public @ResponseBody ApiResultDto updateOAR(@RequestParam("id") Long id,@RequestBody List<OrganizationAccountingRateQueryDto> items) {
logger.info("开始汇率数据同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updateOAR return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdateOAR(id,items);
logger.debug("汇率数据同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updateOAR error.", e);
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "/updateOrg", method = RequestMethod.POST)
public ApiResultDto updateOrg(@RequestParam("id") Long id,@RequestBody @Valid List<OrganizationQueryDto> items) {
logger.info("开始机构信息数据同步更新");
ApiResultDto apiResultDto = new ApiResultDto();
if (CollectionUtils.isEmpty(items)) {
logger.debug("the updateOrg return items is empty");
setApiResult(apiResultDto, EnumApiCodeMsg.APIDATAEMPTY);
return apiResultDto;
}
try{
ebsApiService.queryRemoteServerThenUpdateOrg(id,items);
logger.debug("机构信息数据同步更新 success");
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("updateOrg error.", e);
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
/**
* callback服务
* @param callBackDto
* @return
*/
@RequestMapping(value = "/callback", method = RequestMethod.POST)
public ApiResultDto callback(@RequestBody EbsCallBackDto callBackDto) {
logger.info("EBS callback 调用,taskId :{}", JSON.toJSONString(callBackDto));
ApiResultDto apiResultDto = new ApiResultDto();
try{
ebsApiService.changeCallBackStatus(callBackDto);
logger.debug("ebs callback taskId:{},status:{} end ",callBackDto.getTaskId(),callBackDto.getTaskStatus());
setApiResult(apiResultDto, EnumApiCodeMsg.SUCCESS);
return apiResultDto;
}catch(Exception e){
logger.error("ebs callback error.", e);
setApiResult(apiResultDto, EnumApiCodeMsg.APIERROR);
return apiResultDto;
}
}
@RequestMapping(value = "syncOrg", method = RequestMethod.GET)
public @ResponseBody
OperationResultDto syncOrg() {
return ebsApiService.syncOrg();
}
private void setApiResult(ApiResultDto apiResultDto, EnumApiCodeMsg error) {
apiResultDto.setCode(error.getCode());
apiResultDto.setMessage(error.getMsg());
}
}