|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|