Browse Source

Merge remote-tracking branch 'origin/master'

yue 5 years atrás
parent
commit
6c35847fdd

+ 11 - 0
.idea/artifacts/jeeplus_war.xml

@@ -9,6 +9,17 @@
     </properties>
     <root id="archive" name="jeeplus.war">
       <element id="artifact" artifact-name="jeeplus:war exploded" />
+      <element id="directory" name="WEB-INF">
+        <element id="directory" name="lib">
+          <element id="library" level="module" name="Maven: com.alibaba:jconsole:1.8.0" module-name="jeeplus" />
+          <element id="library" level="module" name="Maven: com.alibaba:tools:1.8.0" module-name="jeeplus" />
+          <element id="library" level="module" name="Maven: ojdbc14:ojdbc14:10.2.0.3.0" module-name="jeeplus" />
+          <element id="library" level="module" name="Maven: batik:batik-util:1.6-1" module-name="jeeplus" />
+          <element id="library" level="module" name="Maven: org.wltea:analyzer:2012_u6" module-name="jeeplus" />
+          <element id="library" level="module" name="Maven: gencode:gencode:2.0" module-name="jeeplus" />
+          <element id="library" level="module" name="Maven: QRCoder:QRCoder:1.0" module-name="jeeplus" />
+        </element>
+      </element>
     </root>
   </artifact>
 </component>

+ 2 - 2
.idea/jeeplus.iml

@@ -55,7 +55,7 @@
     <orderEntry type="module-library">
       <library name="Maven: com.alibaba:jconsole:1.8.0">
         <CLASSES>
-          <root url="jar://C:/Program Files/Java/jdk1.8.0_221/lib/jconsole.jar!/" />
+          <root url="jar://D:/JDK/lib/jconsole.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
@@ -64,7 +64,7 @@
     <orderEntry type="module-library">
       <library name="Maven: com.alibaba:tools:1.8.0">
         <CLASSES>
-          <root url="jar://C:/Program Files/Java/jdk1.8.0_221/lib/tools.jar!/" />
+          <root url="jar://D:/JDK/lib/tools.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />

+ 2 - 0
src/main/java/com/jeeplus/modules/act/service/ActTaskService.java

@@ -173,6 +173,7 @@ public class ActTaskService extends BaseService {
 			map.put("procDef.name", ProcessDefCache.get(task.getProcessDefinitionId()).getName());
 			map.put("procDef.version", ProcessDefCache.get(task.getProcessDefinitionId()).getVersion());
 			map.put("status","todo");
+			map.put("title",task.getProcessVariables().get("title"));
 			page.getList().add(map);
 		}
 		
@@ -191,6 +192,7 @@ public class ActTaskService extends BaseService {
 			map.put("procDef.name", ProcessDefCache.get(task.getProcessDefinitionId()).getName());
 			map.put("procDef.version", ProcessDefCache.get(task.getProcessDefinitionId()).getVersion());
 			map.put("status", "claim");
+			map.put("title",task.getProcessVariables().get("title"));
 			page.getList().add(map);
 		}
 

+ 105 - 0
src/main/java/com/jeeplus/modules/sg/report/entity/SgReport.java

@@ -0,0 +1,105 @@
+package com.jeeplus.modules.sg.report.entity;
+
+import com.jeeplus.core.persistence.DataEntity;
+
+public class SgReport extends DataEntity<SgReport> {
+    private String name;
+    private Integer level1;
+    private Integer level2;
+    private Integer level3;
+    private Integer level4;
+    private String status;
+    private String type;
+    private String startDate;
+    private String endDate;
+    private Integer finishCount;
+    private Integer unfinishCount;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getLevel1() {
+        return level1;
+    }
+
+    public void setLevel1(Integer level1) {
+        this.level1 = level1;
+    }
+
+    public Integer getLevel2() {
+        return level2;
+    }
+
+    public void setLevel2(Integer level2) {
+        this.level2 = level2;
+    }
+
+    public Integer getLevel3() {
+        return level3;
+    }
+
+    public void setLevel3(Integer level3) {
+        this.level3 = level3;
+    }
+
+    public Integer getLevel4() {
+        return level4;
+    }
+
+    public void setLevel4(Integer level4) {
+        this.level4 = level4;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(String startDate) {
+        this.startDate = startDate;
+    }
+
+    public String getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(String endDate) {
+        this.endDate = endDate;
+    }
+
+    public Integer getFinishCount() {
+        return finishCount;
+    }
+
+    public void setFinishCount(Integer finishCount) {
+        this.finishCount = finishCount;
+    }
+
+    public Integer getUnfinishCount() {
+        return unfinishCount;
+    }
+
+    public void setUnfinishCount(Integer unfinishCount) {
+        this.unfinishCount = unfinishCount;
+    }
+}

+ 20 - 0
src/main/java/com/jeeplus/modules/sg/report/mapper/ReportMapper.java

@@ -0,0 +1,20 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.sg.report.mapper;
+
+import com.jeeplus.core.persistence.BaseMapper;
+import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.sg.information.entity.Information;
+import com.jeeplus.modules.sg.material.entity.Material;
+import com.jeeplus.modules.sg.report.entity.SgReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+@MyBatisMapper
+public interface ReportMapper extends BaseMapper<Material> {
+   List<SgReport> findData();
+   List<SgReport> findList(SgReport sgReport);
+}

+ 56 - 0
src/main/java/com/jeeplus/modules/sg/report/mapper/xml/ReportMapper.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.modules.sg.report.mapper.ReportMapper">
+
+	<select id="findData" resultType="SgReport">
+		SELECT a.department as name ,
+		sum(a.st1) as finishCount,
+		SUM(a.st2) as unfinishCount
+		 from
+	    (SELECT department,
+	            if(firstFinish='否' or secondFinish = '否',0,1) as st1,
+	            if(firstFinish='否' or secondFinish = '否',1,0) as st2
+	            from project_information) a
+	    GROUP BY department
+	</select>
+
+	<select id="findList" parameterType="SgReport" resultType="SgReport">
+		SELECT b.department as name,
+		sum(b.level1) as lever1,
+		sum(b.level2) as level2,
+		sum(b.level3) as level3,
+		sum(b.level4) as level4 from
+		(SELECT a.id, a.department,
+		if(DATEDIFF(a.da, a.approvalDate)&lt;=7,1,0) as level1,
+		if(DATEDIFF(a.da, a.approvalDate)&lt;= 14 and DATEDIFF(a.da, a.approvalDate)&gt;7,1,0) as level2,
+		if(DATEDIFF(a.da, a.approvalDate)&lt;= 21 and DATEDIFF(a.da, a.approvalDate)&gt;14,1,0) as level3,
+		if(DATEDIFF(a.da, a.approvalDate)&gt;21 or a.approvalDate is null,1,0) as level4,
+		a.status as status
+		from
+		(SELECT id,
+		         department,
+		         if(firstFinish='否' or secondFinish = '否',NOW(),if(secondFinish = '是',secondFinishDate,firstFinishDate) )as da ,
+		          approvalDate ,if(firstFinish='否' or secondFinish = '否','0','1') as status
+		          from project_information) a ) b   GROUP BY b.department
+		 <where>
+		    <if test="status != null and status != ''">
+			 b.status = #{status} and
+		   </if>
+		   1=1
+		 </where>
+	</select>
+
+
+
+
+
+
+
+
+
+
+	
+
+
+
+</mapper>

+ 27 - 0
src/main/java/com/jeeplus/modules/sg/report/service/ReportService.java

@@ -0,0 +1,27 @@
+package com.jeeplus.modules.sg.report.service;
+
+import com.jeeplus.modules.sg.information.entity.Information;
+import com.jeeplus.modules.sg.report.entity.SgReport;
+import com.jeeplus.modules.sg.report.mapper.ReportMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+@Service
+public class ReportService {
+    @Autowired
+    private ReportMapper reportMapper;
+
+
+    public List<SgReport> findData(){
+        return reportMapper.findData();
+    }
+
+    public List<SgReport> findList(SgReport sgReport){
+        return reportMapper.findList(sgReport);
+    }
+}

+ 48 - 0
src/main/java/com/jeeplus/modules/sg/report/web/ReportController.java

@@ -0,0 +1,48 @@
+package com.jeeplus.modules.sg.report.web;
+
+import com.jeeplus.core.persistence.Page;
+import com.jeeplus.modules.sg.report.entity.SgReport;
+import com.jeeplus.modules.sg.report.service.ReportService;
+import com.jeeplus.modules.test.manytomany.entity.StudentCourse;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping(value = "${adminPath}/sg/report")
+public class ReportController {
+    @Autowired
+    private ReportService reportService;
+
+
+    /**
+     * 项目报表页面
+     */
+    @RequestMapping(value = {"list", ""})
+    public String list(SgReport sgReport, Model model) {
+        model.addAttribute("sgReport", sgReport);
+        return "modules/sg/report/reportList";
+    }
+
+    /**
+     * 项目报表数据
+     */
+    @ResponseBody
+    @RequestMapping(value = "data")
+    public Map<String, Object> data(SgReport sgReport, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<SgReport> list = reportService.findData();
+        map.put("rows", list);
+        return map;
+    }
+
+}

+ 26 - 1
src/main/java/com/jeeplus/modules/sys/web/LoginController.java

@@ -4,6 +4,9 @@
 package com.jeeplus.modules.sys.web;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.servlet.http.Cookie;
@@ -11,6 +14,8 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.jeeplus.common.utils.*;
+import com.jeeplus.modules.act.entity.Act;
+import com.jeeplus.modules.act.service.ActTaskService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -60,6 +65,9 @@ public class LoginController extends BaseController{
 	
 	@Autowired
 	private MailBoxService mailBoxService;
+
+	@Autowired
+	private ActTaskService actTaskService;
 	
 	
 	/**
@@ -357,7 +365,24 @@ public class LoginController extends BaseController{
 	 */
 	@RequestMapping(value = "${adminPath}/home")
 	public String home(HttpServletRequest request, HttpServletResponse response, Model model) throws IOException {
-		
+		Act act = new Act();
+		Page<HashMap<String,String>> page = actTaskService.todoList(new  Page<HashMap<String,String>>(request, response),act);
+		List<HashMap<String, String>> list = page.getList();
+		List<Act> actlist = new ArrayList<>();
+		Act act1 = null;
+		for(HashMap<String, String> map : list){
+           act1 = new Act();
+           act1.setTaskId(map.get("task.id"));
+           act1.setTaskName(map.get("task.name"));
+           act1.setTaskDefKey(map.get("task.taskDefinitionKey"));
+           act1.setProcInsId(map.get("task.processInstanceId"));
+           act1.setProcDefId(map.get("task.processDefinitionId"));
+           act1.setStatus(map.get("status"));
+           act1.setTitle(map.get("title"));
+           actlist.add(act1);
+		}
+		model.addAttribute("actlist",actlist);
+		model.addAttribute("actCount",page.getCount());
 		return "modules/sys/login/sysHome";
 		
 	}

+ 26 - 25
src/main/resources/properties/jeeplus.properties

@@ -15,6 +15,7 @@
 jdbc.type=mysql
 jdbc.driver=com.mysql.jdbc.Driver
 jdbc.url=jdbc:mysql://192.168.2.4:3306/sg_audit?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
+#jdbc.url=jdbc:mysql://localhost:3306/sg_audit?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
 jdbc.username=root
 jdbc.password=root
 jdbc.testSql=SELECT 'x'
@@ -38,84 +39,84 @@ jdbc.pool.maxActive=20
 #===== System settings ======#
 #============================#
 
-#\u4ea7\u54c1\u4fe1\u606f\u8bbe\u7f6e
-productName=JeePlus \u5feb\u901f\u5f00\u53d1\u5e73\u53f0
+#\u4EA7\u54C1\u4FE1\u606F\u8BBE\u7F6E
+productName=\u9547\u6C5F\u5E02\u4F9B\u7535\u516C\u53F8\u4FE1\u606F\u7CFB\u7EDF
 copyrightYear=2017
 version=V3.0
 
 #\u9ED8\u8BA4\u4E3B\u9898(\u53EF\u9009\u503C jp\uFF0Cdefault\uFF0C  jp\u662F\u9ED8\u8BA4\u6A2A\u5411\u83DC\u5355\uFF0Cdefault\u9ED8\u8BA4\u662F\u5DE6\u4FA7\u83DC\u5355\u7ECF\u5178\u98CE\u683C)
 defaultTheme = jp
 
-#\u6f14\u793a\u6a21\u5f0f: \u4e0d\u80fd\u64cd\u4f5c\u548c\u4fdd\u5b58\u7684\u6a21\u5757\uff1a sys: area/office/user/role/menu/dict, cms: site/category
+#\u6F14\u793A\u6A21\u5F0F: \u4E0D\u80FD\u64CD\u4F5C\u548C\u4FDD\u5B58\u7684\u6A21\u5757\uFF1A sys: area/office/user/role/menu/dict, cms: site/category
 demoMode=false
 
-#\u7ba1\u7406\u57fa\u7840\u8def\u5f84, \u9700\u540c\u6b65\u4fee\u6539\uff1aweb.xml
+#\u7BA1\u7406\u57FA\u7840\u8DEF\u5F84, \u9700\u540C\u6B65\u4FEE\u6539\uFF1Aweb.xml
 adminPath=/a
 
-#\u524d\u7aef\u57fa\u7840\u8def\u5f84
+#\u524D\u7AEF\u57FA\u7840\u8DEF\u5F84
 frontPath=/f
 
-#\u7f51\u7ad9URL\u540e\u7f00
+#\u7F51\u7AD9URL\u540E\u7F00
 urlSuffix=.html
 
-#\u662f\u5426\u4e0d\u5141\u8bb8\u5237\u65b0\u4e3b\u9875\uff0c\u4e0d\u5141\u8bb8\u60c5\u51b5\u4e0b\uff0c\u5237\u65b0\u4e3b\u9875\u4f1a\u5bfc\u81f4\u91cd\u65b0\u767b\u5f55
+#\u662F\u5426\u4E0D\u5141\u8BB8\u5237\u65B0\u4E3B\u9875\uFF0C\u4E0D\u5141\u8BB8\u60C5\u51B5\u4E0B\uFF0C\u5237\u65B0\u4E3B\u9875\u4F1A\u5BFC\u81F4\u91CD\u65B0\u767B\u5F55
 notAllowRefreshIndex=false
 
-#\u662f\u5426\u5141\u8bb8\u591a\u8d26\u53f7\u540c\u65f6\u767b\u5f55
+#\u662F\u5426\u5141\u8BB8\u591A\u8D26\u53F7\u540C\u65F6\u767B\u5F55
 user.multiAccountLogin=true
 
-#\u5206\u9875\u914d\u7f6e
+#\u5206\u9875\u914D\u7F6E
 page.pageSize=10
 
-#\u7855\u6b63\u7ec4\u4ef6\u662f\u5426\u4f7f\u7528\u7f13\u5b58
+#\u7855\u6B63\u7EC4\u4EF6\u662F\u5426\u4F7F\u7528\u7F13\u5B58
 supcan.useCache=false
 
-#\u901a\u77e5\u95f4\u9694\u65f6\u95f4\u8bbe\u7f6e, \u5355\u4f4d\uff1a\u6beb\u79d2, 30s=30000ms, 60s=60000ms
+#\u901A\u77E5\u95F4\u9694\u65F6\u95F4\u8BBE\u7F6E, \u5355\u4F4D\uFF1A\u6BEB\u79D2, 30s=30000ms, 60s=60000ms
 oa.notify.remind.interval=60000
 
 #============================#
 #==== Framework settings ====#
 #============================#
 
-#\u4f1a\u8bdd\u8d85\u65f6\uff0c \u5355\u4f4d\uff1a\u6beb\u79d2\uff0c 20m=1200000ms, 30m=1800000ms, 60m=3600000ms
+#\u4F1A\u8BDD\u8D85\u65F6\uFF0C \u5355\u4F4D\uFF1A\u6BEB\u79D2\uFF0C 20m=1200000ms, 30m=1800000ms, 60m=3600000ms
 session.sessionTimeout=1800000
-#\u4f1a\u8bdd\u6e05\u7406\u95f4\u9694\u65f6\u95f4\uff0c \u5355\u4f4d\uff1a\u6beb\u79d2\uff0c2m=120000ms\u3002
+#\u4F1A\u8BDD\u6E05\u7406\u95F4\u9694\u65F6\u95F4\uFF0C \u5355\u4F4D\uFF1A\u6BEB\u79D2\uFF0C2m=120000ms\u3002
 session.sessionTimeoutClean=120000
 
-#\u7d22\u5f15\u9875\u8def\u5f84
+#\u7D22\u5F15\u9875\u8DEF\u5F84
 web.view.index=/a
 
-#\u89c6\u56fe\u6587\u4ef6\u5b58\u653e\u8def\u5f84
+#\u89C6\u56FE\u6587\u4EF6\u5B58\u653E\u8DEF\u5F84
 web.view.prefix=/webpage/
 web.view.suffix=.jsp
 
 #\u6587\u4EF6\u7BA1\u7406\u7CFB\u7EDF\u5141\u8BB8\u4E0A\u4F20\u7684\u6700\u5927\u6587\u4EF6
 web.maxUploadSize=1073741824
 
-#\u65e5\u5fd7\u62e6\u622a\u8bbe\u7f6e\uff0c\u6392\u9664\u7684URI\uff1b\u5305\u542b @RequestMapping\u6ce8\u89e3\u7684value\u3002\uff08\u5df2\u4f5c\u5e9f\uff09
+#\u65E5\u5FD7\u62E6\u622A\u8BBE\u7F6E\uFF0C\u6392\u9664\u7684URI\uFF1B\u5305\u542B @RequestMapping\u6CE8\u89E3\u7684value\u3002\uFF08\u5DF2\u4F5C\u5E9F\uFF09
 #web.logInterceptExcludeUri=/, /login, /sys/menu/treeData, /oa/oaNotify/self/count
 #web.logInterceptIncludeRequestMapping=save, delete, import, updateSort
 
-#\u9759\u6001\u6587\u4ef6\u540e\u7f00
+#\u9759\u6001\u6587\u4EF6\u540E\u7F00
 web.staticFile=.css,.js,.png,.jpg,.gif,.jpeg,.bmp,.ico,.swf,.psd,.htc,.htm,.html,.crx,.xpi,.exe,.ipa,.apk
 
-#\u5355\u70b9\u767b\u5f55CAS\u8bbe\u7f6e
+#\u5355\u70B9\u767B\u5F55CAS\u8BBE\u7F6E
 cas.server.url=e
 cas.project.url=http://127.0.0.1:8080/jeeplus
 
-#\u5de5\u4f5c\u6d41\u8bbe\u7f6e
+#\u5DE5\u4F5C\u6D41\u8BBE\u7F6E
 activiti.isSynActivitiIndetity=false
 activiti.export.diagram.path=c:/activiti_diagram
-#activiti font (windows font: \u5b8b\u4f53  linux font: simsun)
-activiti.diagram.activityFontName=\u5b8b\u4f53
-activiti.diagram.labelFontName=\u5b8b\u4f53
-#activiti\u5916\u90e8\u8868\u5355\u6839\u5730\u5740\u914d\u7f6e
+#activiti font (windows font: \u5B8B\u4F53  linux font: simsun)
+activiti.diagram.activityFontName=\u5B8B\u4F53
+activiti.diagram.labelFontName=\u5B8B\u4F53
+#activiti\u5916\u90E8\u8868\u5355\u6839\u5730\u5740\u914D\u7F6E
 activiti.form.server.url=
 
-#\u4e0a\u4f20\u6587\u4ef6\u7edd\u5bf9\u8def\u5f84, \u8def\u5f84\u4e2d\u4e0d\u5141\u8bb8\u5305\u542b\u201cuserfiles\u201d
+#\u4E0A\u4F20\u6587\u4EF6\u7EDD\u5BF9\u8DEF\u5F84, \u8DEF\u5F84\u4E2D\u4E0D\u5141\u8BB8\u5305\u542B\u201Cuserfiles\u201D
 #userfiles.basedir=D:/jeeplus
 
-#\u5de5\u7a0b\u8def\u5f84\uff0c\u5728\u4ee3\u7801\u751f\u6210\u65f6\u83b7\u53d6\u4e0d\u5230\u5de5\u7a0b\u8def\u5f84\u65f6\uff0c\u53ef\u518d\u6b64\u6307\u5b9a\u7edd\u5bf9\u8def\u5f84\u3002
+#\u5DE5\u7A0B\u8DEF\u5F84\uFF0C\u5728\u4EE3\u7801\u751F\u6210\u65F6\u83B7\u53D6\u4E0D\u5230\u5DE5\u7A0B\u8DEF\u5F84\u65F6\uFF0C\u53EF\u518D\u6B64\u6307\u5B9A\u7EDD\u5BF9\u8DEF\u5F84\u3002
 projectPath=D:\\jeeplus\\jeeplus-ani-menu-big\\jeeplus-maven
 #======================================#\u6587\u4EF6\u4E0A\u4F20\u9650\u5236#======================================#
 spring.http.multipart.max-file-size=100MB

+ 205 - 0
src/main/webapp/webpage/modules/sg/report/reportList.js

@@ -0,0 +1,205 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<script>
+$(document).ready(function() {
+	$('#reportTable').bootstrapTable({
+		 
+		  //请求方法
+               method: 'post',
+               //类型json
+               dataType: "json",
+               contentType: "application/x-www-form-urlencoded",
+               //显示检索按钮
+	           showSearch: true,
+               //显示刷新按钮
+               showRefresh: true,
+               //显示切换手机试图按钮
+               showToggle: true,
+               //显示 内容列下拉框
+    	       showColumns: true,
+    	       //显示到处按钮
+    	       showExport: true,
+    	       //显示切换分页按钮
+    	       showPaginationSwitch: true,
+    	       //最低显示2行
+    	       minimumCountColumns: 2,
+               //是否显示行间隔色
+               striped: true,
+               //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+               cache: false,    
+               //是否显示分页(*)  
+               pagination: false,
+                //排序方式 
+               sortOrder: "asc",  
+               //初始化加载第一页,默认第一页
+               // pageNumber:1,
+               //每页的记录行数(*)   
+               // pageSize: 10,
+               //可供选择的每页的行数(*)    
+               // pageList: [10, 25, 50, 100],
+               //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+               url: "${ctx}/sg/report/data",
+               //默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
+               //queryParamsType:'',   
+               ////查询参数,每次调用是会带上这个参数,可自定义                         
+               queryParams : function(params) {
+               	var searchParam = $("#searchForm").serializeJSON();
+               	searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
+               	searchParam.pageSize = params.limit === undefined? -1 : params.limit;
+               	searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+  params.order;
+                   return searchParam;
+               },
+               //分页方式:client客户端分页,server服务端分页(*)
+               sidePagination: "server",
+               contextMenuTrigger:"right",//pc端 按右键弹出菜单
+               contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
+               contextMenu: '#context-menu',
+               // onContextMenuItem: function(row, $el){
+               //     if($el.data("item") == "edit"){
+               //     		edit(row.id);
+               //     }else if($el.data("item") == "view"){
+               //         view(row.id);
+               //     } else if($el.data("item") == "delete"){
+               //          jp.confirm('确认要删除该学生课程记录记录吗?', function(){
+               //         	jp.loading();
+               //         	jp.get("${ctx}/test/manytomany/studentCourse/delete?id="+row.id, function(data){
+               //     	  		if(data.success){
+               //     	  			$('#studentCourseTable').bootstrapTable('refresh');
+               //     	  			jp.success(data.msg);
+               //     	  		}else{
+               //     	  			jp.error(data.msg);
+               //     	  		}
+               //     	  	})
+               //
+               //     	});
+               //
+               //     }
+               // },
+              
+               onClickRow: function(row, $el){
+               },
+               	onShowSearch: function () {
+			$("#search-collapse").slideToggle();
+		},
+               columns: [
+
+			{
+		        field: 'name',
+		        title: '施工单位'
+		    }, {
+					   field: 'finishCount',
+					   title: '完成数量'
+				   },{
+					   field: 'unfinishCount',
+					   title: '未完成数量'
+				   }
+		     ]
+		
+		});
+		
+		  
+	  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
+
+		 
+		  $('#studentCourseTable').bootstrapTable("toggleView");
+		}
+	  
+	  $('#studentCourseTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+                'check-all.bs.table uncheck-all.bs.table', function () {
+            $('#remove').prop('disabled', ! $('#studentCourseTable').bootstrapTable('getSelections').length);
+            $('#view,#edit').prop('disabled', $('#studentCourseTable').bootstrapTable('getSelections').length!=1);
+        });
+		  
+		// $("#btnImport").click(function(){
+		// 	jp.open({
+		// 	    type: 2,
+        //         area: [500, 200],
+        //         auto: true,
+		// 	    title:"导入数据",
+		// 	    content: "${ctx}/tag/importExcel" ,
+		// 	    btn: ['下载模板','确定', '关闭'],
+		// 		    btn1: function(index, layero){
+		// 			 jp.downloadFile('${ctx}/test/manytomany/studentCourse/import/template');
+		// 		  },
+		// 	    btn2: function(index, layero){
+		// 		        var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+		// 				iframeWin.contentWindow.importExcel('${ctx}/test/manytomany/studentCourse/import', function (data) {
+		// 					if(data.success){
+		// 						jp.success(data.msg);
+		// 						refresh();
+		// 					}else{
+		// 						jp.error(data.msg);
+		// 					}
+        //                     jp.close(index);
+        //                 });//调用保存事件
+        //             	return false;
+		// 		  },
+		//
+		// 		  btn3: function(index){
+		// 			  jp.close(index);
+	    // 	       }
+		// 	});
+		// });
+		    
+		
+	  // $("#export").click(function(){//导出Excel文件
+		// 	jp.downloadFile('${ctx}/test/manytomany/studentCourse/export');
+	  // });
+	  //
+		//
+	  // $("#search").click("click", function() {// 绑定查询按扭
+		//   $('#studentCourseTable').bootstrapTable('refresh');
+		// });
+	 
+	 // $("#reset").click("click", function() {// 绑定查询按扭
+		//   $("#searchForm  input").val("");
+		//   $("#searchForm  select").val("");
+		//   $("#searchForm  .select-item").html("");
+		//   $('#studentCourseTable').bootstrapTable('refresh');
+		// });
+		
+		
+	});
+		
+  function getIdSelections() {
+        return $.map($("#studentCourseTable").bootstrapTable('getSelections'), function (row) {
+            return row.id
+        });
+    }
+  
+  // function deleteAll(){
+  //
+	// 	jp.confirm('确认要删除该学生课程记录记录吗?', function(){
+	// 		jp.loading();
+	// 		jp.get("${ctx}/test/manytomany/studentCourse/deleteAll?ids=" + getIdSelections(), function(data){
+  //        	  		if(data.success){
+  //        	  			$('#studentCourseTable').bootstrapTable('refresh');
+  //        	  			jp.success(data.msg);
+  //        	  		}else{
+  //        	  			jp.error(data.msg);
+  //        	  		}
+  //        	  	})
+  //
+	// 	})
+  // }
+  // function refresh(){
+  // 	$('#studentCourseTable').bootstrapTable('refresh');
+  // }
+  // function add(){
+	// 	jp.go("${ctx}/test/manytomany/studentCourse/form/add");
+	// }
+  //
+  // function edit(id){
+	//   if(id == undefined){
+	// 	  id = getIdSelections();
+	//   }
+	//   jp.go("${ctx}/test/manytomany/studentCourse/form/edit?id=" + id);
+  // }
+  //
+  // function view(id) {
+  //     if(id == undefined){
+  //         id = getIdSelections();
+  //     }
+  //     jp.go("${ctx}/test/manytomany/studentCourse/form/view?id=" + id);
+  // }
+  
+</script>

+ 84 - 0
src/main/webapp/webpage/modules/sg/report/reportList.jsp

@@ -0,0 +1,84 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目报表</title>
+	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="reportList.js" %>
+</head>
+<body>
+	<div class="wrapper wrapper-content">
+	<div class="panel panel-primary">
+	<div class="panel-heading">
+		<h3 class="panel-title">项目报表</h3>
+	</div>
+	<div class="panel-body">
+	
+	<!-- 搜索 -->
+	<%--<div id="search-collapse" class="collapse">--%>
+		<%--<div class="accordion-inner">--%>
+			<%--<form:form id="searchForm" modelAttribute="studentCourse" class="form form-horizontal well clearfix">--%>
+			 <%--<div class="col-xs-12 col-sm-6 col-md-4">--%>
+				<%--<label class="label-item single-overflow pull-left" title="学生:">学生:</label>--%>
+				<%--<sys:gridselect url="${ctx}/test/manytomany/student/data" id="student" name="student.id" value="${studentCourse.student.id}" labelName="student.name" labelValue="${studentCourse.student.name}"--%>
+					<%--title="选择学生" cssClass="form-control required" fieldLabels="姓名" fieldKeys="name" searchLabels="姓名" searchKeys="name" ></sys:gridselect>--%>
+			<%--</div>--%>
+			 <%--<div class="col-xs-12 col-sm-6 col-md-4">--%>
+				<%--<label class="label-item single-overflow pull-left" title="课程:">课程:</label>--%>
+				<%--<sys:gridselect url="${ctx}/test/manytomany/course/data" id="course" name="course.id" value="${studentCourse.course.id}" labelName="course.name" labelValue="${studentCourse.course.name}"--%>
+					<%--title="选择课程" cssClass="form-control required" fieldLabels="课程名" fieldKeys="name" searchLabels="课程名" searchKeys="name" ></sys:gridselect>--%>
+			<%--</div>--%>
+		 <%--<div class="col-xs-12 col-sm-6 col-md-4">--%>
+			<%--<div style="margin-top:26px">--%>
+			  <%--<a  id="search" class="btn btn-primary btn-rounded  btn-bordered btn-sm"><i class="fa fa-search"></i> 查询</a>--%>
+			  <%--<a  id="reset" class="btn btn-primary btn-rounded  btn-bordered btn-sm" ><i class="fa fa-refresh"></i> 重置</a>--%>
+			 <%--</div>--%>
+	    <%--</div>	--%>
+	<%--</form:form>--%>
+	<%--</div>--%>
+	<%--</div>--%>
+	
+	<!-- 工具栏 -->
+	<%--<div id="toolbar">--%>
+			<%--<shiro:hasPermission name="test:manytomany:studentCourse:add">--%>
+				<%--<button id="add" class="btn btn-primary" onclick="add()">--%>
+					<%--<i class="glyphicon glyphicon-plus"></i> 新建--%>
+				<%--</button>--%>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="test:manytomany:studentCourse:edit">--%>
+			    <%--<button id="edit" class="btn btn-success" disabled onclick="edit()">--%>
+	            	<%--<i class="glyphicon glyphicon-edit"></i> 修改--%>
+	        	<%--</button>--%>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="test:manytomany:studentCourse:del">--%>
+				<%--<button id="remove" class="btn btn-danger" disabled onclick="deleteAll()">--%>
+	            	<%--<i class="glyphicon glyphicon-remove"></i> 删除--%>
+	        	<%--</button>--%>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="test:manytomany:studentCourse:import">--%>
+				<%--<button id="btnImport" class="btn btn-info"><i class="fa fa-folder-open-o"></i> 导入</button>--%>
+			<%--</shiro:hasPermission>--%>
+			<%--<shiro:hasPermission name="test:manytomany:studentCourse:export">--%>
+	        		<%--<button id="export" class="btn btn-warning">--%>
+					<%--<i class="fa fa-file-excel-o"></i> 导出--%>
+				<%--</button>--%>
+			 <%--</shiro:hasPermission>--%>
+	                 <%--<shiro:hasPermission name="test:manytomany:studentCourse:view">--%>
+				<%--<button id="view" class="btn btn-default" disabled onclick="view()">--%>
+					<%--<i class="fa fa-search-plus"></i> 查看--%>
+				<%--</button>--%>
+			<%--</shiro:hasPermission>--%>
+		    <%--</div>--%>
+		
+	<!-- 表格 -->
+	<table id="reportTable"   data-toolbar="#toolbar"></table>
+
+    <!-- context menu -->
+
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 55 - 47
src/main/webapp/webpage/modules/sys/login/sysHome.jsp

@@ -148,55 +148,63 @@
 						<div class="todo-body">
 							<div class="todo-list-wrap">
 								<ul class="todo-list">
-									<li class="">
-										<label class="checkbox1" for="option1">
-											<input id="option1" type="checkbox" class="">
-											<span></span>
-										</label>
-										<span class="done-false">9:00开晨会安排工作</span>
-									</li>
-									<li class="">
-										<label class="checkbox1" for="option3">
-											<input id="option3" type="checkbox" class="">
-											<span></span>
-										</label>
-										<span class="done-false">9:00~12:00客户需求分析</span>
-									</li>
-									<li class="">
-										<label class="checkbox1" for="option4">
-											<input id="option4" type="checkbox" class="">
-											<span></span>
-										</label>
-										<span class="done-false">12:00和客户电话会议</span>
-									</li>
-									<li class="">
-										<label class="checkbox1" for="option5">
-											<input id="option5" type="checkbox" class="">
-											<span></span>
-										</label>
-										<span class="done-false">2:00参加技术论坛</span>
-									</li>
-									<li class="">
-										<label class="checkbox1" for="option2">
-											<input id="option2" type="checkbox" class="">
-											<span></span>
-										</label>
-										<span class="done-false">5:00晚会总结进度</span>
-									</li>
+									<c:if test="${ not empty actlist}">
+										<c:forEach items="${actlist}" var="actlist" varStatus="index">
+										<li>
+										<%--<label class="checkbox1" for="option1">--%>
+											<%--<input id="option1" type="checkbox" class="">--%>
+											<%--<span></span>--%>
+										<%--</label>--%>
+											<%--<span>${actlist.taskId}</span>--%>
+										   <a href="${ctx}/act/task/form?taskId=${actlist.taskId}&taskName=${actlist.taskName}&taskDefKey=${actlist.taskDefKey}&procInsId=${actlist.procInsId}&procDefId=${actlist.procDefId}&status=${actlist.status}" style="color: white">${actlist.title}</a>
+									    </li>
+										</c:forEach>
+									</c:if>
+									<c:if test="${empty actlist}">
+										<span>暂无待办事项</span>
+									</c:if>
+									<%--<li class="">--%>
+										<%--<label class="checkbox1" for="option3">--%>
+											<%--<input id="option3" type="checkbox" class="">--%>
+											<%--<span></span>--%>
+										<%--</label>--%>
+										<%--<span class="done-false">9:00~12:00客户需求分析</span>--%>
+									<%--</li>--%>
+									<%--<li class="">--%>
+										<%--<label class="checkbox1" for="option4">--%>
+											<%--<input id="option4" type="checkbox" class="">--%>
+											<%--<span></span>--%>
+										<%--</label>--%>
+										<%--<span class="done-false">12:00和客户电话会议</span>--%>
+									<%--</li>--%>
+									<%--<li class="">--%>
+										<%--<label class="checkbox1" for="option5">--%>
+											<%--<input id="option5" type="checkbox" class="">--%>
+											<%--<span></span>--%>
+										<%--</label>--%>
+										<%--<span class="done-false">2:00参加技术论坛</span>--%>
+									<%--</li>--%>
+									<%--<li class="">--%>
+										<%--<label class="checkbox1" for="option2">--%>
+											<%--<input id="option2" type="checkbox" class="">--%>
+											<%--<span></span>--%>
+										<%--</label>--%>
+										<%--<span class="done-false">5:00晚会总结进度</span>--%>
+									<%--</li>--%>
 								</ul>
 							</div>
-							<form class="form-horizontal todo-from-bottom">
-								<div class="row">
-									<div class="col-sm-12">
-										<div class="input-group">
-											<input type="text" class="form-control" placeholder="">
-											<span class="input-group-btn">
-										<button class="btn btn-default" type="submit">增加</button>
-									</span>
-										</div>
-									</div>
-								</div>
-							</form>
+							<%--<form class="form-horizontal todo-from-bottom">--%>
+								<%--<div class="row">--%>
+									<%--<div class="col-sm-12">--%>
+										<%--<div class="input-group">--%>
+											<%--<input type="text" class="form-control" placeholder="">--%>
+											<%--<span class="input-group-btn">--%>
+										<%--<button class="btn btn-default" type="submit">增加</button>--%>
+									<%--</span>--%>
+										<%--</div>--%>
+									<%--</div>--%>
+								<%--</div>--%>
+							<%--</form>--%>
 						</div>
 					</div>
 				</div>

+ 11 - 6
src/main/webapp/webpage/modules/sys/login/sysIndex-jp.jsp

@@ -40,7 +40,7 @@
 				<span class="icon-bar"></span>
 			</button>
 
-			<a class="navbar-brand J_menuItem" href="${ctx}/home" data-index="0">JeePlus快速开发框架</a>
+			<a class="navbar-brand J_menuItem" href="${ctx}/home" data-index="0">zjgd</a>
 		</div>
 	</div>
 	<div class="navbar-container container-fluid">
@@ -101,11 +101,11 @@
 				<li class="dropdown">
 					<a href="#" class="dropdown-toggle" data-toggle="dropdown">
 						<i class="fa fa-bell-o"></i>
-						<span class="label label-info">${count }</span>
+						<span class="label label-info">${count}</span>
 					</a>
 					<ul class="dropdown-menu animated fadeIn">
 						<li class="messages-top text-center">
-							你有 ${count } 条新通知.
+							你有 ${count} 条新通知.
 						</li>
 						<c:forEach items="${page.list}" var="oaNotify">
 							<li class="dropdown-notifications">
@@ -117,6 +117,11 @@
 								</a>
 							</li>
 						</c:forEach>
+                        <li class=" text-center">
+                            <a class="J_menuItem" href="${ctx}/oa/oaNotify/self">
+                                <font color='gray'><i class="fa fa-bell"></i>查看所有通知</font>
+                            </a>
+                        </li>
 					</ul>
 				</li>
 
@@ -342,9 +347,9 @@
 		</div>
 	</div>
 
-	<div class="footer">
-		<div class="pull-left"><a href="http://www.jeeplus.org">http://www.jeeplus.org</a> &copy; 2015-2025</div>
-	</div>
+	<%--<div class="footer">--%>
+		<%--<div class="pull-left"><a href="http://www.jeeplus.org">http://www.jeeplus.org</a> &copy; 2015-2025</div>--%>
+	<%--</div>--%>
 
 </section>
 

+ 1 - 1
src/main/webapp/webpage/modules/sys/login/sysIndex.jsp

@@ -24,7 +24,7 @@
 				<span class="icon-bar"></span>
 			</button>
 
-			<a class="navbar-brand J_menuItem"  href="${ctx}/home">JeePlus </a>
+			<a class="navbar-brand J_menuItem"  href="${ctx}/home">zjgd</a>
 		</div>
 		<div class="collapse navbar-collapse">
 			<form class="navbar-form navbar-left" role="search">

+ 1 - 1
src/main/webapp/webpage/modules/sys/login/sysLogin.jsp

@@ -44,7 +44,7 @@
 		<div class="row">
 			<div class="col-md-4 col-lg-4 col-md-offset-4 col-lg-offset-4">
 				<img  class="img-circle" src="${ctxStatic}/common/images/flat-avatar.png" class="user-avatar" />
-				<h1>Jeeplus</h1>
+				<h1>镇江市供电公司信息系统</h1>
 				<sys:message content="${message}" showType="1"/>
 				<form id="loginForm" role="form" action="${ctx}/login" method="post">
 					<div class="form-content">

+ 1 - 1
src/main/webapp/webpage/modules/test/activiti/oALeaveAudit.jsp

@@ -101,7 +101,7 @@
 		</div>
 		<div class="panel-body">
 		<div class="form-group text-center">
-			<h3>${oALeave.act.taskName}</h3>
+			<%--<h3>${oALeave.act.taskName}</h3>--%>
 		</div>
 		<form:form id="inputForm" modelAttribute="oALeave" action="${ctx}/test/activiti/oALeave/save" method="post" class="form-horizontal">
 		<form:hidden path="id"/>

+ 1 - 1
src/main/webapp/webpage/modules/test/activiti/testAuditAudit.jsp

@@ -85,7 +85,7 @@
 		</div>
 		<div class="panel-body">
 		<div class="form-group text-center">
-			<h3>${testAudit.act.taskName}</h3>
+			<%--<h3>${testAudit.act.taskName}</h3>--%>
 		</div>
 		<table class="table table-bordered">
 		   <tbody>