|
@@ -0,0 +1,855 @@
|
|
|
+package com.jeeplus.modules.ruralprojectrecords.web.yanChengSignature;
|
|
|
+
|
|
|
+import com.jeeplus.common.config.Global;
|
|
|
+import com.jeeplus.common.oss.OSSClientUtil;
|
|
|
+import com.jeeplus.common.persistence.Page;
|
|
|
+import com.jeeplus.common.utils.FreemarkerUtil;
|
|
|
+import com.jeeplus.common.utils.ResponseUtil;
|
|
|
+import com.jeeplus.common.utils.StringUtils;
|
|
|
+import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
|
|
|
+import com.jeeplus.common.utils.excel.ImportExcelNew;
|
|
|
+import com.jeeplus.common.web.BaseController;
|
|
|
+import com.jeeplus.modules.act.entity.Act;
|
|
|
+import com.jeeplus.modules.act.service.ActTaskService;
|
|
|
+import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
|
|
|
+import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
|
|
|
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
|
|
|
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
|
|
|
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
|
|
|
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.entity.*;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageAllService;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageNewService;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.yanChengSignature.RuralProjectMessageElectronicSealYCService;
|
|
|
+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.workclientinfo.entity.WorkClientLinkman;
|
|
|
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
|
|
|
+import freemarker.template.Configuration;
|
|
|
+import freemarker.template.Template;
|
|
|
+import jersey.repackaged.com.google.common.collect.Lists;
|
|
|
+import org.activiti.engine.HistoryService;
|
|
|
+import org.activiti.engine.runtime.ProcessInstance;
|
|
|
+import org.activiti.engine.task.Task;
|
|
|
+import org.apache.shiro.authz.annotation.RequiresPermissions;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.ui.Model;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.File;
|
|
|
+import java.io.IOException;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * (盐城)电子签章项目列表Controller
|
|
|
+ * B级项目
|
|
|
+ * @author 徐滕
|
|
|
+ * @version 2020-04-15
|
|
|
+ */
|
|
|
+@Controller
|
|
|
+@RequestMapping(value = "${adminPath}/ruralProject/electronicSealYC")
|
|
|
+public class RuralProjectMessageElectronicSealYCController extends BaseController {
|
|
|
+ /**
|
|
|
+ * 阿里云文件服务器前缀
|
|
|
+ */
|
|
|
+ private final static String aliyunUrl = Global.getConfig("aliyunUrl");
|
|
|
+ @Autowired
|
|
|
+ private RuralProjectRecordsService projectRecordsService;
|
|
|
+ @Autowired
|
|
|
+ private RuralProjectMessageAllService ruralProjectMessageAllService;
|
|
|
+ @Autowired
|
|
|
+ protected HistoryService historyService;
|
|
|
+ @Autowired
|
|
|
+ private UserService userService;
|
|
|
+ @Autowired
|
|
|
+ private ProjectEngineeringService engineeringService;
|
|
|
+ @Autowired
|
|
|
+ private RuralProjectMessageElectronicSealYCService ruralProjectMessageElectronicSealYCService;
|
|
|
+ @Autowired
|
|
|
+ private RuralProjectMessageNewService ruralProjectMessageService;
|
|
|
+ @Autowired
|
|
|
+ private ProjectReportDataService projectReportDataService;
|
|
|
+ @Autowired
|
|
|
+ private ActTaskService actTaskService;
|
|
|
+ @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;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 项目列表页面
|
|
|
+ */
|
|
|
+ @RequiresPermissions("ruralProject:electronicSealYC:list")
|
|
|
+ @RequestMapping(value = {"list", ""})
|
|
|
+ public String list(RuralProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
+ if(UserUtils.isManager()){
|
|
|
+ model.addAttribute("flag","1");
|
|
|
+ }
|
|
|
+ String oldSubmitMoney = "";
|
|
|
+ //进行查询之后进行任何操作,返回还是查询之后的数据页面
|
|
|
+ if (StringUtils.isNotBlank(projectRecords.getToflag())){
|
|
|
+ request.getSession().removeAttribute("searchRuralProjectRecordsAll");
|
|
|
+ RuralProjectRecords search=projectRecords;
|
|
|
+ request.getSession().setAttribute("searchRuralProjectRecordsAll",search);
|
|
|
+ }else{
|
|
|
+ if (request.getSession().getAttribute("searchRuralProjectRecordsAll")!=null){
|
|
|
+ projectRecords= (RuralProjectRecords) request.getSession().getAttribute("searchRuralProjectRecordsAll");
|
|
|
+ model.addAttribute("ruralProjectRecords", projectRecords);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //添加查询类型(工程咨询)
|
|
|
+ List<String> typeList = Lists.newArrayList();
|
|
|
+ String oldProjectSort = null;
|
|
|
+ if (StringUtils.isBlank(projectRecords.getAttachmentProjectSort())){
|
|
|
+ typeList.add("1");
|
|
|
+ typeList.add("2");
|
|
|
+ }else {
|
|
|
+ oldProjectSort=projectRecords.getAttachmentProjectSort();
|
|
|
+ String attachmentProjectSort=projectRecords.getAttachmentProjectSort();
|
|
|
+ typeList.add(attachmentProjectSort.split("-")[0]);
|
|
|
+ projectRecords.setAttachmentProjectSort(attachmentProjectSort.split("-")[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询总审人员信息
|
|
|
+ List<User> auditUserList = userService.getAuditUserList();
|
|
|
+ model.addAttribute("userList", auditUserList);
|
|
|
+ //添加查询类型list
|
|
|
+ projectRecords.setTypeList(typeList);
|
|
|
+ projectRecords.setSubmitMoney("1");
|
|
|
+ Page<RuralProjectRecords> page = ruralProjectMessageAllService.findSignatureYCPage(new Page<RuralProjectRecords>(request, response), projectRecords);
|
|
|
+ model.addAttribute("page", page);
|
|
|
+ if(null != projectRecords.getWorkContractInfo()){
|
|
|
+ model.addAttribute("workContractInfoName", projectRecords.getWorkContractInfo().getName());
|
|
|
+ if(null != projectRecords.getWorkContractInfo().getClient()){
|
|
|
+ model.addAttribute("workContractInfoClientName", projectRecords.getWorkContractInfo().getClient().getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //无合同状态下,获取委托方的名称
|
|
|
+ List<RuralProjectRecords> list = page.getList();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ RuralProjectRecords records1 = list.get(i);
|
|
|
+ if(StringUtils.isNotBlank(records1.getReportSignatureUrl())){
|
|
|
+ records1.setReportSignatureUrlFlag(1);
|
|
|
+ //处理文件路径
|
|
|
+ //如果文件路径中包含 /xg-qz 则表示文件存储在签章的对应文件库中需要单独进行处理
|
|
|
+ if(records1.getReportSignatureUrl().contains("/xg-qz")){
|
|
|
+ if(StringUtils.isNotBlank(records1.getReportSignatureUrl())){
|
|
|
+ String signatureUrl = records1.getReportSignatureUrl().replace("/xg-qz","");
|
|
|
+ records1.setReportSignatureUrl(signatureUrl);
|
|
|
+ }
|
|
|
+ records1.setReportSignatureUrl(new OSSClientUtil().getQzFileTemporaryLookUrl(aliyunUrl + records1.getReportSignatureUrl()));
|
|
|
+ }else{
|
|
|
+ records1.setReportSignatureUrl(new OSSClientUtil().getFileTemporaryLookUrl(aliyunUrl + records1.getReportSignatureUrl()));
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ records1.setReportSignatureUrlFlag(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(StringUtils.isNotBlank(records1.getSignatureUrl())){
|
|
|
+ records1.setApprovalSignatureUrlFlag(1);
|
|
|
+ //处理文件路径
|
|
|
+ //如果文件路径中包含 /xg-qz 则表示文件存储在签章的对应文件库中需要单独进行处理
|
|
|
+ if(records1.getSignatureUrl().contains("/xg-qz")){
|
|
|
+ if(StringUtils.isNotBlank(records1.getSignatureUrl())){
|
|
|
+ String signatureUrl = records1.getSignatureUrl().replace("/xg-qz","");
|
|
|
+ records1.setSignatureUrl(signatureUrl);
|
|
|
+ }
|
|
|
+ records1.setSignatureUrl(new OSSClientUtil().getQzFileTemporaryLookUrl(aliyunUrl + records1.getSignatureUrl()));
|
|
|
+ }else{
|
|
|
+ records1.setSignatureUrl(new OSSClientUtil().getFileTemporaryLookUrl(aliyunUrl + records1.getSignatureUrl()));
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ records1.setApprovalSignatureUrlFlag(0);
|
|
|
+ }
|
|
|
+ if (records1.getWorkContractInfo() == null) {
|
|
|
+ projectRecordsService.queryLinkmanInfos(records1);
|
|
|
+ if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
|
|
|
+ WorkClientLinkman linkman = records1.getWorkClientLinkmanList().get(0);
|
|
|
+ WorkContractInfo contractInfo = new WorkContractInfo();
|
|
|
+ contractInfo.setClient(linkman.getClientId());
|
|
|
+ records1.setWorkContractInfo(contractInfo);
|
|
|
+ records1.getWorkContractInfo().setClientName(records1.getWorkContractInfo().getClient().getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //将生成的文件上传到阿里云中
|
|
|
+ ruralProjectMessageElectronicSealYCService.getFile(records1);
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(oldSubmitMoney)){
|
|
|
+ projectRecords.setSubmitMoney(oldSubmitMoney);
|
|
|
+ }
|
|
|
+ //查询工程类型
|
|
|
+ if (projectRecords.getEngineeringType()!=null){
|
|
|
+ ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
|
|
|
+ model.addAttribute("engineeringInfo", engineeringInfo);
|
|
|
+ }
|
|
|
+ model.addAttribute("beginDate", projectRecords.getBeginDate());
|
|
|
+ model.addAttribute("endDate", projectRecords.getEndDate());
|
|
|
+ //计算营业总收入
|
|
|
+ //model.addAttribute("moneyAll", ruralProjectMessageAllService.getMoneyAll(projectRecords));
|
|
|
+ model.addAttribute("reportSwitch", BaseController.REPORTSWITCH);
|
|
|
+ if (StringUtils.isNotBlank(oldProjectSort)){
|
|
|
+ model.addAttribute("oldProjectSort", oldProjectSort);
|
|
|
+ }
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/electronicSealYC/ruralProjectMessageElectronicSealYCList";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看,增加,编辑项目表单页面
|
|
|
+ */
|
|
|
+// @RequiresPermissions(value={"ruralProject:ruralCostProjectRecords:add","ruralProject:ruralCostProjectRecords:edit"},logical= Logical.OR)
|
|
|
+ @RequestMapping(value = "form")
|
|
|
+ public String form(@RequestParam(value = "id") String id, Model model) {
|
|
|
+ //查询到显示信息
|
|
|
+ ProjectReportSignatureInfo projectReportSignatureInfo = ruralProjectMessageElectronicSealYCService.findProjectReportSignatureInfoByProjectId(id);
|
|
|
+ /*if(null == projectReportSignatureInfo){
|
|
|
+ projectReportSignatureInfo = new ProjectReportSignatureInfo();
|
|
|
+ model.addAttribute("consultantName","");
|
|
|
+ }else{*/
|
|
|
+ //根据id查咨询员名称
|
|
|
+ String consultantName = ruralProjectMessageElectronicSealYCService.findZXYById(projectReportSignatureInfo.getConsultant());
|
|
|
+ model.addAttribute("consultantName",consultantName);
|
|
|
+ /*}*/
|
|
|
+ //将数据库拿到的科学计数法的数据转换成正常写法
|
|
|
+ //合同总价
|
|
|
+ if(null != projectReportSignatureInfo.getTotalContractPrice() && !projectReportSignatureInfo.getTotalContractPrice().equals("")) {
|
|
|
+ BigDecimal bd1 = new BigDecimal(projectReportSignatureInfo.getTotalContractPrice());
|
|
|
+ projectReportSignatureInfo.setTotalContractPrice(bd1.toPlainString());
|
|
|
+ }
|
|
|
+ //送审金额
|
|
|
+ if(null != projectReportSignatureInfo.getSubmitFee() && !projectReportSignatureInfo.getSubmitFee().equals("")) {
|
|
|
+ BigDecimal bd2 = new BigDecimal(projectReportSignatureInfo.getSubmitFee());
|
|
|
+ projectReportSignatureInfo.setSubmitFee(bd2.toPlainString());
|
|
|
+ }
|
|
|
+ //审定金额
|
|
|
+ if(null != projectReportSignatureInfo.getAuthorizeFee() && !projectReportSignatureInfo.getAuthorizeFee().equals("")) {
|
|
|
+ BigDecimal bd3 = new BigDecimal(projectReportSignatureInfo.getAuthorizeFee());
|
|
|
+ projectReportSignatureInfo.setAuthorizeFee(bd3.toPlainString());
|
|
|
+ }
|
|
|
+ //施工单位考核费
|
|
|
+ if(null != projectReportSignatureInfo.getConstructionUnitAssessmentFee() && !projectReportSignatureInfo.getConstructionUnitAssessmentFee().equals("")) {
|
|
|
+ BigDecimal bd4 = new BigDecimal(projectReportSignatureInfo.getConstructionUnitAssessmentFee());
|
|
|
+ projectReportSignatureInfo.setConstructionUnitAssessmentFee(bd4.toPlainString());
|
|
|
+ }
|
|
|
+ //扣除考核费后审定金额
|
|
|
+ if(null != projectReportSignatureInfo.getAuthorizeFeeDeductAssessmentFee() && !projectReportSignatureInfo.getAuthorizeFeeDeductAssessmentFee().equals("")) {
|
|
|
+ BigDecimal bd5 = new BigDecimal(projectReportSignatureInfo.getAuthorizeFeeDeductAssessmentFee());
|
|
|
+ projectReportSignatureInfo.setAuthorizeFeeDeductAssessmentFee(bd5.toPlainString());
|
|
|
+ }
|
|
|
+
|
|
|
+ model.addAttribute("projectReportSignatureInfo",projectReportSignatureInfo);
|
|
|
+ return "modules/ruralprojectrecords/electronicSeal/ruralProjectReportSignatureInfoForm";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //@RequiresPermissions("ruralProject:electronicSeal:approvalForm")
|
|
|
+ @RequestMapping(value="approvalForm")
|
|
|
+ public String approvalForm(RuralProjectRecords projectRecords, Model model){
|
|
|
+ if (projectRecords!=null&& StringUtils.isNotBlank(projectRecords.getId())) {
|
|
|
+ projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
|
+ projectRecordsService.queryProjectDetailBySignature(projectRecords,"171");
|
|
|
+ ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
|
|
|
+ projectPlanInfo.setProjectId(projectRecords.getId());
|
|
|
+ if(null != projectRecords.getWorkContractInfo()){
|
|
|
+ if(null != projectRecords.getWorkContractInfo().getContractTypeDoc()){
|
|
|
+ projectRecords.getWorkContractInfo().setContractType(DictUtils.getMainDictLabel(String.valueOf(projectRecords.getWorkContractInfo().getContractTypeDoc()),"contract_info_type",""));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<MainDictDetail> mainDictList = com.google.common.collect.Lists.newArrayList();
|
|
|
+ //工程咨询
|
|
|
+ if("1".equals(projectRecords.getProjectType())){
|
|
|
+ mainDictList = DictUtils.getMainDictList("attachment_project_sort");
|
|
|
+ //造价审核
|
|
|
+ } else if("2".equals(projectRecords.getProjectType())){
|
|
|
+ mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(projectRecords.getAttachmentProjectSort())){
|
|
|
+ //处理项目类别
|
|
|
+ for (MainDictDetail info: mainDictList) {
|
|
|
+ if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
|
|
|
+ projectRecords.setAttachmentProjectSort(info.getLabel());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询项目报告信息
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(projectRecords.getId());
|
|
|
+ //如果项目报告不为空,则查询项目线上归档信息
|
|
|
+ if(null != projectReportData){
|
|
|
+ ProjectReportRecord projectReportRecord = ruralProjectMessageService.getProjectReportRecord(projectReportData.getId());
|
|
|
+ if(null != projectReportRecord){
|
|
|
+ model.addAttribute("projectId", projectRecords.getId());
|
|
|
+ }else{
|
|
|
+ model.addAttribute("projectId", "");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ model.addAttribute("flagProjectReportData",projectReportData);
|
|
|
+
|
|
|
+ }
|
|
|
+ model.addAttribute("projectRecords", projectRecords);
|
|
|
+ RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReported(projectRecords.getId());
|
|
|
+ if (null!=reported){
|
|
|
+ model.addAttribute("reportedId",reported.getId());
|
|
|
+ }
|
|
|
+ //查询所有的工程类型
|
|
|
+ List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
|
|
|
+ model.addAttribute("engineeringInfo",engineeringInfos);
|
|
|
+ return "/modules/ruralprojectrecords/ruralporjectmessage/electronicSealYC/ruralProjectRecordsApprovalYCForm";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存审定单签章送审信息
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "approvalSave")
|
|
|
+ public String approvalSave(RuralProjectRecords projectRecords, Model model, RedirectAttributes redirectAttributes) throws Exception {
|
|
|
+ try {
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealYCService.getProjectApprovalSignature(projectRecords.getId());
|
|
|
+ if(null != projectApprovalSignature){
|
|
|
+ if(projectApprovalSignature.getStatus() == 3 || projectApprovalSignature.getStatus() == 1) {
|
|
|
+ //projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
|
|
|
+ }else if(projectApprovalSignature.getStatus() == 2){
|
|
|
+ addMessage(redirectAttributes, "审定单签章申请已送审,无法重复送审");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }else if(projectApprovalSignature.getStatus() == 5){
|
|
|
+ addMessage(redirectAttributes, "审定单签章申请已登记完成,无法再次送审");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ projectApprovalSignature.setWorkAttachments(projectRecords.getWorkAttachments());
|
|
|
+ ruralProjectMessageElectronicSealYCService.approvalSave(projectApprovalSignature);//保存
|
|
|
+ }else{
|
|
|
+ projectApprovalSignature = new ProjectApprovalSignature();
|
|
|
+ projectApprovalSignature.setProjectId(projectRecords.getId());
|
|
|
+ projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
|
|
|
+ projectApprovalSignature.setWorkAttachments(projectRecords.getWorkAttachments());
|
|
|
+ ruralProjectMessageElectronicSealYCService.approvalSave(projectApprovalSignature);//保存
|
|
|
+ }
|
|
|
+ addMessage(redirectAttributes, "保存审定单签章申请成功");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error("保存审定单签章申请异常:",e);
|
|
|
+ addMessage(redirectAttributes, "保存审定单签章申请异常:"+e.getMessage());
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 审批
|
|
|
+ * @param projectRecords
|
|
|
+ * @param model
|
|
|
+ * @param redirectAttributes
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping("approvalSaveAudit")
|
|
|
+ public String approvalSaveAudit(RuralProjectRecords projectRecords, Model model, RedirectAttributes redirectAttributes,Integer saveAuditFlag) {
|
|
|
+ String home = projectRecords.getHome();
|
|
|
+ try {
|
|
|
+ String taskDefKey = projectRecords.getAct().getTaskDefKey();
|
|
|
+ //当状态为未通过时,重新修改数据
|
|
|
+ if ("modifyApply".equals(taskDefKey)) {
|
|
|
+ projectRecords.getAct().setComment("重新申请");
|
|
|
+ }
|
|
|
+ //List<User> users = UserUtils.getByProssType(projectRecords.getProcessInstanceId(),1);
|
|
|
+ List<User> users = Lists.newArrayList();
|
|
|
+
|
|
|
+ User user = UserUtils.getByUserName("郑炎基");
|
|
|
+ if(null != user ){
|
|
|
+ users.add(user);
|
|
|
+ }
|
|
|
+ String flag = projectRecords.getAct().getFlag();
|
|
|
+ if ("yes".equals(flag) && (users==null || users.size()==0)){
|
|
|
+ addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
|
|
|
+ }else {
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealYCService.getProjectApprovalSignature(projectRecords.getId());
|
|
|
+ projectApprovalSignature.setAct(projectRecords.getAct());
|
|
|
+ if(null != saveAuditFlag) {
|
|
|
+ if (projectApprovalSignature.getStatus() != 4 && projectApprovalSignature.getStatus() != 5) {
|
|
|
+ addMessage(redirectAttributes, "审定单签章申请已送审,请勿重复送审");
|
|
|
+ if (StringUtils.isNotBlank(home) && "home".equals(home)) {
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ } else {
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(projectApprovalSignature.getStatus() == 5){
|
|
|
+ addMessage(redirectAttributes, "审定单签章申请已登记完成,无法再次送审");
|
|
|
+ if (StringUtils.isNotBlank(home) && "home".equals(home)){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ }else {
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String str = ruralProjectMessageElectronicSealYCService.approvalSaveAudit(projectApprovalSignature,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 {
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 读取单个实体流程
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "getReportedProcess")
|
|
|
+ public String getReportedProcess(RuralProjectRecords projectRecords,Model model) {
|
|
|
+ model.addAttribute("processInstanceId", projectRecords.getProcessInstanceId());
|
|
|
+ return "modules/workreimbursement/workReimbursementTrack";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @RequestMapping(value = "approvalModify")
|
|
|
+ public String approvalModify(RuralProjectRecords projectRecords, Model model) {
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealYCService.getProjectApprovalSignature(projectRecords.getId());
|
|
|
+ projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
|
+ projectRecordsService.queryProjectDetailBySignature(projectRecords,"171");
|
|
|
+ projectRecords.setProcessInstanceId(projectApprovalSignature.getProcessInstanceId());
|
|
|
+ projectRecords.setProjectStatus(projectApprovalSignature.getStatus());
|
|
|
+ ProcessInstance processInstance = actTaskService.getProcIns(projectRecords.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);
|
|
|
+ projectRecords.setAct(act);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询所有的工程类型
|
|
|
+ List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
|
|
|
+
|
|
|
+ //处理项目类别
|
|
|
+ List<MainDictDetail> mainDictList = com.google.common.collect.Lists.newArrayList();
|
|
|
+ if("1".equals(projectRecords.getProjectType())){
|
|
|
+ mainDictList = DictUtils.getMainDictList("attachment_project_sort");
|
|
|
+ }else if("2".equals(projectRecords.getProjectType())){
|
|
|
+ mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
|
|
|
+ }
|
|
|
+ for (MainDictDetail info: mainDictList) {
|
|
|
+ if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
|
|
|
+ projectRecords.setAttachmentProjectSort(info.getLabel());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询工程类型信息
|
|
|
+ ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
|
|
|
+ model.addAttribute("engInfo", engineeringInfo);
|
|
|
+ model.addAttribute("engineeringInfo",engineeringInfos);
|
|
|
+ model.addAttribute("processInstanceId", projectRecords.getProcessInstanceId());
|
|
|
+ model.addAttribute("projectRecords", projectRecords);
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/electronicSealYC/ruralProjectRecordsApprovalYCModify";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @RequestMapping(value = "approvalRevoke")
|
|
|
+ public String approvalRevoke(HttpServletRequest request, RedirectAttributes redirectAttributes) {
|
|
|
+ HashMap<String, String> requestMap = findRequestMap(request);
|
|
|
+ String id = requestMap.get("id");
|
|
|
+ try {
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealYCService.getProjectApprovalSignature(id);
|
|
|
+
|
|
|
+ if("5".equals(projectApprovalSignature.getStatus())){
|
|
|
+ addMessage(redirectAttributes, "审定单签章申请已审批通过,无法撤回");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ ruralProjectMessageElectronicSealYCService.cancelApprovalProcess(projectApprovalSignature);
|
|
|
+ addMessage(redirectAttributes, "撤回该审定单签章申请审批成功");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.info(e.getMessage());
|
|
|
+ addMessage(redirectAttributes, "撤回该审定单签章申请审批失败");
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //@RequiresPermissions("ruralProject:electronicSeal:reportSignatureForm")
|
|
|
+ @RequestMapping(value="reportSignatureForm")
|
|
|
+ public String reportSignatureForm(RuralProjectRecords projectRecords, Model model){
|
|
|
+ if (projectRecords!=null&& StringUtils.isNotBlank(projectRecords.getId())) {
|
|
|
+ projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
|
+ projectRecordsService.queryProjectDetailBySignature(projectRecords,"145");
|
|
|
+ ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
|
|
|
+ projectPlanInfo.setProjectId(projectRecords.getId());
|
|
|
+ if(null != projectRecords.getWorkContractInfo()){
|
|
|
+ if(null != projectRecords.getWorkContractInfo().getContractTypeDoc()){
|
|
|
+ projectRecords.getWorkContractInfo().setContractType(DictUtils.getMainDictLabel(String.valueOf(projectRecords.getWorkContractInfo().getContractTypeDoc()),"contract_info_type",""));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<MainDictDetail> mainDictList = com.google.common.collect.Lists.newArrayList();
|
|
|
+ //工程咨询
|
|
|
+ if("1".equals(projectRecords.getProjectType())){
|
|
|
+ mainDictList = DictUtils.getMainDictList("attachment_project_sort");
|
|
|
+ //造价审核
|
|
|
+ } else if("2".equals(projectRecords.getProjectType())){
|
|
|
+ mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(projectRecords.getAttachmentProjectSort())){
|
|
|
+ //处理项目类别
|
|
|
+ for (MainDictDetail info: mainDictList) {
|
|
|
+ if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
|
|
|
+ projectRecords.setAttachmentProjectSort(info.getLabel());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询项目报告信息
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(projectRecords.getId());
|
|
|
+ //如果项目报告不为空,则查询项目线上归档信息
|
|
|
+ if(null != projectReportData){
|
|
|
+ ProjectReportRecord projectReportRecord = ruralProjectMessageService.getProjectReportRecord(projectReportData.getId());
|
|
|
+ if(null != projectReportRecord){
|
|
|
+ model.addAttribute("projectId", projectRecords.getId());
|
|
|
+ }else{
|
|
|
+ model.addAttribute("projectId", "");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ model.addAttribute("flagProjectReportData",projectReportData);
|
|
|
+
|
|
|
+ }
|
|
|
+ model.addAttribute("projectRecords", projectRecords);
|
|
|
+ RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReported(projectRecords.getId());
|
|
|
+ if (null!=reported){
|
|
|
+ model.addAttribute("reportedId",reported.getId());
|
|
|
+ }
|
|
|
+ //查询所有的工程类型
|
|
|
+ List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
|
|
|
+ model.addAttribute("engineeringInfo",engineeringInfos);
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/electronicSealYC/ruralProjectRecordsReportSignatureYCForm";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存报告签章送审信息
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "reportSignatureSave")
|
|
|
+ public String reportSignatureSave(RuralProjectRecords projectRecords, RedirectAttributes redirectAttributes) {
|
|
|
+ try {
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealYCService.getProjectReportSignature(projectRecords.getId());
|
|
|
+ if(null != projectApprovalSignature){
|
|
|
+ if(projectApprovalSignature.getStatus() == 3 || projectApprovalSignature.getStatus() == 1) {
|
|
|
+ //projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
|
|
|
+ }else if(projectApprovalSignature.getStatus() == 2){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已送审,无法重复送审");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }else if(projectApprovalSignature.getStatus() == 5){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已登记完成,无法再次送审");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ ruralProjectMessageElectronicSealYCService.reportSignatureSave(projectApprovalSignature);//保存
|
|
|
+ }else{
|
|
|
+ projectApprovalSignature = new ProjectReportSignature();
|
|
|
+ projectApprovalSignature.setProjectId(projectRecords.getId());
|
|
|
+ projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
|
|
|
+ ruralProjectMessageElectronicSealYCService.reportSignatureSave(projectApprovalSignature);//保存
|
|
|
+ }
|
|
|
+ addMessage(redirectAttributes, "保存报告签章申请成功");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.error("保存报告签章申请异常:",e);
|
|
|
+ addMessage(redirectAttributes, "保存报告签章申请异常:"+e.getMessage());
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 审批
|
|
|
+ * @param projectRecords
|
|
|
+ * @param redirectAttributes
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping("reportSignatureSaveAudit")
|
|
|
+ public String reportSignatureSaveAudit(RuralProjectRecords projectRecords, RedirectAttributes redirectAttributes,Integer saveAuditFlag) {
|
|
|
+ String home = projectRecords.getHome();
|
|
|
+ try {
|
|
|
+ String taskDefKey = projectRecords.getAct().getTaskDefKey();
|
|
|
+ //当状态为未通过时,重新修改数据
|
|
|
+ if ("modifyApply".equals(taskDefKey)) {
|
|
|
+ projectRecords.getAct().setComment("重新申请");
|
|
|
+ }
|
|
|
+ //List<User> users = UserUtils.getByProssType(projectRecords.getProcessInstanceId(),1);
|
|
|
+ List<User> users = Lists.newArrayList();
|
|
|
+ if ("szzk".equals(taskDefKey)){
|
|
|
+ User user = UserUtils.getByUserName("郑炎基");
|
|
|
+ if(null != user ){
|
|
|
+ users.add(user);
|
|
|
+ }
|
|
|
+ /*users = UserUtils.getByProssType(projectRecords.getProcessInstanceId(),2);
|
|
|
+ if (users==null )
|
|
|
+ users = UserUtils.getByRoleActivityEnname("bmzr",2,projectRecords.getOffice().getId(),"2",projectRecords.getCreateBy());*/
|
|
|
+ }else if ("bmzr".equals(taskDefKey)){
|
|
|
+ User user = UserUtils.getByUserName("郑炎基");
|
|
|
+ if(null != user ){
|
|
|
+ users.add(user);
|
|
|
+ }
|
|
|
+ /*users = UserUtils.getByProssType(projectRecords.getProcessInstanceId(),2);
|
|
|
+ if (users==null )
|
|
|
+ users = UserUtils.getByRoleActivityEnname("bmzr",2,projectRecords.getOffice().getId(),"2",projectRecords.getCreateBy());*/
|
|
|
+ }else if ("modifyApply".equals(taskDefKey)){
|
|
|
+ users = UserUtils.getByProssType(projectRecords.getProcessInstanceId(),1);
|
|
|
+ }
|
|
|
+ String flag = projectRecords.getAct().getFlag();
|
|
|
+ if ("yes".equals(flag) && (users==null || users.size()==0)){
|
|
|
+ addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
|
|
|
+ }else {
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealYCService.getProjectReportSignature(projectRecords.getId());
|
|
|
+ projectApprovalSignature.setAct(projectRecords.getAct());
|
|
|
+ if(null != saveAuditFlag) {
|
|
|
+ if (projectApprovalSignature.getStatus() != 4 && projectApprovalSignature.getStatus() != 5) {
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已送审,请勿重复送审");
|
|
|
+ if (StringUtils.isNotBlank(home) && "home".equals(home)) {
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ } else {
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(projectApprovalSignature.getStatus() == 5){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已登记完成,无法再次送审");
|
|
|
+ if (StringUtils.isNotBlank(home) && "home".equals(home)){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ }else {
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String str = ruralProjectMessageElectronicSealYCService.reportSignatureSaveAudit(projectApprovalSignature,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 {
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @RequestMapping(value = "reportSignatureModify")
|
|
|
+ public String reportSignatureModify(RuralProjectRecords projectRecords, Model model) {
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealYCService.getProjectReportSignature(projectRecords.getId());
|
|
|
+ projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
|
+ projectRecordsService.queryProjectDetail(projectRecords);
|
|
|
+ projectRecords.setProcessInstanceId(projectApprovalSignature.getProcessInstanceId());
|
|
|
+ projectRecords.setProjectStatus(projectApprovalSignature.getStatus());
|
|
|
+ ProcessInstance processInstance = actTaskService.getProcIns(projectRecords.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);
|
|
|
+ projectRecords.setAct(act);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询所有的工程类型
|
|
|
+ List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
|
|
|
+
|
|
|
+ //处理项目类别
|
|
|
+ List<MainDictDetail> mainDictList = com.google.common.collect.Lists.newArrayList();
|
|
|
+ if("1".equals(projectRecords.getProjectType())){
|
|
|
+ mainDictList = DictUtils.getMainDictList("attachment_project_sort");
|
|
|
+ }else if("2".equals(projectRecords.getProjectType())){
|
|
|
+ mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
|
|
|
+ }
|
|
|
+ for (MainDictDetail info: mainDictList) {
|
|
|
+ if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
|
|
|
+ projectRecords.setAttachmentProjectSort(info.getLabel());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询工程类型信息
|
|
|
+ ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
|
|
|
+ model.addAttribute("engInfo", engineeringInfo);
|
|
|
+ model.addAttribute("engineeringInfo",engineeringInfos);
|
|
|
+ model.addAttribute("processInstanceId", projectRecords.getProcessInstanceId());
|
|
|
+ model.addAttribute("projectRecords", projectRecords);
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/electronicSealYC//ruralProjectRecordsReportSignatureYCModify";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @RequestMapping(value = "reportSignatureRevoke")
|
|
|
+ public String reportSignatureRevoke(HttpServletRequest request, RedirectAttributes redirectAttributes) {
|
|
|
+ HashMap<String, String> requestMap = findRequestMap(request);
|
|
|
+ String id = requestMap.get("id");
|
|
|
+ try {
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
+ ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealYCService.getProjectReportSignature(id);
|
|
|
+
|
|
|
+ if("5".equals(projectApprovalSignature.getStatus())){
|
|
|
+ addMessage(redirectAttributes, "报告签章申请已审批通过,无法撤回");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+ ruralProjectMessageElectronicSealYCService.cancelReportSignatureProcess(projectApprovalSignature);
|
|
|
+ addMessage(redirectAttributes, "撤回该报告签章申请审批成功");
|
|
|
+ }catch (Exception e){
|
|
|
+ logger.info(e.getMessage());
|
|
|
+ addMessage(redirectAttributes, "撤回该报告签章申请审批失败");
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 下载工程造价咨询质量控制流程单信息
|
|
|
+ * @param response
|
|
|
+ * @param projectReportData
|
|
|
+ */
|
|
|
+ @RequestMapping(value="downloadMassControl")
|
|
|
+ @ResponseBody
|
|
|
+ public void downloadMassControl(HttpServletResponse response, ProjectReportData projectReportData) {
|
|
|
+ Map<String,Object> data = ruralProjectMessageElectronicSealYCService.disposeProjectReportdata(projectReportData);
|
|
|
+ String projectName = (String) data.get("projectName");
|
|
|
+ String number = (String) data.get("number");
|
|
|
+
|
|
|
+ //模板对象
|
|
|
+ Template template=null;
|
|
|
+ //freemaker模板路径
|
|
|
+ File path = new File(this.getClass().getResource("/").getPath()+"/freemarker");
|
|
|
+ Configuration cfg = new Configuration();
|
|
|
+ try {
|
|
|
+ cfg.setDirectoryForTemplateLoading(path);
|
|
|
+ //选择对应的ftl文件
|
|
|
+ template = cfg.getTemplate("projectSignature.ftl","UTF-8");
|
|
|
+ File docFile = new File("报告号【"+number + "】报告签章.doc");
|
|
|
+ FreemarkerUtil.generateFile(data,template,docFile);
|
|
|
+ ResponseUtil.docResponse("报告号【"+number + "】项目名称:" + projectName + " 报告签章.doc",docFile,response);
|
|
|
+ //将生成的文件上传到阿里云中
|
|
|
+ ruralProjectMessageElectronicSealYCService.uploadOss(projectReportData,docFile);
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }finally {
|
|
|
+
|
|
|
+ //获取tomcat的路径
|
|
|
+ String tomcatFilePath=System.getProperty("catalina.home");
|
|
|
+ //删除tomcat目录下的处理后的文件信息
|
|
|
+ File tomcatFile = new File(tomcatFilePath+"/bin/"+"报告号【"+number + "】报告签章.doc");
|
|
|
+ if (tomcatFile.isFile()) {
|
|
|
+ tomcatFile.delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 导入造价审核B类项目数据
|
|
|
+ */
|
|
|
+ @RequiresPermissions("ruralProject:ruralProjectMessageAll:importB")
|
|
|
+ @RequestMapping(value = "importB", method=RequestMethod.POST)
|
|
|
+ public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) {
|
|
|
+ try {
|
|
|
+ ImportExcelNew importExcelNew = new ImportExcelNew();
|
|
|
+ List<ProjectReportSignatureInfo> list = importExcelNew.ImportExcelNew(file,1,0); //只处理file 1不要也可以,0为sheet编号
|
|
|
+
|
|
|
+ //对数据进行处理
|
|
|
+ String resultStr = ruralProjectMessageElectronicSealYCService.disposeImportBRuralProjectRecords(list);
|
|
|
+ addMessage(redirectAttributes, resultStr);
|
|
|
+ } catch (Exception e) {
|
|
|
+ addMessage(redirectAttributes, "导入B类项目失败!失败信息:"+e.getMessage());
|
|
|
+ }
|
|
|
+ return "redirect:"+ Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 下载导入造价审核B类项目数据模板
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "importB/template")
|
|
|
+ public String importFileTemplateB(HttpServletResponse response, HttpServletRequest request) {
|
|
|
+ try {
|
|
|
+ ThisLocalityDownloadUtil download = new ThisLocalityDownloadUtil();
|
|
|
+ download.download("签章导入数据模板.xlsx",request,response); //自制的导入模板
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("导入数据模板下载失败!",e);
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 报告签章信息保存
|
|
|
+ */
|
|
|
+// @RequiresPermissions(value={"ruralProject:ruralCostProjectRecords:add","ruralProject:ruralCostProjectRecords:edit"},logical= Logical.OR)
|
|
|
+ @Transactional(readOnly = false)
|
|
|
+ @RequestMapping(value = "save")
|
|
|
+ public String save(ProjectReportSignatureInfo projectReportSignatureInfo, RedirectAttributes redirectAttributes,
|
|
|
+ @RequestParam(value = "consultantName") String consultantName) throws Exception {
|
|
|
+// if (!beanValidator(model, projectRecords)){
|
|
|
+// return form(projectRecords, model);
|
|
|
+// }
|
|
|
+ if(null == projectReportSignatureInfo.getConsultant() || projectReportSignatureInfo.getConsultant().equals("")){
|
|
|
+ String consultant = ruralProjectMessageElectronicSealYCService.findZXYByName(consultantName);
|
|
|
+ projectReportSignatureInfo.setConsultant(consultant);
|
|
|
+ }
|
|
|
+ //修改
|
|
|
+ ruralProjectMessageElectronicSealYCService.updateProjectReportSignatureInfo(projectReportSignatureInfo);
|
|
|
+
|
|
|
+
|
|
|
+ addMessage(redirectAttributes, "报告签章信息修改成功");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSealYC/?repage";
|
|
|
+ }
|
|
|
+}
|