master
huanghai 5 years ago
parent 8565e52ff6
commit 9c3ad654b3

@ -1,149 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>教学计划</title>
<meta http-equiv="Content-Type" content="text/html; 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="../../static/css/font.css">
<link rel="stylesheet" href="../../static/css/weadmin.css">
<link rel="stylesheet" href="../../lib/layui/css/layui.css">
<script src="../../lib/jquery-1.12.4.min.js"></script>
<script src="../../lib/ztree/jquery.ztree.core-3.5.min.js"></script>
<!-- 让IE8/9支持媒体查询从而兼容栅格 -->
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
select {
width: 180px;
height: 38px;
line-height: 38px;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 15px;
padding-left: 6px;
color: #666;
}
.inline {
display: inline-block;
vertical-align: top;
}
ul.log li {
color: #666666;
list-style: none;
padding-left: 10px;
}
</style>
</head>
<body>
<div class="weadmin-nav">
<span class="layui-breadcrumb">
<a href="">首页</a>
<a href="">审批管理</a>
<a>
<cite id="module_name">审批管理</cite></a>
</span>
<a class="layui-btn layui-btn-sm" style="line-height:1.6em;margin-top:3px;float:right"
href="javascript:location.reload();" title="刷新">
<i class="layui-icon layui-icon-refresh-3" style="line-height:30px"></i></a>
</div>
<div class="weadmin-body">
<div class="layui-form-item inline" style="float:right">
<span id="importAcc">
</span>
</div>
<div class="layui-form-item">
<table class="layui-table" lay-filter="idTest" id="idTest"></table>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="setVerificationLevel">设置审批流</a>
</script>
</div>
</div>
<script src="../../lib/layui/layui.js"></script>
<script src="../../lib/template.js"></script>
<script src="../../lib/base64.js"></script>
<script src="../../lib/JqueryExtend.js"></script>
<script src="../../lib/layuiExtend.js"></script>
<script>
layui.extend({
admin: '{/}../../static/js/admin'
});
layui.use(['form', 'jquery', 'laytpl', 'admin', 'layer', 'table'], function () {
var form = layui.form,
$ = layui.jquery,
admin = layui.admin,
layer = layui.layer,
table = layui.table,
laytpl = layui.laytpl;
//绑定审批模块
// 绑定教学计划
window.bindVerificationList = function () {
var cols_base = [[]];
cols_base = [[
{field: 'module_id', title: '序号', align: 'center', type: 'numbers', width: 40}
, {field: 'module_name', title: '审批模块', align: 'center', width: 250}
]];
var cols = [[]];
var cookieData = getCookie("showRule_0");
if(cookieData!=null)
{
var show_columns = cookieData.split(",");
for (var i = 0; i < show_columns.length; i++) {
for (var j = 0; j < cols_base.length; j++) {
for (var k = 0; k < cols_base[j].length; k++) {
if (cols_base[j][k].field != null) {
if (show_columns[i] === cols_base[j][k].field) {
cols[0].push(cols_base[j][k]);
break;
}
}
}
}
}
} else {
for (var j = 0; j < cols_base.length; j++) {
for (var k = 0; k < cols_base[j].length; k++) {
if (cols_base[j][k].field != null) {
cols[0].push(cols_base[j][k]);
}
}
}
}
cols[0].push({fixed: 'right', title: '操作', toolbar: '#barDemo', align: 'center', width: 310});
table.render({
elem: '#idTest',
url: '/baseService/verification/bindVerificationList',
cols: cols
, page: true
, height: 'full'
, done: function (res, curr, count) {
}
});
};
bindVerificationList();
//编辑与删除
table.on('tool(idTest)', function (obj) {
var data = obj.data;
var module_id = data.module_id;
var module_name = data.module_name;
//设置课程
if (obj.event === "setVerificationLevel") {
WeAdminShow("正在为" + module_name + '修改相关信息', './verificationSetLevel.html?module_id=' + module_id + "&module_name=" + module_name, 400, 350);
}
;
});
})
</script>
</body>
</html>

@ -1,267 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>设置审批流</title>
<meta http-equiv="Content-Type" content="text/html; 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="../../static/css/font.css">
<link rel="stylesheet" href="../../static/css/weadmin.css">
<link rel="stylesheet" href="../../lib/layui/css/layui.css">
<script src="../../lib/jquery-1.12.4.min.js"></script>
<script src="../../lib/ztree/jquery.ztree.core-3.5.min.js"></script>
<!-- 让IE8/9支持媒体查询从而兼容栅格 -->
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
select {
width: 180px;
height: 38px;
line-height: 38px;
border: 1px solid #ccc;
border-radius: 3px;
font-size: 15px;
padding-left: 6px;
color: #666;
}
.inline {
display: inline-block;
vertical-align: top;
}
.disabled {
pointer-events: none;
border: 1px solid #e6e6e6;
background: #FBFBFB;
color: #C9C9C9;
cursor: not-allowed;
opacity: 1;
}
.searchTxt {
width: 164px;
border: 1px solid #dedede;
border-radius: 3px;
height: 37px;
padding-left: 13px;
vertical-align: top;
}
.search {
border: none;
margin-left: 12px;
}
.iconDel {
position: absolute;
right: 92px;
top: 10px;
display: none;
}
.aaa {
background-color: #FBFBFB;
border: 1px solid #e6e6e6;
color: #C9C9C9;
cursor: not-allowed;
opacity: 1;
}
</style>
</head>
<body>
<form>
<div class="weadmin-body">
<div class="layui-form-item" id="div1">
<label for="" class="layui-form-label" style="padding:9px 0;text-align: left;width:90px">
一级审批
</label>
<div class="layui-input-inline" id="select_1" style="width: 188px"></div>
<script type="text/html" id="test1">
<select id="sel1" name="service_type">
<option value="">-------------无-------------</option>
<% for (var i = 0; i < data.length; i ++) { %>
<option value="<%=data[i].code%>"><%=data[i].name%></option>
<% } %>
</select>
</script>
</div>
<div class="layui-form-item" id="div2">
<label for="" class="layui-form-label" style="padding:9px 0;text-align: left;width: 90px">
二级审批
</label>
<div class="layui-input-inline" id="select_2"></div>
<script type="text/html" id="test2">
<select id="sel2" name="service_type" id="twoLevel">
<option value="">-------------无-------------</option>
<% for (var i = 0; i < data.length;i ++) { %>
<option value="<%=data[i].code%>"><%=data[i].name%></option>
<% } %></select>
</script>
</div>
<div class="layui-form-item" id="div3">
<label for="" class="layui-form-label" style="padding:9px 0;text-align: left;width: 90px">
三级审批
</label>
<div class="layui-input-inline" id="select_3"></div>
<script type="text/html" id="test3">
<select id="sel3" name="service_type" id="threeLevel">
<option value="">-------------无-------------</option>
<% for (var i = 0; i < data.length;i ++) { %>
<option value="<%=data[i].code%>"><%=data[i].name%></option>
<% } %></select>
</script>
</div>
<div class="layui-form-item">
<label for="" class="layui-form-label">
</label>
<button class="layui-btn" lay-filter="save" lay-submit="" id="save">确定</button>
</div>
</div>
<script src="../../lib/layui/layui.js"></script>
<script src="../../lib/template.js"></script>
<script src="../../lib/base64.js"></script>
<script src="../../lib/JqueryExtend.js"></script>
<script src="../../lib/layuiExtend.js"></script>
<script>
layui.extend({
admin: '{/}../../static/js/admin'
});
layui.use(['form', 'jquery', 'laytpl', 'admin', 'layer', 'table'], function () {
var form = layui.form,
$ = layui.jquery,
admin = layui.admin,
layer = layui.layer,
table = layui.table,
laytpl = layui.laytpl;
var module_id = GetQueryString("module_id");
//绑定职务列表
window.getPostList = function () {
$.ajax({
type: "GET",
dataType: "json",
async: false,
url: "/baseService/verification/getPostList",
success: function (data) {
var html = template.render('test1', data);
document.getElementById('select_1').innerHTML = html;
var html = template.render('test2', data);
document.getElementById('select_2').innerHTML = html;
var html = template.render('test3', data);
document.getElementById('select_3').innerHTML = html;
}
});
};
getPostList();
//绑定当前一级审批职位
window.getPostByInfo = function () {
$.ajax({
type: "GET",
async: false,
dataType: "json",
url: "/baseService/verification/getPostByInfo?module_id="+module_id,
success: function (data) {
$("#sel1").val(data.duties_id);
form.render();
}
})
};
getPostByInfo();
//绑定当前二级审批职位
window.getTwoPostByInfo = function () {
$.ajax({
type: "GET",
async: false,
dataType: "json",
url: "/baseService/verification/getTwoPostByInfo?module_id="+module_id,
success: function (data) {
$("#sel2").val(data.duties_id);
form.render();
}
})
};
getTwoPostByInfo();
//绑定当前三级审批职位
window.getThreePostByInfo = function () {
$.ajax({
type: "GET",
async: false,
dataType: "json",
url: "/baseService/verification/getThreePostByInfo?module_id="+module_id,
success: function (data) {
$("#sel3").val(data.duties_id);
form.render();
}
})
};
getThreePostByInfo();
$(document).on('click', '#save', function (data) {
var oneLevel = $("#sel1").val();
var onePerson = $("#sel1 option:selected").text();
var twoLevel = $("#sel2").val();
var twoPerson = $("#sel2 option:selected").text();
var threeLevel = $("#sel3").val();
var threePerson = $("#sel3 option:selected").text();
if(threeLevel!=""){
if(twoLevel===""){
layer.msg('二级审批职务为空,请检查后重新输入!', {icon: 2, time: 2000, shade: 0.1});
return false;
}
if(oneLevel===""){
layer.msg('一级审批职务为空,请检查后重新输入!', {icon: 2, time: 2000, shade: 0.1});
return false;
}
}
if(twoLevel!=""){
if(twoLevel===""){
layer.msg('二级审批职务为空,请检查后重新输入!', {icon: 2, time: 2000, shade: 0.1});
return false;
}
}
if(oneLevel===""){
layer.msg('一级审批职务为空,请检查后重新输入!', {icon: 2, time: 2000, shade: 0.1});
return false;
}
var data = {
"oneLevel": oneLevel,
"twoLevel": twoLevel,
"threeLevel": threeLevel,
"onePerson":onePerson,
"twoPerson":twoPerson,
"threePerson":threePerson,
"module_id":module_id
};
$.ajax({
type: "POST",
dataType: "json",
async: false,
data: data,
url: "/baseService/verification/saveVerification",
success: function (data) {
if (data.success) {
layer.msg(data.message, {icon: 1, time: 1000, shade: [0.5, '#000', true]}, function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
parent.layui.table.reload('idTest', {page: {curr: 1}});
});
} else {
layer.msg(data.message, {icon: 2, time: 3000, shade: [0.5, '#000', true]}, function () {
});
}
}
});
return false;
});
})
</script>
</form>
</body>
</html>

@ -25,7 +25,6 @@ import com.dsideal.baseService.Organization.controller.OrganizationController;
import com.dsideal.baseService.Swagger.controller.SwaggerController;
import com.dsideal.baseService.System.controller.SystemController;
import com.dsideal.baseService.Teacher.controller.TeacherController;
import com.dsideal.baseService.Verification.controller.VerificationController;
import com.jfinal.config.*;
import com.jfinal.kit.PropKit;
import com.jfinal.log.Log;
@ -100,8 +99,6 @@ public class Start extends JFinalConfig {
me.add("/swagger", SwaggerController.class, "swagger");
//字典维护
me.add("/dic", DicController.class);
//审核流程
me.add("/verification", VerificationController.class);
}
@Override

@ -1,120 +0,0 @@
package com.dsideal.baseService.Verification.controller;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.GET;
import com.jfinal.ext.interceptor.POST;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.dsideal.baseService.Base.model.BaseModel;
import com.dsideal.baseService.Common.CommonUtil;
import com.dsideal.baseService.Verification.model.VerificationModel;
import net.sf.json.JSONObject;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class VerificationController extends Controller {
VerificationModel model = new VerificationModel();
/**
* -11234退
*
* 2020-11-23
*/
@Before(GET.class)
public void getVerificationList(int module_id, int verification_status, int page, int limit) {
//(1)当前人员的身份
String identity_id = getCookie("identity_id");
//(2)获取当前身份+当前模块下审核的列表数据
Page<Record> _page = model.getVerificationList(module_id, verification_status, identity_id, page, limit);
renderJson(CommonUtil.renderJsonForLayUI(_page));
return;
}
/**
*
*
* 2020-08-18
*/
@Before(GET.class)
public void canApplyVerification(int module_id, int business_id) {
boolean allow = model.canApplyVerification(module_id, business_id);
if (allow) {
renderJson(CommonUtil.returnMessageJson(true, "此记录处于可发起审核状态!"));
} else {
renderJson(CommonUtil.returnMessageJson(false, "此记录处于不可发起审核状态!"));
}
return;
}
/**
*
*
* 2020-08-18
*/
@Before(GET.class)
public void getVerificationStatus(int module_id, int business_id) {
int verification_status = model.getVerificationStatus(module_id, business_id);
renderJson(CommonUtil.returnMessageJson(true, String.valueOf(verification_status)));
return;
}
/**
* ,12
*
* 2020-08-18
*/
@Before(POST.class)
public void insertVerificationRecord(int module_id, int business_id) {
model.insertVerificationRecord(module_id, business_id);
renderJson(CommonUtil.returnMessageJson(true, "操作成功!"));
}
/**
*
*
* 2020-08-18
*/
@Before(POST.class)
public void passCurrentVerification(int record_id, String verification_judgement, int module_id, int business_id) {
// String person_id = getCookie("person_id");
// Record personList = model.getPersonInfoById(person_id);
// String person_name = personList.get("person_name");
// sendAdoptTemplateNotice(module_id, business_id, person_name, 1);
// model.passCurrentVerification(record_id, person_id, verification_judgement);
// renderJson(CommonUtil.returnMessageJson(true, "操作成功!"));
}
/**
*
*
* 2020-08-18
*/
@Before(POST.class)
public void refuseCurrentVerification(int record_id, String verification_judgement) {
String person_id = getCookie("person_id");
model.refuseCurrentVerification(record_id, person_id, verification_judgement);
renderJson(CommonUtil.returnMessageJson(true, "操作成功!"));
}
/**
*
*
* 2020-8-19
*/
@Before(GET.class)
public void getVerificationInfoById(int record_id) {
Record record = model.getModuleInfoById(record_id);
renderJson(record);
return;
}
}

@ -1,252 +0,0 @@
package com.dsideal.baseService.Verification.model;
import cn.hutool.core.date.DateTime;
import com.jfinal.kit.Kv;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.SqlPara;
import java.util.List;
public class VerificationModel {
/**
*
*
* 2020-08-18
*/
public int getFirstStepId(int module_id) {
String sql = "select min(step_id) as step_id from t_verification_step where module_id=? and b_use=0";
List<Record> list = Db.find(sql, module_id);
if (list.size() > 0) {
return list.get(0).getInt("step_id");
} else {
return -1;
}
}
/**
*
*
* 2020-08-18
*/
public int getLastStepId(int module_id) {
String sql = "select max(step_id) as step_id from t_verification_step where module_id=? and b_use=0";
List<Record> list = Db.find(sql, module_id);
if (list.size() > 0) {
return list.get(0).getInt("step_id");
} else {
return -1;
}
}
/**
* +ID
*
* 2020-08-18
*
* @param module_id
* @param business_id
* @return
*/
private int getLastRecordId(int module_id, int business_id) {
String sql = "select max(record_id) as record_id from t_verification_record where module_id=? and business_id=?";
List<Record> list = Db.find(sql, module_id, business_id);
if (list.size() > 0) {
return list.get(0).getInt("record_id");
} else {
return -1;
}
}
/**
* ID
*
* 2020-08-18
*
* @param step_id
* @return
*/
public int getNextStepId(int step_id) {
String sql = "select step_id from t_verification_step where parent_id=? and b_use=0";
List<Record> list = Db.find(sql, step_id);
if (list.size() > 0) {
return list.get(0).getInt("step_id");
} else {
return -1;
}
}
/**
* ID
*
* 2020-08-15
*
* @param step_id
* @return
*/
private Record getStepRecord(int step_id) {
Record record = Db.findById("t_verification_step", "step_id", step_id);
return record;
}
/*****************************************************************************************************/
/**
* ,12
*
* 2020-08-18
*/
public int insertVerificationRecord(int module_id, int business_id) {
//(1)检查这个模块中的此业务ID是否存在如果不存在则全新创建如果存在则添加下一条
String sql = "select ifnull(max(step_id),0) as step_id,ifnull(verification_status,0) as verificationStatus from t_verification_record where module_id=? and business_id=? order by record_id desc";
List<Record> list = Db.find(sql, module_id, business_id);
//如果存在旧的,表示是被拒绝后,重新创建一条审核记录
int step_id = list.get(0).getInt("step_id");
int verification_status = list.get(0).getInt("verification_status");
//TODO
//0 表示没有找到数据,是全新的
if (verification_status > 0 && verification_status != 4) {
//4:退回修改
//没有找到的话,就是全新的!
if (step_id == 0) {
//开始第一步的step_id
step_id = getFirstStepId(module_id);
} else {
//获取下一步的step_id
step_id = getNextStepId(module_id);
}
} else {
if (step_id == 0) {
//开始第一步的step_id
step_id = getFirstStepId(module_id);
} else {
//获取下一步的step_id
step_id = getNextStepId(module_id);
}
}
//(2)构建实体,准备增加
Record record = new Record();
record.set("step_id", step_id);
record.set("module_id", module_id);
record.set("business_id", business_id);
record.set("create_time", DateTime.now());
record.set("verification_status", 2);//待审核
//(3)增加记录
Db.save("t_verification_record", "record_id", record);
//返回新生成的ID
return record.getInt("record_id");
}
/**
*
*
* 2020-08-18
*/
public void passCurrentVerification(int record_id, String person_id, String verification_judgement) {
//(1)修改当前审核通过记录
Record record = Db.findById("t_verification_record", "record_id", record_id);
record.set("verification_status", 1);//审核通过
record.set("verification_person_id", person_id);//审核人
record.set("verification_time", DateTime.now());//审核时间
record.set("verification_judgement", verification_judgement);//审核意见
Db.update("t_verification_record", "record_id", record);
//(2)生成下一步的审核记录
int step_id = record.getInt("step_id");
int module_id = record.getInt("module_id");
int business_id = record.getInt("business_id");
//(3)是不是已经到了终结时刻?
int max_step_id = getLastStepId(module_id);
if (max_step_id != step_id) {
//(4)如果还没有到终结时刻,那么生成下一步数据记录
insertVerificationRecord(module_id, business_id);
}
}
/**
*
*
* 2020-08-18
*/
public void refuseCurrentVerification(int record_id, String person_id, String verification_judgement) {
//修改当前审核通过记录
Record record = Db.findById("t_verification_record", "record_id", record_id);
record.set("verification_status", -1);//审核拒绝
record.set("verification_person_id", person_id);//审核人
record.set("verification_time", DateTime.now());//审核时间
record.set("verification_judgement", verification_judgement);//审核意见
Db.update("t_verification_record", "record_id", record);
}
/**
*
*
* 2020-08-18
*
* @param module_id
* @param verification_status
* @param page
* @param limit
* @return
*/
public Page<Record> getVerificationList(int module_id, int verification_status, String identity_id, int page, int limit) {
Kv kv = Kv.create();
kv = kv.set("module_id", module_id).set("identity_id", identity_id);
if (verification_status > 0) {
kv = kv.set("verification_status", verification_status);
}
SqlPara sp = Db.getSqlPara("Verification.getVerifcationList", kv);
return Db.paginate(page, limit, sp);
}
/**
*
*
* 2020-08-18
*/
public boolean canApplyVerification(int module_id, int business_id) {
//(1)可以发起审核的状态包括: 1待提交4退回修改
//(2)不可以发起审核的状态包括 2已提交待审批3已通过5已拒绝
String sql = "select * from t_verification_record where module_id=? and business_id=? order by record_id limit 1";
List<Record> list = Db.find(sql, module_id, business_id);
if (list.size() > 0) {
int verification_status = list.get(0).getInt("verification_status");
if (verification_status == 4) {
return true;
} else {
return false;
}
} else {
return true;
}
}
/**
*
*
* 2020-08-18
*/
public int getVerificationStatus(int module_id, int business_id) {
String sql = "select * from t_verification_record where module_id=? and business_id=? order by record_id limit 1";
List<Record> list = Db.find(sql, module_id, business_id);
if (list.size() > 0) {
int verification_status = list.get(0).getInt("verification_status");
return verification_status;
} else {
return -99999;
}
}
/**
*
*
* 2020-8-19
*/
public Record getModuleInfoById(int record_id) {
Record record = Db.findById("t_verification_record", "record_id", record_id);
return record;
}
}

@ -1,12 +0,0 @@
-- 审核类命名空间
#namespace("Verification")
-- 获取审核列表
#sql("getVerifcationList")
select * from t_verification_record where module_id=#para(module_id)
and step_id in (select step_id from t_verification_step where identity_id=#para(identity_id) and b_use=1)
-- 如果限定了状态
#if(verification_status)
and verification_status=#para(verification_status)
#end
#end
#end
Loading…
Cancel
Save