فهرست منبع

Merge remote-tracking branch 'origin/master'

xs 5 سال پیش
والد
کامیت
83530777e0
22فایلهای تغییر یافته به همراه1206 افزوده شده و 63 حذف شده
  1. 1 0
      src/main/java/com/jeeplus/modules/act/service/ActProcessService.java
  2. 12 5
      src/main/java/com/jeeplus/modules/act/service/ActTaskService.java
  3. 6 0
      src/main/java/com/jeeplus/modules/act/web/ActProcessController.java
  4. 23 3
      src/main/java/com/jeeplus/modules/act/web/ActTaskController.java
  5. 255 15
      src/main/java/com/jeeplus/modules/sg/financial/settlement/service/DataMaintenanceService.java
  6. 26 0
      src/main/java/com/jeeplus/modules/sg/financial/settlement/util/ExcelWriter.java
  7. 21 3
      src/main/java/com/jeeplus/modules/sys/web/UserController.java
  8. 12 12
      src/main/resources/act/designs/oa/test_audit/test_audit.bpmn
  9. BIN
      src/main/resources/freemarker/excelmodel/maintainDataExport.xlsx
  10. BIN
      src/main/resources/freemarker/excelmodel/maintainDataImport.xlsx
  11. 4 0
      src/main/webapp/static/common/js/jeeplus.js
  12. 61 0
      src/main/webapp/static/plugin/bootstrapTable/bootstrap-table-resizable.js
  13. 415 0
      src/main/webapp/static/plugin/bootstrapTable/colResizable-1.6.js
  14. 1 1
      src/main/webapp/webpage/modules/bpm/task/apply/taskMyAppledList.js
  15. 10 6
      src/main/webapp/webpage/modules/bpm/task/process/taskProcessList.js
  16. 222 0
      src/main/webapp/webpage/modules/common/myUserSelect.jsp
  17. 8 1
      src/main/webapp/webpage/modules/sg/financial/settlement/dataMaintenanceList.js
  18. 3 1
      src/main/webapp/webpage/modules/sg/financial/settlement/dataMaintenanceList.jsp
  19. 6 6
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/constructionAudit.jsp
  20. 73 5
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/constructionForm.jsp
  21. 2 2
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/divideAudit.jsp
  22. 45 3
      src/main/webapp/webpage/modules/sg/managementcenter/activiti/divideForm.jsp

+ 1 - 0
src/main/java/com/jeeplus/modules/act/service/ActProcessService.java

@@ -100,6 +100,7 @@ public class ActProcessService extends BaseService {
 	      pMap.put("name", processDefinition.getName());
 	      pMap.put("version","V:"+processDefinition.getVersion());
 	      pMap.put("resourceName", processDefinition.getResourceName());
+	      pMap.put("description", processDefinition.getDescription());
 	      pMap.put("diagramResourceName", processDefinition.getDiagramResourceName());
 	      pMap.put("deploymentId", processDefinition.getDeploymentId());
 	      pMap.put("suspended", processDefinition.isSuspended());

+ 12 - 5
src/main/java/com/jeeplus/modules/act/service/ActTaskService.java

@@ -1137,6 +1137,7 @@ public class ActTaskService extends BaseService {
 	@Transactional(readOnly = false)
 	public void newAuditSave(Act act,String tuser,Construction construction) {
 
+//		String comment = act.getComment();
 		// 设置意见
 //		constructionService.save(construction);
 		if ("manager".equals(act.getFlag())) {
@@ -1146,7 +1147,7 @@ public class ActTaskService extends BaseService {
 		} else {
 			act.setComment(act.getComment());
 		}
-		/*		act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());*/
+		act.setComment(("yes".equals(act.getFlag())?"[同意] ":"[驳回] ")+act.getComment());
 		act.preUpdate();
 		// 对不同环节的业务逻辑进行操作
 		String taskDefKey = act.getTaskDefKey();
@@ -1158,13 +1159,19 @@ public class ActTaskService extends BaseService {
 			vars.put("manager", true);
 			vars.put("company", false);
 			vars.put("reject", false);
-			String loginName = UserUtils.getByLoginName(tuser).getLoginName();
-			vars.put("processer", loginName);
+            if (tuser !=null || tuser !="") {
+                String loginName = UserUtils.getByLoginName(tuser).getLoginName();
+                vars.put("processer", loginName);
+            }
+
 		} else if ("company".equals(flag)) {
 			vars.put("manager", false);
 			vars.put("company", true);
 			vars.put("reject", false);
-			vars.put("processer", UserUtils.getUser().getLoginName());
+            if (tuser !=null || tuser !="") {
+                String loginName = UserUtils.getByLoginName(tuser).getLoginName();
+                vars.put("processer", loginName);
+            }
 		} else {
 			vars.put("manager", false);
 			vars.put("company", false);
@@ -1172,7 +1179,7 @@ public class ActTaskService extends BaseService {
 		}
 		constructionService.newUpdate(construction);
 //		vars.put("processer", UserUtils.get(construction.getTuser().getId()).getLoginName());
-		/*vars.put("pass", "yes".equals(act.getFlag())? true : false);*/
+		vars.put("pass", "yes".equals(act.getFlag())? true : false);
 		complete(act.getTaskId(), act.getProcInsId(), act.getComment(), vars);
 	}
 

+ 6 - 0
src/main/java/com/jeeplus/modules/act/web/ActProcessController.java

@@ -6,6 +6,7 @@ package com.jeeplus.modules.act.web;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -236,6 +237,11 @@ public class ActProcessController extends BaseController {
 	@RequestMapping(value = "deleteProcIns")
 	public AjaxJson deleteProcIns(String procInsId, String reason) {
 		AjaxJson j = new AjaxJson();
+		try {
+			reason = URLDecoder.decode(reason,"UTF-8");
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
 		if (StringUtils.isBlank(reason)){
 			j.setSuccess(false);
 			j.setMsg("请填写作废原因");

+ 23 - 3
src/main/java/com/jeeplus/modules/act/web/ActTaskController.java

@@ -4,6 +4,8 @@
 package com.jeeplus.modules.act.web;
 
 import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -377,7 +379,13 @@ public class ActTaskController extends BaseController {
 	@RequestMapping(value = "audit2")
 	public AjaxJson auditTask2(Act act) {
 		AjaxJson j = new AjaxJson();
-		actTaskService.auditSave2(act);
+		try {
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.auditSave2(act);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
 		j.setMsg("审批成功");
 		return j;
 	}
@@ -390,7 +398,13 @@ public class ActTaskController extends BaseController {
 	@RequestMapping(value = "audit3")
 	public AjaxJson auditTask3(Act act, Disclose disclose) {
 		AjaxJson j = new AjaxJson();
-		actTaskService.auditSave3(act,disclose);
+		try {
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.auditSave3(act,disclose);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
 		j.setMsg("审批成功");
 		return j;
 	}
@@ -405,7 +419,13 @@ public class ActTaskController extends BaseController {
 	@RequestMapping(value = "newAudit")
 	public AjaxJson newAuditTask(Act act,String tuser,Construction construction) {
 		AjaxJson j = new AjaxJson();
-		actTaskService.newAuditSave(act,tuser,construction);
+		try {
+			String comment = URLDecoder.decode(act.getComment(), "UTF-8");
+			act.setComment(comment);
+			actTaskService.newAuditSave(act,tuser,construction);
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
 		j.setMsg("审批成功");
 		return j;
 	}

+ 255 - 15
src/main/java/com/jeeplus/modules/sg/financial/settlement/service/DataMaintenanceService.java

@@ -3,23 +3,25 @@
  */
 package com.jeeplus.modules.sg.financial.settlement.service;
 
+import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.time.DateUtil;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.sg.financial.settlement.entity.MaintainData;
 import com.jeeplus.modules.sg.financial.settlement.mapper.DataMaintenanceMapper;
 import com.jeeplus.modules.sg.financial.settlement.util.ExcelWriter;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.hssf.util.HSSFColor;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.OutputStream;
+import java.io.*;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 
 @Service
@@ -29,6 +31,8 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 	@Autowired
 	private DataMaintenanceMapper dataMaintenanceMapper;
 
+	public static Map<String, CellStyle> styles;
+
 	public MaintainData get(String id) {
 		return super.get(id);
 	}
@@ -87,16 +91,32 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 	}
 
 	public void export(MaintainData maintainData , HttpServletResponse response){
-		Workbook workbook = null;
+		InputStream inputStream = null;
+		XSSFWorkbook workbook = null;
 		try {
-			List<MaintainData> list = dataMaintenanceMapper.findList(maintainData);
-			workbook = ExcelWriter.exportData(list);
-			long time = System.currentTimeMillis();
-			String outFile = time + ".xlsx";
-
+			String path = (getSispPath() + "excelmodel/maintainDataExport.xlsx");
+			List<MaintainData> dataList = dataMaintenanceMapper.findList(maintainData);
+//			String path = "D:/IDEA workspace/sg_audit/target/classes/freemarker/excelmodel/maintainDataExport.xlsx";
+			File file = new File(path);
+			inputStream = new FileInputStream(file);// 将excel文件转为输入流
+			workbook = new XSSFWorkbook(inputStream);// 创建个workbook
+			styles = createStyles(workbook);  //创建样式
+			int rowNum = 3;
+			Sheet sheet = workbook.getSheetAt(0);
+			for (Iterator<MaintainData> it = dataList.iterator(); it.hasNext(); ) {
+				MaintainData data = it.next();
+				if (data == null) {
+					continue;
+				}
+				//输出行数据
+				Row row = sheet.createRow(rowNum++);
+				convertDataToRow(data, row);
+			}
+			String st = DateUtils.formatDate(new Date(),"yyyyMMddHHmmss");
+			String str = URLEncoder.encode("概预算基本信息"+st+".xlsx", "UTF8");
 			OutputStream outputStream = response.getOutputStream();
 			response.reset();
-			response.setHeader("Content-Disposition", "attachment;filename="+outFile);
+			response.setHeader("Content-Disposition", "attachment;filename="+str);
 			response.setContentType("application/vnd.ms-excel;charset=UTF-8");
 			workbook.write(outputStream);
 			outputStream.flush();
@@ -105,14 +125,21 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 			e.printStackTrace();
 		} finally {
 		}
+
+
         	}
 
 
 	public void exportHeard( HttpServletResponse response){
-		Workbook workbook = null;
+		InputStream inputStream = null;
+		XSSFWorkbook workbook = null;
 		try {
-			workbook = ExcelWriter.exportHeard();
-			String str = URLEncoder.encode("数据维护导入模板.xlsx", "UTF8");
+			String path = (getSispPath() + "excelmodel/maintainDataImport.xlsx");
+//			String path = "D:/IDEA workspace/sg_audit/target/classes/freemarker/excelmodel/maintainDataImport.xlsx";
+			File file = new File(path);
+			inputStream = new FileInputStream(file);// 将excel文件转为输入流
+			workbook = new XSSFWorkbook(inputStream);// 创建个workbook,
+			String str = URLEncoder.encode("概预算基本信息导入模板.xlsx", "UTF8");
 			OutputStream outputStream = response.getOutputStream();
 			response.reset();
 			response.setHeader("Content-Disposition", "attachment;filename="+str);
@@ -125,5 +152,218 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 		} finally {
 		}
 	}
+
+
+	public  String getSispPath() {
+		String sispPath = this.getClass().getResource("/").getPath()+ "freemarker/";
+		return sispPath;
+	}
+
+
+	private  void convertDataToRow(MaintainData maintainData, Row row){
+		int cellNum = 0;
+		Cell cell;
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getProjectId()) {
+			cell.setCellValue(maintainData.getProjectId());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getDesignUnits()) {
+			cell.setCellValue(maintainData.getDesignUnits());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getConstructionUnits()) {
+			cell.setCellValue(maintainData.getConstructionUnits());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getAddress()) {
+			cell.setCellValue(maintainData.getAddress());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getProperty()) {
+			cell.setCellValue(maintainData.getProperty());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getInvestment()) {
+			cell.setCellValue(maintainData.getInvestment());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getStartDate()) {
+			cell.setCellValue(DateUtils.formatDate(maintainData.getStartDate()));
+
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getEndDate()) {
+			cell.setCellValue(DateUtils.formatDate(maintainData.getEndDate()));
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getApprovalNumber()) {
+			cell.setCellValue(maintainData.getApprovalNumber());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getBuildingFee()) {
+			cell.setCellValue(maintainData.getBuildingFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getInstallFee()) {
+			cell.setCellValue(maintainData.getInstallFee());
+		} else {
+			cell.setCellValue("");
+		}
+
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getEquipmentFee()) {
+			cell.setCellValue(maintainData.getEquipmentFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getMaterialFee()) {
+			cell.setCellValue(maintainData.getMaterialFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getDesignFee()) {
+			cell.setCellValue(maintainData.getDesignFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getSupervisionFee()) {
+			cell.setCellValue(maintainData.getSupervisionFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getPreliminaryWorkFee()) {
+			cell.setCellValue(maintainData.getPreliminaryWorkFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getDamages()) {
+			cell.setCellValue(maintainData.getDamages());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getManagementFee()) {
+			cell.setCellValue(maintainData.getManagementFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		cell.setCellValue(maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
+				+maintainData.getDamages()+maintainData.getManagementFee());
+
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		cell.setCellValue(maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
+				+maintainData.getDamages()+maintainData.getManagementFee()+maintainData.getBuildingFee()+maintainData.getInstallFee()
+				+maintainData.getEquipmentFee()+maintainData.getMaterialFee());
+
+	}
+
+	private  Map<String, CellStyle> createStyles(Workbook wb) {
+		Map<String, CellStyle> styles = new HashMap<String, CellStyle>();
+
+		CellStyle style = wb.createCellStyle();
+		style.setAlignment(CellStyle.ALIGN_CENTER);
+		style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
+		Font titleFont = wb.createFont();
+		titleFont.setFontName("Arial");
+		titleFont.setFontHeightInPoints((short) 16);
+		titleFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
+		style.setFont(titleFont);
+		styles.put("title", style);
+
+		style = wb.createCellStyle();
+		style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
+		style.setBorderRight(CellStyle.BORDER_THIN);
+		style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		style.setBorderLeft(CellStyle.BORDER_THIN);
+		style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		style.setBorderTop(CellStyle.BORDER_THIN);
+		style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		style.setBorderBottom(CellStyle.BORDER_THIN);
+		style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		Font dataFont = wb.createFont();
+		dataFont.setFontName("Arial");
+		dataFont.setFontHeightInPoints((short) 10);
+		style.setFont(dataFont);
+		styles.put("data", style);
+
+		style = wb.createCellStyle();
+		style.cloneStyleFrom(styles.get("data"));
+		style.setAlignment(CellStyle.ALIGN_LEFT);
+		styles.put("data1", style);
+
+		style = wb.createCellStyle();
+		style.cloneStyleFrom(styles.get("data"));
+		style.setAlignment(CellStyle.ALIGN_CENTER);
+		styles.put("data2", style);
+
+		style = wb.createCellStyle();
+		style.cloneStyleFrom(styles.get("data"));
+		style.setAlignment(CellStyle.ALIGN_RIGHT);
+		styles.put("data3", style);
+
+		style = wb.createCellStyle();
+		style.cloneStyleFrom(styles.get("data"));
+//		style.setWrapText(true);
+		style.setAlignment(CellStyle.ALIGN_CENTER);
+		style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		style.setFillPattern(CellStyle.SOLID_FOREGROUND);
+		Font headerFont = wb.createFont();
+		headerFont.setFontName("Arial");
+		headerFont.setFontHeightInPoints((short) 10);
+		headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
+		headerFont.setColor(IndexedColors.BLACK.getIndex());
+		style.setFont(headerFont);
+		style.setFillForegroundColor(HSSFColor.WHITE.index);
+		styles.put("header", style);
+
+		return styles;
+	}
 	
 }

+ 26 - 0
src/main/java/com/jeeplus/modules/sg/financial/settlement/util/ExcelWriter.java

@@ -8,6 +8,7 @@ import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 
+import java.io.File;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -692,5 +693,30 @@ public class ExcelWriter {
         return sheet;
     }
 
+
+    public static Workbook export(List<MaintainData> dataList){
+        // 生成xlsx的Excel
+        Workbook workbook = new SXSSFWorkbook();
+        // 生成Sheet表,写入第一行的列头
+        Sheet sheet = buildDataSheet(workbook);
+        //构建每行的数据内容
+        int rowNum = 3;
+        for (Iterator<MaintainData> it = dataList.iterator(); it.hasNext(); ) {
+            MaintainData data = it.next();
+            if (data == null) {
+                continue;
+            }
+            //输出行数据
+            Row row = sheet.createRow(rowNum++);
+            convertDataToRow(data, row);
+        }
+        return workbook;
+    }
+
+    public  String getSispPath() {
+        String sispPath = this.getClass().getResource("/").getPath()+ "freemarker/";
+        return sispPath;
+    }
+
 }
 

+ 21 - 3
src/main/java/com/jeeplus/modules/sys/web/UserController.java

@@ -14,6 +14,7 @@ import javax.validation.ConstraintViolationException;
 
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.apache.shiro.session.Session;
 import org.aspectj.weaver.loadtime.Aj;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -79,14 +80,31 @@ public class UserController extends BaseController {
 	public String index(User user, Model model) {
 		return "modules/sys/user/userIndex";
 	}
-	
+
 	@RequiresPermissions("sys:user:index")
 	@RequestMapping(value = "userSelect")
-	public String userSelect(boolean isMultiSelect, Model model) {
-		model.addAttribute("isMultiSelect", isMultiSelect);
+	public String userSelect(Model model, HttpServletRequest request) {
 		return "modules/common/userSelect";
 	}
 
+
+    @RequiresPermissions("sys:user:index")
+    @RequestMapping(value = "myUserSelect")
+    public String myUserSelect(Model model, HttpServletRequest request) {
+        String office = (String)request.getParameter("office");
+        model.addAttribute("office", office);
+        return "modules/common/myUserSelect";
+    }
+
+    @RequiresPermissions("sys:user:index")
+    @ResponseBody
+    @RequestMapping(value = {"myList", ""})
+    public Map<String, Object> myList(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<User> page = systemService.findUser(new Page<User>(request, response), user);
+        return getBootstrapData(page);
+    }
+
+
 	@RequiresPermissions("sys:user:index")
 	@ResponseBody
 	@RequestMapping(value = {"list", ""})

+ 12 - 12
src/main/resources/act/designs/oa/test_audit/test_audit.bpmn

@@ -6,49 +6,49 @@
     <userTask id="modify" name="员工薪酬档级修改" activiti:assignee="${apply}"/>
     <userTask id="audit" name="薪酬主管�审" activiti:assignee="system"/>
     <exclusiveGateway id="sid-C28BB5F6-013D-4570-B432-61B380C1F46F"/>
-    <userTask id="audit2" name="集团人力资�部部长审核" activiti:assignee="system"/>
+    <userTask id="audit2" name="集团人力资�部部长审�" activiti:assignee="system"/>
     <exclusiveGateway id="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0"/>
     <sequenceFlow id="sid-EF2F51BB-1D99-4F0B-ACF2-B6C1300A7D2B" sourceRef="audit2" targetRef="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0"/>
-    <userTask id="audit3" name="集团人力资�部分管领导审核" activiti:assignee="system"/>
+    <userTask id="audit3" name="集团人力资�部分管领导审�" activiti:assignee="system"/>
     <exclusiveGateway id="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4"/>
     <sequenceFlow id="sid-3DBCD661-5720-4480-8156-748BE0275FEF" sourceRef="audit3" targetRef="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4"/>
-    <userTask id="audit4" name="集团总��审批" activiti:assignee="system"/>
+    <userTask id="audit4" name="集团总��审�" activiti:assignee="system"/>
     <exclusiveGateway id="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477"/>
     <userTask id="apply_end" name="薪酬档级兑现" activiti:assignee="system"/>
     <sequenceFlow id="sid-02DB2AD9-1332-4198-AC8D-22A35169D15C" sourceRef="audit4" targetRef="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477"/>
     <sequenceFlow id="sid-2AB7C01A-50EE-4AAC-8C8F-F6E1935B3DA7" sourceRef="audit" targetRef="sid-C28BB5F6-013D-4570-B432-61B380C1F46F"/>
     <sequenceFlow id="sid-36E50C8B-6C7C-4968-B02D-EBAA425BF4BE" sourceRef="start" targetRef="audit"/>
-    <sequenceFlow id="sid-7D723190-1432-411D-A4A4-774225E54CD9" name="是" sourceRef="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477" targetRef="apply_end">
+    <sequenceFlow id="sid-7D723190-1432-411D-A4A4-774225E54CD9" name="�" sourceRef="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477" targetRef="apply_end">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="sid-D44CAD43-0271-4920-A524-9B8533E52550" name="是" sourceRef="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4" targetRef="audit4">
+    <sequenceFlow id="sid-D44CAD43-0271-4920-A524-9B8533E52550" name="�" sourceRef="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4" targetRef="audit4">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="sid-53258502-43EE-4DE8-B1A4-DBD11922B8AF" name="�" sourceRef="sid-C28BB5F6-013D-4570-B432-61B380C1F46F" targetRef="modify">
+    <sequenceFlow id="sid-53258502-43EE-4DE8-B1A4-DBD11922B8AF" name="�" sourceRef="sid-C28BB5F6-013D-4570-B432-61B380C1F46F" targetRef="modify">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
     </sequenceFlow>
     <exclusiveGateway id="sid-5FED02D6-C388-48C6-870E-097DB2131EA0"/>
     <sequenceFlow id="sid-163DBC60-DBC9-438B-971A-67738FB7715A" sourceRef="modify" targetRef="sid-5FED02D6-C388-48C6-870E-097DB2131EA0"/>
-    <sequenceFlow id="sid-72258A41-203E-428C-B71D-CA3506252D73" name="是" sourceRef="sid-C28BB5F6-013D-4570-B432-61B380C1F46F" targetRef="audit2">
+    <sequenceFlow id="sid-72258A41-203E-428C-B71D-CA3506252D73" name="�" sourceRef="sid-C28BB5F6-013D-4570-B432-61B380C1F46F" targetRef="audit2">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="sid-8448EF4A-B62E-4899-ABC2-0E2DB2AE6838" name="�新申请" sourceRef="sid-5FED02D6-C388-48C6-870E-097DB2131EA0" targetRef="audit">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="sid-A7589084-4623-4FEA-A774-00A70DDC1D20" name="是" sourceRef="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0" targetRef="audit3">
+    <sequenceFlow id="sid-A7589084-4623-4FEA-A774-00A70DDC1D20" name="�" sourceRef="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0" targetRef="audit3">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="sid-FA618636-3708-4D0C-8514-29A4BB8BC926" name="�" sourceRef="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0" targetRef="modify">
+    <sequenceFlow id="sid-FA618636-3708-4D0C-8514-29A4BB8BC926" name="�" sourceRef="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0" targetRef="modify">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="sid-1525BFF4-3E9D-4D8A-BF80-1F63AFE16289" name="�" sourceRef="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4" targetRef="modify">
+    <sequenceFlow id="sid-1525BFF4-3E9D-4D8A-BF80-1F63AFE16289" name="�" sourceRef="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4" targetRef="modify">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
     </sequenceFlow>
-    <sequenceFlow id="sid-35CC8C6C-1067-4398-991C-CCF955115965" name="�" sourceRef="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477" targetRef="modify">
+    <sequenceFlow id="sid-35CC8C6C-1067-4398-991C-CCF955115965" name="�" sourceRef="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477" targetRef="modify">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
     </sequenceFlow>
     <sequenceFlow id="sid-BDB0AAB2-7E50-4D35-80EE-CE0BECDD9F57" sourceRef="apply_end" targetRef="end"/>
-    <sequenceFlow id="sid-44AFB9C1-4057-4C48-B1F2-1EC897A52CB7" name="销�" sourceRef="sid-5FED02D6-C388-48C6-870E-097DB2131EA0" targetRef="end">
+    <sequenceFlow id="sid-44AFB9C1-4057-4C48-B1F2-1EC897A52CB7" name="��" sourceRef="sid-5FED02D6-C388-48C6-870E-097DB2131EA0" targetRef="end">
       <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
     </sequenceFlow>
   </process>

BIN
src/main/resources/freemarker/excelmodel/maintainDataExport.xlsx


BIN
src/main/resources/freemarker/excelmodel/maintainDataImport.xlsx


+ 4 - 0
src/main/webapp/static/common/js/jeeplus.js

@@ -227,6 +227,10 @@
             });
         },
 
+        /**新用户框**/
+
+
+
         /**角色选择框**/
         openRoleSelectDialog:function(isMultiSelect, yesFuc){
             var url = ctx + "/sys/role/data";

+ 61 - 0
src/main/webapp/static/plugin/bootstrapTable/bootstrap-table-resizable.js

@@ -0,0 +1,61 @@
+
+const isInit = that => that.$el.data('resizableColumns') !== undefined
+
+const initResizable = that => {
+  if (that.options.resizable && !that.options.cardView && !isInit(that)) {
+    that.$el.resizableColumns()
+  }
+}
+
+const destroy = that => {
+  if (isInit(that)) {
+    that.$el.data('resizableColumns').destroy()
+  }
+}
+
+const reInitResizable = that => {
+  destroy(that)
+  initResizable(that)
+}
+
+$.extend($.fn.bootstrapTable.defaults, {
+  resizable: false
+})
+
+const BootstrapTable = $.fn.bootstrapTable.Constructor
+const _initBody = BootstrapTable.prototype.initBody
+const _toggleView = BootstrapTable.prototype.toggleView
+const _resetView = BootstrapTable.prototype.resetView
+
+BootstrapTable.prototype.initBody = function (...args) {
+  const that = this
+  _initBody.apply(this, Array.prototype.slice.apply(args))
+
+  that.$el
+    .off('column-switch.bs.table, page-change.bs.table')
+    .on('column-switch.bs.table, page-change.bs.table', () => {
+      reInitResizable(that)
+    })
+}
+
+BootstrapTable.prototype.toggleView = function (...args) {
+  _toggleView.apply(this, Array.prototype.slice.apply(args))
+
+  if (this.options.resizable && this.options.cardView) {
+    // Destroy the plugin
+    destroy(this)
+  }
+}
+
+BootstrapTable.prototype.resetView = function (...args) {
+  const that = this
+
+  _resetView.apply(this, Array.prototype.slice.apply(args))
+
+  if (this.options.resizable) {
+    // because in fitHeader function, we use setTimeout(func, 100);
+    setTimeout(() => {
+      initResizable(that)
+    }, 100)
+  }
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 415 - 0
src/main/webapp/static/plugin/bootstrapTable/colResizable-1.6.js


+ 1 - 1
src/main/webapp/webpage/modules/bpm/task/apply/taskMyAppledList.js

@@ -128,7 +128,7 @@ $(document).ready(function() {
                                // actTaskService.complete(testAudit.getAct().getTaskId(), testAudit.getAct().getProcInsId(), testAudit.getAct().getComment(), te
                                jp.confirm("确定要撤销申请吗?", function (data) {
                                    jp.loading();
-                                   jp.get("${ctx}/act/process/deleteProcIns?procInsId=" + row['procIns.processInstanceId'] + "&reason=" + encodeURIComponent("用户撤销"), function (result) {
+                                   jp.get("${ctx}/act/process/deleteProcIns?procInsId=" + row['procIns.processInstanceId'] + "&reason=" + encodeURI(encodeURI("用户撤销")), function (result) {
                                        if (result.success) {
                                            $('#actTable').bootstrapTable('refresh');
                                            jp.success(result.msg);

+ 10 - 6
src/main/webapp/webpage/modules/bpm/task/process/taskProcessList.js

@@ -66,7 +66,8 @@ $(document).ready(function() {
 		        }
 		       
 		    }
-			,{
+
+			,/*{
 		        field: 'key',
 		        title: '流程标识',
 		        sortable: true,
@@ -75,13 +76,16 @@ $(document).ready(function() {
 			    }
 		       
 		    }
-			,{
+			,*/{
 		        field: 'name',
 		        title: '流程名称',
 		        sortable: true
 		       
-		    }
-			,{
+		    },{
+			   field: 'description',
+			   title: '流程备注',
+			   sortable: true
+		   },{
 		        field: 'diagramResourceName',
 		        title: '流程图',
 			   formatter:function (value, row, index) {
@@ -89,13 +93,13 @@ $(document).ready(function() {
 			   }
 		       
 		    }
-			,{
+			,/*{
 		        field: 'version',
 		        title: '流程版本',
 		        sortable: true
 		       
 		    }
-			,{
+			,*/{
 		        field: 'deploymentTime',
 		        title: '更新时间',
 			   formatter:function (value, row, index) {

+ 222 - 0
src/main/webapp/webpage/modules/common/myUserSelect.jsp

@@ -0,0 +1,222 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>用户选择</title>
+	<meta name="decorator" content="ani"/>
+	<%@ include file="/webpage/include/bootstraptable.jsp"%>
+	<%@include file="/webpage/include/treeview.jsp" %>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			//bootstrap treeview初始化
+			$('#jstree').jstree({
+				'core' : {
+					"multiple" : false,
+					"animation" : 0,
+					"themes" : { "variant" : "large", "icons":true , "stripes":true},
+					'data' : {
+						"url" : "${ctx}/sys/office/treeData",
+						"dataType" : "json" // needed only if you do not supply JSON headers
+					}
+				},
+				"conditionalselect" : function (node, event) {
+				      return false;
+				 },
+				'plugins' : ['types', 'wholerow'],
+				"types":{ 
+					'default' : { 'icon' : 'fa fa-folder' },
+			        '1' : {'icon' : 'fa fa-home'},
+					'2' : {'icon' : 'fa fa-umbrella' },
+				    '3' : { 'icon' : 'fa fa-group'},
+					'4' : { 'icon' : 'fa fa-file-text-o' }
+				} 
+
+			}).bind("activate_node.jstree", function (obj, e) {
+			    // 处理代码
+			    // 获取当前节点
+			    var treeNode = e.node;
+			    var id = treeNode.id == '0' ? '' :treeNode.id;
+				if(treeNode.level == 0){//level=0 代表公司
+					$("#companyId").val(id);
+					$("#officeId").val("");
+				}else{
+					$("#companyId").val("");
+					$("#officeId").val(id);
+				}
+				
+				$('#table').bootstrapTable('refresh');
+			}).on('loaded.jstree', function() {
+				$("#jstree").jstree('open_all');
+			});
+			
+			
+			//初始化表格
+			  $('#table').bootstrapTable({
+
+                  //请求方法
+                  method: 'post',
+
+                  //类型json
+                  dataType: "json",
+                  contentType: "application/x-www-form-urlencoded",
+	                 //是否显示行间隔色
+	                striped: true,
+	                //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)     
+	                cache: false,    
+	                //是否显示分页(*)  
+	                pagination: true, 
+	                 //排序方式 
+	                sortOrder: "asc",    
+	                //初始化加载第一页,默认第一页
+	                pageNumber:1,   
+	                //每页的记录行数(*)   
+	                pageSize: 5,  
+	                //可供选择的每页的行数(*)    
+	                pageList: [5, 10,  'ALL'],
+	                //这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
+	                url: "${ctx}/sys/user/myList",
+	                //默认值为 '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",
+	                onClickRow: function(row, $el){
+	                },
+	                columns: [{
+	                	<c:if test="${isMultiSelect}">
+	                		checkbox: true
+	                	</c:if>
+	                	<c:if test="${!isMultiSelect}">
+	                		radio: true
+	                	</c:if>
+				    }, {
+				        field: 'loginName',
+				        title: '登录名',
+				        sortable: true
+				       
+				    }, {
+				        field: 'name',
+				        title: '姓名',
+				        sortable: true,
+				    }, {
+				        field: 'phone',
+				        title: '电话',
+				        sortable: true
+				    }, {
+				        field: 'mobile',
+				        title: '手机',
+				        sortable: true
+				    }, {
+				        field: 'company.name',
+				        title: '归属公司'
+				    }, {
+				        field: 'office.name',
+				        title: '归属部门'
+				    }]
+				
+				});
+			
+			  
+			  if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,默认关闭tab
+				  $('#table').bootstrapTable("toggleView");
+				}
+			  
+			  $('#table').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
+		                'check-all.bs.table uncheck-all.bs.table', function () {
+		            $('#remove').prop('disabled', ! $('#table').bootstrapTable('getSelections').length);
+		            $('#edit').prop('disabled', $('#table').bootstrapTable('getSelections').length!=1);
+		        });
+	
+			  
+				    
+			  $("#search").click("click", function() {// 绑定查询按扭
+				  $('#table').bootstrapTable('refresh');
+				});
+			  $("#reset").click("click", function() {// 绑定查询按扭
+				  $("#searchForm  input").val("");
+				  $("#searchForm  select").val("");
+				  zTreeObj.cancelSelectedNode();
+				  $('#table').bootstrapTable('refresh');
+				});
+			  
+			  
+		});
+		
+		  function getIdSelections() {
+		        return $.map($("#table").bootstrapTable('getSelections'), function (row) {
+		            return row.id
+		        });
+		    }
+		  
+		  function getNameSelections() {
+		        return $.map($("#table").bootstrapTable('getSelections'), function (row) {
+		            return row.name
+		        });
+		    }
+        function getLoginNameSelections() {
+            return $.map($("#table").bootstrapTable('getSelections'), function (row) {
+                return row.loginName
+            });
+        }
+		  function getSelections() {
+		        return $.map($("#table").bootstrapTable('getSelections'), function (row) {
+		            return row
+		        });
+		    }
+		  
+	</script>
+</head>
+<body class="bg-white">
+	
+	<div class="wrapper wrapper-content">
+	<div class="row">
+		<div class="col-sm-3 col-md-2" style="width: 30%" >
+			<div id="jstree"></div>
+		</div>
+		<div  class="col-sm-9 col-md-10 animated fadeInRight" style="width: 70%">
+			<!-- 搜索框-->
+		<div class="accordion-group">
+			<div id="collapseTwo" class="accordion-body">
+				<div class="accordion-inner">
+					<form id="searchForm" class="form form-horizontal well clearfix" >
+					    <input type="hidden" id="companyId" name="company.id"/>
+					     <input type="hidden" id="officeId" name="office.id" value="${office}"/>
+<%--					     <input type="text" id="o" name="office.id" value="${office}"/>--%>
+					    <div class="col-sm-4">
+					    	<label class="label-item single-overflow pull-left" title="登录名:">登录名:</label>
+					   		<input type="text" name="loginName" maxlength="100"  class=" form-control"/>
+					    </div>
+				    	<div class="col-sm-4">
+					    	<label class="label-item single-overflow pull-left" title="姓名:">姓名:</label>
+					   		<input type="text" name="name" maxlength="100"  class=" form-control"/>
+					    </div>
+					    <div class="col-sm-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>
+				</div>
+			</div>
+		</div><!-- 搜索框结束 -->
+		
+	    <!-- 表格 -->
+	    <table id="table"
+	           data-toolbar="#toolbar"
+	           data-minimum-count-columns="2"
+	           data-id-field="id">
+	    </table>
+	
+	</div>
+	</div>
+	</div>
+</body>
+</html>

+ 8 - 1
src/main/webapp/webpage/modules/sg/financial/settlement/dataMaintenanceList.js

@@ -271,7 +271,14 @@ $(document).ready(function() {
 		  $("#searchForm  .select-item").html("");
 		  $('#dataTable').bootstrapTable('refresh');
 		});
-		
+
+
+	$("#dataTable").colResizable({
+		liveDrag:true,
+		gripInnerHtml:"<div class='grip'></div>",
+		draggingClass:"dragging",
+		resizeMode:'overflow'
+	});
 		
 	});
 		

+ 3 - 1
src/main/webapp/webpage/modules/sg/financial/settlement/dataMaintenanceList.jsp

@@ -8,12 +8,14 @@
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="/webpage/include/treeview.jsp" %>
 	<%@include file="dataMaintenanceList.js" %>
+	<script src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table-resizable.js"></script>
+	<script src="${ctxStatic}/plugin/bootstrapTable/colResizable-1.6.js"></script>
 </head>
 <body>
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">数据维护</h3>
+		<h3 class="panel-title">概预算基本信息</h3>
 	</div>
 	<div class="panel-body">
 	

+ 6 - 6
src/main/webapp/webpage/modules/sg/managementcenter/activiti/constructionAudit.jsp

@@ -24,12 +24,12 @@
 				// var ii=document.getElementById("tuser").value;
 				var tuser = $("#tuserName").val();
 				console.log(tuser);
-				if (tuser=="") {
+/*				if (tuser=="") {
 					jp.error("请选择用户");
 					return;
-				}
+				}*/
 				var id = $("#id").val();
-				var powerLine=$("#powerLine").val();
+				var powerLine= $("#powerLine").val();
 				var blackoutArea=$("#blackoutArea").val();
 				var projectType=$("#projectType").val();
 				var powerFailure=$("#powerFailure").val();
@@ -59,7 +59,7 @@
 								"procInsId":"${construction.act.procInsId}",
 								"procDefId":"${construction.act.procDefId}",
 								"flag":"manager",
-								"comment":message,
+								"comment":window.encodeURI(message),
 								"tuser": tuser,
 								"id":id,
 								"powerLine":powerLine,
@@ -125,7 +125,7 @@
 								"procInsId":"${construction.act.procInsId}",
 								"procDefId":"${construction.act.procDefId}",
 								"flag":"company",
-								"comment":message,
+								"comment":window.encodeURI(message),
 								"id":id,
 								"powerLine":powerLine,
 								"blackoutArea":blackoutArea,
@@ -168,7 +168,7 @@
 								"procInsId":"${construction.act.procInsId}",
 								"procDefId":"${construction.act.procDefId}",
 								"flag":"reject",
-								"comment":message
+								"comment":window.encodeURI(message)
 							},
 							function (data) {
 								if(data.success){

+ 73 - 5
src/main/webapp/webpage/modules/sg/managementcenter/activiti/constructionForm.jsp

@@ -44,6 +44,57 @@
 					}
 				}
 			});
+
+			$("#${id}Button, #${id}Name").click(function(){
+				// 是否限制选择,如果限制,设置为disabled
+				if ($("#${id}Button").hasClass("disabled")){
+					return true;
+				}
+				// 正常打开
+
+/*				jp.openUserSelectDialog(${isMultiSelected? true:false},function(ids, names){
+					$("#${id}Id").val(ids.replace(/u_/ig,""));
+					$("#${id}Name").val(names);
+					$("#${id}Name").focus();
+				})*/
+					top.layer.open({
+						type: 2,
+						area: ['900px', '560px'],
+						title:"选择用户",
+						auto:true,
+						maxmin: true, //开启最大化最小化按钮
+						content: ctx+"/sys/user/myUserSelect?office=e223b1c8472843bbbbc94c9b72c29737",
+						btn: ['确定', '关闭'],
+						yes: function(index, layero){
+							var ids = layero.find("iframe")[0].contentWindow.getIdSelections();
+							var names = layero.find("iframe")[0].contentWindow.getNameSelections();
+							var loginNames = layero.find("iframe")[0].contentWindow.getLoginNameSelections();
+							if(ids.length ==0){
+								jp.warning("请选择至少一个用户!");
+								return;
+							}
+							// 执行保存
+							yesFuc(ids.join(","), names.join(","), loginNames.join(","));
+							top.layer.close(index);
+						},
+						cancel: function(index){
+							//取消默认为空,如需要请自行扩展。
+							top.layer.close(index);
+						}
+					});
+			});
+
+			$("#${id}DelButton").click(function(){
+				// 是否限制选择,如果限制,设置为disabled
+				if ($("#${id}Button").hasClass("disabled")){
+					return true;
+				}
+				// 清除
+				$("#${id}Id").val("");
+				$("#${id}Name").val("");
+				$("#${id}Name").focus();
+
+			});
 		});
 	</script>
 </head>
@@ -80,14 +131,26 @@
 								<td class="width-35">
 									<sys:userselect id="tuser" name="tuser.id" value="${construction.tuser.id}" labelName="tuser.name" labelValue="${construction.tuser.name}"
 													cssClass="form-control required"/>
+									<%--<input id="${id}Id" name="${name}" class="${cssClass} form-control" type="hidden" value="${value}"/>
+										<div class="input-group" style="width:100%">
+										<input id="${id}Name" name="${labelName}" ${allowInput?'':'readonly="readonly"'}  type="text"  value="${labelValue}" data-msg-required="${dataMsgRequired}"
+										class="${cssClass}" style="${cssStyle}"/>
+										<span class="input-group-btn">
+										<button type="button"  id="${id}Button" class="btn <c:if test="${fn:contains(cssClass, 'input-sm')}"> btn-sm </c:if><c:if test="${fn:contains(cssClass, 'input-lg')}"> btn-lg </c:if>  btn-primary ${disabled} ${hideBtn ? 'hide' : ''}"><i class="fa fa-search"></i>
+										</button>
+										<button type="button" id="${id}DelButton" class="close" data-dismiss="alert" style="position: absolute; top: 5px; right: 53px; z-index: 999; display: block;">×</button>
+									</span>
+
+									</div>
+									<label id="${id}Name-error" class="error" for="${id}Name" style="display:none"></label>--%>
 								</td>
 							</tr>
 							<tr>
-								<td class="width-15 active"><label class="pull-right">项目号:</label></td>
+								<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目号:</label></td>
 								<td class="width-35">
 									<input type='text'  name="projectId" class="form-control required"  value="${construction.projectId}"/>
 								</td>
-								<td class="width-15 active"><label class="pull-right">项目名称:</label></td>
+								<td class="width-15 active"><label class="pull-right"><font color="red">*</font>项目名称:</label></td>
 								<td class="width-35">
 									<input type='text'  name="projectName" class="form-control required"  value="${construction.projectName}"/>
 								</td>
@@ -95,11 +158,16 @@
 							<tr>
 								<td class="width-15 active"><label class="pull-right">接收图纸时间:</label></td>
 								<td class="width-35">
-									<input type='text'  name="acceptDate" class="form-control required"  value="<fmt:formatDate value="${construction.acceptDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+									<div class='input-group form_datetime' id='acceptDate'>
+										<input type='text'  name="acceptDate" class="form-control required"  value="<fmt:formatDate value="${construction.acceptDate}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+										<span class="input-group-addon">
+			                        <span class="glyphicon glyphicon-calendar"></span>
+			                   		 </span>
+									</div>
 								</td>
-								<td class="width-15 active"><label class="pull-right"><font color="red">*</font>备注说明:</label></td>
+								<td class="width-15 active"><label class="pull-right">备注说明:</label></td>
 								<td class="width-35">
-									<textarea  name="examineDate" style="height: 100px" class="form-control required">${construction.examineDate}</textarea>
+									<textarea  name="examineDate" style="height: 100px" class="form-control">${construction.examineDate}</textarea>
 								</td>
 							</tr>
 							</tbody>

+ 2 - 2
src/main/webapp/webpage/modules/sg/managementcenter/activiti/divideAudit.jsp

@@ -30,7 +30,7 @@
 								"procInsId":"${construction.act.procInsId}",
 								"procDefId":"${construction.act.procDefId}",
 								"flag":"yes",
-								"comment":message
+								"comment":window.encodeURI(message)
 
 							},
 							function (data) {
@@ -53,7 +53,7 @@
 								"procInsId":"${construction.act.procInsId}",
 								"procDefId":"${construction.act.procDefId}",
 								"flag":"no",
-								"comment":message
+								"comment":window.encodeURI(message)
 							},
 							function (data) {
 								if(data.success){

+ 45 - 3
src/main/webapp/webpage/modules/sg/managementcenter/activiti/divideForm.jsp

@@ -51,7 +51,7 @@
 								"procInsId":"${construction.act.procInsId}",
 								"procDefId":"${construction.act.procDefId}",
 								"flag":"yes",
-								"comment":message,
+								"comment":window.encodeURI(message),
 								"conId":conId,
 								"channel":channel,
 								"capacity":capacity,
@@ -86,6 +86,27 @@
 
 			$("#reject").click(function () {
 				jp.prompt("存在问题, 审批意见", function (message) {
+					var conId = $("#id").val();
+					var channel = $("#channel").val();
+					var capacity = $("#capacity").val();
+					var sceneSize = $("#sceneSize").val();
+					var capacitySize = $("#capacitySize").val();
+					var hiddenDanger = $("#hiddenDanger").val();
+					var influenceConstruction = $("#influenceConstruction").val();
+					var projectRepetition = $("#projectRepetition").val();
+					var implemented = $("#implemented").val();
+					var transformer = $("#transformer").val();
+					var lineName = $("#lineName").val();
+					var quantities = $("#quantities").val();
+					var rodNumber = $("#rodNumber").val();
+					var administrationType = $("#administrationType").val();
+					var politicalProblem = $("#politicalProblem").val();
+					var precondition = $("#precondition").val();
+					var placementMode = $("#placementMode").val();
+					var productionDate = $("#productionDate").val();
+					var IntegrateModule = $("#IntegrateModule").val();
+					var needReplace = $("#needReplace").val();
+					var overallTransformation = $("#overallTransformation").val();
 					jp.post("${ctx}/act/task/audit3",
 							{
 								"taskId":"${construction.act.taskId}",
@@ -93,8 +114,29 @@
 								"taskDefKey":"${construction.act.taskDefKey}",
 								"procInsId":"${construction.act.procInsId}",
 								"procDefId":"${construction.act.procDefId}",
-								"flag":"no",
-								"comment":message
+								"flag":"yes",
+								"comment":window.encodeURI(message),
+								"conId":conId,
+								"channel":channel,
+								"capacity":capacity,
+								"sceneSize":sceneSize,
+								"capacitySize":capacitySize,
+								"hiddenDanger":hiddenDanger,
+								"influenceConstruction":influenceConstruction,
+								"projectRepetition":projectRepetition,
+								"implemented":implemented,
+								"transformer":transformer,
+								"lineName":lineName,
+								"quantities":quantities,
+								"rodNumber":rodNumber,
+								"administrationType":administrationType,
+								"politicalProblem":politicalProblem,
+								"precondition":precondition,
+								"placementMode":placementMode,
+								"productionDate":productionDate,
+								"IntegrateModule":IntegrateModule,
+								"needReplace":needReplace,
+								"overallTransformation":overallTransformation
 							},
 							function (data) {
 								if(data.success){