package com.gkhy.exam.system.service.impl; 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.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.Quality; import com.gkhy.exam.system.domain.QualityDecompose; import com.gkhy.exam.system.domain.QualityTarget; import com.gkhy.exam.system.domain.req.DecomposeTargetReq; import com.gkhy.exam.system.domain.req.QualityReq; import com.gkhy.exam.system.domain.vo.QualityDecomposeVo; 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.service.QualityDecomposeService; import com.gkhy.exam.system.service.QualityService; import com.gkhy.exam.system.service.QualityTargetService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.List; @Service public class QualityDecomposeServiceImpl extends ServiceImpl implements QualityDecomposeService { @Autowired private QualityDecomposeMapper qualityDecomposeMapper; @Autowired private QualityTargetMapper qualityTargetMapper; @Autowired private QualityMapper qualityMapper; @Override public CommonPage selectQualityDecomposeList(QualityReq qualityReq) { if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ if (qualityReq.getCompanyId()==null){ throw new ApiException("非管理员,查询条件不可为空"); } } PageUtils.startPage(); List qualityDecomposeVos = qualityDecomposeMapper.selectDecomposeList(qualityReq); for (QualityDecomposeVo qualityDecomposeVo : qualityDecomposeVos) { List qualityTargets = qualityTargetMapper.selectByQualityId(qualityDecomposeVo.getQualityId()); qualityDecomposeVo.setQualityTargets(qualityTargets); } return CommonPage.restPage(qualityDecomposeVos); } @Override public CommonResult insertQualityDecompose(DecomposeTargetReq decomposeTargetReq) { LoginUserDetails loginUser = SecurityUtils.getLoginUser(); decomposeTargetReq.setCreateBy(loginUser.getUsername()); decomposeTargetReq.setCreateTime(LocalDateTime.now()); List qualityDecomposes = qualityDecomposeMapper.selectByCompanyId(decomposeTargetReq.getQualityId()); if (qualityDecomposes.size()>0){ throw new ApiException("当前企业已有数据,请删除后重试"); } int i = qualityDecomposeMapper.insertDecompose(decomposeTargetReq); List qualityTargets = decomposeTargetReq.getQualityTargets(); for (QualityTarget qualityTarget : qualityTargets) { qualityTarget.setCreateTime(LocalDateTime.now()); qualityTarget.setCreateBy(loginUser.getUsername()); } qualityTargetMapper.updateQualityTargetById(qualityTargets); return CommonResult.success(); } @Override public CommonResult updateQualityDecompose(DecomposeTargetReq decomposeTargetReq) { List qualityDecomposes = qualityDecomposeMapper.selectByCompanyId(decomposeTargetReq.getQualityId()); if (qualityDecomposes.size()>0){ throw new ApiException("当前企业已有数据,请删除后重试"); } LoginUserDetails loginUser = SecurityUtils.getLoginUser(); decomposeTargetReq.setUpdateBy(loginUser.getUsername()); decomposeTargetReq.setCreateTime(LocalDateTime.now()); QualityDecompose qualityDecompose = new QualityDecompose(); BeanUtils.copyProperties(decomposeTargetReq,qualityDecompose); qualityDecomposeMapper.updateById(qualityDecompose); List qualityTargets = decomposeTargetReq.getQualityTargets(); qualityTargetMapper.updateQualityTargetById(qualityTargets); return CommonResult.success(); } @Override public CommonResult deletedQualityDecompose(Integer decomposeId) { LoginUserDetails loginUser = SecurityUtils.getLoginUser(); QualityDecompose qualityDecompose = new QualityDecompose(); qualityDecompose.setId(decomposeId); qualityDecompose.setDelFlag(2); qualityDecompose.setUpdateBy(loginUser.getUsername()); qualityDecompose.setUpdateTime(LocalDateTime.now()); qualityDecomposeMapper.updateById(qualityDecompose); return CommonResult.success(); } }