多单位版国产化地质资料管理系统
zhai
2025-12-13 fc0cc9fff4b4cbdc7cbb52b4a96c947530fcbba0
src/main/java/com/zbooksoft/gdmis/service/impl/BorrowDetailServiceImpl.java
@@ -1,20 +1,295 @@
package com.zbooksoft.gdmis.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruili.wcp.data.entity.management.User;
import com.zbooksoft.gdmis.dao.BorrowDetailMapper;
import com.zbooksoft.gdmis.data.entity.BorrowDetail;
import com.zbooksoft.gdmis.service.BorrowDetailService;
import com.zbooksoft.gdmis.data.entity.CatAjjxx;
import com.zbooksoft.gdmis.data.entity.CatCgwjxx;
import com.zbooksoft.gdmis.data.entity.CatYswjxx;
import com.zbooksoft.gdmis.data.vo.ParentBorrowInfo;
import com.zbooksoft.gdmis.service.*;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author cb
 * @author zhai
 * @since 2020-01-03
 */
@Service
public class BorrowDetailServiceImpl extends ServiceImpl<BorrowDetailMapper, BorrowDetail> implements BorrowDetailService {
    @Autowired
    CatCgwjxxService catCgwjxxService;
    @Autowired
    CatYswjxxService catYswjxxService;
    @Autowired
    UtilizationUserService utilizationUserService;
    @Autowired
    BorrowDetailService borrowDetailService;
    @Autowired
    CatAjjxxService catAjjxxService;
    @Override
    public List<ParentBorrowInfo> selectDistinctParentBorrowInfo(Long createUserId) {
        return this.baseMapper.selectDistinctParentBorrowInfo(createUserId);
    }
    /**
     * 获取具体申请单案卷
     */
    @Override
    public List<ParentBorrowInfo> selectDistinctParentBorrowInfoByFormId(Long formId) {
        return this.baseMapper.selectDistinctParentBorrowInfoByFormId(formId);
    }
    /**
     * 添加成果文件级信息
     *
     * @param catAjjxx
     */
    @Override
    public Integer setCgwjxx(CatAjjxx catAjjxx) {
        int count = 0;
        Subject currentUser = SecurityUtils.getSubject();
        Session session = currentUser.getSession();
        User user = (User) session.getAttribute("user");
        String deptName = user.getDeptName();
        Integer userSecurityCode = 3;
        QueryWrapper<CatCgwjxx> catCgwjxxQueryWrapper = new QueryWrapper<>();
        catCgwjxxQueryWrapper.eq("aj_id", catAjjxx.getId());
        catCgwjxxQueryWrapper.eq("yszt", 3);
        List<CatCgwjxx> catCgwjxxList = catCgwjxxService.list(catCgwjxxQueryWrapper);
        //如果没有文件级,只添加案卷级数据
        if (catCgwjxxList.size() == 0) {
            BorrowDetail borrowDetail = new BorrowDetail();
            borrowDetail.setFileId(catAjjxx.getId());
            borrowDetail.setFileTitle(catAjjxx.getZlmc());
            borrowDetail.setArchivalCode(catAjjxx.getSgdh());
            borrowDetail.setCreateTime(new Date());
            borrowDetail.setCreateUserId(user.getUserId());
            borrowDetail.setCreateUserName(user.getTrueName());
            borrowDetail.setFormId(0L);
            borrowDetail.setBorrowType(0);
            borrowDetail.setPaper(0);
            borrowDetail.setElectronic(0);
            borrowDetail.setOriginal(0);
            borrowDetailService.saveOrUpdate(borrowDetail);
        }
        for (CatCgwjxx catCgwjxx : catCgwjxxList) {
            if (catCgwjxx.getSecurityCode() == null || (catCgwjxx.getSecurityCode() != null && catCgwjxx.getSecurityCode() <= userSecurityCode)) {
                BorrowDetail borrowDetail = new BorrowDetail();
                borrowDetail.setFileId(catAjjxx.getId());
                borrowDetail.setItemId(catCgwjxx.getId());
                borrowDetail.setFileTitle(catAjjxx.getZlmc());
                borrowDetail.setItemTitle(catCgwjxx.getWjtm());
                borrowDetail.setItemNumber(catCgwjxx.getWjm());
                borrowDetail.setArchivalCode(catAjjxx.getSgdh());
                borrowDetail.setSecurityClassification(catCgwjxx.getWjmj());
                borrowDetail.setSecurityPageNum(catCgwjxx.getSmym());
                borrowDetail.setCreateTime(new Date());
                borrowDetail.setCreateUserId(user.getUserId());
                borrowDetail.setCreateUserName(user.getTrueName());
                borrowDetail.setFormId(0L);
                borrowDetail.setBorrowType(0);
                borrowDetail.setPaper(0);
                borrowDetail.setElectronic(0);
                borrowDetail.setOriginal(0);
                borrowDetail.setPaperBorrow(catCgwjxx.getJyzt());
                borrowDetailService.saveOrUpdate(borrowDetail);
                count++;
            }
        }
        return count;
    }
    /**
     * 添加成果文件级信息
     *
     * @param catAjjxx
     */
    @Override
    public Integer setCgwjxxByIds(List<Long> idList) {
        int count = 0;
        Subject currentUser = SecurityUtils.getSubject();
        Session session = currentUser.getSession();
        User user = (User) session.getAttribute("user");
        Integer userSecurityCode = 3;
        for (Long id : idList) {
            CatCgwjxx catCgwjxx = catCgwjxxService.getById(id);
            if (catCgwjxx.getSecurityCode() == null || (catCgwjxx.getSecurityCode() != null && catCgwjxx.getSecurityCode() <= userSecurityCode)) {
                BorrowDetail borrowDetail = new BorrowDetail();
                CatAjjxx catAjjxx = catAjjxxService.getById(catCgwjxx.getAjId());
                if (catAjjxx != null) {
                    borrowDetail.setFileId(catAjjxx.getId());
                    borrowDetail.setFileTitle(catAjjxx.getZlmc());
                    borrowDetail.setArchivalCode(catAjjxx.getSgdh());
                } else {
                    borrowDetail.setFileId(0L);
                    borrowDetail.setFileTitle("无");
                    borrowDetail.setArchivalCode("无");
                }
                borrowDetail.setItemId(catCgwjxx.getId());
                borrowDetail.setItemTitle(catCgwjxx.getWjtm());
                borrowDetail.setItemNumber(catCgwjxx.getWjm());
                borrowDetail.setItemCode(catCgwjxx.getDh());
                borrowDetail.setSecurityClassification(catCgwjxx.getWjmj());
                borrowDetail.setSecurityPageNum(catCgwjxx.getSmym());
                borrowDetail.setCreateTime(new Date());
                borrowDetail.setCreateUserId(user.getUserId());
                borrowDetail.setCreateUserName(user.getTrueName());
                borrowDetail.setFormId(0L);
                borrowDetail.setBorrowType(0);
                borrowDetail.setPaper(0);
                borrowDetail.setElectronic(0);
                borrowDetail.setOriginal(0);
                borrowDetail.setPaperBorrow(catCgwjxx.getJyzt());
                borrowDetailService.saveOrUpdate(borrowDetail);
            }
        }
        return count;
    }
    /**
     * 添加原始文件级信息
     *
     * @param catAjjxx
     */
    @Override
    public Integer setYswjxx(CatAjjxx catAjjxx) {
        int count = 0;
        Subject currentUser = SecurityUtils.getSubject();
        Session session = currentUser.getSession();
        User user = (User) session.getAttribute("user");
        Integer userSecurityCode = 3;
        QueryWrapper<CatYswjxx> catYswjxxQueryWrapper = new QueryWrapper<>();
        catYswjxxQueryWrapper.eq("aj_id", catAjjxx.getId());
        catYswjxxQueryWrapper.eq("yszt", 3);
        List<CatYswjxx> catYswjxxList = catYswjxxService.list(catYswjxxQueryWrapper);
        //如果没有文件级,只添加案卷级数据
        if (catYswjxxList.size() == 0) {
            BorrowDetail borrowDetail = new BorrowDetail();
            borrowDetail.setFileId(catAjjxx.getId());
            borrowDetail.setFileTitle(catAjjxx.getZlmc());
            borrowDetail.setArchivalCode(catAjjxx.getSgdh());
            borrowDetail.setCreateTime(new Date());
            borrowDetail.setCreateUserId(user.getUserId());
            borrowDetail.setCreateUserName(user.getTrueName());
            borrowDetail.setFormId(0L);
            borrowDetail.setBorrowType(1);
            borrowDetail.setPaper(0);
            borrowDetail.setElectronic(0);
            borrowDetail.setOriginal(0);
            borrowDetailService.saveOrUpdate(borrowDetail);
        }
        for (CatYswjxx catYswjxx : catYswjxxList) {
            if (catYswjxx.getSecurityCode() == null || (catYswjxx.getSecurityCode() != null && catYswjxx.getSecurityCode() <= userSecurityCode)) {
                BorrowDetail borrowDetail = new BorrowDetail();
                borrowDetail.setFileId(catAjjxx.getId());
                borrowDetail.setItemId(catYswjxx.getId());
                borrowDetail.setFileTitle(catAjjxx.getZlmc());
                borrowDetail.setItemTitle(catYswjxx.getWjtm());
                borrowDetail.setItemNumber(catYswjxx.getWjm());
                borrowDetail.setArchivalCode(catAjjxx.getSgdh());
                borrowDetail.setSecurityClassification(catYswjxx.getWjmj());
                borrowDetail.setSecurityPageNum(catYswjxx.getSmym());
                borrowDetail.setCreateTime(new Date());
                borrowDetail.setCreateUserId(user.getUserId());
                borrowDetail.setCreateUserName(user.getTrueName());
                borrowDetail.setFormId(0L);
                borrowDetail.setBorrowType(1);
                borrowDetail.setPaper(0);
                borrowDetail.setElectronic(0);
                borrowDetail.setOriginal(0);
                borrowDetail.setPaperBorrow(catYswjxx.getJyzt());
                borrowDetailService.saveOrUpdate(borrowDetail);
                count++;
            }
        }
        return count;
    }
    /**
     * 添加原始文件级信息
     *
     * @param catAjjxx
     */
    @Override
    public Integer setYswjxxByIds(List<Long> idList) {
        int count = 0;
        Subject currentUser = SecurityUtils.getSubject();
        Session session = currentUser.getSession();
        User user = (User) session.getAttribute("user");
        Integer userSecurityCode = 3;
        for (Long id : idList) {
            CatYswjxx catYswjxx = catYswjxxService.getById(id);
            if (catYswjxx != null && (catYswjxx.getSecurityCode() == null || (catYswjxx.getSecurityCode() != null && catYswjxx.getSecurityCode() <= userSecurityCode))) {
                BorrowDetail borrowDetail = new BorrowDetail();
                CatAjjxx catAjjxx = catAjjxxService.getById(catYswjxx.getAjId());
                if (catAjjxx != null) {
                    borrowDetail.setFileId(catAjjxx.getId());
                    borrowDetail.setFileTitle(catAjjxx.getZlmc());
                    borrowDetail.setArchivalCode(catAjjxx.getDh());
                } else {
                    borrowDetail.setFileId(0L);
                    borrowDetail.setFileTitle("无");
                    borrowDetail.setArchivalCode("无");
                }
                borrowDetail.setItemId(catYswjxx.getId());
                borrowDetail.setItemCode(catYswjxx.getDh());
                borrowDetail.setItemTitle(catYswjxx.getWjtm());
                borrowDetail.setItemNumber(catYswjxx.getWjm());
                borrowDetail.setSecurityClassification(catYswjxx.getWjmj());
                borrowDetail.setSecurityPageNum(catYswjxx.getSmym());
                borrowDetail.setCreateTime(new Date());
                borrowDetail.setCreateUserId(user.getUserId());
                borrowDetail.setCreateUserName(user.getTrueName());
                borrowDetail.setFormId(0L);
                borrowDetail.setBorrowType(1);
                borrowDetail.setPaper(0);
                borrowDetail.setElectronic(0);
                borrowDetail.setOriginal(0);
                borrowDetail.setPaperBorrow(catYswjxx.getJyzt());
                borrowDetailService.saveOrUpdate(borrowDetail);
                count++;
            }
        }
        return count;
    }
    @Override
    public Integer getBorrowCount(Long keyId, Long userId) {
        QueryWrapper<BorrowDetail> borrowDetailQueryWrapper = new QueryWrapper<>();
        borrowDetailQueryWrapper.eq("item_id", keyId);
        borrowDetailQueryWrapper.eq("create_user_id", userId);
        borrowDetailQueryWrapper.eq("agree", 1);
        Integer count = borrowDetailService.count(borrowDetailQueryWrapper);
        return count;
    }
}