bug描述
在团队管理里面可以给团队设置团队长,然后还可以点击"撤销按钮"进行撤销操作
但是撤销的时候一点击"撤销"按钮就直接报500服务器异常了
排查过程
先找到对应页面的这个按钮的点击事件:
js中的初始化表格
点击事件
鉴权
进撤销方法 调这个接口
代码修改结果![](https://i-blog.csdnimg.cn/blog_migrate/d4b40a63ba3de6d92d5a4b94eb479d1a.png)
效果页面
点击撤销按钮时,显示详细信息
代码(JS)
/**
* 初始化表格的列
*/
Tteamleader.initColumn = function () {
return [
{field: 'selectItem', radio: true},
{title: '机构代码', field: 'deptCode', visible: true, align: 'center', valign: 'middle'},
{title: '机构名称', field: 'deptName', visible: true, align: 'center', valign: 'middle'},
{title: '分公司代码', field: 'fenDeptCode', visible: true, align: 'center', valign: 'middle'},
{title: '分公司名称', field: 'DEPTNAMES', visible: true, align: 'center', valign: 'middle'},
{title: '团队代码', field: 'teamCode', visible: true, align: 'center', valign: 'middle'},
{title: '团队名称', field: 'teamName', visible: true, align: 'center', valign: 'middle'},
{title: '渠道属性', field: 'teamTypeName', visible: true, align: 'center', valign: 'middle'},
{title: '团队级别', field: 'rankname', visible: true, align: 'center', valign: 'middle'},
// {title: '创建日期', field: 'createDate', visible: true, align: 'center', valign: 'middle', hidden:"hidden"},
{title: '生效日期', field: 'STARTDATE', visible: true, align: 'center', valign: 'middle',
formatter:function (value, row, index) {
return formatDateYMD(value)
}
},
{title: '团队长', field: 'personName', visible: true, align: 'center', valign: 'middle'},
{title: 'pid', field: 'pid', visible: false, align: 'center', hidden: true},
{title: '团队类型',field: 'virtualType',visible: true,align: 'center',valign: 'middle',
formatter: function (value, row, index) {
if (row['virtualType'] == 1) {
return '实体';
}
if (row['virtualType'] == 0) {
return '虚拟';
}
return value;
}
},
{title: '团队状态', field: 'aliveStatus', visible: true, align: 'center', valign: 'middle',
formatter: function (value, row, index) {
if (row['aliveStatus'] == 1) {
return '活动';
}
if (row['aliveStatus'] == 0) {
return '冻结';
}
if (row['aliveStatus'] == '-') {
return '消失';
}
if (row['aliveStatus'] == '+') {
return '新增';
}
return value;
}
},
{title: '审批状态', field: 'checkstatus', visible: true, align: 'center', valign: 'middle',
formatter: function (value, row, index) {
if (row['checkstatus'] == '1') {
return "新增审批";
} else if (row['checkstatus'] == '2') {
return "维护审批"
} else if (row['checkstatus'] == '3') {
return "撤并审批"
} else if (row['checkstatus'] == '4') {
return "裂变审批";
} else if (row['checkstatus'] == '5') {
return "冻结审批";
} else if (row['checkstatus'] == '6') {
return "解冻审批";
} else if (row['checkstatus'] == '0') {
return '审批完成';
} else if (row['checkstatus'] == '7') {
return '加人审批';
} else if (row['checkstatus'] == '8') {
return '指定团队长审批';
} else if (row['checkstatus'] == '0') {
return "审批完成";
}
}
},
{title: '操作', field: 'tlId', visible: true, align: 'center', valign: 'middle', formatter: clickDetail},
{title: 'id', field: 'sid', visible: false, align: 'center', valign: 'middle'}
];
};
/**
* 点击查看详情
* @param value
* @param row
* @param index
*/
function clickDetail(value, row, index) {
if (row.virtualType == 1 && row.aliveStatus == 1 && Common.checkPermission("/tteamleader/add")) {
if (value == undefined) {
return ['<button type="teamDetail" class="btn btn-primary btn-xs" onclick="Tteamleader.openAddTteamleader(' + row.sid + ',' + row.checkstatus + ')">设置</button>',]
.join('');
} else if(Common.checkPermission("/tteamleader/update")){
return [
'<button type="teamDetail" class="btn btn-danger btn-xs" onclick="Tteamleader.openUndoTteamleader(' + value + ',' + row.checkstatus + ',' + row.virtualType + ')">撤销</button>',]
.join('');
}
}
}
代码(控制层)
/**
* 修改
*/
@RequestMapping(value = "/update")
@ResponseBody
@Transactional(rollbackFor = Exception.class)
public Object update(TTeamLeaderCheck tteamleadercheck,@RequestParam("tteamleaderId") String tteamleaderId,TTeamLeader tteamleader ) {
logger.info("撤销团队长保存请求时间:" +new Date());
tteamleadercheck.setSerno(tableService.getSeqNextVal("T_TEAM_LEADER_CHECK_SEQ"));
tteamleadercheck.setOptReason(tteamleadercheck.getOptReason());
tteamleadercheck.setEffectDate(DateUtils.getDate());
tteamleadercheck.setOptType(tteamleadercheck.getOptType());
tteamleadercheck.setCheckStatus("0");
tteamleadercheck.setCreateDate(new Date());
tteamleadercheck.setCreateUser(ShiroKit.getUser().getAccount());
//tteamleadercheck.setRankid(teamLevel);
teamLeaderCheckService.insert(tteamleadercheck);
//加入审批
TTeam team = tTeamService.selectById(tteamleadercheck.getTid());
team.setCheckStatus("8");
team.setCreateDate(new Date());
team.setCreateUser(ShiroKit.getLoginUserName());
tTeamService.updateById(team);
TTeamInfo teamInfo = tTeamInfoService.selectById(team.getSid());
//进入审批
Approval approval = new Approval();
FlwWorkFlowRun run = new FlwWorkFlowRun();
List<Map<String, Object>> result = null;
// String deptLv = commonWFService.checkUserLv();
//
// if("1".equals(deptLv)){
// run.setWorkFlowId(FlowTypeEnums.UPDATE_TEAM_LEADER_Z.getFlowWorkId());
// run.setWorkFlowName(FlowTypeEnums.UPDATE_TEAM_LEADER_Z.getDesc());
// run.setCreateUser(ShiroKit.getUser().getAccount());
// run.setExt1(tteamleadercheck.getSerno().toString());
// run.setExt2(FlowTypeEnums.UPDATE_TEAM_LEADER_Z.getCode());
// run.setCheckInfo("总公司撤销<"+team.getTeamName()+">团队团队长");
// //获取审批人
// String workFlowId = FlowTypeEnums.UPDATE_TEAM_LEADER_Z.getFlowWorkId();
// result = flwWorkFlowService.selectByApprover(workFlowId,team.getUpDid());//查询所有节点对应的审批人
// }else{
// run.setWorkFlowId(FlowTypeEnums.UPDATE_TEAM_LEADER_F.getFlowWorkId());
// run.setWorkFlowName(FlowTypeEnums.UPDATE_TEAM_LEADER_F.getDesc());
// run.setCreateUser(ShiroKit.getUser().getAccount());
// run.setExt1(tteamleadercheck.getSerno().toString());
// run.setExt2(FlowTypeEnums.UPDATE_TEAM_LEADER_F.getCode());
// run.setCheckInfo("分公司撤销<"+team.getTeamName()+">团队团队长");
// //获取审批人
// String workFlowId = FlowTypeEnums.UPDATE_TEAM_LEADER_F.getFlowWorkId();
// result = flwWorkFlowService.selectByApprover(workFlowId, team.getUpDid());//查询所有节点对应的审批人
// }
//获取审批人
String workFlowId = FlowTypeEnums.UPDATE_TEAM_LEADER.getFlowWorkId();
if (teamInfo.getTeamType().equals("1")){
workFlowId = FlowTypeEnums.UPDATE_TEAM_LEADER.getFlowWorkId()+"ZhanLue";
}
run.setWorkFlowId(workFlowId);
run.setWorkFlowName(FlowTypeEnums.UPDATE_TEAM_LEADER.getDesc());
run.setCreateUser(ShiroKit.getUser().getAccount());
run.setExt1(tteamleadercheck.getSerno().toString());
run.setExt2(FlowTypeEnums.UPDATE_TEAM_LEADER.getCode());
run.setExt4(team.getUpDid().toString());
run.setCheckInfo("撤销<"+team.getTeamName()+">团队团队长");
result = flwWorkFlowService.selectByApprover(workFlowId,team.getUpDid());//查询所有节点对应的审批人
//启动工作流
List<TaskUser> taskUserList = new ArrayList<>();
if(result!=null && result.size()>0){
for (int i = 0; i < result.size(); i++) {
TaskUser tu = new TaskUser((String) result.get(i).get("workFlowNodeId"),(String) result.get(i).get("userGroup"));
taskUserList.add(tu);
}
}
approval.setFlwWorkFlowRun(run);
approval.setTastUsers(taskUserList);
//调用审批
approvalService.add(approval);
logger.info("撤销团队长保存响应时间:" +new Date());
return SUCCESS_TIP;
}