package com.ruoyi.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.domain.*; import com.ruoyi.mapper.ArchiveSignatureMapper; import com.ruoyi.mapper.ArchiverecordstouserMapper; import com.ruoyi.service.IArchiveSignatureService; import com.ruoyi.service.IArchiverecordstouserService; import com.ruoyi.util.ErrorcodeExceptionextends; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.*; @Service public class ArchiveSignatureServiceImpl extends ServiceImpl implements IArchiveSignatureService { private LambdaQueryWrapper buildCondition(ArchiveSignature archiveSignature){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.like(!StringUtils.isEmpty(archiveSignature.getSigaName()), ArchiveSignature::getSigaName, archiveSignature.getSigaName()); lqw.orderByDesc(ArchiveSignature::getCreateTime); System.out.println("ssssssssssssddd0000000000000000"); return lqw; } @Override public AjaxResult selectDataList(ArchiveSignature archiveSignature, Integer pageNum, Integer pageSize) { LambdaQueryWrapper lqw = buildCondition(archiveSignature); Page archiveSignaturePage = new Page<>(pageNum, pageSize); Page pageResult = page(archiveSignaturePage, lqw); List beanRecords = pageResult.getRecords();//得到查询出来的数据 // List beanRecords = list(lqw); // log.info("从数据库中查到的为:{}", beanRecords); // return markOwnData(familyId, fatherFaId, motherFaId, beanRecords); HashMap data = MapUtils.getResult(pageResult, beanRecords); return AjaxResult.success(data); } @Override public ArchiveSignature selectArchiveSignatureById(Long id) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(id!=null, ArchiveSignature::getId, id); List lists = this.list(lqw); if(!lists.isEmpty()) return lists.get(0); else return null; } @Override public AjaxResult importExcel(MultipartFile file) { ExcelUtil util = new ExcelUtil<>(ArchiveSignature.class); List dataList = null; try { dataList = util.importExcel(file.getInputStream()); } catch (Exception e) { throw new RuntimeException("没有按照规则导入数据"); } assert dataList != null; for (ArchiveSignature archiveSignature : dataList) { // physcialService.mySave(physcial); this.insertArchiveSignature(archiveSignature); } return AjaxResult.success(); } @Override public List selectArchiveSignatureList(ArchiveSignature archiveSignature) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper lambdaQueryWrapper = buildCondition(archiveSignature); List beanRecords = list(lambdaQueryWrapper); return beanRecords; } @Override public List selectArchiveSignatureByIds(Long[] ids) { // 创建查询条件 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); // 根据ids查询 lambdaQueryWrapper.in(ArchiveSignature::getId, Arrays.asList(ids)); // 如果不是管理员,需要考虑权限过滤(可根据实际权限需求调整) // if (userid != 1) { // // 这里可以添加权限相关的过滤条件 // } List beanRecords = list(lambdaQueryWrapper); return beanRecords; } @Override public int insertArchiveSignature(ArchiveSignature archiveSignature) { LocalDateTime time = LocalDateTime.now(); if(archiveSignature.getSigaName()==null||StringUtils.isEmpty(archiveSignature.getSigaName())) throw new RuntimeException("签名信息不能为空!"); Date date = Date.from(time.atZone(ZoneId.systemDefault()).toInstant()); archiveSignature.setCreateTime(date); // System.out.println(archiveRecords.getRecordId()); //根据档号查询,是否已经有档号,有的话,就不让插入 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(!StringUtils.isEmpty(archiveSignature.getSigaName()), ArchiveSignature::getSigaName, archiveSignature.getSigaName()); List lis = list(lambdaQueryWrapper); if(!lis.isEmpty()) { return 0; } // archiveRecords.setRecordStatus("未录入"); // archiveRecords boolean res = this.save(archiveSignature); //0表示失败,1表示成功 if(res) return 1; else return 0; } @Override public int updateArchiveSignature(ArchiveSignature archiveSignature) { boolean result = false; try { // 使用LambdaUpdateWrapper构造更新条件,确保null值也能更新到数据库 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(ArchiveSignature::getId, archiveSignature.getId()); // 明确设置需要更新的字段 updateWrapper.set(ArchiveSignature::getSigaName, archiveSignature.getSigaName()); updateWrapper.set(ArchiveSignature::getCreateTime, archiveSignature.getCreateTime()); // 执行更新操作 result = update(updateWrapper); } catch (Exception e) { System.out.println(e); throw new ErrorcodeExceptionextends(500, "不允许签名信息重复!"); } if(result) return 1; else return 0; } @Override public int deleteArchiveSignatureByIds(Long[] ids) { if (this.removeByIds(Arrays.asList(ids))) { return 1; } else return 0; } @Override public int deleteArchiveSignatureById(Long id) { return this.baseMapper.deleteById(id); } }