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(); } }