|
@@ -1,5 +1,7 @@
|
|
package com.jeeplus.modules.ruralprojectrecords.web;
|
|
package com.jeeplus.modules.ruralprojectrecords.web;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.google.common.collect.Maps;
|
|
import com.jeeplus.common.config.Global;
|
|
import com.jeeplus.common.config.Global;
|
|
import com.jeeplus.common.oss.OSSClientUtil;
|
|
import com.jeeplus.common.oss.OSSClientUtil;
|
|
import com.jeeplus.common.persistence.Page;
|
|
import com.jeeplus.common.persistence.Page;
|
|
@@ -16,15 +18,16 @@ import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
|
|
import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
|
|
import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
|
|
import com.jeeplus.modules.ruralprojectrecords.entity.*;
|
|
import com.jeeplus.modules.ruralprojectrecords.entity.*;
|
|
import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
|
|
import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
|
|
-import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageAllService;
|
|
|
|
-import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageElectronicSealService;
|
|
|
|
-import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageNewService;
|
|
|
|
-import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
|
|
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.*;
|
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.utils.FileUtil;
|
|
import com.jeeplus.modules.sys.entity.MainDictDetail;
|
|
import com.jeeplus.modules.sys.entity.MainDictDetail;
|
|
import com.jeeplus.modules.sys.entity.User;
|
|
import com.jeeplus.modules.sys.entity.User;
|
|
|
|
+import com.jeeplus.modules.sys.entity.Workattachment;
|
|
import com.jeeplus.modules.sys.service.UserService;
|
|
import com.jeeplus.modules.sys.service.UserService;
|
|
|
|
+import com.jeeplus.modules.sys.service.WorkattachmentService;
|
|
import com.jeeplus.modules.sys.utils.DictUtils;
|
|
import com.jeeplus.modules.sys.utils.DictUtils;
|
|
import com.jeeplus.modules.sys.utils.UserUtils;
|
|
import com.jeeplus.modules.sys.utils.UserUtils;
|
|
|
|
+import com.jeeplus.modules.tools.utils.SignaturePostUtil;
|
|
import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
|
|
import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
|
|
import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
|
|
import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
|
|
import freemarker.template.Configuration;
|
|
import freemarker.template.Configuration;
|
|
@@ -42,6 +45,7 @@ import org.springframework.ui.Model;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
+import redis.clients.jedis.Jedis;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
@@ -79,11 +83,15 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
@Autowired
|
|
@Autowired
|
|
private RuralProjectMessageNewService ruralProjectMessageService;
|
|
private RuralProjectMessageNewService ruralProjectMessageService;
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private RuralProjectMessageService projectMessageService;
|
|
|
|
+ @Autowired
|
|
private ProjectReportDataService projectReportDataService;
|
|
private ProjectReportDataService projectReportDataService;
|
|
@Autowired
|
|
@Autowired
|
|
private ActTaskService actTaskService;
|
|
private ActTaskService actTaskService;
|
|
@Autowired
|
|
@Autowired
|
|
private RuralProjectRecordsService ruralProjectRecordsService;
|
|
private RuralProjectRecordsService ruralProjectRecordsService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private WorkattachmentService workattachmentService;
|
|
|
|
|
|
@ModelAttribute
|
|
@ModelAttribute
|
|
public RuralProjectRecords get(@RequestParam(required=false) String id) {
|
|
public RuralProjectRecords get(@RequestParam(required=false) String id) {
|
|
@@ -125,7 +133,6 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
typeList.add("1");
|
|
typeList.add("1");
|
|
typeList.add("2");
|
|
typeList.add("2");
|
|
}else {
|
|
}else {
|
|
- oldProjectSort=projectRecords.getAttachmentProjectSort();
|
|
|
|
String attachmentProjectSort=projectRecords.getAttachmentProjectSort();
|
|
String attachmentProjectSort=projectRecords.getAttachmentProjectSort();
|
|
typeList.add(attachmentProjectSort.split("-")[0]);
|
|
typeList.add(attachmentProjectSort.split("-")[0]);
|
|
projectRecords.setAttachmentProjectSort(attachmentProjectSort.split("-")[1]);
|
|
projectRecords.setAttachmentProjectSort(attachmentProjectSort.split("-")[1]);
|
|
@@ -139,12 +146,6 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
projectRecords.setSubmitMoney("1");
|
|
projectRecords.setSubmitMoney("1");
|
|
Page<RuralProjectRecords> page = ruralProjectMessageAllService.findSignaturePage(new Page<RuralProjectRecords>(request, response), projectRecords);
|
|
Page<RuralProjectRecords> page = ruralProjectMessageAllService.findSignaturePage(new Page<RuralProjectRecords>(request, response), projectRecords);
|
|
model.addAttribute("page", page);
|
|
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();
|
|
List<RuralProjectRecords> list = page.getList();
|
|
for (int i = 0; i < list.size(); i++) {
|
|
for (int i = 0; i < list.size(); i++) {
|
|
@@ -182,6 +183,24 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
}else{
|
|
}else{
|
|
records1.setApprovalSignatureUrlFlag(0);
|
|
records1.setApprovalSignatureUrlFlag(0);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if(StringUtils.isNotBlank(records1.getReportInternalAuditSignatureUrl())){
|
|
|
|
+ records1.setReportInternalAuditSignatureUrlFlag(1);
|
|
|
|
+ //处理文件路径
|
|
|
|
+ //如果文件路径中包含 /xg-qz 则表示文件存储在签章的对应文件库中需要单独进行处理
|
|
|
|
+ if(records1.getReportInternalAuditSignatureUrl().contains("/xg-qz")){
|
|
|
|
+ if(StringUtils.isNotBlank(records1.getReportInternalAuditSignatureUrl())){
|
|
|
|
+ String signatureUrl = records1.getReportInternalAuditSignatureUrl().replace("/xg-qz","");
|
|
|
|
+ records1.setReportInternalAuditSignatureUrl(signatureUrl);
|
|
|
|
+ }
|
|
|
|
+ records1.setReportInternalAuditSignatureUrl(new OSSClientUtil().getQzFileTemporaryLookUrl(aliyunUrl + records1.getReportInternalAuditSignatureUrl()));
|
|
|
|
+ }else{
|
|
|
|
+ records1.setReportInternalAuditSignatureUrl(new OSSClientUtil().getFileTemporaryLookUrl(aliyunUrl + records1.getReportInternalAuditSignatureUrl()));
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ records1.setReportInternalAuditSignatureUrlFlag(0);
|
|
|
|
+ }
|
|
|
|
+
|
|
if (records1.getWorkContractInfo() == null) {
|
|
if (records1.getWorkContractInfo() == null) {
|
|
projectRecordsService.queryLinkmanInfos(records1);
|
|
projectRecordsService.queryLinkmanInfos(records1);
|
|
if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
|
|
if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
|
|
@@ -195,22 +214,30 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
//将生成的文件上传到阿里云中
|
|
//将生成的文件上传到阿里云中
|
|
ruralProjectMessageElectronicSealService.getFile(records1);
|
|
ruralProjectMessageElectronicSealService.getFile(records1);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ for (RuralProjectRecords records : list) {
|
|
|
|
+ records.setInternalAuditFlag("0");
|
|
|
|
+ switch (records.getProjectType()){
|
|
|
|
+ case "1": //工程咨询
|
|
|
|
+ //项目为工程咨询的且项目类型为8的为内审字项目(需要进行内审报告签发)
|
|
|
|
+ if(StringUtils.isNotBlank(records.getAttachmentProjectSort()) && records.getAttachmentProjectSort().equals("8")){
|
|
|
|
+ records.setInternalAuditFlag("1");
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case "2": //造价审核
|
|
|
|
+ //项目为造价审核的且项目类型为5、6的为内审字项目(需要进行内审报告签发)
|
|
|
|
+ if(StringUtils.isNotBlank(records.getAttachmentProjectSort()) && (records.getAttachmentProjectSort().equals("5") || records.getAttachmentProjectSort().equals("6"))){
|
|
|
|
+ records.setInternalAuditFlag("1");
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if(StringUtils.isNotBlank(oldSubmitMoney)){
|
|
if(StringUtils.isNotBlank(oldSubmitMoney)){
|
|
projectRecords.setSubmitMoney(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("beginDate", projectRecords.getBeginDate());
|
|
model.addAttribute("endDate", projectRecords.getEndDate());
|
|
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/electronicSeal/ruralProjectMessageElectronicSealList";
|
|
return "modules/ruralprojectrecords/ruralporjectmessage/electronicSeal/ruralProjectMessageElectronicSealList";
|
|
}
|
|
}
|
|
|
|
|
|
@@ -257,17 +284,77 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
BigDecimal bd5 = new BigDecimal(projectReportSignatureInfo.getAuthorizeFeeDeductAssessmentFee());
|
|
BigDecimal bd5 = new BigDecimal(projectReportSignatureInfo.getAuthorizeFeeDeductAssessmentFee());
|
|
projectReportSignatureInfo.setAuthorizeFeeDeductAssessmentFee(bd5.toPlainString());
|
|
projectReportSignatureInfo.setAuthorizeFeeDeductAssessmentFee(bd5.toPlainString());
|
|
}
|
|
}
|
|
-
|
|
|
|
model.addAttribute("projectReportSignatureInfo",projectReportSignatureInfo);
|
|
model.addAttribute("projectReportSignatureInfo",projectReportSignatureInfo);
|
|
|
|
+
|
|
|
|
+ switch (projectReportSignatureInfo.getType()){
|
|
|
|
+ case "1":
|
|
|
|
+ return "modules/ruralprojectrecords/electronicSeal/ruralProjectReportSignatureInfoForm";
|
|
|
|
+ case "2":
|
|
|
|
+ return "modules/ruralprojectrecords/electronicSeal/ruralProjectReportHSSignatureInfoForm";
|
|
|
|
+ }
|
|
return "modules/ruralprojectrecords/electronicSeal/ruralProjectReportSignatureInfoForm";
|
|
return "modules/ruralprojectrecords/electronicSeal/ruralProjectReportSignatureInfoForm";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 查看,增加,编辑内审报告信息
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "internalAuditForm")
|
|
|
|
+ public String internalAuditForm(@RequestParam(value = "id") String id, Model model) {
|
|
|
|
+ //查询到显示信息
|
|
|
|
+ ProjectReportSignatureInfo projectReportInternalAuditInfo = ruralProjectMessageElectronicSealService.findProjectReportInternalAuditInfoByProjectId(id);
|
|
|
|
+ /*if(null == projectReportSignatureInfo){
|
|
|
|
+ projectReportSignatureInfo = new ProjectReportSignatureInfo();
|
|
|
|
+ model.addAttribute("consultantName","");
|
|
|
|
+ }else{*/
|
|
|
|
+ //根据id查咨询员名称
|
|
|
|
+ String consultantName = ruralProjectMessageElectronicSealService.findZXYById(projectReportInternalAuditInfo.getConsultant());
|
|
|
|
+ model.addAttribute("consultantName",consultantName);
|
|
|
|
+ /*}*/
|
|
|
|
+ //将数据库拿到的科学计数法的数据转换成正常写法
|
|
|
|
+ //送审金额
|
|
|
|
+ if(null != projectReportInternalAuditInfo.getSubmitFee() && !projectReportInternalAuditInfo.getSubmitFee().equals("")) {
|
|
|
|
+ BigDecimal bd2 = new BigDecimal(projectReportInternalAuditInfo.getSubmitFee());
|
|
|
|
+ projectReportInternalAuditInfo.setSubmitFee(bd2.toPlainString());
|
|
|
|
+ }
|
|
|
|
+ //审定金额
|
|
|
|
+ if(null != projectReportInternalAuditInfo.getAuthorizeFee() && !projectReportInternalAuditInfo.getAuthorizeFee().equals("")) {
|
|
|
|
+ BigDecimal bd3 = new BigDecimal(projectReportInternalAuditInfo.getAuthorizeFee());
|
|
|
|
+ projectReportInternalAuditInfo.setAuthorizeFee(bd3.toPlainString());
|
|
|
|
+ }
|
|
|
|
+ //核减金额
|
|
|
|
+ if(null != projectReportInternalAuditInfo.getDecreaseInAccountingFee() && !projectReportInternalAuditInfo.getDecreaseInAccountingFee().equals("")) {
|
|
|
|
+ BigDecimal bd6 = new BigDecimal(projectReportInternalAuditInfo.getDecreaseInAccountingFee());
|
|
|
|
+ projectReportInternalAuditInfo.setDecreaseInAccountingFee(bd6.toPlainString());
|
|
|
|
+ }
|
|
|
|
+ //施工单位考核费
|
|
|
|
+ if(null != projectReportInternalAuditInfo.getConstructionUnitAssessmentFee() && !projectReportInternalAuditInfo.getConstructionUnitAssessmentFee().equals("")) {
|
|
|
|
+ BigDecimal bd4 = new BigDecimal(projectReportInternalAuditInfo.getConstructionUnitAssessmentFee());
|
|
|
|
+ projectReportInternalAuditInfo.setConstructionUnitAssessmentFee(bd4.toPlainString());
|
|
|
|
+ }
|
|
|
|
+ //扣除考核费后审定金额
|
|
|
|
+ if(null != projectReportInternalAuditInfo.getAuthorizeFeeDeductAssessmentFee() && !projectReportInternalAuditInfo.getAuthorizeFeeDeductAssessmentFee().equals("")) {
|
|
|
|
+ BigDecimal bd5 = new BigDecimal(projectReportInternalAuditInfo.getAuthorizeFeeDeductAssessmentFee());
|
|
|
|
+ projectReportInternalAuditInfo.setAuthorizeFeeDeductAssessmentFee(bd5.toPlainString());
|
|
|
|
+ }
|
|
|
|
+ model.addAttribute("projectReportInternalAuditInfo",projectReportInternalAuditInfo);
|
|
|
|
+
|
|
|
|
+ return "modules/ruralprojectrecords/electronicSeal/ruralProjectReportNSBGSignatureInfoForm";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
//@RequiresPermissions("ruralProject:electronicSeal:approvalForm")
|
|
//@RequiresPermissions("ruralProject:electronicSeal:approvalForm")
|
|
@RequestMapping(value="approvalForm")
|
|
@RequestMapping(value="approvalForm")
|
|
public String approvalForm(RuralProjectRecords projectRecords, Model model){
|
|
public String approvalForm(RuralProjectRecords projectRecords, Model model){
|
|
if (projectRecords!=null&& StringUtils.isNotBlank(projectRecords.getId())) {
|
|
if (projectRecords!=null&& StringUtils.isNotBlank(projectRecords.getId())) {
|
|
projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
|
|
+
|
|
|
|
+ //判定是否为工程造价(上海)项目
|
|
|
|
+ if("2".equals(projectRecords.getProjectType()) && "20".equals(projectRecords.getAttachmentProjectSort())){
|
|
|
|
+ model.addAttribute("approvalType",1);
|
|
|
|
+ }else{
|
|
|
|
+ model.addAttribute("approvalType",0);
|
|
|
|
+ }
|
|
projectRecordsService.queryProjectDetailBySignature(projectRecords,"144");
|
|
projectRecordsService.queryProjectDetailBySignature(projectRecords,"144");
|
|
ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
|
|
ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
|
|
projectPlanInfo.setProjectId(projectRecords.getId());
|
|
projectPlanInfo.setProjectId(projectRecords.getId());
|
|
@@ -288,6 +375,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
//处理项目类别
|
|
//处理项目类别
|
|
for (MainDictDetail info: mainDictList) {
|
|
for (MainDictDetail info: mainDictList) {
|
|
if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
|
|
if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
|
|
|
|
+ projectRecords.setAttachmentProjectSortKey(projectRecords.getAttachmentProjectSort());
|
|
projectRecords.setAttachmentProjectSort(info.getLabel());
|
|
projectRecords.setAttachmentProjectSort(info.getLabel());
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -314,6 +402,14 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
if (null!=reported){
|
|
if (null!=reported){
|
|
model.addAttribute("reportedId",reported.getId());
|
|
model.addAttribute("reportedId",reported.getId());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
|
+ ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
|
|
|
|
+ if(null != projectApprovalSignature && StringUtils.isNotBlank(projectApprovalSignature.getSignatureType())){
|
|
|
|
+ model.addAttribute("signatureType",projectApprovalSignature.getSignatureType());
|
|
|
|
+ }else{
|
|
|
|
+ model.addAttribute("signatureType","");
|
|
|
|
+ }
|
|
//查询所有的工程类型
|
|
//查询所有的工程类型
|
|
List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
|
|
List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
|
|
model.addAttribute("engineeringInfo",engineeringInfos);
|
|
model.addAttribute("engineeringInfo",engineeringInfos);
|
|
@@ -322,9 +418,15 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
|
|
|
|
/**
|
|
/**
|
|
* 保存审定单签章送审信息
|
|
* 保存审定单签章送审信息
|
|
|
|
+ * @param projectRecords
|
|
|
|
+ * @param signatureType 苏州审定单选择类型(1:崇明;2:金山;3:自定义)
|
|
|
|
+ * @param model
|
|
|
|
+ * @param redirectAttributes
|
|
|
|
+ * @return
|
|
|
|
+ * @throws Exception
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "approvalSave")
|
|
@RequestMapping(value = "approvalSave")
|
|
- public String approvalSave(RuralProjectRecords projectRecords, Model model, RedirectAttributes redirectAttributes) throws Exception {
|
|
|
|
|
|
+ public String approvalSave(RuralProjectRecords projectRecords, String signatureType, Model model, RedirectAttributes redirectAttributes) throws Exception {
|
|
try {
|
|
try {
|
|
//根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
//根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
|
|
ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
|
|
@@ -338,6 +440,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
addMessage(redirectAttributes, "审定单签章申请已登记完成,无法再次送审");
|
|
addMessage(redirectAttributes, "审定单签章申请已登记完成,无法再次送审");
|
|
return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
}
|
|
}
|
|
|
|
+ projectApprovalSignature.setSignatureType(signatureType);
|
|
projectApprovalSignature.setWorkAttachments(projectRecords.getWorkAttachments());
|
|
projectApprovalSignature.setWorkAttachments(projectRecords.getWorkAttachments());
|
|
ruralProjectMessageElectronicSealService.approvalSave(projectApprovalSignature);//保存
|
|
ruralProjectMessageElectronicSealService.approvalSave(projectApprovalSignature);//保存
|
|
}else{
|
|
}else{
|
|
@@ -345,6 +448,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
projectApprovalSignature.setProjectId(projectRecords.getId());
|
|
projectApprovalSignature.setProjectId(projectRecords.getId());
|
|
projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
|
|
projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
|
|
projectApprovalSignature.setWorkAttachments(projectRecords.getWorkAttachments());
|
|
projectApprovalSignature.setWorkAttachments(projectRecords.getWorkAttachments());
|
|
|
|
+ projectApprovalSignature.setSignatureType(signatureType);
|
|
ruralProjectMessageElectronicSealService.approvalSave(projectApprovalSignature);//保存
|
|
ruralProjectMessageElectronicSealService.approvalSave(projectApprovalSignature);//保存
|
|
}
|
|
}
|
|
addMessage(redirectAttributes, "保存审定单签章申请成功");
|
|
addMessage(redirectAttributes, "保存审定单签章申请成功");
|
|
@@ -363,7 +467,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping("approvalSaveAudit")
|
|
@RequestMapping("approvalSaveAudit")
|
|
- public String approvalSaveAudit(RuralProjectRecords projectRecords, Model model, RedirectAttributes redirectAttributes,Integer saveAuditFlag) {
|
|
|
|
|
|
+ public String approvalSaveAudit(RuralProjectRecords projectRecords, String signatureType, Model model, RedirectAttributes redirectAttributes,Integer saveAuditFlag) {
|
|
String home = projectRecords.getHome();
|
|
String home = projectRecords.getHome();
|
|
try {
|
|
try {
|
|
String taskDefKey = projectRecords.getAct().getTaskDefKey();
|
|
String taskDefKey = projectRecords.getAct().getTaskDefKey();
|
|
@@ -378,6 +482,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
}else {
|
|
}else {
|
|
//根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
//根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
|
|
ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
|
|
|
|
+ projectApprovalSignature.setSignatureType(signatureType);
|
|
projectApprovalSignature.setAct(projectRecords.getAct());
|
|
projectApprovalSignature.setAct(projectRecords.getAct());
|
|
if(null != saveAuditFlag) {
|
|
if(null != saveAuditFlag) {
|
|
if (projectApprovalSignature.getStatus() != 4 && projectApprovalSignature.getStatus() != 5) {
|
|
if (projectApprovalSignature.getStatus() != 4 && projectApprovalSignature.getStatus() != 5) {
|
|
@@ -428,6 +533,21 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
//根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
//根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
|
|
ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
|
|
projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
|
|
+
|
|
|
|
+ //判定是否为工程造价(上海)项目
|
|
|
|
+ if("2".equals(projectRecords.getProjectType()) && "20".equals(projectRecords.getAttachmentProjectSort())){
|
|
|
|
+ model.addAttribute("approvalType",1);
|
|
|
|
+ }else{
|
|
|
|
+ model.addAttribute("approvalType",0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
|
+ if(null != projectApprovalSignature && StringUtils.isNotBlank(projectApprovalSignature.getSignatureType())){
|
|
|
|
+ model.addAttribute("signatureType",projectApprovalSignature.getSignatureType());
|
|
|
|
+ }else{
|
|
|
|
+ model.addAttribute("signatureType","");
|
|
|
|
+ }
|
|
|
|
+
|
|
projectRecordsService.queryProjectDetailBySignature(projectRecords,"144");
|
|
projectRecordsService.queryProjectDetailBySignature(projectRecords,"144");
|
|
projectRecords.setProcessInstanceId(projectApprovalSignature.getProcessInstanceId());
|
|
projectRecords.setProcessInstanceId(projectApprovalSignature.getProcessInstanceId());
|
|
projectRecords.setProjectStatus(projectApprovalSignature.getStatus());
|
|
projectRecords.setProjectStatus(projectApprovalSignature.getStatus());
|
|
@@ -556,6 +676,64 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureForm";
|
|
return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureForm";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ //@RequiresPermissions("ruralProject:electronicSeal:reportSignatureForm")
|
|
|
|
+ @RequestMapping(value="internalAuditReportSignatureForm")
|
|
|
|
+ public String internalAuditReportSignatureForm(RuralProjectRecords projectRecords, Model model){
|
|
|
|
+ if (projectRecords!=null&& StringUtils.isNotBlank(projectRecords.getId())) {
|
|
|
|
+ projectRecords = projectRecordsService.get(projectRecords.getId());
|
|
|
|
+ projectRecordsService.queryProjectDetailBySignature(projectRecords,"147");
|
|
|
|
+ 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/electronicSeal/ruralProjectRecordsInternalAuditReportSignatureForm";
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 保存报告签章送审信息
|
|
* 保存报告签章送审信息
|
|
*/
|
|
*/
|
|
@@ -590,6 +768,39 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 保存报告签章送审信息
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "reportInternalAuditSignatureSave")
|
|
|
|
+ public String reportInternalAuditSignatureSave(RuralProjectRecords projectRecords, RedirectAttributes redirectAttributes) {
|
|
|
|
+ try {
|
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
|
+ ProjectReportSignature projectInternalAuditSignature = ruralProjectMessageElectronicSealService.getProjectReportInternalAudit(projectRecords.getId());
|
|
|
|
+ if(null != projectInternalAuditSignature){
|
|
|
|
+ if(projectInternalAuditSignature.getStatus() == 3 || projectInternalAuditSignature.getStatus() == 1) {
|
|
|
|
+ //projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
|
|
|
|
+ }else if(projectInternalAuditSignature.getStatus() == 2){
|
|
|
|
+ addMessage(redirectAttributes, "内审报告签章申请已送审,无法重复送审");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }else if(projectInternalAuditSignature.getStatus() == 5){
|
|
|
|
+ addMessage(redirectAttributes, "内审报告签章申请已登记完成,无法再次送审");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }
|
|
|
|
+ ruralProjectMessageElectronicSealService.reportInternalAuditSignatureSave(projectInternalAuditSignature);//保存
|
|
|
|
+ }else{
|
|
|
|
+ projectInternalAuditSignature = new ProjectReportSignature();
|
|
|
|
+ projectInternalAuditSignature.setProjectId(projectRecords.getId());
|
|
|
|
+ projectInternalAuditSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
|
|
|
|
+ ruralProjectMessageElectronicSealService.reportInternalAuditSignatureSave(projectInternalAuditSignature);//保存
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "保存报告签章申请成功");
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ logger.error("保存报告签章申请异常:",e);
|
|
|
|
+ addMessage(redirectAttributes, "保存报告签章申请异常:"+e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
* 审批
|
|
* 审批
|
|
* @param projectRecords
|
|
* @param projectRecords
|
|
* @param redirectAttributes
|
|
* @param redirectAttributes
|
|
@@ -656,6 +867,79 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 审批(内审报告审批)
|
|
|
|
+ * @param projectRecords
|
|
|
|
+ * @param redirectAttributes
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping("reportInternalAuditSignatureSaveAudit")
|
|
|
|
+ public String reportInternalAuditSignatureSaveAudit(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);
|
|
|
|
+ if ("szzk".equals(taskDefKey)){
|
|
|
|
+ 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)){
|
|
|
|
+ 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 = ruralProjectMessageElectronicSealService.getProjectReportInternalAudit(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 if (StringUtils.isNotBlank(projectRecords.getHome()) && "notifyList".equals(projectRecords.getHome())){
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
|
+ } else {
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(projectApprovalSignature.getStatus() == 5){
|
|
|
|
+ addMessage(redirectAttributes, "内审报告签章申请已登记完成,无法再次送审");
|
|
|
|
+ if (StringUtils.isNotBlank(home) && "home".equals(home)){
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
|
+ }else if (StringUtils.isNotBlank(projectRecords.getHome()) && "notifyList".equals(projectRecords.getHome())){
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
|
+ }else {
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ String str = ruralProjectMessageElectronicSealService.reportInternalAuditSignatureSaveAudit(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 if (StringUtils.isNotBlank(projectRecords.getHome()) && "notifyList".equals(projectRecords.getHome())){
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
|
+ }else {
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
@RequestMapping(value = "reportSignatureModify")
|
|
@RequestMapping(value = "reportSignatureModify")
|
|
public String reportSignatureModify(RuralProjectRecords projectRecords, Model model) {
|
|
public String reportSignatureModify(RuralProjectRecords projectRecords, Model model) {
|
|
@@ -704,6 +988,53 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ @RequestMapping(value = "reportInternalAuditSignatureModify")
|
|
|
|
+ public String reportInternalAuditSignatureModify(RuralProjectRecords projectRecords, Model model) {
|
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
|
+ ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectReportInternalAudit(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/electronicSeal/ruralProjectRecordsReportInternalAuditSignatureModify";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
@RequestMapping(value = "reportSignatureRevoke")
|
|
@RequestMapping(value = "reportSignatureRevoke")
|
|
public String reportSignatureRevoke(HttpServletRequest request, RedirectAttributes redirectAttributes) {
|
|
public String reportSignatureRevoke(HttpServletRequest request, RedirectAttributes redirectAttributes) {
|
|
HashMap<String, String> requestMap = findRequestMap(request);
|
|
HashMap<String, String> requestMap = findRequestMap(request);
|
|
@@ -727,6 +1058,29 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ @RequestMapping(value = "reportInternalAuditSignatureRevoke")
|
|
|
|
+ public String reportInternalAuditSignatureRevoke(HttpServletRequest request, RedirectAttributes redirectAttributes) {
|
|
|
|
+ HashMap<String, String> requestMap = findRequestMap(request);
|
|
|
|
+ String id = requestMap.get("id");
|
|
|
|
+ try {
|
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
|
+ ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectReportInternalAudit(id);
|
|
|
|
+
|
|
|
|
+ if("5".equals(projectApprovalSignature.getStatus())){
|
|
|
|
+ addMessage(redirectAttributes, "内审报告签章申请已审批通过,无法撤回");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }
|
|
|
|
+ ruralProjectMessageElectronicSealService.cancelReportInternalAuditSignatureProcess(projectApprovalSignature);
|
|
|
|
+ addMessage(redirectAttributes, "撤回该内审报告签章申请审批成功");
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ logger.info(e.getMessage());
|
|
|
|
+ addMessage(redirectAttributes, "撤回该内审报告签章申请审批失败");
|
|
|
|
+ }
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -747,6 +1101,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
Map<String,Object> data = ruralProjectMessageElectronicSealService.disposeProjectReportdata(projectReportData);
|
|
Map<String,Object> data = ruralProjectMessageElectronicSealService.disposeProjectReportdata(projectReportData);
|
|
String projectName = (String) data.get("projectName");
|
|
String projectName = (String) data.get("projectName");
|
|
String number = (String) data.get("number");
|
|
String number = (String) data.get("number");
|
|
|
|
+ String type = (String) data.get("type");
|
|
|
|
|
|
//模板对象
|
|
//模板对象
|
|
Template template=null;
|
|
Template template=null;
|
|
@@ -756,7 +1111,11 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
try {
|
|
try {
|
|
cfg.setDirectoryForTemplateLoading(path);
|
|
cfg.setDirectoryForTemplateLoading(path);
|
|
//选择对应的ftl文件
|
|
//选择对应的ftl文件
|
|
- template = cfg.getTemplate("projectSignature.ftl","UTF-8");
|
|
|
|
|
|
+ if("1".equals(type)){
|
|
|
|
+ template = cfg.getTemplate("projectSignature.ftl","UTF-8");
|
|
|
|
+ }else if("2".equals(type)){
|
|
|
|
+ template = cfg.getTemplate("projectHSSignature.ftl","UTF-8");
|
|
|
|
+ }
|
|
File docFile = new File("报告号【"+number + "】报告签章.doc");
|
|
File docFile = new File("报告号【"+number + "】报告签章.doc");
|
|
FreemarkerUtil.generateFile(data,template,docFile);
|
|
FreemarkerUtil.generateFile(data,template,docFile);
|
|
ResponseUtil.docResponse("报告号【"+number + "】项目名称:" + projectName + " 报告签章.doc",docFile,response);
|
|
ResponseUtil.docResponse("报告号【"+number + "】项目名称:" + projectName + " 报告签章.doc",docFile,response);
|
|
@@ -778,21 +1137,78 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 下载工程造价咨询质量控制流程单信息
|
|
|
|
+ * @param response
|
|
|
|
+ * @param projectReportData
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value="downloadProjectInternalAuditSignatureControl")
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public void downloadProjectInternalAuditSignatureControl(HttpServletResponse response, ProjectReportData projectReportData) {
|
|
|
|
+ Map<String,Object> data = ruralProjectMessageElectronicSealService.disposeProjectInternalAuditReportdata(projectReportData);
|
|
|
|
+ String projectName = (String) data.get("projectName");
|
|
|
|
+ String number = (String) data.get("reportNumber");
|
|
|
|
+ String type = (String) data.get("type");
|
|
|
|
+
|
|
|
|
+ //模板对象
|
|
|
|
+ Template template=null;
|
|
|
|
+ //freemaker模板路径
|
|
|
|
+ File path = new File(this.getClass().getResource("/").getPath()+"/freemarker");
|
|
|
|
+ Configuration cfg = new Configuration();
|
|
|
|
+ try {
|
|
|
|
+ cfg.setDirectoryForTemplateLoading(path);
|
|
|
|
+ //选择对应的ftl文件
|
|
|
|
+ if("3".equals(type)){
|
|
|
|
+ template = cfg.getTemplate("projectInternalAuditSignature.ftl","UTF-8");
|
|
|
|
+ }
|
|
|
|
+ File docFile = new File("报告号【"+number + "】内审报告签章.doc");
|
|
|
|
+ FreemarkerUtil.generateFile(data,template,docFile);
|
|
|
|
+ ResponseUtil.docResponse("报告号【"+number + "】项目名称:" + projectName + " 内审报告签章.doc",docFile,response);
|
|
|
|
+ //将生成的文件上传到阿里云中
|
|
|
|
+ ruralProjectMessageElectronicSealService.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类项目数据
|
|
* 导入造价审核B类项目数据
|
|
*/
|
|
*/
|
|
@RequiresPermissions("ruralProject:ruralProjectMessageAll:importB")
|
|
@RequiresPermissions("ruralProject:ruralProjectMessageAll:importB")
|
|
@RequestMapping(value = "importB", method=RequestMethod.POST)
|
|
@RequestMapping(value = "importB", method=RequestMethod.POST)
|
|
- public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) {
|
|
|
|
|
|
+ public String importFile(MultipartFile file, RedirectAttributes redirectAttributes,String concealType) {
|
|
try {
|
|
try {
|
|
ImportExcelNew importExcelNew = new ImportExcelNew();
|
|
ImportExcelNew importExcelNew = new ImportExcelNew();
|
|
- List<ProjectReportSignatureInfo> list = importExcelNew.ImportExcelNew(file,1,0); //只处理file 1不要也可以,0为sheet编号
|
|
|
|
-
|
|
|
|
|
|
+ List<ProjectReportSignatureInfo> list = Lists.newArrayList();
|
|
|
|
+ switch (concealType){
|
|
|
|
+ case "js":
|
|
|
|
+ list = importExcelNew.ImportExcelNews(file,1,0, concealType); //只处理file 1不要也可以,0为sheet编号
|
|
|
|
+ break;
|
|
|
|
+ case "sh":
|
|
|
|
+ list =importExcelNew.ImportExcelNews(file,1,0, concealType); //只处理file 1不要也可以,0为sheet编号
|
|
|
|
+ break;
|
|
|
|
+ case "nsbg":
|
|
|
|
+ list = importExcelNew.ImportExcelNSBGNews(file,1,0, concealType); //只处理file 1不要也可以,0为sheet编号
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
//对数据进行处理
|
|
//对数据进行处理
|
|
- String resultStr = ruralProjectMessageElectronicSealService.disposeImportBRuralProjectRecords(list);
|
|
|
|
|
|
+ String resultStr = ruralProjectMessageElectronicSealService.disposeImportBRuralProjectRecords(list,concealType);
|
|
addMessage(redirectAttributes, resultStr);
|
|
addMessage(redirectAttributes, resultStr);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- addMessage(redirectAttributes, "导入B类项目失败!失败信息:"+e.getMessage());
|
|
|
|
|
|
+ addMessage(redirectAttributes, "导入数据信息失败!失败信息:"+e.getMessage());
|
|
}
|
|
}
|
|
return "redirect:"+ Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
return "redirect:"+ Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
}
|
|
}
|
|
@@ -801,10 +1217,22 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
* 下载导入造价审核B类项目数据模板
|
|
* 下载导入造价审核B类项目数据模板
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "importB/template")
|
|
@RequestMapping(value = "importB/template")
|
|
- public String importFileTemplateB(HttpServletResponse response, HttpServletRequest request) {
|
|
|
|
|
|
+ public String importFileTemplateB(HttpServletResponse response, HttpServletRequest request,String type) {
|
|
try {
|
|
try {
|
|
ThisLocalityDownloadUtil download = new ThisLocalityDownloadUtil();
|
|
ThisLocalityDownloadUtil download = new ThisLocalityDownloadUtil();
|
|
- download.download("签章导入数据模板.xlsx",request,response); //自制的导入模板
|
|
|
|
|
|
+ if(StringUtils.isNotBlank(type)){
|
|
|
|
+ switch (type){
|
|
|
|
+ case "js":
|
|
|
|
+ download.download("签章导入数据模板.xlsx",request,response); //自制的导入模板
|
|
|
|
+ break;
|
|
|
|
+ case "sh":
|
|
|
|
+ download.download("上海签章导入数据模板.xlsx",request,response); //自制的导入模板
|
|
|
|
+ break;
|
|
|
|
+ case "nsbg":
|
|
|
|
+ download.download("内审报告导入数据模板.xlsx",request,response); //自制的导入模板
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
logger.error("导入数据模板下载失败!",e);
|
|
logger.error("导入数据模板下载失败!",e);
|
|
}
|
|
}
|
|
@@ -834,4 +1262,185 @@ public class RuralProjectMessageElectronicSealController extends BaseController
|
|
addMessage(redirectAttributes, "报告签章信息修改成功");
|
|
addMessage(redirectAttributes, "报告签章信息修改成功");
|
|
return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 报告签章信息保存
|
|
|
|
+ */
|
|
|
|
+// @RequiresPermissions(value={"ruralProject:ruralCostProjectRecords:add","ruralProject:ruralCostProjectRecords:edit"},logical= Logical.OR)
|
|
|
|
+ @Transactional(readOnly = false)
|
|
|
|
+ @RequestMapping(value = "internalAuditSave")
|
|
|
|
+ public String internalAuditSave(ProjectReportSignatureInfo projectReportSignatureInfo, RedirectAttributes redirectAttributes) {
|
|
|
|
+ //修改
|
|
|
|
+ ruralProjectMessageElectronicSealService.updateProjectReportInternalAuditInfo(projectReportSignatureInfo);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ addMessage(redirectAttributes, "内审报告签章信息修改成功");
|
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @RequestMapping(value = "getManualSignatureUrl")
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public HashMap<String, Object> getManualSignatureUrl( String projectId, RedirectAttributes redirectAttributes) {
|
|
|
|
+ HashMap<String, Object> map = Maps.newHashMap();
|
|
|
|
+ map.put("contractUrl","");
|
|
|
|
+ map.put("success",false);
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+ //根据项目id查询是否已经提交过了报告签章
|
|
|
|
+ RuralProjectRecords records = projectRecordsService.get(projectId);
|
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(records.getId());
|
|
|
|
+ if(null == records){
|
|
|
|
+ map.put("str","查询不到该项目信息");
|
|
|
|
+ map.put("success",false);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ if(null!= records.getReportSignatureFlag() && 1 == records.getReportSignatureFlag()){
|
|
|
|
+ map.put("str","该项目已经报告盖章完成");
|
|
|
|
+ map.put("success",false);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ Workattachment workClientAttachment = new Workattachment();
|
|
|
|
+ workClientAttachment.setAttachmentFlag("144");
|
|
|
|
+ workClientAttachment.setAttachmentId(projectId);
|
|
|
|
+ List<Workattachment> fileList = workattachmentService.findList(workClientAttachment);
|
|
|
|
+
|
|
|
|
+ //下载审定单文件
|
|
|
|
+ if(fileList.size()>0){
|
|
|
|
+ Workattachment workattachment = fileList.get(0);
|
|
|
|
+ if(org.apache.commons.lang3.StringUtils.isBlank(workattachment.getUrl())){
|
|
|
|
+ map.put("str","审定单文件存储路径为空,无法进行签章操作,请驳回后重新上传审定单");
|
|
|
|
+ map.put("success",false);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ //下载审定单文件
|
|
|
|
+ String path = null;
|
|
|
|
+ if(System.getProperty("os.name").toLowerCase().contains("win")){
|
|
|
|
+ path = "D:/attachment-file/";
|
|
|
|
+ }else{
|
|
|
|
+ path = "/attachment-file/";
|
|
|
|
+ }
|
|
|
|
+ String file = workattachment.getUrl();
|
|
|
|
+ file = file.replace("amp;","");
|
|
|
|
+ String fileName = file.substring(file.lastIndexOf("/") + 1, file.length());
|
|
|
|
+ String aliyunUrl = Global.getAliyunUrl();
|
|
|
|
+ String aliDownloadUrl = Global.getAliDownloadUrl();
|
|
|
|
+ String cons = "";
|
|
|
|
+ if (file.contains(aliyunUrl)){
|
|
|
|
+ cons = aliyunUrl;
|
|
|
|
+ }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
|
|
|
|
+ cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
|
|
|
|
+ }else {
|
|
|
|
+ cons = aliDownloadUrl;
|
|
|
|
+ }
|
|
|
|
+ String ossKey = file.split(cons+"/")[1];
|
|
|
|
+ new OSSClientUtil().downByStreamSaveLocal(ossKey,fileName,path+fileName);
|
|
|
|
+ //将下载下来的文件转换为file文件
|
|
|
|
+ File srcFile = new File(path+fileName);
|
|
|
|
+
|
|
|
|
+ //截取文件后缀名
|
|
|
|
+ String substring = srcFile.getName().substring(srcFile.getName().lastIndexOf(".")+1, srcFile.getName().length());
|
|
|
|
+ if(!"doc".equals(substring.toLowerCase()) && !"docx".equals(substring.toLowerCase()) && !"pdf".equals(substring.toLowerCase())){
|
|
|
|
+ map.put("str","请上传doc、docx或者pdf的文件进行签章操作");
|
|
|
|
+ map.put("success",false);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //获取真签单的documentId
|
|
|
|
+ HashMap hashMap = SignaturePostUtil.getDocument(srcFile);
|
|
|
|
+ String code = hashMap.get("code").toString();
|
|
|
|
+ String documentId = "";
|
|
|
|
+ if("0".equals(code)){
|
|
|
|
+ String result = hashMap.get("result").toString();
|
|
|
|
+ HashMap documentIdMap = JSON.parseObject(result, HashMap.class);
|
|
|
|
+ documentId = documentIdMap.get("documentId").toString();
|
|
|
|
+ if("".equals(documentId)){
|
|
|
|
+ map.put("str","签章文件创建失败");
|
|
|
|
+ map.put("success",false);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ String message = hashMap.get("message").toString();
|
|
|
|
+ map.put("str",message);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ List<String> documentList = com.google.common.collect.Lists.newArrayList();
|
|
|
|
+ documentList.add(documentId);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //根据项目id 和 documentId生成合同id
|
|
|
|
+ HashMap contractIdHashMap = projectMessageService.getManualSignatureContractId(projectId, documentList,records.getProjectMasterId(),"","3");
|
|
|
|
+ String contractIdCode = contractIdHashMap.get("code").toString();
|
|
|
|
+ String contractId = "";
|
|
|
|
+ if("0".equals(contractIdCode)){
|
|
|
|
+ contractId = contractIdHashMap.get("contractId").toString();
|
|
|
|
+ if("".equals(contractId)){
|
|
|
|
+ map.put("str","签章文件创建失败");
|
|
|
|
+ map.put("success",false);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ map.put("str",contractIdHashMap.get("message").toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //获取contractUrl路径
|
|
|
|
+ String contractUrl = projectMessageService.getSignatureContractUrl(contractId);
|
|
|
|
+ if("".equals(contractUrl)){
|
|
|
|
+ map.put("str","签章文件创建失败");
|
|
|
|
+ map.put("success",false);
|
|
|
|
+ return map;
|
|
|
|
+ }else{
|
|
|
|
+
|
|
|
|
+ //修改报告信息中对应的签章contractId
|
|
|
|
+ projectReportData.setSignatureDocumentId(documentId);
|
|
|
|
+ projectReportData.setSignatureContractId(contractId);
|
|
|
|
+
|
|
|
|
+ projectReportData.setSignatureUploadFileUser(UserUtils.getUser());
|
|
|
|
+ projectReportData.setSignatureUploadDate(new Date());
|
|
|
|
+ //修改签章对应信息文件
|
|
|
|
+ projectReportDataService.updateSignatureInfo(projectReportData);
|
|
|
|
+
|
|
|
|
+ map.put("contractUrl",contractUrl);
|
|
|
|
+ map.put("success",true);
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ map.put("contractUrl","");
|
|
|
|
+ map.put("str","审定单签章成功");
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ addMessage(redirectAttributes, "报告签章失败");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @RequestMapping(value = "getManualSignatureStatus")
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public Map<String, Object> getManualSignatureStatus( String projectId, RedirectAttributes redirectAttributes) {
|
|
|
|
+ Map<String, Object> map = new HashMap();
|
|
|
|
+ map.put("success",false);
|
|
|
|
+
|
|
|
|
+ //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
|
|
|
|
+ ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectId);
|
|
|
|
+
|
|
|
|
+ Jedis jedis = null;
|
|
|
|
+ try {
|
|
|
|
+ jedis = JedisUtils.getResource();
|
|
|
|
+ String status = jedis.get("customApprovalCallBackAccomplishStatus" + projectApprovalSignature.getId());
|
|
|
|
+ map.put("success",status);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ logger.error("getApprovalCallBackAccomplish", e);
|
|
|
|
+ } finally {
|
|
|
|
+ JedisUtils.returnResource(jedis);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|