DgLendServiceImpl.java 6.5 KB
package com.pashanhoo.lend.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.pashanhoo.archive.entity.vo.DgArchivesSearchRequest;
import com.pashanhoo.common.Result;
import com.pashanhoo.lend.entity.DgLendConverter;
import com.pashanhoo.lend.entity.DgLendDO;
import com.pashanhoo.lend.entity.vo.*;
import com.pashanhoo.lend.mapper.DgLendMapper;
import com.pashanhoo.lend.service.DgLendService;
import com.pashanhoo.lendcatalog.entity.DgLendCatalogConverter;
import com.pashanhoo.lendcatalog.entity.DgLendCatalogDO;
import com.pashanhoo.lendcatalog.entity.vo.AddDgLendCatalogRequest;
import com.pashanhoo.lendcatalog.entity.vo.UpdateDgLendCatalogRequest;
import com.pashanhoo.lendcatalog.service.DgLendCatalogService;
import com.pashanhoo.lendfile.entity.DgLendFileConverter;
import com.pashanhoo.lendfile.entity.DgLendFileDO;
import com.pashanhoo.lendfile.entity.vo.AddDgLendFileRequest;
import com.pashanhoo.lendfile.service.DgLendFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 档案借阅 服务实现类
 * </p>
 *
 * @author
 * @since 2021-11-05
 */
@Service
public class DgLendServiceImpl extends ServiceImpl<DgLendMapper, DgLendDO> implements DgLendService {

    @Autowired
    private DgLendConverter dglendConverter;
    @Autowired
    private DgLendCatalogConverter catalogConverter;
    @Autowired
    private DgLendMapper dglendMapper;
    @Autowired
    private DgLendCatalogService   catalogService;
    @Autowired
    private DgLendFileService  fileService;
    @Autowired
    private DgLendFileConverter fileConverter;
    /**
     * 根据条件进行列表查询
     * @param request
     * @return
     */
    @Override
    public Result searchDgLendList(DgLendSearchRequest request) {
        PageHelper.startPage(request.getCurrentPage(), request.getPageSize());
        List<DgLendDetailVO> jyListVOList = dglendMapper.getDanganJyDetail(request);
        PageInfo<DgLendDetailVO> pageInfo = new PageInfo<DgLendDetailVO>(jyListVOList);
        return Result.ok(pageInfo);
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result deleteDanganJyInfo(String lendBsm) {
        //查询销毁记录是否存在,存在则删除
        if(getDgLendDetailById(lendBsm)!=null){
            dglendMapper.deleteById(lendBsm);
        }
        //查询销毁目录记录是否存在,存在则删除
        List<String> jnmlList=new ArrayList<String>();
        List<DgLendCatalogDO> catalogDOList= (List<DgLendCatalogDO>) catalogService.getJyMlInfo(lendBsm).getResult();
        if(catalogDOList!=null){
            catalogService.deleteJyMlInfo(lendBsm);
            for (int i = 0; i <catalogDOList.size() ; i++) {
                jnmlList.add(catalogDOList.get(i).getBsmLendcatalog());
            }
        }
        //查询销毁目录文件记录是否存在,存在则删除
        List<DgLendCatalogDO> list= (List<DgLendCatalogDO>) catalogService.getJyFileInfoByjybsm(jnmlList).getResult();
        if(list!=null){
            catalogService.deleteDanganJyBatch(list);
        }
        //修改档案信息表状态
        dglendMapper.updateArchivesStatus(lendBsm,"4");
        return Result.ok();
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result danganGh(UpdateDgLendRequest ghRequest) {
        //新增借阅记录表归还信息数据
        DgLendDO lendDO=dglendConverter.updateRequest2DO(ghRequest);
        dglendMapper.updateById(lendDO);
        //修改档案信息表状态
        dglendMapper.updateArchivesStatus(ghRequest.getBsmLend(),"4");
        return Result.ok();
    }

    @Override
    public Result showArchivesForLend(ArchiveLendSearchRequest request) {
        List<ArchiveLendInfoRequestVO> list=dglendMapper.getArchiveLendInfo(request);
        return Result.ok(list);
    }

    /**
     * 新增记录
     * @param request
     * @return
     */
    @Override
    public boolean insertDgLend(AddDgLendRequest request) {
        DgLendDO dglendDO = dglendConverter.addRequest2DO(request);
        return this.save(dglendDO);
    }

    /**
     * 根据主键查询记录详情
     * @param id
     * @return
     */
    @Override
    public DgLendDetailVO getDgLendDetailById(String id) {
        DgLendDO dglendDO = this.getById(id);
        return dglendConverter.do2DetailVO(dglendDO);
    }

    /**
     * 修改单条记录
     * @param request
     * @return
     */
    @Override
    public boolean updateDgLend(UpdateDgLendRequest request) {
        DgLendDO dglendDO = dglendConverter.updateRequest2DO(request);
        return this.updateById(dglendDO);
    }

    @Override
    public Result addDestructionArchivesInfo(List<AddDgLendCatalogRequest> archivesList) {
        List<DgLendCatalogDO> lendCatalogDOS=catalogConverter.addCataLogListDO(archivesList);
        catalogService.saveBatch(lendCatalogDOS);
        return Result.ok();
    }

    @Override
    public Result queryArchivesInfo(String bsm_lend) {
        return Result.ok(dglendMapper.queryArchivesInfo(bsm_lend));
    }

    @Override
    public Result deleteArchivesInfo(String bsm_lendcatalog) {
        //删除目录信息
        catalogService.deleteJyMlInfoByDA(bsm_lendcatalog);
        //删除目录文件信息
        fileService.deleteJyFile(bsm_lendcatalog);
        return Result.ok();
    }

    @Override
    public Result updateStateByArchives(List<String> idList) {
        dglendMapper.updateArchivesStatusBatch(idList,"8");
        return Result.ok();
    }

    @Override
    public Result updateArchivesStateByLend(String bsm_destruction) {
        //修改档案信息表状态
        dglendMapper.updateArchivesStatus(bsm_destruction,"8");
        return Result.ok();
    }

    @Override
    public Result insertDanganJyFile(List<AddDgLendFileRequest> request) {
        List<DgLendFileDO> list=fileConverter.addLendFileList(request);
        fileService.saveBatch(list);
        //通过目录标识修改目录表记录
        UpdateDgLendCatalogRequest catalogRequest=new UpdateDgLendCatalogRequest();
        catalogRequest.setBsmLendcatalog(request.get(0).getBsmLendcatalog());
        catalogRequest.setJycllx(request.get(0).getJycllx());
        catalogService.updateDgLendCatalog(catalogRequest);
        return Result.ok();
    }


}