|
@@ -1811,7 +1811,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
// 校验证据链信息,并封装正确的
|
|
|
List<CommonEvidenceDTO> evidenceDTOS = sourceList;
|
|
|
int outCapacity = evidenceDTOS.size() - scorePackage.getTaskNum();
|
|
|
- AtomicInteger index = new AtomicInteger(0);
|
|
|
+ ConcurrentHashMap<SysUser, Integer> indexMap = new ConcurrentHashMap(sourceList.size());
|
|
|
ConcurrentHashMap<SysUser, BigDecimal> preUserSettleAmountMap = new ConcurrentHashMap(sourceList.size());
|
|
|
evidenceDTOS.forEach(commonEvidenceDTO -> {
|
|
|
// 校验结算用户是否存在
|
|
@@ -1827,28 +1827,29 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (outCapacity > 0) {
|
|
|
- if (index.getAndIncrement() >= outCapacity) {
|
|
|
- log.error("超出设定任务数");
|
|
|
- errorMap(errorMap, "超出设定任务数", commonEvidenceDTO.getId());
|
|
|
- return;
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 校验任务数
|
|
|
- List<WmTask> wmTasks = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery()
|
|
|
- .eq(WmTask::getScorePackageId, scorePackage.getId())
|
|
|
- .eq(WmTask::getTaskUserId, user.getUserId())
|
|
|
- .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
- .eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val())
|
|
|
- // 审核通过
|
|
|
- .eq(WmTask::getTaskStatus, "3")
|
|
|
- );
|
|
|
- if (CollectionUtils.isNotEmpty(wmTasks) && (scorePackage.getTaskNum() - wmTasks.size() <= index.getAndIncrement())) {
|
|
|
- log.error("超出设定任务数");
|
|
|
- errorMap(errorMap, "超出设定任务数", commonEvidenceDTO.getId());
|
|
|
- return;
|
|
|
- }
|
|
|
+ // 校验任务数
|
|
|
+ int index = 1;
|
|
|
+ if (indexMap.contains(user)) {
|
|
|
+ index = indexMap.get(user) + 1;
|
|
|
}
|
|
|
+ indexMap.put(user, index);
|
|
|
+ List<WmTask> wmTasks = wmTaskMapper.selectList(Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .eq(WmTask::getScorePackageId, scorePackage.getId())
|
|
|
+ .eq(WmTask::getTaskUserId, user.getUserId())
|
|
|
+ .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
+ .eq(WmTask::getEnableFlag, EnableEnum.ENABLE.val())
|
|
|
+ // 审核通过
|
|
|
+ .eq(WmTask::getTaskStatus, "3")
|
|
|
+ );
|
|
|
+
|
|
|
+ int taskSize = CollectionUtils.isNotEmpty(wmTasks) ? wmTasks.size() : 0;
|
|
|
+
|
|
|
+ if (scorePackage.getTaskNum() - taskSize <= index ){
|
|
|
+ log.error("超出设定任务数");
|
|
|
+ errorMap(errorMap, "超出设定任务数", commonEvidenceDTO.getId());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
// 校验用户是否存在领包记录
|
|
|
WmScorePackageStatus scorePackageStatus =
|