|
|
|
@ -456,12 +456,16 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|
|
|
|
eq(TaskDispatchDetailDO::getId, vid)
|
|
|
|
|
.last("LIMIT 1 FOR UPDATE");
|
|
|
|
|
}});
|
|
|
|
|
TaskDispatchDetailOwnerDO taskDispatchDetailOwnerDO = taskDispatchDetailOwnerMapper.selectOne(new LambdaQueryWrapperX<TaskDispatchDetailOwnerDO>(){{
|
|
|
|
|
eq(TaskDispatchDetailOwnerDO::getId, taskDispatchDetailDO.getDetailOwnerId())
|
|
|
|
|
.last("LIMIT 1 FOR UPDATE");
|
|
|
|
|
}});
|
|
|
|
|
|
|
|
|
|
BigDecimal avgWorkTime = operateReqVO.getWorkTime().divide(BigDecimal.valueOf(operateReqVO.getDispatchIds().stream().count()));
|
|
|
|
|
Arrays.stream(taskDispatchDetailDO.getOwnerIds().split(",")).forEach(oid->{
|
|
|
|
|
|
|
|
|
|
TaskDispatchDetailRatioDO taskDispatchDetailRatioDO = taskDispatchDetailRatioMapper.selectOne(new LambdaQueryWrapper<TaskDispatchDetailRatioDO>(){{
|
|
|
|
|
eq(TaskDispatchDetailRatioDO::getDetailOwnerId,vid)
|
|
|
|
|
eq(TaskDispatchDetailRatioDO::getDetailOwnerId,taskDispatchDetailOwnerDO.getId())
|
|
|
|
|
.eq(TaskDispatchDetailRatioDO::getOwner,oid)
|
|
|
|
|
.last("LIMIT 1 FOR UPDATE");
|
|
|
|
|
}});
|
|
|
|
@ -482,7 +486,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|
|
|
|
.setHasReport(YesOrNoEnum.Y.getCode())
|
|
|
|
|
.setAmount(taskDispatchDetailDO.getAmount())
|
|
|
|
|
.setWorkTime(avgWorkTime.multiply(ratio))
|
|
|
|
|
.setOwner(SecurityFrameworkUtils.getLoginUserId());
|
|
|
|
|
.setOwner(Long.valueOf(oid.trim()));
|
|
|
|
|
taskReportMapper.insert(taskReportDO);
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|