|
@@ -0,0 +1,664 @@
|
|
|
|
+package com.jeeplus.modules.ruralprojectrecords.web;
|
|
|
|
+
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
+import com.jeeplus.common.config.Global;
|
|
|
|
+import com.jeeplus.common.utils.MyBeanUtils;
|
|
|
|
+import com.jeeplus.common.utils.StringUtils;
|
|
|
|
+import com.jeeplus.common.web.BaseController;
|
|
|
|
+import com.jeeplus.modules.act.entity.Act;
|
|
|
|
+import com.jeeplus.modules.act.service.ActTaskService;
|
|
|
|
+import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
|
|
|
|
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
|
|
|
|
+import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
|
|
|
|
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
|
|
|
|
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
|
|
|
|
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportChangeService;
|
|
|
|
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
|
|
|
|
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
|
|
|
|
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
|
|
|
|
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectcontentinfo;
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralReportConsultant;
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageNewService;
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
|
|
|
|
+import com.jeeplus.modules.sys.entity.MainDictDetail;
|
|
|
|
+import com.jeeplus.modules.sys.entity.User;
|
|
|
|
+import com.jeeplus.modules.sys.service.UserService;
|
|
|
|
+import com.jeeplus.modules.sys.utils.DictUtils;
|
|
|
|
+import com.jeeplus.modules.sys.utils.UserUtils;
|
|
|
|
+import com.jeeplus.modules.workstaff.entity.WorkStaffCertificate;
|
|
|
|
+import org.activiti.engine.HistoryService;
|
|
|
|
+import org.activiti.engine.history.HistoricProcessInstance;
|
|
|
|
+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;
|
|
|
|
+import org.springframework.web.bind.annotation.ModelAttribute;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
|
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
+
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 项目列表Controller
|
|
|
|
+ * @author 徐滕
|
|
|
|
+ * @version 2020-04-15
|
|
|
|
+ */
|
|
|
|
+@Controller
|
|
|
|
+@RequestMapping(value = "${adminPath}/ruralProject/ruralProjectMessageNew")
|
|
|
|
+public class RuralProjectMessageNewController extends BaseController {
|
|
|
|
+ @Autowired
|
|
|
|
+ private RuralProjectRecordsService projectRecordsService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProjectRecordsService projectRecordsServices;
|
|
|
|
+ @Autowired
|
|
|
|
+ private RuralProjectMessageNewService ruralProjectMessageService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProjectReportDataService projectReportDataService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProjectcontentinfoService projectcontentinfoService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProjectReportChangeService projectReportChangeService;
|
|
|
|
+ @Autowired
|
|
|
|
+ protected HistoryService historyService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ActTaskService actTaskService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProjectTemplateService projectTemplateService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private UserService userService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private RuralProjectRecordsService ruralProjectRecordsService;
|
|
|
|
+
|
|
|
|
+ @ModelAttribute
|
|
|
|
+ public RuralProjectRecords get(@RequestParam(required=false) String id) {
|
|
|
|
+ RuralProjectRecords entity = null;
|
|
|
|
+ if (StringUtils.isNotBlank(id)){
|
|
|
|
+ entity = projectRecordsService.get(id);
|
|
|
|
+ }
|
|
|
|
+ if (entity == null){
|
|
|
|
+ entity = new RuralProjectRecords();
|
|
|
|
+ }
|
|
|
|
+ return entity;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 跳转新增报告页面
|
|
|
|
+ * @param projectcontentinfo
|
|
|
|
+ * @param request
|
|
|
|
+ * @param response
|
|
|
|
+ * @param model
|
|
|
|
+ * @param attr
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = {"form"})
|
|
|
|
+ public String form(RuralProjectcontentinfo projectcontentinfo,Double reviewFee, HttpServletRequest request, HttpServletResponse response, Model model, RedirectAttributes attr) {
|
|
|
|
+ Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
|
|
|
|
+ model.addAttribute("parentIds", projectcontentinfo1.getParentIds());
|
|
|
|
+ String dictType = projectcontentinfo.getDictType();
|
|
|
|
+ RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
|
|
|
|
+
|
|
|
|
+ projectcontentinfo.setProject(records);
|
|
|
|
+ ProjectReportData projectReportData = new ProjectReportData();
|
|
|
|
+ projectReportData.setType(dictType);
|
|
|
|
+ if (StringUtils.isNotBlank(projectcontentinfo1.getInfoId())){
|
|
|
|
+ projectReportData = projectReportDataService.get(projectcontentinfo1.getInfoId());
|
|
|
|
+ }else if (projectcontentinfo.getProjectReportData()!=null && StringUtils.isNotBlank(projectcontentinfo.getProjectReportData().getId())) {
|
|
|
|
+ projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
|
|
|
|
+ }else {
|
|
|
|
+ projectReportData.setNumber("");
|
|
|
|
+ }
|
|
|
|
+ if (projectReportData.getMaster()==null || StringUtils.isBlank(projectReportData.getMaster().getId())){
|
|
|
|
+ projectReportData.setMaster(UserUtils.getUser());
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isBlank(projectReportData.getStatus())){
|
|
|
|
+ projectReportData.setFileStatus("1");
|
|
|
|
+ }
|
|
|
|
+ if(null != reviewFee){
|
|
|
|
+ projectReportData.setReviewFee(reviewFee);
|
|
|
|
+ }
|
|
|
|
+ projectcontentinfo.setProjectReportData(projectReportData);
|
|
|
|
+
|
|
|
|
+ ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
|
|
|
|
+ //添加项目类型
|
|
|
|
+ relateInfo.setAttachmentProjectType(records.getProjectType());
|
|
|
|
+ relateInfo.setAttachmentProjectSort(records.getAttachmentProjectSort());
|
|
|
|
+ //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
|
|
|
|
+ String money=projectcontentinfo.getProject().getSubmitMoney();
|
|
|
|
+ Integer approvalMoney=null;
|
|
|
|
+ if(StringUtils.isBlank(money)){
|
|
|
|
+ approvalMoney=1;
|
|
|
|
+ }else{
|
|
|
|
+ approvalMoney=Integer.parseInt(money);
|
|
|
|
+ }
|
|
|
|
+ switch (approvalMoney){
|
|
|
|
+ case 0:
|
|
|
|
+ //金额为0
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney(null);
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ //500w以下金额状态
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney("1");
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ //500w以上金额状态
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney("2");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //添加报告类型
|
|
|
|
+ relateInfo.setRequiredStage(1);
|
|
|
|
+ relateInfo.setId(records.getId());
|
|
|
|
+ //查询报告文件、依据性文件、其他文件必填列表以及数据
|
|
|
|
+ List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
|
|
|
|
+ for (MainDictDetail mainDict : mainDictDetails) {
|
|
|
|
+ relateInfo.setAttachType(mainDict.getValue());
|
|
|
|
+ switch (mainDict.getValue()) {
|
|
|
|
+ case "11":
|
|
|
|
+ projectcontentinfo.setFileAttachmentList(projectTemplateService.getProjectTemplateList(relateInfo));
|
|
|
|
+ break;
|
|
|
|
+ case "12":
|
|
|
|
+ projectcontentinfo.setFileGistdataList(projectTemplateService.getProjectTemplateList(relateInfo));
|
|
|
|
+ break;
|
|
|
|
+ case "13":
|
|
|
|
+ projectcontentinfo.setFileOtherList(projectTemplateService.getProjectTemplateList(relateInfo));
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //查询总审人员信息
|
|
|
|
+ List<User> auditUserList = userService.getAuditUserList();
|
|
|
|
+ records.setBzshbUserList(auditUserList);
|
|
|
|
+ if(null == projectcontentinfo.getProjectReportData().getConsultant()){
|
|
|
|
+ projectcontentinfo.getProjectReportData().setConsultant(UserUtils.getUser());
|
|
|
|
+ }
|
|
|
|
+ if(null == projectcontentinfo.getProjectReportData().getPrincipal()){
|
|
|
|
+ projectcontentinfo.getProjectReportData().setPrincipal(UserUtils.getUser());
|
|
|
|
+ }
|
|
|
|
+ //添加当前文件服务器类型
|
|
|
|
+ projectcontentinfo.setUploadMode(uploadMode);
|
|
|
|
+ model.addAttribute("projectRecords", records);
|
|
|
|
+ model.addAttribute("projectcontentinfo", projectcontentinfo);
|
|
|
|
+ model.addAttribute("projectReportData", projectcontentinfo.getProjectReportData());
|
|
|
|
+ if (projectReportData != null && projectReportData.getCreateBy() != null && StringUtils.isNotBlank(projectReportData.getCreateBy().getId()) && projectReportData.getCreateBy().getId().equals(UserUtils.getUser().getId())) {
|
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm";
|
|
|
|
+ } else if (projectReportData == null || StringUtils.isBlank(projectReportData.getId())) {
|
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm";
|
|
|
|
+ } else {
|
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/reportView";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 编辑项目表单页面
|
|
|
|
+ */
|
|
|
|
+ @RequiresPermissions(value={"ruralProject:ruralProjectMessage:edit"},logical= Logical.OR)
|
|
|
|
+ @RequestMapping(value = "modify")
|
|
|
|
+ public String modify(RuralProjectcontentinfo projectcontentinfo,Integer status, Model model, RedirectAttributes redirectAttributes) {
|
|
|
|
+ Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
|
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.getOnRural(projectcontentinfo1.getInfoId());
|
|
|
|
+ projectReportData = projectReportDataService.get(projectReportData.getId());
|
|
|
|
+ RuralProjectRecords ruralProjectRecords = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
|
|
|
|
+ // 将项目负责人替换为项目中的负责人
|
|
|
|
+ if(StringUtils.isNotBlank(ruralProjectRecords.getProjectMasterId())){
|
|
|
|
+ User user = UserUtils.get(ruralProjectRecords.getProjectMasterId());
|
|
|
|
+ projectReportData.setPrincipal(user);
|
|
|
|
+ }
|
|
|
|
+ Projectcontentinfo projectcontent = projectcontentinfoService.getByInfoId(projectReportData.getId());
|
|
|
|
+ projectcontent.setProjectReportData(projectReportData);
|
|
|
|
+ //根据项目id查找报告咨询员信息
|
|
|
|
+ List<RuralReportConsultant> consultants = ruralProjectMessageService.getConsultantsList(projectcontentinfo.getProjectId());
|
|
|
|
+ for (RuralReportConsultant consultant:consultants){
|
|
|
|
+ //根据用户查询技能信息
|
|
|
|
+ List<WorkStaffCertificate> certificateList = ruralProjectMessageService.getCertificateByUser(consultant.getZixunyuan());
|
|
|
|
+ //获取专业类型
|
|
|
|
+ List<MainDictDetail> certificateMajor = DictUtils.getMainDictList("certificate_major");
|
|
|
|
+ for (WorkStaffCertificate certificateInfo: certificateList) {
|
|
|
|
+ if(certificateInfo.getName().equals(consultant.getZhucezigezhKey())){
|
|
|
|
+ consultant.setZhucezigezhID(certificateInfo.getNum());
|
|
|
|
+ }
|
|
|
|
+ for (MainDictDetail type : certificateMajor) {
|
|
|
|
+ if(certificateInfo.getMajor().equals(type.getValue())){
|
|
|
|
+ consultant.setMajor(type.getLabel());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ User user=userService.get(consultant.getZixunyuan());
|
|
|
|
+ consultant.setZixunyuanName(user.getName());
|
|
|
|
+ }
|
|
|
|
+ ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
|
|
|
|
+ //添加项目类型
|
|
|
|
+ relateInfo.setAttachmentProjectType(ruralProjectRecords.getProjectType());
|
|
|
|
+ relateInfo.setAttachmentProjectSort(ruralProjectRecords.getAttachmentProjectSort());
|
|
|
|
+ //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
|
|
|
|
+ String money=ruralProjectRecords.getSubmitMoney();
|
|
|
|
+ Integer approvalMoney=null;
|
|
|
|
+ if(StringUtils.isBlank(money)){
|
|
|
|
+ approvalMoney=1;
|
|
|
|
+ }else{
|
|
|
|
+ approvalMoney=Integer.parseInt(money);
|
|
|
|
+ }
|
|
|
|
+ switch (approvalMoney){
|
|
|
|
+ case 0:
|
|
|
|
+ //金额为0
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney(null);
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ //500w以下金额状态
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney("1");
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ //500w以上金额状态
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney("2");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //添加报告类型
|
|
|
|
+ relateInfo.setRequiredStage(1);
|
|
|
|
+ relateInfo.setId(ruralProjectRecords.getId());
|
|
|
|
+ //查询报告文件、依据性文件、其他文件必填列表以及数据
|
|
|
|
+ List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
|
|
|
|
+ for (MainDictDetail mainDict : mainDictDetails) {
|
|
|
|
+ relateInfo.setAttachType(mainDict.getValue());
|
|
|
|
+ switch (mainDict.getValue()) {
|
|
|
|
+ case "11":
|
|
|
|
+ projectcontent.setFileAttachmentList(projectTemplateService.getProjectTemplateList(relateInfo));
|
|
|
|
+ break;
|
|
|
|
+ case "12":
|
|
|
|
+ projectcontent.setFileGistdataList(projectTemplateService.getProjectTemplateList(relateInfo));
|
|
|
|
+ break;
|
|
|
|
+ case "13":
|
|
|
|
+ projectcontent.setFileOtherList(projectTemplateService.getProjectTemplateList(relateInfo));
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //添加当前文件服务器类型
|
|
|
|
+ projectcontent.setUploadMode(uploadMode);
|
|
|
|
+ //查询总审人员信息
|
|
|
|
+ List<User> auditUserList = userService.getAuditUserList();
|
|
|
|
+ ruralProjectRecords.setBzshbUserList(auditUserList);
|
|
|
|
+ model.addAttribute("processInstanceId",projectReportData.getProcessInstanceId());
|
|
|
|
+ model.addAttribute("projectReportData",projectReportData);
|
|
|
|
+ model.addAttribute("projectId", projectcontentinfo1.getProject().getId());
|
|
|
|
+ model.addAttribute("project", projectcontentinfo1.getProject());
|
|
|
|
+ model.addAttribute("reportedId", projectcontentinfo.getReportedId());
|
|
|
|
+ model.addAttribute("projectRecords", ruralProjectRecords);
|
|
|
|
+ model.addAttribute("id", projectcontentinfo.getId());
|
|
|
|
+ model.addAttribute("projectcontentinfo", projectcontent);
|
|
|
|
+ model.addAttribute("info", consultants);
|
|
|
|
+ //获取是否含有上报信息
|
|
|
|
+ RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReportedById(projectcontentinfo.getReportedId());
|
|
|
|
+ if(null != reported){
|
|
|
|
+ model.addAttribute("reportedView", 1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (StringUtils.isNotBlank(projectcontentinfo.getView()) && projectcontentinfo.getView().contains("view")) {
|
|
|
|
+ List<MainDictDetail> achievementTypes = DictUtils.getMainDictList("achievement_type");
|
|
|
|
+ if(null != achievementTypes){
|
|
|
|
+ for (MainDictDetail achievementType:achievementTypes) {
|
|
|
|
+ if(achievementType.getValue().equals(projectReportData.getAchievementType())){
|
|
|
|
+ projectReportData.setAchievementType(achievementType.getLabel());
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ projectcontent.setFileAttachmentList(ruralProjectRecordsService.disposeDataAttachment(projectcontent.getFileAttachmentList()));
|
|
|
|
+ projectcontent.setFileGistdataList(ruralProjectRecordsService.disposeDataAttachment(projectcontent.getFileGistdataList()));
|
|
|
|
+ projectcontent.setFileOtherList(ruralProjectRecordsService.disposeDataAttachment(projectcontent.getFileOtherList()));
|
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/reportView";
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNotBlank(projectcontentinfo.getView()) && projectcontentinfo.getView().contains("report")) {
|
|
|
|
+ if(StringUtils.isNotBlank(projectReportData.getProcessInstanceId())){
|
|
|
|
+ Act act = getByAct(projectReportData.getProcessInstanceId());
|
|
|
|
+ projectReportData.setAct(act);
|
|
|
|
+ }
|
|
|
|
+ //根据项目id查找咨询员信息
|
|
|
|
+ List<RuralReportConsultant> consultantList=ruralProjectMessageService.getConsultantsList(projectcontentinfo1.getProject().getId());
|
|
|
|
+ for (RuralReportConsultant consultant:consultantList){
|
|
|
|
+ //根据用户查询技能信息
|
|
|
|
+ List<WorkStaffCertificate> certificateList = ruralProjectMessageService.getCertificateByUser(consultant.getZixunyuan());
|
|
|
|
+ for (WorkStaffCertificate certificateInfo: certificateList) {
|
|
|
|
+ if(certificateInfo.getName().equals(consultant.getZhucezigezhKey())){
|
|
|
|
+ consultant.setZhucezigezhID(certificateInfo.getNum());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ User user=userService.get(consultant.getZixunyuan());
|
|
|
|
+ consultant.setZixunyuanName(user.getName());
|
|
|
|
+ }
|
|
|
|
+ model.addAttribute("consultantinfo", consultantList);
|
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageModify";
|
|
|
|
+ }
|
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 新增报告信息
|
|
|
|
+ * @param projectcontentinfo
|
|
|
|
+ * @param model
|
|
|
|
+ * @param redirectAttributes
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = {"saveReport"})
|
|
|
|
+ public String saveReport(Projectcontentinfo projectcontentinfo, Model model,RedirectAttributes redirectAttributes) {
|
|
|
|
+ try{
|
|
|
|
+ Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProject().getId());
|
|
|
|
+ ProjectReportData reportData = projectReportDataService.get(projectcontentinfo1.getInfoId());
|
|
|
|
+ //将审核人员id放入报告信息中
|
|
|
|
+ if(StringUtils.isBlank(projectcontentinfo.getProjectReportData().getBzshbUserId()) && StringUtils.isBlank(reportData.getBzshbUserId())){
|
|
|
|
+ addMessage(redirectAttributes, "审核人员未选择,请重新发起请求");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ if(null != reportData){
|
|
|
|
+ if(StringUtils.isBlank(projectcontentinfo.getProjectReportData().getBzshbUserId())){
|
|
|
|
+ projectcontentinfo.getProjectReportData().setBzshbUserId(reportData.getBzshbUserId());
|
|
|
|
+ }
|
|
|
|
+ if(reportData.getStatus().equals("2")){
|
|
|
|
+ addMessage(redirectAttributes, "报告已送审,请勿重复提交");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ } else if(reportData.getStatus().equals("5")){
|
|
|
|
+ addMessage(redirectAttributes, "报告已审核完毕,请勿再次送审");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ String str = ruralProjectMessageService.saveData(projectcontentinfo,2);
|
|
|
|
+ if(str.equals("true") || str.equals("false")){
|
|
|
|
+ addMessage(redirectAttributes, "发起报告审批"+(str.equals("true")?"成功":"失败"));
|
|
|
|
+ } else{
|
|
|
|
+ addMessage(redirectAttributes, str);
|
|
|
|
+ }
|
|
|
|
+ ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
|
|
|
|
+ if (projectReportData!=null){
|
|
|
|
+ if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("edit")){
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ logger.error("ProjectcontentinfoController save Exception e"+e);
|
|
|
|
+ }
|
|
|
|
+ if(UserUtils.isManager()){
|
|
|
|
+ model.addAttribute("flag","1");
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "发起报告审批失败");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 暂存报告信息
|
|
|
|
+ * @param projectcontentinfo
|
|
|
|
+ * @param model
|
|
|
|
+ * @param redirectAttributes
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = {"holdSaveReport"})
|
|
|
|
+ public String holdSaveReport(Projectcontentinfo projectcontentinfo, Model model,RedirectAttributes redirectAttributes) {
|
|
|
|
+ try{
|
|
|
|
+ String str = ruralProjectMessageService.saveData(projectcontentinfo,1);
|
|
|
|
+ addMessage(redirectAttributes, "暂存报告"+(str.equals("true")?"成功":"失败"));
|
|
|
|
+ ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
|
|
|
|
+ if (projectReportData!=null){
|
|
|
|
+ if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("edit")){
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ logger.error("ProjectcontentinfoController save Exception e"+e);
|
|
|
|
+ }
|
|
|
|
+ if(UserUtils.isManager()){
|
|
|
|
+ model.addAttribute("flag","1");
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "暂存报告失败");
|
|
|
|
+ ProjectRecords projectRecords = projectcontentinfo.getProject()==null?new ProjectRecords():projectcontentinfo.getProject();
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 删除报告信息
|
|
|
|
+ * @param projectcontentinfo
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "deleteReport")
|
|
|
|
+ public String deleteReport(RuralProjectcontentinfo projectcontentinfo, RedirectAttributes redirectAttributes) {
|
|
|
|
+ Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
|
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.getOnRural(projectcontentinfo1.getInfoId());
|
|
|
|
+ //获取项目信息
|
|
|
|
+ RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
|
|
|
|
+ //判断项目类别是否为打包项目(1:打包项目,0:非打包项目)
|
|
|
|
+ List<ProjectTemplateInfo> attachmentList = Lists.newArrayList();
|
|
|
|
+ //查询报告文件、依据性文件、其他文件必填列表以及数据
|
|
|
|
+ List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
|
|
|
|
+ ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
|
|
|
|
+ //添加项目类型
|
|
|
|
+ relateInfo.setAttachmentProjectType(records.getProjectType());
|
|
|
|
+ relateInfo.setRequiredStage(1);
|
|
|
|
+ relateInfo.setId(records.getId());
|
|
|
|
+ relateInfo.setAttachmentProjectSort(records.getAttachmentProjectSort());
|
|
|
|
+ String money=records.getSubmitMoney();
|
|
|
|
+ Integer approvalMoney=null;
|
|
|
|
+ if(StringUtils.isBlank(money)){
|
|
|
|
+ approvalMoney=1;
|
|
|
|
+ }else{
|
|
|
|
+ approvalMoney=Integer.parseInt(money);
|
|
|
|
+ }
|
|
|
|
+ switch (approvalMoney){
|
|
|
|
+ case 0:
|
|
|
|
+ //金额为0
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney(null);
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ //500w以下金额状态
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney("1");
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ //500w以上金额状态
|
|
|
|
+ relateInfo.setAttachmentProjectApprovalMoney("2");
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ for (MainDictDetail mainDict : mainDictDetails) {
|
|
|
|
+ //添加报告类型
|
|
|
|
+ relateInfo.setAttachType(mainDict.getValue());
|
|
|
|
+ attachmentList.addAll(projectTemplateService.getProjectTemplateList(relateInfo));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //修改工作内容中的信息(将工作内容的info_id清空)
|
|
|
|
+ ruralProjectMessageService.updateProjectcontentinfo(projectcontentinfo1);
|
|
|
|
+ if(null != projectReportData){
|
|
|
|
+ //删除报告信息
|
|
|
|
+ ruralProjectMessageService.deleteReport(projectReportData,attachmentList);
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "删除成功");
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 读取单个实体流程
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "getProcessOne")
|
|
|
|
+ public String getProcessOne(Projectcontentinfo projectcontentinfo,String type,Model model) {
|
|
|
|
+ ProjectReportData projectReportDataInfo = ruralProjectMessageService.getProjectReportDateByProjectId(projectcontentinfo.getId());
|
|
|
|
+ projectcontentinfo.setProjectReportData(projectReportDataInfo);
|
|
|
|
+ if ("2".equals(type)){ //审批中流程
|
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
|
|
|
|
+ model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
|
|
|
|
+ }else if("3".equals(type)){ //变更中流程
|
|
|
|
+ ProjectReportData projectReportData = projectReportChangeService.get(projectcontentinfo.getProjectReportData().getId());
|
|
|
|
+ model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
|
|
|
|
+ } else if("8".equals(type)){ //变更中流程
|
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
|
|
|
|
+ model.addAttribute("processInstanceId", projectReportData.getUpId());
|
|
|
|
+ }else if("6".equals(type) || "7".equals(type)){ //作废流程
|
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
|
|
|
|
+ model.addAttribute("processInstanceId", projectReportData.getInvalidProcessInstanceId());
|
|
|
|
+ }else if("5".equals(type)){
|
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
|
|
|
|
+ if(projectReportData.getUpId() != null){
|
|
|
|
+ model.addAttribute("processInstanceId", projectReportData.getUpId());
|
|
|
|
+ }else {
|
|
|
|
+ model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return "modules/workreimbursement/workReimbursementTrack";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //报告流程审批
|
|
|
|
+ @RequestMapping(value = {"reportAudit"})
|
|
|
|
+ public String reportAudit(Projectcontentinfo projectcontentinfo, HttpServletRequest request, HttpServletResponse response, Model model,
|
|
|
|
+ RedirectAttributes redirectAttributes,Integer saveAuditFlag) throws Exception {
|
|
|
|
+ ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
|
|
|
|
+ if(StringUtils.isNotBlank(projectReportData.getProcessInstanceId())){
|
|
|
|
+ Act act = getByAct(projectReportData.getProcessInstanceId());
|
|
|
|
+ projectReportData.setAct(act);
|
|
|
|
+ }
|
|
|
|
+ ProjectReportData t = projectReportDataService.getOnRural(projectReportData.getId());//从数据库取出记录的值
|
|
|
|
+ if(null != saveAuditFlag){
|
|
|
|
+ if(1 == saveAuditFlag && !t.getStatus().equals("4") && !t.getStatus().equals("5")){
|
|
|
|
+ addMessage(redirectAttributes, "项目报告已送审,请勿重复送审");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(t.getStatus().equals("5")){
|
|
|
|
+ addMessage(redirectAttributes, "项目报告已登记完成,无法再次送审");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ MyBeanUtils.copyBeanNotNull2Bean(projectReportData, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
|
|
|
|
+ if(StringUtils.isNotBlank(t.getProcessInstanceId())){
|
|
|
|
+ Act act = getByAct(t.getProcessInstanceId());
|
|
|
|
+ MyBeanUtils.copyBeanNotNull2Bean(projectReportData.getAct(), act);
|
|
|
|
+ t.setAct(act);
|
|
|
|
+ projectcontentinfo.setProjectReportData(t);
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ String taskDefKey = t.getAct().getTaskDefKey();
|
|
|
|
+ List<User> users = null;
|
|
|
|
+ User auditUser = null;
|
|
|
|
+ ProjectRecords projectRecord = projectRecordsServices.getRuralMasters(projectcontentinfo.getProject().getId());
|
|
|
|
+ projectReportData.setProject(projectRecord);
|
|
|
|
+ if ("bmzr".equals(taskDefKey)){
|
|
|
|
+ users = UserUtils.getByProssType(t.getProcessInstanceId(),2);
|
|
|
|
+ if (users==null ) {
|
|
|
|
+ users = Lists.newArrayList();
|
|
|
|
+ //添加总审人员
|
|
|
|
+ auditUser = UserUtils.get(t.getBzshbUserId());
|
|
|
|
+ users.add(auditUser);
|
|
|
|
+ }
|
|
|
|
+ //users = UserUtils.getByRoleActivityEnname("bzshb",3,t.getOfficeId(),"12",t.getCreateBy());
|
|
|
|
+ }else if ("bzshb".equals(taskDefKey)){
|
|
|
|
+ users = UserUtils.getByProssType(t.getProcessInstanceId(),5);
|
|
|
|
+ if (users==null ) {
|
|
|
|
+ users = Lists.newArrayList();
|
|
|
|
+ //添加总审人员
|
|
|
|
+ auditUser = UserUtils.get(t.getBzshbUserId());
|
|
|
|
+ users.add(auditUser);
|
|
|
|
+ }
|
|
|
|
+ /*if (users==null )
|
|
|
|
+ users = UserUtils.getByRoleActivityEnname("gzr",3,t.getOfficeId(),"12",t.getCreateBy());/*users = UserUtils.getByRoleActivityEnname("gzr",3,t.getOfficeId(),"12",t.getCreateBy());
|
|
|
|
+ }else if ("gzr".equals(taskDefKey)){
|
|
|
|
+ users = UserUtils.getByProssType(t.getProcessInstanceId(),5);
|
|
|
|
+ if (users==null )
|
|
|
|
+ users = UserUtils.getByRoleActivityEnname("gzr",3,t.getOfficeId(),"12",t.getCreateBy());*/
|
|
|
|
+ }else if ("modifyApply".equals(taskDefKey)){
|
|
|
|
+ users = UserUtils.getByProssType(t.getProcessInstanceId(),1);
|
|
|
|
+ }
|
|
|
|
+ String flag = t.getAct().getFlag();
|
|
|
|
+ if ("yes".equals(flag) && (users==null || users.size()==0)){
|
|
|
|
+ addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
|
|
|
|
+ }else {
|
|
|
|
+ if ("modifyApply".equals(taskDefKey)){
|
|
|
|
+ ruralProjectMessageService.saveData(projectcontentinfo,3);
|
|
|
|
+ }
|
|
|
|
+ //添加查询报告号模板的bizCode参数
|
|
|
|
+ if("1".equals(projectRecord.getProjectType())){
|
|
|
|
+ t.setConditionType("10");
|
|
|
|
+ }else if("2".equals(projectRecord.getProjectType())){
|
|
|
|
+ t.setConditionType("1003");
|
|
|
|
+ }
|
|
|
|
+ String str = ruralProjectMessageService.auditSave(t, users);
|
|
|
|
+ addMessage(redirectAttributes, str);
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNotBlank(projectcontentinfo.getHome()) && projectcontentinfo.getHome().equals("home")){
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
|
+ }else {
|
|
|
|
+ if("1".equals(projectRecord.getProjectType())){
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @RequestMapping(value = "revoke")
|
|
|
|
+ public String revoke(HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception {
|
|
|
|
+ HashMap<String, String> requestMap = findRequestMap(request);
|
|
|
|
+ String processInstanceId = requestMap.get("processInstanceId");
|
|
|
|
+ String id = requestMap.get("id");
|
|
|
|
+ /*try {*/
|
|
|
|
+ RuralProjectRecords projectRecords = ruralProjectMessageService.get(id);
|
|
|
|
+ if(3==projectRecords.getProjectReportStatus() || 4==projectRecords.getProjectReportStatus()){
|
|
|
|
+ addMessage(redirectAttributes, "项目报告已撤回、驳回,请勿重复操作");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }else if(5==projectRecords.getProjectReportStatus()){
|
|
|
|
+ addMessage(redirectAttributes, "项目报告已审批通过,无法撤回");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+ ProjectReportData projectReportDateByProjectId = ruralProjectMessageService.getProjectReportDateByProjectId(projectRecords.getId());
|
|
|
|
+ ruralProjectMessageService.cancelInvalidate(projectReportDateByProjectId);
|
|
|
|
+ addMessage(redirectAttributes, "撤回该项目报告成功");
|
|
|
|
+ /*}catch (Exception e){
|
|
|
|
+ logger.info(e.getMessage());
|
|
|
|
+ addMessage(redirectAttributes, "撤回该项目报告失败");
|
|
|
|
+ }*/
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralProjectMessage/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public Act getByAct(String processInstanceId){
|
|
|
|
+ Act act = new Act();
|
|
|
|
+ HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
|
|
|
+ ProcessInstance processInstance = actTaskService.getProcIns(processInstanceId);
|
|
|
|
+ if (processInstance!=null) {
|
|
|
|
+ List<Task> taskList = actTaskService.getCurrentTaskList(processInstance);
|
|
|
|
+ if(taskList!=null && taskList.size()>1){
|
|
|
|
+ for (Task taskInfok:taskList) {
|
|
|
|
+ if (taskInfok.getAssignee().equals(UserUtils.getUser().getId())) {
|
|
|
|
+ act.setTaskId(taskInfok.getId());
|
|
|
|
+ act.setTaskName(taskInfok.getName());
|
|
|
|
+ act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
|
|
|
|
+ act.setProcDefId(taskInfok.getProcessDefinitionId());
|
|
|
|
+ act.setProcInsId(taskInfok.getProcessInstanceId());
|
|
|
|
+ act.setTask(taskInfok);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ Task task = actTaskService.getCurrentTaskInfo(processInstance);
|
|
|
|
+ act.setTaskId(task.getId());
|
|
|
|
+ act.setTaskName(task.getName());
|
|
|
|
+ act.setTaskDefKey(task.getTaskDefinitionKey());
|
|
|
|
+ act.setProcDefId(task.getProcessDefinitionId());
|
|
|
|
+ act.setProcInsId(task.getProcessInstanceId());
|
|
|
|
+ act.setTask(task);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return act;
|
|
|
|
+ }
|
|
|
|
+}
|