haogh 5 kuukautta sitten
vanhempi
commit
28cb6d8235

+ 11 - 0
src/cn/hmsoft/art/control/layout/LyGroupWrittenControl.java

@@ -148,4 +148,15 @@ public class LyGroupWrittenControl extends ArtControl {
 		return new Ajax(this.daoRoom.listRoom(ly_group_id));
 	}
 
+	/**
+	 *  央美本科-特殊处理-造型艺术和中国画-更新座位号
+	 * @param ly_group_id 分组ID
+	 * @return ajax
+	 */
+	@RequestMapping("layout/group/written/stdSubject/roomSeq/update")
+	public Ajax updateStdSubjectRoomSeq(int ly_group_id) {
+		sWritten.updateStdSubjectRoomSeq(ly_group_id);
+		return new Ajax();
+	}
+
 }

+ 7 - 2
src/cn/hmsoft/art/data/dao/ly/LyStdSubjectDao.java

@@ -28,8 +28,8 @@ public class LyStdSubjectDao extends PlatformDaoSupport<LyStdSubject> {
 	 */
 	public List<StdReg> listGroupStdByAspectTicketNum(int ly_group_id) {
 		String sql = "select aspect_ticket_num,std.std_id,std.std_province from ly_std_subject sb,std_reg std where std.std_id=sb.std_id and ly_group_id=? group by aspect_ticket_num,std.std_id,std.std_province order by aspect_ticket_num";
-		//TODO 临时处理
-//		String sql = "select aspect_ticket_num,std.std_id,std.std_province from ly_std_subject sb,std_reg std where std.std_id=sb.std_id and ly_group_id=? group by aspect_ticket_num,std.std_id,std.std_province order by std.STD_PARAM1+0";
+		//TODO 央美附中临时处理
+		//String sql = "select aspect_ticket_num,std.std_id,std.std_province from ly_std_subject sb,std_reg std where std.std_id=sb.std_id and ly_group_id=? group by aspect_ticket_num,std.std_id,std.std_province order by std.STD_PARAM1+0";
 		return this.listBySql(StdReg.class, sql, ly_group_id);
 	}
 
@@ -691,4 +691,9 @@ public class LyStdSubjectDao extends PlatformDaoSupport<LyStdSubject> {
 				+ " ORDER BY ss.subject_name,mp.seq ";
 		return this.listBySql(ModelPhotoBean.class, sql, stdId);
 	}
+
+	public void updateStdWrittenSeat(Integer stdId, Integer groupId, int seatNum) {
+		String sql = " UPDATE ly_std_subject  set ly_room_seq=? where std_id=? and ly_group_id=? ";
+		this.updateBySql(sql, seatNum, stdId, groupId);
+	}
 }

+ 31 - 0
src/cn/hmsoft/art/service/ly/LyGroupWrittenService.java

@@ -2,8 +2,10 @@ package cn.hmsoft.art.service.ly;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
+import cn.hmsoft.log.LogHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -280,4 +282,33 @@ public class LyGroupWrittenService extends ArtService {
 
 	}
 
+	public void updateStdSubjectRoomSeq(int ly_group_id) {
+		LyGroup group = daoGroup.find(ly_group_id);
+		FrameAssertUtil.isNotNull(group, "分组不存在");
+		FrameAssertUtil.isEqual(group.getVideo_score_mode(), FrameStatus.Active.toString(), "该分组不允许重新生成座位号");
+
+		//分组下的笔试考场
+		List<LyRoomWritten> roomWrittenList = this.daoRoom.list("ly_group_id", ly_group_id);
+		LogHelper.info("考场的数量:" + roomWrittenList.size());
+		List<LyStdSubject> stdSubjectList;
+		for(LyRoomWritten room : roomWrittenList) {
+			stdSubjectList = daoStdSubject.list("ly_room_id", room.getLy_room_id());
+			FrameAssertUtil.hasValue(stdSubjectList, "未发布编排");
+
+			//随机排序
+			Collections.shuffle(stdSubjectList);
+
+			int index = 1;
+			for(LyStdSubject sb : stdSubjectList) {
+				//更新座位号
+				sb.setLy_room_seq(index);
+				daoStdSubject.update(sb);
+				//同步更新考生其他科目的座位号
+				daoStdSubject.updateStdWrittenSeat(sb.getStd_id(),group.getOptr_dept(), index);
+				index++;
+			}
+		}
+
+		LogHelper.info("座位号重新生成完成");
+	}
 }