feat/QxOcrFieldMg-20240412 #91

Merged
guanzheng merged 15 commits from feat/QxOcrFieldMg-20240412 into test 1 year ago

@ -31,18 +31,18 @@
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="jyjz-common" options="" />
<module name="jyjz-common" options="-parameters" />
<module name="jyjz-common-base" options="-parameters" />
<module name="jyjz-common-mybatisplus" options="-parameters" />
<module name="jyjz-common-redis" options="-parameters" />
<module name="jyjz-common-task" options="-parameters" />
<module name="jyjz-common-upload" options="-parameters" />
<module name="jyjz-common-web" options="-parameters" />
<module name="jyjz-framework" options="" />
<module name="jyjz-framework" options="-parameters" />
<module name="jyjz-framework-security" options="-parameters" />
<module name="jyjz-framework-securityweb" options="-parameters" />
<module name="jyjz-parent" options="" />
<module name="jyjz-system" options="" />
<module name="jyjz-parent" options="-parameters" />
<module name="jyjz-system" options="-parameters" />
<module name="jyjz-system-abase" options="-parameters" />
<module name="jyjz-system-admin" options="-parameters" />
<module name="jyjz-system-authority" options="-parameters" />

@ -2,17 +2,40 @@
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-base/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-base/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-mybatisplus/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-mybatisplus/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-redis/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-redis/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-task/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-task/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-upload/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-upload/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-web/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/jyjz-common-web/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-common/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-framework/jyjz-framework-security/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-framework/jyjz-framework-security/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-framework/jyjz-framework-securityweb/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-framework/jyjz-framework-securityweb/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-framework/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-framework/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-abase/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-abase/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-admin/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-admin/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-authority/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-authority/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-cms/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-cms/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-oa/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/jyjz-system-oa/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/jyjz-system/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/runstart/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/runstart/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

@ -6,6 +6,11 @@
<option name="name" value="central" />
<option name="url" value="https://maven.aliyun.com/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="http://10.5.54.75:8081/repository/maven-public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
@ -16,11 +21,21 @@
<option name="name" value="Central Repository" />
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="nexus-75" />
<option name="name" value="nexus-75" />
<option name="url" value="http://10.5.54.75:8081/repository/maven-public/" />
</remote-repository>
<remote-repository>
<option name="id" value="rdc-releases" />
<option name="name" value="rdc-releases" />
<option name="url" value="https://packages.aliyun.com/maven/repository/2179753-release-2RMtZe/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
@ -31,16 +46,21 @@
<option name="name" value="alimaven" />
<option name="url" value="https://maven.aliyun.com/repository/public" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="rdc-snapshots" />
<option name="name" value="rdc-snapshots" />
<option name="url" value="https://packages.aliyun.com/maven/repository/2179753-snapshot-eDoLiX/" />
</remote-repository>
<remote-repository>
<option name="id" value="nexus-75" />
<option name="name" value="nexus-75" />
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="snapshots" />
<option name="name" value="snapshots" />

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/jyjz-parent.iml" filepath="$PROJECT_DIR$/jyjz-parent.iml" />
</modules>
</component>
</project>

@ -0,0 +1,277 @@
<#include "/common/taglibs.html" />
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>信息字段管理添加</title>
<#include "/head/headaddedit.html" />
<link href="${ctx}/static/js/plugins/jqueryzTree/css/metroStyle/metroStyle.css" rel="stylesheet">
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>信息字段新增</h5>
</div>
<div class="ibox-content">
<div class="main-content">
<form name="Postform" method="post" id="Postform" class="form-horizontal" action="${ctx}/backstage/post/save">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 字段名称:</label>
<div class="col-sm-9">
<input name="name" id="name" class="form-control" placeholder="字段名称" class="form-control" type="text" maxlength='100' required>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 页面类型:</label>
<div class="col-sm-9">
<select class="form-control" name='reviewType' id='reviewType'>
<option value="0">终审</option>
<option value="1">工单</option>
<option value="2">一审二审</option>
<option value="3">审核填报</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 字段描述:</label>
<div class="col-sm-9">
<input name="fieldDesc" id="fieldDesc" class="form-control" placeholder="字段描述" class="form-control" type="text" maxlength='100' required>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否必选:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isrequired"> <i></i>启用
</label>
<label>
<input type="radio" value="0" name="isrequired"> <i></i>停用
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 排序字段:</label>
<div class="col-sm-9">
<input name="sort" id="sort" class="form-control" placeholder="排序字段" class="form-control" type="text" maxlength='20' required>
</div>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否高亮:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isHighlight"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isHighlight"> <i></i>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否可点击:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isTap"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isTap"> <i></i>
</label>
</div>
</div>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否隐藏:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isHide"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isHide"> <i></i>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-sm-offset-5">
<button id="savebutton" type="submit" class="btn btn-w-m btn-primary">保存</button>
<button type="button" onclick="rolesback()" class="btn btn-w-m btn-success">取消</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="ajaxDeptTreemodal" class="modal fade" tabindex="-1" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">选择机构</h4>
</div>
<div class="modal-body" style=" padding: 15px 50px; ">
<ul id="departZtreeUl" class="ztree"></ul>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-white">取消</button>
<button type="button" onclick="closedept()" class="btn btn-primary">确认</button>
</div>
</div>
</div>
</div>
<#include "/head/footadd.html" />
<script src="${ctx}/static/js/plugins/layer/layer.min.js"></script>
<script src="${ctx}/static/js/plugins/jqueryzTree/js/jquery.ztree.all.min.js"></script>
<script type="text/javascript">
var $ajaxDeptTreemodal = $('#ajaxDeptTreemodal');
function selectDeptTree(){
$ajaxDeptTreemodal.modal();
$ajaxDeptTreemodal.css("z-index",(parent.getMaxZIndex() + 1));
}
function closedept(){
$ajaxDeptTreemodal.modal('hide');
}
var _deptTree;
var setting = {
data: {
simpleData: {
enable: true
}
}, callback: {onClick: zTreeOnClick }
};
function zTreeOnClick(event, treeId, treeNode) {
$("#reviewType").val(treeNode.name);
$("#deptid").val(treeNode.id);
closedept();
};
$(document).ready(function () {
if(parent.$("#index_user_issys").val() == 0){
$("#systemAdminUse").hide();
}
parent.axgetXiaoyao("${ctx}/backstage/admin/department/showDeptJsTree",null,false,function (data) {
_deptTree = $.fn.zTree.init($("#departZtreeUl"),setting, data);
_deptTree.expandAll(true);
});
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
$("#Postform").attr("action","${ctx}/ocr/field/saveOrUpdate");
var form1 = $('#Postform');
var error1 = $('.alert-danger', form1);
form1.validate({
debug: true,
errorElement: 'span',
errorClass: 'help-block help-block-error',
focusInvalid: false,
ignore: "",
errorPlacement: function (error, element) {
if (element.parent(".input-group").size() > 0) {
error.insertAfter(element.parent(".input-group"));
} else if (element.attr("data-error-container")) {
error.appendTo(element.attr("data-error-container"));
} else if (element.parents('.radio-list').size() > 0) {
error.appendTo(element.parents('.radio-list').attr("data-error-container"));
} else if (element.parents('.radio-inline').size() > 0) {
error.appendTo(element.parents('.radio-inline').attr("data-error-container"));
} else if (element.parents('.checkbox-list').size() > 0) {
error.appendTo(element.parents('.checkbox-list').attr("data-error-container"));
} else if (element.parents('.checkbox-inline').size() > 0) {
error.appendTo(element.parents('.checkbox-inline').attr("data-error-container"));
} else {
error.insertAfter(element);
}
},
highlight: function (element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function (element) {
$(element).closest('.form-group').removeClass('has-error');
},
success: function (label) {
label.closest('.form-group').removeClass('has-error');
},
submitHandler: function (){
parent.layer.load();
$("#savebutton").addClass('disabled');
$("#Postform").ajaxSubmit({
headers:{"logintoken": parent.getLoginToken()},
success:function(data) {
parent.layer.closeAll('loading');
if (data.code == "OK") {
parent.toastr.success(data.message);
rolesback();
} else if (data.code == "ERRORM") {
$.each(data.message, function (name, anArray) {
$.each(anArray, function (n, value) {
$("#" + n).closest('.form-group').addClass('has-error');
$("<span>").attr("id", n + "-error").addClass(
"help-block help-block-error").html(value).insertAfter($("#" + n));
});
});
} else {
$("#savebutton").addClass('removeClass');
parent.toastr.error(data.message);
}
}
});
}
});
});
function rolesback() {
parent.closeItem(window.frameElement.name);
}
</script>
</body>
</html>

@ -0,0 +1,313 @@
<#include "/common/taglibs.html" />
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>岗位信息</title>
<#include "/head/headaddedit.html" />
<link href="${ctx}/static/js/plugins/jqueryzTree/css/metroStyle/metroStyle.css" rel="stylesheet">
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>信息字段编辑</h5>
</div>
<div class="ibox-content">
<div class="main-content">
<form name="Postform" method="post" id="Postform" class="form-horizontal" action="${ctx}/backstage/post/edit">
<input type="hidden" id="id" name="id" value="${id}">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 字段名称:</label>
<div class="col-sm-9">
<input name="name" id="name" class="form-control" placeholder="字段名称" class="form-control" type="text" maxlength='100' required>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 页面类型:</label>
<div class="col-sm-9">
<select class="form-control" name='reviewType' id='reviewType'>
<option value="0">终审</option>
<option value="1">工单</option>
<option value="2">一审二审</option>
<option value="3">审核填报</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 字段描述:</label>
<div class="col-sm-9">
<input name="fieldDesc" id="fieldDesc" class="form-control" placeholder="字段描述" class="form-control" type="text" maxlength='100' required>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否必选:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isrequired"> <i></i>启用
</label>
<label>
<input type="radio" value="0" name="isrequired"> <i></i>停用
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 排序字段:</label>
<div class="col-sm-9">
<input name="sort" id="sort" class="form-control" placeholder="排序字段" class="form-control" type="text" maxlength='20' required>
</div>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否高亮:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isHighlight"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isHighlight"> <i></i>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否可点击:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isTap"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isTap"> <i></i>
</label>
</div>
</div>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否隐藏:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isHide"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isHide"> <i></i>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-sm-offset-5">
<button type="submit" class="btn btn-w-m btn-primary">保存</button>
<button type="button" onclick="rolesback()" class="btn btn-w-m btn-success">取消</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="ajaxDeptTreemodal" class="modal fade" tabindex="-1" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">选择机构</h4>
</div>
<div class="modal-body" style=" padding: 15px 50px; ">
<ul id="departZtreeUl" class="ztree"></ul>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-white">取消</button>
<button type="button" onclick="closedept()" class="btn btn-primary">确认</button>
</div>
</div>
</div>
</div>
<#include "/head/footadd.html" />
<script src="${ctx}/static/js/plugins/layer/layer.min.js"></script>
<script src="${ctx}/static/js/plugins/jqueryzTree/js/jquery.ztree.all.min.js"></script>
<script type="text/javascript">
var $ajaxDeptTreemodal = $('#ajaxDeptTreemodal');
function selectDeptTree(){
$ajaxDeptTreemodal.modal();
$ajaxDeptTreemodal.css("z-index",(parent.getMaxZIndex() + 1));
}
function closedept(){
$ajaxDeptTreemodal.modal('hide');
}
var _deptTree;
var setting = {
data: {
simpleData: {
enable: true
}
}, callback: {onClick: zTreeOnClick }
};
function zTreeOnClick(event, treeId, treeNode) {
$("#parentname").val(treeNode.name);
$("#deptid").val(treeNode.id);
closedept();
};
$(document).ready(function () {
if(parent.$("#index_user_issys").val() == 0){
$("#systemAdminUse").hide();
}
$.ajaxSettings.async = false;
parent.axgetXiaoyao("${ctx}/backstage/admin/department/showDeptJsTree",null,false,function (data) {
_deptTree = $.fn.zTree.init($("#departZtreeUl"),setting, data);
_deptTree.expandAll(true);
});
$.ajaxSettings.async = true;
parent.axgetXiaoyao('${ctx}/ocr/field/getData/' + $("#id").val(),null,false , function(data){
if(data.code == "OK"){
$("#id").val(data.data.id);
$("#name").val(data.data.name);
$("#reviewType").val(data.data.reviewType)
// if(data.data.reviewType == '0') {
// $("#reviewType").val('终审');
// }
// else if(data.data.reviewType == '1'){
// $("#reviewType").val('工单');
// }
// else if(data.data.reviewType == '2'){
// $("#reviewType").val('一审二审');
// }
// else if(data.data.reviewType == '3'){
// $("#reviewType").val('审核填报');
// }
$("#fieldDesc").val(data.data.fieldDesc);
$("#sort").val(data.data.sort);
$("#isTap").val(data.data.isTap == '1'?'是':'否');
$("#isHide").val(data.data.isHide == '1'?'是':'否');
}else{
parent.toastr.error("非法请求。");
}
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
});
$("#Postform").attr("action","${ctx}/ocr/field/saveOrUpdate");
var form1 = $('#Postform');
var error1 = $('.alert-danger', form1);
form1.validate({
debug: true,
errorElement: 'span',
errorClass: 'help-block help-block-error',
focusInvalid: false,
ignore: ":hidden",
errorPlacement: function (error, element) {
if (element.parent(".input-group").size() > 0) {
error.insertAfter(element.parent(".input-group"));
} else if (element.attr("data-error-container")) {
error.appendTo(element.attr("data-error-container"));
} else if (element.parents('.radio-list').size() > 0) {
error.appendTo(element.parents('.radio-list').attr("data-error-container"));
} else if (element.parents('.radio-inline').size() > 0) {
error.appendTo(element.parents('.radio-inline').attr("data-error-container"));
} else if (element.parents('.checkbox-list').size() > 0) {
error.appendTo(element.parents('.checkbox-list').attr("data-error-container"));
} else if (element.parents('.checkbox-inline').size() > 0) {
error.appendTo(element.parents('.checkbox-inline').attr("data-error-container"));
} else {
error.insertAfter(element);
}
},
highlight: function (element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function (element) {
$(element).closest('.form-group').removeClass('has-error');
},
success: function (label) {
label.closest('.form-group').removeClass('has-error');
},
submitHandler: function (){
parent.layer.load();
$("#Postform").ajaxSubmit({
headers: {"logintoken": parent.getLoginToken()},
success: function (data) {
parent.layer.closeAll('loading');
if (data.code == "OK") {
parent.toastr.success(data.message);
rolesback();
} else if (data.code == "ERRORM") {
$.each(data.message, function (name, anArray) {
$.each(anArray, function (n, value) {
$("#" + n).closest('.form-group').addClass('has-error');
$("<span>").attr("id", n + "-error").addClass(
"help-block help-block-error").html(value).insertAfter($("#" + n));
});
});
} else {
parent.toastr.error(data.message);
}
}
});
}
});
});
function rolesback() {
parent.closeItem(window.frameElement.name);
}
</script>
</body>
</html>

@ -0,0 +1,232 @@
<#include "/common/taglibs.html" />
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>信息字段管理</title>
<#include "/head/headlist.html" />
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="ibox ">
<div class="ibox-content">
<div class="ibox-content">
<form id="searcheuser" class="form-inline">
<div class="form-group">
<input name='search_name' id='search_name' class='form-control' placeholder='字段名称'/>
</div>
<div class="form-group">
<select class="form-control" name='search_reviewType' id='search_reviewType'>
<option value="0">终审</option>
<option value="1">工单</option>
<option value="2">一审二审</option>
<option value="3">审核填报</option>
</select>
</div>
<div class="form-group">
<a class="btn btn-primary btn-rounded btn-sm" onclick="refreshTable()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$('#searcheuser')[0].reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</div>
</form>
</div>
</div>
</div>
<div class="ibox-content">
<div class="row row-lg">
<div class="col-sm-12">
<div class="container-div">
<div class="btn-group-sm" id="_mybutton" role="group">
</div>
<br/>
</div>
</div>
<div class="col-sm-12 select-table table-striped" >
<table id="Post_list" ></table>
</div>
</div>
</div>
</div>
<#include "/head/footlist.html" />
</body>
</html>
<script type="text/javascript">
var _tableListPost;
var jsptoolbar = '';
var jspOperation = '';
jQuery(document).ready(function($){
parent.axgetXiaoyao("${ctx}/backstage/admin/user/toolsbarOperation?" + "resourceid=${resourceid}",null,true ,
function(data){
if(data.code == "OK"){
jsptoolbar = data.data.Jsptoolbar;
jspOperation = data.data.JspOperation;
$("#_mybutton").empty();
$(jsptoolbar).each(function (i, toolbar) {
if(toolbar.methodid != '104'){
$("#_mybutton").append('<button class="btn sbold ' + toolbar.img + '" onClick="' + toolbar.actionmethod + '(\'${resourceid}' + toolbar.methodid + '\')"> ' + ' <i class="fa ' + toolbar.methodkey + '"></i> ' + toolbar.text + '</button>&nbsp');
}
});
_tableListPost = $('#Post_list').bootstrapTable({
url: '${ctx}/ocr/field/list',
pagination: true, //是否显示分页(*
pageNumber:1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*
sidePagination: "server",
pageList: [10, 25, 50],
ajaxOptions:{
headers: {"logintoken": parent.getLoginToken()}
},
queryParams: function queryParams(params) {
return {
sortorder: params.order,
sortname: params.sort,
pagesize: params.limit,
start: (params.offset / params.limit) + 1,
search_name:'{"value":"' + $("#search_name").val() + '","op":"equal","type":"string"}',
search_reviewType:'{"value":"' + $("#search_reviewType").val() + '","op":"equal","type":"string"}',
};
},
responseHandler:function(res){
return{"rows": res.data.records, "total": res.data.total};
},
columns: [
{checkbox: true},
{ width:100,valign: "middle",field:'name',title:'字段名称',sortable:true},
{ width:150,valign: "middle",field:'reviewType',title:'字段类型',sortable:true,
formatter:function(value,oData,index) {
var listOperation = "";
if(oData.reviewType == 0){
listOperation = "终审";
}
else if(oData.reviewType == 1) {
listOperation = "工单";
}
else if(oData.reviewType == 2) {
listOperation = "一审二审";
}
else{
listOperation = "审核填报";
}
return listOperation;
}
},
{ width:150,valign: "middle",field:'fieldDesc',title:'字段描述',sortable:true},
{ width:80,valign: "middle",field:'isrequired',title:'是否必选',sortable:true,
formatter:function(value,oData,index) {
return (oData.isrequired === '1'?'启用':'停用');
}
},
{ width:80,valign: "middle",field:'sort',title:'排序字段',sortable:true},
{
width:200,
field: 'id',
title: '操作',
formatter:function(value,oData,index) {
var listOperation = "";
$(jspOperation).each(function (i, toolbar) {
listOperation = listOperation + "<a href=\"javascript:" + toolbar.actionmethod + "('${resourceid}','" + oData.id + "');\" class=\"btn " + toolbar.img + " btn-xs\")><i class=\"fa " + toolbar.methodkey + "\"></i> " + toolbar.text + " </a>&nbsp;&nbsp;";
});
return listOperation;
}
}
]
});
}
}
);
});
function getIdSelections() {
return $.map(_tableListPost.bootstrapTable('getSelections'), function(row) {
return row.id
});
}
function _useradd(jframeid){
parent._xiaoyaoOpenMenuTab('${ctx}/backstage/oa/ocrfieldconfigurationHtml/toSave',"添加字段信息",jframeid + '_add');
}
function updateData(jframeid,str){
var url = '${ctx}/backstage/oa/ocrfieldconfigurationHtml/toEdit/' + str ;
parent._xiaoyaoOpenMenuTab(url,"修改字段信息",jframeid + '_edit');
}
function _useredit(jframeid){
var str = getIdSelections() + "";
var tempstr = str.split(",");
if(str.length > 0 && tempstr.length > 1){
parent.toastr.error("每次只能修改一条信息。");
}else{
if (str.length > 0) {
updateData(jframeid,str);
} else {
parent.toastr.error("至少选择一条信息操作。");
}
}
}
function t_delete(str){
parent.layer.closeAll('loading');
// $.getJSON('${ctx}/ocr/field/delete?logintoken=' + parent.document.getElementById("logintoken").value, {id:str}, function(data){
parent.axgetXiaoyao('${ctx}/ocr/field/delete' , {id:str},false, function(data){
parent.layer.closeAll('loading');
if(data.code == "OK"){
swal(data.message, "您已经永久删除了这条信息。", "success");
refreshTable();
}else{
swal(data.message, "遇到未知错误!", "error");
}
});
}
function _deletebu(sourceid){
var str = getIdSelections() + "";
var tempstr = str.split(",");
if (str.length > 0 && tempstr.length > 0) {
swal({
title: "您确定要删除这条信息吗",
text: "删除后将无法恢复,请谨慎操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "是的,我要删除!",
cancelButtonText: "让我再考虑一下…",
closeOnConfirm: false,
closeOnCancel: false
},
function (isConfirm) {
if (isConfirm) {
t_delete(str);
} else {
swal("已取消", "您取消了删除操作!", "error");
}
});
} else {
parent.toastr.error("至少选择一条数据操作");
}
}
function _delete(sourceid,str){
swal({
title: "您确定要删除这条信息吗",
text: "删除后将无法恢复,请谨慎操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "是的,我要删除!",
cancelButtonText: "让我再考虑一下…",
closeOnConfirm: false,
closeOnCancel: false
},
function (isConfirm) {
if (isConfirm) {
t_delete(str);
} else {
swal("已取消", "您取消了删除操作!", "error");
}
});
}
function refreshTable(sourceid){
_tableListPost.bootstrapTable('refreshOptions',{pageNumber:1});
}
</script>

@ -0,0 +1,277 @@
<#include "/common/taglibs.html" />
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>信息字段管理添加</title>
<#include "/head/headaddedit.html" />
<link href="${ctx}/static/js/plugins/jqueryzTree/css/metroStyle/metroStyle.css" rel="stylesheet">
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>信息字段新增</h5>
</div>
<div class="ibox-content">
<div class="main-content">
<form name="Postform" method="post" id="Postform" class="form-horizontal" action="${ctx}/backstage/post/save">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 字段名称:</label>
<div class="col-sm-9">
<input name="name" id="name" class="form-control" placeholder="字段名称" class="form-control" type="text" maxlength='100' required>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 页面类型:</label>
<div class="col-sm-9">
<select class="form-control" name='reviewType' id='reviewType'>
<option value="0">终审</option>
<option value="1">工单</option>
<option value="2">一审二审</option>
<option value="3">审核填报</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 字段描述:</label>
<div class="col-sm-9">
<input name="fieldDesc" id="fieldDesc" class="form-control" placeholder="字段描述" class="form-control" type="text" maxlength='100' required>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否必选:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isrequired"> <i></i>启用
</label>
<label>
<input type="radio" value="0" name="isrequired"> <i></i>停用
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 排序字段:</label>
<div class="col-sm-9">
<input name="sort" id="sort" class="form-control" placeholder="排序字段" class="form-control" type="text" maxlength='20' required>
</div>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否高亮:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isHighlight"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isHighlight"> <i></i>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否可点击:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isTap"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isTap"> <i></i>
</label>
</div>
</div>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否隐藏:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isHide"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isHide"> <i></i>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-sm-offset-5">
<button id="savebutton" type="submit" class="btn btn-w-m btn-primary">保存</button>
<button type="button" onclick="rolesback()" class="btn btn-w-m btn-success">取消</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="ajaxDeptTreemodal" class="modal fade" tabindex="-1" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">选择机构</h4>
</div>
<div class="modal-body" style=" padding: 15px 50px; ">
<ul id="departZtreeUl" class="ztree"></ul>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-white">取消</button>
<button type="button" onclick="closedept()" class="btn btn-primary">确认</button>
</div>
</div>
</div>
</div>
<#include "/head/footadd.html" />
<script src="${ctx}/static/js/plugins/layer/layer.min.js"></script>
<script src="${ctx}/static/js/plugins/jqueryzTree/js/jquery.ztree.all.min.js"></script>
<script type="text/javascript">
var $ajaxDeptTreemodal = $('#ajaxDeptTreemodal');
function selectDeptTree(){
$ajaxDeptTreemodal.modal();
$ajaxDeptTreemodal.css("z-index",(parent.getMaxZIndex() + 1));
}
function closedept(){
$ajaxDeptTreemodal.modal('hide');
}
var _deptTree;
var setting = {
data: {
simpleData: {
enable: true
}
}, callback: {onClick: zTreeOnClick }
};
function zTreeOnClick(event, treeId, treeNode) {
$("#reviewType").val(treeNode.name);
$("#deptid").val(treeNode.id);
closedept();
};
$(document).ready(function () {
if(parent.$("#index_user_issys").val() == 0){
$("#systemAdminUse").hide();
}
parent.axgetXiaoyao("${ctx}/backstage/admin/department/showDeptJsTree",null,false,function (data) {
_deptTree = $.fn.zTree.init($("#departZtreeUl"),setting, data);
_deptTree.expandAll(true);
});
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
$("#Postform").attr("action","${ctx}/backstage/ocr/field/add");
var form1 = $('#Postform');
var error1 = $('.alert-danger', form1);
form1.validate({
debug: true,
errorElement: 'span',
errorClass: 'help-block help-block-error',
focusInvalid: false,
ignore: "",
errorPlacement: function (error, element) {
if (element.parent(".input-group").size() > 0) {
error.insertAfter(element.parent(".input-group"));
} else if (element.attr("data-error-container")) {
error.appendTo(element.attr("data-error-container"));
} else if (element.parents('.radio-list').size() > 0) {
error.appendTo(element.parents('.radio-list').attr("data-error-container"));
} else if (element.parents('.radio-inline').size() > 0) {
error.appendTo(element.parents('.radio-inline').attr("data-error-container"));
} else if (element.parents('.checkbox-list').size() > 0) {
error.appendTo(element.parents('.checkbox-list').attr("data-error-container"));
} else if (element.parents('.checkbox-inline').size() > 0) {
error.appendTo(element.parents('.checkbox-inline').attr("data-error-container"));
} else {
error.insertAfter(element);
}
},
highlight: function (element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function (element) {
$(element).closest('.form-group').removeClass('has-error');
},
success: function (label) {
label.closest('.form-group').removeClass('has-error');
},
submitHandler: function (){
parent.layer.load();
$("#savebutton").addClass('disabled');
$("#Postform").ajaxSubmit({
headers:{"logintoken": parent.getLoginToken()},
success:function(data) {
parent.layer.closeAll('loading');
if (data.code == "OK") {
parent.toastr.success(data.message);
rolesback();
} else if (data.code == "ERRORM") {
$.each(data.message, function (name, anArray) {
$.each(anArray, function (n, value) {
$("#" + n).closest('.form-group').addClass('has-error');
$("<span>").attr("id", n + "-error").addClass(
"help-block help-block-error").html(value).insertAfter($("#" + n));
});
});
} else {
$("#savebutton").addClass('removeClass');
parent.toastr.error(data.message);
}
}
});
}
});
});
function rolesback() {
parent.closeItem(window.frameElement.name);
}
</script>
</body>
</html>

@ -0,0 +1,317 @@
<#include "/common/taglibs.html" />
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>岗位信息</title>
<#include "/head/headaddedit.html" />
<link href="${ctx}/static/js/plugins/jqueryzTree/css/metroStyle/metroStyle.css" rel="stylesheet">
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>信息字段编辑</h5>
</div>
<div class="ibox-content">
<div class="main-content">
<form name="Postform" method="post" id="Postform" class="form-horizontal" action="${ctx}/backstage/post/edit">
<input type="hidden" id="id" name="id" value="${id}">
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 字段名称:</label>
<div class="col-sm-9">
<input name="name" id="name" class="form-control" placeholder="字段名称" class="form-control" type="text" maxlength='100' required>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 页面类型:</label>
<div class="col-sm-9">
<select class="form-control" name='reviewType' id='reviewType'>
<option value="0">终审</option>
<option value="1">工单</option>
<option value="2">一审二审</option>
<option value="3">审核填报</option>
</select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 字段描述:</label>
<div class="col-sm-9">
<input name="fieldDesc" id="fieldDesc" class="form-control" placeholder="字段描述" class="form-control" type="text" maxlength='100' required>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否必选:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isrequired"> <i></i>启用
</label>
<label>
<input type="radio" value="0" name="isrequired"> <i></i>停用
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label is-required">* 排序字段:</label>
<div class="col-sm-9">
<input name="sort" id="sort" class="form-control" placeholder="字段描述" class="form-control" type="text" maxlength='20' required>
</div>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否高亮:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isHighlight"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isHighlight"> <i></i>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否可点击:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isTap"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isTap"> <i></i>
</label>
</div>
</div>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否隐藏:</label>
<div class="col-sm-9">
<div class="radio i-checks">
<label>
<input type="radio" checked="" value="1" name="isHide"> <i></i>
</label>
<label>
<input type="radio" value="0" name="isHide"> <i></i>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-sm-offset-5">
<button type="submit" class="btn btn-w-m btn-primary">保存</button>
<button type="button" onclick="rolesback()" class="btn btn-w-m btn-success">取消</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="ajaxDeptTreemodal" class="modal fade" tabindex="-1" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<h4 class="modal-title">选择机构</h4>
</div>
<div class="modal-body" style=" padding: 15px 50px; ">
<ul id="departZtreeUl" class="ztree"></ul>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-white">取消</button>
<button type="button" onclick="closedept()" class="btn btn-primary">确认</button>
</div>
</div>
</div>
</div>
<#include "/head/footadd.html" />
<script src="${ctx}/static/js/plugins/layer/layer.min.js"></script>
<script src="${ctx}/static/js/plugins/jqueryzTree/js/jquery.ztree.all.min.js"></script>
<script type="text/javascript">
var $ajaxDeptTreemodal = $('#ajaxDeptTreemodal');
function selectDeptTree(){
$ajaxDeptTreemodal.modal();
$ajaxDeptTreemodal.css("z-index",(parent.getMaxZIndex() + 1));
}
function closedept(){
$ajaxDeptTreemodal.modal('hide');
}
var _deptTree;
var setting = {
data: {
simpleData: {
enable: true
}
}, callback: {onClick: zTreeOnClick }
};
function zTreeOnClick(event, treeId, treeNode) {
$("#parentname").val(treeNode.name);
$("#deptid").val(treeNode.id);
closedept();
};
$(document).ready(function () {
if(parent.$("#index_user_issys").val() == 0){
$("#systemAdminUse").hide();
}
$.ajaxSettings.async = false;
parent.axgetXiaoyao("${ctx}/backstage/admin/department/showDeptJsTree",null,false,function (data) {
_deptTree = $.fn.zTree.init($("#departZtreeUl"),setting, data);
_deptTree.expandAll(true);
});
$.ajaxSettings.async = true;
parent.axgetXiaoyao('${ctx}/backstage/admin/post/getdata/' + $("#id").val(),null,false , function(data){
if(data.code == "OK"){
$("#id").val(data.data.id);
$("#postname").val(data.data.postname);
$("#postdesc").val(data.data.postdesc);
var node = _deptTree.getNodesByParam("id",String(data.data.deptid));
console.log("--node--------------" + data.data.deptid)
console.log(node)
if(undefined != node && node.length > 0){
_deptTree.selectNode(node[0]);
$("#parentname").val(node[0].name);
}
$("#sorting").val(data.data.sorting);
if(data.data.enabled == 1){
$("input:radio[name='enabled']").eq(0).attr('checked',true);
}else if(data.data.enabled == 0){
$("input:radio[name='enabled']").eq(1).attr('checked',true);
}
if(data.data.issys == 1){
$("input:radio[name='issys']").eq(0).attr('checked',true);
}else if(data.data.issys == 0){
$("input:radio[name='issys']").eq(1).attr('checked',true);
}
$("#postcode").val(data.data.postcode);
}else{
parent.toastr.error("非法请求。");
}
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
});
$("#Postform").attr("action","${ctx}/backstage/ocr/field/edit");
var form1 = $('#Postform');
var error1 = $('.alert-danger', form1);
form1.validate({
debug: true,
errorElement: 'span',
errorClass: 'help-block help-block-error',
focusInvalid: false,
ignore: ":hidden",
errorPlacement: function (error, element) {
if (element.parent(".input-group").size() > 0) {
error.insertAfter(element.parent(".input-group"));
} else if (element.attr("data-error-container")) {
error.appendTo(element.attr("data-error-container"));
} else if (element.parents('.radio-list').size() > 0) {
error.appendTo(element.parents('.radio-list').attr("data-error-container"));
} else if (element.parents('.radio-inline').size() > 0) {
error.appendTo(element.parents('.radio-inline').attr("data-error-container"));
} else if (element.parents('.checkbox-list').size() > 0) {
error.appendTo(element.parents('.checkbox-list').attr("data-error-container"));
} else if (element.parents('.checkbox-inline').size() > 0) {
error.appendTo(element.parents('.checkbox-inline').attr("data-error-container"));
} else {
error.insertAfter(element);
}
},
highlight: function (element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function (element) {
$(element).closest('.form-group').removeClass('has-error');
},
success: function (label) {
label.closest('.form-group').removeClass('has-error');
},
submitHandler: function (){
parent.layer.load();
$("#Postform").ajaxSubmit({
headers: {"logintoken": parent.getLoginToken()},
success: function (data) {
parent.layer.closeAll('loading');
if (data.code == "OK") {
parent.toastr.success(data.message);
rolesback();
} else if (data.code == "ERRORM") {
$.each(data.message, function (name, anArray) {
$.each(anArray, function (n, value) {
$("#" + n).closest('.form-group').addClass('has-error');
$("<span>").attr("id", n + "-error").addClass(
"help-block help-block-error").html(value).insertAfter($("#" + n));
});
});
} else {
parent.toastr.error(data.message);
}
}
});
}
});
});
function rolesback() {
parent.closeItem(window.frameElement.name);
}
</script>
</body>
</html>

@ -0,0 +1,233 @@
<#include "/common/taglibs.html" />
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>信息字段管理</title>
<#include "/head/headlist.html" />
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="ibox ">
<div class="ibox-content">
<div class="ibox-content">
<form id="searcheuser" class="form-inline">
<div class="form-group">
<input name='search_name' id='search_name' class='form-control' placeholder='字段名称'/>
</div>
<div class="form-group">
<select class="form-control" name='search_reviewType' id='search_reviewType'>
<option value="0">终审</option>
<option value="1">工单</option>
<option value="2">一审二审</option>
<option value="3">审核填报</option>
</select>
</div>
<div class="form-group">
<a class="btn btn-primary btn-rounded btn-sm" onclick="refreshTable()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$('#searcheuser')[0].reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</div>
</form>
</div>
</div>
</div>
<div class="ibox-content">
<div class="row row-lg">
<div class="col-sm-12">
<div class="container-div">
<div class="btn-group-sm" id="_mybutton" role="group">
</div>
<br/>
</div>
</div>
<div class="col-sm-12 select-table table-striped" >
<table id="Post_list" ></table>
</div>
</div>
</div>
</div>
<#include "/head/footlist.html" />
</body>
</html>
<script type="text/javascript">
var _tableListPost;
var jsptoolbar = '';
var jspOperation = '';
jQuery(document).ready(function($){
parent.axgetXiaoyao("${ctx}/backstage/admin/user/toolsbarOperation?" + "resourceid=${resourceid}",null,true ,
function(data){
if(data.code == "OK"){
jsptoolbar = data.data.Jsptoolbar;
jspOperation = data.data.JspOperation;
$("#_mybutton").empty();
$(jsptoolbar).each(function (i, toolbar) {
if(toolbar.methodid != '104'){
$("#_mybutton").append('<button class="btn sbold ' + toolbar.img + '" onClick="' + toolbar.actionmethod + '(\'${resourceid}' + toolbar.methodid + '\')"> ' + ' <i class="fa ' + toolbar.methodkey + '"></i> ' + toolbar.text + '</button>&nbsp');
}
});
_tableListPost = $('#Post_list').bootstrapTable({
url: '${ctx}/ocr/field/list',
pagination: true, //是否显示分页(*
pageNumber:1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*
sidePagination: "server",
pageList: [10, 25, 50],
ajaxOptions:{
headers: {"logintoken": parent.getLoginToken()}
},
queryParams: function queryParams(params) {
return {
sortorder: params.order,
sortname: params.sort,
pagesize: params.limit,
start: (params.offset / params.limit) + 1,
search_name:'{"value":"' + $("#search_name").val() + '","op":"equal","type":"string"}',
search_reviewType:'{"value":"' + $("#search_reviewType").val() + '","op":"equal","type":"string"}',
};
},
responseHandler:function(res){
return{"rows": res.data.records, "total": res.data.total};
},
columns: [
{checkbox: true},
{ width:100,valign: "middle",field:'name',title:'字段名称',sortable:true},
{ width:150,valign: "middle",field:'reviewType',title:'字段类型',sortable:true,
formatter:function(value,oData,index) {
var listOperation = "";
if(oData.reviewType == 0){
listOperation = "终审";
}
else if(oData.reviewType == 1) {
listOperation = "工单";
}
else if(oData.reviewType == 2) {
listOperation = "一审二审";
}
else{
listOperation = "审核填报";
}
return listOperation;
}
},
{ width:150,valign: "middle",field:'fieldDesc',title:'字段描述',sortable:true},
{ width:80,valign: "middle",field:'isrequired',title:'是否必选',sortable:true,
formatter:function(value,oData,index) {
// var listOperation = "";
return (oData.data.isrequired == '1'?'启用':'停用');
}
},
{ width:80,valign: "middle",field:'sort',title:'排序字段',sortable:true},
{
width:200,
field: 'id',
title: '操作',
formatter:function(value,oData,index) {
var listOperation = "";
$(jspOperation).each(function (i, toolbar) {
listOperation = listOperation + "<a href=\"javascript:" + toolbar.actionmethod + "('${resourceid}','" + oData.id + "');\" class=\"btn " + toolbar.img + " btn-xs\")><i class=\"fa " + toolbar.methodkey + "\"></i> " + toolbar.text + " </a>&nbsp;&nbsp;";
});
return listOperation;
}
}
]
});
}
}
);
});
function getIdSelections() {
return $.map(_tableListPost.bootstrapTable('getSelections'), function(row) {
return row.id
});
}
function _useradd(jframeid){
parent._xiaoyaoOpenMenuTab('${ctx}/backstage/admin/postHtml/toSave',"添加字段信息",jframeid + '_add');
}
function updateData(jframeid,str){
var url = '${ctx}/backstage/admin/postHtml/toEdit/' + str ;
parent._xiaoyaoOpenMenuTab(url,"修改字段信息",jframeid + '_edit');
}
function _useredit(jframeid){
var str = getIdSelections() + "";
var tempstr = str.split(",");
if(str.length > 0 && tempstr.length > 1){
parent.toastr.error("每次只能修改一条信息。");
}else{
if (str.length > 0) {
updateData(jframeid,str);
} else {
parent.toastr.error("至少选择一条信息操作。");
}
}
}
function t_delete(str){
parent.layer.closeAll('loading');
// $.getJSON('${ctx}/backstage/ocr/field/delete?logintoken=' + parent.document.getElementById("logintoken").value, {id:str}, function(data){
parent.axgetXiaoyao('${ctx}/backstage/ocr/field/delete' , {id:str},false, function(data){
parent.layer.closeAll('loading');
if(data.code == "OK"){
swal(data.message, "您已经永久删除了这条信息。", "success");
refreshTable();
}else{
swal(data.message, "遇到未知错误!", "error");
}
});
}
function _deletebu(sourceid){
var str = getIdSelections() + "";
var tempstr = str.split(",");
if (str.length > 0 && tempstr.length > 0) {
swal({
title: "您确定要删除这条信息吗",
text: "删除后将无法恢复,请谨慎操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "是的,我要删除!",
cancelButtonText: "让我再考虑一下…",
closeOnConfirm: false,
closeOnCancel: false
},
function (isConfirm) {
if (isConfirm) {
t_delete(str);
} else {
swal("已取消", "您取消了删除操作!", "error");
}
});
} else {
parent.toastr.error("至少选择一条数据操作");
}
}
function _delete(sourceid,str){
swal({
title: "您确定要删除这条信息吗",
text: "删除后将无法恢复,请谨慎操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "是的,我要删除!",
cancelButtonText: "让我再考虑一下…",
closeOnConfirm: false,
closeOnCancel: false
},
function (isConfirm) {
if (isConfirm) {
t_delete(str);
} else {
swal("已取消", "您取消了删除操作!", "error");
}
});
}
function refreshTable(sourceid){
_tableListPost.bootstrapTable('refreshOptions',{pageNumber:1});
}
</script>

@ -151,8 +151,9 @@ public class SearchQueryFormat {
if(StringUtils.isNotBlank(searchQueryForm.getOp())
&& searchQueryForm.getOp().equals(SearchQueryConstant.SEARCH_EQUAL)){
queryWrapper.eq(obj.getQueryFiled(entry.getKey().toUpperCase()),searchQueryForm.getValue());
String upperCase = entry.getKey().toUpperCase();
String queryFiled = obj.getQueryFiled(upperCase);
queryWrapper.eq(queryFiled,searchQueryForm.getValue());
}else if(StringUtils.isNotBlank(searchQueryForm.getOp())
&& searchQueryForm.getOp().equals(SearchQueryConstant.SEARCH_LIKE)){

@ -1,20 +1,43 @@
package cn.jyjz.xiaoyao.ocr.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.jyjz.xiaoyao.admin.dataobject.Post;
import cn.jyjz.xiaoyao.admin.service.UserService;
import cn.jyjz.xiaoyao.common.base.controller.BaseController;
import cn.jyjz.xiaoyao.common.base.param.ParamterPage;
import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil;
import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.common.mybatisplus.util.SearchQueryFormat;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrField;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearch;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearchchild;
import cn.jyjz.xiaoyao.ocr.dto.OcrFieldDto;
import cn.jyjz.xiaoyao.ocr.service.OcrFieldService;
import cn.jyjz.xiaoyao.ocr.vo.OcrFieldVo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import liquibase.pro.packaged.S;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/ocr/field")
@ -25,16 +48,32 @@ public class OcrFieldController extends BaseController {
@Autowired
private OcrFieldService ocrFieldService;
@Autowired
private UserService userService;
/**
*
* @return
*/
@ApiOperation(value="根据评审类型查询字段列表", notes="根据评审类型查询字段列表")
@GetMapping(value = "/list")
public ResultVo<List<OcrFieldDto>> list(@RequestParam(name="reviewType") @ApiParam(value = "字段类型(终审:0工单1、一审二审:2、审核填报:3", required = true) Integer reviewType) {
ResultVo<List<OcrFieldDto>> resultVo = new ResultVo<>();
List<OcrFieldDto> ocrFieldDtos = ocrFieldService.list(reviewType);
resultVo.setData(ocrFieldDtos);
public ResultVo<IPage<OcrField>> list(@RequestParam(name="start", defaultValue="1") Integer start,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest request) {
SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request, "search_");
cn.jyjz.xiaoyao.admin.dataobject.User user = this.userService.getSessionUser(request);
OcrField ocrField = new OcrField();
ocrField.setSearchQueryrolesShowleave(user.getSearchQueryrolesShowleave());
QueryWrapper<OcrField> queryWrapper = SearchQueryFormat.queryStringFormat(searchQuery,ocrField);
ResultVo<IPage<OcrField>> resultVo = new ResultVo<>();
ParamterPage paramterPage = new ParamterPage();
paramterPage.setPagesize(pageSize);
paramterPage.setStart(start);
IPage<OcrField> ocrFieldIPage = ocrFieldService.list(paramterPage,queryWrapper);
resultVo.setData(ocrFieldIPage);
resultVo.addOK("查询成功");
return resultVo;
}
@ -59,13 +98,21 @@ public class OcrFieldController extends BaseController {
*/
@ApiOperation(value="删除筛选字段", notes="删除筛选字段")
@GetMapping(value = "/delete")
public ResultVo delete(@RequestParam(name="id") @ApiParam(value = "字段ID", required = true) Long id) {
public ResultVo delete(@RequestParam(name="id") @ApiParam(value = "字段ID", required = true) String ids) {
List<OcrField> ocrFields = ocrFieldService.listByIds(Arrays.asList(ids.split(",")));
List<OcrField> newOcrField = ocrFields.stream().peek(s -> {
s.setUpdateTime(DateUtil.date().toSqlDate());
s.setDel(1);
}).collect(Collectors.toList());
ocrFieldService.updateBatchById(newOcrField);
return ResultVoUtil.success();
}
OcrFieldDto ocrFieldDto = ocrFieldService.delete(id);
if(ocrFieldDto != null){
return ResultVoUtil.success();
}
return ResultVoUtil.error("删除失败");
@ApiOperation(value="详情", notes="详情")
@GetMapping(value = "/getData/{id}")
public ResultVo getData(@PathVariable(name="id") @ApiParam(value = "字段ID", required = true) Long id) {
return ResultVoUtil.success(ocrFieldService.getById(id));
}
/**
@ -74,14 +121,9 @@ public class OcrFieldController extends BaseController {
*/
@ApiOperation(value="字段新增和修改", notes="字段新增和修改")
@PostMapping(value = "/saveOrUpdate")
public ResultVo saveOrUpdate(@ApiParam(value = "字段信息", required = true) @RequestBody OcrFieldVo ocrFieldVo) {
public ResultVo saveOrUpdate(@ApiParam(value = "字段信息", required = true) OcrFieldVo ocrFieldVo) {
try {
OcrField ocrField = new OcrField();
ocrField.setName(ocrFieldVo.getName());
ocrField.setReviewType(ocrFieldVo.getReviewType());
ocrField.setFieldDesc(ocrFieldVo.getFieldDesc());
ocrField.setIsrequired(ocrFieldVo.getIsrequired());
ocrFieldService.saveData(ocrField);
return ocrFieldService.saveData(BeanUtil.copyProperties(ocrFieldVo,OcrField.class));
} catch (BeansException e) {
e.printStackTrace();
}

@ -0,0 +1,57 @@
package cn.jyjz.xiaoyao.ocr.controller;
import cn.jyjz.xiaoyao.admin.service.UserService;
import cn.jyjz.xiaoyao.common.base.controller.BaseController;
import cn.jyjz.xiaoyao.common.base.service.UserTokenService;
import cn.jyjz.xiaoyao.ocr.service.OcrConfigurationService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Controller
@RequestMapping("/backstage/oa/ocrfieldconfigurationHtml")
public class OcrFieldHtmlController extends BaseController{
private Logger log = LoggerFactory.getLogger(this.getClass());
@Autowired
private OcrConfigurationService ocrConfigurationService;
@Autowired
private UserTokenService userTokenService;
@Autowired
private UserService userService;
/**
*
*mail.zhangyong@gmail.com
*2024-01-14 10:27:01
**/
@GetMapping("/toList")
public String toListOcrConfiguration(HttpServletResponse response,HttpServletRequest request){
String resourceid = request.getParameter("resourceid");
request.setAttribute("resourceid",resourceid);
return "/backstage/oa/ocr/information/list";
}
@GetMapping("/toSave")
public String toSave(HttpServletResponse response,HttpServletRequest request){
String resourceid = request.getParameter("resourceid");
request.setAttribute("resourceid",resourceid);
return "/backstage/oa/ocr/information/add";
}
@GetMapping("/toEdit/{id}")
public String toEdit(HttpServletResponse response,HttpServletRequest request,@PathVariable("id") String id){
String resourceid = request.getParameter("resourceid");
request.setAttribute("resourceid",resourceid);
request.setAttribute("id", id);
return "/backstage/oa/ocr/information/edit";
}
}

@ -2,11 +2,14 @@ package cn.jyjz.xiaoyao.ocr.dataobject;
import cn.jyjz.xiaoyao.admin.dataobject.Tenant;
import cn.jyjz.xiaoyao.common.base.jsonDomain.DateSerializer;
import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery;
import cn.jyjz.xiaoyao.common.mybatisplus.dto.BaseDto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
@ -17,6 +20,10 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.sql.Date;
import java.util.AbstractMap;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Data
@Builder
@ -24,7 +31,7 @@ import java.sql.Date;
@AllArgsConstructor
@Schema(name = "字段信息", title = "字段信息")
@TableName(value = "ocr_field")
public class OcrField implements Serializable {
public class OcrField implements BaseDto,java.io.Serializable {
private static final long serialVersionUID = 8088861709460050761L;
@Schema(description = "主键")
@TableId(value = "id",type = IdType.AUTO)
@ -80,4 +87,30 @@ public class OcrField implements Serializable {
@Schema(description = "是否可点击,0:否,1是")
@TableField(value="is_tap")
private Integer isTap;
@Schema(description = "是否可隐藏,0:否,1是")
@TableField(value="is_hide")
private Integer isHide;
//保存当前登录用户的数据权限范围的搜索条件
@TableField(exist = false)
@JsonIgnore
private SearchQuery searchQueryrolesShowleave;
@TableField(exist = false)
@JsonIgnore
private final Map<String,String> query = Stream.of(
new AbstractMap.SimpleEntry<>("NAME","name"),
new AbstractMap.SimpleEntry<>("REVIEWTYPE","review_type")
)
.collect(Collectors.toMap(AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue));
@Override
public String getQueryFiled(String filedname){
String obj = null;
if(null != query && query.size() > 0){
obj = query.get(filedname);
}
return obj;
}
}

@ -39,4 +39,8 @@ public class OcrFieldDto implements Serializable {
@Schema(description = "是否可点击,0:否,1是")
private Integer isTap;
@Schema(description = "是否可隐藏,0:否,1是")
private Integer isHide;
}

@ -1,9 +1,13 @@
package cn.jyjz.xiaoyao.ocr.service;
import cn.jyjz.xiaoyao.common.base.param.ParamterPage;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrField;
import cn.jyjz.xiaoyao.ocr.dto.OcrFieldDto;
import cn.jyjz.xiaoyao.ocr.vo.OcrFieldVo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
@ -15,7 +19,7 @@ public interface OcrFieldService extends BaseService<OcrField> {
/**
*
*/
List<OcrFieldDto> list(Integer reviewType);
IPage<OcrField> list(ParamterPage paramterPage, QueryWrapper<OcrField> queryWrapper);
/**
*
@ -29,5 +33,5 @@ public interface OcrFieldService extends BaseService<OcrField> {
/**
*
*/
void saveData(OcrField ocrField);
ResultVo saveData(OcrField ocrField);
}

@ -1,19 +1,30 @@
package cn.jyjz.xiaoyao.ocr.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.jyjz.xiaoyao.common.base.param.ParamterPage;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrFieldMybatisDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrField;
import cn.jyjz.xiaoyao.ocr.dto.OcrFieldDto;
import cn.jyjz.xiaoyao.ocr.service.OcrFieldService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Date;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
@ -26,35 +37,15 @@ public class OcrFieldServiceImpl extends BaseServiceImpl<OcrFieldMybatisDao, Ocr
private OcrFieldMybatisDao ocrFieldMybatisDao;
@Override
public List<OcrFieldDto> list(Integer reviewType){
List<OcrFieldDto> ocrFieldDtoList = new ArrayList<>();
public IPage<OcrField> list(ParamterPage paramterPage, QueryWrapper<OcrField> queryWrapper){
try {
LambdaQueryWrapper<OcrField> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.and(qw -> qw.eq(OcrField::getIsrequired, 2) // 检查是否必选字段为 2
// .or()
// .eq(OcrField::getReviewType, reviewType)); // 检查评审类型// 检查评审类型
queryWrapper.eq(OcrField::getReviewType,reviewType);
queryWrapper.eq(OcrField::getDel, 0);
queryWrapper.orderByAsc(OcrField::getSort);
List<OcrField> ocrFieldList = this.list(queryWrapper);
if(ocrFieldList.size()>0){
for (OcrField ocrField : ocrFieldList) {
OcrFieldDto dto = new OcrFieldDto();
dto.setId(ocrField.getId());
dto.setName(ocrField.getName());
dto.setReviewType(ocrField.getReviewType());
dto.setFieldDesc(ocrField.getFieldDesc());
dto.setIsrequired(ocrField.getIsrequired());
dto.setDel(ocrField.getDel());
dto.setIsHighlight(ocrField.getIsHighlight());
dto.setIsTap(ocrField.getIsTap());
ocrFieldDtoList.add(dto);
}
}
queryWrapper.eq("del", 0);
queryWrapper.orderByAsc("sort");
return this.selectSearchListPage(paramterPage, queryWrapper);
} catch (BeansException e) {
e.printStackTrace();
}
return ocrFieldDtoList;
return null;
}
@Override
@ -106,20 +97,26 @@ public class OcrFieldServiceImpl extends BaseServiceImpl<OcrFieldMybatisDao, Ocr
}
@Override
public void saveData(OcrField ocrField){
public ResultVo saveData(OcrField ocrField){
try {
String name = ocrField.getName();
LambdaQueryWrapper<OcrField> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OcrField::getName, name);
OcrField ocrFieldOne = this.getOne(queryWrapper);
if (ocrFieldOne != null) {
ocrField.setId(ocrFieldOne.getId()); // 设置 ID以便更新指定记录
if (Objects.nonNull(ocrField.getId())) {
String name = ocrField.getName();
LambdaQueryWrapper<OcrField> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OcrField::getName, name);
OcrField ocrFieldOne = this.getOne(queryWrapper);
if(Objects.nonNull(ocrFieldOne)&&!ocrFieldOne.getId().equals(ocrField.getId())){
return ResultVoUtil.error(ResultVo.ERROR,"字段名称已存在");
}
ocrField.setUpdateTime(DateUtil.date().toSqlDate());
updateById(ocrField); // 更新记录
} else {
ocrField.setCreateTime(DateUtil.date().toSqlDate());
ocrField.setUpdateTime(DateUtil.date().toSqlDate());
save(ocrField); // 保存记录
}
} catch (Exception e) {
e.printStackTrace();
}
return ResultVoUtil.success();
}
}

@ -1,6 +1,8 @@
package cn.jyjz.xiaoyao.ocr.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -18,6 +20,9 @@ import java.io.Serializable;
public class OcrFieldVo implements Serializable {
private static final long serialVersionUID = 8088861709460050761L;
@Schema(description = "主键")
private Long id;
@Schema(description = "字段名称",required = true)
private String name;
@ -29,4 +34,16 @@ public class OcrFieldVo implements Serializable {
@Schema(description = "是否必选",required = true)
private Integer isrequired;
@Schema(description = "排序字段")
private Integer sort;
@Schema(description = "是否高亮")
private Integer isHighlight;
@Schema(description = "是否可点击")
private Integer isTap;
@Schema(description = "是否隐藏")
private Integer isHide;
}

@ -160,15 +160,15 @@ mybatis-plus:
xiaoyao:
web:
#上传文件路径
uploadPath: D:/Code/ocr/htmlweb/upload
uploadPath: E:/ZJWorkSpace/ocr/htmlweb/upload
#页面根路径
frontPath: D:/Code/ocr/htmlweb
frontPath: E:/ZJWorkSpace/ocr/htmlweb
#js、css、图片存放路径
staticPath: D:/Code/ocr/htmlweb/static
staticPath: E:/ZJWorkSpace/ocr/htmlweb/static
#页面模版路径
webPath: D:/Code/ocr/htmlweb/web
webPath: E:/ZJWorkSpace/ocr/htmlweb/web
#Lucene索引路径
lucenePath: D:/Code/ocr/htmlweb/lucene/indexDir
lucenePath: E:/ZJWorkSpace/ocr/htmlweb/lucene/indexDir
#是否开启flowable
haveFlowable: true
webconfig:

Loading…
Cancel
Save