package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.BaoJiGroupMapper;
|
import com.whyc.mapper.BaoJiGroupUserMapper;
|
import com.whyc.mapper.BaoJiGroupBattGroupMapper;
|
import com.whyc.mapper.CommonMapper;
|
import com.whyc.pojo.BaoJiGroup;
|
import com.whyc.pojo.BaoJiGroupUser;
|
import com.whyc.pojo.BaojiGroupBattGroup;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class BaoJiGroupService {
|
|
@Resource
|
private BaoJiGroupMapper mapper;
|
|
@Resource
|
private BaoJiGroupUserMapper baoJiGroupUserMapper;
|
|
@Resource
|
private BaoJiGroupBattGroupMapper BaoJiGroupBattGroupMapper;
|
|
@Resource
|
private CommonMapper commonMapper;
|
|
@Autowired
|
private BattInfService battInfService;
|
|
public void add(String groupName) {
|
BaoJiGroup baoJiGroup = new BaoJiGroup();
|
baoJiGroup.setBaoJiGroupName(groupName);
|
baoJiGroup.setDischargePlanFlag(0);
|
|
mapper.insert(baoJiGroup);
|
}
|
|
public void update(BaoJiGroup baoJiGroup) {
|
mapper.updateById(baoJiGroup);
|
}
|
|
public void delete(long baoJiGroupId) {
|
//删除包机组
|
mapper.deleteById(baoJiGroupId);
|
//删除关联的用户
|
UpdateWrapper<BaoJiGroupUser> userWrapper = Wrappers.update();
|
userWrapper.eq("baoji_group_id",baoJiGroupId);
|
baoJiGroupUserMapper.delete(userWrapper);
|
//删除关联的站点/电池组
|
UpdateWrapper<BaojiGroupBattGroup> battGroupWrapper = Wrappers.update();
|
battGroupWrapper.eq("baoji_group_id",baoJiGroupId);
|
BaoJiGroupBattGroupMapper.delete(battGroupWrapper);
|
}
|
|
public List<BaoJiGroup> getBaoJiGroup() {
|
return mapper.selectList(null);
|
}
|
|
/**
|
* 每次设置放电标识时,提前校验组内是否与其他标识班组存在相同站点,存在则提示,不修改
|
* @param baoJiGroupId
|
* @param flag
|
* @return
|
*/
|
public Response updateDischargeFlag(Long baoJiGroupId, Integer flag) {
|
if(flag==1) {
|
//查询要设置的包机组的站点
|
QueryWrapper<BaojiGroupBattGroup> query = Wrappers.query();
|
query.select("baoji_group_id", "StationId").eq("baoji_group_id", baoJiGroupId);
|
List<BaojiGroupBattGroup> stationIdList = BaoJiGroupBattGroupMapper.selectList(query);
|
stationIdList = stationIdList.stream().distinct().collect(Collectors.toList());
|
//查询其他的组,包含的所有站点
|
List<BaojiGroupBattGroup> stationIdListWithDischargePlanFlag = BaoJiGroupBattGroupMapper.getStationIdListWithDischargePlanFlag();
|
stationIdListWithDischargePlanFlag = stationIdListWithDischargePlanFlag.stream().distinct().collect(Collectors.toList());
|
List<BaojiGroupBattGroup> repeatedStationIdList = new LinkedList<>();
|
for (int i = 0; i < stationIdList.size(); i++) {
|
BaojiGroupBattGroup baojiGroupBattGroup = stationIdList.get(i);
|
for (int j = 0; j < stationIdListWithDischargePlanFlag.size(); j++) {
|
BaojiGroupBattGroup baojiGroupBattGroupWithFlag = stationIdListWithDischargePlanFlag.get(j);
|
if (baojiGroupBattGroupWithFlag.getStationId().equals(baojiGroupBattGroup.getStationId())) {
|
repeatedStationIdList.add(baojiGroupBattGroupWithFlag);
|
break;
|
}
|
}
|
}
|
//查询重复站点的信息
|
if (repeatedStationIdList.size() > 0) {
|
return new Response().setII(1, false, repeatedStationIdList, "设置失败");
|
}
|
}
|
UpdateWrapper<BaoJiGroup> update = Wrappers.update();
|
update.set("discharge_plan_flag",flag).eq("baoji_group_id",baoJiGroupId);
|
mapper.update(null,update);
|
return new Response().set(1,true,"设置完成");
|
}
|
|
public List<BaoJiGroup> getBaoJiGroupNameListByFlag(int dischargePlanFlag) {
|
QueryWrapper<BaoJiGroup> query = Wrappers.query();
|
query.eq("discharge_plan_flag",dischargePlanFlag);
|
return mapper.selectList(query);
|
}
|
}
|