|
|
@ -1,6 +1,8 @@ |
|
|
|
package com.kms.yxgh.df.service; |
|
|
|
import com.alibaba.druid.sql.visitor.functions.If; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
@ -77,15 +79,19 @@ public class DfCheckingV2Service extends BaseService<DfCheckingV2Mapper, DfCheck |
|
|
|
.map(DfV2CheckingDto::getId) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(ids)) { |
|
|
|
return dtoPage; |
|
|
|
} |
|
|
|
|
|
|
|
List<DfCheckingV2ProjectItem> items = dfCheckingV2ProjectItemV2Service.list( |
|
|
|
Wrappers.<DfCheckingV2ProjectItem>lambdaQuery() |
|
|
|
.in(DfCheckingV2ProjectItem::getProjectId, ids) |
|
|
|
.in(DfCheckingV2ProjectItem::getCheckingId, ids) |
|
|
|
); |
|
|
|
|
|
|
|
// 将项目项关联到 DTO
|
|
|
|
vos.forEach(dto -> { |
|
|
|
List<DfCheckingDetailDto.DfCheckingItemDto> itemDtos = items.stream() |
|
|
|
.filter(item -> Objects.equals(item.getProjectId(),dto.getId())) |
|
|
|
.filter(item -> Objects.equals(item.getCheckingId(),dto.getId())) |
|
|
|
.map(DfCheckingV2Service::convertToItemDto) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
dto.setItems(itemDtos); |
|
|
@ -123,7 +129,7 @@ public class DfCheckingV2Service extends BaseService<DfCheckingV2Mapper, DfCheck |
|
|
|
|
|
|
|
List<DfCheckingV2ProjectItem> items = dfCheckingV2ProjectItemV2Service.list( |
|
|
|
Wrappers.<DfCheckingV2ProjectItem>lambdaQuery() |
|
|
|
.eq(DfCheckingV2ProjectItem::getProjectId, id) |
|
|
|
.eq(DfCheckingV2ProjectItem::getCheckingId, id) |
|
|
|
); |
|
|
|
|
|
|
|
dto.setItems(items.stream() |
|
|
@ -150,7 +156,7 @@ public class DfCheckingV2Service extends BaseService<DfCheckingV2Mapper, DfCheck |
|
|
|
List<DfCheckingV2ProjectItem> projectItems = items.parallelStream() // 使用并行流
|
|
|
|
.map(item -> { |
|
|
|
DfCheckingV2ProjectItem projectItem = new DfCheckingV2ProjectItem(); |
|
|
|
projectItem.setProjectId(Integer.valueOf(dfCheckingV2ProjectManage.getId())); |
|
|
|
projectItem.setCheckingId(Integer.valueOf(dfCheckingV2ProjectManage.getId())); |
|
|
|
projectItem.setContent(item.getContent()); |
|
|
|
projectItem.setParts(String.join(",", item.getParts())); |
|
|
|
return projectItem; |
|
|
@ -183,21 +189,21 @@ public class DfCheckingV2Service extends BaseService<DfCheckingV2Mapper, DfCheck |
|
|
|
|
|
|
|
dfCheckingV2ProjectItemV2Service |
|
|
|
.remove(new LambdaQueryWrapper<DfCheckingV2ProjectItem>() |
|
|
|
.eq(DfCheckingV2ProjectItem::getProjectId,dfV2Ck.getId())); |
|
|
|
.eq(DfCheckingV2ProjectItem::getCheckingId,dfV2Ck.getId())); |
|
|
|
|
|
|
|
|
|
|
|
List<DfCheckingV2ProjectItem> items = dfV2Ck.getItems().stream() |
|
|
|
.map(item -> { |
|
|
|
DfCheckingV2ProjectItem projectItem = new DfCheckingV2ProjectItem(); |
|
|
|
projectItem.setId(item.getId()); |
|
|
|
projectItem.setProjectId(Integer.valueOf(dfV2Ck.getId())); |
|
|
|
projectItem.setCheckingId(Integer.valueOf(dfCheckingV2ProjectManage.getId())); |
|
|
|
projectItem.setContent(item.getContent()); |
|
|
|
projectItem.setParts(String.join(",", item.getParts())); |
|
|
|
return projectItem; |
|
|
|
}) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
if (!dfCheckingV2ProjectItemV2Service.updateBatchById(items)) { |
|
|
|
if (!dfCheckingV2ProjectItemV2Service.saveOrUpdateBatch(items)) { |
|
|
|
throw new RuntimeException("项目子项修改失败"); |
|
|
|
} |
|
|
|
|
|
|
@ -206,21 +212,20 @@ public class DfCheckingV2Service extends BaseService<DfCheckingV2Mapper, DfCheck |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public boolean myRemove(String[] ids) { |
|
|
|
return Optional.ofNullable(ids) |
|
|
|
.filter(array -> array.length > 0) |
|
|
|
.map(array -> { |
|
|
|
int count = dfCheckingV2ProjectItemV2Service.count(new LambdaQueryWrapper<DfCheckingV2ProjectItem>() |
|
|
|
.eq(DfCheckingV2ProjectItem::getProjectId, getIntList(array)) |
|
|
|
); |
|
|
|
if (count > 0) { |
|
|
|
throw new RuntimeException("请先删除项目子项"); |
|
|
|
} |
|
|
|
Arrays.stream(array) |
|
|
|
.parallel() // 使用并行流
|
|
|
|
.forEach(dfCheckingV2ProjectItemV2Service::removeById); |
|
|
|
return removeById(ids); |
|
|
|
}) |
|
|
|
.orElse(false); |
|
|
|
if ( null!= ids && ids.length > 0) { |
|
|
|
int count = dfCheckingV2ProjectItemV2Service.count(new LambdaQueryWrapper<DfCheckingV2ProjectItem>() |
|
|
|
.in(DfCheckingV2ProjectItem::getCheckingId, getIntList(ids)) |
|
|
|
); |
|
|
|
if (count > 0) { |
|
|
|
throw new RuntimeException("请先删除项目子项"); |
|
|
|
} |
|
|
|
dfCheckingV2ProjectItemV2Service.remove(new LambdaQueryWrapper<DfCheckingV2ProjectItem>() |
|
|
|
.in(DfCheckingV2ProjectItem::getCheckingId, getIntList(ids))); |
|
|
|
|
|
|
|
return remove(new LambdaQueryWrapper<DfCheckingV2ProjectManage>() |
|
|
|
.in(DfCheckingV2ProjectManage::getId, getIntList(ids))); |
|
|
|
} |
|
|
|
return Boolean.FALSE; |
|
|
|
} |
|
|
|
public static List<Integer> getIntList(String[] ids) { |
|
|
|
if (ids == null) { |
|
|
|