【派工单明细】 拆分明细同步数据

dev
siontion 4 months ago
parent 5095ec36d0
commit 71ff40c388

@ -443,24 +443,26 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
List<TaskDispatchDetailDO> insertDetailList = new ArrayList<>();
List<TaskDispatchDetailDO> updateDetailList = new ArrayList<>();
// 根据派工单明细id根据工序id查找每个负责人是否在拆分表中存在存在则更新否则插入
detailOwnerList.forEach(owner ->{
detailList.forEach(one ->{
owner.getOwners().forEach(m->{
if(detailList.stream().filter(n ->n.getDetailOwnerId().equals(owner.getId()) && n.getOwner().equals(m) && n.getProcedureId().equals(owner.getProcedureId())).count()==0){
TaskDispatchDetailDO taskDispatchDetailDO = BeanUtils.toBean(owner,TaskDispatchDetailDO.class);
taskDispatchDetailDO.setId(null);
taskDispatchDetailDO.setOwner(m);
taskDispatchDetailDO.setDetailOwnerId(owner.getId());
insertDetailList.add(taskDispatchDetailDO);
}else{
Long detailId = detailList.stream().filter(n -> n.getDetailOwnerId().equals(owner.getId()) && n.getOwner().equals(m) && n.getProcedureId().equals(owner.getProcedureId())).collect(Collectors.toList()).get(0).getId();
TaskDispatchDetailDO taskDispatchDetailDO = BeanUtils.toBean(owner,TaskDispatchDetailDO.class);
taskDispatchDetailDO.setId(detailId);
updateDetailList.add(taskDispatchDetailDO);
}
});
});
// insertList.forEach(o -> {
// o.getOwners().forEach(m ->{
// TaskDispatchDetailDO taskDispatchDetailDO = BeanUtils.toBean(o,TaskDispatchDetailDO.class);
// taskDispatchDetailDO.setId(null);
// taskDispatchDetailDO.setOwner(m);
// insertDetailList.add(taskDispatchDetailDO);
//// if(detailList.stream().filter(n -> n.getOwner()!=null && n.getOwner().equals(m) && n.getProcedureId().equals(o.getProcedureId())).count()==0){
//// }
// });
// });
if(!insertDetailList.isEmpty()) taskDispatchDetailMapper.insertBatch(insertDetailList);
if(!updateDetailList.isEmpty()) taskDispatchDetailMapper.updateBatch(updateDetailList);
}
private void updateTaskDispatchDetailList(Long dispatchId, List<TaskDispatchDetailOwnerDO> list) {

@ -275,3 +275,7 @@ CREATE TABLE `pro_task_dispatch_detail_owner` (
`owner_ids` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '多个负责人',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='派工明细表';
alter table pro_task_dispatch_detail add COLUMN `detail_owner_id` bigint(20)default null comment '派工明细拆分前对应id' after id;
update pro_task_dispatch_detail as a set detail_owner_id =(select id from pro_task_dispatch_detail_owner where owner_ids is not null and dispatch_id=a.dispatch_id and procedure_id=a.procedure_id and owner_ids=a.owner_ids limit 1)
Loading…
Cancel
Save