Преглед на файлове

refactor: 税邦云封禁

shc преди 3 години
родител
ревизия
cf666505fd
променени са 1 файла, в които са добавени 92 реда и са изтрити 92 реда
  1. 92 92
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/PartyAServiceImpl.java

+ 92 - 92
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/PartyAServiceImpl.java

@@ -1266,8 +1266,8 @@ public class PartyAServiceImpl implements PartyAService {
 			config.setAppId(deptSub.getAppId());
 			config.setAppSecrete(deptSub.getAppSecret());
 			config.setQueryUrl(deptSub.getQueryUrl());
-			// result = settleByTaxHelper(noteList, config, member, taxCode);
-			result = settleByTaxHelper();
+			result = settleByTaxHelper(noteList, config, member, taxCode);
+			// result = settleByTaxHelper();
 		}
 
 		return result;
@@ -1333,96 +1333,96 @@ public class PartyAServiceImpl implements PartyAService {
 		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", "结算失败");
+
+		}
+
+
+	}
 
 	/**
 	 * 记录用户认证信息