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 37 public Map<String,String> selectSubject(@RequestParam() Map<String, Object> map){
38 38 Map<String,String> result=new HashMap<>();
39 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 45 result.put("result","成功");
43 46 return result;
44 47 } catch (Exception e) {
... ...
src/main/java/com/bsth/entity/subject/SubjectUser.java
... ... @@ -42,6 +42,10 @@ public class SubjectUser {
42 42 @Column(name = "update_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
43 43 private Date updateDate;
44 44  
  45 + private int fraction;
  46 +
  47 + private String isOperateTest;
  48 +
45 49 public Integer getId() {
46 50 return id;
47 51 }
... ... @@ -122,4 +126,20 @@ public class SubjectUser {
122 126 public void setRemark(String remark) {
123 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 55  
56 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 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 17  
18 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 227  
228 228 @Override
229 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 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 239 DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");
234 240 LocalDate localDate=LocalDate.now();
235 241 String rq=localDate.format(dateTimeFormatter);
... ... @@ -242,14 +248,16 @@ public class SubjectUserServiceImpl extends BaseServiceImpl&lt;SubjectUser, Integer
242 248 for (SysUser user : userList) {
243 249 //清除考生排班
244 250 ddexamService.clearScheduleRealInfo(user);
245   - for (String s : arr) {
  251 + for (int i = 0; i < ids.length; i++) {
246 252 SubjectUser subjectUser=new SubjectUser();
247 253 subjectUser.setUserId(user);
248 254 subjectUser.setRq(rq);
249 255 subjectUser.setCreateBy(loginUser.getId());
250 256 Subject subject=new Subject();
251   - subject.setId(Integer.parseInt(s));
  257 + subject.setId(Integer.parseInt(ids[i]));
252 258 subjectUser.setSubjectId(subject);
  259 + subjectUser.setFraction(Integer.parseInt(fractions[i]));
  260 + subjectUser.setIsOperateTest(isOperate);
253 261 subjectUserRepository.save(subjectUser);
254 262 }
255 263 }
... ...
src/main/resources/static/assets/css/MSFmultiSelect.css
1 1 .msf_multiselect_container .msf_multiselect {
2   - border: 1px solid #e4e4e4;
  2 + border: 1px solid #c2cad8;
3 3 list-style-type:none;
4 4 margin: 0;
5 5 padding: 0;
... ... @@ -22,6 +22,7 @@
22 22 padding-left: 2px;
23 23 padding-top: 2px;
24 24 overflow: auto;
  25 + border: 1px solid #c2cad8;
25 26 }
26 27 .msf_multiselect_container .msf_multiselect{
27 28 height: 200px;
... ...
src/main/resources/static/assets/js/MSFmultiSelect.js
... ... @@ -8,8 +8,8 @@ class MSFmultiSelect{
8 8 this.select = select;
9 9 this.settings = settings;
10 10 this.defultSettings={
11   - width:350,
12   - height:30,
  11 + width:200,
  12 + height:34,
13 13 appendTo:'body',
14 14 className:''
15 15 }
... ...
src/main/resources/static/pages/subjectUser/selectSubject.html
... ... @@ -28,15 +28,25 @@
28 28 <div class="portlet light porttlet-fit bordered">
29 29 <div class="portlet-title">
30 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 41 </select>
36 42 </div>
37 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 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 50 </div>
41 51 </form>
42 52 </div>
... ... @@ -45,15 +55,18 @@
45 55 <form role="form">
46 56 <div class="form-group">
47 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 59 </div>
50 60 </form>
51 61 <form role="form">
52 62 <div class="form-group">
53 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 65 </div>
56 66 </form>
  67 +
  68 + <form id="fractions">
  69 + </form>
57 70 </div>
58 71 </div>
59 72 </div>
... ... @@ -66,6 +79,7 @@
66 79 onChange:function(checked,value,instance){
67 80 var subjectTextStr='';
68 81 var operateTestStr='';
  82 + var htmlSrt='';
69 83 var arr=select.getData();
70 84 for (let i of arr) {
71 85 let index=1;
... ... @@ -73,12 +87,16 @@
73 87 if(s.id==i){
74 88 subjectTextStr+='题'+index+':'+s.subjectText+'\n';
75 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 92 index++;
78 93 }
79 94 }
80 95 $("#subjectText").val(subjectTextStr);
81 96 $("#operateTest").val(operateTestStr);
  97 + $("#fractions").html(htmlSrt);
  98 +
  99 +
82 100 },
83 101 appendTo:'#myselect',
84 102 }
... ... @@ -98,8 +116,22 @@
98 116 }
99 117 select.loadSource(datas);
100 118 });
  119 + getClass();
101 120 });
102 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 135 var arr=select.getData();
104 136 if(arr.length == 0){
105 137 layer.alert("请选择场景");
... ... @@ -113,11 +145,22 @@
113 145 for (let id of arr) {
114 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 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 164 </script>
122 165  
123 166  
... ...