瀏覽代碼

Merge branch 'feat-20221213-renlijiaservicecharge'

shc 2 年之前
父節點
當前提交
22e2e4d8c5

+ 5 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmPayOffServiceImpl.java

@@ -1232,7 +1232,11 @@ public class WmPayOffServiceImpl extends ServiceImpl<WmPayOffMapper, WmPayOff> i
 
 				List<Map<String, String>> jsdList = new ArrayList<>(1);
 				Map<String, String> jsdMap = new HashMap<>(4);
-				jsdMap.put("amount", String.format("%.2f", note.getSettleAmount().doubleValue()));
+				// 服务费率
+				BigDecimal serviceCharge = sysDeptSub.getServiceCharge() == null ? BigDecimal.ZERO : sysDeptSub.getServiceCharge();
+				// 实际结算金额(结算金额*(1+服务费率))
+				BigDecimal actualAmount = note.getSettleAmount().multiply(serviceCharge.add(BigDecimal.ONE));
+				jsdMap.put("amount", actualAmount.setScale(2, RoundingMode.HALF_EVEN).toPlainString());
 				jsdMap.put("mobile", sysUser.getPhone());
 				jsdMap.put("idCard", sysUser.getIdCardNumber());
 				jsdMap.put("name", sysUser.getRealname());

+ 10 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageSettleNoteServiceImpl.java

@@ -31,11 +31,9 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.config.TaxNotifyConfig;
 import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
 import com.qunzhixinxi.hnqz.admin.entity.*;
-import com.qunzhixinxi.hnqz.admin.entity.input.SettleAmountMonitorInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.SettleNoteStatusOutput;
 import com.qunzhixinxi.hnqz.admin.entity.output.SettleAmountMonitorOutput;
 import com.qunzhixinxi.hnqz.admin.entity.output.WmTaskSettleNoteOutput;
-import com.qunzhixinxi.hnqz.admin.enums.ChannelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.GigTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
@@ -75,6 +73,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
@@ -570,7 +569,7 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
 			config.setAppSecret(sysDeptSub.getAppSecret());
 			config.setQueryUrl(sysDeptSub.getQueryUrl());
 			String subjectName = sysDeptSub.getSubjectName();
-			return settleByRenLiJia(note, config, wmScorePackage, subjectName);
+			return settleByRenLiJia(note, config, wmScorePackage, subjectName, sysDeptSub.getServiceCharge());
 
 		}
 		// 自由职家
@@ -701,7 +700,7 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
 				config.setAppSecret(sysDeptSub.getAppSecret());
 				config.setQueryUrl(sysDeptSub.getQueryUrl());
 				String subjectName = sysDeptSub.getSubjectName();
-				settleByRenLiJia(note, config, wmScorePackage, subjectName);
+				settleByRenLiJia(note, config, wmScorePackage, subjectName, sysDeptSub.getServiceCharge());
 
 			}
 			// 自由职家
@@ -1890,7 +1889,8 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
 		return R.ok();
 	}
 
-	private R settleByRenLiJia(WmScorePackageSettleNote note, DingConfig config, WmScorePackage wmScorePackage, String subjectName) {
+	private R settleByRenLiJia(WmScorePackageSettleNote note, DingConfig config, WmScorePackage wmScorePackage,
+							   String subjectName, BigDecimal serviceCharge) {
 
 		SysUser sysUser = sysUserService.getById(note.getUserId());
 
@@ -1910,7 +1910,11 @@ public class WmScorePackageSettleNoteServiceImpl extends ServiceImpl<WmScorePack
 
 		List jsdList = new ArrayList();
 		Map jsdMap = new HashMap();
-		jsdMap.put("amount", note.getSettleAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString());
+		// 服务费率
+		BigDecimal _serviceCharge = serviceCharge == null ? BigDecimal.ZERO : serviceCharge;
+		// 实际结算金额(结算金额*(1+服务费率))
+		BigDecimal actualAmount = note.getSettleAmount().multiply(_serviceCharge.add(BigDecimal.ONE));
+		jsdMap.put("amount", actualAmount.setScale(2, RoundingMode.HALF_EVEN).toPlainString());
 		jsdMap.put("mobile", sysUser.getPhone());
 		jsdMap.put("idCard", sysUser.getIdCardNumber());
 		jsdMap.put("name", sysUser.getRealname());