## Opt - 重写左右区结余逻辑(调整网体来源&结余逻辑)

This commit is contained in:
sangelxiu1 2025-10-23 11:47:15 +08:00
parent 307fd28849
commit 16ae61ce90
3 changed files with 20 additions and 15 deletions

View File

@ -227,10 +227,11 @@ public class CuMemberAchieveServiceImpl extends ServiceImpl<CuMemberAchieveMappe
if (result.compareTo(BigDecimal.ZERO) >= 0) { if (result.compareTo(BigDecimal.ZERO) >= 0) {
// 如果结果大于等于0直接设置aBalance // 如果结果大于等于0直接设置aBalance
updateVO.setABalance(result); updateVO.setABalance(result);
updateVO.setBBalance(nowSettleVO.getBBalance());
} else { } else {
// 如果结果小于0aBalance设为0bBalance设为差额绝对值 // 如果结果小于0aBalance设为0bBalance设为差额绝对值
updateVO.setABalance(BigDecimal.ZERO); updateVO.setABalance(BigDecimal.ZERO);
updateVO.setBBalance(result.abs()); updateVO.setBBalance(nowSettleVO.getABalance().add(pendingPV));
} }
// }else if(EPlaceDept.RIGHT_DEPT.getValue() == baseSettleVO.getPlaceDep()){ // }else if(EPlaceDept.RIGHT_DEPT.getValue() == baseSettleVO.getPlaceDep()){
} else { } else {
@ -240,10 +241,11 @@ public class CuMemberAchieveServiceImpl extends ServiceImpl<CuMemberAchieveMappe
if (result.compareTo(BigDecimal.ZERO) >= 0) { if (result.compareTo(BigDecimal.ZERO) >= 0) {
// 如果结果大于等于0直接设置bBalance // 如果结果大于等于0直接设置bBalance
updateVO.setBBalance(result); updateVO.setBBalance(result);
updateVO.setABalance(nowSettleVO.getABalance());
} else { } else {
// 如果结果小于0bBalance设为0aBalance设为差额绝对值 // 如果结果小于0bBalance设为0aBalance设为差额绝对值
updateVO.setBBalance(BigDecimal.ZERO); updateVO.setBBalance(BigDecimal.ZERO);
updateVO.setABalance(result.abs()); updateVO.setABalance(nowSettleVO.getBBalance().add(pendingPV));
} }
} }
baseSettleVO = nowSettleVO; baseSettleVO = nowSettleVO;

View File

@ -16,6 +16,7 @@ public class CuMemberSettleVO implements Serializable {
private Integer level; private Integer level;
private Long pkMember; private Long pkMember;
private Long pkParent; private Long pkParent;
private Long pkPlaceParent;
private Integer placeDept; private Integer placeDept;
private String memberCode; private String memberCode;
private String memberName; private String memberName;

View File

@ -1324,24 +1324,26 @@
</select> </select>
<select id="getParentMemberList" resultType="com.hzs.bonus.achieve.vo.CuMemberSettleVO"> <select id="getParentMemberList" resultType="com.hzs.bonus.achieve.vo.CuMemberSettleVO">
SELECT SELECT
* settle.A_BALANCE AS aBalance,
settle.B_BALANCE AS bBalance,
tree.*
FROM FROM
( (
SELECT SELECT LEVEL
LEVEL, ,
cm.period, period,
cm.pk_member as pkMember, pk_member AS pkMember,
cm.pk_parent as pkParent, pk_parent AS pkParent,
cm.place_Dept as placeDept, PK_PLACE_PARENT AS pkPlaceParent,
cm.member_Code as memberCode, place_Dept AS placeDept,
cm.member_Name as memberName, member_Code AS memberCode,
cm.a_Balance as aBalance, member_Name AS memberName
cm.b_Balance as bBalance
FROM FROM
${targetTable} cm START WITH cm.pk_member = #{pkMember} CONNECT BY cm.PK_MEMBER = PRIOR cm.PK_PARENT ( SELECT * FROM ${sourceTable} WHERE period = #{period} ) START WITH pk_member = #{pkMember} CONNECT BY PK_MEMBER = PRIOR PK_PLACE_PARENT
ORDER BY ORDER BY
LEVEL LEVEL
) ) tree
LEFT JOIN ${targetTable} settle ON tree.pkMember = settle.pk_member
</select> </select>
<update id="batchUpdateBalance"> <update id="batchUpdateBalance">
MERGE INTO ${targetTable} t MERGE INTO ${targetTable} t