【批量派工联合派工】

dev
siontion 3 months ago
parent 86c1a94c53
commit f6433a0ca5

@ -43,7 +43,7 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
.select("COALESCE(sum(f.work_time),0) as totalWorkTime")
.select("d.unit","d.spec", "d.name as projectSubName", "d.code as projectSubCode", "c.production_id, c.production_detail_id")
.select("g.name as workshopName")
.select("(case when INSTR(t.owner_ids',')>0 then 1 else 0 end) isUnion")
.select("(case when INSTR(t.owner_ids,',')>0 then 1 else 0 end) isUnion")
.leftJoin(TaskDispatchDO.class, "a", TaskDispatchDO::getId, TaskDispatchDetailDO::getDispatchId)
.leftJoin(ProjectOrderDO.class, "b", ProjectOrderDO::getId, TaskDispatchDO::getProjectId)
.leftJoin(ProjectOrderSubDO.class, "c", ProjectOrderSubDO::getId, TaskDispatchDO::getProjectSubId)

@ -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);
});

Loading…
Cancel
Save