chenrj-PC\chenrj пре 9 година
родитељ
комит
94201062c4
17 измењених фајлова са 937 додато и 203 уклоњено
  1. 320 58
      VisualInspection/js/assess_management/assess_item.js
  2. 62 26
      VisualInspection/js/assess_management/assess_way.js
  3. 270 0
      VisualInspection/js/assess_management/assess_way_edit.js
  4. 1 1
      VisualInspection/js/util/util.js
  5. 76 32
      VisualInspection/view/assess_management/assess_item.html
  6. 41 79
      VisualInspection/view/assess_management/assess_way.html
  7. 59 0
      VisualInspection/view/assess_management/assess_way_edit.html
  8. 4 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/bean/CheckItem.java
  9. 3 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/bean/CheckRule.java
  10. 20 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/CheckItemController.java
  11. 17 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/CheckRuleController.java
  12. 1 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/dao/master/CheckRuleDao.java
  13. 1 1
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/CheckItemMapper.xml
  14. 15 4
      VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/CheckRuleMapper.xml
  15. 1 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/CheckRuleService.java
  16. 41 2
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/CheckItemServiceImpl.java
  17. 5 0
      VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/CheckRuleServiceImpl.java

+ 320 - 58
VisualInspection/js/assess_management/assess_item.js

@@ -1,61 +1,323 @@
-$(document).ready(function() {
-
-    // 使用data参数更新数据:
-    $('.datatable').datatable( {
-        checkable:false,
-        sortable:false,
-        data: {
-            cols: [
-                {width: 30, text: '序号', type: 'number', flex: false, colClass: 'text-center'},
-                {width: 160, text: '考核办法', type: 'date', flex: false, sort: 'down'},
-                {width: 80, text: '被考核部门', type: 'string', flex: true, colClass: ''},
-                {width: 80, text: '被考核职位', type: 'date', flex: false, sort: 'down'},
-                {width: 80, text: '被考核人员', type: 'string', flex: true, colClass: ''},
-                {width: 80, text: '考核项', type: 'date', flex: false, sort: 'down'},
-                {width: 80, text: '操作', type: 'string', flex: true, colClass: ''},
-            ],
-            rows: [
-                {checked: false, data: [1, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">92项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                {checked: false, data: [2, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                {checked: false, data: [3, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                {checked: false, data: [4, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                {checked: false, data: [5, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                {checked: false, data: [6, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                {checked: false, data: [7, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                {checked: false, data: [8, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-            ]
+
+
+ var zdata = [];
+ var z_cache ;
+ var check_item_tree = null;
+ var edittype = "add";
+ var cols = [{
+     width: 10,
+     text: '序号',
+     type: 'number',
+     flex: false,
+     colClass: 'text-center'
+ }, {
+     width: 160,
+     text: '名称',
+     type: 'string',
+     flex: false,
+     sort: 'down',
+     colClass: 'text-center'
+ }, {
+     width: 40,
+     text: '分数',
+     type: 'string',
+     flex: false,
+     colClass: 'text-center'
+ }, {
+     width: 60,
+     text: '操作',
+     type: 'string',
+     flex: false,
+     colClass: 'text-center'
+ }];
+ $(document).ready(function() {
+
+     $("#main_content_title").html("考核项管理")
+
+     $('#dashboard').dashboard({ draggable: false });
+     var zTreeObj;
+     var zNodes = [];
+     check_item_tree = $.fn.zTree.init($("#department_tree"), {}, zNodes);
+
+     getCheckItems();
+
+     $("#dept_add").on("click", function() {
+         alert(1);
+         var nodedata = check_item_tree.getSelectedNodes();
+         edittype = "add"
+         loadData(nodedata)
+         $('#addModal').modal('show')
+     })
+
+    //  $("#dept_edit").on("click", function() {
+    //      //获取选中的节点
+    //      var nodedata = check_item_tree.getSelectedNodes();
+    //      if (nodedata.length < 1) {
+    //          layer.msg('请先选择部门!', {
+    //              time: 2000, //20s后自动关闭
+    //          });
+    //          return;
+    //      }
+    //      edittype = "edit"
+    //      loadData(nodedata)
+    //      $('#addModal').modal('show');
+    //  });
+
+    //  $("#dept_delete").on("click", function() {
+    //      //获取选中的节点
+    //      var nodedata = check_item_tree.getSelectedNodes();
+    //      if (nodedata.length < 1) {
+    //          layer.msg('请先选择部门!', {
+    //              time: 2000, //20s后自动关闭
+    //          });
+    //          return;
+    //      }
+    //      DeptDelete(nodedata[0].id, function(data) {
+    //          layer.msg('删除成功!', {
+    //              time: 2000, //20s后自动关闭
+    //          });
+    //          check_item_tree.removeNode(nodedata[0]);
+    //      }, function(error) {
+
+    //      });
+    //  });
+
+
+     $('.datatable').datatable({
+         checkable: false,
+         sortable: false,
+         data: {
+             cols: cols,
+             rows: []
+         }
+     });
+
+
+ });
+
+ function getCheckItems() {
+     function zTreeOnRename(event, treeId, treeNode, isCancel) {
+         alert(treeNode.tId + ", " + treeNode.name);
+     }
+
+     function zTreeOnRemove(event, treeId, treeNode) {
+         alert(treeNode.tId + ", " + treeNode.name);
+     }
+
+
+     function getTreeData(c_obj,id){
+        if(c_obj.id == id){
+            return c_obj ;
+        }else{
+            if(c_obj.subCheckItem!=null){
+                for(var i=0;i<c_obj.subCheckItem.length;i++){
+                    var tmp = getTreeData(c_obj.subCheckItem[i],id);
+                    if(tmp != null){
+                        return tmp ;
+                    }
+                }
+            }
+            return null;
         }
         }
-    });
+     }
 
 
-    // data tree
-    var myTreeData = [{
-        title: '<div>坚果</div>',
-    },
-        {
-        title: '水果',
-        open: true,
-        children: [
-            {title: '橘子'},
-            {
-                title: '瓜',
-                children: [
-                {title: '西瓜'},
-                {title: '黄瓜'}
-                ]
+     var seq = 0 ;
+
+     function getTree(obj,rowObj){
+        var userdata = {};
+        userdata["checked"] = false;
+        userdata["data"] = [++seq, obj.name, (obj.score!=null?obj.score:""), '<a href="#" data-toggle="modal" data-target="#myModal"><i class="icon icon-edit"></i> 修改</a><a href="#"><i class="icon icon-remove-circle"></i> 删除</a>'];
+        rowObj.push(userdata);
+
+        if(obj.subCheckItem!=null){
+            for(var i=0; i<obj.subCheckItem.length;i++ ){
+                getTree(obj.subCheckItem[i],rowObj);
             }
             }
-        ]
-    }, {
-        title: '坚果',
-         open: true,
-        children: [
-            {title: '向日葵'},
-            {title: '瓜子'}
-        ]
-    }, {
-        title: '蔬菜',
-         open: true,
-    }];
-
-    $('#myTree').tree({data: myTreeData});
-
-});
+        }
+        return rowObj;
+     }
+
+     console.log(1);
+
+     function zTreeOnClick(event, treeId, treeNode) {
+
+        var rowdata = [];
+
+        seq = 0 ;
+
+        for(var i=0;i<z_cache.length;i++){
+            var treeObj = getTreeData(z_cache[i],treeNode.id) ;
+            console.log(treeObj)
+            if( treeObj != null){
+               rowdata = getTree(treeObj,rowdata);
+               break ;
+            }
+        }
+
+        // 使用data参数更新数据:
+        $('.datatable').datatable('load', {
+            cols: cols,
+            rows: rowdata
+        });
+     };
+
+     var setting = {
+         data: {
+             simpleData: {
+                 enable: true,
+                 idKey: "id",
+                 pIdKey: "pId",
+                 rootPId: null
+             }
+         },
+         view: { //表示tree的显示状态
+             selectMulti: false //表示禁止多选
+         },
+         check: { //表示tree的节点在点击时的相关设置
+             enable: false, //是否显示radio/checkbox
+             chkStyle: "checkbox", //值为checkbox或者radio表示
+             checkboxType: { p: "", s: "" }, //表示父子节点的联动效果
+             radioType: "level" //设置tree的分组
+         },
+         callback: {
+             onRename: zTreeOnRename,
+             //  beforeDrop: zTreeBeforeDrop,
+             onRemove: zTreeOnRemove,
+             onClick: zTreeOnClick
+         },
+         edit: {
+             enable: true,
+             drag: {
+                 autoExpandTrigger: true,
+                 isMove: true,
+                 prev: false,
+                 next: true,
+                 inner: true,
+                 autoOpenTime: 0
+             },
+             showRenameBtn: false,
+             showRemoveBtn: false
+         }
+     };
+
+     post_common_service("/checkItem/getAll","",function(data){
+        zdata = [];
+        z_cache = data ;
+         for (var i = 0; i < data.length; i++) {
+             var m = data[i];
+             var zdataItem = {};
+             zdataItem["id"] = m.id;
+             zdataItem["value"] = m.id;
+             zdataItem["pId"] = null;
+             zdataItem["name"] = m.name;
+             zdataItem["children"] = addobj(m);
+             zdata.push(zdataItem);
+         }
+         check_item_tree = $.fn.zTree.init($("#department_tree"), setting, zdata)
+     },function(error){})
+ }
+
+ function addobj(data) {
+     var zdata = [];
+     if (typeof(data.subCheckItem) != "undefinde" && data.subCheckItem != null &&
+         data.subCheckItem.length > 0) {
+         for (var i = 0; i < data.subCheckItem.length; i++) {
+             var m = data.subCheckItem[i];
+             var zdataItem = {};
+             zdataItem["id"] = m.id;
+             zdataItem["value"] = m.id;
+             zdataItem["pId"] = data.id;
+             zdataItem["icon"] = "";
+             zdataItem["name"] = m.name;
+             zdataItem["children"] = addobj(m);
+             zdata.push(zdataItem);
+         }
+         return zdata;
+     } else {
+         return [];
+     }
+ }
+
+// 增加和编辑框
+var dept_selectinput;
+var selectednodetemp;
+
+function loadData(nodedata) {
+    var pnode = nodedata;
+
+    if (edittype == "add") {
+        $("#dept_name").val("")
+    }
+    if (edittype == "edit") {
+        selectednodetemp = nodedata[0];
+        $("#dept_name").val(nodedata[0].name)
+        $("#dept_add_btn").html("保存")
+        if (pnode != null && pnode.length > 0) {
+            pnode = [dept_tree.getNodeByParam("id", pnode[0].pId, null)]
+        }
+    }
+
+
+    dept_selectinput = new TreeSelect({
+        element: '#dept_select',
+        data: zdata,
+        valueKey: "id",
+        placeholder: "选择部门",
+        selectvalue: pnode.length > 0 ? pnode[0].id : null
+    });
+}
+
+
+function addDept() {
+    //获取名称
+    var name = $("#dept_name").val();
+    var pid = dept_selectinput.value;
+    var data = {
+        "organname": name,
+        "parentid": pid
+    }
+
+    if (edittype == "add") {
+        DeptAdd(data, function(datare) {
+            layer.msg('添加成功!', {
+                time: 2000, //20s后自动关闭
+            }, function() {
+                $('#addModal').modal('hide')
+                getDept();
+            })
+        }, function(error) {
+
+        })
+    }
+
+    if (edittype == "edit") {
+        data["id"] = selectednodetemp.id;
+        if (isSelfOrChild(pid, selectednodetemp)) {
+            layer.msg('不能添加到自身及自身下的子部门!', {
+                time: 2000, //20s后自动关闭
+            })
+            return;
+        }
+        DeptEdit(data, function(datare) {
+            layer.msg('修改成功!', {
+                time: 2000, //20s后自动关闭
+            }, function() {
+                $('#addModal').modal('hide')
+                getDept();
+            })
+        }, function(error) {
+
+        });
+    }
+}
+
+function isSelfOrChild(id, node) {
+    if (id == node.id) return true;
+    if (typeof(node.children) == "undefinde" || node.children == null || node.children.length < 1) return false;
+    for (var i = 0; i < node.children.length; i++) {
+        if (isSelfOrChild(id, node.children[i])) {
+            return true;
+        }
+    }
+    return false;
+}

+ 62 - 26
VisualInspection/js/assess_management/assess_way.js

@@ -1,31 +1,67 @@
 
 
+// 检索list数据
+function queryTable(){
+    var data = {}
+    var keyword = $("#keyword").val();
+    if(keyword!=''){
+        data.name = keyword ;
+    }
+    var cols = [
+                    {width: 30, text: '序号', flex: false, colClass: 'text-center',field:'num'},
+                    {width: 160, text: '考核办法', flex: false,colClass: 'text-center',field:'name'},
+                    {width: 80, text: '被考核部门',  flex: true, colClass: 'text-center',field:'checked_dept_id'},
+                    {width: 80, text: '被考核职位',  flex: false, colClass: 'text-center',field:'checked_position_id'},
+                    {width: 80, text: '被考核人员', flex: true, colClass: 'text-center',field:'checked_person_type'},
+                    {width: 60, text: '考核项',  flex: false, type: 'string',colClass: 'text-center modity-flag',field:'checked_item_num' },
+                    {width: 50, text: '操作',  flex: false, colClass: 'text-center',field:'id',oper:[
+                         {func:'deleteCheckRule',text:'删除',col_class:'icon-remove-circle'}
+                    ]},
+                ] ;
+    
+    $('.datatable').mytable({'cols':cols,
+                            'url':"/checkRule/getAllRule/",
+                            'param':data}
+                            );
+}
+
+// 删除
+function deleteCheckRule(id){
+    deleteItem4Common(id,"/checkRule/delete/",queryTable);
+}
+
+function showAddCheckRule(){
+    $('#check_rule_name,#dep_id,#position_id').val('');
+    showPopup4Common('添加考核办法',function(){
+        addOrUpdateCheckRule("/checkRule/add");
+    },'400px');
+}
+
+function addOrUpdateCheckRule(url){
+    var param ={
+        "name":idVal("check_rule_name") ,
+        "checked_dept_id":idVal("dep_id"),
+        "checked_position_id":idVal("position_id"),
+        "checked_person_type":1
+    };
+    addOrUpdateItem4Common(param,url,queryTable);
+}
+
+function idVal(id){
+    return $("#"+id).val();
+}
+
 $(document).ready(function() {
 $(document).ready(function() {
+    // 初始化标题
+    $("#main_content_title").html("考核办法管理")
+
+    // 检索表格数据
+    queryTable();
 
 
-    // 使用data参数更新数据:
-        $('.datatable').datatable( {
-            checkable:false,
-            sortable:false,
-            data: {
-                cols: [
-                    {width: 30, text: '序号', type: 'number', flex: false, colClass: 'text-center'},
-                    {width: 160, text: '考核办法', type: 'date', flex: false, sort: 'down'},
-                    {width: 80, text: '被考核部门', type: 'string', flex: true, colClass: ''},
-                    {width: 80, text: '被考核职位', type: 'date', flex: false, sort: 'down'},
-                    {width: 80, text: '被考核人员', type: 'string', flex: true, colClass: ''},
-                    {width: 80, text: '考核项', type: 'date', flex: false, sort: 'down'},
-                    {width: 80, text: '操作', type: 'string', flex: true, colClass: ''},
-                ],
-                rows: [
-                    {checked: false, data: [1, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">92项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                    {checked: false, data: [2, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                    {checked: false, data: [3, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                    {checked: false, data: [4, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                    {checked: false, data: [5, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                    {checked: false, data: [6, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                    {checked: false, data: [7, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                    {checked: false, data: [8, '收费站收费员视频考核管理办法','收费站','收费员','所有收费员','<a href="#">82项</a>','<a href="#"><i class="icon icon-remove-circle"></i> 删除</a>']},
-                ]
-            }
-        });
+    // 考核项链接
+    $(".datatable").delegate("td.modity-flag","click",function(){
+        // alert($(this).html());
+        changePage("/view/assess_management/assess_way_edit.html")
+    });
 
 
+    
 });
 });

+ 270 - 0
VisualInspection/js/assess_management/assess_way_edit.js

@@ -0,0 +1,270 @@
+
+
+ var zdata = [];
+ var check_item_tree = null;
+ var edittype = "add";
+ var cols = [{
+     width: 10,
+     text: '序号',
+     type: 'number',
+     flex: false,
+     colClass: 'text-center'
+ }, {
+     width: 160,
+     text: '名称',
+     type: 'string',
+     flex: false,
+     sort: 'down',
+     colClass: 'text-center'
+ }, {
+     width: 40,
+     text: '分数',
+     type: 'string',
+     flex: false,
+     colClass: 'text-center'
+ }, {
+     width: 60,
+     text: '操作',
+     type: 'string',
+     flex: false,
+     colClass: 'text-center'
+ }];
+ $(document).ready(function() {
+
+     $("#main_content_title").html("<span><a href='#'>考核项管理</a></span><span> / </span><span>考核项</span>")
+
+     $('#dashboard').dashboard({ draggable: false });
+     var zTreeObj;
+     var zNodes = [];
+     check_item_tree = $.fn.zTree.init($("#check_item_tree"), {}, zNodes);
+
+     getCheckItems();
+
+    //  $("#dept_add").on("click", function() {
+    //      var nodedata = check_item_tree.getSelectedNodes();
+    //      edittype = "add"
+    //      loadData(nodedata)
+    //      $('#addModal').modal('show')
+    //  })
+
+    //  $("#dept_edit").on("click", function() {
+    //      //获取选中的节点
+    //      var nodedata = check_item_tree.getSelectedNodes();
+    //      if (nodedata.length < 1) {
+    //          layer.msg('请先选择部门!', {
+    //              time: 2000, //20s后自动关闭
+    //          });
+    //          return;
+    //      }
+    //      edittype = "edit"
+    //      loadData(nodedata)
+    //      $('#addModal').modal('show');
+    //  });
+
+     $("#dept_delete").on("click", function() {
+         //获取选中的节点
+         var nodedata = check_item_tree.getSelectedNodes();
+         if (nodedata.length < 1) {
+             layer.msg('请先选择考核项!', {
+                 time: 2000, //20s后自动关闭
+             });
+             return;
+         }
+         checkItemDelete(nodedata[0].id, function(data) {
+             layer.msg('删除成功!', {
+                 time: 2000, //20s后自动关闭
+             });
+             check_item_tree.removeNode(nodedata[0]);
+         }, function(error) {
+
+         });
+     });
+
+
+     $('.datatable').datatable({
+         checkable: false,
+         sortable: false,
+         data: {
+             cols: cols,
+             rows: []
+         }
+     });
+
+
+ });
+
+function checkItemDelete(id, success, fail) {
+    // var url = base_server_url + DEPT_DELETE + id
+    // ajaxDelete(url, "", function(response) {
+    //     var data = response;
+    //     if (data.result_code == 0) {
+    //         success(data.result_data)
+    //     } else {
+    //         fail(data.result_desc);
+    //     }
+    // }, function(error) {
+    //     fail("网络错误");
+    // });
+}
+
+ function getCheckItems() {
+     function zTreeOnRename(event, treeId, treeNode, isCancel) {
+         alert(treeNode.tId + ", " + treeNode.name);
+     }
+
+     function zTreeOnRemove(event, treeId, treeNode) {
+         alert(treeNode.tId + ", " + treeNode.name);
+     }
+
+     function zTreeOnClick(event, treeId, treeNode) {
+         // 父ID是否为空 -1
+         if(treeNode.pId != -1 && treeNode.Pid != null){
+                var data = { "parent_id":1 };
+                getCheckRuleItems("/checkItem/getByParentId",data,function(data){
+                    var rowdata = [];
+                    if (data != null && data.length > 0) {
+                        for (var i = 0; i < data.length; i++) {
+                            var check_item = data[i];
+                            var userdata = {};
+                            userdata["checked"] = false;
+                            userdata["data"] = [i + 1, check_item.name,check_item.score, '<a href="#" data-toggle="modal" data-target="#myModal"><i class="icon icon-edit"></i> 修改</a><a href="#"><i class="icon icon-remove-circle"></i> 删除</a>'];
+                            rowdata.push(userdata);
+                        }
+                    }
+                    // 使用data参数更新数据:
+                    $('.datatable').datatable('load', {
+                        cols: cols,
+                        rows: rowdata
+                    });
+                },function(){})
+         }else if(treeNode.id != -1){
+            var data = {"id":treeNode.id};
+            getCheckRuleItems("/checkItem/getById",data,function(data){
+                 var rowdata = [];
+                 if (data != null ) {
+                    var userdata = {};
+                    userdata["checked"] = false;
+                    userdata["data"] = [ 1, data.name, data.score, '<a href="#" data-toggle="modal" data-target="#myModal"><i class="icon icon-edit"></i> 修改</a>  <a href="#"><i class="icon icon-remove-circle"></i> 删除</a>'];
+                    rowdata.push(userdata);
+                 }
+
+                 // 使用data参数更新数据:
+                 $('.datatable').datatable('load', {
+                     cols: cols,
+                     rows: rowdata
+                 });
+            },function(){})
+         }
+     };
+
+
+     var setting = {
+         data: {
+             simpleData: {
+                 enable: true,
+                 idKey: "id",
+                 pIdKey: "pId",
+                 rootPId: null
+             }
+         },
+         view: { //表示tree的显示状态
+             selectMulti: false //表示禁止多选
+         },
+         check: { //表示tree的节点在点击时的相关设置
+             enable: false, //是否显示radio/checkbox
+             chkStyle: "checkbox", //值为checkbox或者radio表示
+             checkboxType: { p: "", s: "" }, //表示父子节点的联动效果
+             radioType: "level" //设置tree的分组
+         },
+         callback: {
+             onRename: zTreeOnRename,
+             //  beforeDrop: zTreeBeforeDrop,
+             onRemove: zTreeOnRemove,
+             onClick: zTreeOnClick
+         },
+         edit: {
+             enable: true,
+             drag: {
+                 autoExpandTrigger: true,
+                 isMove: true,
+                 prev: false,
+                 next: true,
+                 inner: true,
+                 autoOpenTime: 0
+             },
+             showRenameBtn: false,
+             showRemoveBtn: false
+         }
+     };
+
+    var data = {"id":3} ;
+
+    CheckRuleItems({"id":3} ,function(data){
+         zdata = [];
+         if(data!=null){
+            var m = data;
+            console.log(m);
+            var zdataItem = {};
+            zdataItem["id"] = -1;
+            zdataItem["value"] = m.id;
+            zdataItem["pId"] = -1;
+            zdataItem["name"] = m.name;
+            zdataItem["children"] = addobj(m);
+            zdata.push(zdataItem);
+         }
+         check_item_tree = $.fn.zTree.init($("#check_item_tree"), setting, zdata)
+    },function(){} )
+ }
+
+ function addobj(data) {
+     var zdata = [];
+     if (typeof(data.check_items) != "undefinde" && data.check_items != null &&
+         data.check_items.length > 0) {
+         for (var i = 0; i < data.check_items.length; i++) {
+             var m = data.check_items[i];
+             var zdataItem = {};
+             zdataItem["id"] = m.id;
+             zdataItem["value"] = m.id;
+             if(data.parent_id!=null){
+                zdataItem["pId"] = data.parent_id;
+             }else{
+                zdataItem["pId"] = -1 ; 
+             }
+             zdataItem["icon"] = "";
+             zdataItem["name"] = m.name;
+             zdataItem["children"] = addobj(m);
+             zdata.push(zdataItem);
+         }
+         return zdata;
+     } else {
+         return [];
+     }
+ }
+
+ function CheckRuleItems(data,success, fail) {
+    var url = base_server_url + "/checkRule/getById"
+    ajaxPost(url, data, function(response) {
+        var data = response;
+        if (data.result_code == 0) {
+            success(data.result_data)
+        } else {
+            fail(data.result_desc);
+        }
+    }, function(error) {
+        fail("网络错误");
+    });
+}
+
+function getCheckRuleItems(url,data, success, fail) {
+    var url = base_server_url + url
+    ajaxPost(url, data, function(response) {
+        var data = response;
+        if (data.result_code == 0) {
+            success(data.result_data)
+        } else {
+            fail(data.result_desc);
+        }
+    }, function(error) {
+        fail("网络错误");
+    });
+}

+ 1 - 1
VisualInspection/js/util/util.js

@@ -115,7 +115,7 @@ function showPopup4Common(title,callback,area){
     layer.open({
     layer.open({
         type: 1,
         type: 1,
         area: area,
         area: area,
-        title: '添加常量',
+        title: title,
         closeBtn: 1,
         closeBtn: 1,
         shadeClose: true,
         shadeClose: true,
         skin: 'layui-layer-lan',
         skin: 'layui-layer-lan',

+ 76 - 32
VisualInspection/view/assess_management/assess_item.html

@@ -1,39 +1,83 @@
+<link rel="stylesheet" type="text/css" href="/css/user/userManager.css?__inline">
+<script type="text/javascript" src="/node_modules/zui/dist/lib/dashboard/zui.dashboard.min.js?__inline"></script>
+<link rel="stylesheet" type="text/css" href="/node_modules/zui/dist/lib/dashboard/zui.dashboard.min.css">
+<script type="text/javascript" src="/js/assess_management/assess_item.js?__inline"></script>
 <div class="container-fluid ">
 <div class="container-fluid ">
-    <div class="row">
-        <div class="col-xs-3">
-            <div class="input-group">
-                <span class="input-group-addon">关键词</span>
-                <input class="form-control form-focus" autofocus type="text" placeholder="请输入关键词">
+    <div id="dashboard" class="dashboard dashboard-draggable" data-height="500">
+        <div class="row">
+            <div class="col-md-3">
+                <div class="panel" data-id="1">
+                    <div class="panel-heading">
+                        <span class="title">考核项列表</span>
+                        <div class="panel-actions">
+                            <button type="button" class="btn" id="dept_add" data-position="center" data-toggle="tooltip" title="添加"><i class="icon-plus"></i></button>
+                            <button type="button" class="btn" id="dept_edit" data-toggle="tooltip" title="编辑"><i class="icon-pencil"></i></button>
+                            <button type="button" class="btn" id="dept_delete" data-toggle="tooltip" title="删除"><i class="icon-trash"></i></button>
+                        </div>
+                    </div>
+                    <div class="panel-body">
+                        <ul id="department_tree" class="ztree">
+
+                        </ul>
+                    </div>
+                </div>
             </div>
             </div>
-        </div>
-        
-        <div class="col-xs-3">
-            <div class="input-group">
-                <button class="btn btn-primary " type="button">查询</button>
+            <div class="col-md-9">
+                <div class="panel" data-id="3">
+                    <div class="panel-heading">
+                        <span class="title">考核项详情</span>
+                        <div class="panel-actions">
+                            <button type="button" class="btn" data-toggle="tooltip" title="添加人员"><i class="icon-plus"></i></button>
+                        </div>
+                    </div>
+                    <div class="panel-body no-padding" style="padding:0">
+                        <div class="datatable" data-checkable="true" data-sortable="true"></div>
+                    </div>
+                </div>
+
             </div>
             </div>
         </div>
         </div>
     </div>
     </div>
-    <hr>
-    <div class="row">
-        <div class="col-sm-12" style="text-align:center;">
-            <span style="font-size:18px;">收费站收费员视频考核管理办法</span>
-        </div>
-    </div>
-    <hr>
-    <div class="row">
-        <div class="col-sm-offset-3 col-sm-3">
-                <ul class="tree tree-lines" id="myTree">
-                ...
-            </ul>
-        </div>
-    </div>
-    <div class="row">
-        <div class="col-sm-1 col-sm-offset-5">
-            <button type="submit" class="btn btn-info">保存</button>
-        </div>
-        <div class="col-sm-1">
-            <button type="submit" class="btn btn-info">取消</button>
+</div>
+
+<div class="modal fade" id="addModal">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">关闭</span></button>
+                <h4 class="modal-title">添加考核项</h4>
+            </div>
+            <div class="modal-body">
+                <div class="container-fluid ">
+                    <form class="form-horizontal">
+                        <div class="form-group">
+                            <label for="exampleInputAccount4" class="col-sm-2">名称:</label>
+                            <div class="col-md-6 col-sm-10">
+                                <input type="text" id="dept_name" class="form-control" id="code_flag" placeholder="名称">
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label for="exampleInputAccount4" class="col-sm-2">分数:</label>
+                            <div class="col-md-6 col-sm-10">
+                                <input type="text" id="dept_name" class="form-control" id="code_flag" placeholder="分数">
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label for="exampleInputPassword4" class="col-sm-2">上级部门:</label>
+                            <div class="col-md-6 col-sm-10">
+                                <div id="dept_select">分类</div>
+
+                            </div>
+                        </div>
+
+                        <div class="form-group">
+                            <div class="col-sm-offset-2 col-sm-10">
+                                <button type="button" id="dept_add_btn" class="btn btn-default" onclick="addDept()">添加</button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
         </div>
         </div>
     </div>
     </div>
-</div>
-<script src="/js/assess_management/assess_item.js"></script>
+</div>

+ 41 - 79
VisualInspection/view/assess_management/assess_way.html

@@ -3,39 +3,20 @@
         <div class="container-fluid ">
         <div class="container-fluid ">
             <div class="row">
             <div class="row">
                 <form  class="form-horizontal">
                 <form  class="form-horizontal">
-                <div class="form-group">
-                    <!--<div class="col-xs-3">
-                        <div class="input-group">
-                            <span class="input-group-addon">选择分类</span>
-                            <input class="form-control form-focus" autofocus type="text" placeholder="请输入选择分类">
-                        </div>
-                    </div>
-                    <div class="col-xs-3">
-                        <div class="input-group">
-                            <span class="input-group-addon">关键词</span>
-                            <input class="form-control form-focus" autofocus type="text" placeholder="请输入关键词">
-                        </div>
-                    </div>-->
+                <div class="form-group" style="margin-bottom:0px;">
                     
                     
-                    <label for="exampleInputAccount1" class="col-sm-1">选择分类</label>
+                    <label for="exampleInputAccount1" class="col-sm-1">考核办法</label>
                     <div class="col-sm-2">
                     <div class="col-sm-2">
-                        <select class="form-control">
-                            <option value="">全部</option>
-                        </select>
-                    </div>
-
-                    <label for="exampleInputAccount1" class="col-sm-1">关键词</label>
-                    <div class="col-sm-2">
-                        <input class="form-control form-focus" autofocus type="text" placeholder="请输入关键词">
+                        <input class="form-control form-focus" id="keyword" autofocus type="text" placeholder="请输入关键词">
                     </div>
                     </div>
 
 
                     <div class="col-xs-3">
                     <div class="col-xs-3">
                         <div class="input-group">
                         <div class="input-group">
-                            <button class="btn btn-primary " type="button">查询</button>
+                            <button class="btn btn-primary " type="button" onclick="queryTable()" >查询</button>
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div style="float:right;margin-right:30px;">
-                        <button class="btn btn-primary" type="button" data-toggle="modal" data-target="#myModal"><i class="icon icon-plus-sign"></i> 添加考核办法</button>
+                    <div style="float:right;margin-right:15px;">
+                        <button class="btn btn-primary" type="button" onclick="showAddCheckRule()"><i class="icon icon-plus-sign"></i> 添加考核办法</button>
                     </div>
                     </div>
              </div>
              </div>
             </form>
             </form>
@@ -46,65 +27,46 @@
                 <!-- 使用一个div来显示数据表格 -->
                 <!-- 使用一个div来显示数据表格 -->
                 <div class="datatable" data-checkable="true" data-sortable="true"></div>
                 <div class="datatable" data-checkable="true" data-sortable="true"></div>
             </div>
             </div>
-            <div class="row" style="text-align:center">
-                <ul class="pager center-block">
-                    <li class="previous"><a href="#">« 上一页</a></li>
-                    <li><a href="#">1</a></li>
-                    <li class="active"><a href="#">2</a></li>
-                    <li><a href="#">3</a></li>
-                    <li><a href="#">4</a></li>
-                    <li><a href="#">5</a></li>
-                    <li class="next"><a href="#">下一页 »</a></li>
-                </ul>
-            </div>
+          
         </div>
         </div>
         <!-- 对话框HTML -->
         <!-- 对话框HTML -->
-        <div class="modal fade" id="myModal">
-            <div class="modal-dialog">
-                <div class="modal-content">
-                    
-                </div>
-                <div class="modal-content">
-            <div class="modal-header">
-                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">关闭</span></button>
-                <h4 class="modal-title">添加考核办法</h4>
-            </div>
-            <div class="modal-body">
-                    <!-- 添加对话框 -->
-                    <div class="container-fluid ">
-                        <form class="form-horizontal">
-                            <div class="form-group">
-                                <label for="exampleInputAccount4" class="col-sm-offset-1 col-sm-2">考核办法</label>
-                                <div class="col-md-6 col-sm-8">
-                                <input type="text" class="form-control" id="flag_name" placeholder="考核办法">
-                                </div>
+        <div id="form-div" style="display:none;text-align:center;">
+                <!-- 添加对话框 -->
+                <div class="container-fluid" style="margin-top:20px;">
+                    <form class="form-horizontal">
+                        <div class="form-group">
+                            <label for="exampleInputAccount4" class="col-sm-3">考核办法</label>
+                            <div class="col-md-8 col-sm-8">
+                                <input type="text" class="form-control" id="check_rule_name" placeholder="考核办法">
                             </div>
                             </div>
-                            <div class="form-group">
-                                <label for="exampleInputPassword4" class="col-sm-offset-1 col-sm-2">考核对象</label>
-                                <div class="col-md-3 col-sm-4">
-                                    <select type="text" class="form-control" >
-                                        <option>请选择</option>
-                                    </select>
-                                </div>
-                                    <div class="col-md-3 col-sm-4">
-                                    <select type="text" class="form-control" >
-                                        <option>请选择</option>
-                                    </select>
-                                </div>
+                        </div>
+                        <div class="form-group">
+                            <label for="exampleInputPassword4" class="col-sm-3">考核对象</label>
+                            <div class="col-md-4 col-sm-4">
+                                <select type="text" id="dep_id" class="form-control" >
+                                    <option>请选择部门</option>
+                                    <option value="1">1</option>
+                                </select>
                             </div>
                             </div>
-                            
-                            <div class="form-group">
-                                <div class="col-sm-offset-3 col-sm-8">
-                                <button type="submit" class="btn btn-info">保存</button>
-                                </div>
+                            <div class="col-md-4 col-sm-4">
+                                <select type="text" id="position_id" class="form-control" >
+                                    <option>请选择职位</option>
+                                     <option value="2">2</option>
+                                </select>
                             </div>
                             </div>
-                            </form>
-                    </div>
-                    <!--添加对话框结束-->
-            </div>
-            </div>
+                        </div>    
+                    </form>
+                </div>
+                <!--添加对话框结束-->
         </div>
         </div>
-    </div>
-<!-- 考核办法  end -->    
+        <!-- 考核办法  end -->    
 
 
 <script src="/js/assess_management/assess_way.js?_inline"></script>
 <script src="/js/assess_management/assess_way.js?_inline"></script>
+
+<style type="text/css">
+    td.modity-flag{
+       text-decoration: underline;
+        color: blue;
+        cursor: pointer;
+    }
+</style>

+ 59 - 0
VisualInspection/view/assess_management/assess_way_edit.html

@@ -0,0 +1,59 @@
+<link rel="stylesheet" type="text/css" href="/css/user/userManager.css?__inline">
+<script type="text/javascript" src="/node_modules/zui/dist/lib/dashboard/zui.dashboard.min.js?__inline"></script>
+<link rel="stylesheet" type="text/css" href="/node_modules/zui/dist/lib/dashboard/zui.dashboard.min.css">
+<script type="text/javascript" src="/js/assess_management/assess_way_edit.js?__inline"></script>
+<div class="container-fluid ">
+    <div class="row" style="text-align:center;margin-bottom:10px;font-size:20px;">
+        收费站收费员视频考核管理办法
+    </div>
+    <div id="dashboard" class="dashboard dashboard-draggable" data-height="500">
+        <div class="row">
+            <div class="col-md-3">
+                <div class="panel" data-id="1">
+                    <div class="panel-heading">
+                        <span class="title">考核项列表</span>
+                        <div class="panel-actions">
+                            <button type="button" class="btn" id="dept_add" data-position="center" data-toggle="tooltip" title="添加"><i class="icon-plus"></i></button>
+                            <button type="button" class="btn" id="dept_edit" data-toggle="tooltip" title="编辑"><i class="icon-pencil"></i></button>
+                            <button type="button" class="btn" id="dept_delete" data-toggle="tooltip" title="删除"><i class="icon-trash"></i></button>
+                        </div>
+                    </div>
+                    <div class="panel-body">
+                        <ul id="check_item_tree" class="ztree">
+
+                        </ul>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-9">
+                <div class="panel" data-id="3">
+                    <div class="panel-heading">
+                        <span class="title">考核项详情</span>
+                        <div class="panel-actions">
+                            <button type="button" class="btn" data-toggle="tooltip" title="添加人员"><i class="icon-plus"></i></button>
+                        </div>
+                    </div>
+                    <div class="panel-body no-padding" style="padding:0">
+                        <div class="datatable" data-checkable="true" data-sortable="true"></div>
+                    </div>
+                </div>
+
+            </div>
+        </div>
+    </div>
+</div>
+
+
+<div class="modal fade" id="addModal">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">关闭</span></button>
+                <h4 class="modal-title">添加部门</h4>
+            </div>
+            <div class="modal-body">
+                <link rel="import" href="/view/user/addDept.html?__inline">
+            </div>
+        </div>
+    </div>
+</div>

+ 4 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/bean/CheckItem.java

@@ -1,5 +1,7 @@
 package com.xintong.visualinspection.bean;
 package com.xintong.visualinspection.bean;
 
 
+import java.util.List;
+
 import lombok.Data;
 import lombok.Data;
 
 
 /**
 /**
@@ -24,4 +26,6 @@ public class CheckItem {
     private Integer type;
     private Integer type;
     //办法id
     //办法id
     private Long rule_id;
     private Long rule_id;
+    //父子关系
+    private List<CheckItem> subCheckItem ;
 }
 }

+ 3 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/bean/CheckRule.java

@@ -22,4 +22,7 @@ public class CheckRule {
     private Long checked_position_id;
     private Long checked_position_id;
     //被考核部门id
     //被考核部门id
     private Long checked_dept_id;
     private Long checked_dept_id;
+    
+    // 考核项数量
+    private int checked_item_num ;
 }
 }

+ 20 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/CheckItemController.java

@@ -65,6 +65,26 @@ public class CheckItemController extends BaseController {
     }
     }
     
     
     /**
     /**
+     * 根据id获取考核项数据
+     * @param checkItem
+     * @return
+     */
+    @RequestMapping(value = "/getById")
+    public String getById(@RequestBody CheckItem checkItem){
+    	if(checkItem.getId()==null){
+    		throw new BusinessException(20101);
+    	}
+    	CheckItem checkItemOne =  checkItemService.getById(checkItem.getId()) ;
+    	return super.returnSuccessResult(checkItemOne);
+    }
+    
+    @RequestMapping(value = "/getAll")
+    public String getAll(){
+    	List<CheckItem> checkItems =  checkItemService.getAll() ;
+    	return super.returnSuccessResult(checkItems);
+    }
+    
+    /**
      * 通过父亲id获取考核项
      * 通过父亲id获取考核项
      * @return
      * @return
      * String
      * String

+ 17 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/controller/CheckRuleController.java

@@ -5,13 +5,17 @@ import java.util.List;
 import javax.validation.Valid;
 import javax.validation.Valid;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.mysql.jdbc.StringUtils;
 import com.mysql.jdbc.StringUtils;
 import com.xintong.system.err.BusinessException;
 import com.xintong.system.err.BusinessException;
 import com.xintong.visualinspection.bean.CheckRule;
 import com.xintong.visualinspection.bean.CheckRule;
+import com.xintong.visualinspection.bean.Constant;
 import com.xintong.visualinspection.service.CheckRuleService;
 import com.xintong.visualinspection.service.CheckRuleService;
 
 
 /**
 /**
@@ -25,6 +29,19 @@ public class CheckRuleController extends BaseController {
     @Autowired
     @Autowired
     private CheckRuleService checkRuleService;
     private CheckRuleService checkRuleService;
 
 
+    /**
+     * 获取所有考核办法及下面的
+     * @return
+     * String
+     * @exception
+     * @since  1.0.0
+     */
+    @RequestMapping(value = "/getAllRule/{page}/{size}")
+    public String getAllRules(@Valid @RequestBody CheckRule checkRule,@PathVariable Integer page,@PathVariable Integer size){
+    	PageHelper.startPage(page, size); 
+    	List<CheckRule> crList = checkRuleService.getAllAndCountItem(checkRule);
+    	return super.returnSuccessResult(new PageInfo(crList));
+    }
    
    
     /**
     /**
      * 添加考核办法
      * 添加考核办法

+ 1 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/dao/master/CheckRuleDao.java

@@ -14,6 +14,7 @@ import com.xintong.visualinspection.bean.CheckRule;
 @Mapper
 @Mapper
 public interface CheckRuleDao  {
 public interface CheckRuleDao  {
     public List<CheckRule> getAll();
     public List<CheckRule> getAll();
+    public List<CheckRule> getAllAndCountItem(CheckRule checkRule);
     public CheckRule getOne(Long id);
     public CheckRule getOne(Long id);
     public List<CheckRule> getByName(String name);
     public List<CheckRule> getByName(String name);
     public void insert(CheckRule checkRule);
     public void insert(CheckRule checkRule);

+ 1 - 1
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/CheckItemMapper.xml

@@ -13,7 +13,7 @@
 
 
     <select id="getAll" resultMap="BaseResultMap"  >
     <select id="getAll" resultMap="BaseResultMap"  >
         SELECT *
         SELECT *
-        FROM check_item
+        FROM check_item ORDER BY parent_id ASC , id ASC
     </select>
     </select>
 
 
     <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
     <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >

+ 15 - 4
VisualInspection_server/src/main/java/com/xintong/visualinspection/mapper/master/CheckRuleMapper.xml

@@ -5,12 +5,15 @@
         <id column="id" property="id" jdbcType="INTEGER" />
         <id column="id" property="id" jdbcType="INTEGER" />
         <result column="name" property="name" jdbcType="VARCHAR" />
         <result column="name" property="name" jdbcType="VARCHAR" />
         <result column="checked_person_type" property="checked_person_type" jdbcType="INTEGER" />
         <result column="checked_person_type" property="checked_person_type" jdbcType="INTEGER" />
+        <result column="checked_item_num" property="checked_item_num" jdbcType="INTEGER"/>
         <result column="checked_position_id" property="checked_position_id" jdbcType="INTEGER" />
         <result column="checked_position_id" property="checked_position_id" jdbcType="INTEGER" />
         <result column="checked_dept_id" property="checked_dept_id" jdbcType="INTEGER" />
         <result column="checked_dept_id" property="checked_dept_id" jdbcType="INTEGER" />
         <collection property="check_items" ofType="com.xintong.visualinspection.bean.CheckItem"  
         <collection property="check_items" ofType="com.xintong.visualinspection.bean.CheckItem"  
         	javaType="ArrayList">
         	javaType="ArrayList">
-        	<id property="id"  column="id"/>   
-    		<result property="name"  column="name"/>  
+        	<id property="id"  column="i_id"/>
+        	<result property="parent_id" column="parent_id" />
+    		<result property="name"  column="i_name"/>
+    		<result property="score"  column="score"/>    
         </collection>
         </collection>
     </resultMap>
     </resultMap>
 
 
@@ -19,15 +22,23 @@
         FROM check_rule a left join check_rule_item b on a.id=b.rule_id
         FROM check_rule a left join check_rule_item b on a.id=b.rule_id
         WHERE id = #{id}
         WHERE id = #{id}
   	</select>  
   	</select>  
+  	
+  	<select id="getAllAndCountItem"  resultMap="BaseResultMap" parameterType="com.xintong.visualinspection.bean.CheckRule" >
+		SELECT o.*,(SELECT COUNT(1) FROM check_rule_item t WHERE t.rule_id =o.id) AS checked_item_num FROM check_rule o
+		<if test="name!=null">
+			WHERE o.name like CONCAT('%',#{name},'%') 		
+		</if>
+  	</select>
+  	
     <select id="getAll" resultMap="BaseResultMap"  >
     <select id="getAll" resultMap="BaseResultMap"  >
         SELECT *
         SELECT *
         FROM check_rule
         FROM check_rule
     </select>
     </select>
 
 
     <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
     <select id="getOne" parameterType="java.lang.Long" resultMap="BaseResultMap" >
-        SELECT a.*,b.*
+        SELECT t.*,c.name AS i_name ,c.score ,c.id AS i_id ,c.parent_id FROM (SELECT a.*,b.*
         FROM check_rule a left join check_rule_item b on a.id=b.rule_id
         FROM check_rule a left join check_rule_item b on a.id=b.rule_id
-        WHERE id = #{id}
+        WHERE a.id = #{id}) t LEFT JOIN check_item c ON t.item_id = c.id 
     </select>
     </select>
     
     
     <select id="getByName"  parameterType="java.lang.String" resultMap="BaseResultMap"  >
     <select id="getByName"  parameterType="java.lang.String" resultMap="BaseResultMap"  >

+ 1 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/CheckRuleService.java

@@ -19,6 +19,7 @@ import com.xintong.visualinspection.bean.Constant;
  */
  */
 public interface CheckRuleService {
 public interface CheckRuleService {
     public List<CheckRule> getAll();
     public List<CheckRule> getAll();
+    public List<CheckRule> getAllAndCountItem(CheckRule checkRule);
     public CheckRule getById(Long id);
     public CheckRule getById(Long id);
     public List<CheckRule> getByName(String name);
     public List<CheckRule> getByName(String name);
     public void insert(CheckRule checkRule);
     public void insert(CheckRule checkRule);

+ 41 - 2
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/CheckItemServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xintong.visualinspection.service.impl;
 package com.xintong.visualinspection.service.impl;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -27,10 +28,48 @@ public class CheckItemServiceImpl extends BaseService implements CheckItemServic
 
 
 	@Override
 	@Override
 	public List<CheckItem> getAll() {
 	public List<CheckItem> getAll() {
-		// TODO Auto-generated method stub
-		return checkItemDao.getAll();
+		List<CheckItem> list = checkItemDao.getAll();
+		List<CheckItem> resultList = new ArrayList<>();
+		// 一级父的数量
+		int pnum = 0;
+		for(int i=0;i<list.size();i++){
+			if(list.get(i).getParent_id()==null){
+				pnum++ ;
+			}else{
+				break ;
+			}
+		}
+		for(int i=0;i<pnum;i++){
+			resultList.add(addSubCheckItem(list,list.get(i)));
+		}
+		return resultList ;
 	}
 	}
 
 
+	// 递归查询
+	private CheckItem addSubCheckItem(List<CheckItem> list,CheckItem checkItem){
+		Boolean _f = false ;
+		for(int j = 0; j < list.size() ; j++ ){
+			if(checkItem.getId() == list.get(j).getParent_id()){
+				_f = true ;
+				if(list.get(j).getScore()!=null){
+					 if(!(checkItem.getSubCheckItem()!=null)){
+						checkItem.setSubCheckItem(new ArrayList<>()); 
+					 }
+					 checkItem.getSubCheckItem().add(list.get(j));						 
+				}else{
+					 if(!(checkItem.getSubCheckItem()!=null)){
+							checkItem.setSubCheckItem(new ArrayList<>()); 
+					 }
+					checkItem.getSubCheckItem().add( addSubCheckItem(list,list.get(j) ));
+				}
+			}else{
+				if(_f){
+					break; 
+				}
+			}
+		}
+		return checkItem;
+	}
 
 
 	@Override
 	@Override
 	public CheckItem getById(Long id) {
 	public CheckItem getById(Long id) {

+ 5 - 0
VisualInspection_server/src/main/java/com/xintong/visualinspection/service/impl/CheckRuleServiceImpl.java

@@ -75,4 +75,9 @@ public class CheckRuleServiceImpl extends BaseService implements CheckRuleServic
 		// TODO Auto-generated method stub
 		// TODO Auto-generated method stub
 		checkRuleDao.delete(id);
 		checkRuleDao.delete(id);
 	}
 	}
+
+	@Override
+	public List<CheckRule> getAllAndCountItem(CheckRule checkRule) {
+		return checkRuleDao.getAllAndCountItem(checkRule);
+	}
 }
 }