|
@@ -7,10 +7,7 @@ import com.google.common.collect.Maps;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.Gson;
|
|
import com.jeeplus.common.persistence.Page;
|
|
import com.jeeplus.common.persistence.Page;
|
|
import com.jeeplus.common.service.CrudService;
|
|
import com.jeeplus.common.service.CrudService;
|
|
-import com.jeeplus.common.utils.Collections3;
|
|
|
|
-import com.jeeplus.common.utils.DateUtils;
|
|
|
|
-import com.jeeplus.common.utils.MenuStatusEnum;
|
|
|
|
-import com.jeeplus.common.utils.MyBeanUtils;
|
|
|
|
|
|
+import com.jeeplus.common.utils.*;
|
|
import com.jeeplus.modules.act.entity.Act;
|
|
import com.jeeplus.modules.act.entity.Act;
|
|
import com.jeeplus.modules.act.service.ActTaskService;
|
|
import com.jeeplus.modules.act.service.ActTaskService;
|
|
import com.jeeplus.modules.historical.entity.HistoricalData;
|
|
import com.jeeplus.modules.historical.entity.HistoricalData;
|
|
@@ -619,7 +616,12 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
|
|
projectcontentinfo.setProject(projectRecord);
|
|
projectcontentinfo.setProject(projectRecord);
|
|
if (type == 2) {
|
|
if (type == 2) {
|
|
//启动流程
|
|
//启动流程
|
|
- String str = this.saveRuralProject(projectReportData, variables, processInstanceId, projectcontentinfo.getProject().getProjectLeaders());
|
|
|
|
|
|
+ String str="";
|
|
|
|
+ if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("reviewAgain")){
|
|
|
|
+ str = this.saveReRural(projectReportData, variables, processInstanceId, projectcontentinfo.getProject().getProjectLeaders());
|
|
|
|
+ }else{
|
|
|
|
+ str = this.saveRuralProject(projectReportData, variables, processInstanceId, projectcontentinfo.getProject().getProjectLeaders());
|
|
|
|
+ }
|
|
if (!str.equals("true")){
|
|
if (!str.equals("true")){
|
|
return str;
|
|
return str;
|
|
}
|
|
}
|
|
@@ -1504,6 +1506,160 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
|
|
return "true";
|
|
return "true";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 提交存储
|
|
|
|
+ * @param projectReportData
|
|
|
|
+ * @param variables
|
|
|
|
+ */
|
|
|
|
+ @Transactional(readOnly = false)
|
|
|
|
+ public String saveReRural(ProjectReportData projectReportData,Map<String, Object> variables,String processInstanceId,List<User> masters) {
|
|
|
|
+ User user = UserUtils.get(projectReportData.getCreateBy().getId());
|
|
|
|
+ Boolean insert = false;
|
|
|
|
+ if (StringUtils.isBlank(projectReportData.getId())){
|
|
|
|
+ projectReportData.preInsert();
|
|
|
|
+ insert = true;
|
|
|
|
+ }
|
|
|
|
+ String num = projectReportData.getNumber();
|
|
|
|
+ if(com.jeeplus.common.utils.StringUtils.isNotBlank(num)){
|
|
|
|
+ projectReportNumService.updateNum(num);
|
|
|
|
+ }
|
|
|
|
+ ProjectRecords projectRecords = dao.getRuralProjectRecords(projectReportData.getProject().getId());
|
|
|
|
+ Office recordsOffice =officeService.get(projectRecords.getOffice());
|
|
|
|
+ String title = "项目【"+projectRecords.getProjectName()+"】报告质量复核待审批";
|
|
|
|
+ String str = "项目【"+projectRecords.getProjectName()+"】报告质量复核待审批";
|
|
|
|
+ // 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
|
|
|
|
+ identityService.setAuthenticatedUserId(user.getId());
|
|
|
|
+ // 启动流程
|
|
|
|
+ String businessKey = projectReportData.getId().toString();
|
|
|
|
+ WorkActivityMenu workActivityMenu = workActivityMenuService.findByParentAndOffice("9764872f45b84acd893010e66a3db2c8", recordsOffice);
|
|
|
|
+ // 启动流程
|
|
|
|
+ String processType = workActivityMenu.getProcessType();
|
|
|
|
+ StringBuffer buffer = new StringBuffer();
|
|
|
|
+ Activity activity = new Activity();
|
|
|
|
+ WorkProjectNotify workProjectNotify = UtilNotify
|
|
|
|
+ .saveNotify(projectReportData.getId(),
|
|
|
|
+ null,
|
|
|
|
+ projectReportData.getCompanyId(),
|
|
|
|
+ title,
|
|
|
|
+ str,
|
|
|
|
+ "96",
|
|
|
|
+ "0",
|
|
|
|
+ "待审批",
|
|
|
|
+ ""
|
|
|
|
+ );
|
|
|
|
+ List<User> users = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ //总工
|
|
|
|
+ List<User> bzshbs = new ArrayList<>();
|
|
|
|
+ User bzshbsUser = UserUtils.get(projectReportData.getBzshbUserId());
|
|
|
|
+ if(null != bzshbsUser){
|
|
|
|
+ bzshbs.add(bzshbsUser);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (insert) {
|
|
|
|
+ projectReportDataService.insert(projectReportData);
|
|
|
|
+ }else {
|
|
|
|
+ projectReportDataService.save(projectReportData);
|
|
|
|
+ }
|
|
|
|
+ if (com.jeeplus.common.utils.StringUtils.isNotBlank(workActivityMenu.getId())) {
|
|
|
|
+ workProjectNotify.setNotifyRole("");
|
|
|
|
+ workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
|
|
|
|
+ List<Activity> activities = workActivityMenu.getActivities();
|
|
|
|
+ for (Activity a : activities) {
|
|
|
|
+ String encount = a.getEncount();
|
|
|
|
+ String enlist = a.getEnlist();
|
|
|
|
+ if (a.getRole()!=null && com.jeeplus.common.utils.StringUtils.isNotBlank(a.getRole().getEnname())){
|
|
|
|
+ List enusers = UserUtils.getByRoleActivityEnnames(a.getRole().getEnname(),recordsOffice.getId(),"8",projectReportData.getCreateBy());
|
|
|
|
+ if (enusers.size()==0){
|
|
|
|
+ projectReportData.setStatus("1");
|
|
|
|
+ projectReportDataService.save(projectReportData);
|
|
|
|
+ return "流程审批人不能为空,角色"+a.getRole().getName()+"下无用户,请联系管理员!";
|
|
|
|
+ }
|
|
|
|
+ variables.put(encount, enusers.size());
|
|
|
|
+ variables.put(enlist, enusers);
|
|
|
|
+ }
|
|
|
|
+ if (a.getDelFlag().equals("0") && a.getCount() == 1) {
|
|
|
|
+ activity = a;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ buffer.append(activity.getRole().getEnname());
|
|
|
|
+ if (activity != null && com.jeeplus.common.utils.StringUtils.isNotBlank(activity.getId())) {
|
|
|
|
+ //人员审批
|
|
|
|
+ if (com.jeeplus.common.utils.StringUtils.isNotBlank(activity.getUser().getId())) {
|
|
|
|
+ users.add(activity.getUser());
|
|
|
|
+ }
|
|
|
|
+ //角色审批
|
|
|
|
+ if (com.jeeplus.common.utils.StringUtils.isNotBlank(activity.getRole().getEnname())) {
|
|
|
|
+ users = UserUtils.getByRoleActivityEnnames(activity.getRole().getEnname(),recordsOffice.getId(),"8",projectReportData.getCreateBy());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ workProjectNotify.setId("");
|
|
|
|
+ } else {
|
|
|
|
+ if (bzshbs.size()==0 ){
|
|
|
|
+ projectReportData.setStatus("1");
|
|
|
|
+ projectReportDataService.save(projectReportData);
|
|
|
|
+ }
|
|
|
|
+ if (bzshbs.size()==0){
|
|
|
|
+ return "流程审批人不能为空,总工下无用户,请联系管理员!";
|
|
|
|
+ }
|
|
|
|
+ processType = "newFirstReportAudit";
|
|
|
|
+ users.addAll(bzshbs);
|
|
|
|
+ variables.put("bzshbList", bzshbs);
|
|
|
|
+ variables.put("bzshbcount", bzshbs.size());
|
|
|
|
+ }
|
|
|
|
+ for (User u : users){
|
|
|
|
+ workProjectNotify.setUser(u);
|
|
|
|
+ workProjectNotify.setNotifyRole("部门主任审批");
|
|
|
|
+ workProjectNotify.setId("");
|
|
|
|
+ workProjectNotifyService
|
|
|
|
+ .save(workProjectNotify);
|
|
|
|
+ Map<String,Object> extras = new HashMap<>();
|
|
|
|
+ extras.put("type","7001");
|
|
|
|
+ extras.put("id",workProjectNotify.getId());
|
|
|
|
+ extras.put("procDefKey","96");
|
|
|
|
+ UserUtils.pushInfoToApp(title,str,extras,u.getId());
|
|
|
|
+ UserUtils.pushIm(u.getId(),str);
|
|
|
|
+ }
|
|
|
|
+ variables.put("type", processType);
|
|
|
|
+ variables.put("busId", businessKey);
|
|
|
|
+ variables.put("title", "审批单:" + projectReportData.getNumber());//设置标题;
|
|
|
|
+
|
|
|
|
+ ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
|
|
|
|
+ projectReportData.setProcessInstance(processInstance);
|
|
|
|
+ if (com.jeeplus.common.utils.StringUtils.isNotBlank(processInstanceId)) {
|
|
|
|
+ workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
|
|
|
|
+ workActivityProcessService.deleteProcessInstanceId(processInstanceId);
|
|
|
|
+ workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
|
|
|
|
+ }
|
|
|
|
+ // 更新流程实例ID
|
|
|
|
+ projectReportData.setProcessInstanceId(processInstance.getId());
|
|
|
|
+ projectReportDataDao.updateProcessInstanceId(projectReportData);
|
|
|
|
+ //通知添加流程实例ID
|
|
|
|
+ workProjectNotify.setProcessInstanceId(processInstance.getId());
|
|
|
|
+ workProjectNotifyService.save(workProjectNotify);
|
|
|
|
+ List<Activity> list = workActivityMenu.getActivities();
|
|
|
|
+ if (list != null && list.size() != 0) {
|
|
|
|
+ workActivityProcessService.saveList(list, processInstance.getId());
|
|
|
|
+ } else {
|
|
|
|
+ WorkActivityProcess workActivityProcess = new WorkActivityProcess();
|
|
|
|
+ workActivityProcess.setProcessKey(processType);
|
|
|
|
+ workActivityProcess.setCount(1);
|
|
|
|
+ workActivityProcess.setProcessInstanceId(processInstance.getId());
|
|
|
|
+ workActivityProcess.setIsApproval("0");
|
|
|
|
+ workActivityProcess.setCreateBy(user);
|
|
|
|
+ workActivityProcess.setUpdateBy(user);
|
|
|
|
+ if (StringUtils.isBlank(workActivityProcess.getId())){
|
|
|
|
+ workActivityProcess.setId(IdGen.uuid());
|
|
|
|
+ }
|
|
|
|
+ workActivityProcess.setUpdateDate(new Date());
|
|
|
|
+ workActivityProcess.setCreateDate(new Date());
|
|
|
|
+ workActivityProcessService.insert(workActivityProcess);
|
|
|
|
+ workActivityProcessService.insertAuditsByType(bzshbs,processInstance.getId(),1,1);
|
|
|
|
+ }
|
|
|
|
+ return "true";
|
|
|
|
+ }
|
|
public ProjectReportRecord getProjectReportRecord(String reportId){
|
|
public ProjectReportRecord getProjectReportRecord(String reportId){
|
|
ProjectReportRecord projectReportRecord = dao.getProjectReportRecord(reportId);
|
|
ProjectReportRecord projectReportRecord = dao.getProjectReportRecord(reportId);
|
|
if(projectReportRecord != null){
|
|
if(projectReportRecord != null){
|