|
@@ -1,15 +1,24 @@
|
|
|
package com.usky.dxtop.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.usky.dxtop.common.enums.BusinessStatus;
|
|
|
+import com.usky.dxtop.common.exception.CustomException;
|
|
|
import com.usky.dxtop.mapper.StaffRadioMapper;
|
|
|
+import com.usky.dxtop.model.Staff;
|
|
|
import com.usky.dxtop.model.StaffRadio;
|
|
|
+import com.usky.dxtop.service.DeptService;
|
|
|
import com.usky.dxtop.service.StaffRadioService;
|
|
|
+import com.usky.dxtop.service.StaffService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -22,18 +31,55 @@ import java.util.Map;
|
|
|
@Service
|
|
|
public class StaffRadioServiceImpl extends ServiceImpl<StaffRadioMapper, StaffRadio> implements StaffRadioService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private StaffService staffService;
|
|
|
|
|
|
@Override
|
|
|
public void addList(List<StaffRadio> list) {
|
|
|
- list.stream()
|
|
|
+ if (CollectionUtils.isEmpty(list)){
|
|
|
+ throw new CustomException("请选择要关联的信息");
|
|
|
+ }
|
|
|
+ List<StaffRadio> removeList = list.stream()
|
|
|
.filter(staffRadio -> null != staffRadio.getRadioId() && 0 != staffRadio.getRadioId())
|
|
|
- .forEach(staffRadio -> {
|
|
|
- LambdaUpdateWrapper<StaffRadio> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
- updateWrapper.eq(StaffRadio::getStaffId, staffRadio.getStaffId())
|
|
|
- .set(StaffRadio::isDelFlag,staffRadio.isDelFlag());
|
|
|
- this.saveOrUpdate(staffRadio,updateWrapper);
|
|
|
- });
|
|
|
+ .filter(staffRadio -> !staffRadio.isDelFlag()).collect(Collectors.toList());
|
|
|
|
|
|
+ List<StaffRadio> addList = list.stream()
|
|
|
+ .filter(staffRadio -> null != staffRadio.getRadioId() && 0 != staffRadio.getRadioId())
|
|
|
+ .filter(StaffRadio::isDelFlag).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(removeList)){
|
|
|
+ LambdaQueryWrapper<StaffRadio> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.in(StaffRadio::getStaffId,removeList.stream().map(StaffRadio::getStaffId).collect(Collectors.toList()));
|
|
|
+ this.remove(queryWrapper);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(addList)){
|
|
|
+ this.saveBatch(addList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean addListByDept(Long deptId, Boolean isBinding,Long radioId) {
|
|
|
+ LambdaQueryWrapper<Staff> staffLambdaQueryWrapper = Wrappers.lambdaQuery();
|
|
|
+ staffLambdaQueryWrapper
|
|
|
+ .select(Staff::getSId)
|
|
|
+ .eq(Staff::getDeptId,deptId);
|
|
|
+ List<Long> list = staffService.list(staffLambdaQueryWrapper).stream().map(Staff::getSId).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ LambdaQueryWrapper<StaffRadio> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.in(StaffRadio::getStaffId,list);
|
|
|
+ this.remove(queryWrapper);
|
|
|
+ if (isBinding){
|
|
|
+ List<StaffRadio> addList = list.stream().map(staff -> {
|
|
|
+ StaffRadio staffRadio = new StaffRadio();
|
|
|
+ staffRadio.setRadioId(radioId);
|
|
|
+ staffRadio.setStaffId(staff);
|
|
|
+ return staffRadio;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ this.saveBatch(addList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|