|
@@ -742,6 +742,11 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
|
|
|
String taxCode = sysDept.getTaxCode();
|
|
|
return settleByOlading(note, wmScorePackage, sysUser, taxCode);
|
|
|
}
|
|
|
+ // 薪事易
|
|
|
+ else if (SubjectTypeEnum.TYPE_XIN_SHI_YI.getCode().equals(subType)) {
|
|
|
+ String taxCode = sysDept.getTaxCode();
|
|
|
+ return this.settleByXinshiyi(note, wmScorePackage, sysUser, taxCode);
|
|
|
+ }
|
|
|
// 税邦云
|
|
|
else {
|
|
|
String taxCode = sysDept.getTaxCode();
|
|
@@ -786,6 +791,7 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
|
|
|
List<WmScorePackageSettleNote> zhongYiYunNoteList = new ArrayList<>(ids.length);
|
|
|
List<WmScorePackageSettleNote> langchaoNoteList = new ArrayList<>(ids.length);
|
|
|
List<WmScorePackageSettleNote> yiMaNoteList = new ArrayList<>(ids.length);
|
|
|
+ List<WmScorePackageSettleNote> xinshiyiNoteList = new ArrayList<>(ids.length);
|
|
|
for (int i = 0; i < ids.length; i++) {
|
|
|
String id = ids[i];
|
|
|
WmScorePackageSettleNote note = this.baseMapper.selectById(id);
|
|
@@ -920,6 +926,10 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
|
|
|
else if (SubjectTypeEnum.TYPE_HE_CHUANG.getCode().equals(subType)) {
|
|
|
hechuangNoteList.add(note);
|
|
|
}
|
|
|
+ // 薪事易
|
|
|
+ else if (SubjectTypeEnum.TYPE_XIN_SHI_YI.getCode().equals(subType)) {
|
|
|
+ xinshiyiNoteList.add(note);
|
|
|
+ }
|
|
|
// 税邦云
|
|
|
else {
|
|
|
noteList.add(note);
|
|
@@ -1042,6 +1052,16 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
|
|
|
return this.batchSettleByOlading(hechuangNoteList, taxCode);
|
|
|
}
|
|
|
|
|
|
+ // 薪事易
|
|
|
+ if (CollectionUtils.isNotEmpty(xinshiyiNoteList)) {
|
|
|
+ if (StringUtils.isNotEmpty(taxCode)) {
|
|
|
+ log.info("薪事易结算开始-获取会员所属企业的统一社会信用代码:{} ", taxCode);
|
|
|
+ } else {
|
|
|
+ return R.failed("未配置企业的统一社会信用代码");
|
|
|
+ }
|
|
|
+ return this.batchSettleByXinshiyi(yiMaNoteList, taxCode);
|
|
|
+ }
|
|
|
+
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
@@ -1050,6 +1070,216 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
|
|
|
return R.failed("因系统维护,暂时不能提起支付,有问题请联系客服");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 薪事易结算
|
|
|
+ *
|
|
|
+ * @param noteList 结算记录
|
|
|
+ * @param taxCode 企业三合一码
|
|
|
+ * @return 结果
|
|
|
+ */
|
|
|
+ private R batchSettleByXinshiyi(List<WmScorePackageSettleNote> noteList, String taxCode) {
|
|
|
+
|
|
|
+ // 加锁
|
|
|
+ List<Integer> noteIdList = noteList.stream().filter(note ->
|
|
|
+ redisTemplate.opsForValue().setIfAbsent(
|
|
|
+ CacheConstants.SETTLE_PACKAGE_KEY + ":note_id_" + note.getId(),
|
|
|
+ noteList, CacheConstants.SETTLE_TIME, TimeUnit.DAYS))
|
|
|
+ .mapToInt(WmScorePackageSettleNote::getId).boxed().collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 加锁记录数不等于提交记录数,说明存在在途交易
|
|
|
+ if (CollectionUtils.isEmpty(noteIdList)) {
|
|
|
+ log.error("当前用户存在其他结算请求");
|
|
|
+ return R.failed("当前用户存在其他结算请求");
|
|
|
+ } else {
|
|
|
+ if (!Objects.equals(noteList.size(), noteIdList.size())) {
|
|
|
+ // 删除锁
|
|
|
+ noteIdList.forEach(id -> redisTemplate.delete(CacheConstants.SETTLE_PACKAGE_KEY + ":note_id_" + id));
|
|
|
+ log.error("当前用户存在其他结算请求");
|
|
|
+ return R.failed("当前用户存在其他结算请求");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ HnqzUser operator = SecurityUtils.getUser();
|
|
|
+ String gigTokenUrl = upmsConfig.getGigServiceUrl() + "/gig/operation/token?tenantId={tenantId}&action={action}&userId={userId}";
|
|
|
+ String gigSettleUrl = upmsConfig.getGigServiceUrl() + "/gig/operation/settlement";
|
|
|
+
|
|
|
+ // 查询发票类目对应的字典
|
|
|
+ List<SysDictItem> zhongzhiInvoices = sysDictItemMapper.selectList(Wrappers.<SysDictItem>lambdaQuery()
|
|
|
+ .eq(SysDictItem::getType, "zhongzhi_invoice"));
|
|
|
+ Map<String, SysDictItem> dictItemMap = zhongzhiInvoices.stream()
|
|
|
+ .collect(Collectors.toMap(SysDictItem::getValue, Function.identity()));
|
|
|
+
|
|
|
+ List<Map<String, Object>> settleParamsMapper = new ArrayList<>();
|
|
|
+ Map<String, Map<String, Object>> detailMap = new HashMap<>();
|
|
|
+ noteList.forEach(note -> {
|
|
|
+ WmScorePackage wmScorePackage = wmScorePackageMapper.selectById(note.getPackageId());
|
|
|
+
|
|
|
+ // 当前发票类目对应的字典信息
|
|
|
+ SysDictItem dictItem = dictItemMap.get(String.valueOf(note.getInvoiceType()));
|
|
|
+
|
|
|
+ // 封装结算参数
|
|
|
+ Map<String, Object> params;
|
|
|
+ if (detailMap.containsKey(note.getIdCardNumber())) {
|
|
|
+ params = detailMap.get(note.getIdCardNumber());
|
|
|
+ params.put("amount", String.valueOf(new BigDecimal((String) params.get("amount")).add(note.getSettleAmount()).doubleValue()));
|
|
|
+
|
|
|
+
|
|
|
+ LocalDate startTime = (LocalDate) params.get("taskStartTime");
|
|
|
+ LocalDate endTime = (LocalDate) params.get("taskEndTime");
|
|
|
+ LocalDate noteCreateTime = wmScorePackage.getCreateTime().toLocalDate();
|
|
|
+ LocalDate noteUpdateTime = wmScorePackage.getUpdateTime().toLocalDate();
|
|
|
+
|
|
|
+ if (noteCreateTime.isBefore(startTime)) {
|
|
|
+ params.put("taskStartTime", wmScorePackage.getCreateTime().toLocalDate());
|
|
|
+ }
|
|
|
+ if (noteUpdateTime.isAfter(endTime)) {
|
|
|
+ params.put("taskEndTime", wmScorePackage.getUpdateTime().toLocalDate());
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<Integer> ids = (Set<Integer>) params.get("noteIds");
|
|
|
+ ids.add(note.getId());
|
|
|
+ params.put("noteIds", ids);
|
|
|
+ } else {
|
|
|
+ SysUser sysUser = sysUserService.getById(note.getUserId());
|
|
|
+ params = new HashMap<>(19);
|
|
|
+ params.put("tenantId", operator.getDeptId());
|
|
|
+ params.put("operatorId", operator.getId());
|
|
|
+ params.put("requestId", RandomStringUtils.randomAlphabetic(12));
|
|
|
+ params.put("taskName", String.format("%s(%s)_%s", sysUser.getRealname(), sysUser.getUsername(), System.currentTimeMillis()));
|
|
|
+ params.put("amount", String.valueOf(note.getSettleAmount().doubleValue()));
|
|
|
+ params.put("taskStartTime", wmScorePackage.getCreateTime().toLocalDate());
|
|
|
+ params.put("taskEndTime", wmScorePackage.getUpdateTime().toLocalDate());
|
|
|
+ params.put("taskLocation", "要易云");
|
|
|
+ params.put("username", sysUser.getUsername());
|
|
|
+ params.put("idCard", note.getIdCardNumber());
|
|
|
+ params.put("idCardType","ID_CARD");
|
|
|
+ params.put("realName", sysUser.getRealname());
|
|
|
+ params.put("bankCard", sysUser.getBankCardNumber());
|
|
|
+ params.put("bankPhone", sysUser.getBankPhone());
|
|
|
+ params.put("endType", "CSO");
|
|
|
+ params.put("enterpriseCode", taxCode);
|
|
|
+ params.put("subjectType", "XIN_SHI_YI");
|
|
|
+ params.put("channel", "DEFAULT");
|
|
|
+ params.put("subjectLocation", note.getSubjectLocation());
|
|
|
+ params.put("taskDescription", "根据要求,执行、并完成学术推广活动,并以在线平台工具采集、记录活动内容");
|
|
|
+ params.put("taxMode", "SPECIAL");
|
|
|
+ params.put("transactionModel", "CHANNEL");
|
|
|
+
|
|
|
+ Set<Integer> noteIds = new HashSet<>();
|
|
|
+ noteIds.add(note.getId());
|
|
|
+ params.put("noteIds", noteIds);
|
|
|
+ detailMap.put(note.getIdCardNumber(), params);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ detailMap.forEach((key, value) -> settleParamsMapper.add(value));
|
|
|
+
|
|
|
+
|
|
|
+ // 开始结算
|
|
|
+ for (Map<String, Object> params : settleParamsMapper) {
|
|
|
+
|
|
|
+ Set<Integer> noteIds = (Set<Integer>) params.get("noteIds");
|
|
|
+ try {
|
|
|
+ // 获取请求token
|
|
|
+ ResponseEntity<String> tokenResult = new RestTemplate().getForEntity(gigTokenUrl, String.class,
|
|
|
+ String.valueOf(operator.getDeptId()), "settle", String.valueOf(operator.getId()));
|
|
|
+ log.warn("获取结算token:{}", tokenResult.getBody());
|
|
|
+ if (!JSONUtil.isJson(tokenResult.getBody())) {
|
|
|
+ return R.failed("获取结算token失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject jsonObject = JSONUtil.parseObj(tokenResult.getBody());
|
|
|
+
|
|
|
+ if (jsonObject.getInt("code") != 0 || StrUtil.isBlank(jsonObject.getStr("data"))) {
|
|
|
+ return R.failed("获取结算token失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ String token = jsonObject.getStr("data");
|
|
|
+
|
|
|
+ // 间隔100毫秒
|
|
|
+ Thread.sleep(100);
|
|
|
+
|
|
|
+ params.put("token", token);
|
|
|
+
|
|
|
+ // 发起结算
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ log.info("薪事易结算req: {}", params);
|
|
|
+ HttpEntity<String> result = new RestTemplate().exchange(gigSettleUrl, HttpMethod.POST, new HttpEntity<>(params, headers), String.class);
|
|
|
+ log.info("薪事易结算resp: {}", result.getBody());
|
|
|
+ if (!JSONUtil.isJson(result.getBody())) {
|
|
|
+ return R.failed("结算失败");
|
|
|
+ }
|
|
|
+ JSONObject settelObj = JSONUtil.parseObj(result.getBody());
|
|
|
+
|
|
|
+ if (Objects.equals(settelObj.getInt("code"), CommonConstants.SUCCESS)) {
|
|
|
+ JSONObject dataJsonObj = settelObj.getJSONObject("data");
|
|
|
+
|
|
|
+ noteIds.forEach(id -> {
|
|
|
+ log.info("薪事易结算结算提交成功");
|
|
|
+ // data获取不到
|
|
|
+ if (dataJsonObj == null) {
|
|
|
+ log.info("薪事易提交成功 data 获取不到");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ WmScorePackageSettleNote note = new WmScorePackageSettleNote();
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ note.setId(id);
|
|
|
+ note.setUpdateTime(now);
|
|
|
+ note.setSubToGigTime(now);
|
|
|
+
|
|
|
+ String requestId = dataJsonObj.getStr("requestId");
|
|
|
+ if (StrUtil.isNotBlank(requestId)) {
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_SUBMIT.getType());
|
|
|
+ // 新增字段streamId
|
|
|
+ note.setStreamId(requestId);
|
|
|
+ } else {
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
+ log.info("薪事易提交失败 message:{}", dataJsonObj.getStr("message"));
|
|
|
+ redisTemplate.delete(CacheConstants.SETTLE_PACKAGE_KEY + ":note_id_" + note.getId());
|
|
|
+ }
|
|
|
+ this.baseMapper.updateById(note);
|
|
|
+ });
|
|
|
+
|
|
|
+ } else {
|
|
|
+ noteIds.forEach(id -> {
|
|
|
+ WmScorePackageSettleNote note = new WmScorePackageSettleNote();
|
|
|
+ note.setId(id);
|
|
|
+ log.info("薪事易结算提交失败: {}", note.getSettleNo());
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ note.setUpdateTime(now);
|
|
|
+ note.setSubToGigTime(now);
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
+ this.baseMapper.updateById(note);
|
|
|
+ log.info("认证状态异常,结算解锁settleNoteId:{}", note.getId());
|
|
|
+ redisTemplate.delete(CacheConstants.SETTLE_PACKAGE_KEY + ":note_id_" + note.getId());
|
|
|
+ });
|
|
|
+
|
|
|
+ return R.ok("结算失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("", e);
|
|
|
+ noteIds.forEach(id -> {
|
|
|
+ WmScorePackageSettleNote note = new WmScorePackageSettleNote();
|
|
|
+ note.setId(id);
|
|
|
+ log.info("薪事易结算提交失败: {}", note.getSettleNo());
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ note.setUpdateTime(now);
|
|
|
+ note.setSubToGigTime(now);
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
+ this.baseMapper.updateById(note);
|
|
|
+ log.info("认证状态异常,结算解锁settleNoteId:{}", note.getId());
|
|
|
+ redisTemplate.delete(CacheConstants.SETTLE_PACKAGE_KEY + ":note_id_" + note.getId());
|
|
|
+ });
|
|
|
+ return R.ok("结算失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.ok("提交结算成功");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 易马结算
|
|
|
*
|
|
@@ -2793,6 +3023,156 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 薪事易结算
|
|
|
+ *
|
|
|
+ * @param note
|
|
|
+ * @param wmScorePackage
|
|
|
+ * @param sysUser
|
|
|
+ * @param taxCode
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private R settleByXinshiyi(WmScorePackageSettleNote note,
|
|
|
+ WmScorePackage wmScorePackage,
|
|
|
+ SysUser sysUser,
|
|
|
+ String taxCode) {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 加锁
|
|
|
+ */
|
|
|
+ redisTemplate.opsForValue().set(CacheConstants.SETTLE_PACKAGE_KEY + note.getId(),
|
|
|
+ note.getId(), CacheConstants.SETTLE_TIME, TimeUnit.DAYS);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开始结算
|
|
|
+ */
|
|
|
+
|
|
|
+ HnqzUser operator = SecurityUtils.getUser();
|
|
|
+ String gigTokenUrl = upmsConfig.getGigServiceUrl() + "/gig/operation/token?tenantId={tenantId}&action={action}&userId={userId}";
|
|
|
+ String gigSettleUrl = upmsConfig.getGigServiceUrl() + "/gig/operation/settlement";
|
|
|
+
|
|
|
+ StringBuilder noticeInfo = new StringBuilder();
|
|
|
+ try {
|
|
|
+ // 获取请求token
|
|
|
+ ResponseEntity<String> tokenResult = new RestTemplate().getForEntity(gigTokenUrl, String.class,
|
|
|
+ String.valueOf(operator.getDeptId()), "settle", String.valueOf(operator.getId()));
|
|
|
+ log.warn("获取结算token:{}", tokenResult.getBody());
|
|
|
+ if (!JSONUtil.isJson(tokenResult.getBody())) {
|
|
|
+ return R.failed("获取结算token失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject jsonObject = JSONUtil.parseObj(tokenResult.getBody());
|
|
|
+
|
|
|
+ if (jsonObject.getInt("code") != 0 || StrUtil.isBlank(jsonObject.getStr("data"))) {
|
|
|
+ return R.failed("获取结算token失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ String token = jsonObject.getStr("data");
|
|
|
+
|
|
|
+ // 间隔100毫秒
|
|
|
+ Thread.sleep(100);
|
|
|
+
|
|
|
+ // 查询发票类目对应的字典
|
|
|
+ SysDictItem zhongzhiInvoice = sysDictItemMapper.selectOne(Wrappers.<SysDictItem>lambdaQuery()
|
|
|
+ .eq(SysDictItem::getType, "zhongzhi_invoice")
|
|
|
+ .eq(SysDictItem::getValue, String.valueOf(note.getInvoiceType())));
|
|
|
+
|
|
|
+ // 封装结算参数
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("token", token);
|
|
|
+ params.put("tenantId", operator.getDeptId());
|
|
|
+ params.put("operatorId", operator.getId());
|
|
|
+ params.put("requestId", RandomStringUtils.randomAlphabetic(12));
|
|
|
+ params.put("taskName", wmScorePackage.getScorePackageName() + "_" + System.currentTimeMillis());
|
|
|
+ params.put("amount", String.valueOf(note.getSettleAmount().doubleValue()));
|
|
|
+ params.put("taskStartTime", wmScorePackage.getCreateTime().toLocalDate());
|
|
|
+ params.put("taskEndTime", wmScorePackage.getUpdateTime().toLocalDate());
|
|
|
+ params.put("taskLocation", "要易云");
|
|
|
+ params.put("username", sysUser.getBankPhone());
|
|
|
+ params.put("idCard", sysUser.getIdCardNumber());
|
|
|
+ params.put("idCardType","ID_CARD");
|
|
|
+ params.put("realName", sysUser.getRealname());
|
|
|
+ params.put("bankCard", sysUser.getBankCardNumber());
|
|
|
+ params.put("bankPhone", sysUser.getBankPhone());
|
|
|
+ // 行业类别id
|
|
|
+ params.put("tagId", zhongzhiInvoice.getDescription());
|
|
|
+ // 税收项目编号
|
|
|
+ params.put("taskInvoiceContent", zhongzhiInvoice.getRemarks());
|
|
|
+ params.put("endType", "CSO");
|
|
|
+ params.put("enterpriseCode", taxCode);
|
|
|
+ params.put("subjectType", "XIN_SHI_YI");
|
|
|
+ params.put("channel", "DEFAULT");
|
|
|
+ params.put("subjectLocation", note.getSubjectLocation().getType());
|
|
|
+ params.put("taxMode", "SPECIAL");
|
|
|
+ params.put("transactionModel", "CHANNEL");
|
|
|
+ params.put("taskDescription", "根据要求,执行、并完成学术推广活动,并以在线平台工具采集、记录活动内容");
|
|
|
+
|
|
|
+ // 发起结算
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ log.info("薪事易结算req: {}", params);
|
|
|
+ HttpEntity<String> result = new RestTemplate().exchange(gigSettleUrl, HttpMethod.POST, new HttpEntity<>(params, headers), String.class);
|
|
|
+ log.info("薪事易结算resp: {}", result.getBody());
|
|
|
+ if (!JSONUtil.isJson(result.getBody())) {
|
|
|
+ return R.failed("结算失败");
|
|
|
+ }
|
|
|
+ JSONObject settelObj = JSONUtil.parseObj(result.getBody());
|
|
|
+
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ if (Objects.equals(settelObj.getInt("code"), CommonConstants.SUCCESS)) {
|
|
|
+ JSONObject dataJsonObj = settelObj.getJSONObject("data");
|
|
|
+
|
|
|
+ log.info("薪事易结算提交成功: {}", note.getSettleNo());
|
|
|
+ note.setUpdateTime(now);
|
|
|
+ note.setSubToGigTime(now);
|
|
|
+ //data 获取不到
|
|
|
+ if (dataJsonObj != null) {
|
|
|
+ String requestId = dataJsonObj.getStr("requestId");
|
|
|
+ if (StrUtil.isNotBlank(requestId)) {
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_SUBMIT.getType());
|
|
|
+ // 新增字段streamId
|
|
|
+ note.setStreamId(requestId);
|
|
|
+ noticeInfo.append(sysUser.getRealname()).append(":提交结算成功;");
|
|
|
+ } else {
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
+ noticeInfo.append(sysUser.getRealname()).append(":" + dataJsonObj.getStr("message"));
|
|
|
+ redisTemplate.delete(CacheConstants.SETTLE_PACKAGE_KEY + note.getId());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
+ log.warn("薪事易结算提交成功 data 获取不到: {}", note.getSettleNo());
|
|
|
+ noticeInfo.append(sysUser.getRealname()).append(":提交结算成功,业务流水号获取不到,请联系管理员;");
|
|
|
+ redisTemplate.delete(CacheConstants.SETTLE_PACKAGE_KEY + note.getId());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.warn("薪事易结算提交失败: {}", note.getSettleNo());
|
|
|
+ note.setSubToGigTime(now);
|
|
|
+ note.setUpdateTime(now);
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
+ noticeInfo.append(sysUser.getRealname()).append(":结算提交失败-").append(settelObj.getStr("msg")).append(";");
|
|
|
+
|
|
|
+ log.info("认证状态异常,结算解锁settleNoteId:{}", note.getId());
|
|
|
+ redisTemplate.delete(CacheConstants.SETTLE_PACKAGE_KEY + note.getId());
|
|
|
+
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("", e);
|
|
|
+ log.warn("薪事易结算提交失败: {}", note.getSettleNo());
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ note.setSubToGigTime(now);
|
|
|
+ note.setUpdateTime(now);
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
+ noticeInfo.append(sysUser.getRealname()).append(":结算提交失败;");
|
|
|
+
|
|
|
+ log.info("认证状态异常,结算解锁settleNoteId:{}", note.getId());
|
|
|
+ redisTemplate.delete(CacheConstants.SETTLE_PACKAGE_KEY + note.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ this.baseMapper.updateById(note);
|
|
|
+
|
|
|
+ return R.ok(null, noticeInfo.toString());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 福建企赋结算
|
|
|
*
|
|
@@ -2939,7 +3319,7 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 众蚁云结算
|
|
|
+ * 中智结算
|
|
|
*
|
|
|
* @param note
|
|
|
* @param wmScorePackage
|