单证调配管理的一些总结

在做页面权限的时候,如果是对一个按钮,是否可以用,我们可以在后台给前端返回一个true,false。

{
                        // 操作列
                        "targets" : [ 6 ],
                        "orderable" : false,
                        "class" : "am-text-center",
                        "render" : function(data, type, full) {
                            var pengingNumber = full.daishen;
                            // 判断是否显示操作按钮
                            if (!pengingNumber) { // 这个为  pengingNumber false 不显示
                                return "<button type='button' class='am-btn am-btn-primary' id='btn-distribute' name='btn-distribute' disabled> 手动分配</button>";
                            } else {
                                if (ManagerFlags) { // 当主管为true,按钮可用 
                                    return "<button type='button' class='am-btn am-btn-primary' id='btn-distribute' name='btn-distribute' > 手动分配</button>";
                                } else {
                                    if (full.isGroup === true) {  // 判断为组长为为true,按钮可用 
                                        return "<button type='button' class='am-btn am-btn-primary' id='btn-distribute' name='btn-distribute' > 手动分配</button>";
                                    } else {
                                        return "<button type='button' class='am-btn am-btn-primary' id='btn-distribute' name='btn-distribute' disabled> 手动分配</button>";
                                    }
                                }
                            }
                        }
                    }
                ]
            };

            //隐藏需要权限才显示的分配按钮
            $("#btn-distribute").css("display", "none");
            //加载用户权限
            var responseData = ajax_jsonp_sync("/app/bl/documenttaskdeploy/getPermission/", null); //
            // 数组 [] 角色  角色的UUID  
            var ManagerFlags = responseData.responseJSON.data[0]; // 返回的是一个true ,false 
            //为true就是主管 ,为false 就是单证人员
            if (ManagerFlags == true) {
                $("#btn-distribute").show();
            } else {
                $("#btn-distribute").hide();
            }
    // 获取登录用户uuid u1038
        String loginUserID = ctr.getCurrentUser().getStr(BlConstant.FIELD_USER_ID);
        boolean isGroupLeader = false;

        String groupId = null;
        // 获取组长的id,和那条数据的uuid
        String sql = "select uuid,group_leader_id from biz_document_group_info where sys_status = 1";
        List<Record> list = Db.find(sql);
        isGroup: for (Record r : list) {
            // 查询出来的组长的id为多条,拆开一下
            String[] strings = r.getStr("groupLeaderId").split(",");
            // 便利数组
            for (String s : strings) {
                // 便利出来的 组长的id和当前用户的uuid一样的话,就确定为组长了
                if (s.equals(loginUserID)) {
                    // 因为前段我么你只要一个true,false 的结果来判断按钮是否可用
                    // 所以申请了一个变量 ,来赋值 一下
                    isGroupLeader = true;
                    groupId = r.getStr("uuid");
                    break isGroup;
                }
            }
        }
        // 如果为true的话
        if (isGroupLeader) {
            // 便利 当前的这个 taskDeployPage.getList() 查询出来的所有的数据
            for (Record record : taskDeployPage.getList()) {
                // 如果查询出来的组的id和 组长的那条uuid相同的话,就设置一个标志位返回给前端能使用
                if (record.getStr("groupId").equals(groupId)) { // 说明为同一个组的,当前用户为组长,其他人为组员
                    record.set("isGroup", true);
                    record.set("isGroup", false);
                }
            }
        }
        for (Record record : taskDeployPage.getList()) {
            boolean daishen = false;
            // long completeNum = record.getLong("completeNum"); // 完成的数量
            long yiLingQuStatus = record.getLong("claimNum"); // 待审总数

            // 待审总数
            if (yiLingQuStatus >= 1) {
                daishen = true;
            }
            record.set("daishen", daishen);
            // record.set("total", completeNum+yiLingQuStatus);

        }

开始日期不能大于结束日期

var startDate = $("#bizDocumentTaskDeploy_admin_query").find("#startDate").val();
                var endDate = $("#bizDocumentTaskDeploy_admin_query").find("#endDate").val();
                 if (!isNotBlank(startDate) || !isNotBlank(endDate)) {
                    //alertMsg("日期输入框不能为空!!!");
                    getAlertInfo("ME477I001");
                    return;
                } 
                var d1 = new Date(startDate.replace(/-/g, "/"));
                var d2 = new Date(endDate.replace(/-/g, "/"));
                    if (startDate != "" && endDate != "" && d1 > d2) {
                        // 开始日期不能大于结束日期
                        getAlertInfo("ME477I007");
                        return;
                    }      
                 

点击按钮重置,输入框里面的东西

//注册重置按钮点击事件
            $('#bizDocumentTaskDeploy_admin_query_two').find('#resetBtn').on('click', function() {
                var queryDiv = $('#bizDocumentTaskDeploy_admin_query');
                var queryDivTwo = $('#bizDocumentTaskDeploy_admin_query_two');
                //重置姓名查询条件
                queryDiv.find("#userName").val("");
                //重置任务状态查询条件
                queryDivTwo.find("#taskState").empty();
                addOption(queryDivTwo.find("#taskState"), "--请选择--", "");
                addOption(queryDivTwo.find("#taskState"), "待完成", "0");
                addOption(queryDivTwo.find("#taskState"), "已完成", "1");
                //重置在线状态查询条件
                queryDivTwo.find("#radioSelect").empty();
                addOption(queryDivTwo.find("#radioSelect"), "--请选择--", "");
                addOption(queryDivTwo.find("#radioSelect"), "离线", "0");
                addOption(queryDivTwo.find("#radioSelect"), "在线", "1");
                //重置时间查询条件
                queryDiv.find("#startDate").val("");
                queryDiv.find("#endDate").val("");
            });

前端获取值去掉空格

"userName" : $.trim($("#bizDocumentTaskDeploy_admin_query").find("#userName").val()),

 批量操做,勾选 多条信息。

//注册[批量分配]按钮点击事件
                    $('#bizDocumentCompleteInfo_div_toolbar').find("#batchDistribute").on('click',function() {    
                        var data = getSelectedData(bizDocumentCompleteInfo.dt, 0); 
                         if (!isNotNull(data) || data.length <= 0) {
                              getAlertInfo("ME477I002");
                              // alert("请选择你要勾选的任务")
                                return;
                            } 
                         var uuids = "";
                        var names = ""; 
                        var payUuid = ""; 
                        var taskmany = new Array();
                        for (var i = 0; i < data.length; i++) {
                              var tasktemp = {
                                        "userUuid": data[i].taskUuid ,
                                        "userName": data[i].taskName ,
                                        "payUuid" : data[i].uuid 
                                    } 
                         taskmany.push(tasktemp);
                        }
                        var mainUUid = $("#bizDocumentCompleteInfo_admin_query").find("#mainUuid").val();
                        var  mainUserId=$("#bizDocumentCompleteInfo_admin_query").find("#mainUserId").val();
                        openModal(
                                "app/bl/bizDocumentUserManyChoose",
                                "bizDocumentUserMany",
                                "选择批量单证人员",
                                {
                            // 传到下一个页面的数据的东西
                                "mainUuid" : mainUUid,
                                "mainUserId":mainUserId ,
                                "taskmany" : JSON.stringify(taskmany)
                                }, false,null,null,null,null,null,null,{"width":"1000"});        
                            
                    });//注册[批量分配]按钮点击事件end
// 调用extend为该类添加静态方法init
    bizDocumentUserMany
            .extend({
                init : function(initData) {
                var mainUuid=initData.mainUuid;  
                var mainUserId=initData.mainUserId;
                   var taskmany=initData.taskmany ;  // 是个数组
                   taskmany = JSON.parse(taskmany);  // 转对象  
                    var taskNames="";
                    var taskUuid="";
                    var payUuid=""; // 付款确认书的uuid
                    for(var i=0;i<taskmany.length;i ++){
                        taskUuid+=(isNotBlank(taskUuid)?",":"")+taskmany[i].userUuid;
                        taskNames+=(isNotBlank(taskNames)?",":"")+taskmany[i].userName;
                        payUuid+=(isNotBlank(payUuid)?",":"")+taskmany[i].payUuid;
                    $('#taskUuid').val(taskUuid);
                    $('#taskNames').val(taskNames);
                    $('#payUuid').val(payUuid);
                     }
                    $('#mainUuid').val(mainUuid);
                    $("#mainUserId").val(mainUserId);
                    //加载下拉列表
                     ajax_jsonp("/app/bl/documenttaskdeploy/getapproverate/", null,
                        function(response) {
                            if (!checkResponseData(response)){
                                return;
                                }
                            //审核层级
                            addOption($('#bizDocumentUserManyChoose_admin_query').find("#approveRate"),"--请选择层级--","");
                            $.each(response.data[0], function(index, obj) {
                                addOption($('#bizDocumentUserManyChoose_admin_query').find("#approveRate"),obj.levelName,obj.uuid);
                            });
                    }, null, "GET"); 

前端json字符窜对象返给后台

        
                    //注册【确认分配】按钮事件
                    $('#bizDocumentUserChoose_admin_wrapper').on( 'click', '#comfirDistrbute',
                        function() {
                    var selectedData = getDtRowInfo(bizDocumentUserChoose.dt, 0); // 当前选中的值  数据库的值
                    var documentUsers = new Array();  
                    if (!isNotNull(selectedData) || selectedData.length <= 0) {
                         getAlertInfo("ME477I003");
                      // alert("请选择你要勾选的单证人员")
                        return;
                    } 
                    if (!isNotNull(selectedData) || selectedData.length > 1) {
                           getAlertInfo("ME477I006");
                         //  alert("对不起,只能勾选一个单证人员")
                           return;
                   }  
                   
                    $.each(selectedData, function (index, data) {
                     var   taskUuid= $("#bizDocumentUserChoose_admin_query").find("#taskUuid").val();
                     // 主界面的userID 
                      var   mainUserId= $("#bizDocumentUserChoose_admin_query").find("#mainUserId").val();
                   // 获取付款确认书的uuid
                    var   payUuid= $("#bizDocumentUserChoose_admin_query").find("#payUuid").val();
                   
                     var temp = {
                            "userUuid": data.data.userUuid,
                            "uuid": data.data.uuid, 
                            "userName" : data.data.userName,  // 用戶名
                           "taskUuid": taskUuid , // 任務的uuid 
                           "taskId": data.data.taskId ,
                           "userId":data.data.userId ,
                           "mainUserId": mainUserId ,
                           "payUuid":payUuid
                         
                        }
                    documentUsers.push(temp);
                });
                  ajax_jsonp("/app/bl/documenttaskdeploy/comfirdistributeToMany/", {
                    "documentUsers": JSON.stringify(documentUsers)
                }, function (response) {
                    if (!checkResponseData(response)) {
                        //alertMsg("分配失败!")
                        getAlertInfo("ME477I005");
                    } else {
                        if (response.data[0] == true) {
                           // alertMsg("分配成功!")
                             getAlertInfo("ME477I004");
                            bizDocumentUserChoose.dt.draw();
                            return
                        } else {
                           // alertMsg("分配失败!")
                            getAlertInfo("ME477I005");
                        }
                    }
                }, null, "POST");  
                });//注册【确认分配】按钮事件结束        

后台接受

    /**
     * 批量确认分配处理
     * 
     * @param ctr
     * @throws ActiveRecordException
     * @throws CordysException
     */
    public boolean comfirdistributeToMany(QhyfController ctr) throws ActiveRecordException, CordysException {

        // 取得数据 :为json字符串
        String temp = ctr.getPara("documentUsers");
        List<JSONObject> list = JSON.parseArray(temp, JSONObject.class); // 把获取的转化成对象

        String uuid = "";
        String userUuid = "";
        String userName = "";
        String taskId = "";
        // 把任务调配给谁的id
        String userId = "";
        //获取付款确认书的uuid
        String  payUuid="";
        //主界面人的userID
        String mainUserId ="" ;
        for (JSONObject jsonObject : list) { // 遍历
            // 获取前端的任务的uuid,用戶的uuid,姓名 ,任务的taskId
            uuid += (StringUtils.notBlank(uuid) ? "," : "") + jsonObject.getString("uuid");
            userUuid += (StringUtils.notBlank(userUuid) ? "," : "") + jsonObject.getString("userUuid");
            userName += (StringUtils.notBlank(userName) ? "," : "") + jsonObject.getString("userName");
            taskId += (StringUtils.notBlank(taskId) ? "," : "") + jsonObject.getString("taskId");
            userId += (StringUtils.notBlank(userId) ? "," : "") + jsonObject.getString("userId");
            mainUserId= jsonObject.getString("mainUserId");
            // 在待完成信息列表里面传了多个付款确认书的uuid过来
            payUuid = jsonObject.getString("payUuid");  // 这里已经是个数组
            this.setCordysUser(userId);
            this.setCordysUser(mainUserId);
        }
        
        // 获取到当前用户的sys_user表ID
        String loginUserID = ctr.getCurrentUser().getStr(BlConstant.FIELD_USER_ID);
        String sql = "select user_id from sys_user where sys_status = 1 and uuid = ?";
        
        String loginUserId = Db.queryStr(sql,loginUserID);
//        AssertUtils.notNull(userName, "数据库未存在此人信息");
        
        boolean isOk=false;
        String[] payUuids=payUuid.split(",");
        for (int i = 0; i < payUuids.length; i++) {
            //根据付款确认书的uuid查出流程信息表的流程id     (id为数组)
            String processSql="SELECT instance_id FROM bpm_process_instance WHERE sys_status = 1 and biz_uuid= ?";
            String processId = Db.queryStr(processSql,payUuids[i]);
            //根据流程的id 查出 流程最新活动表 里面的taskid 
            String  farOutTaskidSql = "SELECT task_id FROM bpm_last_activity WHERE sys_status = 1 and  instance_id= ? ";
            Record record = Db.findFirst(farOutTaskidSql,processId);
            boolean  isOkTask=PerformTaskApi.delegateTask(loginUserId,userId , record.getStr("taskId"), "", true);
            //创建最新流程表的对象
            BpmLastActivity bpmLastActivity=new  BpmLastActivity();
            String[]  userIds=userId.split(",");
            for (int j = 0; j < userIds.length; j++) {
                String  sysUserNameSql="SELECT user_name from sys_user WHERE sys_status = 1  and  user_id = ?";
                String   sysUserName=Db.queryStr(sysUserNameSql,userIds[j]);
                if (isOkTask==true) {
                    //根据userId查出他的userName,设置到表bpm_last_activity里面
                    // 更新表bpm_last_activity 里面的username 
                        bpmLastActivity.set("instanceId",processId );
                        bpmLastActivity.set("taskId",record.getStr("taskId") );
                        bpmLastActivity.set("userName",sysUserName );
                        isOk=ctr.merge(BpmLastActivity.dao.getTable().getName(), bpmLastActivity);
                    }
                    
            }
        
        }
    
        
        return isOk;
    }
原文地址:https://www.cnblogs.com/xiaoniuniu886/p/9548396.html