|
@@ -571,44 +571,57 @@ public class GigThirdApiServiceImpl implements GigThirdApiService {
|
|
|
/**
|
|
|
* 完单操作
|
|
|
*
|
|
|
- * @param note
|
|
|
+ * @param noteList
|
|
|
*/
|
|
|
- public void finishTask(WmScorePackageSettleNote note) {
|
|
|
- WmScorePackage wmScorePackage = scorePackageService.getById(note.getPackageId());
|
|
|
- SysDept dept = sysDeptService.getById(wmScorePackage.getDeptId());
|
|
|
-
|
|
|
- String gigFinishTaskUrl = upmsConfig.getGigServiceUrl() + "/gig/operation/settlement/finish-task";
|
|
|
- // 封装结算参数
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- params.put("requestId", RandomStringUtils.randomAlphabetic(12));
|
|
|
- params.put("endType", "CSO");
|
|
|
- params.put("enterpriseCode", dept.getTaxCode());
|
|
|
- params.put("subjectType", "OLADING");
|
|
|
- params.put("channel", "DEFAULT");
|
|
|
- params.put("subjectLocation", note.getSubjectLocation());
|
|
|
- params.put("taskId", note.getThirdTaskId());
|
|
|
- params.put("credentialLink", taxNotifyConfig.getTaskUrl() + "/#/h5/indexTask?id=" + note.getPackageId() + "&userId=" + note.getUserId());
|
|
|
-
|
|
|
- // 发起完单操作
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
- headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
- log.info("阿拉丁完单操作req: {}", params);
|
|
|
- HttpEntity<String> result = new RestTemplate().exchange(gigFinishTaskUrl, HttpMethod.POST, new HttpEntity<>(params, headers), String.class);
|
|
|
- log.warn("阿拉丁完单操作resp: {}", result.getBody());
|
|
|
- if (!JSONUtil.isJson(result.getBody())) {
|
|
|
- log.warn("完单操作失败:taskId={}", note.getThirdTaskId());
|
|
|
+ public void finishTask(List<WmScorePackageSettleNote> noteList) {
|
|
|
+ // 使用thirdTaskId分组
|
|
|
+ Map<String, List<WmScorePackageSettleNote>> noteTaskIdMap = noteList.stream()
|
|
|
+ .filter(note -> StrUtil.isNotBlank(note.getThirdTaskId()))
|
|
|
+ .collect(Collectors.groupingBy(WmScorePackageSettleNote::getThirdTaskId));
|
|
|
+ if (CollUtil.isEmpty(noteTaskIdMap)) {
|
|
|
+ log.info("任务id为空,不发起阿拉丁完单操作");
|
|
|
+ return;
|
|
|
}
|
|
|
- JSONObject resultObj = JSONUtil.parseObj(result.getBody());
|
|
|
- // {"code":0,"msg":"SUCCESS","data":{"success":true,"message":"成功","result":"4154"}}
|
|
|
- if (Objects.equals(resultObj.getInt("code"), CommonConstants.SUCCESS)) {
|
|
|
- JSONObject dataJsonObj = resultObj.getJSONObject("data");
|
|
|
- if (dataJsonObj != null && dataJsonObj.getBool("success", false)) {
|
|
|
- // 完单操作成功,更新状态
|
|
|
- WmScorePackageSettleNote updateNote = new WmScorePackageSettleNote();
|
|
|
- updateNote.setId(note.getId());
|
|
|
- updateNote.setFinishTaskFlag(1);
|
|
|
- scorePackageSettleNoteService.updateById(updateNote);
|
|
|
+
|
|
|
+ noteTaskIdMap.forEach((thirdTaskId, notes) -> {
|
|
|
+ WmScorePackageSettleNote note = notes.get(0);
|
|
|
+ WmScorePackage wmScorePackage = scorePackageService.getById(note.getPackageId());
|
|
|
+ SysDept dept = sysDeptService.getById(wmScorePackage.getDeptId());
|
|
|
+
|
|
|
+ String gigFinishTaskUrl = upmsConfig.getGigServiceUrl() + "/gig/operation/settlement/finish-task";
|
|
|
+ // 封装结算参数
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("requestId", RandomStringUtils.randomAlphabetic(12));
|
|
|
+ params.put("endType", "HCP");
|
|
|
+ params.put("enterpriseCode", dept.getTaxCode());
|
|
|
+ params.put("subjectType", "OLADING");
|
|
|
+ params.put("channel", "DEFAULT");
|
|
|
+ params.put("subjectLocation", note.getSubjectLocation());
|
|
|
+ params.put("taskId", note.getThirdTaskId());
|
|
|
+ String packageIds = notes.stream().map(WmScorePackageSettleNote::getPackageId).collect(Collectors.joining(StrUtil.COMMA));
|
|
|
+ params.put("credentialLink", taxNotifyConfig.getTaskUrl() + "/#/h5/indexTask?id=" + packageIds + "&userId=" + note.getUserId());
|
|
|
+
|
|
|
+ // 发起完单操作
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ log.info("阿拉丁完单操作req: {}", params);
|
|
|
+ HttpEntity<String> result = new RestTemplate().exchange(gigFinishTaskUrl, HttpMethod.POST, new HttpEntity<>(params, headers), String.class);
|
|
|
+ log.warn("阿拉丁完单操作resp: {}", result.getBody());
|
|
|
+ if (!JSONUtil.isJson(result.getBody())) {
|
|
|
+ log.warn("完单操作失败:taskId={}", note.getThirdTaskId());
|
|
|
}
|
|
|
- }
|
|
|
+ JSONObject resultObj = JSONUtil.parseObj(result.getBody());
|
|
|
+ // {"code":0,"msg":"SUCCESS","data":{"success":true,"message":"成功","result":"4154"}}
|
|
|
+ if (Objects.equals(resultObj.getInt("code"), CommonConstants.SUCCESS)) {
|
|
|
+ JSONObject dataJsonObj = resultObj.getJSONObject("data");
|
|
|
+ if (dataJsonObj != null && dataJsonObj.getBool("success", false)) {
|
|
|
+ // 完单操作成功,更新状态
|
|
|
+ WmScorePackageSettleNote updateNote = new WmScorePackageSettleNote();
|
|
|
+ updateNote.setId(note.getId());
|
|
|
+ updateNote.setFinishTaskFlag(1);
|
|
|
+ scorePackageSettleNoteService.updateById(updateNote);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|