|
@@ -650,7 +650,6 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
// 2.关联了上级积分包
|
|
|
boolean relatedScoreId = StrUtil.isNotBlank(wmScorePackage.getRelationScoreId()) && Integer.parseInt(wmScorePackage.getRelationScoreId()) > 0;
|
|
|
SysDeptRecharge deptRecharge = null;
|
|
|
- int currentScore = 0;
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
if (!relatedScoreId) {
|
|
|
deptRecharge = sysDeptRechargeMapper.selectOne(Wrappers.<SysDeptRecharge>lambdaQuery()
|
|
@@ -665,21 +664,6 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
wmScorePackage.getScore(), deptRecharge.getScore(), limitScore);
|
|
|
throw new RuntimeException(String.format("积分余额:%s。积分不足", deptRecharge.getScore()));
|
|
|
}
|
|
|
-
|
|
|
- currentScore = deptRecharge.getScore() - wmScorePackage.getScore();
|
|
|
-
|
|
|
- // 更新积分充值信息
|
|
|
- int updateRecharge = sysDeptRechargeMapper.update(null, Wrappers.<SysDeptRecharge>lambdaUpdate()
|
|
|
- .eq(SysDeptRecharge::getId, deptRecharge.getId())
|
|
|
- .eq(SysDeptRecharge::getVersion, deptRecharge.getVersion())
|
|
|
- .set(SysDeptRecharge::getScore, currentScore)
|
|
|
- .set(SysDeptRecharge::getVersion, deptRecharge.getVersion() + 1)
|
|
|
- .set(SysDeptRecharge::getUpdateTime, now)
|
|
|
- .set(SysDeptRecharge::getUpdateUser, currentUser.getId()));
|
|
|
- if (updateRecharge <= 0) {
|
|
|
- log.warn("更新积分充值信息失败");
|
|
|
- throw new RuntimeException("操作失败,请重试");
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
WmScorePackage relationScorePackage = new WmScorePackage();//关联积分包
|
|
@@ -890,15 +874,22 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
}
|
|
|
|
|
|
if (!relatedScoreId) {
|
|
|
- // 查询关联操作对象
|
|
|
-// List<SysJyEntRelation> jyEntRelations = sysJyEntRelationMapper.selectList(Wrappers.<SysJyEntRelation>lambdaQuery()
|
|
|
-// .eq(SysJyEntRelation::getEntDept, currentUser.getDeptId()));
|
|
|
+ int currentScore = deptRecharge.getScore() - wmScorePackage.getScore();
|
|
|
+ // 更新积分充值信息
|
|
|
+ int updateRecharge = sysDeptRechargeMapper.update(null, Wrappers.<SysDeptRecharge>lambdaUpdate()
|
|
|
+ .eq(SysDeptRecharge::getId, deptRecharge.getId())
|
|
|
+ .eq(SysDeptRecharge::getVersion, deptRecharge.getVersion())
|
|
|
+ .set(SysDeptRecharge::getScore, currentScore)
|
|
|
+ .set(SysDeptRecharge::getVersion, deptRecharge.getVersion() + 1)
|
|
|
+ .set(SysDeptRecharge::getUpdateTime, now)
|
|
|
+ .set(SysDeptRecharge::getUpdateUser, currentUser.getId()));
|
|
|
+ if (updateRecharge <= 0) {
|
|
|
+ log.warn("更新积分充值信息失败");
|
|
|
+ throw new RuntimeException("操作失败,请重试");
|
|
|
+ }
|
|
|
// 更新积分充值记录
|
|
|
SysDeptRechargeRecord rechargeRecord = new SysDeptRechargeRecord();
|
|
|
rechargeRecord.setDeptId(currentUser.getDeptId());
|
|
|
-// if (CollUtil.isNotEmpty(jyEntRelations)) {
|
|
|
-// rechargeRecord.setRelationDeptId(jyEntRelations.get(0).getJyDept());
|
|
|
-// }
|
|
|
rechargeRecord.setChangeScore(-wmScorePackage.getScore());
|
|
|
rechargeRecord.setRechargeId(deptRecharge.getId());
|
|
|
rechargeRecord.setPackageType(RechargeRecordPackageType.TO_PERSON);
|
|
@@ -3031,6 +3022,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
throw new RuntimeException("请选择企业承接的大包");
|
|
|
}
|
|
|
|
|
|
+ log.info("当前积分包终止前数据:{}", scorePackage);
|
|
|
if (UpmsType.TerminatePackageType.ALL.equals(terminatePackageType)) {
|
|
|
// 全部终止的校验
|
|
|
int relatedPackageCount = this.count(Wrappers.<WmScorePackage>lambdaQuery()
|
|
@@ -3039,24 +3031,39 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
|
|
|
if (relatedPackageCount > 0 || !scorePackage.getScore().equals(scorePackage.getKfpjf())) {
|
|
|
throw new RuntimeException("积分包已被分派,请联系下属CSO终止关联积分包后再进行次操作");
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- // 更新积分包状态
|
|
|
- WmScorePackage updateEntity = new WmScorePackage();
|
|
|
- updateEntity.setId(packageId);
|
|
|
- updateEntity.setPackageFinishStatus("2");
|
|
|
- updateEntity.setEnableType(terminatePackageType.getEnableType());
|
|
|
- updateEntity.setEnableFlag(EnableEnum.DISABLE.val());
|
|
|
- updateEntity.setScorePackageStatus(ScorePackageStatusEnum.TERMINATED.val());
|
|
|
- updateEntity.setUpdateTime(now);
|
|
|
- updateEntity.setUpdateUser(userId);
|
|
|
- log.info("更新积分包参数:{}", updateEntity);
|
|
|
- this.updateById(updateEntity);
|
|
|
-
|
|
|
- if (UpmsType.TerminatePackageType.REMAIN.equals(terminatePackageType)) {
|
|
|
- // 剩余回收: 回收可分配积分值
|
|
|
+ // 全部终止: 更新积分包状态为已终止
|
|
|
+ WmScorePackage updateEntity = new WmScorePackage();
|
|
|
+ updateEntity.setId(packageId);
|
|
|
+ updateEntity.setPackageFinishStatus("2");
|
|
|
+ updateEntity.setEnableType(terminatePackageType.getEnableType());
|
|
|
+ updateEntity.setEnableFlag(EnableEnum.DISABLE.val());
|
|
|
+ updateEntity.setScorePackageStatus(ScorePackageStatusEnum.TERMINATED.val());
|
|
|
+ updateEntity.setUpdateTime(now);
|
|
|
+ updateEntity.setUpdateUser(userId);
|
|
|
+ log.info("更新积分包参数:{}", updateEntity);
|
|
|
+ this.updateById(updateEntity);
|
|
|
+ } else {
|
|
|
+ // 剩余回收
|
|
|
+ // 已分配积分值
|
|
|
+ int assignedScore = 0;
|
|
|
+ List<WmScorePackage> subPackages = this.list(Wrappers.<WmScorePackage>lambdaQuery()
|
|
|
+ .eq(WmScorePackage::getRelationScoreId, packageId)
|
|
|
+ .ne(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.TERMINATED.val()));
|
|
|
+ if (CollUtil.isNotEmpty(subPackages)) {
|
|
|
+ assignedScore = subPackages.stream().mapToInt(WmScorePackage::getScore).sum();
|
|
|
+ }
|
|
|
+ // 剩余收回: 更新积分包分值为已分配的积分
|
|
|
+ WmScorePackage updateEntity = new WmScorePackage();
|
|
|
+ updateEntity.setId(packageId);
|
|
|
+ updateEntity.setEnableType(terminatePackageType.getEnableType());
|
|
|
+ updateEntity.setScore(assignedScore);
|
|
|
+ updateEntity.setUpdateTime(now);
|
|
|
+ updateEntity.setUpdateUser(userId);
|
|
|
+ log.info("更新积分包参数:{}", updateEntity);
|
|
|
+ this.updateById(updateEntity);
|
|
|
+
|
|
|
+ // 可分配积分值
|
|
|
int recoveryScore = scorePackage.getKfpjf();
|
|
|
-
|
|
|
// 如果关联了大包 回收整包的积分值到大包的可分配积分值。如果没有关联大包,回收整包积分值到该企业的余额
|
|
|
boolean relatedScoreId = StrUtil.isNotBlank(scorePackage.getRelationScoreId()) && Integer.parseInt(scorePackage.getRelationScoreId()) > 0;
|
|
|
if (relatedScoreId) {
|