package cn.hmsoft.art.control.layout.material; import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import cn.hmsoft.application.web.Ajax; import cn.hmsoft.art.control.ArtControl; import cn.hmsoft.art.data.dao.ly.LyGroupDao; import cn.hmsoft.art.data.dao.ly.LyRoomWrittenDao; import cn.hmsoft.art.data.model.ly.LyGroup; import cn.hmsoft.art.data.model.ly.LyMaterialWrittenParam; import cn.hmsoft.art.data.model.ly.LyRoomWritten; import cn.hmsoft.art.data.model.ly.LySubject; import cn.hmsoft.art.helper.ArtFileHelper; import cn.hmsoft.art.service.ly.material.written.WrittenMaterialHelper; import cn.hmsoft.frame.constants.FrameStatus; import cn.hmsoft.frame.constants.FrameThreadCallbackType; import cn.hmsoft.frame.data.model.FrameThread; import cn.hmsoft.frame.thread.FrameThreadHelper; import cn.hmsoft.helper.pdf.ItextDocumentModel; import cn.hmsoft.helper.qrcode.QrCodeEntity; import cn.hmsoft.helper.qrcode.QrCodeHelper; @RestController public class LyMaterialWriteControl extends ArtControl { @Autowired private LyGroupDao daoGroup; @Autowired private LyRoomWrittenDao daoRoom; // 生成二维码 @RequestMapping("layout/material/written/room/qrcode") public void qrCode(int ly_room_id, int height, int width) { // LyRoomWritten room = daoRoom.find(ly_room_id); QrCodeEntity entity = new QrCodeEntity(); entity.setImageHeight(height); entity.setImageWidth(width); entity.setQrContent("{room_id:" + ly_room_id + "}"); try { QrCodeHelper.encode(entity, this.getResponse().getOutputStream()); } catch (Exception e) { } } // 第一个考场考生信息 @RequestMapping("layout/material/written/room/std") public Ajax listFirstRoom(int ly_group_id) { List roomArray = daoRoom.listRoom(ly_group_id); if (roomArray.size() > 0) { Map map = new HashMap(); map.put("LyRoom", roomArray.get(0)); map.put("StdArray", this.daoRoom.listRoomStd(ly_group_id, roomArray.get(0))); map.put("SubjectArray", this.daoGroup.listSubject(ly_group_id)); return new Ajax(map); } return new Ajax(); } // 第一个考场考生信息 @RequestMapping("layout/material/written/room/std/list") public Ajax listRoomStd(int ly_room_id) { LyRoomWritten room = this.daoRoom.find(ly_room_id); return new Ajax(this.daoRoom.listRoomStd(room.getLy_group_id(), room)); } // 下载门贴 @RequestMapping("layout/material/written/door") public void door(int ly_group_id, ItextDocumentModel pageModel) { LyGroup group = this.daoGroup.find(ly_group_id); this.downloadFile(WrittenMaterialHelper.instance().makeWriteDoor(group), "门贴【" + group.getGroup_name() + "】.pdf", true); } // 下载桌贴 @RequestMapping("layout/material/written/seat") public void desk(int ly_group_id, LyMaterialWrittenParam param, ItextDocumentModel pageModel) { LyGroup group = this.daoGroup.find(ly_group_id); File tempFile = ArtFileHelper.createTempFile(); this.downloadFile(WrittenMaterialHelper.instance().makeWriteSeat(null, tempFile, group,false), "桌贴(无照片)-" + group.getGroup_name() + ".pdf", true); } // 下载桌贴 @RequestMapping("layout/material/written/seatWithImage") public Ajax seatWithImage(int ly_group_id, LyMaterialWrittenParam param, ItextDocumentModel pageModel) { LyGroup group = this.daoGroup.find(ly_group_id); File tempFile = FrameThreadHelper.generateTempFile(); // if (param.getPreview_flag().equals(FrameStatus.Active.toString())) { // this.downloadFile(WrittenMaterialHelper.instance().makeWriteSeat(null, tempFile, group,true), // "桌贴(带照片)-" + group.getGroup_name() + ".pdf", true); // return new Ajax(); // } // 线程模式 FrameThread thread = FrameThreadHelper.createThread("笔试材料-导出桌贴(带照片)", "导出桌贴(带照片)-" + group.getGroup_name(), FrameThreadCallbackType.Download, FrameThreadHelper.generateDownloadParam(tempFile, "桌贴(带照片)-" + group.getGroup_name() + ".pdf"), this.getFrameOptr()); new Thread(() -> { WrittenMaterialHelper.instance().makeWriteSeat(thread, tempFile, group,true); }).start(); return new Ajax(thread); } // 下载卷袋 @RequestMapping("layout/material/written/bag") public void bag(int ag_subject_id, LyMaterialWrittenParam param, ItextDocumentModel pageModel) { LySubject subject = this.daoGroup.find(LySubject.class, ag_subject_id); LyGroup group = this.daoGroup.find(subject.getLy_group_id()); this.downloadFile(WrittenMaterialHelper.instance().makeWriteBag(subject, group,param,pageModel), "卷袋-" + subject.getSubject_name() + ".pdf", true); } // 下载考生签字 @RequestMapping("layout/material/written/sign") public Ajax sign(int ly_group_id, Integer subject_id) { LyGroup group = this.daoGroup.find(ly_group_id); File tempFile = FrameThreadHelper.generateTempFile(); // 线程模式 FrameThread thread = FrameThreadHelper.createThread("笔试材料-签到单", "签到单-" + group.getGroup_name(), FrameThreadCallbackType.Download, FrameThreadHelper.generateDownloadParam(tempFile, "签到单-" + group.getGroup_name() + ".pdf"), this.getFrameOptr()); new Thread(() -> { List subjectArray; subjectArray = this.daoGroup.listSubject(ly_group_id, subject_id); WrittenMaterialHelper.instance().makeWriteSign(thread, tempFile, group, subjectArray,subject_id); }).start(); return new Ajax(thread); } // 收发单 @RequestMapping("layout/material/written/sendreceive") public void sendreceive(int ly_group_id) { LyGroup group = this.daoGroup.find(ly_group_id); this.downloadFile(WrittenMaterialHelper.instance().makeWriteSendReceive(group), "收发单-" + group.getGroup_name() + ".pdf", true); } // 收发单 @RequestMapping("layout/material/written/record") public void record(int ly_group_id) { LyGroup group = this.daoGroup.find(ly_group_id); this.downloadFile(WrittenMaterialHelper.instance().makeWriteRecord(group), "考场记录-" + group.getGroup_name() + ".pdf", true); } //考场座次表 @RequestMapping("layout/material/written/seattable") public void seatTable(int ly_group_id) { LyGroup group = this.daoGroup.find(ly_group_id); this.downloadFile(WrittenMaterialHelper.instance().makeWriteRoomSeat(group), "考场座次表["+ group.getGroup_name() + "].pdf"); } //违规考生通知单 @RequestMapping("layout/material/written/wg/notice") public void stdWgNotice(int ly_group_id) { LyGroup group = this.daoGroup.find(ly_group_id); this.downloadFile(WrittenMaterialHelper.instance().makeScoreStdNotice(group), "考生处理单.pdf"); } //试卷回收 @RequestMapping("layout/material/written/paper/recover") public void paperRecover(int ly_group_id) { LyGroup group = this.daoGroup.find(ly_group_id); this.downloadFile(WrittenMaterialHelper.instance().makeWriteSendReceiveCs(group), "试卷回收记录.pdf"); } // 收发单 @RequestMapping("layout/material/written/booth") public void boothSign(int ly_group_id, int start, int end) { LyGroup group = this.daoGroup.find(ly_group_id); File tempFile = FrameThreadHelper.generateTempFile(); List subjectArray = daoGroup.listSubject(ly_group_id); this.downloadFile(WrittenMaterialHelper.instance().makeBoothSign(null, tempFile, group, subjectArray, start, end), "布展核对单-" + group.getGroup_name() + ".pdf", true); } }