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.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;
/**
*
* 服务实现类
*
*
* @author zhai
* @since 2020-01-03
*/
@Service
public class BorrowDetailServiceImpl extends ServiceImpl implements BorrowDetailService {
@Autowired
CatCgwjxxService catCgwjxxService;
@Autowired
CatYswjxxService catYswjxxService;
@Autowired
UtilizationUserService utilizationUserService;
@Autowired
BorrowDetailService borrowDetailService;
@Autowired
CatAjjxxService catAjjxxService;
@Override
public List selectDistinctParentBorrowInfo(Long createUserId) {
return this.baseMapper.selectDistinctParentBorrowInfo(createUserId);
}
/**
* 获取具体申请单案卷
*/
@Override
public List 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 catCgwjxxQueryWrapper = new QueryWrapper<>();
catCgwjxxQueryWrapper.eq("aj_id", catAjjxx.getId());
catCgwjxxQueryWrapper.eq("yszt", 3);
List 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 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 catYswjxxQueryWrapper = new QueryWrapper<>();
catYswjxxQueryWrapper.eq("aj_id", catAjjxx.getId());
catYswjxxQueryWrapper.eq("yszt", 3);
List 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 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 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;
}
}