请选择 进入手机版 | 继续访问电脑版

Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5672|回复: 3

经信局公文批办查询列表接口修改

[复制链接]

21

主题

29

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2022-6-23 09:21:38 | 显示全部楼层 |阅读模式
本帖最后由 houlin 于 2022-6-23 09:25 编辑

思路: 将关联表的sql提取出来,先对主表数据进行分页,再把分页的数据和表进行关联查询
因字数限制,这块只放修改后代码
代码如下
  1. /**
  2.      * 查询文件批办列表数据
  3.      * @param req
  4.      * @param response
  5.      * @param login
  6.      * @param findall
  7.      * @param time
  8.      * @param cmdType  空--查询列表  export--导出列表
  9.      * @return
  10.      */
  11.     public static HashMap<String,Object> getList(HttpServletRequest req, HttpServletResponse response, LoginModel login, String findall, String time,String cmdType){
  12.         List list = new ArrayList<HashMap<String, String>>();
  13.         HashMap<String,Object> map = new HashMap<String,Object>();
  14.         JSONObject json = new JSONObject();
  15.         try {
  16.             DatabaseBo dbo = new DatabaseBo();
  17.             String usercode = login.getUserCode();
  18.             String roles[] = login.getRoles();
  19.             String username = login.getUserName();
  20.             List listC14 = Arrays.asList(roles);
  21.             //获取页码
  22.             String page = req.getParameter("page");
  23.             if(page == null || "".equals(page)){
  24.                 page = "1";
  25.             }
  26.             //定义每页的长度
  27.             int pageSize = 10;
  28.             //定义当前页的第一位id
  29.             int count = (Integer.parseInt(page)-1)*pageSize+1;
  30.             //定义当前页的最后一位id
  31.             int endCount = (Integer.parseInt(page)-1)*pageSize+pageSize;
  32.             //获取文件类型
  33.             String titlelike = req.getParameter("titlelike");
  34.             //获取标题、姓名、发文单位
  35.             String find = req.getParameter("find");
  36.             //获取是否办理或批办状态
  37.             String ystatus = req.getParameter("ystatus");
  38.             //2020/11/13 田思斌  增加按发文单位查询
  39.             //获取发文单位
  40.             String unit = req.getParameter("unit");

  41.             //定义查询条件
  42.             String findstr = "";
  43.             //定义文件类型查询条件
  44.             String titlelikestr = "";
  45.             //定义根据批办状态查询条件
  46.             String statustr = "";

  47.             //定义根据发文单位查询条件
  48.             String unitstr = "";
  49.             //wangjiajia 2020.9.23
  50.             //排序方式
  51.             String desctype = req.getParameter("desctype");
  52.             System.out.println("获取排序方式=============:"+desctype);
  53.             String desctypesql = "";
  54.             if (!"".equals(desctype) && desctype != null){
  55.                     if("0".equals(desctype)) //按照发布时间排序
  56.                         desctypesql += " FASONGTIME desc,";
  57.                     else  //按照办结时间排序
  58.                         desctypesql += " finishtime1 desc,";;
  59.             }

  60.             //wangjiajia 2020.9.24
  61.             //新增发布时间,办结时间按钮
  62.             String fasongstarttime = req.getParameter("fasongstarttime");
  63.             String fasongendtime = req.getParameter("fasongendtime");
  64.             String fasongsql="";
  65.             //发布时间
  66.             if(fasongstarttime!=null&&!"".equals(fasongstarttime))
  67.                 fasongsql+=" and fasongtime>='"+fasongstarttime+"'";
  68.             if(fasongendtime!=null&&!"".equals(fasongendtime))
  69.                 fasongsql+=" and fasongtime<='"+fasongendtime+"'";
  70.             //办结时间
  71.             String finishsql="";
  72.             String finishstarttime = req.getParameter("finishstarttime");
  73.             String finishendtime = req.getParameter("finishendtime");
  74.             if(finishstarttime!=null&&!"".equals(finishstarttime))
  75.                 fasongsql+=" and finishtime1>='"+finishstarttime+"'";
  76.             if(finishendtime!=null&&!"".equals(finishendtime))
  77.                 fasongsql+=" and finishtime1<='"+finishendtime+"'";


  78.             if(find != null && !"".equals(find)){//根据标题进行搜索 OR a.SPONSORNAME LIKE '%"+find+"%' OR a.TIME LIKE '%"+find+"%'
  79.                 findstr += "and (a.TITLE LIKE '%"+find +"%')";
  80.             }
  81.             if(unit != null && !"".equals(unit)){//根据标题进行搜索 OR a.SPONSORNAME LIKE '%"+find+"%' OR a.TIME LIKE '%"+find+"%'
  82.                 unitstr += "and (a.TIME LIKE '%"+unit +"%')";
  83.             }
  84.             if(titlelike != null && !"".equals(titlelike)){//根据文件类型进行搜索
  85.                 titlelikestr += " and a.WENJIAN_TYPE = '"+titlelike+"'";
  86.             }
  87.             if(ystatus != null && !"".equals(ystatus)){
  88.                 statustr += " and b.BANJIE = '"+ystatus+"'";
  89.             }
  90.             //定义分页
  91.             String pageStr = "";
  92.             if(time == null || "".equals(time)){//WHERE RN BETWEEN "+count+" AND "+endCount
  93.                 pageStr = "WHERE p.RN BETWEEN "+count+" AND "+endCount;
  94.             }
  95.             //获取是否为收藏列表
  96.             String collect = req.getParameter("collect");
  97.             System.out.println("获取是否为收藏列表:"+collect);
  98.             //定义收藏条件
  99.             String collectStr = "";
  100.             if(collect != null && !"".equals(collect)){//为收藏列表
  101.                 collectStr = " and collectwk = '1' ";
  102.             }
  103.             //导出查询(查询)
  104.             /*String updateExcel = "(select wm_concat(REVICENAME) from OA_WORKINFO n where n.wid=a.ID and n.ISREAD='1' and n.ISDELIVERY='1') read,\n" +
  105.                     "        (select wm_concat(REVICENAME) from OA_WORKINFO n where n.wid=a.ID and n.ISREAD='0' and n.ISDELIVERY='1') unread,\n        " +
  106.                     "        (select wm_concat(idea) from OA_WORKINFO n where n.wid=a.ID ) opinion,\n" +
  107.                     "        (SELECT DISTINCT\n" +
  108.                     "                CASE\n" +
  109.                     "                WHEN (SELECT COUNT(*) FROM OA_NEWWORK_FINISHTIME WHERE FINISHTIME>=(SELECT TO_CHAR(sysdate,'yyyy-mm-dd') FROM dual) AND rid=a.ID) >0\n" +
  110.                     "                THEN (SELECT min(FINISHTIME) FROM OA_NEWWORK_FINISHTIME WHERE FINISHTIME>=(SELECT TO_CHAR(sysdate,'yyyy-mm-dd') FROM dual) AND rid=a.ID)\n" +
  111.                     "                when (SELECT COUNT(*) FROM OA_NEWWORK_FINISHTIME WHERE FINISHTIME>=(SELECT TO_CHAR(sysdate,'yyyy-mm-dd') FROM dual) AND rid=a.ID) <=0\n" +
  112.                     "                then (SELECT max(FINISHTIME) FROM OA_NEWWORK_FINISHTIME WHERE rid=a.ID)\n" +
  113.                     "                else ''\n" +
  114.                     "                END FINISHTIME\n" +
  115.                     "                FROM OA_NEWWORK_FINISHTIME\n" +
  116.                     "                WHERE rid=a.ID) finishtime1,\n" +
  117.                     "        (select wm_concat(F.FINISHTIME) from OA_NEWWORK_FINISHTIME f where f.rid=a.ID ) FINISHTIME,isjinji WENJIAN_STATUS,";*/

  118.             String updateExcel1 = "r.FINISHTIME finishtime1,isjinji WENJIAN_STATUS,";
  119.             String updateExcel2 = " m.read,n.unread,o.opinion,q.FINISHTIME ";
  120.             String addsql1 = " left join " +
  121.                     " (" +
  122.                         " select case when uu.count>0 then vv.FINISHTIME_min when uu.count<=0 then ww.FINISHTIME_max else ''  end FINISHTIME,uu.rid " +
  123.                         " from ( select count(*) count,rid from OA_NEWWORK_FINISHTIME WHERE rid >=0 group by rid ) uu " +
  124.                         " left join (SELECT MIN(FINISHTIME) FINISHTIME_min,rid FROM OA_NEWWORK_FINISHTIME WHERE rid >=0  group by rid) vv on uu.rid = vv.rid " +
  125.                         " left join (SELECT MAX(FINISHTIME) FINISHTIME_max,rid FROM OA_NEWWORK_FINISHTIME WHERE rid >=0 group by rid) ww on uu.rid = ww.rid" +
  126.                     " ) r on a.id = r.rid ";

  127.             String addsql2 = " left join (select wm_concat(REVICENAME) read,wid from OA_WORKINFO WHERE  ISREAD    ='1' AND ISDELIVERY='1' and wid >=0 group by wid ) m on a.aid = m.wid " +
  128.             " left join (select wm_concat(REVICENAME) unread,wid from OA_WORKINFO  WHERE  ISREAD    ='0' AND ISDELIVERY='1' and wid >=0 group by wid ) n on a.aid = n.wid " +
  129.                     " left join (select wm_concat(idea) opinion,wid from OA_WORKINFO WHERE wid >=0  group by wid ) o on a.aid = o.wid " +
  130.                     " left join  (select wm_concat(FINISHTIME) FINISHTIME,rid from OA_NEWWORK_FINISHTIME WHERE rid >=0 group by rid ) q on a.aid = q.rid " ;
  131.             //定义列表总数量
  132.             String num ="0";
  133.             //查询当前登陆人是否属于办公室科员/办公室科长
  134.             List<HashMap<String,String>> molist = ModuleGrantUtil.getModuleGrantByUsercode(usercode,"workinform","workadd","getList");
  135.             //a03-所有主管领导 molist-办公室所有人 a02-副局长 a01-局长  a42--公文批办特殊发布人员--杨帆
  136.             if (listC14.contains("a03") || (null != molist && molist.size() > 0) || listC14.contains("a02") || listC14.contains("a01")|| listC14.contains("a42")) {
  137.                 //查看所有
  138.                 String sql = "";
  139.                 //如果是按办结时间排序,办结时间为空的不显示  desctypesql-排序方式
  140.                 if(desctypesql.equals(" finishtime1 desc,")){
  141.                     if ((find != null && !"".equals(find)) && (unit != null && !"".equals(unit))) {//主办单位或者直接搜索
  142.                         sql = (new StringBuilder(
  143.                                 "select * from (select rownum AS rn,t.* from (select * from(SELECT a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,a.SPONSORNAME,APPROVALSTATUS,CASE WHEN A.SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  FROM OA_NEWWORK a "+addsql1+" WHERE 1=1 and submit = '1' " + findstr + unitstr))
  144.                                 .append(" ORDER BY " + desctypesql + "ID DESC) c left join (select * from oa_workcollect where cname='")
  145.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  146.                     } else if ((find != null && !"".equals(find)) || (titlelike != null && !"".equals(titlelike))) { //根据标题搜索排序
  147.                         sql = (new StringBuilder(
  148.                                 "select * from (select rownum AS rn,t.* from (select * from(SELECT a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,a.SPONSORNAME,APPROVALSTATUS,CASE WHEN A.SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  FROM OA_NEWWORK a "+addsql1+" WHERE 1=1 and submit = '1' " + findstr + titlelikestr))
  149.                                 .append(" ORDER BY " + desctypesql + "ID DESC) c left join (select * from oa_workcollect where cname='")
  150.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  151.                     } else if ((unit != null && !"".equals(unit)) || (titlelike != null && !"".equals(titlelike))) {//标题或主办单位选择
  152.                         sql = (new StringBuilder(
  153.                                 "select * from (select rownum AS rn,t.* from (select * from(SELECT a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,a.SPONSORNAME,APPROVALSTATUS,CASE WHEN A.SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  FROM OA_NEWWORK a "+addsql1+" WHERE 1=1 and submit = '1' " + unitstr + titlelikestr))
  154.                                 .append(" ORDER BY " + desctypesql + "ID DESC) c left join (select * from oa_workcollect where cname='")
  155.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  156.                     } else if (!"".equals(findall) && findall != null) { //全选搜索
  157.                         sql = (new StringBuilder(
  158.                                 "select * from (select rownum AS rn,t.* from (select * from(SELECT ID aid," + updateExcel1 + "FASONGTIME,TIME,TITLE,BIGEVENT,SPONSORNAME,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE STATE END STATE,ISSECRETY  FROM OA_NEWWORK a "+addsql1+" where submit = '1'  ORDER BY ID DESC) c left join (select * from oa_workcollect where cname='"))
  159.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + "c.aid desc) t where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  160.                     } else {
  161.                         sql = (new StringBuilder(
  162.                                 "select * from (SELECT x.*, ROWNUM RN  FROM(select * from(SELECT ID aid," + updateExcel1 + "FASONGTIME,TIME,TITLE,BIGEVENT,SPONSORNAME,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE STATE END STATE,ISSECRETY,WENJIAN_TYPE,DIGEST  FROM OA_NEWWORK a "+addsql1+" where submit = '1' ORDER BY " + desctypesql + "ID DESC) c left join (select * from oa_workcollect where cname='"))
  163.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + " c.aid desc) x where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + time + ") p ")
  164.                                 .toString();
  165.                     }
  166.                 }else {
  167.                     if ((find != null && !"".equals(find)) && (unit != null && !"".equals(unit))) { //搜索和主办单位
  168.                         sql = (new StringBuilder(
  169.                                 "select * from (select rownum AS rn,t.* from (select * from(SELECT a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,a.SPONSORNAME,APPROVALSTATUS,CASE WHEN A.SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  FROM OA_NEWWORK a "+addsql1+" WHERE 1=1 and submit = '1' " + findstr + unitstr))
  170.                                 .append(" ORDER BY " + desctypesql + "ID DESC) c left join (select * from oa_workcollect where cname='")
  171.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  172.                     } else if ((find != null && !"".equals(find)) || (titlelike != null && !"".equals(titlelike))) {//搜索或者标题选择
  173.                         sql = (new StringBuilder(
  174.                                 "select * from (select rownum AS rn,t.* from (select * from(SELECT a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,a.SPONSORNAME,APPROVALSTATUS,CASE WHEN A.SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  FROM OA_NEWWORK a "+addsql1+" WHERE 1=1 and submit = '1' " + findstr + titlelikestr))
  175.                                 .append(" ORDER BY " + desctypesql + "ID DESC) c left join (select * from oa_workcollect where cname='")
  176.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  177.                     } else if ((unit != null && !"".equals(unit)) || (titlelike != null && !"".equals(titlelike))) { //根据主办单位和标题选择
  178.                         sql = (new StringBuilder(
  179.                                 "select * from (select rownum AS rn,t.* from (select * from(SELECT a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,a.SPONSORNAME,APPROVALSTATUS,CASE WHEN A.SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  FROM OA_NEWWORK a "+addsql1+" WHERE 1=1 and submit = '1' " + unitstr + titlelikestr))
  180.                                 .append(" ORDER BY " + desctypesql + "ID DESC) c left join (select * from oa_workcollect where cname='")
  181.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  182.                     } else if (!"".equals(findall) && findall != null) { //全选
  183.                         sql = (new StringBuilder(
  184.                                 "select * from (select rownum AS rn,t.* from (select * from(SELECT ID aid," + updateExcel1 + "FASONGTIME,TIME,TITLE,BIGEVENT,SPONSORNAME,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE STATE END STATE,ISSECRETY  FROM OA_NEWWORK a "+addsql1+" where submit = '1'  ORDER BY ID DESC) c left join (select * from oa_workcollect where cname='"))
  185.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + "c.aid desc) t where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  186.                     } else {
  187.                         sql = (new StringBuilder(
  188.                                 "select * from (SELECT x.*, ROWNUM RN  FROM(select * from(SELECT ID aid," + updateExcel1 + "FASONGTIME,TIME,TITLE,BIGEVENT,SPONSORNAME,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE STATE END STATE,ISSECRETY,WENJIAN_TYPE,DIGEST  FROM OA_NEWWORK a "+addsql1+" where submit = '1' ORDER BY " + desctypesql + "ID DESC) c left join (select * from oa_workcollect where cname='"))
  189.                                 .append(usercode).append("')z on c.aid=z.zid order by " + desctypesql + " c.aid desc) x where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + time + ") p ")
  190.                                 .toString();
  191.                     }
  192.                 }
  193.                 String count_sql = sql.replaceFirst("\\*", "count(aid) num");
  194.                 num = dbo.prepareQuery(count_sql,null).get(0).get("NUM");
  195.                 String finil_sql = "SELECT a.* "+" from ("+sql+pageStr+") a ";
  196.                 if("export".equals(cmdType)){
  197.                     finil_sql = "SELECT a.*,"+updateExcel2 +" from ("+sql+pageStr+") a "+ addsql2;
  198.                 }
  199.                 list = dbo.prepareQuery(finil_sql, null);
  200.             } else {//查看自己相关
  201.                 System.out.println("排序顺序是:========="+desctypesql);

  202.                 String selectpishi = "";
  203.                 System.out.println(desctypesql+"3333");
  204.                 if(desctypesql.equals(" finishtime1 desc,")){
  205.                     if ((find != null && !"".equals(find)) && (unit != null && !"".equals(unit))) {
  206.                         selectpishi = (new StringBuilder(
  207.                                 "select * from (select rownum AS rn,t.* from (select * from(select  a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  from oa_newwork a  left join  oa_workinfo b on a.id=b.wid "+addsql1+"  where a.submit = '1'  AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10') " + statustr + findstr + unitstr + " and b.revicecode='"))
  208.                                 .append(usercode)
  209.                                 .append("'   order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  210.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  211.                     } else if ((find != null && !"".equals(find)) || (titlelike != null && !"".equals(titlelike))) {
  212.                         selectpishi = (new StringBuilder(
  213.                                 "select * from (select rownum AS rn,t.* from (select * from(select  a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  from oa_newwork a  left join oa_workinfo b on  a.id=b.wid "+addsql1+"  where a.submit = '1'  AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10') " + statustr + findstr + titlelikestr + " and b.revicecode='"))
  214.                                 .append(usercode)
  215.                                 .append("'   order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  216.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  217.                     } else if ((unit != null && !"".equals(unit)) || (titlelike != null && !"".equals(titlelike))) {
  218.                         selectpishi = (new StringBuilder(
  219.                                 "select * from (select rownum AS rn,t.* from (select * from(select  a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  from oa_newwork a  left join oa_workinfo b on a.id=b.wid  "+addsql1+" where a.submit = '1'  AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10') " + statustr + unitstr + titlelikestr + " and b.revicecode='"))
  220.                                 .append(usercode)
  221.                                 .append("'   order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  222.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  223.                     } else if (!"".equals(findall) && findall != null) {
  224.                         selectpishi = (new StringBuilder(
  225.                                 "select * from (select rownum AS rn,t.* from (select * from(select a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY from oa_newwork a  left join oa_workinfo b on a.id=b.wid "+addsql1+"  where a.submit = '1' AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10')  +" + statustr + "   and b.revicecode='"))
  226.                                 .append(usercode)
  227.                                 .append("'    order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  228.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  229.                     } else {
  230.                         selectpishi = (new StringBuilder(
  231.                                 "SELECT * FROM  (SELECT x.*, ROWNUM RN  FROM(select * from(select a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE,a.DIGEST from oa_newwork a  left join oa_workinfo b on  a.id=b.wid "+addsql1+"  where a.submit = '1' AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10')  " + statustr + "  and b.revicecode='"))
  232.                                 .append(usercode)
  233.                                 .append("'    order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  234.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc ) x where 1=1 and FINISHTIME1 is not null " + fasongsql + " " + finishsql + " " + collectStr + time + ") p ")
  235.                                 .toString();
  236.                     }

  237.                 }

  238.                 else {
  239.                     if ((find != null && !"".equals(find)) && (unit != null && !"".equals(unit))) {
  240.                         selectpishi = (new StringBuilder(
  241.                                 "select * from (select rownum AS rn,t.* from (select * from(select  a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  from oa_newwork a  left join oa_workinfo b on  a.id=b.wid "+addsql1+"  where a.submit = '1'  AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10') " + statustr + findstr + unitstr + " and b.revicecode='"))
  242.                                 .append(usercode)
  243.                                 .append("'   order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  244.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  245.                     } else if ((find != null && !"".equals(find)) || (titlelike != null && !"".equals(titlelike))) {
  246.                         selectpishi = (new StringBuilder(
  247.                                 "select * from (select rownum AS rn,t.* from (select * from(select  a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  from oa_newwork a left join oa_workinfo b on  a.id=b.wid  "+addsql1+" where a.submit = '1'  AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10') " + statustr + findstr + titlelikestr + " and b.revicecode='"))
  248.                                 .append(usercode)
  249.                                 .append("'   order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  250.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  251.                     } else if ((unit != null && !"".equals(unit)) || (titlelike != null && !"".equals(titlelike))) {
  252.                         selectpishi = (new StringBuilder(
  253.                                 "select * from (select rownum AS rn,t.* from (select * from(select  a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE  from oa_newwork a  left join oa_workinfo b on a.id=b.wid "+addsql1+"  where a.submit = '1'  AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10') " + statustr + unitstr + titlelikestr + " and b.revicecode='"))
  254.                                 .append(usercode)
  255.                                 .append("'   order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  256.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  257.                     } else if (!"".equals(findall) && findall != null) {
  258.                         selectpishi = (new StringBuilder(
  259.                                 "select * from (select rownum AS rn,t.* from (select * from(select a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY from oa_newwork a  left join oa_workinfo b on a.id=b.wid "+addsql1+" where a.submit = '1' AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10')  +" + statustr + "   and b.revicecode='"))
  260.                                 .append(usercode)
  261.                                 .append("'    order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  262.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc) t where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + ") p ").toString();
  263.                     } else {
  264.                         selectpishi = (new StringBuilder(
  265.                                 "SELECT * FROM  (SELECT x.*, ROWNUM RN  FROM(select * from(select a.ID aid," + updateExcel1 + "a.FASONGTIME,a.TIME,a.TITLE,a.BIGEVENT,b.BANJIE,a.SPONSORNAME,b.iscollect,APPROVALSTATUS,CASE WHEN SPONSORCODE = '" + usercode + "' THEN '0' ELSE '1' END LOGINSTATU,CASE WHEN APPROVALSTATUS = '3' THEN '已终止' WHEN APPROVALSTATUS = '2' THEN '已驳回' ELSE A.STATE END STATE,a.ISSECRETY,a.WENJIAN_TYPE,a.DIGEST from oa_newwork a  left join oa_workinfo b on a.id=b.wid "+addsql1+" where a.submit = '1' AND (A.APPROVALSTATUS = '1' or  A.APPROVALSTATUS = '9'  or  A.APPROVALSTATUS = '10')  " + statustr + "  and b.revicecode='"))
  266.                                 .append(usercode)
  267.                                 .append("'    order by " + desctypesql + "a.id desc) c left join (select * from oa_workcollect where cname='")
  268.                                 .append(usercode).append("' )z on c.aid=z.zid order by " + desctypesql + " c.aid desc ) x where 1=1 " + fasongsql + " " + finishsql + " " + collectStr + time + ") p ")
  269.                                 .toString();
  270.                     }
  271.                 }
  272.                 String count_sql = selectpishi.replaceFirst("\\*", "count(aid) num");
  273.                 num = dbo.prepareQuery(count_sql,null).get(0).get("NUM");
  274.                 String finil_sql = "SELECT a.* " +" from ("+selectpishi+pageStr+") a ";
  275.                 if("export".equals(cmdType)){
  276.                     finil_sql = "SELECT a.*,"+updateExcel2 +" from ("+selectpishi+pageStr+") a "+ addsql2;
  277.                 }
  278.                 list = dbo.prepareQuery(finil_sql, null);
  279.             }

  280.             map.put("num",num);
  281.             map.put("list",list);
  282.         }catch (Exception e){
  283.             e.printStackTrace();
  284.         }
  285.         return map;
  286.     }
复制代码


回复

使用道具 举报

0

主题

15

帖子

89

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
89
发表于 2022-6-23 09:34:07 | 显示全部楼层
此项问题是经信局公文批办列表查询缓慢,未修改前加载需要10多秒,修改后在1秒内完成加载。
回复

使用道具 举报

2

主题

16

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2022-6-27 15:42:03 | 显示全部楼层
真长

点评

我很赞同  发表于 2022-6-27 15:44
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|立达政通科技集团

GMT+8, 2026-6-8 13:56 , Processed in 0.059519 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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