Browse Source

fix: 结算金额回显 精度丢失

李学松 2 years ago
parent
commit
49b8f0f7dd

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

@@ -165,16 +165,16 @@ public class WmPayOffServiceImpl extends ServiceImpl<WmPayOffMapper, WmPayOff> i
 
 				if (StrUtil.equals(PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val(), wmScorePackage.getPackageType1())) {
 
-					note.setSettleAmount(StringUtils.isEmpty(status.getUserScore()) ? BigDecimal.ZERO : new BigDecimal(status.getUserScore(), mc));
+					note.setSettleAmount(StringUtils.isEmpty(status.getUserScore()) ? BigDecimal.ZERO : new BigDecimal(status.getUserScore(), MathContext.UNLIMITED));
 
 				} else if (PackageTypeEnum.TYPE1_HCP_PACKAGE.val().equals(wmScorePackage.getPackageType1())) {
 
 					// 如果是患者教育,则转换积分值 '分'->'元'
-					note.setSettleAmount(StringUtils.isEmpty(status.getUserScore()) ? BigDecimal.ZERO : new BigDecimal(status.getUserScore(), mc).divide(new BigDecimal("100"), mc));
+					note.setSettleAmount(StringUtils.isEmpty(status.getUserScore()) ? BigDecimal.ZERO : new BigDecimal(status.getUserScore(), MathContext.UNLIMITED).divide(new BigDecimal("100"), MathContext.UNLIMITED));
 
 				} else {
 
-					note.setSettleAmount(StringUtils.isEmpty(wmScorePackage.getUserScore()) ? BigDecimal.ZERO : new BigDecimal(wmScorePackage.getUserScore(), mc));
+					note.setSettleAmount(StringUtils.isEmpty(wmScorePackage.getUserScore()) ? BigDecimal.ZERO : new BigDecimal(wmScorePackage.getUserScore(), MathContext.UNLIMITED));
 
 				}
 
@@ -210,7 +210,7 @@ public class WmPayOffServiceImpl extends ServiceImpl<WmPayOffMapper, WmPayOff> i
 
 		if (PackageTypeEnum.TYPE1_HCP_PACKAGE.val().equals(wmScorePackage.getPackageType1())) {
 			// 如果是患者教育,则转换积分值 '分'->'元'
-			wmScorePackage.setUserScore(new BigDecimal(wmScorePackage.getUserScore(), mc).divide(new BigDecimal("100"), mc).toString());
+			wmScorePackage.setUserScore(new BigDecimal(wmScorePackage.getUserScore(), MathContext.UNLIMITED).divide(new BigDecimal("100"), MathContext.UNLIMITED).toString());
 		}
 		resultMap.put("wsp", wmScorePackage);
 		resultMap.put("notes", notes);
@@ -232,7 +232,7 @@ public class WmPayOffServiceImpl extends ServiceImpl<WmPayOffMapper, WmPayOff> i
 
 			if (PackageTypeEnum.TYPE1_HCP_PACKAGE.val().equals(wmScorePackage.getPackageType1())) {
 				// 如果是患者教育,则转换积分值 '分'->'元'
-				resultMap.put("finishScore", total.divide(new BigDecimal("100"), mc));
+				resultMap.put("finishScore", total.divide(new BigDecimal("100"), MathContext.UNLIMITED));
 			} else {
 				resultMap.put("finishScore", total.intValue());
 			}