123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- package com.zhcs.dt.controller.activiti.procdef;
- import java.io.PrintWriter;
- import java.net.URLDecoder;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.servlet.ModelAndView;
- import com.zhcs.dt.controller.activiti.AcBaseController;
- import com.zhcs.dt.entity.Page;
- import com.zhcs.dt.service.activiti.procdef.ProcdefManager;
- import com.zhcs.dt.service.activiti.ruprocdef.RuprocdefManager;
- import com.zhcs.dt.util.AppUtil;
- import com.zhcs.dt.util.Const;
- import com.zhcs.dt.util.FileDownload;
- import com.zhcs.dt.util.FileUpload;
- import com.zhcs.dt.util.FileZip;
- import com.zhcs.dt.util.ImageAnd64Binary;
- import com.zhcs.dt.util.Jurisdiction;
- import com.zhcs.dt.util.PageData;
- import com.zhcs.dt.util.PathUtil;
- import com.zhcs.dt.util.Tools;
- /**
- * 说明:流程管理
- * 创建人:FH Admin Q313596790
- * 创建时间:2018-01-06
- */
- @Controller
- @RequestMapping(value="/procdef")
- public class ProcdefController extends AcBaseController {
-
- String menuUrl = "procdef/list.do"; //菜单地址(权限用)
- @Resource(name="procdefService")
- private ProcdefManager procdefService;
- @Resource(name="ruprocdefService")
- private RuprocdefManager ruprocdefService;
-
- /**列表
- * @param page
- * @throws Exception
- */
- @RequestMapping(value="/list")
- public ModelAndView list(Page page) throws Exception{
- //if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String keywords = pd.getString("keywords"); //关键词检索条件
- if(null != keywords && !"".equals(keywords)){
- pd.put("keywords", keywords.trim());
- }
- String lastStart = pd.getString("lastStart"); //开始时间
- String lastEnd = pd.getString("lastEnd"); //结束时间
- if(lastStart != null && !"".equals(lastStart)){
- pd.put("lastStart", lastStart+" 00:00:00");
- }
- if(lastEnd != null && !"".equals(lastEnd)){
- pd.put("lastEnd", lastEnd+" 00:00:00");
- }
- page.setPd(pd);
- List<PageData> varList = procdefService.list(page); //列出Procdef列表
- mv.setViewName("activiti/procdef/procdef_list");
- mv.addObject("varList", varList);
- mv.addObject("pd", pd);
- mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
- return mv;
- }
-
- /**去预览XML页面
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/goViewXml")
- public ModelAndView goViewXml()throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String DEPLOYMENT_ID_ = pd.getString("DEPLOYMENT_ID_"); //部署ID
- createXmlAndPng(DEPLOYMENT_ID_); //生成XML和PNG
- String code = Tools.readTxtFileAll(Const.FILEACTIVITI+URLDecoder.decode(pd.getString("FILENAME"), "UTF-8"),"utf-8");
- pd.put("code", code);
- mv.setViewName("activiti/fhmodel/xml_view");
- mv.addObject("pd", pd);
- return mv;
- }
-
- /**去预览PNG页面
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/goViewPng")
- public ModelAndView goViewPng()throws Exception{
- ModelAndView mv = this.getModelAndView();
- PageData pd = new PageData();
- pd = this.getPageData();
- String DEPLOYMENT_ID_ = pd.getString("DEPLOYMENT_ID_"); //部署ID
- createXmlAndPng(DEPLOYMENT_ID_); //生成XML和PNG
- String FILENAME = URLDecoder.decode(pd.getString("FILENAME"), "UTF-8");
- pd.put("FILENAME", FILENAME);
- String imgSrcPath = PathUtil.getClasspath()+Const.FILEACTIVITI+FILENAME;
- pd.put("imgSrc", "data:image/jpeg;base64,"+ImageAnd64Binary.getImageStr(imgSrcPath)); //解决图片src中文乱码,把图片转成base64格式显示(这样就不用修改tomcat的配置了)
- mv.setViewName("activiti/procdef/png_view");
- mv.addObject("pd", pd);
- return mv;
- }
-
- /**打包下载xml和png
- * @param response
- * @throws Exception
- */
- @RequestMapping(value="/download")
- public void download(HttpServletResponse response)throws Exception{
- PageData pd = new PageData();
- pd = this.getPageData();
- String DEPLOYMENT_ID_ = pd.getString("DEPLOYMENT_ID_"); //部署ID
- createXmlAndPng(DEPLOYMENT_ID_); //生成XML和PNG
- /*生成的全部代码压缩成zip文件*/
- if(FileZip.zip(PathUtil.getClasspath()+"uploadFiles/activitiFile", PathUtil.getClasspath()+"uploadFiles/activitiFile.zip")){
- /*下载代码*/
- FileDownload.fileDownload(response, PathUtil.getClasspath()+"uploadFiles/activitiFile.zip", "activitiFile.zip");
- }
- }
-
- /**打开上传流程页面
- * @return
- * @throws Exception
- */
- @RequestMapping(value="/goUploadPro")
- public ModelAndView goUploadPro()throws Exception{
- ModelAndView mv = this.getModelAndView();
- mv.setViewName("activiti/procdef/procdef_upload");
- return mv;
- }
-
- /**导入流程
- * @param file
- * @return
- * @throws Exception
- */
- @RequestMapping(value="/uploadPro")
- public ModelAndView readExcel(
- @RequestParam(value="zip",required=false) MultipartFile file
- ){
- ModelAndView mv = this.getModelAndView();
- if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;}
- if (null != file && !file.isEmpty()) {
- String filePath = PathUtil.getClasspath() + Const.FILEACTIVITI; //文件上传路径
- String fileName = FileUpload.fileUp(file, filePath, "proFile"); //执行上传
- try {
- deploymentProcessDefinitionFromZip("FHPRO", filePath+fileName);
- } catch (Exception e) {
- mv.addObject("errer", "errer");
- mv.addObject("msgContent", "文件资源不符合流程标准( 或缺少 xml or png )");
- }
- }
- mv.setViewName("save_result");
- return mv;
- }
-
- /**激活or挂起流程实例
- * @return
- * @throws Exception
- */
- @RequestMapping(value="/onoffPro")
- @ResponseBody
- public Object onoffProcessDefinition()throws Exception{
- if(!Jurisdiction.buttonJurisdiction(menuUrl, "edit")){return null;} //校验权限
- PageData pd = new PageData();
- Map<String,Object> map = new HashMap<String,Object>();
- pd = this.getPageData();
- int STATUS = Integer.parseInt(pd.get("STATUS").toString());
- String ID_ = pd.getString("ID_");
- if(STATUS == 2){
- pd.put("STATUS", 1); //挂起前先把此流程的所有任务状态设置成激活状态
- ruprocdefService.onoffAllTask(pd);
- suspendProcessDefinitionById(ID_); //挂起流程实例
- }else{
- pd.put("STATUS", 2); //激活前先把此流程的所有任务状态设置成挂起状态
- ruprocdefService.onoffAllTask(pd);
- activateProcessDefinitionById(ID_); //激活流程实例
- }
- map.put("msg", "ok"); //返回结果
- return AppUtil.returnObject(pd, map);
- }
-
- /**删除
- * @param out
- * @throws Exception
- */
- @RequestMapping(value="/delete")
- public void delete(PrintWriter out) throws Exception{
- if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return;} //校验权限
- PageData pd = new PageData();
- pd = this.getPageData();
- String DEPLOYMENT_ID_ = pd.getString("DEPLOYMENT_ID_"); //部署ID
- deleteDeployment(DEPLOYMENT_ID_);
- out.write("success");
- out.close();
- }
-
- /**批量删除
- * @param
- * @throws Exception
- */
- @RequestMapping(value="/deleteAll")
- @ResponseBody
- public Object deleteAll() throws Exception{
- if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} //校验权限
- PageData pd = new PageData();
- Map<String,Object> map = new HashMap<String,Object>();
- pd = this.getPageData();
- List<PageData> pdList = new ArrayList<PageData>();
- String DATA_IDS = pd.getString("DATA_IDS");
- if(null != DATA_IDS && !"".equals(DATA_IDS)){
- String ArrayDATA_IDS[] = DATA_IDS.split(",");
- for(int i=0;i<ArrayDATA_IDS.length;i++){
- deleteDeployment(ArrayDATA_IDS[i]);
- }
- pd.put("msg", "ok");
- }else{
- pd.put("msg", "no");
- }
- pdList.add(pd);
- map.put("list", pdList);
- return AppUtil.returnObject(pd, map);
- }
-
- }
|