package org.springblade.modules.accreditation.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springblade.common.utils.QRCodeUtil; import org.springblade.modules.FTP.FtpUtil; import org.springblade.modules.accreditation.excel.ExportSecurityBookPaperExcel; import org.springblade.modules.accreditation.excel.ExportSecurityPaperExcel; import org.springblade.modules.accreditation.entity.AccreditationRecords; import org.springblade.modules.accreditation.mapper.AccreditationRecordsMapper; import org.springblade.modules.accreditation.service.AccreditationRecordsService; import org.springblade.modules.accreditation.vo.AccreditationRecordsVo; import org.springblade.modules.system.service.MyAsyncService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; /** * 制证记录服务实现类 * * @author zhongrj */ @Service @AllArgsConstructor public class AccreditationRecordsServiceImpl extends ServiceImpl implements AccreditationRecordsService { @Autowired private MyAsyncService myAsyncService; /** * 自定义分页 * * @param page * @param accreditationRecords * @return */ @Override public IPage selectAccreditationRecordsPage(IPage page, AccreditationRecordsVo accreditationRecords) { List accreditationRecordsVos = baseMapper.selectAccreditationRecordsPage(page, accreditationRecords); return page.setRecords(accreditationRecordsVos); } /** * 制证申请(批量) * * @param accreditationRecords 制证记录信息对象 */ @Override public boolean securityApply(AccreditationRecordsVo accreditationRecords) { //读取ids List list = Arrays.asList(accreditationRecords.getIds().split(",")); //遍历 list.forEach(id -> { AccreditationRecords records = new AccreditationRecords(); records.setCreateTime(new Date()); records.setCreateUser(accreditationRecords.getCreateUser()); records.setStatus(1); records.setAuditStatus(1); records.setType(accreditationRecords.getType()); records.setUserId(Long.parseLong(id)); //判断类型,如果是上岗证则判断是否有申请,有申请的不在新增记录 if (accreditationRecords.getType() == 1) { //查询当前人员是否有申请记录 int count = baseMapper.getAccreditationRecordsByUserIdCount(id); if (count < 1) { //新增 this.save(records); //内网新增 String s = "insert into sys_accreditation_records(id,user_id,create_time,create_user,status,type,audit_status) " + "values(" + "'" + records.getId() + "'" + "," + "'" + records.getUserId() + "'" + "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(records.getCreateTime()) + "'" + "," + "'" + records.getCreateUser() + "'" + "," + "'" + records.getStatus() + "'" + "," + "'" + records.getType() + "'" + "," + "'" + records.getAuditStatus() + "'" + ")"; //FtpUtil.sqlFileUpload(s); myAsyncService.FTP(s); } } //判断类型,如果是证书的,审核未通过的可以再次申请,审核通过的,暂时不给于新增记录 if (accreditationRecords.getType() == 2) { //查询当前人员是否有待审核和审核通过的记录数 int count = baseMapper.getAccreditationRecordsByUserIdAuditCount(id, 2); if (count < 1) { //新增 this.save(records); //内网新增 String s = "insert into sys_accreditation_records(id,user_id,create_time,create_user,status,type,audit_status) " + "values(" + "'" + records.getId() + "'" + "," + "'" + records.getUserId() + "'" + "," + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(records.getCreateTime()) + "'" + "," + "'" + records.getCreateUser() + "'" + "," + "'" + records.getStatus() + "'" + "," + "'" + records.getType() + "'" + "," + "'" + records.getAuditStatus() + "'" + ")"; //FtpUtil.sqlFileUpload(s); myAsyncService.FTP(s); } } }); return true; } /** * 自定义详情信息 * * @param accreditationRecords * @return */ @Override public AccreditationRecordsVo getAccreditationRecordsDetails(AccreditationRecords accreditationRecords) { return baseMapper.getAccreditationRecordsDetails(accreditationRecords); } /** * 导出保安员证信息 * * @param accreditationRecords * @return */ @Override public List exportSecurityPaperList(AccreditationRecordsVo accreditationRecords) { //查询数据 List accreditationRecordsVos = baseMapper.exportSecurityPaperList(accreditationRecords); if (accreditationRecordsVos.size() > 0) { //返回的集合数据 List list = new ArrayList<>(); //遍历 accreditationRecordsVos.forEach(accreditationRecordsVo -> { //导出即修改为已制证状态 AccreditationRecords accreditationRecords1 = new AccreditationRecords(); accreditationRecords1.setId(accreditationRecordsVo.getId()); accreditationRecords1.setStatus(2); //记录导出时间为制证时间 accreditationRecords1.setPaperTime(new Date()); //修改 this.updateById(accreditationRecords1); ExportSecurityPaperExcel excel = new ExportSecurityPaperExcel(); //数据转换封装 excel.setRealName(accreditationRecordsVo.getRealName()); excel.setIdCardNo(accreditationRecordsVo.getIdCardNo()); excel.setDeptName(accreditationRecordsVo.getDeptName()); if (accreditationRecordsVo.getSex().equals("1")) { excel.setSex("男"); } else { excel.setSex("女"); } excel.setPaperTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date())); //如果头像有 if (null != accreditationRecordsVo.getAvatar() && accreditationRecordsVo.getAvatar() != "") { try { if (accreditationRecordsVo.getAvatar().contains("http:")) { excel.setAvatar(new URL(accreditationRecordsVo.getAvatar())); } } catch (MalformedURLException e) { e.printStackTrace(); } } //如果保安证编号不为空 if (null != accreditationRecordsVo.getSecurityNumber() && accreditationRecordsVo.getSecurityNumber() != "") { //去生成二维码 String url = "http://61.131.136.25:2080/securityInfo.html"; String encoded = null; try { encoded = URLEncoder.encode(accreditationRecordsVo.getSecurityNumber(), "UTF-8"); String content = url + "?securityNumber=" + encoded; URLEncoder.encode(content, "utf-8"); byte[] qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350); //设置二维码 excel.setQrCode(qrCodeImage); excel.setSecurityNumber(accreditationRecordsVo.getSecurityNumber()); } catch (Exception e) { e.printStackTrace(); } } list.add(excel); }); return list; } return null; } /** * 导出证书制证信息 * * @param accreditationRecords * @return */ @Override public List exportSecurityBookPaper(AccreditationRecordsVo accreditationRecords) { //查询数据 List accreditationRecordsVos = baseMapper.exportSecurityBookPaper(accreditationRecords); return accreditationRecordsVos; } /** * 导出证书制证信息(包含照片) */ @Override public List exportSecurityBookPapers(AccreditationRecordsVo accreditationRecords) { //查询数据 List accreditationRecordsVos = baseMapper.exportSecurityBookPapers(accreditationRecords); // System.out.println("accreditationRecordsVos = " + accreditationRecordsVos.size()); return accreditationRecordsVos; } /** * 批量修改为已制证 * * @param accreditationRecords 制证记录信息对象 */ @Override public boolean batchAccreditation(AccreditationRecordsVo accreditationRecords) { //读取ids List list = Arrays.asList(accreditationRecords.getIds().split(",")); //遍历 list.forEach(id -> { AccreditationRecords records = new AccreditationRecords(); records.setStatus(2); records.setId(Long.parseLong(id)); //更新 this.updateById(records); //内网同步 String s = "update sys_accreditation_records set status = " + accreditationRecords.getStatus() + "" + "where id = " + "'" + accreditationRecords.getId() + "'"; //FtpUtil.sqlFileUpload(s); myAsyncService.FTP(s); }); return true; } }