Merge branch 'baotou-signup' of e.coding.net:tsteam/btsaqscksfwpt/system-examination-signup into baotou-signup

This commit is contained in:
wans 2021-05-15 19:11:08 +08:00
commit ad435b8084
21 changed files with 906 additions and 116 deletions

View File

@ -32,6 +32,7 @@ public class ExamApplyBO {
private String nextCommitTime;
private String workTypeId;
private String orgId;
private Integer nextNum;
public String getExamApplyId() {
return examApplyId;
@ -192,4 +193,12 @@ public class ExamApplyBO {
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public Integer getNextNum() {
return nextNum;
}
public void setNextNum(Integer nextNum) {
this.nextNum = nextNum;
}
}

View File

@ -23,6 +23,7 @@ public class ExamCheckBO {
private String nextCommitTime;
private String workTypeId;
private String orgId;
private Integer nextNum;
public String getExamCheckId() {
return examCheckId == null ? "" : examCheckId.trim();
@ -127,4 +128,12 @@ public class ExamCheckBO {
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public Integer getNextNum() {
return nextNum;
}
public void setNextNum(Integer nextNum) {
this.nextNum = nextNum;
}
}

View File

@ -63,6 +63,8 @@ public class ExamApplyDTO {
private String workTypeId;
@ApiModelProperty(name = "orgId", value = "机构ID")
private String orgId;
@ApiModelProperty(name = "nextNum", value = "下次提交审核时间数字")
private Integer nextNum;
public String getExamApplyId() {
return examApplyId;
@ -255,4 +257,12 @@ public class ExamApplyDTO {
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public Integer getNextNum() {
return nextNum;
}
public void setNextNum(Integer nextNum) {
this.nextNum = nextNum;
}
}

View File

@ -33,6 +33,8 @@ public class ExamCheckDTO {
private String workTypeId;
@ApiModelProperty(name = "orgId", value = "机构ID")
private String orgId;
@ApiModelProperty(name = "nextNum", value = "下次提交审核时间数字")
private Integer nextNum;
public String getExamCheckId() {
return examCheckId == null ? "" : examCheckId.trim();
@ -105,4 +107,12 @@ public class ExamCheckDTO {
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public Integer getNextNum() {
return nextNum;
}
public void setNextNum(Integer nextNum) {
this.nextNum = nextNum;
}
}

View File

@ -29,11 +29,9 @@ public class ApplyPO {
private String applyUnitPhone;
private String applyUnitAddress;
private String applyUserCardPhoto;
private String applyPosition;
private String applyMajorYear;
private String applyTechnicalTitles;
private Integer applyAuditState;
private String creator;
private String gmtCreate;

View File

@ -30,6 +30,7 @@ public class ExamApplyPO {
private String nextCommitTime;
private String workTypeId;
private String orgId;
private Integer nextNum;
public String getExamApplyId() {
return examApplyId;
@ -190,4 +191,12 @@ public class ExamApplyPO {
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public Integer getNextNum() {
return nextNum;
}
public void setNextNum(Integer nextNum) {
this.nextNum = nextNum;
}
}

View File

@ -23,6 +23,7 @@ public class ExamCheckPO {
private String nextCommitTime;
private String workTypeId;
private String orgId;
private Integer nextNum;
public String getExamCheckId() {
return examCheckId == null ? "" : examCheckId.trim();
@ -127,4 +128,12 @@ public class ExamCheckPO {
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public Integer getNextNum() {
return nextNum;
}
public void setNextNum(Integer nextNum) {
this.nextNum = nextNum;
}
}

View File

@ -60,6 +60,8 @@ public class ExamApplyVO {
private String workTypeId;
@ApiModelProperty(name = "orgId", value = "机构ID")
private String orgId;
@ApiModelProperty(name = "nextNum", value = "下次提交审核时间数字")
private Integer nextNum;
public String getExamApplyId() {
return examApplyId;
@ -236,4 +238,12 @@ public class ExamApplyVO {
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public Integer getNextNum() {
return nextNum;
}
public void setNextNum(Integer nextNum) {
this.nextNum = nextNum;
}
}

View File

@ -31,6 +31,8 @@ public class ExamCheckVO {
private String workTypeId;
@ApiModelProperty(name = "orgId", value = "机构ID")
private String orgId;
@ApiModelProperty(name = "nextNum", value = "下次提交审核时间数字")
private Integer nextNum;
public String getPlanId() {
return planId == null ? "" : planId.trim();
@ -87,4 +89,12 @@ public class ExamCheckVO {
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public Integer getNextNum() {
return nextNum;
}
public void setNextNum(Integer nextNum) {
this.nextNum = nextNum;
}
}

View File

@ -35,7 +35,7 @@ public interface IApplyService {
* @param workTypeId
* @return
*/
List<ApplyDTO> listByInstitutionIdAndWorkTypeId(String institutionId,String workTypeId);
List<ApplyPO> listByInstitutionIdAndWorkTypeId(String institutionId,String workTypeId);
/**
* 工种培训机构分页列表

View File

@ -123,14 +123,14 @@ public class ApplyServiceImpl extends DefaultBaseService implements IApplyServic
public List<ApplyDTO> listByInstitutionIdAndWorkTypeId(String institutionId,String workTypeId){
public List<ApplyPO> listByInstitutionIdAndWorkTypeId(String institutionId,String workTypeId){
Map<String, Object> params = new HashMap<>();
params.put("applyInstitutionId",institutionId);
params.put("applyWorkTypeId",workTypeId);
List<Integer> applyAuditStates = new ArrayList<>();
applyAuditStates.add(2);
params.put("applyAuditStates",applyAuditStates);
return this.list(params);
return this.listPO(params);
}
@ -311,7 +311,6 @@ public class ApplyServiceImpl extends DefaultBaseService implements IApplyServic
auditLogVO.setApplyAuditState(0);
auditLogVO.setApplyAuditExplain("用户申请报名");
applyAuditLogService.save(token,auditLogVO);
return applyId;
}

View File

@ -1,6 +1,7 @@
package cn.com.tenlion.service.applystudents.impl;
import cn.com.tenlion.pojo.dtos.apply.ApplyDTO;
import cn.com.tenlion.pojo.pos.apply.ApplyPO;
import cn.com.tenlion.service.apply.IApplyService;
import ink.wgink.common.base.DefaultBaseService;
import ink.wgink.exceptions.ParamsException;
@ -58,13 +59,14 @@ public class ApplyStudentsServiceImpl extends DefaultBaseService implements IApp
throw new ParamsException("参数错误");
}
List<String> deleteIdList = new ArrayList<>();
List<ApplyDTO> applyDTOList = applyService.listByInstitutionIdAndWorkTypeId(institutionId,workTypeId);
for (ApplyDTO applyDTO : applyDTOList) {
List<ApplyPO> applyPOList = applyService.listByInstitutionIdAndWorkTypeId(institutionId,workTypeId);
for (ApplyPO applyPO : applyPOList) {
ApplyStudentsVO vo = new ApplyStudentsVO();
BeanUtils.copyProperties(vo,applyDTO);
BeanUtils.copyProperties(vo,applyPO);
vo.setApplyClassId(classId);
this.save(vo);
deleteIdList.add(applyDTO.getApplyId());
Map<String, Object> params = HashMapUtil.beanToMap(vo);
applyStudentsDao.save(params);;
deleteIdList.add(applyPO.getApplyId());
}
applyService.delete(deleteIdList);
}

View File

@ -138,25 +138,6 @@ public class ExamApplyServiceImpl extends DefaultBaseService implements IExamApp
setAppUpdateInfo(token, params);
}
examApplyDao.update(params);
// 如果受理通过则新增一条考场分配数据
if(!StringUtils.isBlank(examApplyVO.getCertificateOffice())) {
// 申请考场信息开始
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);
// 申请考场信息结束
}
}
@Override

View File

@ -618,6 +618,22 @@
#{applyIds[${index}]}
</foreach>
</if>
<if test="applyInstitutionId != null and applyInstitutionId != ''">
AND
t1.apply_institution_id = #{applyInstitutionId}
</if>
<if test="applyWorkTypeId != null and applyWorkTypeId != ''">
AND
t1.apply_work_type_id = #{applyWorkTypeId}
</if>
<if test="applyAuditStates != null and applyAuditStates.size > 0">
AND
t1.apply_audit_state IN
<foreach collection="applyAuditStates" index="index" open="(" separator="," close=")">
#{applyAuditStates[${index}]}
</foreach>
</if>
ORDER BY t1.gmt_create DESC
</select>
<!-- 报名信息统计 -->

View File

@ -23,6 +23,7 @@
<result column="next_commit_time" property="nextCommitTime"/>
<result column="work_type_id" property="workTypeId"/>
<result column="org_id" property="orgId"/>
<result column="next_num" property="nextNum"/>
</resultMap>
<resultMap id="examApplyBO" type="cn.com.tenlion.pojo.bos.examapply.ExamApplyBO">
@ -46,6 +47,7 @@
<result column="next_commit_time" property="nextCommitTime"/>
<result column="work_type_id" property="workTypeId"/>
<result column="org_id" property="orgId"/>
<result column="next_num" property="nextNum"/>
</resultMap>
<resultMap id="examApplyPO" type="cn.com.tenlion.pojo.pos.examapply.ExamApplyPO">
@ -69,6 +71,7 @@
<result column="next_commit_time" property="nextCommitTime"/>
<result column="work_type_id" property="workTypeId"/>
<result column="org_id" property="orgId"/>
<result column="next_num" property="nextNum"/>
</resultMap>
<!-- 新增应急管理局-考试申请表-renpc -->
@ -91,6 +94,7 @@
next_commit_time,
work_type_id,
org_id,
next_num,
gmt_create,
creator,
gmt_modified,
@ -114,6 +118,7 @@
#{nextCommitTime},
#{workTypeId},
#{orgId},
#{nextNum},
#{gmtCreate},
#{creator},
#{gmtModified},
@ -209,6 +214,9 @@
</if>
<if test="orgId != null and orgId != ''">
org_id = #{orgId},
</if>
<if test="nextNum != null and nextNum != ''">
next_num = #{nextNum},
</if>
gmt_modified = #{gmtModified},
modifier = #{modifier},
@ -245,6 +253,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.exam_apply_id
FROM
management_exam_apply t1
@ -281,6 +290,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.exam_apply_num
FROM
management_exam_apply t1
@ -314,6 +324,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.exam_apply_num
FROM
management_exam_apply t1
@ -348,6 +359,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
1
FROM
management_exam_apply t1
@ -401,6 +413,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.exam_apply_num
FROM
management_exam_apply t1
@ -451,6 +464,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.exam_apply_num
FROM
management_exam_apply t1

View File

@ -11,6 +11,7 @@
<result column="next_commit_time" property="nextCommitTime"/>
<result column="work_type_id" property="workTypeId"/>
<result column="org_id" property="orgId"/>
<result column="next_num" property="nextNum"/>
</resultMap>
<resultMap id="examCheckBO" type="cn.com.tenlion.pojo.bos.examcheck.ExamCheckBO">
@ -27,6 +28,7 @@
<result column="next_commit_time" property="nextCommitTime"/>
<result column="work_type_id" property="workTypeId"/>
<result column="org_id" property="orgId"/>
<result column="next_num" property="nextNum"/>
</resultMap>
<resultMap id="examCheckPO" type="cn.com.tenlion.pojo.pos.examcheck.ExamCheckPO">
@ -43,6 +45,7 @@
<result column="next_commit_time" property="nextCommitTime"/>
<result column="work_type_id" property="workTypeId"/>
<result column="org_id" property="orgId"/>
<result column="next_num" property="nextNum"/>
</resultMap>
<!-- 新增 -->
@ -56,6 +59,7 @@
next_commit_time,
work_type_id,
org_id,
next_num,
gmt_create,
creator,
gmt_modified,
@ -70,6 +74,7 @@
#{nextCommitTime},
#{workTypeId},
#{orgId},
#{nextNum},
#{gmtCreate},
#{creator},
#{gmtModified},
@ -129,6 +134,9 @@
</if>
<if test="orgId != null and orgId != ''">
org_id = #{orgId},
</if>
<if test="nextNum != null and nextNum != ''">
next_num = #{nextNum},
</if>
gmt_modified = #{gmtModified},
modifier = #{modifier},
@ -147,6 +155,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.exam_check_id
FROM
management_exam_check t1
@ -177,6 +186,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.gmt_create,
t1.creator,
t1.gmt_modified,
@ -203,6 +213,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.gmt_create,
t1.creator,
t1.gmt_modified,
@ -229,6 +240,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
1
FROM
management_exam_check t1
@ -273,6 +285,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.gmt_create,
t1.creator,
t1.gmt_modified,
@ -314,12 +327,13 @@
t1.reason,
t1.exam_apply_id,
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
t1.gmt_create,
t1.creator,
t1.gmt_modified,
t1.modifier,
t1.work_type_id,
t1.org_id,
t1.is_delete
FROM
management_exam_check t1
@ -380,6 +394,7 @@
t1.next_commit_time,
t1.work_type_id,
t1.org_id,
t1.next_num,
1
FROM
management_exam_check t1

View File

@ -131,7 +131,7 @@
nextTime.setDate(nextTime.getDate() + $('#nextCommitTime').val());
formData.field.nextCommitTime = nextTime.format("yyyy-MM-dd hh:mm:ss");
formData.field.checkStatus = '2';
top.restAjax.put(top.restAjax.path('api/examapply/update-more/{examCheckId}', [ids]), formData.field, null, function(code, data) {
top.restAjax.put(top.restAjax.path('api/examapply/update-more/{examApplyId}', [ids]), formData.field, null, function(code, data) {
if('200' == code) {
top.dialog.msg('退回成功');
window.location.reload();
@ -232,15 +232,6 @@
return rowData;
}
},
{field: 'planPersonNum', width: 180, title: '计划人数', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'planStartTime', width: 180, title: '计划开始时间', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
@ -304,7 +295,7 @@
return rowData;
}
},
{field: 'status', width: 180, title: '查看考场信息', align:'center',
{field: 'status', fixed: 'right', width: 180, title: '查看考场信息', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData === null || rowData === '') {
@ -361,7 +352,7 @@
// 考试申请批量审核
function checkMore(ids, planIds) {
top.dialog.msg('开班计划审核', {
top.dialog.msg('考试申请审核', {
time: 0,
btn: ['通过', '退回'],
shade: 0.3,

View File

@ -49,12 +49,6 @@
<input type="text" id="orgName" name="orgName" class="layui-input" value="" placeholder="请输入考试机构" maxlength="255" readonly>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">计划人数</label>
<div class="layui-input-block">
<input type="number" id="planPersonNum" name="planPersonNum" class="layui-input" value="" placeholder="请输入计划人数" maxlength="255" readonly>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="width: 120px;">计划开始时间</label>
<div class="layui-input-block" style="margin-left: 120px;">
@ -93,10 +87,16 @@
<div class="layui-form-item" pane>
<label class="layui-form-label">审核状态</label>
<div class="layui-input-block layui-form">
<input type="radio" lay-filter="checkStatus" name="checkStatus" value="1" title="受理" checked>
<input type="radio" lay-filter="checkStatus" name="checkStatus" value="1" title="审核通过" checked>
<input type="radio" lay-filter="checkStatus" name="checkStatus" value="2" title="退回">
</div>
</div>
<div class="layui-form-item" style="display: none;" id="nextTimeDiv">
<label class="layui-form-label" style="width: 165px;">下次提交审核时间</label>
<div class="layui-input-block" style="margin-left: 165px;">
<input type="number" id="nextNum" name="nextNum" lay-verify="inputRule" class="layui-input" value="" placeholder="请输入下次提交审核时间(单位:天)" maxlength="255">
</div>
</div>
<div class="layui-form-item layui-form-text" style="display: none;" id="reasonDiv">
<label class="layui-form-label">审核失败原因</label>
<div class="layui-input-block">
@ -140,8 +140,10 @@
var val = data.value;
if (2 == val) {
$('#reasonDiv').show();
$('#nextTimeDiv').show();
} else {
$('#reasonDiv').hide();
$('#nextTimeDiv').hide();
}
});
@ -158,32 +160,6 @@
});
}
// 初始化文件列表
function initFileList(fileName, ids, callback) {
var dataForm = {};
dataForm[fileName] = ids;
form.val('dataForm', dataForm);
if (!ids) {
refreshDownloadTemplet(fileName, []);
if (callback) {
callback(fileName, []);
}
return;
}
top.restAjax.get(top.restAjax.path('api/file/list', []), {
ids: ids
}, null, function (code, data) {
refreshDownloadTemplet(fileName, data);
if (callback) {
callback(fileName, data);
}
}, function (code, data) {
top.dialog.msg(data.msg);
});
}
// 初始化内容
function initData() {
initExamBaseInfo();
@ -193,8 +169,9 @@
for (var i in data) {
dataFormData[i] = data[i] + '';
}
if ('3' == data.checkStatus) {
if ('2' == data.checkStatus) {
$('#reasonDiv').show();
$('#nextTimeDiv').show();
}
if (null == data.checkStatus || '' == data.checkStatus || typeof (data.checkStatus) == 'undefined') {
$('#subBtn').show();
@ -259,45 +236,68 @@
});
}
}
Date.prototype.format = function(fmt) {
var o = {
"M+" : this.getMonth()+1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds(),
"q+" : Math.floor((this.getMonth()+3)/3),
"S" : this.getMilliseconds()
};
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
};
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
};
// 提交表单
form.on('submit(submitForm)', function(formData) {
layer.confirm('审核一旦通过,将无法进行修改', {
btn: ['确定','取消'] //按钮
}, function(){
if(3 == formData.field.checkStatus) {
if(2 == formData.field.checkStatus) {
if(null == formData.field.reason || '' == formData.field.reason || typeof(formData.field.reason) == "undefined") {
top.dialog.msg('退回原因必填');
return false;
}
}
formData.field.examId = classPlanId;
formData.field.planName = $('#planName').val();
formData.field.planPersonNum = $('#planPersonNum').val();
top.dialog.confirm(top.dataMessage.commit, function(index) {
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() {
if(null == formData.field.nextNum || '' == formData.field.nextNum || typeof(formData.field.nextNum) == "undefined") {
top.dialog.msg('下次提交审核时间必填');
return false;
}
var nextTime = new Date();
nextTime.setDate(nextTime.getDate() + $('#nextNum').val());
formData.field.nextCommitTime = nextTime.format("yyyy-MM-dd hh:mm:ss");
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/examapply/update/{examApplyId}', [examApplyId]), formData.field, null, function(code, data) {
if('200' == code) {
top.dialog.msg('退回成功');
closeBox();
}else {
top.dialog.msg('退回失败');
closeBox();
}
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
return false;
}else {
sentExamMsg(classPlanId);
}
}, function(){
return false;
});
@ -305,6 +305,21 @@
return false;
});
// 考场信息分配
function sentExamMsg(planIds) {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/examination/distribution/update.html?planId={planId}', [planIds]),
end: function() {
}
});
}
$('.close').on('click', function() {
closeBox();
});

View File

@ -87,10 +87,16 @@
<div class="layui-form-item" pane>
<label class="layui-form-label">审核状态</label>
<div class="layui-input-block layui-form">
<input type="radio" lay-filter="checkStatus" name="checkStatus" value="2" title="受理" checked>
<input type="radio" lay-filter="checkStatus" name="checkStatus" value="2" title="审核通过" checked>
<input type="radio" lay-filter="checkStatus" name="checkStatus" value="3" title="退回">
</div>
</div>
<div class="layui-form-item" style="display: none;" id="nextTimeDiv">
<label class="layui-form-label" style="width: 165px;">下次提交审核时间</label>
<div class="layui-input-block" style="margin-left: 165px;">
<input type="number" id="nextCommitTime" name="nextCommitTime" lay-verify="inputRule" class="layui-input" value="" placeholder="请输入下次提交审核时间(单位:天)" maxlength="255">
</div>
</div>
<div class="layui-form-item layui-form-text" style="display: none;" id="reasonDiv">
<label class="layui-form-label">审核失败原因</label>
<div class="layui-input-block">
@ -134,8 +140,10 @@
var val = data.value;
if (3 == val) {
$('#reasonDiv').show();
$('#nextTimeDiv').show();
} else {
$('#reasonDiv').hide();
$('#nextTimeDiv').hide();
}
});
@ -189,6 +197,7 @@
}
if ('3' == data.checkStatus) {
$('#reasonDiv').show();
$('#nextTimeDiv').show();
}
if (null == data.checkStatus || '' == data.checkStatus || typeof (data.checkStatus) == 'undefined') {
$('#subBtn').show();
@ -253,6 +262,27 @@
});
}
}
Date.prototype.format = function(fmt) {
var o = {
"M+" : this.getMonth()+1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds(),
"q+" : Math.floor((this.getMonth()+3)/3),
"S" : this.getMilliseconds()
};
if(/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
};
for(var k in o) {
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
}
}
return fmt;
};
// 提交表单
form.on('submit(submitForm)', function(formData) {
@ -263,22 +293,20 @@
}
}
formData.field.planId = classPlanId;
var nextTime = new Date();
nextTime.setDate(nextTime.getDate() + $('#nextNum').val());
formData.field.nextCommitTime = nextTime.format("yyyy-MM-dd hh:mm:ss");
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
top.restAjax.put(top.restAjax.path('api/examcheck/update/{examCheckId}', [examCheckId]), 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();
}
});
if('200' == code) {
top.dialog.msg('退回成功');
closeBox();
}else {
top.dialog.msg('退回失败');
closeBox();
}
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {

View File

@ -0,0 +1,336 @@
<!doctype html>
<html lang="en">
<head>
<base href="/signup/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
<div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
</div>
<div class="layui-inline">
<input type="text" id="startTime" class="layui-input search-item" placeholder="开始时间" readonly>
</div>
<div class="layui-inline">
<input type="text" id="endTime" class="layui-input search-item" placeholder="结束时间" readonly>
</div>
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
</div>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
</div>
</div>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/'
}).extend({
index: 'lib/index'
}).use(['index', 'table', 'laydate', 'common'], function() {
var $ = layui.$;
var $win = $(window);
var table = layui.table;
var admin = layui.admin;
var laydate = layui.laydate;
var common = layui.common;
var resizeTimeout = null;
var tableUrl = 'api/examapply/listpage';
// 初始化表格
function initTable() {
table.render({
elem: '#dataTable',
id: 'dataTable',
url: top.restAjax.path(tableUrl, []),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 90,
limit: 20,
limits: [20, 40, 60, 80, 100, 200],
request: {
pageName: 'page',
limitName: 'rows'
},
cols: [
[
{type:'checkbox', fixed: 'left'},
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
{field: 'planName', width: 180, title: '计划名称', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'planType', width: 180, title: '计划类型', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
if('1' == rowData) {
rowData = '初训';
}else if('2' == rowData) {
rowData = '复训';
}else if('3' == rowData) {
rowData = '换证 ';
}
return rowData;
}
},
{field: 'orgId', width: 180, title: '考试机构', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'planPersonNum', width: 180, title: '计划人数', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'planStartTime', width: 180, title: '计划开始时间', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'planEndTime', width: 180, title: '计划结束时间', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'chargePerson', width: 180, title: '负责人', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'chargePersonTel', width: 180, title: '联系方式', align:'center',
templet: function(row) {
var rowData = row.classPlanDTO[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'checkStatus', width: 150, title: '审批状态', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData === null || rowData === '') {
return '-';
}
if(rowData == '0') {
rowData = '<a class="layui-btn layui-btn-warm layui-btn-xs">待审批</a>';
}
if(rowData == '1') {
rowData = '<a class="layui-btn layui-btn-xs">审批通过</a>';
}
if(rowData == '2') {
rowData = '<a class="layui-btn layui-btn-danger layui-btn-xs">审批驳回</a>';
}
return rowData;
}
},
{field: 'reason', width: 150, title: '审核原因', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData === null || rowData === '') {
return '-';
}
return rowData;
}
},
{field: 'userList', 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="userList">参考人员列表</a>';
return rowData;
}
},
]
],
page: true,
parseData: function(data) {
return {
'code': 0,
'msg': '',
'count': data.total,
'data': data.rows
};
}
});
}
// 重载表格
function reloadTable(currentPage) {
table.reload('dataTable', {
url: top.restAjax.path(tableUrl, []),
where: {
keywords: $('#keywords').val(),
startTime: $('#startTime').val(),
endTime: $('#endTime').val()
},
page: {
curr: currentPage
},
height: $win.height() - 90,
});
}
// 初始化日期
function initDate() {
// 日期选择
laydate.render({
elem: '#startTime',
format: 'yyyy-MM-dd'
});
laydate.render({
elem: '#endTime',
format: 'yyyy-MM-dd'
});
}
initTable();
initDate();
// 事件 - 页面变化
$win.on('resize', function() {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(function() {
reloadTable();
}, 500);
});
// 事件 - 搜索
$(document).on('click', '#search', function() {
reloadTable(1);
});
// 事件 - 增删改
table.on('toolbar(dataTable)', function(obj) {
var layEvent = obj.event;
var checkStatus = table.checkStatus('dataTable');
var checkDatas = checkStatus.data;
if(layEvent === 'saveEvent') {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/examapply/save.html', []),
end: function() {
reloadTable();
}
});
} else if(layEvent === 'updateEvent') {
if(checkDatas.length === 0) {
top.dialog.msg(top.dataMessage.table.selectEdit);
} else if(checkDatas.length > 1) {
top.dialog.msg(top.dataMessage.table.selectOneEdit);
} else {
layer.open({
type: 2,
title: false,
closeBtn: 0,
area: ['100%', '100%'],
shadeClose: true,
anim: 2,
content: top.restAjax.path('route/examapply/update-check.html?examApplyId={examApplyId}&classPlanId={classPlanId}', [checkDatas[0].examApplyId, checkDatas[0].examId]),
end: function() {
reloadTable();
}
});
}
} else if(layEvent === 'checkMore') {
if(checkDatas.length === 0) {
top.dialog.msg('请选择要审核的数据');
} else {
var ids = '';
var planIds = '';
for(var i = 0, item; item = checkDatas[i++];) {
debugger
if(item.checkStatus === 0) {
if (i > 1) {
ids += '_';
planIds += ',';
}
ids += item['examApplyId'];
planIds += item['examId'];
}
}
if(ids.length <= 0) {
top.dialog.msg('当前选择数据已经审核完成,请重新选择');
reloadTable();
return false;
}
}
}
});
// 参考人员列表
function userList(data) {
top.dialog.open({
url: top.restAjax.path('route/insertscore/user-list.html?clssId={clssId}', [data.examId]),
title: "剩余考务人员",
width: '80%',
height: '80%',
onClose: function() {
reloadTable();
}
});
}
//监听行单击事件
table.on('tool(dataTable)', function(obj){
var data = obj.data;
if('userList' == obj.event) {
// 参考人员列表
userList(data);
}else if('selOther' == obj.event) {
// 查看剩余监考老师
selOther(data);
}
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,319 @@
<!doctype html>
<html lang="en">
<head>
<base href="/signup/">
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein">
<div class="layui-row">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body">
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
<div class="layui-inline">
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入关键字">
</div>
<button type="button" id="search" class="layui-btn layui-btn-sm">
<i class="fa fa-lg fa-search"></i> 搜索
</button>
</div>
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
<noscript id="tpl-user" >
<!-- style 尽量不要影响到页面其他元素,使用#userinfo范围限定 -->
<style type="text/css">
#userinfo .layui-form-label.layui-required:after {
content: "*";
color: red;
position: absolute;
top: 10px;
right: 5px;
}
</style>
<div class="layui-card" id="userinfo">
<div class="layui-card-header">考试成绩录入</div>
<input type="hidden" id="applyStudentsId" name="applyStudentsId" value="{{d.applyStudentsId}}">
<input type="hidden" id="applyDataBirth" name="applyDataBirth" value="{{d.applyDataBirth}}">
<input type="hidden" id="applyAuditState" name="applyAuditState" value="{{d.applyAuditState}}">
<div class="layui-card-body">
<form class="layui-form" action="" lay-filter="info">
<div class="layui-form-item">
<label class="layui-form-label">考试成绩</label>
<div class="layui-input-block" style="margin-left: 165px;">
<input type="number" id="applyTestScores" name="applyTestScores" lay-verify="inputRule" class="layui-input" value="" placeholder="请输入考试成绩" maxlength="255">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button type="button" class="layui-btn" id="subBtn" lay-submit lay-filter="submitForm">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
<script>
layui.use(['index', 'form', 'laydate', 'laytpl'], function() {
var $ = layui.$;
var form = layui.form;
var laytpl = layui.laytpl;
var laydate = layui.laydate;
form.verify({
inputRule: function(value) {
if (null == value || '' == value || typeof (value) == "undefined") {
return '下次提交审核时间必填';
}
},
});
form.on('submit(submitForm)', function(formData) {
top.dialog.confirm(top.dataMessage.commit, function(index) {
top.dialog.close(index);
var loadLayerIndex;
var applyStudentsId = $('#applyStudentsId').val();
top.restAjax.put(top.restAjax.path('api/applystudents/update/{applyStudentsId}', [applyStudentsId]), formData.field, null, function(code, data) {
if('200' == code) {
top.dialog.msg('考试录入成功');
window.location.reload();
}else {
top.dialog.msg('考试录入失败');
}
}, function(code, data) {
top.dialog.msg(data.msg);
}, function() {
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
}, function() {
top.dialog.close(loadLayerIndex);
});
});
return false;
});
form.render();
});
</script>
</div>
</div>
</noscript>
</div>
</div>
</div>
</div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script>
layui.config({
base: 'assets/layuiadmin/'
}).extend({
index: 'lib/index'
}).use(['index', 'table', 'laydate', 'upload'], function() {
var $ = layui.$;
var $win = $(window);
var table = layui.table;
var admin = layui.admin;
var layer = layui.layer;
var laytpl = layui.laytpl;
var resizeTimeout = null;
var tableUrl = 'api/applystudents/list-by-classid/{clssId}';
// var tableUrl = 'api/basic-staff-info/listpage';
var clssId = top.restAjax.params(window.location.href).clssId;
function initData(){
initTable();
}
initData();
// 事件 - 页面变化
$win.on('resize', function() {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(function() {
reloadTable();
}, 500);
});
// 事件 - 搜索
$(document).on('click', '#search', function() {
reloadTable();
});
function initTable() {
table.render({
elem: '#dataTable',
id: 'dataTable',
url: top.restAjax.path(tableUrl, [clssId]),
// url: top.restAjax.path(tableUrl, []),
width: admin.screen() > 1 ? '100%' : '',
height: $win.height() - 90,
limit: 20,
limits: [20, 40, 60, 80, 100, 200],
request: {
pageName: 'page',
limitName: 'rows'
},
cols: [
[
{type:'checkbox', fixed: 'left'},
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
{field: 'fullName', width: 120, title: '姓名', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'gender', width: 120, title: '性别', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'idCardNumber', width: 180, title: '公民身份证号', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'telephone', width: 150, title: '联系方式', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'nation', width: 120, title: '民族', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'nativePlace', width: 150, title: '籍贯', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData === '') {
return row['nativePlaceAddr'];
}
return rowData + '-' + row['nativePlaceAddr'];
}
},
{field: 'politicalStatus', width: 120, title: '政治面貌', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return '-';
}
return rowData;
}
},
{field: 'occupationCategory', width: 150, title: '职业', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(rowData === '' || typeof (rowData) === 'undefined'){
return row['occupation'];
}
return rowData + '-' + row['occupation'];
}
},
{field: 'registeredResidence', width: 180, title: '户籍地', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return row['registeredResidenceAddr'];
}
return rowData + '-' + row['registeredResidenceAddr'];
}
},
{field: 'currentResidence', width: 180, title: '现住地', align:'center',
templet: function(row) {
var rowData = row[this.field];
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
return row['currentResidenceAddr'];
}
return rowData + '-' + row['currentResidenceAddr'];
}
},
{field: 'insertScore', width: 180, title: '现住地', align:'center',
templet: function(row) {
var rowData;
rowData = '<a class="layui-btn layui-btn-xs" lay-event="insertScore">考试成绩录入</a>';
return rowData;
}
}
]
],
page: true,
parseData: function(data) {
return {
'code': 0,
'msg': '',
'count': data.total,
'data': data.rows
};
}
});
}
function reloadTable(currentPage) {
table.reload('dataTable', {
url: top.restAjax.path(tableUrl, []),
where: {
keywords: $('#keywords').val(),
},
page: {
curr: currentPage
},
height: $win.height() - 90,
});
}
function insertScore(data){
var tpldata = {
"applyStudentsId": data.applyStudentsId,
"applyDataBirth": data.applyDataBirth,
"applyAuditState": data.applyAuditState
};
laytpl(document.getElementById('tpl-user').innerText)
.render(tpldata,function(html){
//渲染完成后直接打开
layer.open({
type: 1,
shade: false,
area: ['80%', '50%'],
title: false, //不显示标题
content: html,
});
});
}
//监听行单击事件
table.on('tool(dataTable)', function(obj){
var data = obj.data;
if('insertScore' == obj.event) {
// 考试成绩录入
insertScore(data);
}
});
});
</script>
</body>
</html>