package com.gkhy.exam.system.service.impl;
|
|
import cn.hutool.core.util.ObjectUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
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.exception.ApiException;
|
import com.gkhy.exam.common.utils.PageUtils;
|
import com.gkhy.exam.common.utils.SecurityUtils;
|
import com.gkhy.exam.system.domain.InternalAuditCheck;
|
import com.gkhy.exam.system.domain.InternalAuditCheckCatalogue;
|
import com.gkhy.exam.system.domain.InternalAuditCheckContent;
|
import com.gkhy.exam.system.domain.InternalAuditCheckPerson;
|
import com.gkhy.exam.system.domain.vo.InternalAuditCheckVo;
|
import com.gkhy.exam.system.mapper.*;
|
import com.gkhy.exam.system.service.InternalAuditCheckService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.time.LocalDateTime;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 内审检查 服务实现类
|
* </p>
|
*
|
* @author hh
|
* @since 2025-07-10 15:11:50
|
*/
|
@Service
|
public class InternalAuditCheckServiceImpl extends ServiceImpl<InternalAuditCheckMapper, InternalAuditCheck> implements InternalAuditCheckService {
|
|
@Autowired
|
private InternalAuditCheckMapper internalAuditCheckMapper;
|
|
@Autowired
|
private InternalAuditCheckCatalogueMapper checkCatalogueMapper;
|
|
@Autowired
|
private InternalAuditCheckContentMapper checkContentMapper;
|
|
@Autowired
|
private SysUserMapper sysUserMapper;
|
@Autowired
|
private SysDeptMapper sysDeptMapper;
|
@Override
|
public CommonPage selectInternalAuditCheckList(Integer companyId) {
|
PageUtils.startPage();
|
List<InternalAuditCheck> internalAuditChecks = internalAuditCheckMapper.selectInternalAuditCheckList(companyId);
|
if (!CollectionUtils.isEmpty(internalAuditChecks)) {
|
batchLoadCheckDetails(internalAuditChecks);
|
}
|
return CommonPage.restPage(internalAuditChecks);
|
}
|
|
private void batchLoadCheckDetails(List<InternalAuditCheck> checks) {
|
//收集所有检查ID
|
List<Integer> checkIds = checks.stream()
|
.map(InternalAuditCheck::getId)
|
.collect(Collectors.toList());
|
|
//批量查询所有目录
|
List<InternalAuditCheckCatalogue> allCatalogues = checkCatalogueMapper.selectByCheckIds(checkIds);
|
|
if (CollectionUtils.isEmpty(allCatalogues)) {
|
return;
|
}
|
|
//收集所有目录ID
|
List<Integer> catalogueIds = allCatalogues.stream()
|
.map(InternalAuditCheckCatalogue::getId)
|
.collect(Collectors.toList());
|
|
//按检查ID分组目录
|
Map<Integer, List<InternalAuditCheckCatalogue>> catalogueMap = allCatalogues.stream()
|
.collect(Collectors.groupingBy(InternalAuditCheckCatalogue::getCheckId));
|
|
//组装数据
|
for (InternalAuditCheck check : checks) {
|
List<InternalAuditCheckCatalogue> catalogues = catalogueMap.get(check.getId());
|
if (!CollectionUtils.isEmpty(catalogues)) {
|
check.setCheckCatalogues(catalogues);
|
}
|
}
|
}
|
|
@Override
|
@Transactional
|
public CommonResult insertInternalAuditCheck(InternalAuditCheck internalAuditCheck) {
|
|
Map<String, Object> stringObjectHashMap = new HashMap<>();
|
stringObjectHashMap.put("dept_id",internalAuditCheck.getDeptId());
|
stringObjectHashMap.put("year",internalAuditCheck.getYear());
|
stringObjectHashMap.put("company_id",internalAuditCheck.getCompanyId());
|
stringObjectHashMap.put("del_flag",0);
|
List<InternalAuditCheck> internalAuditChecks = internalAuditCheckMapper.selectByMap(stringObjectHashMap);
|
if (!CollectionUtils.isEmpty(internalAuditChecks)){
|
return CommonResult.failed("当前部门存在,请勿重复添加");
|
}
|
|
internalAuditCheck.setCreateBy(SecurityUtils.getUsername());
|
internalAuditCheck.setCreateTime(LocalDateTime.now());
|
int insert = internalAuditCheckMapper.insert(internalAuditCheck);
|
if (insert <= 0) {
|
return CommonResult.failed("新增内审检查失败");
|
}
|
//处理目录和内容的插入
|
List<InternalAuditCheckCatalogue> checkCatalogues = internalAuditCheck.getCheckCatalogues();
|
if (CollectionUtils.isEmpty(checkCatalogues)) {
|
return CommonResult.success();
|
}
|
//批量处理目录和内容
|
for (InternalAuditCheckCatalogue catalogue : checkCatalogues) {
|
catalogue.setCheckId(internalAuditCheck.getId());
|
}
|
|
// 批量插入目录
|
int catalogueInsertCount = checkCatalogueMapper.insertBatch(checkCatalogues);
|
|
if (catalogueInsertCount != checkCatalogues.size()) {
|
throw new RuntimeException("插入目录记录数量不匹配");
|
}
|
return CommonResult.success();
|
|
}
|
|
@Override
|
public CommonResult updateInternalAuditCheck(InternalAuditCheck internalAuditCheck) {
|
internalAuditCheck.setUpdateBy(SecurityUtils.getUsername());
|
internalAuditCheck.setUpdateTime(LocalDateTime.now());
|
int update = internalAuditCheckMapper.updateById(internalAuditCheck);
|
if (update>0){
|
List<InternalAuditCheckCatalogue> checkCatalogues = internalAuditCheck.getCheckCatalogues();
|
if (CollectionUtils.isEmpty(checkCatalogues)) {
|
return CommonResult.success();
|
}
|
for (InternalAuditCheckCatalogue catalogue : checkCatalogues) {
|
catalogue.setCheckId(internalAuditCheck.getId());
|
}
|
|
// 批量插入目录
|
checkCatalogueMapper.updateCheckCatalogues(checkCatalogues);
|
|
return CommonResult.success();
|
}
|
return CommonResult.failed();
|
}
|
|
@Override
|
@Transactional
|
public CommonResult deletedInternalAuditCheck(Integer id) {
|
InternalAuditCheck internalAuditCheck = new InternalAuditCheck();
|
internalAuditCheck.setId(id);
|
internalAuditCheck.setUpdateBy(SecurityUtils.getUsername());
|
internalAuditCheck.setUpdateTime(LocalDateTime.now());
|
internalAuditCheck.setDelFlag(2);
|
int update = internalAuditCheckMapper.updateById(internalAuditCheck);
|
return CommonResult.success();
|
}
|
|
@Override
|
public CommonResult updateByYearAndDeptId(InternalAuditCheck internalAuditCheck) {
|
|
internalAuditCheck.setUpdateBy(SecurityUtils.getUsername());
|
internalAuditCheck.setUpdateTime(LocalDateTime.now());
|
Integer update = internalAuditCheckMapper.updateByYearAndDeptId(internalAuditCheck);
|
if (update>0){
|
checkCatalogueMapper.updatebyCheckId(internalAuditCheck.getId());
|
List<InternalAuditCheckCatalogue> checkCatalogues = internalAuditCheck.getCheckCatalogues();
|
for (InternalAuditCheckCatalogue catalogue : checkCatalogues) {
|
catalogue.setCheckId(internalAuditCheck.getId());
|
}
|
|
// 批量插入目录
|
int catalogueInsertCount = checkCatalogueMapper.saveBatch(checkCatalogues);
|
|
if (catalogueInsertCount != checkCatalogues.size()) {
|
throw new RuntimeException("插入目录记录数量不匹配");
|
}
|
}
|
return CommonResult.success();
|
}
|
|
@Override
|
public List<InternalAuditCheck> selectByMap(Map<String, Object> stringObjectHashMap) {
|
return internalAuditCheckMapper.selectByMap(stringObjectHashMap);
|
}
|
|
// @Override
|
// public CommonResult internalAuditCheckInfo(Integer id) {
|
// InternalAuditCheck internalAuditCheck = internalAuditCheckMapper.selectById(id);
|
//
|
// InternalAuditCheckVo internalAuditCheckVo = new InternalAuditCheckVo();
|
// BeanUtils.copyProperties(internalAuditCheck,internalAuditCheckVo);
|
// internalAuditCheckVo.setDeptName(sysDeptMapper.selectDeptById(internalAuditCheck.getDeptId()).getDeptName());
|
// internalAuditCheckVo.setAuditName(sysUserMapper.selectById(internalAuditCheck.getAuditId()).getName());
|
// LambdaQueryWrapper<InternalAuditCheckPerson> queryWrapper = new LambdaQueryWrapper<>();
|
// queryWrapper.eq(InternalAuditCheckPerson::getAuditId, id);
|
// queryWrapper.eq(InternalAuditCheckPerson::getDelFlag, 0);
|
// List<InternalAuditCheckPerson> internalAuditCheckPeople = internalAuditCheckPersonMapper.selectList(queryWrapper);
|
// internalAuditCheckVo.setInternalAuditCheckPeople(internalAuditCheckPeople);
|
//
|
// return CommonResult.success(internalAuditCheckVo);
|
// }
|
}
|