|
@@ -0,0 +1,605 @@
|
|
|
+package com.jeeplus.modules.signature.projectReportSignatureWork.controller;
|
|
|
+
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+import com.google.common.collect.Maps;
|
|
|
+import com.jeeplus.common.config.Global;
|
|
|
+import com.jeeplus.common.mapper.JsonMapper;
|
|
|
+import com.jeeplus.common.oss.OSSClientUtil;
|
|
|
+import com.jeeplus.common.persistence.Page;
|
|
|
+import com.jeeplus.common.utils.JedisUtils;
|
|
|
+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.projectrecord.entity.ProjectRecords;
|
|
|
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
|
|
|
+import com.jeeplus.modules.signature.projectReportSignatureWork.entity.ProjectReportSignatureRelation;
|
|
|
+import com.jeeplus.modules.signature.projectReportSignatureWork.entity.ProjectReportSignatureWork;
|
|
|
+import com.jeeplus.modules.signature.projectReportSignatureWork.service.ProjectReportSignatureWorkService;
|
|
|
+import com.jeeplus.modules.sys.entity.Office;
|
|
|
+import com.jeeplus.modules.sys.entity.User;
|
|
|
+import com.jeeplus.modules.sys.service.OfficeService;
|
|
|
+import com.jeeplus.modules.sys.utils.UserUtils;
|
|
|
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
|
|
|
+import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
|
|
|
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
|
|
|
+import com.jeeplus.modules.workcontractinfo.service.WorkContractInfoService;
|
|
|
+import com.jeeplus.modules.workinvoice.entity.WorkInvoice;
|
|
|
+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.bind.annotation.ResponseBody;
|
|
|
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
+import redis.clients.jedis.Jedis;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
+import java.net.URLDecoder;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author: 徐滕
|
|
|
+ * @version: 2024-02-02 16:15
|
|
|
+ */
|
|
|
+@Controller
|
|
|
+@RequestMapping(value = "${adminPath}/projectReport/projectReportSignature")
|
|
|
+public class ProjectReportSignatureWorkController extends BaseController {
|
|
|
+ /**
|
|
|
+ * 阿里云文件服务器前缀
|
|
|
+ */
|
|
|
+ private final static String aliyunUrl = Global.getConfig("aliyunUrl");
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ProjectReportSignatureWorkService projectReportSignatureService;
|
|
|
+ @Autowired
|
|
|
+ private ActTaskService actTaskService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ protected ProjectRecordsService projectRecordsService;
|
|
|
+ @Autowired
|
|
|
+ protected WorkContractInfoService workContractInfoService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ protected OfficeService officeService;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @ModelAttribute
|
|
|
+ public ProjectReportSignatureWork get(@RequestParam(required=false) String id) {
|
|
|
+ ProjectReportSignatureWork entity = null;
|
|
|
+ if (StringUtils.isNotBlank(id)){
|
|
|
+ entity = projectReportSignatureService.get(id);
|
|
|
+ }
|
|
|
+ if (entity == null){
|
|
|
+ entity = new ProjectReportSignatureWork();
|
|
|
+ }
|
|
|
+ return entity;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 项目列表页面
|
|
|
+ */
|
|
|
+ @RequiresPermissions("projectReport:projectReportSignature:list")
|
|
|
+ @RequestMapping(value = {"list", ""})
|
|
|
+ public String list(ProjectReportSignatureWork projectReportSignature, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
+ //进行查询之后进行任何操作,返回还是查询之后的数据页面
|
|
|
+ if (StringUtils.isNotBlank(projectReportSignature.getToflag())){
|
|
|
+ if (projectReportSignature.getToflag().equals("1")){
|
|
|
+ request.getSession().removeAttribute("projectReportSignature");
|
|
|
+ ProjectReportSignatureWork search=projectReportSignature;
|
|
|
+ request.getSession().setAttribute("searchProjectReportSignature",search);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if (request.getSession().getAttribute("searchProjectReportSignature")!=null){
|
|
|
+ projectReportSignature= (ProjectReportSignatureWork) request.getSession().getAttribute("searchProjectReportSignature");
|
|
|
+ model.addAttribute("projectReportSignature", projectReportSignature);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(UserUtils.isManager()){
|
|
|
+ model.addAttribute("flag","1");
|
|
|
+ }
|
|
|
+ //获取项目信息
|
|
|
+ Page<ProjectReportSignatureWork> page = projectReportSignatureService.findPage(new Page<ProjectReportSignatureWork>(request, response), projectReportSignature);
|
|
|
+ List<ProjectReportSignatureWork> list = page.getList();
|
|
|
+
|
|
|
+ for (ProjectReportSignatureWork officeWork : list) {
|
|
|
+ if(StringUtils.isNotBlank(officeWork.getSignatureUrl())){
|
|
|
+ officeWork.setSignatureUrlFlag(1);
|
|
|
+ //处理文件路径
|
|
|
+ //如果文件路径中包含 /xg-qz 则表示文件存储在签章的对应文件库中需要单独进行处理
|
|
|
+ if(officeWork.getSignatureUrl().contains("/xg-qz")){
|
|
|
+ if(StringUtils.isNotBlank(officeWork.getSignatureUrl())){
|
|
|
+ String signatureUrl = officeWork.getSignatureUrl().replace("/xg-qz","");
|
|
|
+ officeWork.setSignatureUrl(signatureUrl);
|
|
|
+ }
|
|
|
+ officeWork.setSignatureUrl(new OSSClientUtil().getQzFileTemporaryLookUrl(aliyunUrl + officeWork.getSignatureUrl()));
|
|
|
+ }else{
|
|
|
+ officeWork.setSignatureUrl(new OSSClientUtil().getFileTemporaryLookUrl(aliyunUrl + officeWork.getSignatureUrl()));
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ officeWork.setSignatureUrlFlag(0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ model.addAttribute("page", page);
|
|
|
+ return "modules/signature/projectRerpotSignatureWork/ProjectRerpotSignatureWorkList";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看,增加,编辑项目表单页面
|
|
|
+ */
|
|
|
+ @RequiresPermissions(value={"projectReport:projectReportSignature:add","projectReport:projectReportSignature:edit"},logical= Logical.OR)
|
|
|
+ @RequestMapping(value = "form")
|
|
|
+ public String form(ProjectReportSignatureWork projectReportSignature, Model model) {
|
|
|
+ if (projectReportSignature!=null&&StringUtils.isNotBlank(projectReportSignature.getId())) {
|
|
|
+ projectReportSignature = projectReportSignatureService.get(projectReportSignature.getId());
|
|
|
+ }else {
|
|
|
+ projectReportSignature.setCreateBy(UserUtils.getUser());
|
|
|
+ projectReportSignature.setOffice(UserUtils.getSelectOffice());
|
|
|
+ projectReportSignature.setCreateDate(new Date());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ model.addAttribute("projectReportSignature", projectReportSignature);
|
|
|
+ return "modules/signature/projectRerpotSignatureWork/ProjectRerpotSignatureWorkForm";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看,增加,编辑项目表单页面
|
|
|
+ */
|
|
|
+ @RequiresPermissions(value={"projectReport:projectReportSignature:edit"},logical= Logical.OR)
|
|
|
+ @RequestMapping(value = "modify")
|
|
|
+ public String modify(ProjectReportSignatureWork projectReportSignature, Model model) {
|
|
|
+ if (projectReportSignature!=null&&StringUtils.isNotBlank(projectReportSignature.getId())) {
|
|
|
+ projectReportSignature = projectReportSignatureService.get(projectReportSignature.getId());
|
|
|
+ }else {
|
|
|
+ projectReportSignature.setCreateBy(UserUtils.getUser());
|
|
|
+ projectReportSignature.setCreateDate(new Date());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.isNotBlank(projectReportSignature.getProcessInstanceId())){
|
|
|
+ ProcessInstance processInstance = actTaskService.getProcIns(projectReportSignature.getProcessInstanceId());
|
|
|
+ if (processInstance!=null) {
|
|
|
+ Task taskInfok = actTaskService.getCurrentTaskInfo(processInstance);
|
|
|
+ Act act = new Act();
|
|
|
+ act.setTaskId(taskInfok.getId());
|
|
|
+ act.setTaskName(taskInfok.getName());
|
|
|
+ act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
|
|
|
+ act.setProcDefId(taskInfok.getProcessDefinitionId());
|
|
|
+ act.setProcInsId(taskInfok.getProcessInstanceId());
|
|
|
+ act.setTask(taskInfok);
|
|
|
+ projectReportSignature.setAct(act);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ model.addAttribute("projectReportSignature", projectReportSignature);
|
|
|
+ return "modules/signature/projectRerpotSignatureWork/ProjectRerpotSignatureWorkModify";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看,增加,编辑项目表单页面
|
|
|
+ */
|
|
|
+ @RequiresPermissions(value={"projectReport:projectReportSignature:view"},logical= Logical.OR)
|
|
|
+ @RequestMapping(value = "view")
|
|
|
+ public String view(ProjectReportSignatureWork projectReportSignature, Model model) {
|
|
|
+ if (projectReportSignature!=null&&StringUtils.isNotBlank(projectReportSignature.getId())) {
|
|
|
+ projectReportSignature = projectReportSignatureService.get(projectReportSignature.getId());
|
|
|
+ }else {
|
|
|
+ projectReportSignature.setCreateBy(UserUtils.getUser());
|
|
|
+ projectReportSignature.setCreateDate(new Date());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WorkClientAttachment> signatureWorkAttachments = Lists.newArrayList();
|
|
|
+ if(StringUtils.isNotBlank(projectReportSignature.getSignatureUrl())){
|
|
|
+ WorkClientAttachment signatureAttachment = new WorkClientAttachment();
|
|
|
+
|
|
|
+ //处理文件路径
|
|
|
+ //如果文件路径中包含 /xg-qz 则表示文件存储在签章的对应文件库中需要单独进行处理
|
|
|
+ if(projectReportSignature.getSignatureUrl().contains("/xg-qz")){
|
|
|
+ if(StringUtils.isNotBlank(projectReportSignature.getSignatureUrl())){
|
|
|
+ String signatureUrl = projectReportSignature.getSignatureUrl().replace("/xg-qz","");
|
|
|
+ projectReportSignature.setSignatureUrl(signatureUrl);
|
|
|
+ }
|
|
|
+ signatureAttachment.setTemporaryUrl(new OSSClientUtil().getQzFileTemporaryLookUrl(aliyunUrl + projectReportSignature.getSignatureUrl()));
|
|
|
+ }else{
|
|
|
+ signatureAttachment.setTemporaryUrl(new OSSClientUtil().getFileTemporaryLookUrl(aliyunUrl + projectReportSignature.getSignatureUrl()));
|
|
|
+ }
|
|
|
+ User user = UserUtils.get(projectReportSignature.getSignatureUploadFileUser().getId());
|
|
|
+ signatureAttachment.setCreateBy(user);
|
|
|
+ signatureAttachment.setUpdateBy(user);
|
|
|
+ signatureAttachment.setCreateDate(projectReportSignature.getSignatureUploadDate());
|
|
|
+ signatureAttachment.setUpdateDate(projectReportSignature.getSignatureUploadDate());
|
|
|
+ signatureAttachment.setDelFlag("0");
|
|
|
+ signatureAttachment.setAttachmentName(projectReportSignature.getSignatureFileName());
|
|
|
+ String type = projectReportSignature.getSignatureUrl().substring(projectReportSignature.getSignatureUrl().lastIndexOf(".") + 1);
|
|
|
+ signatureAttachment.setType(type);
|
|
|
+ signatureWorkAttachments.add(signatureAttachment);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(signatureWorkAttachments.size()>0){
|
|
|
+ projectReportSignature.setSignatureWorkAttachments(signatureWorkAttachments);
|
|
|
+ }
|
|
|
+ model.addAttribute("projectReportSignature", projectReportSignature);
|
|
|
+ return "modules/signature/projectRerpotSignatureWork/ProjectRerpotSignatureWorkView";
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 暂存信息
|
|
|
+ */
|
|
|
+ @RequiresPermissions(value={"projectReport:projectReportSignature:add","projectReport:projectReportSignature:edit"},logical=Logical.OR)
|
|
|
+ @RequestMapping(value = "tstore")
|
|
|
+ public String tstore(ProjectReportSignatureWork projectReportSignature, Model model, RedirectAttributes redirectAttributes) {
|
|
|
+ if (!beanValidator(model, projectReportSignature)){
|
|
|
+ return form(projectReportSignature, model);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ if (!projectReportSignature.getIsNewRecord()) {//编辑表单保存
|
|
|
+ ProjectReportSignatureWork t = projectReportSignatureService.get(projectReportSignature.getId());//从数据库取出记录的值
|
|
|
+
|
|
|
+ if(t.getStatus() == 2){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已送审,无法重复送审");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }else if(t.getStatus() == 5){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已审核完成,无法再次送审");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+ MyBeanUtils.copyBeanNotNull2Bean(projectReportSignature, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
|
|
|
+ t.setStatus(1);
|
|
|
+ projectReportSignatureService.saveInfo(t);//保存
|
|
|
+ } else {//新增表单保存
|
|
|
+ projectReportSignature.setStatus(1);
|
|
|
+ projectReportSignatureService.saveInfo(projectReportSignature);//保存
|
|
|
+ }
|
|
|
+ addMessage(redirectAttributes, "保存报告签章申请成功");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error("保存报告签章申请异常:",e);
|
|
|
+ addMessage(redirectAttributes, "保存报告签章申请异常:"+e.getMessage());
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存项目
|
|
|
+ */
|
|
|
+ @RequiresPermissions(value={"projectReport:projectReportSignature:add","projectReport:projectReportSignature:edit"},logical=Logical.OR)
|
|
|
+ @RequestMapping(value = "save")
|
|
|
+ public String save(ProjectReportSignatureWork projectReportSignature, Model model, RedirectAttributes redirectAttributes) throws Exception {
|
|
|
+ if (!beanValidator(model, projectReportSignature)){
|
|
|
+ return form(projectReportSignature, model);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+
|
|
|
+ if (!projectReportSignature.getIsNewRecord()) {//编辑表单保存
|
|
|
+ ProjectReportSignatureWork t = projectReportSignatureService.get(projectReportSignature.getId());//从数据库取出记录的值
|
|
|
+
|
|
|
+ if(t.getStatus() == 2){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已送审,无法重复送审");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }else if(t.getStatus() == 5){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已审核完成,无法再次送审");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+ MyBeanUtils.copyBeanNotNull2Bean(projectReportSignature, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
|
|
|
+ projectReportSignatureService.save(t, ProjectStatusEnum.SIGNED);//保存
|
|
|
+ } else {//新增表单保存
|
|
|
+ projectReportSignatureService.save(projectReportSignature, ProjectStatusEnum.SIGNED);//保存
|
|
|
+ }
|
|
|
+ addMessage(redirectAttributes, "保存报告签章申请成功");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error("保存报告签章申请异常:",e);
|
|
|
+ addMessage(redirectAttributes, "保存报告签章申请异常:"+e.getMessage());
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 撤回操作
|
|
|
+ * @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 {
|
|
|
+ ProjectReportSignatureWork projectReportSignature = projectReportSignatureService.get(id);
|
|
|
+ if(3==projectReportSignature.getStatus() || 4==projectReportSignature.getStatus()){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已撤回、驳回,请勿重复操作");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }else if(5==projectReportSignature.getStatus()){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已审批通过,无法撤回");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+ projectReportSignatureService.cancelInvalidate(projectReportSignature);
|
|
|
+ addMessage(redirectAttributes, "撤回该报告签章申请成功");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.info(e.getMessage());
|
|
|
+ addMessage(redirectAttributes, "撤回该报告签章申请失败");
|
|
|
+ }
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除操作
|
|
|
+ */
|
|
|
+ @RequiresPermissions("projectReport:projectReportSignature:del")
|
|
|
+ @RequestMapping(value = "delete")
|
|
|
+ public String delete(ProjectReportSignatureWork projectReportSignature, RedirectAttributes redirectAttributes) {
|
|
|
+
|
|
|
+ projectReportSignatureService.delete(projectReportSignature);
|
|
|
+ addMessage(redirectAttributes, "作废报告签章申请成功");
|
|
|
+ if (StringUtils.isNotBlank(projectReportSignature.getHome()) && "home".equals(projectReportSignature.getHome())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ }else if (StringUtils.isNotBlank(projectReportSignature.getHome()) && "notifyList".equals(projectReportSignature.getHome())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
+ }else {
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @RequestMapping(value = "getProcess")
|
|
|
+ public String getProcess(ProjectReportSignatureWork projectReportSignature, Model model, HttpServletRequest request){
|
|
|
+ model.addAttribute("processInstanceId", projectReportSignature.getProcessInstanceId());
|
|
|
+ return "modules/signature/projectRerpotSignatureWork/ProjectRerpotSignatureWorkTask";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询签证审核页面url
|
|
|
+ * @param id
|
|
|
+ * @param redirectAttributes
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "getSignatureUrl")
|
|
|
+ @ResponseBody
|
|
|
+ public HashMap<String, Object> getSignatureUrl( String id, RedirectAttributes redirectAttributes) {
|
|
|
+ HashMap<String, Object> map = Maps.newHashMap();
|
|
|
+ map.put("contractUrl","");
|
|
|
+ map.put("success",false);
|
|
|
+ try {
|
|
|
+
|
|
|
+ //根据项目id查询是否已经提交过了报告签章
|
|
|
+ ProjectReportSignatureWork projectReportSignature = projectReportSignatureService.get(id);
|
|
|
+ if(null == projectReportSignature || StringUtils.isBlank(projectReportSignature.getId())){
|
|
|
+ map.put("str","查询不到该报告签章申请信息");
|
|
|
+ map.put("success",false);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+ if(null!= projectReportSignature.getSignatureFlag() && 1 == projectReportSignature.getSignatureFlag()){
|
|
|
+ map.put("str","该报告签章申请已经盖章完成。请直接进行审核");
|
|
|
+ map.put("success",false);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //获取contractUrl路径
|
|
|
+ String contractUrl = projectReportSignatureService.getSignatureContractUrl(projectReportSignature.getSignatureContractId());
|
|
|
+ if("".equals(contractUrl)){
|
|
|
+ map.put("str","报告签章文件创建失败");
|
|
|
+ map.put("success",false);
|
|
|
+ return map;
|
|
|
+ }else{
|
|
|
+ map.put("contractUrl",contractUrl);
|
|
|
+ map.put("success",true);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ addMessage(redirectAttributes, "报告签章申请审核页面信息获取失败");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询页面签署状态
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "getSignatureStatus")
|
|
|
+ @ResponseBody
|
|
|
+ public Map<String, Object> getSignatureStatus(String id) {
|
|
|
+ Map<String, Object> map = new HashMap();
|
|
|
+ map.put("success",false);
|
|
|
+
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectReportSignatureWork projectReportSignature = projectReportSignatureService.get(id);
|
|
|
+
|
|
|
+ Jedis jedis = null;
|
|
|
+ try {
|
|
|
+ jedis = JedisUtils.getResource();
|
|
|
+ if(1 == projectReportSignature.getSignatureFlag()){
|
|
|
+ map.put("success",true);
|
|
|
+ }else{
|
|
|
+ String status = jedis.get("projectReportSignatureWorkSignatureSignStatus" + projectReportSignature.getId());
|
|
|
+ map.put("success",status);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("projectReportSignatureWorkSignatureSignStatus", e);
|
|
|
+ } finally {
|
|
|
+ JedisUtils.returnResource(jedis);
|
|
|
+ }
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 审批
|
|
|
+ * @param projectReportSignature
|
|
|
+ * @param redirectAttributes
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping("saveAudit")
|
|
|
+ public String saveAudit(ProjectReportSignatureWork projectReportSignature, RedirectAttributes redirectAttributes) {
|
|
|
+ String home = projectReportSignature.getHome();
|
|
|
+ try {
|
|
|
+ String taskDefKey = projectReportSignature.getAct().getTaskDefKey();
|
|
|
+ //当状态为未通过时,重新修改数据
|
|
|
+ if ("modifyApply".equals(taskDefKey)) {
|
|
|
+ projectReportSignature.getAct().setComment("重新申请");
|
|
|
+ }
|
|
|
+ List<User> users = null;
|
|
|
+ //所属部门
|
|
|
+ Office office = officeService.get(projectReportSignature.getOffice().getId());
|
|
|
+ if ("bmzr".equals(taskDefKey)){
|
|
|
+ users = UserUtils.getByProssType(projectReportSignature.getProcessInstanceId(),2);
|
|
|
+ if (users == null)
|
|
|
+ users = UserUtils.getByRoleActivityEnname("bgsquhe", 3, office.getId(), "11", projectReportSignature.getCreateBy());
|
|
|
+ }else if ("bgs".equals(taskDefKey)){
|
|
|
+ users = UserUtils.getByProssType(projectReportSignature.getProcessInstanceId(),2);
|
|
|
+ if (users == null)
|
|
|
+ users = UserUtils.getByRoleActivityEnname("bgsquhe", 3, office.getId(), "11", projectReportSignature.getCreateBy());
|
|
|
+ }else if ("modifyApply".equals(taskDefKey)){
|
|
|
+ users = UserUtils.getByProssType(projectReportSignature.getProcessInstanceId(), 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ String flag = projectReportSignature.getAct().getFlag();
|
|
|
+ if ("yes".equals(flag) && (users==null || users.size()==0)){
|
|
|
+ addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
|
|
|
+ }else {
|
|
|
+ if (projectReportSignature.getStatus() != 2 && projectReportSignature.getStatus() != 4 && projectReportSignature.getStatus() != 5) {
|
|
|
+ addMessage(redirectAttributes, "报告签章申请未发起,请发起申请");
|
|
|
+ if (StringUtils.isNotBlank(home) && "home".equals(home)) {
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ }else if (StringUtils.isNotBlank(home) && "notifyList".equals(home)){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
+ } else {
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(projectReportSignature.getStatus() == 5){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已登记完成,无法再次送审");
|
|
|
+ if (StringUtils.isNotBlank(home) && "home".equals(home)){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ }else if (StringUtils.isNotBlank(home) && "notifyList".equals(home)){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
+ }else {
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String str = projectReportSignatureService.signatuereSaveAudit(projectReportSignature,users);
|
|
|
+ addMessage(redirectAttributes, str);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请审批失败");
|
|
|
+ logger.error("Exception e:"+e);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(home) && "home".equals(home)){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ }else if (StringUtils.isNotBlank(home) && "notifyList".equals(home)){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
+ }else {
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/projectReport/projectReportSignature/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 选择签章项目报告
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "getProjectReportList")
|
|
|
+ public String selectproject(ProjectRecords project, String url, String fieldLabels, String fieldKeys, String searchLabel, String searchKey, String ids, Integer isProject, Integer isProjectFalg, String details, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
+ project.setCompany(UserUtils.getSelectCompany());
|
|
|
+ project.setProjectStatus(com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum.SIGNED.getValue());//已签状态
|
|
|
+ Page<ProjectRecords> page = projectRecordsService.getPaogectReportSignaturePage(new Page<ProjectRecords>(request, response), project);
|
|
|
+ List<ProjectRecords> list = page.getList();
|
|
|
+ try {
|
|
|
+ fieldLabels = URLDecoder.decode(fieldLabels, "UTF-8");
|
|
|
+ fieldKeys = URLDecoder.decode(fieldKeys, "UTF-8");
|
|
|
+ searchLabel = URLDecoder.decode(searchLabel, "UTF-8");
|
|
|
+ searchKey = URLDecoder.decode(searchKey, "UTF-8");
|
|
|
+ } catch (UnsupportedEncodingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ logger.error("Exception e:"+e);
|
|
|
+ }
|
|
|
+ model.addAttribute("labelNames", fieldLabels.split("\\|"));
|
|
|
+ model.addAttribute("labelValues", fieldKeys.split("\\|"));
|
|
|
+ model.addAttribute("fieldLabels", fieldLabels);
|
|
|
+ model.addAttribute("fieldKeys", fieldKeys);
|
|
|
+ model.addAttribute("url", url);
|
|
|
+ model.addAttribute("searchLabel", searchLabel);
|
|
|
+ model.addAttribute("searchKey", searchKey);
|
|
|
+ project.setDetails(details);
|
|
|
+ model.addAttribute("obj", project);
|
|
|
+ model.addAttribute("isProject", isProject);
|
|
|
+ model.addAttribute("isProjectFalg", isProjectFalg);
|
|
|
+ model.addAttribute("page",page);
|
|
|
+ return "modules/sys/gridprojectreportsignature";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取项目编号
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "getPNumber")
|
|
|
+ @ResponseBody
|
|
|
+ public String getPNumber(HttpServletRequest request) {
|
|
|
+ HashMap<Object, Object> map = Maps.newHashMap();
|
|
|
+ String obj = request.getParameter("obj");
|
|
|
+ ProjectRecords projectRecords = projectRecordsService.getRuralInfo(obj);
|
|
|
+ map.put("projectName",projectRecords.getProjectName());//项目名称
|
|
|
+ map.put("id",projectRecords.getId());//项目id
|
|
|
+ map.put("areaId",projectRecords.getArea().getId());//项目地区id
|
|
|
+ map.put("areaName",projectRecords.getArea().getName());//项目地区名称
|
|
|
+ map.put("projectNum",projectRecords.getProjectId());//项目编号
|
|
|
+ map.put("reportDataNum",projectRecords.getReportData().getNumber());//报告号
|
|
|
+ if(projectRecords.getWorkContractInfo() == null || null == projectRecords.getWorkContractInfo().getClient() || StringUtils.isBlank(projectRecords.getWorkContractInfo().getClient().getName())){
|
|
|
+ //无合同状态下,获取委托方的名称
|
|
|
+ projectRecordsService.queryLinkmanInfos(projectRecords);
|
|
|
+ if (projectRecords.getWorkClientLinkmanList() != null && projectRecords.getWorkClientLinkmanList().size() > 0) {
|
|
|
+ WorkClientLinkman linkman = projectRecords.getWorkClientLinkmanList().get(0);
|
|
|
+ map.put("clientName",linkman.getClientId().getName());//委托方
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ map.put("clientName",projectRecords.getWorkContractInfo().getClient().getName());//委托方
|
|
|
+ }
|
|
|
+ map.put("workContractName",projectRecords.getWorkContractInfo().getName());//合同名称
|
|
|
+ String id = projectRecords.getWorkContractInfo().getId();
|
|
|
+
|
|
|
+ WorkContractInfo workContractInfo = workContractInfoService.get(id);
|
|
|
+ if(workContractInfo!=null){
|
|
|
+ String oid = workContractInfo.getChargeCompany();
|
|
|
+ Office office = officeService.get(oid);
|
|
|
+ if(office!=null){
|
|
|
+ map.put("officeName",office.getTopCompany());//部门
|
|
|
+ map.put("officeId",office.getId());//部门
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return JsonMapper.toJsonString(map);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 开票管理列表页面
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "projectview")
|
|
|
+ public String view(ProjectReportSignatureWork projectReportSignature, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
+ List<ProjectReportSignatureRelation> projectRelation = projectReportSignatureService.getProjectRelation(projectReportSignature);
|
|
|
+ projectReportSignature.setProjectReportSignatureRelationList(projectRelation);
|
|
|
+ model.addAttribute("projectRelation", projectReportSignature);
|
|
|
+ return "modules/signature/projectRerpotSignatureWork/ProjectReportSignatureProjectView";
|
|
|
+ }
|
|
|
+
|
|
|
+}
|