|
一、问题需求- 在某些特殊情况下,需要将列表中某些数据推送给指定人员这样的需求
二、展示效果
三、实现思路
1、在列表上加点击按钮
2、在按钮中注册点击事件,写弹出选人事件
3、选择完人确认后,获取到数据拼接好格式,传入后台进行业务操作,存入一张表中
4、在另外一个列表上可以进行撤销,把选中的数据传入后台在中间表删除即可
四、具体操作
首先在列表上创建传递人按钮,撤销按钮
在传递人按钮上注册点击事件,并写弹出选人事件
在撤销按钮中注册点击事件
五、相关代码
传递人按钮- <font face="微软雅黑"><font face="微软雅黑">function(btn,event,eOpts){
- //弹出选人框
- JE.selectWin({
- title: '部门',
- configInfo: 'JE_CORE_DEPTUSER,,,M',
- type: 'tree',
- valueType:'id',
- //params: {"PDID":pdid,"FUNCCODE":funccode},
- callback: (sels,oldVal,sswin) => {
- //sels,选择的数据都在里面
- var length = sels.length;
- if(length!=0){
- var array = new Array();
- //遍历选择的数据,把数据主键ID放入集合中
- for(var num = 0;num<length;num++){
- var rows = sels[num];
- array.push(rows.data.bean.ID);
- }
- var personIds = "";
- //把集合拼接成字符串ID
- Ext.each(array,function(item,index){
- if(JE.isEmpty(personIds)){
- personIds = "'"+item+"'";
- }else{
- personIds += ",'"+item+"'";
- }
- });
- debugger;
- var grid = btn.up("jegridview");
- var funcCode = grid.funcData.info.funcCode; //功能编码
- var tableName = grid.funcData.info.tableName; //获取表名
- var pkName = grid.funcData.info.pkName; //获取当前表主键
- var ids = grid.getSelectIds(); //获取选中数据ID
- var array = tableName.split("_");
- var table = array[array.length-1]; //获取表后缀
- var bt = table + "_BT"; //拼接标题字段
- var mjCode = table + "_MIJI_CODE"; //拼接密级CODE
- var mjName = table + "_MIJI_NAME"; //拼接密级NAME
- var paramIds = "";
- Ext.each(ids,function(item,index){
- if(JE.isEmpty(paramIds)){
- paramIds = "'"+item+"'";
- }else{
- paramIds += ",'"+item+"'";
- }
- });
- var obj = JE.ajax({
- url:'/je/sendfile/sendPerson',
- params:{funcCode:funcCode,tableName:tableName,pkName:pkName,ids:paramIds,bt:bt,mjCode:mjCode,mjName:mjName,personIds:personIds}
- });
- if(obj.success){
- JE.msg('特送给指定人成功');
- grid.load();
- }else{
- JE.alert('失败,请联系管理员');
- }
- }
- }
- })
- }</font></font>
复制代码 撤销按钮
- <font face="微软雅黑"><font face="微软雅黑">function(btn,event,eOpts){
- var grid = btn.up("jegridview");
- var ids = grid.getSelectIds(); //获取选中数据ID
- var paramIds = "";
- //把选中数据的ID,拼接成字符串传入后台
- Ext.each(ids,function(item,index){
- if(JE.isEmpty(paramIds)){
- paramIds = "'"+item+"'";
- }else{
- paramIds += ",'"+item+"'";
- }
- });
- var obj = JE.ajax({
- url:'/je/recycle/restorePublic',
- params:{ids:paramIds}
- });
- if(obj.success){
- JE.msg('还原成功!');
- grid.load();
- }else{
- JE.alert('失败,请联系管理员');
- }
- }</font></font>
复制代码 后端代码
- <font face="微软雅黑"><font face="微软雅黑">/**
- * 传递
- */
- @Controller
- @RequestMapping(value = "/je/sendfile")
- public class SendFileController extends AbstractDynaController {
- /**
- * 传递给指定人
- */
- @RequestMapping(
- value = {"/sendPerson"},
- method = {RequestMethod.POST},
- produces = {"application/json; charset=utf-8"}
- )
- @ResponseBody
- public void sendPerson(MethodArgument param) {
- HttpServletRequest request = param.getRequest();
- String funcCode = request.getParameter("funcCode"); //功能编码
- String tableName = request.getParameter("tableName"); //表编码
- String pkName = request.getParameter("pkName"); //表主键编码
- String ids = request.getParameter("ids"); //选中数据集合
- String bt = request.getParameter("bt"); //标题字段编码
- String mjCode = request.getParameter("mjCode"); //密级CODE
- String mjName = request.getParameter("mjName"); //密级NAME
- String personIds = request.getParameter("personIds"); //特送给的人userId
- String[] personArray = personIds.split(","); //讲特送人分隔成数组
- //查询出所有的业务数据
- List<DynaBean> dynaBeanList = serviceTemplate.selectList(tableName, " and "+pkName+" in ("+ids+")");
- for(DynaBean db : dynaBeanList){
- //特送记录插入数据
- DynaBean jlBean = new DynaBean("OA_SEND_RECORD", true);
- jlBean.set("RECORD_BT", db.get(bt)); //标题
- jlBean.set("RECORD_WJ", funcCode); //文件类型
- jlBean.set("RECORD_MIJI_CODE", db.get(mjCode)); //密级CODE
- jlBean.set("RECORD_MIJI_NAME", db.get(mjName)); //密级NAME
- jlBean.set("RECORD_YWZJID", db.get(pkName)); //业务主键ID
- jlBean.set("RECORD_YWZJBM", pkName); //业务主键编码
- jlBean.set("RECORD_YWB", tableName); //业务表
- serviceTemplate.buildModelCreateInfo(jlBean);
- serviceTemplate.insert(jlBean);
- for(String str : personArray){
- //特送文件插入数据
- DynaBean tsBean = new DynaBean("OA_SENDFILE", true);
- tsBean.set("SENDFILE_BT", db.get(bt)); //标题
- tsBean.set("SENDFILE_WJ", funcCode); //文件类型
- tsBean.set("SENDFILE_MIJI_CODE", db.get(mjCode)); //密级CODE
- tsBean.set("SENDFILE_MIJI_NAME", db.get(mjName)); //密级NAME
- tsBean.set("SENDFILE_YWBZJZ", db.get(pkName)); //业务主键ID
- tsBean.set("SENDFILE_YWBZJBM", pkName); //业务主键编码
- tsBean.set("SENDFILE_YWB", tableName); //业务表
- tsBean.set("SENDFILE_TSRID", str); //特送人ID
- //查询出用户
- DynaBean userDynaBean = serviceTemplate.selectOne("JE_CORE_ENDUSER", " AND USERID = "+str+"");
- tsBean.set("SENDFILE_TSR", userDynaBean.get("USERNAME")); //特送人NAME
- tsBean.set("OA_SEND_RECORD_ID", jlBean.get("OA_SEND_RECORD_ID")); //特送记录主键ID
- serviceTemplate.buildModelCreateInfo(tsBean);
- serviceTemplate.insert(tsBean);
- }
- }
- toWrite(jsonBuilder.returnSuccessJson(""特送给指定人成功!""), request, param.getResponse());
- }
- /**
- * 撤销传递
- */
- @RequestMapping(
- value = {"/revocationPerson"},
- method = {RequestMethod.POST},
- produces = {"application/json; charset=utf-8"}
- )
- @ResponseBody
- public void revocationPerson(MethodArgument param) {
- HttpServletRequest request = param.getRequest();
- String ids = request.getParameter("ids"); //选中数据集合
- long l = serviceTemplate.deleteByWehreSql("OA_SENDFILE", " and OA_SENDFILE_ID in ("+ids+")");
- toWrite(jsonBuilder.returnSuccessJson(""撤销特送成功!""), request, param.getResponse());
- }
- }</font></font>
复制代码
|
|