fei
2 天以前 e899d2709f21b322232fb64778fef296233be3f0
archiveManager/src/main/java/com/ruoyi/service/impl/ArchiveRecordsServiceImpl.java
@@ -1,20 +1,27 @@
package com.ruoyi.service.impl;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.domain.ArchiveRecords;
import com.ruoyi.domain.Archiverecordstouser;
import com.ruoyi.domain.vo.AnalysisResult;
import com.ruoyi.domain.vo.ArchiveInfoVo;
import com.ruoyi.mapper.ArchiveRecordsMapper;
import com.ruoyi.mapper.ArchiverecordstouserMapper;
import com.ruoyi.service.IArchiveRecordsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
/**
 * 档案记录Service业务层处理
@@ -29,11 +36,12 @@
//    @Autowired
//    private ArchiveRecordsMapper archiveRecordsMapper;
    @Autowired
    private ArchiverecordstouserMapper archiverecordstouserMapper;
    private LambdaQueryWrapper<ArchiveRecords> buildCondition(ArchiveRecords archiveRecords){
    private LambdaQueryWrapper<ArchiveRecords> buildCondition(ArchiveRecords archiveRecords, Long userId){
        LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
        lqw.like(!StringUtils.isEmpty(archiveRecords.getProjectName()), ArchiveRecords::getProjectName, archiveRecords.getProjectName())
@@ -49,25 +57,60 @@
//                .eq(zfProperty.getHappenTime()!=null,ZfProperty::getHappenTime,zfProperty.getHappenTime())
//                .between(zfProperty.getHappenStartTime() != null && zfProperty.getHappenEndTime() != null, ZfProperty::getHappenTime, zfProperty.getHappenStartTime(), zfProperty.getHappenEndTime());
//        lqw.orderByDesc(ZfProperty::getCreateTime);
        if(userId==1)
            lqw.orderByDesc(ArchiveRecords::getCreateTime);
        System.out.println("ssssssssssssddd0000000000000000");
        return lqw;
    }
    @Override
    public Long getMaxId() {
        //return this.
        return baseMapper.findMaxId();
    }
    @Override
    public AjaxResult selectDataList(ArchiveRecords archiveRecords, Integer pageNum, Integer pageSize) {
        LambdaQueryWrapper<ArchiveRecords> lqw = buildCondition(archiveRecords);
        //拿到当前用户的id
        // 获取当前用户ID
        Long userid = SecurityUtils.getUserId();
        LambdaQueryWrapper<ArchiveRecords> lqw = buildCondition(archiveRecords, userid);
        System.out.println("-------------");
        System.out.println(pageNum);
        Page<ArchiveRecords> zfClanPage = new Page<>(pageNum, pageSize);
        Page<ArchiveRecords> pageResult = page(zfClanPage, lqw);
        Page<ArchiveRecords> page = new Page<>(pageNum, pageSize);
    // 使用自定义的分页查询方法,先连接再分页
    Page<ArchiveRecords> pageResult = this.baseMapper.selectJoinUserPage(page, userid, lqw);
            //selectJoinUserPage(page, lqw);
        List<ArchiveRecords> beanRecords = pageResult.getRecords();//得到查询出来的数据
      //  List<ArchiveRecords> beanRecords = list(lqw);
     //   log.info("从数据库中查到的为:{}", beanRecords);
    //    return markOwnData(familyId, fatherFaId, motherFaId, beanRecords);
        beanRecords.forEach(record ->{
            if(record.isArchiveRecordsId()!=null&&record.getUserId()==userid)
            {
                    record.setOwnData(true);
            }
            else
                record.setOwnData(false);
        });
        //不是管理员进行排序
       // if(userid != 1)
       //    Collections.sort(beanRecords, Comparator.comparing(ArchiveRecords::isOwnData));
        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
//        System.out.println(data.get("data"));
//        System.out.println(data.get("pageNum"));
@@ -105,7 +148,10 @@
    @Override
    public List<ArchiveRecords> selectArchiveRecordsList(ArchiveRecords archiveRecords)
    {
        LambdaQueryWrapper<ArchiveRecords> lambdaQueryWrapper = buildCondition(archiveRecords);
        //拿到当前用户的id
        // 获取当前用户ID
        Long userid = SecurityUtils.getUserId();
        LambdaQueryWrapper<ArchiveRecords> lambdaQueryWrapper = buildCondition(archiveRecords,userid);
        List<ArchiveRecords> beanRecords = list(lambdaQueryWrapper);
        return beanRecords;
@@ -120,6 +166,14 @@
    @Override
    public int insertArchiveRecords(ArchiveRecords archiveRecords)
    {
        LocalDateTime time = LocalDateTime.now();
        Date date = Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
        archiveRecords.setCreateTime(date);
        archiveRecords.setRecordStatus("未录入");
      //  archiveRecords
        boolean res = this.save(archiveRecords);
        if(res)
            return 1;
@@ -152,11 +206,13 @@
    @Override
    public int deleteArchiveRecordsByIds(Long[] ids)
    {
        if (this.removeByIds(Arrays.asList(ids))) {
            return 1;
        Long res = 0L;
        for(Long id: ids)
        {
           this.baseMapper.updateAllInfoById(id);
        }
        else
            return 0;
        return 1;
    }
    /**
@@ -170,4 +226,58 @@
    {
        return 0;
    }
    @Override
    public ArchiveInfoVo selectByRecordId(Long id) {
        return this.baseMapper.findByRecordId(id);
    }
    @Override
    public AjaxResult importExcel(MultipartFile file) {
        ExcelUtil<ArchiveRecords> util = new ExcelUtil<>(ArchiveRecords.class);
        List<ArchiveRecords> dataList = null;
        try {
            dataList = util.importExcel(file.getInputStream());
        } catch (Exception e) {
            throw new RuntimeException("没有按照规则导入数据");
        }
        assert dataList != null;
        for (ArchiveRecords archiveRecords : dataList) {
           // physcialService.mySave(physcial);
            this.mySave(archiveRecords);
        }
        return AjaxResult.success();
    }
    @Override
    public List<AnalysisResult> statisticAya() {
        return this.baseMapper.statisticAyasis();
    }
    public AjaxResult mySave(ArchiveRecords archiveRecords) {
        //检查是否有重复数据插入
        LambdaQueryWrapper<ArchiveRecords> lqw = new LambdaQueryWrapper<>();
        lqw.eq(!StringUtils.isEmpty(archiveRecords.getRecordId()), ArchiveRecords::getRecordId,archiveRecords.getRecordId());
        List<ArchiveRecords> list = list(lqw);
        if (list.size() > 0) {
          //  throw new RuntimeException("请勿新增重复数据");
            //如果有重复数据,则根据recordId进行数据修改
            this.baseMapper.update(archiveRecords, lqw);
            return AjaxResult.success();
        }
        else {
            if (save(archiveRecords)) {
                return AjaxResult.success();
            } else {
                return AjaxResult.error();
            }
        }
    }
}