功能完善,页面展示修改。

This commit is contained in:
Renpc-kilig 2021-05-12 17:31:02 +08:00
parent 549c9c3aef
commit 7c8c39c4d0
13 changed files with 173 additions and 36 deletions

View File

@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -125,4 +126,16 @@ public class ExaminationController extends DefaultBaseController {
return examinationService.resultExamUser(page);
}
@ApiOperation(value = "分配的监考老师", notes = "分配的监考老师接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "examinationId", value = "ID", paramType = "path")
})
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
@GetMapping("get-exam-user/{examId}")
public ExaminationDTO getExamUser(@PathVariable("examId") String examId) {
Map<String, Object> params = new HashMap<>();
params.put("examId", examId);
return examinationService.getExamUser(params);
}
}

View File

@ -147,4 +147,12 @@ public interface IExaminationDao {
* @throws SearchException
*/
void updateExamHis(Map<String, Object> params) throws SearchException;
/**
* 分配的监考老师
* @param params
* @return
* @throws SearchException
*/
ExaminationDTO getExamUser(Map<String, Object> params) throws SearchException;
}

View File

@ -144,8 +144,14 @@ public class ExamApplyServiceImpl extends DefaultBaseService implements IExamApp
DistributionSaveVO dstributionSaveVO = new DistributionSaveVO();
dstributionSaveVO.setPlanId(examApplyVO.getExamId());
dstributionSaveVO.setPlanName(examApplyVO.getPlanName());
if(1 == examApplyVO.getExamType()) {
dstributionSaveVO.setDistributionTime(examApplyVO.getTheoryExamStartTime());
dstributionSaveVO.setDistributionEndTime(examApplyVO.getTheoryExamEndTime());
}
if(2 == examApplyVO.getExamType()) {
dstributionSaveVO.setDistributionTime(examApplyVO.getPracticeExamStartTime());
dstributionSaveVO.setDistributionEndTime(examApplyVO.getPracticeExamEndTime());
}
dstributionSaveVO.setDistributionNumber(examApplyVO.getPlanPersonNum());
dstributionSaveVO.setStationId(examApplyVO.getTheoryExamAddressId());
distributionService.save(dstributionSaveVO);

View File

@ -182,6 +182,8 @@ public class ExamCheckServiceImpl extends DefaultBaseService implements IExamChe
ClassPlanDTO classPlanDTO = classPlanService.get(examCheckDTO.getPlanId());
examCheckDTO.setClassPlanDTO(classPlanDTO);
if(null != classPlanDTO) {
System.out.println(classPlanDTO.getClassPlanId());
System.out.println(classPlanDTO.getOrgId());
InstitutionDTO institutionDTO = iInstitutionService.get(classPlanDTO.getOrgId());
if(null != institutionDTO) {
classPlanDTO.setOrgId(institutionDTO.getInstitutionName());

View File

@ -201,4 +201,12 @@ public interface IExaminationService {
* @throws SearchException
*/
SuccessResultList<List<ExaminationDTO>> resultExamUser(ListPage page) throws SearchException;
/**
* 分配的监考老师
* @param params
* @return
* @throws SearchException
*/
ExaminationDTO getExamUser(Map<String, Object> params) throws SearchException;
}

View File

@ -262,6 +262,11 @@ public class ExaminationServiceImpl extends DefaultBaseService implements IExami
return new SuccessResultList<>(examinationDTOList, pageInfo.getPageNum(), pageInfo.getTotal());
}
@Override
public ExaminationDTO getExamUser(Map<String, Object> params) throws SearchException {
return examinationDao.getExamUser(params);
}
/**
* 判断当天是否存在该考务人员的监考记录
* @param params

View File

@ -330,7 +330,7 @@
emergency_examination_his t1
WHERE
(
datediff(t1.gmt_create, #{startDay}) = 0
datediff(t1.start_time, #{startDay}) = 0
)
AND t1.is_delete = 0
<if test="examinationId != null and examinationId != ''">
@ -380,4 +380,21 @@
AND exam_id = #{examId}
</update>
<!-- 分配的监考老师 -->
<select id="getExamUser" parameterType="map" resultMap="examinationDTO">
SELECT
t2.`name`,
t2.phone,
t2.examination_id
FROM
emergency_examination_his t1
LEFT JOIN emergency_examination t2 ON t1.examination_id = t2.examination_id
AND t2.is_delete = 0
WHERE
t1.is_delete = 0
<if test="examId != null and examId != ''">
AND t1.exam_id = #{examId}
</if>
</select>
</mapper>

View File

@ -301,6 +301,18 @@
rowData = '<a class="layui-btn layui-btn-xs" lay-event="sendExamination">分配监考老师</a>';
return rowData;
}
},
{field: 'viewExamination', fixed: 'right', width: 150, title: '查看监考老师', align:'center',
templet: function(row) {
var status = row['status'];
var rowData;
if('0' == status) {
rowData = '暂未分配考场信息';
return rowData;
}
rowData = '<a class="layui-btn layui-btn-xs" lay-event="viewExamination">查看监考老师</a>';
return rowData;
}
}
]
],
@ -450,9 +462,42 @@
});
}
// 查看监考老师
function viewExamination(data) {
var loadLayerIndex;
top.restAjax.get(top.restAjax.path('api/examination/get-exam-user/{examId}',
[data.examId]), {}, null, function(code, resultData) {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/examinationuser/update.html?examinationId={examinationId}&isView={isView}', [resultData.examinationId, 'yes']),
end: function() {
reloadTable();
}
});
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
}
function selOther(data) {
var startTime;
if(data.examType == '1') {
startTime = data.theoryExamStartTime;
}
if(data.examType == '2') {
startTime = data.practiceExamStartTime
}
top.dialog.open({
url: top.restAjax.path('route/examinationuser/view-list.html?startTime={startTime}', [data.theoryExamStartTime]),
url: top.restAjax.path('route/examinationuser/view-list.html?startTime={startTime}', [startTime]),
title: "剩余考务人员",
width: '80%',
height: '80%',
@ -471,6 +516,9 @@
}else if('selOther' == obj.event) {
// 查看剩余监考老师
selOther(data);
}else if('viewExamination' == obj.event) {
// 查看监考老师
viewExamination(data);
}
});
});

View File

@ -104,7 +104,7 @@
<input type="text" id="certificateOffice" name="certificateOffice" class="layui-input" value="" lay-verify="required" placeholder="请输入发证机关" maxlength="255">
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item" id="theoryAddressDiv">
<label class="layui-form-label" style="width: 130px;">理论考试地点</label>
<div class="layui-input-block layui-form" id="theoryExamAddressIdSelectTemplateBox" lay-filter="theoryExamAddressIdSelectTemplateBox" style="margin-left: 130px;"></div>
<script id="theoryExamAddressIdSelectTemplate" type="text/html">
@ -116,7 +116,7 @@
</select>
</script>
</div>
<div class="layui-form-item layui-row">
<div class="layui-form-item layui-row" id="theoryTimeDiv">
<div class="layui-col-lg6">
<label class="layui-form-label" style="width: 144px;">理论考试开始时间</label>
<div class="layui-input-block" style="margin-left: 144px;">
@ -131,7 +131,7 @@
</div>
</div>
<div class="layui-form-item">
<div class="layui-form-item" id="practiceAddressDiv">
<label class="layui-form-label" style="width: 130px;">实操考试地点</label>
<div class="layui-input-block layui-form" id="practiceExamAddressIdSelectTemplateBox" lay-filter="practiceExamAddressIdSelectTemplateBox" style="margin-left: 130px;"></div>
<script id="practiceExamAddressIdSelectTemplate" type="text/html">
@ -143,7 +143,7 @@
</select>
</script>
</div>
<div class="layui-form-item layui-row">
<div class="layui-form-item layui-row" id="practiceTimeDiv">
<div class="layui-col-lg6">
<label class="layui-form-label" style="width: 144px;">实操考试开始时间</label>
<div class="layui-input-block" style="margin-left: 144px;">
@ -225,6 +225,7 @@
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
var examType = 1;
// 初始化实操考试地点下拉选择
function initPracticeExamAddressIdSelect(selectValue) {
@ -420,6 +421,8 @@
var loadLayerIndex;
top.restAjax.get(top.restAjax.path('api/examapply/get/{examApplyId}', [examApplyId]), {}, null, function(code, data) {
var dataFormData = {};
examType = data.examType;
initExamType(data.examType);
for(var i in data) {
dataFormData[i] = data[i] +'';
}
@ -447,6 +450,27 @@
}
initData();
function initExamType(examType) {
if('1' == examType) {
$('#theoryAddressDiv').show();
$('#theoryTimeDiv').show();
$('#practiceAddressDiv').hide();
$('#practiceTimeDiv').hide();
}
if('2' == examType) {
$('#theoryAddressDiv').hide();
$('#theoryTimeDiv').hide();
$('#practiceAddressDiv').show();
$('#practiceTimeDiv').show();
}
if('3' == examType) {
$('#theoryAddressDiv').show();
$('#theoryTimeDiv').show();
$('#practiceAddressDiv').show();
$('#practiceTimeDiv').show();
}
}
// 获取考试申请基本信息
function initExamBaseInfo() {
var loadLayerIndex;
@ -493,20 +517,36 @@
}
}
// 提交表单
form.on('submit(submitForm)', function(formData) {
function theoryCheck() {
var theoryExamStartTime = new Date($('#theoryExamEndTime').val()).getTime();
var theoryExamEndTime = new Date($('#theoryExamStartTime').val()).getTime();
if(theoryExamEndTime >= theoryExamStartTime) {
top.dialog.msg('理论考试结束时间不能早于等于开始时间');
return false;
}
}
/*var practiceExamStartTime = new Date($('#practiceExamEndTime').val()).getTime();
function practiceCheck() {
var practiceExamStartTime = new Date($('#practiceExamEndTime').val()).getTime();
var practiceExamEndTime = new Date($('#practiceExamStartTime').val()).getTime();
if(practiceExamEndTime <= practiceExamStartTime) {
if(practiceExamEndTime >= practiceExamStartTime) {
layer.msg('实操考试结束时间不能早于等于开始时间');
}*/
return false;
}
}
// 提交表单
form.on('submit(submitForm)', function(formData) {
if('1' == examType) {
theoryCheck();
}
if('2' == examType) {
practiceCheck();
}
if('3' == examType) {
theoryCheck();
practiceCheck();
}
formData.field.planName = $('#planName').val();
formData.field.planPersonNum = $('#planPersonNum').val();
@ -514,18 +554,7 @@
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/examapply/update/{examApplyId}', [examApplyId]), formData.field, null, function(code, data) {
var layerIndex = top.dialog.msg(top.dataMessage.updateSuccess, {
time: 0,
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
shade: 0.3,
yes: function(index) {
top.dialog.close(index);
window.location.reload();
},
btn2: function() {
closeBox();
}
});
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {

View File

@ -35,10 +35,7 @@
<script type="text/html" id="headerToolBar">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" lay-event="updateEvent">
<i class="fa fa-lg fa-edit"></i> 编辑
</button>
<button type="button" class="layui-btn layui-btn-danger layui-btn-sm" lay-event="removeEvent">
<i class="fa fa-lg fa-trash"></i> 删除
<i class="fa fa-lg fa-edit"></i> 开班计划审核
</button>
</div>
</script>

View File

@ -222,7 +222,7 @@
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/examination/save.html', []),
content: top.restAjax.path('route/examinationuser/save.html', []),
end: function() {
reloadTable();
}
@ -240,7 +240,7 @@
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/examination/update.html?examinationId={examinationId}', [checkDatas[0].examinationId]),
content: top.restAjax.path('route/examinationuser/update.html?examinationId={examinationId}', [checkDatas[0].examinationId]),
end: function() {
reloadTable();
}

View File

@ -37,7 +37,7 @@
<div class="layui-form-item layui-layout-admin">
<div class="layui-input-block">
<div class="layui-footer" style="left: 0;">
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交编辑</button>
<button type="button" class="layui-btn" id="subBtn" lay-submit lay-filter="submitForm">提交编辑</button>
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
</div>
</div>
@ -61,11 +61,16 @@
var laytpl = layui.laytpl;
var laydate = layui.laydate;
var examinationId = top.restAjax.params(window.location.href).examinationId;
var isView = top.restAjax.params(window.location.href).isView;
var wangEditor = window.wangEditor;
var wangEditorObj = {};
var viewerObj = {};
if('yes' == isView) {
$('#subBtn').hide();
}
function closeBox() {
parent.layer.close(parent.layer.getFrameIndex(window.name));
}

View File

@ -71,7 +71,6 @@
},
cols: [
[
{type:'checkbox', fixed: 'left'},
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
{field: 'name', width: 180, title: '考务人员姓名', align:'center',
templet: function(row) {