JEPaaS 社区

 找回密码
 立即注册
JEPaaS低代码平台-官网
查看: 2508|回复: 1

如何将选中数据推送给指定人员?

[复制链接]

47

主题

48

帖子

172

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
172
发表于 2021-6-24 16:50:43 | 显示全部楼层 |阅读模式
一、问题需求
  • 在某些特殊情况下,需要将列表中某些数据推送给指定人员这样的需求


二、展示效果
  • 选中一条数据,然后推送,会选择需要推送的人

三、实现思路
1、在列表上加点击按钮
2、在按钮中注册点击事件,写弹出选人事件
3、选择完人确认后,获取到数据拼接好格式,传入后台进行业务操作,存入一张表中
4、在另外一个列表上可以进行撤销,把选中的数据传入后台在中间表删除即可

四、具体操作
首先在列表上创建传递人按钮,撤销按钮

在传递人按钮上注册点击事件,并写弹出选人事件


在撤销按钮中注册点击事件



五、相关代码
传递人按钮
  1. <font face="微软雅黑"><font face="微软雅黑">function(btn,event,eOpts){
  2.     //弹出选人框
  3.    JE.selectWin({
  4.         title: '部门',
  5.         configInfo: 'JE_CORE_DEPTUSER,,,M',
  6.         type: 'tree',
  7.         valueType:'id',
  8.         //params: {"PDID":pdid,"FUNCCODE":funccode},
  9.         callback: (sels,oldVal,sswin) => {
  10.             //sels,选择的数据都在里面
  11.             var length = sels.length;
  12.             if(length!=0){
  13.                 var array = new Array();
  14.                 //遍历选择的数据,把数据主键ID放入集合中
  15.                 for(var num = 0;num<length;num++){
  16.                     var rows = sels[num];
  17.                     array.push(rows.data.bean.ID);
  18.                 }
  19.                 var personIds = "";
  20.                 //把集合拼接成字符串ID
  21.                 Ext.each(array,function(item,index){
  22.                     if(JE.isEmpty(personIds)){
  23.                         personIds = "'"+item+"'";
  24.                     }else{
  25.                         personIds += ",'"+item+"'";
  26.                     }
  27.                 });
  28.                 debugger;
  29.                 var grid = btn.up("jegridview");
  30.                 var funcCode = grid.funcData.info.funcCode;     //功能编码
  31.                 var tableName = grid.funcData.info.tableName;   //获取表名
  32.                 var pkName = grid.funcData.info.pkName;   //获取当前表主键
  33.                 var ids = grid.getSelectIds();      //获取选中数据ID
  34.                 var array = tableName.split("_");
  35.                 var table = array[array.length-1];  //获取表后缀
  36.                 var bt = table + "_BT";     //拼接标题字段
  37.                 var mjCode = table + "_MIJI_CODE";     //拼接密级CODE
  38.                 var mjName = table + "_MIJI_NAME";     //拼接密级NAME
  39.                 var paramIds = "";
  40.                 Ext.each(ids,function(item,index){
  41.                     if(JE.isEmpty(paramIds)){
  42.                         paramIds = "'"+item+"'";
  43.                     }else{
  44.                         paramIds += ",'"+item+"'";
  45.                     }
  46.                 });
  47.                 var obj = JE.ajax({
  48.                     url:'/je/sendfile/sendPerson',
  49.                     params:{funcCode:funcCode,tableName:tableName,pkName:pkName,ids:paramIds,bt:bt,mjCode:mjCode,mjName:mjName,personIds:personIds}
  50.                 });
  51.                 if(obj.success){
  52.                     JE.msg('特送给指定人成功');
  53.                     grid.load();
  54.                 }else{
  55.                     JE.alert('失败,请联系管理员');
  56.                 }

  57.             }
  58.         }
  59.     })
  60. }</font></font>
复制代码
撤销按钮
  1. <font face="微软雅黑"><font face="微软雅黑">function(btn,event,eOpts){
  2.    var grid = btn.up("jegridview");
  3.     var ids = grid.getSelectIds();      //获取选中数据ID
  4.     var paramIds = "";
  5.     //把选中数据的ID,拼接成字符串传入后台
  6.     Ext.each(ids,function(item,index){
  7.         if(JE.isEmpty(paramIds)){
  8.             paramIds = "'"+item+"'";
  9.         }else{
  10.             paramIds += ",'"+item+"'";
  11.         }
  12.     });
  13.     var obj = JE.ajax({
  14.         url:'/je/recycle/restorePublic',
  15.         params:{ids:paramIds}
  16.     });
  17.     if(obj.success){
  18.         JE.msg('还原成功!');
  19.         grid.load();
  20.     }else{
  21.         JE.alert('失败,请联系管理员');
  22.     }
  23. }</font></font>
复制代码
后端代码
  1. <font face="微软雅黑"><font face="微软雅黑">/**
  2. *  传递
  3. */
  4. @Controller
  5. @RequestMapping(value = "/je/sendfile")
  6. public class SendFileController extends AbstractDynaController {
  7.     /**
  8.      *  传递给指定人
  9.      */
  10.     @RequestMapping(
  11.             value = {"/sendPerson"},
  12.             method = {RequestMethod.POST},
  13.             produces = {"application/json; charset=utf-8"}
  14.     )
  15.     @ResponseBody
  16.     public void sendPerson(MethodArgument param) {
  17.         HttpServletRequest request = param.getRequest();
  18.         String funcCode = request.getParameter("funcCode");     //功能编码
  19.         String tableName = request.getParameter("tableName");   //表编码
  20.         String pkName = request.getParameter("pkName");         //表主键编码
  21.         String ids = request.getParameter("ids");               //选中数据集合
  22.         String bt = request.getParameter("bt");                 //标题字段编码
  23.         String mjCode = request.getParameter("mjCode");         //密级CODE
  24.         String mjName = request.getParameter("mjName");         //密级NAME
  25.         String personIds = request.getParameter("personIds");         //特送给的人userId
  26.         String[] personArray = personIds.split(",");    //讲特送人分隔成数组
  27.         //查询出所有的业务数据
  28.         List<DynaBean> dynaBeanList = serviceTemplate.selectList(tableName, " and "+pkName+" in ("+ids+")");
  29.         for(DynaBean db : dynaBeanList){
  30.             //特送记录插入数据
  31.             DynaBean jlBean = new DynaBean("OA_SEND_RECORD", true);
  32.             jlBean.set("RECORD_BT", db.get(bt));       //标题
  33.             jlBean.set("RECORD_WJ", funcCode);       //文件类型
  34.             jlBean.set("RECORD_MIJI_CODE", db.get(mjCode));       //密级CODE
  35.             jlBean.set("RECORD_MIJI_NAME", db.get(mjName));       //密级NAME
  36.             jlBean.set("RECORD_YWZJID", db.get(pkName));       //业务主键ID
  37.             jlBean.set("RECORD_YWZJBM", pkName);       //业务主键编码
  38.             jlBean.set("RECORD_YWB", tableName);       //业务表
  39.             serviceTemplate.buildModelCreateInfo(jlBean);
  40.             serviceTemplate.insert(jlBean);
  41.             for(String str : personArray){
  42.                 //特送文件插入数据
  43.                 DynaBean tsBean = new DynaBean("OA_SENDFILE", true);
  44.                 tsBean.set("SENDFILE_BT", db.get(bt));       //标题
  45.                 tsBean.set("SENDFILE_WJ", funcCode);       //文件类型
  46.                 tsBean.set("SENDFILE_MIJI_CODE", db.get(mjCode));       //密级CODE
  47.                 tsBean.set("SENDFILE_MIJI_NAME", db.get(mjName));       //密级NAME
  48.                 tsBean.set("SENDFILE_YWBZJZ", db.get(pkName));       //业务主键ID
  49.                 tsBean.set("SENDFILE_YWBZJBM", pkName);       //业务主键编码
  50.                 tsBean.set("SENDFILE_YWB", tableName);       //业务表
  51.                 tsBean.set("SENDFILE_TSRID", str);          //特送人ID
  52.                 //查询出用户
  53.                 DynaBean userDynaBean = serviceTemplate.selectOne("JE_CORE_ENDUSER", " AND USERID = "+str+"");
  54.                 tsBean.set("SENDFILE_TSR", userDynaBean.get("USERNAME"));          //特送人NAME
  55.                 tsBean.set("OA_SEND_RECORD_ID", jlBean.get("OA_SEND_RECORD_ID"));   //特送记录主键ID
  56.                 serviceTemplate.buildModelCreateInfo(tsBean);
  57.                 serviceTemplate.insert(tsBean);
  58.             }
  59.         }
  60.         toWrite(jsonBuilder.returnSuccessJson(""特送给指定人成功!""), request, param.getResponse());
  61.     }

  62.     /**
  63.      *  撤销传递
  64.      */
  65.     @RequestMapping(
  66.             value = {"/revocationPerson"},
  67.             method = {RequestMethod.POST},
  68.             produces = {"application/json; charset=utf-8"}
  69.     )
  70.     @ResponseBody
  71.     public void revocationPerson(MethodArgument param) {
  72.         HttpServletRequest request = param.getRequest();
  73.         String ids = request.getParameter("ids");               //选中数据集合
  74.         long l = serviceTemplate.deleteByWehreSql("OA_SENDFILE", " and OA_SENDFILE_ID in ("+ids+")");
  75.         toWrite(jsonBuilder.returnSuccessJson(""撤销特送成功!""), request, param.getResponse());
  76.     }

  77. }</font></font>
复制代码







回复

使用道具 举报

73

主题

101

帖子

1251

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1251
发表于 2021-6-26 18:19:23 | 显示全部楼层
推送到制定人员是什么效果?是右下角的消息提醒吗?标题和展示效果让人感觉很迷糊。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号 )

GMT+8, 2024-5-2 15:03 , Processed in 0.059408 second(s), 23 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表