Bläddra i källkod

地区负责人申请调整

sangwenwei 1 år sedan
förälder
incheckning
436f012ea0

+ 56 - 2
src/main/java/com/jeeplus/modules/signatureManagement/electronicSignature/controller/DistrictDirectorApplicationController.java

@@ -23,6 +23,8 @@ import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -77,6 +79,10 @@ public class DistrictDirectorApplicationController extends BaseController {
 
     @RequestMapping(value = {"list", ""})
     public String list(DistrictDirectorApplication directorApplication, HttpServletRequest request, HttpServletResponse response, Model model) {
+
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
         Page<DistrictDirectorApplication> page = directorApplicationService.findPage(new Page<DistrictDirectorApplication>(request, response), directorApplication);
         model.addAttribute("page", page);
         return "modules/signatureManagement/electronicSignature/districtDirectorApplicationList";
@@ -190,7 +196,7 @@ public class DistrictDirectorApplicationController extends BaseController {
             logger.error("Exception e:"+e);
         }
         addMessage(attributes, "申请成功");
-        return "redirect:"+Global.getAdminPath()+"/electronicSignature/electronicSignature/?repage";
+        return "redirect:"+Global.getAdminPath()+"/districtDirectorApplication/districtDirectorApplication/?repage";
 
     }
 
@@ -223,7 +229,7 @@ public class DistrictDirectorApplicationController extends BaseController {
             directorApplicationService.save(directorApplication);//保存
         }
         addMessage(redirectAttributes, "保存成功");
-        return "redirect:"+Global.getAdminPath()+"/electronicSignature/electronicSignature/?repage";
+        return "redirect:"+Global.getAdminPath()+"/districtDirectorApplication/districtDirectorApplication/?repage";
     }
 
 
@@ -334,6 +340,54 @@ public class DistrictDirectorApplicationController extends BaseController {
         }
     }
 
+    /**
+     * 撤回操作
+     * @param request
+     * @param redirectAttributes
+     * @return
+     * @throws Exception
+     */
+    @RequestMapping(value = "revoke")
+    public String revoke(HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception {
+        HashMap<String, String> requestMap = findRequestMap(request);
+        String id = requestMap.get("id");
+        try {
+            DistrictDirectorApplication directorApplication = directorApplicationService.get(id);
+            if("3".equals(directorApplication.getStatus()) || "4".equals(directorApplication.getStatus())){
+                addMessage(redirectAttributes, "地区申请申请已撤回、驳回,请勿重复操作");
+                return "redirect:"+Global.getAdminPath()+"/dailyOfficeWork/dailyOfficeWorkSignature/?repage";
+            }else if("5".equals(directorApplication.getStatus())){
+                addMessage(redirectAttributes, "地区申请已审批通过,无法撤回");
+                return "redirect:"+Global.getAdminPath()+"/dailyOfficeWork/dailyOfficeWorkSignature/?repage";
+            }
+            directorApplicationService.cancelInvalidate(directorApplication);
+            addMessage(redirectAttributes, "撤回该地区申请成功");
+        }catch (Exception e){
+            logger.info(e.getMessage());
+            addMessage(redirectAttributes, "撤回该地区申请失败");
+        }
+        return "redirect:" + Global.getAdminPath() + "/districtDirectorApplication/districtDirectorApplication/?repage";
+    }
+
+
+    @RequestMapping(value = "modify")
+    public String modify(DistrictDirectorApplication directorApplication, Model model) {
+        if (directorApplication!=null&&StringUtils.isNotBlank(directorApplication.getId())) {
+            directorApplication = directorApplicationService.get(directorApplication.getId());
+        }else {
+            directorApplication.setCreateBy(UserUtils.getUser());
+            directorApplication.setOffice(UserUtils.getSelectOffice());
+            directorApplication.setCreateDate(new Date());
+        }
+
+        if(StringUtils.isNotBlank(directorApplication.getProcessInstanceId())){
+            directorApplication.setAct(actTaskService.getByAct(directorApplication.getProcessInstanceId()));
+        }
+
+        model.addAttribute("directorApplication", directorApplication);
+        return "modules/signatureManagement/electronicSignature/directorApplicationModify";
+    }
+
 
 
 

+ 270 - 83
src/main/java/com/jeeplus/modules/signatureManagement/electronicSignature/service/DistrictDirectorApplicationService.java

@@ -28,6 +28,7 @@ import com.jeeplus.modules.workactivitymenu.service.WorkActivityMenuService;
 import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import com.jeeplus.modules.workprojectnotify.util.UtilNotify;
+import org.activiti.engine.ActivitiObjectNotFoundException;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -95,7 +96,6 @@ public class DistrictDirectorApplicationService extends CrudService<DistrictDire
             dataScopeSql = dataScopeFilter(directorApplication.getCurrentUser(), "o", "u", "s", MenuStatusEnum.ELECTRONIC_SIGNATURE.getValue());
             directorApplication.getSqlMap().put("dsf", dataScopeSql);
             directorApplication.getSqlMap().put("delFlag", "AND a.del_flag = 0");
-            directorApplication.setCreateBy(UserUtils.getUser());
         }
         if(null!= directorApplication.getOffice() && org.apache.commons.lang3.StringUtils.isNotBlank(directorApplication.getOffice().getId())){
             //查询该选择节点下所有的部门Id
@@ -392,64 +392,65 @@ public class DistrictDirectorApplicationService extends CrudService<DistrictDire
 
         WorkProjectNotify nowWorkProjectNotify = workProjectNotifyService.processingInfo(directorApplication.getProcessInstanceId());
 
-        if("yes".equals(directorApplication.getAct().getFlag())){
-            // 设置意见
-            directorApplication.getAct().setComment(("yes".equals(directorApplication.getAct().getFlag()) ? "[同意] " : "[驳回] ") + directorApplication.getAct().getComment());
-            directorApplication.preUpdate();
-
-            // 提交流程任务
-            vars.put(exp, "yes".equals(directorApplication.getAct().getFlag()) ? true : false);
-            vars.put("passs", true);
-            workActivityProcessService.updateProcess(workActivityProcess,workActivityMenu,key,taskCount,directorApplication.getProcessInstanceId(),taskDefKey,"modifyApply",directorApplication.getAct().getFlag(),comment, activities);
-            // 提交流程任务
-            actTaskService.complete(directorApplication.getAct().getTaskId(), directorApplication.getAct().getProcInsId(), directorApplication.getAct().getComment(), vars);
-            state = actTaskService.isProcessEnd(directorApplication.getAct().getProcInsId());
-        }else{
-            //将流程图中尚未走到的task的流程追踪信息逻辑删除,添加一条"撤销"流程追踪信息
-            WorkActivityProcess process = new WorkActivityProcess();
-            process.setProcessInstanceId(directorApplication.getProcessInstanceId());
-            process.setIsApproval("0");
-            WorkActivityProcess workActivityProcess1 = new WorkActivityProcess();
-            workActivityProcess1.setProcessInstanceId(directorApplication.getProcessInstanceId());
-            List<WorkActivityProcess> processList = workActivityProcessService.findList(workActivityProcess1);
-            WorkProjectNotify notify = new WorkProjectNotify();
-            notify.setNotifyId(directorApplication.getId());
-            List<User> userList = workProjectNotifyService.readByNotifyId(notify);
-            if (userList!=null && userList.size()!=0) {
-                for (User u : userList) {
-                    User user = UserUtils.get(u.getId());
-                    UserUtils.pushIm(u.getId(),"地区负责申请人:"+ user.getName()+" 请求被驳回!");
-
-                }
-            }
-            if(processList!=null && processList.size()>0){
-                for (int i =0;i<processList.size();i++) {
-                    WorkActivityProcess p = processList.get(i);
-                    if(StringUtils.isNotBlank(p.getIsApproval()) && "0".equals(p.getIsApproval())){
-                        p.setDelFlag("1");
-                        p.setIsApproval("-1");
-                        workActivityProcessDao.updateDelFlagAndIsApproval(p);
-                    }
-                }
-                WorkActivityProcess pro = new WorkActivityProcess();
-                pro.setId("");
-                pro.preInsert();
-                pro.setDelFlag("0");
-                pro.setRemarks("[驳回操作]");
-                pro.setProcessKey(processList.get(0).getProcessKey());
-                pro.setIsApproval("1");
-                pro.setProcessInstanceId(processList.get(0).getProcessInstanceId());
-                pro.setCount(0);
-                workActivityProcessDao.insert(pro);
-                state = true;
-            }
-            try {
-                //结束该流程,设为"撤销"状态
-                actTaskService.endProcessInstance(directorApplication.getProcessInstanceId(),"地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"驳回操作");
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
+        // 设置意见
+        directorApplication.getAct().setComment(("yes".equals(directorApplication.getAct().getFlag()) ? "[同意] " : "[驳回] ") + directorApplication.getAct().getComment());
+        directorApplication.preUpdate();
+
+        // 提交流程任务
+        vars.put(exp, "yes".equals(directorApplication.getAct().getFlag()) ? true : false);
+        vars.put("passs", true);
+        workActivityProcessService.updateProcess(workActivityProcess,workActivityMenu,key,taskCount,directorApplication.getProcessInstanceId(),taskDefKey,"modifyApply",directorApplication.getAct().getFlag(),comment, activities);
+        // 提交流程任务
+        actTaskService.complete(directorApplication.getAct().getTaskId(), directorApplication.getAct().getProcInsId(), directorApplication.getAct().getComment(), vars);
+        state = actTaskService.isProcessEnd(directorApplication.getAct().getProcInsId());
+//        if("yes".equals(directorApplication.getAct().getFlag())){
+//
+//        }else{
+//            //将流程图中尚未走到的task的流程追踪信息逻辑删除,添加一条"撤销"流程追踪信息
+//            WorkActivityProcess process = new WorkActivityProcess();
+//            process.setProcessInstanceId(directorApplication.getProcessInstanceId());
+//            process.setIsApproval("0");
+//            WorkActivityProcess workActivityProcess1 = new WorkActivityProcess();
+//            workActivityProcess1.setProcessInstanceId(directorApplication.getProcessInstanceId());
+//            List<WorkActivityProcess> processList = workActivityProcessService.findList(workActivityProcess1);
+//            WorkProjectNotify notify = new WorkProjectNotify();
+//            notify.setNotifyId(directorApplication.getId());
+//            List<User> userList = workProjectNotifyService.readByNotifyId(notify);
+//            if (userList!=null && userList.size()!=0) {
+//                for (User u : userList) {
+//                    User user = UserUtils.get(u.getId());
+//                    UserUtils.pushIm(u.getId(),"地区负责申请人:"+ user.getName()+" 请求被驳回!");
+//
+//                }
+//            }
+//            if(processList!=null && processList.size()>0){
+//                for (int i =0;i<processList.size();i++) {
+//                    WorkActivityProcess p = processList.get(i);
+//                    if(StringUtils.isNotBlank(p.getIsApproval()) && "0".equals(p.getIsApproval())){
+//                        p.setDelFlag("1");
+//                        p.setIsApproval("-1");
+//                        workActivityProcessDao.updateDelFlagAndIsApproval(p);
+//                    }
+//                }
+//                WorkActivityProcess pro = new WorkActivityProcess();
+//                pro.setId("");
+//                pro.preInsert();
+//                pro.setDelFlag("0");
+//                pro.setRemarks("[驳回操作]");
+//                pro.setProcessKey(processList.get(0).getProcessKey());
+//                pro.setIsApproval("1");
+//                pro.setProcessInstanceId(processList.get(0).getProcessInstanceId());
+//                pro.setCount(0);
+//                workActivityProcessDao.insert(pro);
+//                state = true;
+//            }
+//            try {
+//                //结束该流程,设为"撤销"状态
+//                actTaskService.endProcessInstance(directorApplication.getProcessInstanceId(),"地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"驳回操作");
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//        }
 
         List<User> users = new ArrayList<>();
         List<User> userList = new ArrayList<>();
@@ -497,31 +498,154 @@ public class DistrictDirectorApplicationService extends CrudService<DistrictDire
             }
             workActivityProcessService.deleteProcessIdAuditUsers(directorApplication.getProcessInstanceId());
         }else{
-            if(StringUtils.isNotBlank(directorApplication.getAct().getComment())){
-                str =  "地区负责人申请被驳回,驳回意见:" + directorApplication.getAct().getComment();
-                title = "地区申请人申请被驳回,驳回意见:" + directorApplication.getAct().getComment();
-            }else{
-                str =  "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"被驳回";
-                title = "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"被驳回";
-            }
-            users.add(directorApplication.getCreateBy());
+//            if(StringUtils.isNotBlank(directorApplication.getAct().getComment())){
+//                str =  "地区负责人申请被驳回,驳回意见:" + directorApplication.getAct().getComment();
+//                title = "地区申请人申请被驳回,驳回意见:" + directorApplication.getAct().getComment();
+//            }else{
+//                str =  "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"被驳回";
+//                title = "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"被驳回";
+//            }
+//            users.add(directorApplication.getCreateBy());
+//
+//            directorApplication.setStatus("4");
+//            WorkProjectNotify notify = new WorkProjectNotify();
+//            notify.setNotifyId(directorApplication.getId());
+//            userList = workProjectNotifyService.readByNotifyId(notify);
+//            workProjectNotifyService
+//                    .save(UtilNotify
+//                            .saveNewNotify(directorApplication.getId(),
+//                                    directorApplication.getCreateBy(),
+//                                    directorApplication.getCompanyId(),
+//                                    title,
+//                                    str,
+//                                    "261",
+//                                    "0",
+//                                    "待通知",
+//                                    notifyRole,
+//                                    directorApplication.getProcessInstanceId(),new Date()));
+            if (StringUtils.isNotBlank(workActivityMenu.getProcessType()) && !workActivityMenu.getProcessType().equals("districtDirectorApplication")) {
+                WorkProjectNotify notify = new WorkProjectNotify();
+                notify.setNotifyId(directorApplication.getId());
+                userList = workProjectNotifyService.readByNotifyId(notify);
+                WorkProjectNotify workProjectNotify = UtilNotify
+                        .saveNewNotify(directorApplication.getId(),
+                                new User(),
+                                directorApplication.getCompanyId(),
+                                title,
+                                str,
+                                "261",
+                                "0",
+                                "待审批",
+                                notifyRole,
+                                directorApplication.getProcessInstanceId(),new Date());
+                List<WorkProjectNotify> workProjectNotifys = activityService.getByFlagAndTaskDefKeyList(
+                        activities,
+                        workProjectNotify,
+                        taskDefKey,
+                        directorApplication.getAct().getFlag(),
+                        taskCount,
+                        directorApplication.getCreateBy(),
+                        directorApplication.getOfficeId(),
+                        "5");
+                for (WorkProjectNotify workProjectNotify1:workProjectNotifys){
+                    users.add(workProjectNotify1.getUser());
+                    workProjectNotify1.setId("");
+                    workProjectNotify1.setIsNewRecord(false);
+                    workProjectNotifyService
+                            .save(workProjectNotify1);
+                    if (!"modifyApply".equals(taskDefKey)){
+                        Map<String,Object> extras = new HashMap<>();
+                        if ("dqsqgly".equals(taskDefKey) ){
+                            extras.put("type","7001");
+                        }else {
+                            extras.put("type","7002");
+                        }
+                        extras.put("id",workProjectNotify.getId());
+                        extras.put("procDefKey","261");
+                        UserUtils.pushInfoToApp(title,str,extras,workProjectNotify1.getUser().getId());
 
-            directorApplication.setStatus("4");
-            WorkProjectNotify notify = new WorkProjectNotify();
-            notify.setNotifyId(directorApplication.getId());
-            userList = workProjectNotifyService.readByNotifyId(notify);
-            workProjectNotifyService
-                    .save(UtilNotify
-                            .saveNewNotify(directorApplication.getId(),
-                                    directorApplication.getCreateBy(),
-                                    directorApplication.getCompanyId(),
-                                    title,
-                                    str,
-                                    "261",
-                                    "0",
-                                    "待通知",
-                                    notifyRole,
-                                    directorApplication.getProcessInstanceId(),new Date()));
+                    }
+                }
+
+            } else {
+                if (!"yes".equals(directorApplication.getAct().getFlag())) {//驳回待办提醒
+                    title = "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"申请被驳回";
+                    str = "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"申请被驳回,请重新申请";
+                    WorkProjectNotify notify = new WorkProjectNotify();
+                    notify.setNotifyId(directorApplication.getId());
+                    userList = workProjectNotifyService.readByNotifyId(notify);
+                    workProjectNotifyService
+                            .save(UtilNotify
+                                    .saveNewNotify(directorApplication.getId(),
+                                            directorApplication.getCreateBy(),
+                                            directorApplication.getCompanyId(),
+                                            title,
+                                            str,
+                                            "261",
+                                            "0",
+                                            "重新申请",
+                                            notifyRole,
+                                            directorApplication.getProcessInstanceId(),new Date()));
+                    users.add( directorApplication.getCreateBy());
+                } else {
+                    if (StringUtils.isNotBlank(enname)) {//驳回重新申请待办
+                        title = "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"重新申请,待审批";
+                        str = "地区负责人申请-"+directorApplication.getCreateBy().getName()+"-负责区域:"+directorApplication.getTerritory()+"重新申请,待审批";
+                        WorkProjectNotify notify = new WorkProjectNotify();
+                        notify.setNotifyId(directorApplication.getId());
+                        userList = workProjectNotifyService.readByNotifyId(notify);
+                        WorkProjectNotify workProjectNotify = UtilNotify
+                                .saveNewNotify(directorApplication.getId(),
+                                        new User(),
+                                        directorApplication.getCompanyId(),
+                                        title,
+                                        str,
+                                        "261",
+                                        "0",
+                                        "待审批",
+                                        notifyRole,
+                                        directorApplication.getProcessInstanceId(),new Date());
+                        for (User user1:auditUsers){
+                            users.add(user1);
+                            workProjectNotify.setUser(user1);
+                            workProjectNotify.setId("");
+                            workProjectNotify.setIsNewRecord(false);
+                            workProjectNotifyService
+                                    .save(workProjectNotify);
+                            if (!"modifyApply".equals(taskDefKey)){
+                                Map<String,Object> extras = new HashMap<>();
+                                if ("dqsqgly".equals(taskDefKey)){
+                                    extras.put("type","7001");
+                                }else {
+                                    extras.put("type","7002");
+                                }
+                                extras.put("id",workProjectNotify.getId());
+                                extras.put("procDefKey","261");
+                                UserUtils.pushInfoToApp(title,str,extras,user1.getId());
+
+                            }
+                        }
+                    }else {
+                        WorkProjectNotify notify = new WorkProjectNotify();
+                        notify.setNotifyId(directorApplication.getId());
+                        userList = workProjectNotifyService.readByNotifyId(notify);
+                        users.addAll(userList);
+                        users.add(directorApplication.getCreateBy());
+                        workProjectNotifyService
+                                .save(UtilNotify
+                                        .saveNewNotify(directorApplication.getId(),
+                                                directorApplication.getCreateBy(),
+                                                directorApplication.getCompanyId(),
+                                                title,
+                                                str,
+                                                "261",
+                                                "0",
+                                                "重新申请",
+                                                notifyRole,
+                                                directorApplication.getProcessInstanceId(),new Date()));
+                    }
+                }
+            }
         }
         //对数据进行处理
         if(null != nowWorkProjectNotify){
@@ -557,4 +681,67 @@ public class DistrictDirectorApplicationService extends CrudService<DistrictDire
         List<DistrictDirectorApplication> districtDirectorApplication=directorApplicationDao.isApplyArea(directorApplication);
         return districtDirectorApplication;
     }
+
+    /**
+     * 撤回操作
+     * @param directorApplication
+     */
+    @Transactional(readOnly = false)
+    public void cancelInvalidate(DistrictDirectorApplication directorApplication) {
+        try {
+            String invalidateProcessInstanceId = directorApplication.getProcessInstanceId();
+            //将流程图中尚未走到的task的流程追踪信息逻辑删除,添加一条"撤销"流程追踪信息
+            WorkActivityProcess process = new WorkActivityProcess();
+            process.setProcessInstanceId(directorApplication.getProcessInstanceId());
+            process.setIsApproval("0");
+            WorkActivityProcess workActivityProcess = new WorkActivityProcess();
+            workActivityProcess.setProcessInstanceId(directorApplication.getProcessInstanceId());
+            List<WorkActivityProcess> processList = workActivityProcessService.findList(workActivityProcess);
+            WorkProjectNotify notify = new WorkProjectNotify();
+            notify.setNotifyId(directorApplication.getId());
+            List<User> userList = workProjectNotifyService.readByNotifyId(notify);
+            if (userList!=null && userList.size()!=0) {
+                for (User u : userList) {
+                    User user = UserUtils.get(u.getId());
+                    UserUtils.pushMeIm(user.getId());
+                }
+            }
+            if(processList!=null && processList.size()>0){
+                for (int i =0;i<processList.size();i++) {
+                    WorkActivityProcess p = processList.get(i);
+                    if(com.jeeplus.common.utils.StringUtils.isNotBlank(p.getIsApproval()) && "0".equals(p.getIsApproval())){
+                        p.setDelFlag("1");
+                        p.setIsApproval("-1");
+                        workActivityProcessDao.updateDelFlagAndIsApproval(p);
+                    }
+                }
+                WorkActivityProcess pro = new WorkActivityProcess();
+                pro.setId("");
+                pro.preInsert();
+                pro.setDelFlag("0");
+                pro.setRemarks("[强制撤销]");
+                pro.setProcessKey(processList.get(0).getProcessKey());
+                pro.setIsApproval("1");
+                pro.setProcessInstanceId(processList.get(0).getProcessInstanceId());
+                pro.setCount(0);
+                workActivityProcessDao.insert(pro);
+            }
+
+            //结束该流程,设为"撤销"状态
+            actTaskService.endProcessInstance(invalidateProcessInstanceId,"地区负责人申请-强制撤销");
+            directorApplication.setStatus("3");
+            directorApplication.preUpdate();
+            dao.update(directorApplication);
+
+        }catch (ActivitiObjectNotFoundException e){
+            System.err.println("地区负责人申请撤销异常,因为这个流程已不存在!");
+            e.printStackTrace();
+            logger.error("Exception e:"+e);
+        }
+        catch (Exception e) {
+            e.printStackTrace();
+            logger.error("Exception e:"+e);
+        }
+    }
+
 }

+ 4 - 5
src/main/webapp/webpage/modules/signatureManagement/electronicSignature/ElectronicSignatureList.jsp

@@ -391,11 +391,11 @@
                         </shiro:hasPermission>
                         <button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
                         <%--<c:if test="${isArea != '1'}">--%>
-                            <button class="layui-btn layui-btn-sm layui-bg-blue" title="地区负责人申请" onclick="openDialogDis('地区负责人申请','${ctx}/districtDirectorApplication/districtDirectorApplication/form','95%','95%')">&nbsp;地区负责人申请</button>
+<%--                            <button class="layui-btn layui-btn-sm layui-bg-blue" title="地区负责人申请" onclick="openDialogDis('地区负责人申请','${ctx}/districtDirectorApplication/districtDirectorApplication/form','95%','95%')">&nbsp;地区负责人申请</button>--%>
                         <%--</c:if>--%>
-                        <c:if test="${isArea == '1'}">
-                            <button class="layui-btn layui-btn-sm layui-bg-blue" title="地区负责人申请详情" onclick="openDialogForm('地区负责人申请详情','${ctx}/districtDirectorApplication/districtDirectorApplication/ListByCreate','95%','95%','','关闭')">&nbsp;地区负责人申请详情</button>
-                        </c:if>
+<%--                        <c:if test="${isArea == '1'}">--%>
+<%--                            <button class="layui-btn layui-btn-sm layui-bg-blue" title="地区负责人申请详情" onclick="openDialogForm('地区负责人申请详情','${ctx}/districtDirectorApplication/districtDirectorApplication/ListByCreate','95%','95%','','关闭')">&nbsp;地区负责人申请详情</button>--%>
+<%--                        </c:if>--%>
 
 
                     </div>
@@ -500,7 +500,6 @@
                     </c:when>
                     <c:otherwise>
                     ,"candel":"0"
-                    ,"canedit1":"0"
                     ,"canedit2":"0"
                     ,"canrecall":"0"
                     ,"cancancel":"0"

+ 1 - 0
src/main/webapp/webpage/modules/signatureManagement/electronicSignature/directorApplicationAudit.jsp

@@ -97,6 +97,7 @@
 			<form:hidden path="act.procInsId"/>
 			<form:hidden path="act.procDefId"/>
 			<form:hidden id="flag" path="act.flag"/>
+			<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
 			<c:set var="status" value="${districtDirectorApplication.act.status}" />
 			<div class="form-group layui-row first lw9">
 				<div class="form-group-label"><h2>基础信息</h2></div>

+ 135 - 0
src/main/webapp/webpage/modules/signatureManagement/electronicSignature/directorApplicationModify.jsp

@@ -0,0 +1,135 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>地区负责人申请管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+				$("#inputForm").attr("action","${ctx}/districtDirectorApplication/districtDirectorApplication/save");
+                $("#inputForm").submit();
+                return true;
+            }else {
+                parent.layer.msg("信息未填写完整!", {icon: 5});
+            }
+            return false;
+        }
+        $(document).ready(function() {
+
+			$("#area").on("change",function(){
+						var area = $("#area").val()
+						$.ajax({
+							url:"${ctx}/districtDirectorApplication/districtDirectorApplication/checkArea",
+							type:"post",
+							data:{"area":area,},
+							success:function(data){
+								if(data==="false"){
+									$("#ph").html("该地区已被选择");
+								}else {
+									$("#ph").html('');
+								}
+							}
+						});
+					}
+			)
+			function openDialogre(title,url,width,height,target,buttons) {
+				if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+					width = 'auto';
+					height = 'auto';
+				} else {//如果是PC端,根据用户设置的width和height显示。
+				}
+				var split = buttons.split(",");
+				top.layer.open({
+					type: 2,
+					area: [width, height],
+					title: title,
+					maxmin: true, //开启最大化最小化按钮
+					skin: 'three-btns',
+					content: url,
+					btn: split,
+					btn1: function(index, layero){
+						top.layer.close(index)
+						document.getElementById('iframe').contentWindow.location.reload();
+					}
+				});
+			}
+
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+
+            });
+
+        });
+
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container">
+		<form:form id="inputForm" modelAttribute="districtDirectorApplication" action="${ctx}/districtDirectorApplication/districtDirectorApplication/save" method="post" class="form-horizontal">
+			<form:hidden path="id"/>
+			<form:hidden path="home"/>
+			<form:hidden path="act.taskId"/>
+			<form:hidden path="act.taskName"/>
+			<form:hidden path="act.taskDefKey"/>
+			<form:hidden path="act.procInsId"/>
+			<form:hidden path="act.procDefId"/>
+			<form:hidden id="flag" path="act.flag"/>
+			<c:set var="status" value="${districtDirectorApplication.act.status}" />
+			<div class="form-group layui-row first lw9">
+				<div class="form-group-label"><h2>基础信息</h2></div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label"><span class="require-item">*</span>负责区域:</label>
+					<div class="layui-input-block with-icon">
+						<form:input path="territory" htmlEscape="false" maxlength="64" class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">关联地区:</label>
+					<div class="layui-input-block with-icon">
+						<sys:treeselect id="area" name="area.id" value="${districtDirectorApplication.area.id}" labelName="area.name"
+										labelValue="${districtDirectorApplication.area.name}"
+										cssStyle="background-color:#fff"
+										title="区域" url="/sys/area/treeData" cssClass="form-control layui-input"
+										allowClear="true" notAllowSelectParent="false"/>
+						<span id="ph" style="color:#cc5965"></span>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">申请人:</label>
+					<div class="layui-input-block">
+						<form:input path="createBy.name" htmlEscape="false"  readonly="true"  class="form-control  layui-input"/>
+						<form:hidden path="createBy.id" htmlEscape="false"   readonly="true"  class="form-control  layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">所属部门:</label>
+					<div class="layui-input-block">
+						<form:input path="office.name" htmlEscape="false" id="officeName" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">申请日期:</label>
+					<div class="layui-input-block">
+						<input id="createDate" name="createDate" htmlEscape="false"  value="<fmt:formatDate value="${districtDirectorApplication.createDate}" pattern="yyyy-MM-dd"/>" readonly="readonly"  class="form-control judgment layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm12  with-textarea">
+					<label class="layui-form-label">备注:</label>
+					<div class="layui-input-block">
+						<form:textarea placeholder="请输入备注" path="remarks" htmlEscape="false" rows="4" maxlength="255" class="form-control "/>
+					</div>
+				</div>
+			</div>
+			<div class="form-group layui-row page-end"></div>
+		</form:form>
+
+	</div>
+</div>
+</body>
+</html>

+ 32 - 20
src/main/webapp/webpage/modules/signatureManagement/electronicSignature/districtDirectorApplicationList.jsp

@@ -245,9 +245,9 @@
                 title: title,
                 maxmin: false, //开启最大化最小化按钮
                 content: url ,
-                skin:"three-btns",
+                skin:"two-btns",
                 btn: ['送审','关闭'],
-                btn1: function(index, layero){
+                yes: function(index, layero){
                     var body = top.layer.getChildFrame('body', index);
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
                     var inputForm = body.find('#inputForm');
@@ -263,23 +263,7 @@
                         setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
                     }
                 },
-                btn2:function(index,layero){
-                    var body = top.layer.getChildFrame('body', index);
-                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
-                    var inputForm = body.find('#inputForm');
-                    var top_iframe;
-                    if(target){
-                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
-                    }else{
-                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
-                    }
-                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
-                    if(iframeWin.contentWindow.doSubmit(3) ){
-                        // top.layer.close(index);//关闭对话框。
-                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
-                    }
-                },
-                btn3: function(index){
+                cancel: function(index){
                 }
             });
 
@@ -397,6 +381,8 @@
             <div class="layui-form contentDetails contentShadow shadowLBR">
                 <div class="nav-btns">
                     <div class="layui-btn-group">
+                        <button class="layui-btn layui-btn-sm layui-bg-blue" title="地区负责人申请" onclick="openDialogDis('地区负责人申请','${ctx}/districtDirectorApplication/districtDirectorApplication/form','95%','95%')">&nbsp;地区负责人申请</button>
+
                         <button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
                     </div>
                     <div style="clear: both;"></div>
@@ -443,10 +429,22 @@
                     }}
                 ,{field:'op',align:'center',title:"操作",minwidth:150,templet:function(d){
                         var xml="<div class=\"layui-btn-group\">";
+                        if(d.canedit2 != undefined && d.canedit2 =="1")
+                        {
+                            xml+="<a href=\"#\" onclick=\"openDialogre('调整申请', '${ctx}/districtDirectorApplication/districtDirectorApplication/modify?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改</a>";
+                        }
+                        if(d.canrecall != undefined && d.canrecall =="1")
+                        {
+                            xml+="<a href=\"#\" onclick=\"openDialogre('调整申请', '${ctx}/districtDirectorApplication/districtDirectorApplication/form?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改</a>";
+                        }
                         if(d.candel != undefined && d.candel =="1")
                         {
                             xml+="<a href=\"${ctx}/districtDirectorApplication/districtDirectorApplication/delete?id=" + d.id + "\" onclick=\"return confirmx('确认要删除该地区申请吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\"> 删除</a>";
                         }
+                        if(d.cancancel != undefined && d.cancancel =="1")
+                        {
+                            xml+="<a href=\"${ctx}/districtDirectorApplication/districtDirectorApplication/revoke?id=" + d.id + "&processInstanceId=" + d.procId + "&status="+d.status+"\" onclick=\"return confirmx('确认要撤回该地区申请审批吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 撤回</a>";
+                        }
                         xml+="</div>"
                         return xml;
                 }}
@@ -466,7 +464,21 @@
                     ,"territory":"${districtDirectorApplication.territory}"
                     ,"areaDirector":"${districtDirectorApplication.areaDirector}"
                     ,"createName":"<c:out value="${districtDirectorApplication.createBy.name}" escapeXml="false"/>"
-                    ,"candel":	<c:choose><c:when test="${(districtDirectorApplication.status == 5)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    <c:choose><c:when test="${flag == '1' or fns:getUser().id == districtDirectorApplication.createBy.id}">
+                    ,"candel":	<c:choose><c:when test="${('1' == flag && districtDirectorApplication.status == 5)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canedit2":<c:choose><c:when test="${districtDirectorApplication.status == 4 && fns:getUser().id == districtDirectorApplication.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canrecall":<c:choose><c:when test="${districtDirectorApplication.status == 3 && fns:getUser().id == districtDirectorApplication.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"cancancel":<c:choose><c:when test="${districtDirectorApplication.status == 2 && fns:getUser().id == districtDirectorApplication.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    ,"candel":"0"
+                    ,"canedit1":"0"
+                    ,"canedit2":"0"
+                    ,"canrecall":"0"
+                    ,"cancancel":"0"
+                    /*,"deleteAdmin":"0"*/
+                    </c:otherwise>
+                    </c:choose>
                 }
                 </c:forEach>
                 </c:if>