Commit b1cb30678f15307944a769f5f1468f7127641c56

Authored by yiming
1 parent 32f3be1e

考生创建时新增班级

src/main/java/com/bsth/controller/subject/SubjectController.java
@@ -37,8 +37,11 @@ public class SubjectController extends BaseController<Subject, Integer> { @@ -37,8 +37,11 @@ public class SubjectController extends BaseController<Subject, Integer> {
37 public Map<String,String> selectSubject(@RequestParam() Map<String, Object> map){ 37 public Map<String,String> selectSubject(@RequestParam() Map<String, Object> map){
38 Map<String,String> result=new HashMap<>(); 38 Map<String,String> result=new HashMap<>();
39 try { 39 try {
40 - String[] arr=map.get("ids").toString().split(",");  
41 - subjectUserService.selectSubject(arr); 40 + String[] ids=map.get("ids").toString().split(",");
  41 + String[] fractions=map.get("fractionStr").toString().split(",");
  42 + String isOperate=map.get("isOperate").toString();
  43 + String className=map.get("className").toString();
  44 + subjectUserService.selectSubject(ids,fractions,isOperate,className);
42 result.put("result","成功"); 45 result.put("result","成功");
43 return result; 46 return result;
44 } catch (Exception e) { 47 } catch (Exception e) {
src/main/java/com/bsth/entity/subject/SubjectUser.java
@@ -42,6 +42,10 @@ public class SubjectUser { @@ -42,6 +42,10 @@ public class SubjectUser {
42 @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") 42 @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
43 private Date updateDate; 43 private Date updateDate;
44 44
  45 + private int fraction;
  46 +
  47 + private String isOperateTest;
  48 +
45 public Integer getId() { 49 public Integer getId() {
46 return id; 50 return id;
47 } 51 }
@@ -122,4 +126,20 @@ public class SubjectUser { @@ -122,4 +126,20 @@ public class SubjectUser {
122 public void setRemark(String remark) { 126 public void setRemark(String remark) {
123 this.remark = remark; 127 this.remark = remark;
124 } 128 }
  129 +
  130 + public int getFraction() {
  131 + return fraction;
  132 + }
  133 +
  134 + public void setFraction(int fraction) {
  135 + this.fraction = fraction;
  136 + }
  137 +
  138 + public String getIsOperateTest() {
  139 + return isOperateTest;
  140 + }
  141 +
  142 + public void setIsOperateTest(String isOperateTest) {
  143 + this.isOperateTest = isOperateTest;
  144 + }
125 } 145 }
src/main/java/com/bsth/repository/sys/SysUserRepository.java
@@ -55,4 +55,7 @@ public interface SysUserRepository extends BaseRepository&lt;SysUser, Integer&gt;{ @@ -55,4 +55,7 @@ public interface SysUserRepository extends BaseRepository&lt;SysUser, Integer&gt;{
55 55
56 @Query(value ="SELECT class_name FROM bsth_c_sys_user where class_name is not null and parent_id = ?1 GROUP BY class_name",nativeQuery=true) 56 @Query(value ="SELECT class_name FROM bsth_c_sys_user where class_name is not null and parent_id = ?1 GROUP BY class_name",nativeQuery=true)
57 List<String> findAllClassByParentID(String parentID ); 57 List<String> findAllClassByParentID(String parentID );
  58 +
  59 + @Query("SELECT u FROM SysUser u where u.parentID = ?1 and u.className= ?2")
  60 + List<SysUser> findByParentIDAndClassName(String parentID,String className);
58 } 61 }
src/main/java/com/bsth/service/subject/SubjectUserService.java
@@ -17,5 +17,5 @@ public interface SubjectUserService extends BaseService&lt;SubjectUser, Integer&gt; { @@ -17,5 +17,5 @@ public interface SubjectUserService extends BaseService&lt;SubjectUser, Integer&gt; {
17 17
18 List<Map<String,Object>> subjectUserDetail(Map<String, Object> map); 18 List<Map<String,Object>> subjectUserDetail(Map<String, Object> map);
19 19
20 - void selectSubject(String[] arr) throws Exception; 20 + void selectSubject(String[] arr,String[] fractions,String isOperate,String className) throws Exception;
21 } 21 }
src/main/java/com/bsth/service/subject/impl/SubjectUserServiceImpl.java
@@ -227,9 +227,15 @@ public class SubjectUserServiceImpl extends BaseServiceImpl&lt;SubjectUser, Integer @@ -227,9 +227,15 @@ public class SubjectUserServiceImpl extends BaseServiceImpl&lt;SubjectUser, Integer
227 227
228 @Override 228 @Override
229 @Transactional 229 @Transactional
230 - public void selectSubject(String[] arr) throws Exception{ 230 + public void selectSubject(String[] ids,String[] fractions,String isOperate,String className) throws Exception{
231 SysUser loginUser = SecurityUtils.getCurrentUser(); 231 SysUser loginUser = SecurityUtils.getCurrentUser();
232 - List<SysUser> userList= sysUserRepository.findByParentID(String.valueOf(loginUser.getId())); 232 + List<SysUser> userList;
  233 + if(className==null || "".equals(className)){
  234 + userList= sysUserRepository.findByParentID(String.valueOf(loginUser.getId()));
  235 + }else {
  236 + userList= sysUserRepository.findByParentIDAndClassName(String.valueOf(loginUser.getId()),className);
  237 + }
  238 +
233 DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd"); 239 DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");
234 LocalDate localDate=LocalDate.now(); 240 LocalDate localDate=LocalDate.now();
235 String rq=localDate.format(dateTimeFormatter); 241 String rq=localDate.format(dateTimeFormatter);
@@ -242,14 +248,16 @@ public class SubjectUserServiceImpl extends BaseServiceImpl&lt;SubjectUser, Integer @@ -242,14 +248,16 @@ public class SubjectUserServiceImpl extends BaseServiceImpl&lt;SubjectUser, Integer
242 for (SysUser user : userList) { 248 for (SysUser user : userList) {
243 //清除考生排班 249 //清除考生排班
244 ddexamService.clearScheduleRealInfo(user); 250 ddexamService.clearScheduleRealInfo(user);
245 - for (String s : arr) { 251 + for (int i = 0; i < ids.length; i++) {
246 SubjectUser subjectUser=new SubjectUser(); 252 SubjectUser subjectUser=new SubjectUser();
247 subjectUser.setUserId(user); 253 subjectUser.setUserId(user);
248 subjectUser.setRq(rq); 254 subjectUser.setRq(rq);
249 subjectUser.setCreateBy(loginUser.getId()); 255 subjectUser.setCreateBy(loginUser.getId());
250 Subject subject=new Subject(); 256 Subject subject=new Subject();
251 - subject.setId(Integer.parseInt(s)); 257 + subject.setId(Integer.parseInt(ids[i]));
252 subjectUser.setSubjectId(subject); 258 subjectUser.setSubjectId(subject);
  259 + subjectUser.setFraction(Integer.parseInt(fractions[i]));
  260 + subjectUser.setIsOperateTest(isOperate);
253 subjectUserRepository.save(subjectUser); 261 subjectUserRepository.save(subjectUser);
254 } 262 }
255 } 263 }
src/main/resources/static/assets/css/MSFmultiSelect.css
1 .msf_multiselect_container .msf_multiselect { 1 .msf_multiselect_container .msf_multiselect {
2 - border: 1px solid #e4e4e4; 2 + border: 1px solid #c2cad8;
3 list-style-type:none; 3 list-style-type:none;
4 margin: 0; 4 margin: 0;
5 padding: 0; 5 padding: 0;
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
22 padding-left: 2px; 22 padding-left: 2px;
23 padding-top: 2px; 23 padding-top: 2px;
24 overflow: auto; 24 overflow: auto;
  25 + border: 1px solid #c2cad8;
25 } 26 }
26 .msf_multiselect_container .msf_multiselect{ 27 .msf_multiselect_container .msf_multiselect{
27 height: 200px; 28 height: 200px;
src/main/resources/static/assets/js/MSFmultiSelect.js
@@ -8,8 +8,8 @@ class MSFmultiSelect{ @@ -8,8 +8,8 @@ class MSFmultiSelect{
8 this.select = select; 8 this.select = select;
9 this.settings = settings; 9 this.settings = settings;
10 this.defultSettings={ 10 this.defultSettings={
11 - width:350,  
12 - height:30, 11 + width:200,
  12 + height:34,
13 appendTo:'body', 13 appendTo:'body',
14 className:'' 14 className:''
15 } 15 }
src/main/resources/static/pages/subjectUser/selectSubject.html
@@ -28,15 +28,25 @@ @@ -28,15 +28,25 @@
28 <div class="portlet light porttlet-fit bordered"> 28 <div class="portlet light porttlet-fit bordered">
29 <div class="portlet-title"> 29 <div class="portlet-title">
30 <form class="form-inline" action=""> 30 <form class="form-inline" action="">
31 - <div style="display: inline-block;">  
32 - <span class="item-label" style="width: 80px;margin-left: 6px;">场景: </span>  
33 - <div id="myselect">  
34 - <select id="multiselect" style="width: 350px;" class="form-control" name="countries[]" multiple="multiple"> 31 + <div class="form-group">
  32 + <span class="item-label">班级: </span>
  33 + <select class="form-control" name="className" id="className" style="width: 180px;">
  34 + <li class="select2-results__option" role="treeitem" >请选择</li>
  35 + </select>
  36 + </div>
  37 + <div class="form-group">
  38 + <span class="item-label" >场景: </span>
  39 + <div id="myselect" class="form-group" style="margin-bottom: -5px;" >
  40 + <select id="multiselect" class="form-control" name="countries[]" multiple="multiple" >
35 </select> 41 </select>
36 </div> 42 </div>
37 </div> 43 </div>
  44 + <div class="form-group" >
  45 + <input type="radio" name="isOperate" value="1" checked="checked"/><label >隐藏操作</label>
  46 + <input type="radio" name="isOperate" value="0" /><label >显示操作</label>
  47 + </div>
38 <div class="form-group"> 48 <div class="form-group">
39 - <input class="btn btn-default" type="button" onclick="selectSubject()" value="提交" style="margin-left: 2px;margin-top: -24px;"/> 49 + <input class="btn btn-default" type="button" onclick="selectSubject()" value="提交" />
40 </div> 50 </div>
41 </form> 51 </form>
42 </div> 52 </div>
@@ -45,15 +55,18 @@ @@ -45,15 +55,18 @@
45 <form role="form"> 55 <form role="form">
46 <div class="form-group"> 56 <div class="form-group">
47 <span class="item-label" style="width: 80px;margin-left: 6px;">场景: </span> 57 <span class="item-label" style="width: 80px;margin-left: 6px;">场景: </span>
48 - <textarea class="form-control" rows="12" id="subjectText"></textarea> 58 + <textarea class="form-control" rows="10" id="subjectText"></textarea>
49 </div> 59 </div>
50 </form> 60 </form>
51 <form role="form"> 61 <form role="form">
52 <div class="form-group"> 62 <div class="form-group">
53 <span class="item-label" style="width: 80px;margin-left: 6px;">操作: </span> 63 <span class="item-label" style="width: 80px;margin-left: 6px;">操作: </span>
54 - <textarea class="form-control" rows="12" id="operateTest"></textarea> 64 + <textarea class="form-control" rows="10" id="operateTest"></textarea>
55 </div> 65 </div>
56 </form> 66 </form>
  67 +
  68 + <form id="fractions">
  69 + </form>
57 </div> 70 </div>
58 </div> 71 </div>
59 </div> 72 </div>
@@ -66,6 +79,7 @@ @@ -66,6 +79,7 @@
66 onChange:function(checked,value,instance){ 79 onChange:function(checked,value,instance){
67 var subjectTextStr=''; 80 var subjectTextStr='';
68 var operateTestStr=''; 81 var operateTestStr='';
  82 + var htmlSrt='';
69 var arr=select.getData(); 83 var arr=select.getData();
70 for (let i of arr) { 84 for (let i of arr) {
71 let index=1; 85 let index=1;
@@ -73,12 +87,16 @@ @@ -73,12 +87,16 @@
73 if(s.id==i){ 87 if(s.id==i){
74 subjectTextStr+='题'+index+':'+s.subjectText+'\n'; 88 subjectTextStr+='题'+index+':'+s.subjectText+'\n';
75 operateTestStr+='题'+index+':'+s.operateTest+'\n'; 89 operateTestStr+='题'+index+':'+s.operateTest+'\n';
  90 + htmlSrt+='<row style="display: inline-block"><span class="col-md-1" className="item-label" style="width: 80px">题'+index+': </span><input class="col-md-1" class="" type="text" oninput="value=value.replace(/[^\\d]/g,\'\')" name="fraction" style="border: 1px solid #c2cad8;width: 50px;"/></row>'
76 } 91 }
77 index++; 92 index++;
78 } 93 }
79 } 94 }
80 $("#subjectText").val(subjectTextStr); 95 $("#subjectText").val(subjectTextStr);
81 $("#operateTest").val(operateTestStr); 96 $("#operateTest").val(operateTestStr);
  97 + $("#fractions").html(htmlSrt);
  98 +
  99 +
82 }, 100 },
83 appendTo:'#myselect', 101 appendTo:'#myselect',
84 } 102 }
@@ -98,8 +116,22 @@ @@ -98,8 +116,22 @@
98 } 116 }
99 select.loadSource(datas); 117 select.loadSource(datas);
100 }); 118 });
  119 + getClass();
101 }); 120 });
102 function selectSubject(){ 121 function selectSubject(){
  122 + let fractionStr = '';
  123 + const inputs = $("input[name='fraction']");
  124 + let sum=0;
  125 + for (let i=0; i<inputs.length;i++) {
  126 + fractionStr+=inputs[i].value+","
  127 + sum+=Number(inputs[i].value);
  128 + }
  129 + let isOperate=$('input[name="isOperate"]:checked').val();
  130 + let className=$("#className").val();
  131 + if(sum != 100){
  132 + layer.alert("总分必须为100");
  133 + return;
  134 + }
103 var arr=select.getData(); 135 var arr=select.getData();
104 if(arr.length == 0){ 136 if(arr.length == 0){
105 layer.alert("请选择场景"); 137 layer.alert("请选择场景");
@@ -113,11 +145,22 @@ @@ -113,11 +145,22 @@
113 for (let id of arr) { 145 for (let id of arr) {
114 ids+=id+','; 146 ids+=id+',';
115 } 147 }
116 - $get('/subject/selectSubject',{ids:ids},function(result){ 148 + $get('/subject/selectSubject',{ids:ids,fractionStr:fractionStr,isOperate:isOperate,className:className},function(result){
117 layer.alert(result.result); 149 layer.alert(result.result);
118 }); 150 });
119 }); 151 });
120 } 152 }
  153 + var firstLoad=true;
  154 + function getClass(){
  155 + $.get('/user/classList',function(result){
  156 + var data=[];
  157 + for(var code in result){
  158 + data.push({id: result[code], text: result[code]});
  159 + }
  160 + initPinYinSelect2('#className',data,'');
  161 + firstLoad=false;
  162 + })
  163 + }
121 </script> 164 </script>
122 165
123 166