|
@@ -8,6 +8,7 @@ import com.github.zuihou.business.classSchedule.entity.ScheduleUser;
|
|
|
import com.github.zuihou.business.classSchedule.service.ScheduleUserService;
|
|
|
import com.github.zuihou.base.service.SuperServiceImpl;
|
|
|
|
|
|
+import com.github.zuihou.business.productionReadyCenter.entity.BomProcedure;
|
|
|
import com.github.zuihou.database.mybatis.conditions.Wraps;
|
|
|
import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
|
|
|
import com.github.zuihou.injection.annonation.InjectionResult;
|
|
@@ -16,13 +17,12 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.util.function.Predicate;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.github.zuihou.utils.BizAssert.isFalse;
|
|
|
+import static java.util.stream.Collectors.groupingBy;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -48,7 +48,6 @@ public class ScheduleUserServiceImpl extends SuperServiceImpl<ScheduleUserMapper
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
public ScheduleUser save(ScheduleUserSaveDTO data) {
|
|
|
ScheduleUser module = BeanPlusUtil.toBean(data, ScheduleUser.class);
|
|
|
//先删除再插入
|
|
@@ -56,21 +55,29 @@ public class ScheduleUserServiceImpl extends SuperServiceImpl<ScheduleUserMapper
|
|
|
|
|
|
// 解决不能删除事务问题,
|
|
|
List<ScheduleUser> hisUserList = baseMapper.selectList(Wraps.<ScheduleUser>lbQ().eq(ScheduleUser::getScheduleFlag,module.getScheduleFlag()));
|
|
|
- List<Long> hisUsers = hisUserList.stream().map(p -> p.getUserId()).collect(Collectors.toList());
|
|
|
- List<ScheduleUser> insertUser = new ArrayList<>();
|
|
|
+ List<Long> hisUsers = hisUserList.stream().map(p -> p.getId()).collect(Collectors.toList());
|
|
|
+ baseMapper.delete(Wraps.<ScheduleUser>lbQ().in(ScheduleUser::getId,hisUsers));
|
|
|
|
|
|
List<ScheduleUser> detailList = data.getScheduleUserList();
|
|
|
- for(ScheduleUser scheduleUser : detailList){
|
|
|
- if(!hisUsers.contains(scheduleUser.getUserId())){
|
|
|
- scheduleUser.setScheduleFlag(module.getScheduleFlag());
|
|
|
- insertUser.add(scheduleUser);
|
|
|
- }
|
|
|
+ detailList = detailList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(
|
|
|
+ () -> new TreeSet<>(Comparator.comparing(o -> o.getUserId()))), ArrayList::new));
|
|
|
+
|
|
|
+ if(detailList !=null && detailList.size()>0){
|
|
|
+ List<ScheduleUser> mainList = detailList.stream().map((map) -> {
|
|
|
+ ScheduleUser item = new ScheduleUser();
|
|
|
+ BeanUtil.copyProperties(map, item);
|
|
|
+ item.setScheduleFlag(module.getScheduleFlag());
|
|
|
+ item.setId(null);
|
|
|
+ return item;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ super.saveBatch(mainList);
|
|
|
}
|
|
|
- super.saveBatch(insertUser);
|
|
|
|
|
|
return module;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public boolean check(ScheduleUserSaveDTO model) {
|
|
|
return super.count(Wraps.<ScheduleUser>lbQ().eq(ScheduleUser::getScheduleFlag, model.getScheduleFlag())) > 0;
|
|
|
}
|