package org.jeecg.modules.system.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.MdcUserProduction; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.mapper.MdcUserProductionMapper; import org.jeecg.modules.system.model.ProductionIdModel; import org.jeecg.modules.system.service.IMdcProductionService; import org.jeecg.modules.system.service.IMdcUserProductionService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * @Description: 用户产线表 * @author: LiuS * @create: 2023-03-27 11:58 */ @Service public class MdcUserProductionServiceImpl extends ServiceImpl implements IMdcUserProductionService { @Resource private IMdcProductionService mdcProductionService; /** * 根据用户id查询产线信息 */ @Override public List queryProductionIdsOfUser(String userId) { LambdaQueryWrapper queryUserPro = new LambdaQueryWrapper<>(); LambdaQueryWrapper queryPro = new LambdaQueryWrapper<>(); try { queryUserPro.eq(MdcUserProduction::getUserId, userId); List proIdList = new ArrayList<>(); List proIdModelList = new ArrayList<>(); List userProList = this.list(queryUserPro); if (userProList != null && !userProList.isEmpty()) { for (MdcUserProduction userProduction : userProList) { proIdList.add(userProduction.getProId()); } queryPro.in(MdcProduction::getId, proIdList); List proList = mdcProductionService.list(queryPro); if (proList != null && !proList.isEmpty()) { for (MdcProduction mdcProduction : proList) { proIdModelList.add(new ProductionIdModel().convertByUserProduction(mdcProduction)); } } return proIdModelList; } } catch (Exception e) { e.fillInStackTrace(); } return null; } /** * 根据指定用户id查询产线id集合 */ @Override public List queryProductionIdsByUserId(String userId) { return this.baseMapper.queryProductionIdsByUserId(userId); } /** * 根据一组车间id查询用户产线信息 * @param productionIds */ @Override public List queryByProductionIds(List productionIds){ if (!productionIds.isEmpty()){ return super.list(new LambdaQueryWrapper().in(MdcUserProduction::getProId, productionIds)); } return null; } @Override @Transactional(rollbackFor = {Exception.class}) public boolean removeByCollection(List mdcUserProductions) { if(mdcUserProductions == null || mdcUserProductions.isEmpty()) return false; if(mdcUserProductions.size() == 1){ return super.removeById(mdcUserProductions.get(0).getId()); } List ids = new ArrayList<>(); mdcUserProductions.forEach(item -> { ids.add(item.getId()); }); return super.removeByIds(ids); } /** * 获取已分配的用户列表 * @param proId * @return */ @Override public List getUserPermsByGroupId(String proId){ return super.getBaseMapper().getUserPermsByGroupId(proId); } /** * 获取未分配的用户列表 * @param proId * @return */ @Override public List getUserNonPermsByGroupId(String proId){ return super.getBaseMapper().getUserNonPermsByGroupId(proId); } /** * 获取未分配的用户 * @param proId * @return */ @Override public List getUserNonPermsByDeviceId(String proId){ return super.getBaseMapper().getUserNonPermsByDeviceId(proId); } @Override public List getUserPermsByDeviceId(String proId) { return super.getBaseMapper().getUserPermsByDeviceId(proId); } @Override public MdcUserProduction getByUserIdAndGroupId(String userId, String proId){ if(StrUtil.isNotEmpty(userId) || !StrUtil.isNotEmpty(proId)) return null; List list = super.lambdaQuery().eq(MdcUserProduction::getUserId, userId).eq(MdcUserProduction::getProId, proId).list(); if(list == null || list.isEmpty()) return null; return list.get(0); } }