package com.gkhy.exam.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.exam.common.api.CommonPage; import com.gkhy.exam.common.api.CommonResult; import com.gkhy.exam.common.domain.entity.SysDept; import com.gkhy.exam.common.domain.model.LoginUserDetails; import com.gkhy.exam.common.exception.ApiException; import com.gkhy.exam.common.utils.PageUtils; import com.gkhy.exam.common.utils.SecurityUtils; import com.gkhy.exam.system.domain.*; import com.gkhy.exam.system.domain.req.QualityTargetReq; import com.gkhy.exam.system.domain.vo.QualityTargetVo; import com.gkhy.exam.system.mapper.QualityDecomposeMapper; import com.gkhy.exam.system.mapper.QualityMapper; import com.gkhy.exam.system.mapper.QualityTargetMapper; import com.gkhy.exam.system.mapper.SysDeptMapper; import com.gkhy.exam.system.service.QualityService; import com.gkhy.exam.system.service.SysCompanyService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.sql.Wrapper; import java.time.LocalDateTime; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @Service public class QualityServiceImpl extends ServiceImpl implements QualityService { @Autowired private QualityMapper qualityMapper; @Autowired private QualityTargetMapper qualityTargetMapper; @Autowired private QualityDecomposeMapper qualityDecomposeMapper; @Autowired private SysCompanyService sysCompanyService; @Autowired private SysDeptMapper sysDeptMapper; @Override public CommonPage selectQualityList(Quality quality) { boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId()); if (!admin){ if (quality.getCompanyId()==null){ throw new RuntimeException("非管理员操作,查询条件不可为空"); } } PageUtils.startPage(); List qualityTargetVos = qualityMapper.selectQualityTarget(quality); for (QualityTargetVo qualityTargetVo : qualityTargetVos) { List qualityTargets = qualityTargetMapper.selectByQualityId(qualityTargetVo.getId()); qualityTargetVo.setQualityTargets(qualityTargets); } return CommonPage.restPage(qualityTargetVos); } @Override public CommonResult insertQuality(QualityTargetReq qualityTargetReq) { LoginUserDetails loginUser = SecurityUtils.getLoginUser(); List qualityTargets = qualityTargetReq.getQualityTargets(); List qualities = qualityMapper.selectQualityByType(qualityTargetReq); if (qualities.size()>0){ throw new ApiException("企业下已有相关数据,请删除后重试,或进行修改"); } Quality quality = new Quality(); BeanUtils.copyProperties(qualityTargetReq,quality); quality.setCreateBy(loginUser.getUsername()); quality.setCreateTime(LocalDateTime.now()); //获取对应企业 SysCompany sysCompany = sysCompanyService.selectCompanyById(Long.valueOf(qualityTargetReq.getCompanyId())); quality.setCompanyName(sysCompany.getName()); if (qualityTargetReq.getType()==2){ SysDept sysDept = sysDeptMapper.selectDeptById(Long.valueOf(qualityTargetReq.getDepartId())); quality.setDepartName(sysDept.getDeptName()); } //质量目标新增 int insert = qualityMapper.insertQuality(quality); for (QualityTarget qualityTarget : qualityTargets) { qualityTarget.setQualityId(quality.getId()); qualityTarget.setCompanyId(qualityTargetReq.getCompanyId()); qualityTarget.setCreateBy(loginUser.getUsername()); qualityTarget.setCreateTime(LocalDateTime.now()); } //新增对应质量目标 int i = qualityTargetMapper.insertQualityTargets(qualityTargets); return CommonResult.success(); } @Override public CommonResult updateQuality(QualityTargetReq qualityTargetReq) { List qualities = qualityMapper.selectQualityByType(qualityTargetReq); if (qualities.size()>0){ throw new ApiException("企业下已有相关数据,请删除后重试,或进行修改"); } LoginUserDetails loginUser = SecurityUtils.getLoginUser(); List qualityTargets = qualityTargetReq.getQualityTargets(); List collect = qualityTargets.stream().map(QualityTarget::getQualityId).collect(Collectors.toList()); Quality quality = new Quality(); BeanUtils.copyProperties(qualityTargetReq,quality); //获取对应企业 SysCompany sysCompany = sysCompanyService.selectCompanyById(Long.valueOf(qualityTargetReq.getCompanyId())); quality.setCompanyName(sysCompany.getName()); quality.setUpdateBy(loginUser.getUsername()); quality.setUpdateTime(LocalDateTime.now()); int insert = qualityMapper.updateQualityById(quality); qualityTargetMapper.deleteByQualityIds(collect); for (QualityTarget qualityTarget : qualityTargets) { qualityTarget.setQualityId(quality.getId()); qualityTarget.setCompanyId(qualityTargetReq.getCompanyId()); qualityTarget.setUpdateBy(loginUser.getUsername()); qualityTarget.setUpdateTime(LocalDateTime.now()); } int i = qualityTargetMapper.insertQualityTargets(qualityTargets); return CommonResult.success(); } @Override public CommonResult deletedQuality(Integer qualityId) { LoginUserDetails loginUser = SecurityUtils.getLoginUser(); Quality quality = new Quality(); quality.setId(qualityId); quality.setDelFlag(2); quality.setUpdateBy(loginUser.getUsername()); quality.setUpdateTime(LocalDateTime.now()); int deleted = qualityMapper.updateById(quality); if (deleted>0){ return CommonResult.success(); } return CommonResult.failed(); } @Override public CommonResult selectQualityListAll(Quality quality) { List qualityTargetVos = qualityMapper.selectQualityTarget(quality); for (QualityTargetVo qualityTargetVo : qualityTargetVos) { List qualityTargets = qualityTargetMapper.selectByQualityId(qualityTargetVo.getId()); qualityTargetVo.setQualityTargets(qualityTargets); } return CommonResult.success(qualityTargetVos); } }