From 9a219932675f3f1291c84600f67b1b030069c3d4 Mon Sep 17 00:00:00 2001 From: jinxuesong Date: Wed, 17 Apr 2019 19:50:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E5=BD=95=E5=85=A5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/WEB-INF/templates/sch1.ftl | 30 +- WebContent/generatorConfig.xml | 2 +- WebContent/jsp/QueryCurriculums.jsp | 248 ++++- WebContent/jsp/QueryCurriculums2.jsp | 885 ++++++++++++++++++ .../controller/CurriculumController.class | Bin 24309 -> 36431 bytes .../curriculum/mapper/CurriculumMapper.xml | 27 +- .../hrbcu/curriculum/pojo/Curriculum.class | Bin 2369 -> 2563 bytes .../pojo/CurriculumExample$Criteria.class | Bin 10711 -> 11735 bytes .../pojo/CurriculumExample$Criterion.class | Bin 2304 -> 2304 bytes .../CurriculumExample$GeneratedCriteria.class | Bin 17894 -> 19499 bytes .../service/CurriculumServiceImpl.class | Bin 10411 -> 10473 bytes .../controller/CurriculumController.java | 354 +++++-- .../curriculum/mapper/CurriculumMapper.xml | 27 +- .../edu/hrbcu/curriculum/pojo/Curriculum.java | 10 + .../curriculum/pojo/CurriculumExample.java | 60 ++ .../service/CurriculumServiceImpl.java | 1 + 16 files changed, 1526 insertions(+), 118 deletions(-) create mode 100644 WebContent/jsp/QueryCurriculums2.jsp diff --git a/WebContent/WEB-INF/templates/sch1.ftl b/WebContent/WEB-INF/templates/sch1.ftl index d1c8b12..da0d6bf 100644 --- a/WebContent/WEB-INF/templates/sch1.ftl +++ b/WebContent/WEB-INF/templates/sch1.ftl @@ -1148,7 +1148,7 @@ -${coursemode.score}/${coursemode.time} +${coursemode.score}/${coursemode.hour}(${coursemode.dispersehour})/${coursemode.week}(${coursemode.disperseweek})周 @@ -1207,7 +1207,7 @@ -${course.score}/${course.time}/${course.semester} +${course.score}/${course.hour}/${course.semester} @@ -1390,7 +1390,7 @@ -${course.score}/${course.time}/${course.semester} +${course.score}/${course.hour}/${course.semester} @@ -1539,7 +1539,7 @@ -${coursemode.score}/${coursemode.time} +${coursemode.score}/${coursemode.hour}/${coursemode.week}周 @@ -1598,7 +1598,7 @@ -${course.score}/${course.time}/${course.semester} +${course.score}/${course.hour}/${course.semester} @@ -1782,7 +1782,7 @@ -${course.score}/${course.time}/${course.semester} +${course.score}/${course.hour}/${course.semester} @@ -1949,7 +1949,7 @@ -${coursemode.score}/${coursemode.time} +${coursemode.score}/${coursemode.hour}/${coursemode.week}周 @@ -2006,7 +2006,7 @@ -${course.score}/${course.time}/${course.semester} +${course.score}/${course.hour}/${course.semester} @@ -2190,7 +2190,7 @@ -${course.score}/${course.time}/${course.semester} +${course.score}/${course.hour}/${course.semester} @@ -2342,7 +2342,7 @@ -${coursemode.score}/${coursemode.time} +${coursemode.score}/${coursemode.hour}/${coursemode.week}周 @@ -2399,7 +2399,7 @@ -${course.score}/${course.time}/${course.semester} +${course.score}/${course.hour}/${course.semester} @@ -2581,7 +2581,7 @@ -${course.score}/${course.time}/${course.semester} +${course.score}/${course.hour}/${course.semester} @@ -2681,7 +2681,7 @@ -${total_coursetype_compulsory_theoretical_score}/${total_coursetype_compulsory_theoretical_time+total_coursetype_compulsory_experiement_time} ${total_coursetype_compulsory_practice_score}/${total_coursetype_compulsory_practice_time} +${total_coursetype_compulsory_theoretical_score}学分/${total_coursetype_compulsory_theoretical_hour+total_coursetype_compulsory_experiement_hour}(${total_coursetype_compulsory_disperse_theoretical_hour+total_coursetype_compulsory_disperse_experiement_hour})学时/${total_coursetype_compulsory_theoretical_week + total_coursetype_compulsory_experiement_week}(${total_coursetype_compulsory_disperse_theoretical_week + total_coursetype_compulsory_disperse_experiement_week})周 ${total_coursetype_compulsory_practice_score}学分/${total_coursetype_compulsory_practice_hour}(${total_coursetype_compulsory_disperse_practice_hour})学时/${total_coursetype_compulsory_practice_week}(${total_coursetype_compulsory_disperse_practice_week})周 @@ -2751,7 +2751,7 @@ -${total_coursemode_elective_theoretical_score}/${total_coursetype_elective_theoretical_time + total_coursetype_elective_experiement_time} ${total_coursemode_elective_practice_score}/${total_coursetype_elective_practice_time} +${total_coursemode_elective_theoretical_score}学分/${total_coursetype_elective_theoretical_hour + total_coursetype_elective_experiement_hour}(${total_coursetype_elective_disperse_theoretical_hour + total_coursetype_elective_disperse_experiement_hour})学时/${total_coursetype_elective_theoretical_week + total_coursetype_elective_experiement_week}(${total_coursetype_elective_disperse_experiement_hour + total_coursetype_elective_disperse_experiement_week})周 ${total_coursemode_elective_practice_score}学分/${total_coursetype_elective_practice_hour}(${total_coursetype_elective_disperse_practice_hour})学时${total_coursetype_elective_practice_week}(${total_coursetype_elective_disperse_practice_week})周 @@ -2841,7 +2841,7 @@ -${totaltheoreticalscore + totalpracticescore}/${totaltheoreticaltime + totalexperiementtime + totalpracticetime} ${totaltheoreticalscore}/${totaltheoreticaltime + totalexperiementtime} ${totalpracticescore}/${totalpracticetime} +${totaltheoreticalscore + totalpracticescore}学分/${totaltheoreticalhour + totalexperiementhour + totalpracticehour}(${totaltheoreticaldispersehour + totalexperiementdispersehour + totalpracticedispersehour})学时/${totaltheoreticalweek + totalexperiementweek + totalpracticeweek}(${totaltheoreticaldisperseweek + totalexperiementdisperseweek + totalpracticedisperseweek})周 ${totaltheoreticalscore}学分/${totaltheoreticalhour + totalexperiementhour}(${totaltheoreticaldispersehour + totalexperiementdispersehour})学时 ${totalpracticescore}学分/${totalpracticehour}(${totalpracticedispersehour})学时/${totalpracticeweek}/(${totalpracticedisperseweek})周 diff --git a/WebContent/generatorConfig.xml b/WebContent/generatorConfig.xml index 6f9e60b..607fa85 100644 --- a/WebContent/generatorConfig.xml +++ b/WebContent/generatorConfig.xml @@ -100,7 +100,7 @@ --> - +
diff --git a/WebContent/jsp/QueryCurriculums.jsp b/WebContent/jsp/QueryCurriculums.jsp index fde79c4..d1681a6 100644 --- a/WebContent/jsp/QueryCurriculums.jsp +++ b/WebContent/jsp/QueryCurriculums.jsp @@ -39,8 +39,14 @@ set_dnd(); set_editable(); + + init(); }) + function init(){ + + } + var dragSrcEl = null; var $dragSrcEl = null; var dragSrcTBODY = null; @@ -145,35 +151,101 @@ } function compute_total($whichbody){ - var total = new Array() + var total = new Array(); + var total_disperse = 0;//小计分散 + var theoretical_disperse = 0;//小计理论分散 + var experiment_disperse = 0;//小计实验分散 + var total_hpw = 0;//每周学时数 + var total_week = 0;//总周 + var total_week_disperse = 0;//总分散周 + var $dest_trs = $whichbody.children('tr'); //var $dest_trs_avaliable = $(":checkbox:checked").closest("tr"); - var $dest_trs_avaliable =$whichbody.find(":checkbox:checked").closest("tr"); + var $dest_trs_avaliable = $whichbody.find("input[class='available']:checked").closest("tr"); + var $dest_trs_disperse = $whichbody.find("input[class='disperse']:checked").closest("tr"); - //初始化小计的数量 - for(var i = 0; i < 20 ; i++){ - total[i] = 0; + //设置分散的括号============================================== + for(var i = 0;i < $dest_trs.length; i++){//所有行,先清除分散括号 + $dest_tds = $($dest_trs[i]).children(); + + for(var j = 4 ; j <= 8; j++){ + str = $($dest_tds[j]).text(); + var s = str.replace("(",""); + s = s.replace(")",""); + + $($dest_tds[j]).text(s); + } } - //先根据理论学时 + 实验学时 计算机总学时 + //先根据理论学时 + 实验学时 计算总学时 for(var i = 0;i < $dest_trs.length; i++){//所有行 var $dest_tds = $($dest_trs[i]).children(); - if(i < $dest_trs.length - 1){//前面的行 + if(i < $dest_trs.length - 1){//前面的行 除了最后一行小计 + //计算出总学时(理论学时+实验学时) $dest_tds[4].innerHTML = parseInt($dest_tds[5].innerHTML) + parseInt($dest_tds[6].innerHTML); + ""; } } - //计算开课的小计 + for(var j = 0;j < $dest_trs.length; j++){//所有分散课 + var $dest__tds = $($dest_trs[j]).children(); + if($($dest__tds[12]).text() == '1'){//如果单位为周 + $($dest__tds[7]).text($dest__tds[4].innerHTML); + }else{//单位为学时 + + } + } + + //=========================================================== + //初始化小计的数量 + for(var i = 0; i < 20 ; i++){ + total[i] = 0; + } + + //计算开课、分散的小计 var $dest_tds = undefined; - for(var i = 0;i < $dest_trs_avaliable.length; i++){//所有行 - $dest_tds = $($dest_trs_avaliable[i]).children(); - - for(var j = 0; j < $dest_tds.length ; j ++ ){ - if(j >= 3 && j <= 7){ - total[j] += parseInt($dest_tds[j].innerHTML); + for(var i = 0;i < $dest_trs_avaliable.length; i++){//所有开课行 + for(var j = 0;j < $dest_trs_disperse.length; j++){//所有分散课 + if($dest_trs_avaliable[i] == $dest_trs_disperse[j]){//开课,并分散进行 + var $dest_disperse_tds = $($dest_trs_disperse[j]).children(); + total_disperse += parseInt($($dest_disperse_tds[4]).text()); + theoretical_disperse += parseInt($($dest_disperse_tds[5]).text()); + experiment_disperse += parseInt($($dest_disperse_tds[6]).text()); + + if($($dest_disperse_tds[12]).text() == '1'){//如果单位为周 + total_week_disperse += (parseFloat($($dest_disperse_tds[7]).text()));//总分散周数 + } + + } + } + } + //计算开课、未分散的小计 + for(var i = 0;i < $dest_trs_avaliable.length; i++){//所有开课行 + var found_same = false; + for(var j = 0;j < $dest_trs_disperse.length; j++){//所有分散课 + if($dest_trs_avaliable[i] == $dest_trs_disperse[j]){//开课,并分散进行 + found_same = true; + break; + } + } + //所有开课,计算学分学时 + $dest_tdss = $($dest_trs_avaliable[i]).children(); + //没有找到相同的,计算 + if(!found_same){ + for(var k = 0; k < $dest_tdss.length ; k ++ ){ + if(k >= 3 && k < 7){ + total[k] += parseInt($dest_tdss[k].innerHTML); + } + } + + if($($dest_tdss[12]).text() == '1'){//如果单位为周 + total_week += (parseFloat($($dest_tdss[7]).text()));//总周数 + }else{ + total[7] += parseInt($dest_tdss[7].innerHTML) } + } + } //设置小计的内容 @@ -181,6 +253,61 @@ for(var j = 0; j < $dest_tds.length ; j ++ ){ if(j >= 3 && j <= 7){ $dest_tds[j].innerHTML = total[j] + ""; + if(j == 4){//总学时数 + if(total_disperse > 0){ + $dest_tds[j].innerHTML = $dest_tds[j].innerHTML + "(" + total_disperse + ")"; + } + } + + if(j == 5){//总理论学时数 + if(total_disperse > 0){ + $dest_tds[j].innerHTML = $dest_tds[j].innerHTML + "(" + theoretical_disperse + ")"; + } + } + + if(j == 6){//总实验学时数 + if(total_disperse > 0){ + $dest_tds[j].innerHTML = $dest_tds[j].innerHTML + "(" + experiment_disperse + ")"; + } + } + + if(j == 7){//周学时 + if(total_week > 0 || total_week_disperse > 0){ + $dest_tds[7].innerHTML += "/"; + } + + if(total_week > 0){ + $dest_tds[7].innerHTML += total_week; + } + + if(total_week_disperse > 0){ + $dest_tds[7].innerHTML += "(" + total_week_disperse + ")"; + } + + if(total_week > 0 || total_week_disperse > 0){ + $dest_tds[7].innerHTML += "周"; + } + } + } + } + + //对于分散的课学时,加上括号表示 + for(var i = 0 ; i < $dest_trs_disperse.length; i++){// + var $dest_disperse_tds = $($dest_trs_disperse[i]).children(); + for(var j = 4 ; j <= 6; j++){ + $dest_disperse_tds[j].innerHTML = "(" + $dest_disperse_tds[j].innerHTML + ")"; + } + + if($($dest_disperse_tds[12]).text() == '1'){//如果单位为周 + $($dest_disperse_tds[7]).text("(" + $($dest_disperse_tds[7]).text() + ")" +"周"); + } + } + //单位为周的,加上单位 + for(var i = 0 ; i < $dest_trs.length - 1; i++){// + var $tds = $($dest_trs[i]).children(); + + if($($tds[12]).text() == '1'){//如果单位为周 + $($tds[7]).text($($tds[4]).text() +"周"); } } @@ -261,6 +388,7 @@ obj['hpw'] = parseInt($(tds[7]).text()); obj['sort'] = 0; obj['available'] = tds[10].firstChild.checked; + obj['disperse'] = tds[11].firstChild.checked; // curriculums.push(obj); } @@ -346,7 +474,9 @@ 0 1 17 - + + + ${course.unit} @@ -394,6 +524,7 @@ 起始周 结束周 开课 + 分散 @@ -409,10 +540,15 @@ ${curriculum.hpw } ${curriculum.start } ${curriculum.end } - checked="checked" onclick="checkboxOnclick(this);" /> - + + checked="checked" + onclick="checkboxOnclick(this);" /> + + ${curriculum.unit} @@ -427,6 +563,7 @@ ---- ---- ---- + ---- @@ -449,6 +586,7 @@ 起始周 结束周 开课 + 分散 @@ -464,10 +602,15 @@ ${curriculum.hpw } ${curriculum.start } ${curriculum.end } - checked="checked" onclick="checkboxOnclick(this);" /> - + + checked="checked" + onclick="checkboxOnclick(this);" /> + + ${curriculum.unit} @@ -482,6 +625,7 @@ ---- ---- ---- + ---- @@ -505,6 +649,7 @@ 起始周 结束周 开课 + 分散 @@ -520,10 +665,15 @@ ${curriculum.hpw } ${curriculum.start } ${curriculum.end } - checked="checked" onclick="checkboxOnclick(this);" /> - + + checked="checked" + onclick="checkboxOnclick(this);" /> + + ${curriculum.unit} @@ -538,6 +688,7 @@ ---- ---- ---- + ---- @@ -561,6 +712,7 @@ 起始周 结束周 开课 + 分散 @@ -576,10 +728,15 @@ ${curriculum.hpw } ${curriculum.start } ${curriculum.end } - checked="checked" onclick="checkboxOnclick(this);" /> - + + checked="checked" + onclick="checkboxOnclick(this);" /> + + ${curriculum.unit} @@ -594,6 +751,7 @@ ---- ---- ---- + ---- @@ -615,6 +773,7 @@ 起始周 结束周 开课 + 分散 @@ -630,10 +789,15 @@ ${curriculum.hpw } ${curriculum.start } ${curriculum.end } - checked="checked" onclick="checkboxOnclick(this);" /> - + + checked="checked" + onclick="checkboxOnclick(this);" /> + + ${curriculum.unit} @@ -648,6 +812,7 @@ ---- ---- ---- + ---- @@ -667,6 +832,7 @@ 起始周 结束周 开课 + 分散 @@ -682,10 +848,15 @@ ${curriculum.hpw } ${curriculum.start } ${curriculum.end } - checked="checked" onclick="checkboxOnclick(this);" /> - + + checked="checked" + onclick="checkboxOnclick(this);" /> + + ${curriculum.unit} @@ -700,6 +871,7 @@ ---- ---- ---- + ---- @@ -719,6 +891,7 @@ 起始周 结束周 开课 + 分散 @@ -734,10 +907,15 @@ ${curriculum.hpw } ${curriculum.start } ${curriculum.end } - checked="checked" onclick="checkboxOnclick(this);" /> - + + checked="checked" + onclick="checkboxOnclick(this);" /> + + ${curriculum.unit} @@ -752,6 +930,7 @@ ---- ---- ---- + ---- @@ -771,6 +950,7 @@ 起始周 结束周 开课 + 分散 @@ -786,10 +966,15 @@ ${curriculum.hpw } ${curriculum.start } ${curriculum.end } - checked="checked" onclick="checkboxOnclick(this);" /> - + + checked="checked" + onclick="checkboxOnclick(this);" /> + + ${curriculum.unit} @@ -804,6 +989,7 @@ ---- ---- ---- + ---- diff --git a/WebContent/jsp/QueryCurriculums2.jsp b/WebContent/jsp/QueryCurriculums2.jsp new file mode 100644 index 0000000..6703180 --- /dev/null +++ b/WebContent/jsp/QueryCurriculums2.jsp @@ -0,0 +1,885 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> +<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> + + + + + + + 实施进程表 + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+

备选课程

+
+
+
+ + +
+ + + + +
+ + +
+ +
+ + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称
${course.id }${course.name}----${course.score}0${course.theoretical}${course.experiement}0117
+
+
+
+
+ + +
+ +
+
+

实施进程表

+
+
+ + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称课程编号学分学期学时理论学时实验学时周学时起始周结束周开课分散
${curriculum.id }${curriculum.name }${curriculum.identifier }${curriculum.score }${curriculum.time }${curriculum.theoretical }${curriculum.experiement }${curriculum.hpw }${curriculum.start }${curriculum.end } checked="checked" + onclick="checkboxOnclick(this);" /> + checked="checked" + onclick="checkboxOnclick(this);" /> +
##小计----00000----------------
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称课程编号学分学期学时理论学时实验学时周学时起始周结束周开课分散
${curriculum.id }${curriculum.name }${curriculum.identifier }${curriculum.score }${curriculum.time }${curriculum.theoretical }${curriculum.experiement }${curriculum.hpw }${curriculum.start }${curriculum.end } checked="checked" + onclick="checkboxOnclick(this);" /> + checked="checked" + onclick="checkboxOnclick(this);" /> +
##小计----00000----------------
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称课程编号学分学期学时理论学时实验学时周学时起始周结束周开课分散
${curriculum.id }${curriculum.name }${curriculum.identifier }${curriculum.score }${curriculum.time }${curriculum.theoretical }${curriculum.experiement }${curriculum.hpw }${curriculum.start }${curriculum.end } checked="checked" + onclick="checkboxOnclick(this);" /> + checked="checked" + onclick="checkboxOnclick(this);" /> +
##小计----00000----------------
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称课程编号学分学期学时理论学时实验学时周学时起始周结束周开课分散
${curriculum.id }${curriculum.name }${curriculum.identifier }${curriculum.score }${curriculum.time }${curriculum.theoretical }${curriculum.experiement }${curriculum.hpw }${curriculum.start }${curriculum.end } checked="checked" + onclick="checkboxOnclick(this);" /> + checked="checked" + onclick="checkboxOnclick(this);" /> +
##小计----00000----------------
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称课程编号学分学期学时理论学时实验学时周学时起始周结束周开课分散
${curriculum.id }${curriculum.name }${curriculum.identifier }${curriculum.score }${curriculum.time }${curriculum.theoretical }${curriculum.experiement }${curriculum.hpw }${curriculum.start }${curriculum.end } checked="checked" + onclick="checkboxOnclick(this);" /> + checked="checked" + onclick="checkboxOnclick(this);" /> +
##小计----00000----------------
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称课程编号学分学期学时理论学时实验学时周学时起始周结束周开课分散
${curriculum.id }${curriculum.name }${curriculum.identifier }${curriculum.score }${curriculum.time }${curriculum.theoretical }${curriculum.experiement }${curriculum.hpw }${curriculum.start }${curriculum.end } checked="checked" + onclick="checkboxOnclick(this);" /> + checked="checked" + onclick="checkboxOnclick(this);" /> +
##小计----00000----------------
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称课程编号学分学期学时理论学时实验学时周学时起始周结束周开课分散
${curriculum.id }${curriculum.name }${curriculum.identifier }${curriculum.score }${curriculum.time }${curriculum.theoretical }${curriculum.experiement }${curriculum.hpw }${curriculum.start }${curriculum.end } checked="checked" + onclick="checkboxOnclick(this);" /> + checked="checked" + onclick="checkboxOnclick(this);" /> +
##小计----00000----------------
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ID课程名称课程编号学分学期学时理论学时实验学时周学时起始周结束周开课分散
${curriculum.id }${curriculum.name }${curriculum.identifier }${curriculum.score }${curriculum.time }${curriculum.theoretical }${curriculum.experiement }${curriculum.hpw }${curriculum.start }${curriculum.end } checked="checked" + onclick="checkboxOnclick(this);" /> + checked="checked" + onclick="checkboxOnclick(this);" /> +
##小计----00000----------------
+
+
+ +
+ + +
+ +
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/build/classes/cn/edu/hrbcu/curriculum/controller/CurriculumController.class b/build/classes/cn/edu/hrbcu/curriculum/controller/CurriculumController.class index ec43fe519f13fef1727ff91beb4ec1378fdc274c..9db0881e5082ea98a3dd72b74c476b3daf460022 100644 GIT binary patch literal 36431 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 diff --git a/build/classes/cn/edu/hrbcu/curriculum/mapper/CurriculumMapper.xml b/build/classes/cn/edu/hrbcu/curriculum/mapper/CurriculumMapper.xml index d677f70..489dff6 100644 --- a/build/classes/cn/edu/hrbcu/curriculum/mapper/CurriculumMapper.xml +++ b/build/classes/cn/edu/hrbcu/curriculum/mapper/CurriculumMapper.xml @@ -11,6 +11,7 @@ + @@ -71,7 +72,7 @@ - id, specialityid, courseid, semester, start, end, hpw, sort, available + id, specialityid, courseid, semester, start, end, hpw, sort, available, disperse @@ -208,6 +217,9 @@ available = #{record.available,jdbcType=BIT}, + + disperse = #{record.disperse,jdbcType=BIT}, + @@ -223,7 +235,8 @@ end = #{record.end,jdbcType=INTEGER}, hpw = #{record.hpw,jdbcType=DOUBLE}, sort = #{record.sort,jdbcType=INTEGER}, - available = #{record.available,jdbcType=BIT} + available = #{record.available,jdbcType=BIT}, + disperse = #{record.disperse,jdbcType=BIT} @@ -255,6 +268,9 @@ available = #{available,jdbcType=BIT}, + + disperse = #{disperse,jdbcType=BIT}, + where id = #{id,jdbcType=BIGINT} @@ -267,7 +283,8 @@ end = #{end,jdbcType=INTEGER}, hpw = #{hpw,jdbcType=DOUBLE}, sort = #{sort,jdbcType=INTEGER}, - available = #{available,jdbcType=BIT} + available = #{available,jdbcType=BIT}, + disperse = #{disperse,jdbcType=BIT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file diff --git a/build/classes/cn/edu/hrbcu/curriculum/pojo/Curriculum.class b/build/classes/cn/edu/hrbcu/curriculum/pojo/Curriculum.class index 290da053239cfbc29850606898ab2ee57df0775b..34bd745e8ef3babbcb9b2d9223b8a436f83d54d0 100644 GIT binary patch literal 2563 zcma)+Yj4v?6o${FZIZTzu)VS3x@EUZ6QG6#mRl*?rY!`*HM9~)d~lpm>ngP?#|ACG z3M3E`ANT?MsMWq_>@@K(mWUJ|d**#TkIy+X-~apijfk$%R*4FN&bz)XJF&eRw%yov z<1qBxxEt@=2fBBj)d+<)s)R1yLh_N(;qrHH2i8!F6_-8Vi&ns~Slz~w^`IjsXoSvKbb?L_sx&=cK8g3+ zGJKgJOf>`7>25p75-`)j(P-D}392@KvJjkx9T_!{fT_jm(8sIvj+3B2EhsOK8*DRVO zD{&9>bHki{Iir>tl`GHQTNWK*ZT^+Pr_T&2v$JVArQ#8%{AY;gU zeP7SZa_ZO9E@l67i)Pr*sqc>qnrNXquH5u^>s1E(c8T{N&BHf>{}}RK;O;;R7r53c zqLM12CMqJoDk76AB0VbNi&X@^ioifTL9;Z6cOO?{zv4;o2Eg?cMr=fZI9B^Yr#~vm zSzL?BApM4WE4`nmb9fT;JN>?%)pC*$lFz zgIoc~UpXM$Aq;W_iXTgJRR_6l1i4Osr{+v)uIeDS0CGDAgjL7QGAh*pR zH+7IzfUM?Lia{F4*^e1{q=URMf;^@t xsX3F8M>>cDkai9TpOXyo)ClrS2a!gQ7iN%WI*135y&Moes2QY%^UOJC_Rrs6zX4zwPE!zLFs+*^uY2m5UDG{P_iWqH zy{31eURvjtTDCLC9@T?TP(qBDMW z`H4ZcL%Cyl7#f8=jzzjI}$PUjo9Evv~j6NQ70&s^oUV_4?v(hdW5$Y7vonHbA- zt6J0J3CtJ$F$T#s!!+D=44%tZF;3B{^FD~fZ3S+^7=ujNF!`}}QRDWjAa1s7=~}a@ zVQP>qT>S9~V zO{i3E@~$c{K;ASl20f6({av$8yK4$uqunI#;u1dK-T^hoaD*mo53+12kb%L#;wwiw zIYJ>}qzD6>iA;M6T&FlGqVO9`!QHKPk3|pP>N2t(DUgLBYW|2Ja{88@!uC}#?>gTz z=q6>_*KnS$6Wqf$#_>Oa^@vg3u{mQ@MSsQ``7>tQpD}a(j5+dWJh(sOS^OEna2|tU z7{Par`fE3EjZsVEIF2hS&J5?o%ul%W&6nK4F&QkvU3^x;=Ly8ay8`!N633|dJ4}5Q z%;Qq?LzoWD>v*ylg_@cD0aNYJbaFs%0w(-7j0P(FMd1mJ@=}T2Pudk`v`K- z1%xgqfvm#@j$&yxMUW#Y$Tk#1bEGtzBFG7XoOS`BuLFVXNHel4f>fj+`|^zJiXd+g wn&pUdFv%rb?d*n7jC-g_~L zrjeM$^k_`)y_nv6FDB>r=G~e5b`R(CA?qJ7%-s9Er`&VzeeZX9>Y2wLC!(e9p+@TG zXjyx{De9;+?J4eVuQat+ip6YuC0FTc>MrapG&R@0uRoaS>dr;8nv2cJ(>KL z;`)7+Om17jQQN%My_x-)rd%f9+0>FRN1ah|<^2EK9%3BDG@M2xmZPqyBvxCaQYmE_ z9mg__M#pL5VsoKVEJfK4-OJ6Pm#u|-XCGah$TW_|I~p&RTRK$drZ7!H7nUxYx(~FJ z+A6u6qm}demYiu!C(zXDuv-hoa$BL?l6T|-tdz64rq*n!+{XZCGEJu$js|1)#Y{^c z37^9>3%^cGepLgX&omdaGPD|a>>%JpObY;ymf!tst&PeDqDcJT*=vG=vU(OK>=dSx zX>rx~x@@UCl48+ocx|DOi!%8>=5Hy}sdSp73DqR@N|dAX!id)uDza$%XmdH!>2yZ5 zDA(-IWOLXEB>hR8n1hu}E8x~xam%McDzi{VaiYW7Osh~{qohMpUID&_=^RWgS_3>` z*D^pvAFTg=E5f`AG_j#Q)T{<<-Wt znOYqUue#>lhu7ybZ9(uOr77MJ!^Uk)7x?a@CHvFx`YXgvHvB)guez+|G0>9LB1EL&*f7=`N-_ zP(C<={h|;2O}TRq)7@|fao4N_W8KemFBaeQu>DwrJ;d|?2Ac$*(km+%@`X&#$G(q) zI_wp6c?r{t&;ruUj>0O9wNNl=R-tS{Nit>(2G%5VR;SVr928S`zzAAjwF!&*+55grp z9N`3rACA!QQKk?3B%;!Swe|_7k0C+HCJ?kd$@EF2S1E;{*Qc32g;ez{g`mslm_CCp zINxg7ti}9Arq3g0Y;<7>^hoztn7)KTP{m<4AAf4rzs~ekbgs>M;LW#~zTqpPnxy(U z{avPSBTqyovea^bss0_)Z{P=N#9Q(?Li-G0fR%_r~O#jZDZF8mr(RR2SHzWcRsr<{=o6W zrK@opy9?k7-TxaZc;(}*&1{xkCk)3=1&Lv44DcMgy&lJonJU5pyDqryB1@|?>7ELrueTV{^%5ps3U9I?k^D464_k~#fEx35ixE*!b?zM&BywQ_g~@)m zg@}}>`SxCm5q(kh?fn)cqN8T$af=Z>QilFB9Us$H!Vh_(}W32^g9+JqH2Pq*Xj2y=xIHk zA6ks4uZnL!u@I4D73Aj@BI;~{q~05UWig`GYRqpfMig9)`GduXysI&PwiuCoHRf*? zBPwvhgjMiQ3lSk$L7p)XD8#)H=PX1NVhD57Q3F$4m(7LO%TK-pHzOtm}{wOcbY-C{%uSIo?` z5Ru0fWR8W1RIYh8-(o~LSIjK35Yf~%GnS|UtzBbIv+RfpuQ8`vjEM6Zv)p1tyw{kO z79&!=#++?2BJ(FqSkh}OMC5r)p?hZ7@QbKT9CSk%{-)JFnqoc-iiv`I|kLKI$$7JMxXy1u5-QDHxme0wek~??A V-AjYree(GL4VJ5~BksWl{vRXJqmBRo literal 10711 zcmb`Ncbrt!701tog=LpRFCs-i`hu(q3J4;ww2^g1JT zTTT<+6_uh&z83ZSRUD1oR45f{n;nf_zG9!FmacMt)J~(RjcE*xbu_8FP>Oo$gNLF@ zZ~jm*ax}HO+?Oxz%Zn58J$cwtJ6xzb+R%NP9(hMLI+~j=_3y3aE45vfNPMjH9?q98 zuk1Kl&lh{kj(V1NAITrfcNX)dfzDj177av|jVu0dd)VU?rinBuu^bIXRk7L~RjV1x zm^htjDkjbs7rV;!N;N9<>t5~&z3eWR21e-OET$PW)6q<^oa+|IPk=UEm@ z^Sp~`2iBVoXejC{2-Ls09CLWIfcww1>L0m6#+2 zyS{?ya&+!&@lQHeJ5eyLm+4BRcZN($(<^OWuA$R0<7%d>(5n*=iR2(_#C$)~gAoFZ zh>3Ln2gCg*MHp=V0V&Jtm=4f2Vfcf+=a~*7sjCFhAlImdA+nDY~D2Asx znDS1hw_^%k6KS;4J-wUh1ongjFii2VaK4x69xQ??4X3GDeLvItFgeX?;LV4aKHxLn z2vYM5{V3Ci5hnyN*B?ao6HFgNs)i*qSoTv)pY)rI3rV8iT==t0pT@!nfiH$;dcMH) zIgHN1-m)iFrdYqs^hLOiveROKRDX@>EARuSqqpQ^gz;}OeI4VdtcIWQd-*#|-$E9E zr8x?=_kE`C#z)*hRNGoC`YXGXqFgcKJ9+am2s1xs`T_m0@m}_BWFqo2rk`NX@!2nX zZbsvmOh3m+Tv5r3Y*;b;hUr%bMEnXEc4>$8-!uId<9O+34i^mmiRllBz#>E-IKl!O znW+Dj>Cc#tV#?uS5!A&$nEr;khzm`25k~soO#g%vt%d47xs~+CKd<(S2U1`3AG*I$ z4cT`-Mn|)A=sO$>IW%!vMs6&-7KA43|7Mb08@pCm#AP@p8&?Cz?An3F_cVVs@P~t& z#BKsc(SXtrrwD_a%5E|ikFVoF*fI{zU^fkGH5w>zZ5F$knIHyZbJ)c{UXU$cEB<(J zXR(`$!fb8q3B~FbvYU@*@yUc^(1$(Dn_JB8>^K@yvc6tHFJrd^rHS~ar5@juTnD@5 zSQteqp=c)Box^UWe;0Tk8_c=vR)fLsLVxc%RSeg#I}a|!ud^f(nSyc`vRex~xHL;? zG)!z@w+|&>G4dRAOUBNEC8{=}Hy61C^3BByD#HobB z&Xz7luV!}@%*SOPR%~2E``N{};xIIU@7JK0Sd&s>#=X zt1CHLe|or=o63T=B@5y2Q%+KnXd%fVC&Cud5Vb%%lJBkZZH;_7`5e=6g2vq~e;GyX z^51s(q*1q1%cwhOynN@zB>9{`GbGE?T#*p8JaX!2d@3NS$O2ega}BN~my zOtTnKS2X4fi;)vcV`f{7XekM^L_U2$&ax2EMKm*KTa2hC8neV=L`2b;q9YNfSf<*F0ZX+a`vXol8Uj0h7Nv(92fuF#l^EJoA}jk(xjMCQ<#Efyo{ zhsJbSj3^@-v(sWkEYX;p#fZL`N9Ss+`7r)nY`c)0l5qjL3Kz^KFX} zX-{LmXE7r0B}`ZaKe7-J{1oJ;79vWZg8aflL>bgJ^J|L{wNPVzXE7ooYRn%kMubF- z`HRJfz?d-E-ub%)iSno!`j^FsCYdl{M*n-~sef%d5h@ikZj@mL3g*dX+!zZHRZ}xF z&SFIIRLqRG5RpL@WTJ(LB&vBf#bQJuRm@Dc5YbLGGnPUDO;uwog#uEm#>}&P6Dd|> z7Fdi3vl_F=Vnnn}n4mn}QVS6=S2MH1VnpUmm`uC5RTd-)ux7|oHJ}7*%=wlb(S}v$ zF0dfcjx|H;Ek-0|)zC%@5~*1;wAo@re^w1`wIETXRcN~fiCC?9x65KgzSfvaEk;!B zgbC}^(n6qeYi2Ah1j4t*SXv0=aE-CV5QyX&V~HV9&Nb#5D{LaBCrlW&gBBtRdxB(J w^^gUL@~-(7osyA%p*et8pgZge@;O^nOXrTbBDJ|e`7BeL{J(}HZm5O-2SzCc;{X5v diff --git a/build/classes/cn/edu/hrbcu/curriculum/pojo/CurriculumExample$Criterion.class b/build/classes/cn/edu/hrbcu/curriculum/pojo/CurriculumExample$Criterion.class index 054b2ddeed6b3fce0db9fe6d4f24cfc16468e7c9..86176c796911f2e8a3eabdf5394edbf0d9174ef6 100644 GIT binary patch delta 197 zcmW;DzYf7r6vy#%dv5O^LbO%1iAuV3wuyKEya*mZVr=3O&Wo5jipk^^3L>zvNqnWq7EhxYF2<=^_hpbFzLR?yQ-3xV`87bULwKPBrW8G*yN8up-*3Nl=6I zzF@r{v=JaeK}WUDQG!GtEGoV=-v&~&Fv14p*n|RGG}k+Y9ncuiS#MJ8auIXUS U01`|f!;}_grEmxaGpfw;4?8y~4FCWD delta 197 zcmZn=Y7pA6jfHXHWJ6Zb$!A#98JB`toUH1MD}gK<#5N0|$c^_Mb64MEw@JXQXDWLFapzs+6 zDWx~u#^D73Mdvm< diff --git a/build/classes/cn/edu/hrbcu/curriculum/pojo/CurriculumExample$GeneratedCriteria.class b/build/classes/cn/edu/hrbcu/curriculum/pojo/CurriculumExample$GeneratedCriteria.class index 598af37939294f3a07830d299383a1d7dbdcfd21..74430a06fb8cf5b6ef6eda97c7a13df2f3e0c33f 100644 GIT binary patch delta 921 zcmZvbOH30{6o$_~FmwbAAPzOANL^`Cf-Z2OmPeabL!!unjVq~P5}VX1c80hzUAWO0 zU2qq&&_rG60%Igb7nq=1@%;qf_`(T>fbd|k@!Po$jzE9Y2UPWNCYW8f;Nw!f5x(@xmt6tsB0nRScu z4JPyCtXpbWq%9)?8IG=;RPU5>FLh8e%k|3m1l*c?Vtul+?cac zu9fTEk+KauR3E@%lOl?~N;8iq>a6xQP`#pTvK*&4=(##53JU$l+LH56_)?u3<*5r5 zzl#s{rYPj)s>5lUm#i3k*@E;ARO8>%=2aFvb&+w)-ECQHepFx5_G0?a{(Sq3|CZp0 zJ)uPT9H@mqf)+6s+JOAIb&Y#hmH}79>NO@N#IaaV-$wy$zvx+O;+jma%k&_phh%zF z48%?SR-_(xhB|`!5LIbH^u(KRPlEd%ILu&Jf=LOcJaB};Q3)PN@Yn;#8Jv*dsRYkF zaFW3(38p1@;einbrzLnLmL(eX*99Ot6G8nflTk6dJ`xxw5HKV8Tc4k2enH{y#kQnb z@gdS&7!Yf1sL;l!TDvIvVoSuCWDW1=lQcdn#w9i`myEg`NFpF7j;4*=aX7(oC4 diff --git a/build/classes/cn/edu/hrbcu/curriculum/service/CurriculumServiceImpl.class b/build/classes/cn/edu/hrbcu/curriculum/service/CurriculumServiceImpl.class index 0761bb5c3abb4368892b0a6f8589a8e2f20f6279..dc4c80f51f9af93f3381756343f6c9a573b64b2c 100644 GIT binary patch delta 2242 zcmb_eX>3$w6g_w5%}hJWu?rswT$5^NSJpMotZitlHO}|w_!OV; zyz%C_3v=BLr zebY4K(ziNhW8a4RJ?&!uUB@Y$R!K2$YJckZOT8a6$bMeO1zc42*iH6p0tc?E?Xl^a zh*;E-*xXdnbg`jX5LGvQ_Q;z0rdp>sB-$ZS${&|&b&5+3iF?Byqf0C!pN$)-`E*HB zL*wUY*@A2}Ps>P{(PWe-0mSkldAj6FS9Lx<=qb?Qg6@)_6gi|&6(^KfyGsu>F=3bl zHf&6&7W*B#+$sGx#3v2XqI0033m~)9xYPytYYIbnN>Hx1V2M``;aR~pRF%7|J)PdD z$SY3^YLv(4lPXo3sHbL_(QVj&!;EUf0n=Q|c58^^b18DwUSCbK12e^m zS>ncINk)^TVUFZsqV&LA>4V2*5T1}>tl|M?KOPHYIu;?G{>vhDA_0l~ixr~|Q`k$x znu>Z@OzR*H!3rzAzT=q&U25??&ur)cH!_jc3_FI4ABTBp$7rVT11$$0mM-{_Rura+ z9Y4{E#&ogb2!4hWtMD9tK^8mHj{9(wmYd1;#;?5R!f(vyZpJWDIf!FSAOagEYy>OZ ziIpAh1UuFVb_~%s!i5>`xEh|mR>rEU>CJLNdHg=LEF)e{sI_p6o+jZ=^d}o>h{XU@Fc~8~-CzoZID;^)I} zJM+Qn<+N51<2B@BB}(|)j|3P!D4-V@|3(jJ8GIX2`k8!N=wY&a3#xJJn1QNJW(Hli zqV<(O)VQq7>bDr%= zwh4HbHN3}M){)Ki+C_P=xS&n-Rov2w9Z}^a|hgHT_fxB0!iXg z%K{bBMI8)GD&E1--ia8hZ8CPlk3A@&!j@4@2VyUVQa?wNuLkT#Gk+K2fNIF@W{txk zwJO_JVRYQiTNM&d%fWk*jz^i;S*#0KEODGOE92c`_P*o3G5g2WmFy8+65t^t(Y$Mi zNTM2(lkQ2{jG_>pr?3PQBt^~7$>g&oC#%`enhqhdd2JLqQ-^H9kfi?WmECJ+L(Nxq z-Z8w^5x{E7&tR?tC;6PSgQcnqhS z@eEF5F?VMP&YC?imz|0h*#ir=@QkE$!kw%c8V!6Rt6nn%7n&{MUu(4HpYvW zER#oLH;s-)Jj0!y273|DFuWbEhMq)R4LuR@tHZg4NrCD%$tfo5zNUxtW>v>keSVq*)WZC%w15M19msWXHmR-BN6HCpZn5-L zALo}yKXoBLgOeXc@s5=kr0|2A$=S=}Y?g4Ux_9-v2S|mPaL`CtjqRG;t3wZ?*rkYE cTV)^-Ed2I#Ok^bit9WMow@`*$8I0(E0AS(E^8f$< delta 2206 zcmb_eX>e0z6g@Y2Nt)&*-Ip|Jn>O7jX@SxfC|D@93@$jJBM3NyMUbt46pF(#R#8V$ zK=2zG1yM#s#t|I~NC}KAKO9y;c2`i!A}E_8n+TrwQVPEv|GaneeRn?sL+ zqhlZT2;8+JMpQS{*N=I+p{`-Pp>#mU6zo~^if5zPPwV&?i&;ClUvXy^AhgrQ4e7dJky}dP#ocz4ISY|CIYadf1{+}TOQgmgeiPS$${Zw!}pY; z=tA%=*kzmK$f*psm)m;nSolx`ASK1%D%?#WsE+bnF&v-&ks)w_D>TpJaoKj~q ze2sHi&OAc004apk4~1;JZ30!uvVo#IKv6o&EQNZ>s67#`nhTwRBM)(ccHyUZJAb2d=xOQy7mDQzYwThIwx)uikcv8&nH>0Sqc z*VLst zhBFw=Rhh(5pN?~Q3Fk2f7r0ax)%@I)#HZShloT8mL4pTiBb3r9l`GOM@^(e59b(aaDPF!DRp7X2~!L53Q5T z!nG3g+QO2nhUIyq{S^+c=5?%-_G(sM5B7I+UPiaeWSA?&;40E^4FS?w5pJM{U#>^_ zeiFAZl3%Vm?*C-5U=}&~b?LJ#xVIb-qT$i_vKG*N|3AL3IG}F|O%0)8x(AKszQA|9-> curriculums = new ArrayList>(); //保存小计信息 Map total = new HashMap(); - double[] t = new double[10]; + double[] t = new double[10];//所有时小计 + double[] t_w = new double[10];//所有周小计 + double[] d = new double[10];//开课,分散时小计 + double[] d_w = new double[10];//开课,分散周小计 List curriculums_ = curriculumService.selectAllCurriculumBySpecialityandSemester(specialityId, i); if (curriculums_ != null && curriculums_.size() > 0) { for (Curriculum curriculum : curriculums_) { + if(!curriculum.getAvailable()){//课程没有开课,跳过 + continue; + } + Map c = new HashMap(); Course course = courseService.selectCourseById(curriculum.getCourseid()); + Boolean isDisperse = curriculum.getDisperse(); + int unit = course.getUnit(); c.put("id", course.getId()); c.put("name", course.getName()); c.put("identifier", course.getIdentifier()); - c.put("score", course.getScore()); + + c.put("score", course.getScore()); + if(!isDisperse){ t[0] += (course.getScore()==null) ? 0 : course.getScore(); + }else{ + d[0] += (course.getScore()==null) ? 0 : course.getScore(); + } + c.put("time", course.getTheoretical() + course.getExperiement()); + if(!isDisperse){ t[1] += (course.getTheoretical() == null || course.getExperiement() == null) ? 0 : course.getTheoretical() + course.getExperiement() ; + }else{ + d[1] += (course.getTheoretical() == null || course.getExperiement() == null) ? 0 : course.getTheoretical() + course.getExperiement() ; + } + c.put("theoretical", course.getTheoretical()); + if(!isDisperse){ t[2] += (course.getTheoretical()==null) ? 0 : course.getTheoretical(); + }else{ + d[2] += (course.getTheoretical()==null) ? 0 : course.getTheoretical(); + } + c.put("experiement", course.getExperiement()); + if(!isDisperse){ t[3] += (course.getExperiement()==null) ? 0 : course.getExperiement(); + }else{ + d[3] += (course.getExperiement()==null) ? 0 : course.getExperiement(); + } + c.put("unit", course.getUnit()); c.put("hpw", curriculum.getHpw()); - t[4] += (curriculum.getHpw()==null) ? 0 : curriculum.getHpw(); + if(!isDisperse){ + if(unit == 0){ + t[4] += (curriculum.getHpw()==null) ? 0 : curriculum.getHpw(); + }else{ + t_w[4] += (curriculum.getHpw()==null) ? 0 : curriculum.getHpw(); + } + }else{ + if(unit == 0){ + d[4] += (curriculum.getHpw()==null) ? 0 : curriculum.getHpw(); + }else{ + d_w[4] += (curriculum.getHpw()==null) ? 0 : curriculum.getHpw(); + } + } c.put("start", curriculum.getStart()); c.put("end", curriculum.getEnd()); c.put("available", curriculum.getAvailable()); + c.put("disperse", curriculum.getDisperse()); if(available){//若果只查已开课的 if(curriculum.getAvailable()){ @@ -295,17 +342,42 @@ public class CurriculumController { } } //保存学期的小计信息 - total.put("score", t[0]); - total.put("time", t[1]); - total.put("theoretical", t[2]); - total.put("experiement", t[3]); - total.put("hpw", t[4]); + total.put("score", t[0] + d[0]);//学分不分是否分散,全部统计 + total.put("time", double2String(t[1])); + if(d[1] > 0D){ + total.put("time", double2String(t[1]) + "(" + double2String(d[1]) + ")");// + } + + total.put("theoretical", double2String(t[2])); + if(d[2] > 0D){ + total.put("theoretical", double2String(t[2]) + "(" + double2String(d[2]) + ")"); + } + + total.put("experiement", double2String(t[3])); + if(d[3] > 0D){ + total.put("experiement", double2String(t[3]) + "(" + double2String(d[3]) + ")"); + } + + if(t_w[4] > 0D || d_w[4] > 0D){ + total.put("hpw", double2String(t[4]) + "/"); + if(t_w[4] > 0D){ + total.put("hpw", (String)total.get("hpw") + double2String(t_w[4])); + } + + if(d_w[4] > 0D){ + total.put("hpw", (String)total.get("hpw") + "(" + double2String(t_w[4]) + ")"); + } + + total.put("hpw", (String)total.get("hpw") + "周" ); + }else{ + total.put("hpw",double2String(t[4])); + } semester.put("course", curriculums); semester.put("total", total); - all_curriculums.put("semester"+i, semester); + all_curriculums.put("semester" + i, semester); } return all_curriculums; @@ -342,11 +414,13 @@ public class CurriculumController { t[2] += (course.getTheoretical()==null) ? 0 : course.getTheoretical(); c.put("experiement", course.getExperiement()); t[3] += (course.getExperiement()==null) ? 0 : course.getExperiement(); + c.put("unit", course.getUnit()); c.put("hpw", curriculum.getHpw()); t[4] += (curriculum.getHpw()==null) ? 0 : curriculum.getHpw(); c.put("start", curriculum.getStart()); c.put("end", curriculum.getEnd()); c.put("available", curriculum.getAvailable()); + c.put("disperse", curriculum.getDisperse()); c.put("semester", CharacterUtil.num2roman(curriculum.getSemester())); curriculums.add(c); @@ -428,13 +502,12 @@ public class CurriculumController { } private Map querySchedule(Long specialityId, Boolean is){ - /*double total_time = 0;//总学时 - double total_theoretical_time = 0;//理论总学时 - double total_experiement_time = 0;//实验总学时 - double total_score = 0;//总学分 - */ - double coursemode_theoretical_time = 0;//课程模式理论学时 - double coursemode_experiement_time = 0;//课程模式实验学时 + double coursemode_theoretical_hour = 0;//课程模式理论学时 + double coursemode_theoretical_disperse_hour = 0;//课程模式理论分散学时 + double coursemode_experiement_hour = 0;//课程模式实验学时 + double coursemode_experiement_disperse_hour = 0;//课程模式实验分散学时 + double coursemode_practice_week = 0;//课程模式实验学时 + double coursemode_practice_disperse_week = 0;//课程模式实验分散学时 double coursemode_score = 0;//课程模式学分 List> platforms = new ArrayList>(); List speciality_curriculums = curriculumService.selectAllCurriculumBySpeciality(specialityId, is); @@ -460,8 +533,8 @@ public class CurriculumController { List> coursemodes = new ArrayList>(); if(cms != null && cms.size() > 0){ for (Coursemode cm : cms) { - coursemode_theoretical_time = 0D; - coursemode_experiement_time = 0D; + coursemode_theoretical_hour = 0D; + coursemode_experiement_hour = 0D; coursemode_score = 0D; //(4) 查询该模式下所有的课程 // selectCourseBy @@ -477,25 +550,52 @@ public class CurriculumController { Map obj = new HashMap(); List curs = curriculumService.selectAllCurriculumBySpecialityandCourse(specialityId, course.getId()); if(curs != null && curs.size() > 0){ - obj.put("semester", CharacterUtil.num2roman(curs.get(0).getSemester())); + String rets = ""; + for(int k = 0; k < curs.size() ; k++){ + rets += CharacterUtil.num2roman(curs.get(0).getSemester()); + if(k < curs.size() - 1){ + rets += ","; + } + + if(course.getUnit() == null || course.getUnit() == 0){ + if(curs.get(k).getDisperse()){//分散 + coursemode_theoretical_disperse_hour += ((course.getTheoretical()==null) ? 0 : course.getTheoretical()) ; + coursemode_experiement_disperse_hour += + ((course.getExperiement()==null) ? 0 : course.getExperiement()) ; + }else{ + coursemode_theoretical_hour += ((course.getTheoretical()==null) ? 0 : course.getTheoretical()) ; + coursemode_experiement_hour += + ((course.getExperiement()==null) ? 0 : course.getExperiement()) ; + } + obj.put("hour", (((course.getTheoretical()==null) ? 0 : course.getTheoretical()) + ((course.getExperiement()==null) ? 0 : course.getExperiement())));//课程总学时 + }else{ + if(curs.get(k).getDisperse()){//分散 + coursemode_practice_disperse_week += (((course.getTheoretical()==null) ? 0 : course.getTheoretical()) + ((course.getExperiement()==null) ? 0 : course.getExperiement())); + }else{ + coursemode_practice_disperse_week += (((course.getTheoretical()==null) ? 0 : course.getTheoretical()) + ((course.getExperiement()==null) ? 0 : course.getExperiement())); + } + obj.put("hour", (((course.getTheoretical()==null) ? 0 : course.getTheoretical()) + ((course.getExperiement()==null) ? 0 : course.getExperiement())) + "周");//课程总学时 + } + } + obj.put("semester", rets); obj.put("available", curs.get(0).getAvailable()); }else{ obj.put("semester", ""); obj.put("available", ""); } - - + + if(course.getUnit() == null || course.getUnit() == 0){ + obj.put("hour", (((course.getTheoretical()==null) ? 0 : course.getTheoretical()) + ((course.getExperiement()==null) ? 0 : course.getExperiement())));//课程总学时 + }else{ + obj.put("hour", (((course.getTheoretical()==null) ? 0 : course.getTheoretical()) + ((course.getExperiement()==null) ? 0 : course.getExperiement())) + "周");//课程总学时 + } obj.put("name", course.getName()); obj.put("score", course.getScore()); - obj.put("time", ((course.getTheoretical()==null) ? 0 : course.getTheoretical()) + ((course.getExperiement()==null) ? 0 : course.getExperiement())); - obj.put("theoretical", course.getTheoretical()); - obj.put("experiement", course.getExperiement()); + obj.put("theoretical", course.getTheoretical());//课程的理论学时 + obj.put("experiement", course.getExperiement());//课程的时间学时 + list.add(obj); ///////////////////////////////////////////////////////////////// - coursemode_theoretical_time += ((course.getTheoretical()==null) ? 0 : course.getTheoretical()) ; - coursemode_experiement_time += + ((course.getExperiement()==null) ? 0 : course.getExperiement()) ; coursemode_score += ((course.getScore()==null) ? 0 : course.getScore()) ; } @@ -504,18 +604,23 @@ public class CurriculumController { Map coursemode = new HashMap(); coursemode.put("courses", list);//所有课程 + 其他信息 //coursemode.put("courses", courses);//所有课程 - coursemode.put("theoretical", coursemode_theoretical_time);//理论学时 - coursemode.put("experiement", coursemode_experiement_time);//实验学时 - coursemode.put("time", coursemode_theoretical_time + coursemode_experiement_time); + coursemode.put("theoretical", coursemode_theoretical_hour);//理论学时 + coursemode.put("dispersetheoretical", coursemode_theoretical_disperse_hour);//理论学时 + coursemode.put("experiement", coursemode_experiement_hour);//实验学时 + coursemode.put("vexperiement", coursemode_experiement_disperse_hour);//实验学时 + coursemode.put("hour", coursemode_theoretical_hour + coursemode_experiement_hour); + coursemode.put("dispersehour", coursemode_theoretical_disperse_hour + coursemode_experiement_disperse_hour); + coursemode.put("week", coursemode_practice_week); + coursemode.put("disperseweek", coursemode_practice_disperse_week); coursemode.put("name", cm.getName());//名称 coursemode.put("score", coursemode_score);//学分 coursemodes.add(coursemode); //统计总计信息 - /*total_theoretical_time += coursemode_theoretical_time; - total_experiement_time += coursemode_experiement_time; + /*total_theoretical_hour += coursemode_theoretical_hour; + total_experiement_hour += coursemode_experiement_hour; total_score += coursemode_score; - total_time += (coursemode_theoretical_time + coursemode_experiement_time);*/ + total_hour += (coursemode_theoretical_hour + coursemode_experiement_hour);*/ } } } @@ -542,9 +647,15 @@ public class CurriculumController { private Map queryCourseTimeScore(Long specialityId, Boolean is){ Map ts = new HashMap(); - double[][] theoretical_times = new double[20][10];//理论课学时 - double[][] experiement_times = new double[20][10];//实验课学时 + double[][] theoretical_hours = new double[20][10];//理论课学时 + double[][] experiement_hours = new double[20][10];//实验课学时 + double[][] theoretical_weeks = new double[20][10];//理论课学周 + double[][] experiement_weeks = new double[20][10];//实验课学周 double[][] scores = new double[20][10];//学分 + double[][] theoretical_disperse_hours = new double[20][10];//分散理论课学时 + double[][] experiement_disperse_hours = new double[20][10];//分散实验课学时 + double[][] theoretical_disperse_weeks = new double[20][10];//分散理论课学周 + double[][] experiement_disperse_weeks = new double[20][10];//分散实验课学周 List curriculums = curriculumService.selectAllCurriculumBySpeciality(specialityId,is); if(curriculums != null && curriculums.size() > 0){ @@ -552,79 +663,200 @@ public class CurriculumController { if(is.equals(new Boolean(true))){//是否考虑已开 if(curriculum.getAvailable().equals(is)){//如果已开,则统计 Course theCourse = courseService.selectCourseById(curriculum.getCourseid()); - theoretical_times[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); - experiement_times[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + if(theCourse.getUnit() == null || theCourse.getUnit() == 0){//统计学时 + if(curriculum.getDisperse()){//分散 + theoretical_disperse_hours[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); + experiement_disperse_hours[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + }else{ + theoretical_hours[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); + experiement_hours[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + } + + }else{//统计学周 + if(curriculum.getDisperse()){//分散 + theoretical_disperse_weeks[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); + experiement_disperse_weeks[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + }else{ + theoretical_weeks[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); + experiement_weeks[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + } + } + //学分全统计 scores[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getScore()==null)?0:theCourse.getScore()); } }else{ Course theCourse = courseService.selectCourseById(curriculum.getCourseid()); - theoretical_times[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); - experiement_times[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + if(theCourse.getUnit() == null || theCourse.getUnit() == 0){//统计学时 + if(curriculum.getDisperse()){//分散 + theoretical_disperse_hours[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); + experiement_disperse_hours[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + }else{ + theoretical_hours[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); + experiement_hours[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + } + }else{//统计学周 + if(curriculum.getDisperse()){//分散 + theoretical_disperse_weeks[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); + experiement_disperse_weeks[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + }else{ + theoretical_weeks[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getTheoretical()==null)?0:theCourse.getTheoretical()); + experiement_weeks[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getExperiement()==null)?0:theCourse.getExperiement()); + } + } scores[theCourse.getCoursetypeid().intValue()][theCourse.getCoursemodeid().intValue()] += ((theCourse.getScore()==null)?0:theCourse.getScore()); } } } + //必修课 + double total_compulsory_theoretical_hour = 0; + double total_compulsory_experiement_hour = 0; + double total_compulsory_practice_hour = 0; + double total_compulsory_theoretical_week = 0; + double total_compulsory_experiement_week = 0; + double total_compulsory_practice_week = 0; + + double total_compulsory_disperse_theoretical_hour = 0; + double total_compulsory_disperse_experiement_hour = 0; + double total_compulsory_disperse_practice_hour = 0; + double total_compulsory_disperse_theoretical_week = 0; + double total_compulsory_disperse_experiement_week = 0; + double total_compulsory_disperse_practice_week = 0; - double total_compulsory_theoretical_time = 0; - double total_compulsory_experiement_time = 0; - double total_compulsory_practice_time = 0; double total_compulsory_theoretical_score = 0; double total_compulsory_practice_score = 0; + //选修课 + double total_elective_theoretical_hour = 0; + double total_elective_experiement_hour = 0; + double total_elective_practice_hour = 0; + double total_elective_theoretical_week = 0; + double total_elective_experiement_week = 0; + double total_elective_practice_week = 0; - double total_elective_theoretical_time = 0; - double total_elective_experiement_time = 0; - double total_elective_practice_time = 0; double total_elective_theoretical_score = 0; double total_elective_practice_score = 0; + double total_elective_disperse_theoretical_hour = 0; + double total_elective_disperse_experiement_hour = 0; + double total_elective_disperse_practice_hour = 0; + double total_elective_disperse_theoretical_week = 0; + double total_elective_disperse_experiement_week = 0; + double total_elective_disperse_practice_week = 0; + for(int coursemode = 1 ; coursemode <= 3; coursemode ++){ if(coursemode == 1){//必修课 for(int coursetype = 1; coursetype <= 19; coursetype ++){ if(coursetype == 8 || coursetype == 9){//实践课 - total_compulsory_practice_time += theoretical_times[coursetype][coursemode] + experiement_times[coursetype][coursemode]; - total_compulsory_practice_score += scores[coursetype][coursemode] + experiement_times[coursetype][coursemode]; + //统计学时 + total_compulsory_practice_hour += theoretical_hours[coursetype][coursemode] + experiement_hours[coursetype][coursemode]; + total_compulsory_disperse_practice_hour += theoretical_disperse_hours[coursetype][coursemode] + experiement_disperse_hours[coursetype][coursemode]; + //统计学分 + total_compulsory_practice_score += scores[coursetype][coursemode] + experiement_hours[coursetype][coursemode]; + //统计学周 + total_compulsory_practice_week += theoretical_weeks[coursetype][coursemode] + experiement_weeks[coursetype][coursemode]; + total_compulsory_disperse_practice_week += theoretical_disperse_weeks[coursetype][coursemode] + experiement_disperse_weeks[coursetype][coursemode]; }else{//理论课 - total_compulsory_theoretical_time += theoretical_times[coursetype][coursemode]; - total_compulsory_experiement_time += experiement_times[coursetype][coursemode]; + //统计学时 + total_compulsory_theoretical_hour += theoretical_hours[coursetype][coursemode]; + total_compulsory_disperse_theoretical_hour += theoretical_disperse_hours[coursetype][coursemode]; + total_compulsory_experiement_hour += experiement_hours[coursetype][coursemode]; + total_compulsory_disperse_experiement_hour += experiement_disperse_hours[coursetype][coursemode]; + //统计学周 + total_compulsory_theoretical_week += theoretical_weeks[coursetype][coursemode]; + total_compulsory_disperse_theoretical_week += theoretical_disperse_weeks[coursetype][coursemode]; + total_compulsory_experiement_week += experiement_weeks[coursetype][coursemode]; + total_compulsory_disperse_experiement_week += experiement_disperse_weeks[coursetype][coursemode]; + //统计学分 total_compulsory_theoretical_score += scores[coursetype][coursemode]; } } }else{//选修课 for(int coursetype = 1; coursetype <= 19; coursetype ++){ if(coursetype == 8 || coursetype == 9){//实践课 - total_elective_practice_time += theoretical_times[coursetype][coursemode] + experiement_times[coursetype][coursemode]; - total_elective_practice_score += scores[coursetype][coursemode] + experiement_times[coursetype][coursemode]; + //统计学时 + total_elective_practice_hour += theoretical_hours[coursetype][coursemode] + experiement_hours[coursetype][coursemode]; + total_elective_disperse_practice_hour += theoretical_disperse_hours[coursetype][coursemode] + experiement_disperse_hours[coursetype][coursemode]; + total_elective_practice_score += scores[coursetype][coursemode] + experiement_hours[coursetype][coursemode]; + //统计学周 + total_elective_practice_week += theoretical_weeks[coursetype][coursemode] + experiement_weeks[coursetype][coursemode]; + total_elective_disperse_practice_week += theoretical_disperse_weeks[coursetype][coursemode] + experiement_disperse_weeks[coursetype][coursemode]; }else{//理论课 - total_elective_theoretical_time += theoretical_times[coursetype][coursemode]; - total_elective_experiement_time += experiement_times[coursetype][coursemode]; + //统计学时 + total_elective_theoretical_hour += theoretical_hours[coursetype][coursemode]; + total_elective_disperse_theoretical_hour += theoretical_disperse_hours[coursetype][coursemode]; + total_elective_experiement_hour += experiement_hours[coursetype][coursemode]; + total_elective_disperse_experiement_hour += experiement_disperse_hours[coursetype][coursemode]; + //统计学周 + total_elective_theoretical_week += theoretical_weeks[coursetype][coursemode]; + total_elective_disperse_theoretical_week += theoretical_disperse_weeks[coursetype][coursemode]; + total_elective_experiement_week += experiement_weeks[coursetype][coursemode]; + total_elective_disperse_experiement_week += experiement_disperse_weeks[coursetype][coursemode]; + //统计学分 total_elective_theoretical_score += scores[coursetype][coursemode]; } } } } //必修课 - ts.put("total_coursetype_compulsory_theoretical_time", total_compulsory_theoretical_time);//必修课总理论课的学时 - ts.put("total_coursetype_compulsory_experiement_time", total_compulsory_experiement_time);//必修课总实验课的学时 - ts.put("total_coursetype_compulsory_practice_time", total_compulsory_practice_time);//选修课总实践课的学时 + ts.put("total_coursetype_compulsory_theoretical_hour", total_compulsory_theoretical_hour);//必修课总理论课的学时 + ts.put("total_coursetype_compulsory_experiement_hour", total_compulsory_experiement_hour);//必修课总实验课的学时 + ts.put("total_coursetype_compulsory_practice_hour", total_compulsory_practice_hour);//选修课总实践课的学时 + ts.put("total_coursetype_compulsory_theoretical_week", total_compulsory_theoretical_week);//必修课总理论课的学周 + ts.put("total_coursetype_compulsory_experiement_week", total_compulsory_experiement_week);//必修课总实验课的学周 + ts.put("total_coursetype_compulsory_practice_week", total_compulsory_practice_week);//必修课总实践课的学周 ts.put("total_coursetype_compulsory_theoretical_score", total_compulsory_theoretical_score);//必修课总理论课的学分 ts.put("total_coursetype_compulsory_practice_score", total_compulsory_practice_score);//选修课总实践课的学分 + + ts.put("total_coursetype_compulsory_disperse_theoretical_hour", total_compulsory_disperse_theoretical_hour);//必修课总理论课的分散学时 + ts.put("total_coursetype_compulsory_disperse_experiement_hour", total_compulsory_disperse_experiement_hour);//必修课总实验课的分散学时 + ts.put("total_coursetype_compulsory_disperse_practice_hour", total_compulsory_disperse_practice_hour);//选修课总实践课的分散学时 + ts.put("total_coursetype_compulsory_disperse_theoretical_week", total_compulsory_disperse_theoretical_week);//必修课总理论课的分散学周 + ts.put("total_coursetype_compulsory_disperse_experiement_week", total_compulsory_disperse_experiement_week);//必修课总实验课的分散学周 + ts.put("total_coursetype_compulsory_disperse_practice_week", total_compulsory_disperse_practice_week);//必修课总实践课的分散学周 + //选修课 - ts.put("total_coursetype_elective_theoretical_time", total_elective_theoretical_time);//选修课总理论课的学时 - ts.put("total_coursetype_elective_experiement_time", total_elective_experiement_time);//选修课总实验课的学时 - ts.put("total_coursetype_elective_practice_time", total_elective_practice_time);//选修课总实践课的学时 + ts.put("total_coursetype_elective_theoretical_hour", total_elective_theoretical_hour);//选修课总理论课的学时 + ts.put("total_coursetype_elective_experiement_hour", total_elective_experiement_hour);//选修课总实验课的学时 + ts.put("total_coursetype_elective_practice_hour", total_elective_practice_hour);//选修课总实践课的学时 + ts.put("total_coursetype_elective_theoretical_week", total_elective_theoretical_week);//选修课总理论课的学周 + ts.put("total_coursetype_elective_experiement_week", total_elective_experiement_week);//选修课总实验课的学周 + ts.put("total_coursetype_elective_practice_week", total_elective_practice_week);//选修课总实践课的学周 ts.put("total_coursemode_elective_theoretical_score", total_elective_theoretical_score);//选修课理论课总的学分 ts.put("total_coursemode_elective_practice_score", total_elective_practice_score);//选修课实践课总的学分 + ts.put("total_coursetype_elective_disperse_theoretical_hour", total_elective_disperse_theoretical_hour);//选修课总理论课的分散学时 + ts.put("total_coursetype_elective_disperse_experiement_hour", total_elective_disperse_experiement_hour);//选修课总实验课的分散学时 + ts.put("total_coursetype_elective_disperse_practice_hour", total_elective_disperse_practice_hour);//选修课总实践课的分散学时 + ts.put("total_coursetype_elective_disperse_theoretical_week", total_elective_disperse_theoretical_week);//选修课总理论课的分散学周 + ts.put("total_coursetype_elective_disperse_experiement_week", total_elective_disperse_experiement_week);//选修课总实验课的分散学周 + ts.put("total_coursetype_elective_disperse_practice_week", total_elective_disperse_practice_week);//选修课总实践课的分散学周 - ts.put("totaltheoreticaltime", total_compulsory_theoretical_time);//总的理论学时 - ts.put("totalexperiementtime", total_compulsory_experiement_time);//总的实验学时 + //课堂教学 + ts.put("totaltheoreticalhour", total_compulsory_theoretical_hour + total_elective_theoretical_hour);//总的理论学时 + ts.put("totalexperiementhour", total_compulsory_experiement_hour + total_elective_experiement_hour);//总的实验学时 + ts.put("totaltheoreticalweek", total_compulsory_theoretical_week + total_elective_theoretical_week);//总的理论学周 + ts.put("totalexperiementweek", total_compulsory_experiement_week + total_elective_experiement_week);//总的实验学周 ts.put("totaltheoreticalscore", total_compulsory_theoretical_score + total_elective_theoretical_score);//总的学分 - ts.put("totalpracticetime", total_compulsory_practice_time + total_elective_practice_time);//总的实践学时 + ts.put("totaltheoreticaldispersehour", total_compulsory_disperse_theoretical_hour + total_elective_disperse_theoretical_hour);//总的理论分散学时 + ts.put("totalexperiementdispersehour", total_compulsory_disperse_experiement_hour + total_elective_disperse_experiement_hour);//总的实验分散学时 + ts.put("totaltheoreticaldisperseweek", total_compulsory_disperse_theoretical_week + total_elective_disperse_theoretical_week);//总的理论分散学周 + ts.put("totalexperiementdisperseweek", total_compulsory_disperse_experiement_week + total_elective_disperse_experiement_week);//总的实验分散学周 + //实践教学 + ts.put("totalpracticehour", total_compulsory_disperse_practice_hour + total_elective_disperse_practice_hour);//总的实践学时 + ts.put("totalpracticeweek", total_compulsory_disperse_practice_week + total_elective_disperse_practice_week);//总的实践学周 ts.put("totalpracticescore", total_compulsory_practice_score + total_elective_practice_score);//总的实践学分 + ts.put("totalpracticedispersehour", total_compulsory_disperse_practice_hour + total_elective_disperse_practice_hour);//总的实践学时 + ts.put("totalpracticedisperseweek", total_compulsory_disperse_practice_week + total_elective_disperse_practice_week);//总的实践学周 return ts; } + private String double2String(double num){ + if(new Double(num).intValue() - num == 0){//判断是否符合取整条件 + return String.valueOf(new Double(num).intValue()); + }else{ + return String.valueOf(new Double(num)); + } + } } diff --git a/src/cn/edu/hrbcu/curriculum/mapper/CurriculumMapper.xml b/src/cn/edu/hrbcu/curriculum/mapper/CurriculumMapper.xml index d677f70..489dff6 100644 --- a/src/cn/edu/hrbcu/curriculum/mapper/CurriculumMapper.xml +++ b/src/cn/edu/hrbcu/curriculum/mapper/CurriculumMapper.xml @@ -11,6 +11,7 @@ + @@ -71,7 +72,7 @@ - id, specialityid, courseid, semester, start, end, hpw, sort, available + id, specialityid, courseid, semester, start, end, hpw, sort, available, disperse @@ -208,6 +217,9 @@ available = #{record.available,jdbcType=BIT}, + + disperse = #{record.disperse,jdbcType=BIT}, + @@ -223,7 +235,8 @@ end = #{record.end,jdbcType=INTEGER}, hpw = #{record.hpw,jdbcType=DOUBLE}, sort = #{record.sort,jdbcType=INTEGER}, - available = #{record.available,jdbcType=BIT} + available = #{record.available,jdbcType=BIT}, + disperse = #{record.disperse,jdbcType=BIT} @@ -255,6 +268,9 @@ available = #{available,jdbcType=BIT}, + + disperse = #{disperse,jdbcType=BIT}, + where id = #{id,jdbcType=BIGINT} @@ -267,7 +283,8 @@ end = #{end,jdbcType=INTEGER}, hpw = #{hpw,jdbcType=DOUBLE}, sort = #{sort,jdbcType=INTEGER}, - available = #{available,jdbcType=BIT} + available = #{available,jdbcType=BIT}, + disperse = #{disperse,jdbcType=BIT} where id = #{id,jdbcType=BIGINT} \ No newline at end of file diff --git a/src/cn/edu/hrbcu/curriculum/pojo/Curriculum.java b/src/cn/edu/hrbcu/curriculum/pojo/Curriculum.java index 02d76b4..b9401a2 100644 --- a/src/cn/edu/hrbcu/curriculum/pojo/Curriculum.java +++ b/src/cn/edu/hrbcu/curriculum/pojo/Curriculum.java @@ -21,6 +21,8 @@ public class Curriculum implements Serializable { private Boolean available; + private Boolean disperse; + private static final long serialVersionUID = 1L; public Long getId() { @@ -94,4 +96,12 @@ public class Curriculum implements Serializable { public void setAvailable(Boolean available) { this.available = available; } + + public Boolean getDisperse() { + return disperse; + } + + public void setDisperse(Boolean disperse) { + this.disperse = disperse; + } } \ No newline at end of file diff --git a/src/cn/edu/hrbcu/curriculum/pojo/CurriculumExample.java b/src/cn/edu/hrbcu/curriculum/pojo/CurriculumExample.java index 2cab381..6905b01 100644 --- a/src/cn/edu/hrbcu/curriculum/pojo/CurriculumExample.java +++ b/src/cn/edu/hrbcu/curriculum/pojo/CurriculumExample.java @@ -643,6 +643,66 @@ public class CurriculumExample { addCriterion("available not between", value1, value2, "available"); return (Criteria) this; } + + public Criteria andDisperseIsNull() { + addCriterion("disperse is null"); + return (Criteria) this; + } + + public Criteria andDisperseIsNotNull() { + addCriterion("disperse is not null"); + return (Criteria) this; + } + + public Criteria andDisperseEqualTo(Boolean value) { + addCriterion("disperse =", value, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseNotEqualTo(Boolean value) { + addCriterion("disperse <>", value, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseGreaterThan(Boolean value) { + addCriterion("disperse >", value, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseGreaterThanOrEqualTo(Boolean value) { + addCriterion("disperse >=", value, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseLessThan(Boolean value) { + addCriterion("disperse <", value, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseLessThanOrEqualTo(Boolean value) { + addCriterion("disperse <=", value, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseIn(List values) { + addCriterion("disperse in", values, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseNotIn(List values) { + addCriterion("disperse not in", values, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseBetween(Boolean value1, Boolean value2) { + addCriterion("disperse between", value1, value2, "disperse"); + return (Criteria) this; + } + + public Criteria andDisperseNotBetween(Boolean value1, Boolean value2) { + addCriterion("disperse not between", value1, value2, "disperse"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/src/cn/edu/hrbcu/curriculum/service/CurriculumServiceImpl.java b/src/cn/edu/hrbcu/curriculum/service/CurriculumServiceImpl.java index 76516c1..97f0230 100644 --- a/src/cn/edu/hrbcu/curriculum/service/CurriculumServiceImpl.java +++ b/src/cn/edu/hrbcu/curriculum/service/CurriculumServiceImpl.java @@ -108,6 +108,7 @@ public class CurriculumServiceImpl implements CurriculumService{ curriculum_update.setEnd(curriculum_all_new.getEnd()); curriculum_update.setHpw(curriculum_all_new.getHpw()); curriculum_update.setAvailable(curriculum_all_new.getAvailable()); + curriculum_update.setDisperse(curriculum_all_new.getDisperse()); foundSame = true; break; } -- Gitee