|
@@ -1266,8 +1266,8 @@ public class PartyAServiceImpl implements PartyAService {
|
|
config.setAppId(deptSub.getAppId());
|
|
config.setAppId(deptSub.getAppId());
|
|
config.setAppSecrete(deptSub.getAppSecret());
|
|
config.setAppSecrete(deptSub.getAppSecret());
|
|
config.setQueryUrl(deptSub.getQueryUrl());
|
|
config.setQueryUrl(deptSub.getQueryUrl());
|
|
- // result = settleByTaxHelper(noteList, config, member, taxCode);
|
|
|
|
- result = settleByTaxHelper();
|
|
|
|
|
|
+ result = settleByTaxHelper(noteList, config, member, taxCode);
|
|
|
|
+ // result = settleByTaxHelper();
|
|
}
|
|
}
|
|
|
|
|
|
return result;
|
|
return result;
|
|
@@ -1333,96 +1333,96 @@ public class PartyAServiceImpl implements PartyAService {
|
|
return getResultMap("4000", "因系统维护,暂时不能提起支付,有问题请联系客服");
|
|
return getResultMap("4000", "因系统维护,暂时不能提起支付,有问题请联系客服");
|
|
}
|
|
}
|
|
|
|
|
|
- // /**
|
|
|
|
- // * 税帮云结算
|
|
|
|
- // *
|
|
|
|
- // * @param noteList 结算记录
|
|
|
|
- // * @param config 税帮云config
|
|
|
|
- // * @param sysUser 用户
|
|
|
|
- // * @param taxCode 企业三合一码
|
|
|
|
- // * @return 结果
|
|
|
|
- // */
|
|
|
|
- // private Map<String, String> settleByTaxHelper(List<WmScorePackageSettleNote> noteList,
|
|
|
|
- // TaxHelperConfig config,
|
|
|
|
- // SysUser sysUser,
|
|
|
|
- // String taxCode) {
|
|
|
|
- //
|
|
|
|
- // // 加锁
|
|
|
|
- // boolean absent = redisTemplate.opsForValue().setIfAbsent(
|
|
|
|
- // CacheConstants.SETTLE_PACKAGE_KEY + ":" + sysUser.getUsername() + ":" + taxCode + ":"
|
|
|
|
- // + new HashSet(noteList).hashCode(), noteList, CacheConstants.SETTLE_TIME, TimeUnit.DAYS);
|
|
|
|
- //
|
|
|
|
- // if (!absent) {
|
|
|
|
- // log.error("当前用户存在其他结算请求");
|
|
|
|
- // return getResultMap("4000", "当前用户存在其他结算请求");
|
|
|
|
- // }
|
|
|
|
- //
|
|
|
|
- // // 开始结算
|
|
|
|
- // TaxHelperSettlementModel taxHelperSettlementModel = new TaxHelperSettlementModel(config);
|
|
|
|
- // taxHelperSettlementModel.setEnterpriseCode(taxCode);
|
|
|
|
- // taxHelperSettlementModel.setExtendFieldNames(Arrays.asList("报告下载地址"));
|
|
|
|
- // taxHelperSettlementModel.setNotifyUrl(taxNotifyConfig.getNotifyUrl() + "/admin/taxhelper/" + sysUser.getUserId() + "/v2/settlementNotify");
|
|
|
|
- //
|
|
|
|
- // List<TaxHelperSettlementModel.AbstractArr> abstractArrList = new ArrayList<>();
|
|
|
|
- // Map<String, TaxHelperSettlementModel.DetailedArr> detailArrMap = new HashMap<>();
|
|
|
|
- // noteList.forEach(note -> {
|
|
|
|
- // TaxHelperSettlementModel.DetailedArr detailedArr;
|
|
|
|
- // if (detailArrMap.containsKey(sysUser.getIdCardNumber())) {
|
|
|
|
- // detailedArr = detailArrMap.get(sysUser.getIdCardNumber());
|
|
|
|
- // detailedArr.setInputAmount((BigDecimal.valueOf(detailedArr.getInputAmount())
|
|
|
|
- // .add(note.getSettleAmount())
|
|
|
|
- // .doubleValue()));
|
|
|
|
- // } else {
|
|
|
|
- // detailedArr = new TaxHelperSettlementModel.DetailedArr();
|
|
|
|
- // detailedArr.setIdCard(sysUser.getIdCardNumber());
|
|
|
|
- // detailedArr.setInputAmount(note.getSettleAmount().doubleValue());
|
|
|
|
- // // detailedArr.setCategoryName("专业技术服务");
|
|
|
|
- // detailedArr.setCategoryName(StringUtils.isEmpty(note.getCategoryName()) ? "健康咨询服务费" : note.getCategoryName());
|
|
|
|
- // detailArrMap.put(sysUser.getIdCardNumber(), detailedArr);
|
|
|
|
- // }
|
|
|
|
- // TaxHelperSettlementModel.AbstractArr abstractArr = new TaxHelperSettlementModel.AbstractArr();
|
|
|
|
- // abstractArr.setIdCard(sysUser.getIdCardNumber());
|
|
|
|
- // abstractArr.setNumber(1);
|
|
|
|
- // abstractArr.setPrice(note.getSettleAmount().doubleValue());
|
|
|
|
- // abstractArr.setAmount(note.getSettleAmount().doubleValue());
|
|
|
|
- // abstractArr.setExtendField1(taxNotifyConfig.getTaskUrl() + "/#/h5/indexTask?id=" + note.getPackageId() + "&userId=" + note
|
|
|
|
- // .getUserId());
|
|
|
|
- // abstractArrList.add(abstractArr);
|
|
|
|
- // });
|
|
|
|
- // taxHelperSettlementModel.setCount(detailArrMap.size());
|
|
|
|
- // List<TaxHelperSettlementModel.DetailedArr> detailedArrList = new ArrayList<>(detailArrMap.values());
|
|
|
|
- // taxHelperSettlementModel.setDetailedArr(detailedArrList);
|
|
|
|
- // taxHelperSettlementModel.setAbstractArr(abstractArrList);
|
|
|
|
- // TaxHelperSettlementRequest taxHelperSettlementRequest = new TaxHelperSettlementRequest(taxHelperSettlementModel);
|
|
|
|
- // TaxHelperResponse response = taxHelperService.settlement(taxHelperSettlementRequest);
|
|
|
|
- // log.info("税邦云结算: {}", response);
|
|
|
|
- // if (response.success()) {
|
|
|
|
- // noteList.forEach(note -> {
|
|
|
|
- // log.info("税邦云结算提交成功: {}", note.getSettleNo());
|
|
|
|
- // //streamId 获取不到
|
|
|
|
- // if (StringUtils.isEmpty(response.getMessage())) {
|
|
|
|
- // log.info("税邦云结算提交成功 streamId 获取不到: {}", note.getSettleNo());
|
|
|
|
- // }
|
|
|
|
- // note.setUpdateTime(LocalDateTime.now());
|
|
|
|
- // note.setSettleNoteStatus(DingEnum.NOTE_STATUS_SUBMIT.getType());
|
|
|
|
- // // 新增字段streamId
|
|
|
|
- // note.setStreamId(response.getMessage());
|
|
|
|
- // wmScorePackageSettleNoteService.updateById(note);
|
|
|
|
- // });
|
|
|
|
- // return getResultMap("2000", "提交结算成功");
|
|
|
|
- // } else {
|
|
|
|
- // noteList.forEach(note -> {
|
|
|
|
- // log.info("税邦云结算提交失败: {}", note.getSettleNo());
|
|
|
|
- // note.setUpdateTime(LocalDateTime.now());
|
|
|
|
- // note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
|
- // wmScorePackageSettleNoteService.updateById(note);
|
|
|
|
- // });
|
|
|
|
- // return getResultMap("4000", "结算失败");
|
|
|
|
- //
|
|
|
|
- // }
|
|
|
|
- //
|
|
|
|
- //
|
|
|
|
- // }
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 税帮云结算
|
|
|
|
+ *
|
|
|
|
+ * @param noteList 结算记录
|
|
|
|
+ * @param config 税帮云config
|
|
|
|
+ * @param sysUser 用户
|
|
|
|
+ * @param taxCode 企业三合一码
|
|
|
|
+ * @return 结果
|
|
|
|
+ */
|
|
|
|
+ private Map<String, String> settleByTaxHelper(List<WmScorePackageSettleNote> noteList,
|
|
|
|
+ TaxHelperConfig config,
|
|
|
|
+ SysUser sysUser,
|
|
|
|
+ String taxCode) {
|
|
|
|
+
|
|
|
|
+ // 加锁
|
|
|
|
+ boolean absent = redisTemplate.opsForValue().setIfAbsent(
|
|
|
|
+ CacheConstants.SETTLE_PACKAGE_KEY + ":" + sysUser.getUsername() + ":" + taxCode + ":"
|
|
|
|
+ + new HashSet(noteList).hashCode(), noteList, CacheConstants.SETTLE_TIME, TimeUnit.DAYS);
|
|
|
|
+
|
|
|
|
+ if (!absent) {
|
|
|
|
+ log.error("当前用户存在其他结算请求");
|
|
|
|
+ return getResultMap("4000", "当前用户存在其他结算请求");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 开始结算
|
|
|
|
+ TaxHelperSettlementModel taxHelperSettlementModel = new TaxHelperSettlementModel(config);
|
|
|
|
+ taxHelperSettlementModel.setEnterpriseCode(taxCode);
|
|
|
|
+ taxHelperSettlementModel.setExtendFieldNames(Arrays.asList("报告下载地址"));
|
|
|
|
+ taxHelperSettlementModel.setNotifyUrl(taxNotifyConfig.getNotifyUrl() + "/admin/taxhelper/" + sysUser.getUserId() + "/v2/settlementNotify");
|
|
|
|
+
|
|
|
|
+ List<TaxHelperSettlementModel.AbstractArr> abstractArrList = new ArrayList<>();
|
|
|
|
+ Map<String, TaxHelperSettlementModel.DetailedArr> detailArrMap = new HashMap<>();
|
|
|
|
+ noteList.forEach(note -> {
|
|
|
|
+ TaxHelperSettlementModel.DetailedArr detailedArr;
|
|
|
|
+ if (detailArrMap.containsKey(sysUser.getIdCardNumber())) {
|
|
|
|
+ detailedArr = detailArrMap.get(sysUser.getIdCardNumber());
|
|
|
|
+ detailedArr.setInputAmount((BigDecimal.valueOf(detailedArr.getInputAmount())
|
|
|
|
+ .add(note.getSettleAmount())
|
|
|
|
+ .doubleValue()));
|
|
|
|
+ } else {
|
|
|
|
+ detailedArr = new TaxHelperSettlementModel.DetailedArr();
|
|
|
|
+ detailedArr.setIdCard(sysUser.getIdCardNumber());
|
|
|
|
+ detailedArr.setInputAmount(note.getSettleAmount().doubleValue());
|
|
|
|
+ // detailedArr.setCategoryName("专业技术服务");
|
|
|
|
+ detailedArr.setCategoryName(StringUtils.isEmpty(note.getCategoryName()) ? "健康咨询服务费" : note.getCategoryName());
|
|
|
|
+ detailArrMap.put(sysUser.getIdCardNumber(), detailedArr);
|
|
|
|
+ }
|
|
|
|
+ TaxHelperSettlementModel.AbstractArr abstractArr = new TaxHelperSettlementModel.AbstractArr();
|
|
|
|
+ abstractArr.setIdCard(sysUser.getIdCardNumber());
|
|
|
|
+ abstractArr.setNumber(1);
|
|
|
|
+ abstractArr.setPrice(note.getSettleAmount().doubleValue());
|
|
|
|
+ abstractArr.setAmount(note.getSettleAmount().doubleValue());
|
|
|
|
+ abstractArr.setExtendField1(taxNotifyConfig.getTaskUrl() + "/#/h5/indexTask?id=" + note.getPackageId() + "&userId=" + note
|
|
|
|
+ .getUserId());
|
|
|
|
+ abstractArrList.add(abstractArr);
|
|
|
|
+ });
|
|
|
|
+ taxHelperSettlementModel.setCount(detailArrMap.size());
|
|
|
|
+ List<TaxHelperSettlementModel.DetailedArr> detailedArrList = new ArrayList<>(detailArrMap.values());
|
|
|
|
+ taxHelperSettlementModel.setDetailedArr(detailedArrList);
|
|
|
|
+ taxHelperSettlementModel.setAbstractArr(abstractArrList);
|
|
|
|
+ TaxHelperSettlementRequest taxHelperSettlementRequest = new TaxHelperSettlementRequest(taxHelperSettlementModel);
|
|
|
|
+ TaxHelperResponse response = taxHelperService.settlement(taxHelperSettlementRequest);
|
|
|
|
+ log.info("税邦云结算: {}", response);
|
|
|
|
+ if (response.success()) {
|
|
|
|
+ noteList.forEach(note -> {
|
|
|
|
+ log.info("税邦云结算提交成功: {}", note.getSettleNo());
|
|
|
|
+ //streamId 获取不到
|
|
|
|
+ if (StringUtils.isEmpty(response.getMessage())) {
|
|
|
|
+ log.info("税邦云结算提交成功 streamId 获取不到: {}", note.getSettleNo());
|
|
|
|
+ }
|
|
|
|
+ note.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_SUBMIT.getType());
|
|
|
|
+ // 新增字段streamId
|
|
|
|
+ note.setStreamId(response.getMessage());
|
|
|
|
+ wmScorePackageSettleNoteService.updateById(note);
|
|
|
|
+ });
|
|
|
|
+ return getResultMap("2000", "提交结算成功");
|
|
|
|
+ } else {
|
|
|
|
+ noteList.forEach(note -> {
|
|
|
|
+ log.info("税邦云结算提交失败: {}", note.getSettleNo());
|
|
|
|
+ note.setUpdateTime(LocalDateTime.now());
|
|
|
|
+ note.setSettleNoteStatus(DingEnum.NOTE_STATUS_FAIL.getType());
|
|
|
|
+ wmScorePackageSettleNoteService.updateById(note);
|
|
|
|
+ });
|
|
|
|
+ return getResultMap("4000", "结算失败");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 记录用户认证信息
|
|
* 记录用户认证信息
|