DgArchivesModifyServiceImpl.java 4.05 KB
package com.pashanhoo.modify.service.impl;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.pashanhoo.archive.entity.ArchiveStatus;
import com.pashanhoo.archive.entity.DgArchivesDO;
import com.pashanhoo.archive.service.DgArchivesService;
import com.pashanhoo.modify.entity.DgArchivesModifyConverter;
import com.pashanhoo.modify.entity.DgArchivesModifyDO;
import com.pashanhoo.modify.entity.vo.*;
import com.pashanhoo.modify.mapper.DgArchivesModifyMapper;
import com.pashanhoo.modify.service.DgArchivesModifyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>
 * 档案修改信息 服务实现类
 * </p>
 *
 * @author
 * @since 2021-11-05
 */
@Service
public class DgArchivesModifyServiceImpl extends ServiceImpl<DgArchivesModifyMapper, DgArchivesModifyDO> implements DgArchivesModifyService {

    @Autowired
    private DgArchivesModifyConverter dgarchivesmodifyConverter;

    @Autowired
    private DgArchivesModifyMapper dgarchivesmodifyMapper;

    @Autowired
    DgArchivesService archivesService;

    /**
     * 新增记录
     *
     * @param request
     * @return
     */
    @Override
    public boolean insertDgArchivesModify(AddDgArchivesModifyRequest request) {
        DgArchivesModifyDO dgarchivesmodifyDO = dgarchivesmodifyConverter.addRequest2DO(request);
        return this.save(dgarchivesmodifyDO);
    }

    /**
     * 根据主键查询记录详情
     *
     * @param id
     * @return
     */
    @Override
    public DgArchivesModifyDetailVO getDgArchivesModifyDetailById(String id) {
        DgArchivesModifyDO dgarchivesmodifyDO = this.getById(id);
        return dgarchivesmodifyConverter.do2DetailVO(dgarchivesmodifyDO);
    }

    /**
     * 修改记录状态为已归档和归档日期,一并修改档案记录的状态为在库
     *
     * @param request
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateDgArchivesModify(UpdateDgArchivesModifyRequest request) {
        DgArchivesModifyDO dgarchivesmodifyDO = dgarchivesmodifyConverter.updateRequest2DO(request);
        UpdateWrapper<DgArchivesModifyDO> modifyWrapper = new UpdateWrapper<>();
        modifyWrapper.lambda().set(DgArchivesModifyDO::getState, "2").set(DgArchivesModifyDO::getGdsj, DateTime.now());
        this.update(dgarchivesmodifyDO, modifyWrapper);
        //修改档案记录状态
        UpdateWrapper<DgArchivesDO> archivesWrapper = new UpdateWrapper<>();
        archivesWrapper.lambda().set(DgArchivesDO::getDazt, ArchiveStatus.STORED.getCode()).eq(DgArchivesDO::getBsmArchives, request.getBsmArchives());
        return archivesService.update(archivesWrapper);
    }

    /**
     * 根据条件进行列表查询
     *
     * @param request
     * @return
     */
    @Override
    public IPage<DgArchivesModifyListVO> searchDgArchivesModifyList(DgArchivesModifySearchRequest request) {
        IPage<DgArchivesModifyListVO> pageParam = new Page<>(request.getCurrentPage(), request.getPageSize());
        IPage<DgArchivesModifyListVO> list = dgarchivesmodifyMapper.searchDgArchivesModifyList(pageParam, request);
        return list;
    }

    /**
     * 一个档案对应的修改列表查询
     *
     * @param bsmArchive
     * @return
     */
    @Override
    public List<DgArchivesModifyDetailVO> getArchiveWithModify(String bsmArchive) {
        QueryWrapper<DgArchivesModifyDO> modifyWrapper = new QueryWrapper<>();
        modifyWrapper.lambda().eq(DgArchivesModifyDO::getBsmArchives, bsmArchive);
        List<DgArchivesModifyDO> modifyDOS = this.list(modifyWrapper);
        return dgarchivesmodifyConverter.doList2DetailVOList(modifyDOS);
    }
}