LyMaterialWriteControl.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. package cn.hmsoft.art.control.layout.material;
  2. import java.io.File;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import cn.hmsoft.application.web.Ajax;
  10. import cn.hmsoft.art.control.ArtControl;
  11. import cn.hmsoft.art.data.dao.ly.LyGroupDao;
  12. import cn.hmsoft.art.data.dao.ly.LyRoomWrittenDao;
  13. import cn.hmsoft.art.data.model.ly.LyGroup;
  14. import cn.hmsoft.art.data.model.ly.LyMaterialWrittenParam;
  15. import cn.hmsoft.art.data.model.ly.LyRoomWritten;
  16. import cn.hmsoft.art.data.model.ly.LySubject;
  17. import cn.hmsoft.art.helper.ArtFileHelper;
  18. import cn.hmsoft.art.service.ly.material.written.WrittenMaterialHelper;
  19. import cn.hmsoft.frame.constants.FrameStatus;
  20. import cn.hmsoft.frame.constants.FrameThreadCallbackType;
  21. import cn.hmsoft.frame.data.model.FrameThread;
  22. import cn.hmsoft.frame.thread.FrameThreadHelper;
  23. import cn.hmsoft.helper.pdf.ItextDocumentModel;
  24. import cn.hmsoft.helper.qrcode.QrCodeEntity;
  25. import cn.hmsoft.helper.qrcode.QrCodeHelper;
  26. @RestController
  27. public class LyMaterialWriteControl extends ArtControl {
  28. @Autowired
  29. private LyGroupDao daoGroup;
  30. @Autowired
  31. private LyRoomWrittenDao daoRoom;
  32. // 生成二维码
  33. @RequestMapping("layout/material/written/room/qrcode")
  34. public void qrCode(int ly_room_id, int height, int width) {
  35. // LyRoomWritten room = daoRoom.find(ly_room_id);
  36. QrCodeEntity entity = new QrCodeEntity();
  37. entity.setImageHeight(height);
  38. entity.setImageWidth(width);
  39. entity.setQrContent("{room_id:" + ly_room_id + "}");
  40. try {
  41. QrCodeHelper.encode(entity, this.getResponse().getOutputStream());
  42. } catch (Exception e) {
  43. }
  44. }
  45. // 第一个考场考生信息
  46. @RequestMapping("layout/material/written/room/std")
  47. public Ajax listFirstRoom(int ly_group_id) {
  48. List<LyRoomWritten> roomArray = daoRoom.listRoom(ly_group_id);
  49. if (roomArray.size() > 0) {
  50. Map<String, Object> map = new HashMap<String, Object>();
  51. map.put("LyRoom", roomArray.get(0));
  52. map.put("StdArray", this.daoRoom.listRoomStd(ly_group_id, roomArray.get(0)));
  53. map.put("SubjectArray", this.daoGroup.listSubject(ly_group_id));
  54. return new Ajax(map);
  55. }
  56. return new Ajax();
  57. }
  58. // 第一个考场考生信息
  59. @RequestMapping("layout/material/written/room/std/list")
  60. public Ajax listRoomStd(int ly_room_id) {
  61. LyRoomWritten room = this.daoRoom.find(ly_room_id);
  62. return new Ajax(this.daoRoom.listRoomStd(room.getLy_group_id(), room));
  63. }
  64. // 下载门贴
  65. @RequestMapping("layout/material/written/door")
  66. public void door(int ly_group_id, ItextDocumentModel pageModel) {
  67. LyGroup group = this.daoGroup.find(ly_group_id);
  68. this.downloadFile(WrittenMaterialHelper.instance().makeWriteDoor(group), "门贴【" + group.getGroup_name() + "】.pdf",
  69. true);
  70. }
  71. // 下载桌贴
  72. @RequestMapping("layout/material/written/seat")
  73. public void desk(int ly_group_id, LyMaterialWrittenParam param, ItextDocumentModel pageModel) {
  74. LyGroup group = this.daoGroup.find(ly_group_id);
  75. File tempFile = ArtFileHelper.createTempFile();
  76. this.downloadFile(WrittenMaterialHelper.instance().makeWriteSeat(null, tempFile, group,false),
  77. "桌贴(无照片)-" + group.getGroup_name() + ".pdf", true);
  78. }
  79. // 下载桌贴
  80. @RequestMapping("layout/material/written/seatWithImage")
  81. public Ajax seatWithImage(int ly_group_id, LyMaterialWrittenParam param, ItextDocumentModel pageModel) {
  82. LyGroup group = this.daoGroup.find(ly_group_id);
  83. File tempFile = FrameThreadHelper.generateTempFile();
  84. // if (param.getPreview_flag().equals(FrameStatus.Active.toString())) {
  85. // this.downloadFile(WrittenMaterialHelper.instance().makeWriteSeat(null, tempFile, group,true),
  86. // "桌贴(带照片)-" + group.getGroup_name() + ".pdf", true);
  87. // return new Ajax();
  88. // }
  89. // 线程模式
  90. FrameThread thread = FrameThreadHelper.createThread("笔试材料-导出桌贴(带照片)", "导出桌贴(带照片)-" + group.getGroup_name(),
  91. FrameThreadCallbackType.Download,
  92. FrameThreadHelper.generateDownloadParam(tempFile, "桌贴(带照片)-" + group.getGroup_name() + ".pdf"),
  93. this.getFrameOptr());
  94. new Thread(() -> {
  95. WrittenMaterialHelper.instance().makeWriteSeat(thread, tempFile, group,true);
  96. }).start();
  97. return new Ajax(thread);
  98. }
  99. // 下载卷袋
  100. @RequestMapping("layout/material/written/bag")
  101. public void bag(int ag_subject_id, LyMaterialWrittenParam param, ItextDocumentModel pageModel) {
  102. LySubject subject = this.daoGroup.find(LySubject.class, ag_subject_id);
  103. LyGroup group = this.daoGroup.find(subject.getLy_group_id());
  104. this.downloadFile(WrittenMaterialHelper.instance().makeWriteBag(subject, group,param,pageModel),
  105. "卷袋-" + subject.getSubject_name() + ".pdf", true);
  106. }
  107. // 下载考生签字
  108. @RequestMapping("layout/material/written/sign")
  109. public Ajax sign(int ly_group_id, Integer subject_id) {
  110. LyGroup group = this.daoGroup.find(ly_group_id);
  111. File tempFile = FrameThreadHelper.generateTempFile();
  112. // 线程模式
  113. FrameThread thread = FrameThreadHelper.createThread("笔试材料-签到单", "签到单-" + group.getGroup_name(),
  114. FrameThreadCallbackType.Download,
  115. FrameThreadHelper.generateDownloadParam(tempFile, "签到单-" + group.getGroup_name() + ".pdf"),
  116. this.getFrameOptr());
  117. new Thread(() -> {
  118. List<LySubject> subjectArray;
  119. subjectArray = this.daoGroup.listSubject(ly_group_id, subject_id);
  120. WrittenMaterialHelper.instance().makeWriteSign(thread, tempFile, group, subjectArray,subject_id);
  121. }).start();
  122. return new Ajax(thread);
  123. }
  124. // 收发单
  125. @RequestMapping("layout/material/written/sendreceive")
  126. public void sendreceive(int ly_group_id) {
  127. LyGroup group = this.daoGroup.find(ly_group_id);
  128. this.downloadFile(WrittenMaterialHelper.instance().makeWriteSendReceive(group), "收发单-" + group.getGroup_name() + ".pdf",
  129. true);
  130. }
  131. // 收发单
  132. @RequestMapping("layout/material/written/record")
  133. public void record(int ly_group_id) {
  134. LyGroup group = this.daoGroup.find(ly_group_id);
  135. this.downloadFile(WrittenMaterialHelper.instance().makeWriteRecord(group), "考场记录-" + group.getGroup_name() + ".pdf",
  136. true);
  137. }
  138. //考场座次表
  139. @RequestMapping("layout/material/written/seattable")
  140. public void seatTable(int ly_group_id) {
  141. LyGroup group = this.daoGroup.find(ly_group_id);
  142. this.downloadFile(WrittenMaterialHelper.instance().makeWriteRoomSeat(group), "考场座次表["+ group.getGroup_name() + "].pdf");
  143. }
  144. //违规考生通知单
  145. @RequestMapping("layout/material/written/wg/notice")
  146. public void stdWgNotice(int ly_group_id) {
  147. LyGroup group = this.daoGroup.find(ly_group_id);
  148. this.downloadFile(WrittenMaterialHelper.instance().makeScoreStdNotice(group), "考生处理单.pdf");
  149. }
  150. //试卷回收
  151. @RequestMapping("layout/material/written/paper/recover")
  152. public void paperRecover(int ly_group_id) {
  153. LyGroup group = this.daoGroup.find(ly_group_id);
  154. this.downloadFile(WrittenMaterialHelper.instance().makeWriteSendReceiveCs(group), "试卷回收记录.pdf");
  155. }
  156. // 收发单
  157. @RequestMapping("layout/material/written/booth")
  158. public void boothSign(int ly_group_id, int start, int end) {
  159. LyGroup group = this.daoGroup.find(ly_group_id);
  160. File tempFile = FrameThreadHelper.generateTempFile();
  161. List<LySubject> subjectArray = daoGroup.listSubject(ly_group_id);
  162. this.downloadFile(WrittenMaterialHelper.instance().makeBoothSign(null, tempFile, group, subjectArray, start, end),
  163. "布展核对单-" + group.getGroup_name() + ".pdf",
  164. true);
  165. }
  166. }