Просмотр исходного кода

审定单和审定内质量复核签章功能回调调整

user5 3 лет назад
Родитель
Сommit
d77fa5c7e0

+ 7 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectReportDataDao.java

@@ -176,4 +176,11 @@ public interface ProjectReportDataDao extends CrudDao<ProjectReportData> {
      * @return
      */
     ProjectReportData getProjectReportDataByContractId(String contractId);
+
+    /**
+     * 根据签章的documentId查询报告信息
+     * @param documentId
+     * @return
+     */
+    ProjectReportData getProjectReportDataByDocumentId(String documentId);
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectReportDataService.java

@@ -1652,6 +1652,15 @@ public class ProjectReportDataService extends CrudService<ProjectReportDataDao,
 		return dao.getProjectReportDataByContractId(contractId);
 	}
 	/**
+	 * 根据签章documentId查询报告信息
+	 * @param documentId
+	 * @return
+	 */
+	@Transactional(readOnly = false)
+	public ProjectReportData getProjectReportDataByDocumentId(String documentId) {
+		return dao.getProjectReportDataByDocumentId(documentId);
+	}
+	/**
 	 * 根据签章contractId查询报告信息
 	 * @param number
 	 * @return

+ 7 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsDao.java

@@ -289,4 +289,11 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
      * @return
      */
     RuralProjectRecords getSignatureByDocumentId(String documentId);
+
+    /**
+     * 根据签章documentId查询审定(内)信息
+     * @param documentId
+     * @return
+     */
+    RuralProjectRecords getJudgementSignatureByDocumentId(String documentId);
 }

+ 130 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java

@@ -114,6 +114,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
     private static final String COMPANYPARTIESSEALID = Global.getConfig("company_parties_seal_id");
     private static final String APPROVALCATEGORYID = Global.getConfig("approval_category_id");
     private static final String REPORTCATEGORYID = Global.getConfig("report_category_id");
+    private static final String JUDGEMENTCATEGORYID = Global.getConfig("judgement_category_id");
     //AES 对称加密公钥
     private static final String AES_KEY = "63304b5db43265c103ebe576d38bd9f8";
     //RSA 非对称加密密钥
@@ -4104,7 +4105,135 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         SignatureContract signatureContract = new SignatureContract();
         signatureContract.setDocuments(documentList);
         //审定单用印流程id
-        signatureContract.setCategoryId(APPROVALCATEGORYID);
+        signatureContract.setCategoryId(JUDGEMENTCATEGORYID);
+        signatureContract.setSend(true);
+        signatureContract.setSignatories(signatories);
+        signatureContract.setSn("");
+        signatureContract.setSubject(ruralProjectRecords.getProjectName());//添加项目名称
+        net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(signatureContract);
+        String contractIdMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/createbycategory", json.toString());
+        hashMap = JSON.parseObject(contractIdMapStr, HashMap.class);
+
+        return hashMap;
+    }
+
+
+
+
+    /**
+     * 根据项目id 和 documentId生成合同id
+     * @param projectId
+     * @param documentList
+     * @return
+     */
+    public HashMap getJudgementSignatureContractId(String projectId, List<String> documentList ,String principalUserId,String generalManagerUserId){
+        HashMap hashMap = new HashMap();
+        Set<String> serialIdSet = new HashSet<>();
+        //根据项目id查询项目信息
+        RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(projectId);
+        //创建签署方信息
+        List<Action> actions = Lists.newArrayList();
+        Action companyAction = new Action();
+        companyAction.setType("CORPORATE");
+        companyAction.setName("公司印章");
+        companyAction.setSerialNo("1");
+        //公司圆章-竖
+        serialIdSet.add(COMPANYROUNDSEALIDVERTICAL);
+        //添加盖章位置
+        List<Location> locations = Lists.newArrayList();
+        for (String documentId: documentList) {
+            Location location = new Location();
+            location.setSealId(COMPANYROUNDSEALIDVERTICAL);
+            location.setDocumentId(documentId);
+            location.setPage("0");
+            location.setRectType("SEAL_CORPORATE");
+            location.setKeywordIndex(-1);
+            location.setOffsetX("0.5264");
+            location.setOffsetY("0.6787");
+            locations.add(location);
+        }
+
+        //根据角色信息录入签署方信息
+        //负责人
+        if(StringUtils.isNotBlank(principalUserId)){
+            User user = UserUtils.get(principalUserId);
+            if(null != user){
+                //获取成员印章id信息
+                String userSealId = SignaturePostUtil.getUserSealByMobile(user.getMobile(),"",user.getName() + "一级注册造价工程师章-竖");
+                if(StringUtils.isNotBlank(userSealId)){
+                    for (String documentId: documentList) {
+                        //添加盖章位置
+                        Location principalLocation = new Location();
+                        serialIdSet.add(userSealId);
+                        principalLocation.setSealId(userSealId);
+                        principalLocation.setDocumentId(documentId);
+                        principalLocation.setPage("0");
+                        principalLocation.setRectType("SEAL_CORPORATE");
+                        principalLocation.setKeywordIndex(-1);
+                        principalLocation.setOffsetX("0.5971");
+                        principalLocation.setOffsetY("0.8176");
+                        locations.add(principalLocation);
+                    }
+                }else{
+                    hashMap.put("code","2");
+                    hashMap.put("message","查询不到项目负责人 "+ user.getName() + " 的印章信息!请联系管理员");
+                    return hashMap;
+                }
+            }
+        }else{
+            hashMap.put("code","2");
+            hashMap.put("message","查询不到项目负责人信息!请联系管理员");
+            return hashMap;
+        }
+        //总经理
+        User technologyPrincipalUser = UserUtils.getByLoginName("陈红星");
+        if(null != technologyPrincipalUser){
+            //获取成员印章id信息
+            String userSealId = SignaturePostUtil.getUserSealByMobile(technologyPrincipalUser.getMobile(),"","陈红星个人签名章-竖");
+            if(StringUtils.isNotBlank(userSealId)){
+                for (String documentId: documentList) {
+                    //添加盖章位置
+                    Location principalLocation = new Location();
+                    serialIdSet.add(userSealId);
+                    principalLocation.setSealId(userSealId);
+                    principalLocation.setDocumentId(documentId);
+                    principalLocation.setPage("0");
+                    principalLocation.setRectType("SEAL_CORPORATE");
+                    principalLocation.setKeywordIndex(-1);
+                    principalLocation.setOffsetX("0.7758");
+                    principalLocation.setOffsetY("0.7339");
+                    locations.add(principalLocation);
+                }
+
+            }else{
+                hashMap.put("code","2");
+                hashMap.put("message","查询不到技术负责人 陈红星 的印章信息!请联系管理员");
+                return hashMap;
+            }
+        }else{
+            hashMap.put("code","2");
+            hashMap.put("message","查询不到技术负责人信息!请联系管理员");
+            return hashMap;
+        }
+        List<String> serialIdList = new ArrayList<String>(serialIdSet);
+        companyAction.setSealIds("[" + String.join(",", serialIdList) + "]");
+        companyAction.setAutoSign("true");
+        companyAction.setLocations(locations);
+        actions.add(companyAction);
+
+
+        //创建签署方信息表
+        List<SignatorieInfo> signatories = Lists.newArrayList();
+        SignatorieInfo signatorieInfo1 = new SignatorieInfo();
+        signatorieInfo1.setSerialNo("1");
+        signatorieInfo1.setTenantName("江苏兴光项目管理有限公司");
+        signatorieInfo1.setTenantType("COMPANY");
+        signatorieInfo1.setActions(actions);
+        signatories.add(signatorieInfo1);
+        SignatureContract signatureContract = new SignatureContract();
+        signatureContract.setDocuments(documentList);
+        //审定单用印流程id
+        signatureContract.setCategoryId(JUDGEMENTCATEGORYID);
         signatureContract.setSend(true);
         signatureContract.setSignatories(signatories);
         signatureContract.setSn("");

+ 10 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -2851,5 +2851,15 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		return dao.getSignatureByDocumentId(documentId);
 	}
 
+	/**
+	 * 根据签章documentId查询审定(内)信息
+	 * @param documentId
+	 * @return
+	 */
+	@Transactional(readOnly = false)
+	public RuralProjectRecords getJudgementSignatureByDocumentId(String documentId) {
+		return dao.getJudgementSignatureByDocumentId(documentId);
+	}
+
 
 }

+ 22 - 4
src/main/java/com/jeeplus/modules/ruralprojectrecords/thread/ApprovalThread.java

@@ -48,6 +48,7 @@ public class ApprovalThread extends Thread {
     private ProjectApprovalSignature projectReportSignature;
     private ProjectReportData projectReportData;
     private Office office;
+    String documentId = "";
 
 
     public ApprovalThread(RuralProjectRecords ruralProjectRecords, ProjectApprovalSignature projectReportSignature, ProjectReportData projectReportData, Office office)
@@ -128,7 +129,7 @@ public class ApprovalThread extends Thread {
                 //获取真签单的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);
@@ -148,6 +149,20 @@ public class ApprovalThread extends Thread {
                     bool = false;
                     disposeResult = "竖版模板文件创建失败";
                 }
+
+
+                //签章完成则进行数据的保存
+                projectReportData.setSignatureFlag(0);
+                projectReportData.setSignatureDocumentId(documentId);
+                projectReportData.setSignatureInvalidDocumentId(verticalInvalidDocumentId);
+                projectReportData.setSignatureContractId("");
+                projectReportData.setSignatureFileName(srcFileName);
+                projectReportData.setSignatureUploadFileUser(UserUtils.getUser());
+                projectReportData.setSignatureUploadDate(new Date());
+                //修改签章对应信息文件
+                projectReportDataService.updateSignatureInfo(projectReportData);
+
+
                 List<String> documentList = Lists.newArrayList();
                 List<String> invalidDocumentList = Lists.newArrayList();
                 documentList.add(documentId);
@@ -181,15 +196,18 @@ public class ApprovalThread extends Thread {
                                 }*/
                 //将documentId 和contractId存储到质量复核对应的数据种
                 //签章完成则进行数据的保存
-                notification(bool,disposeResult,documentId,contractId,srcFileName);
+                //notification(bool,disposeResult,documentId,contractId,srcFileName);
             }else{
                 disposeResult = "审定单文件未找到,无法进行签章操作";
                 bool = false;
                 notification(bool,disposeResult,"","","");
             }
         }catch (Exception e){
-            bool = false;
-            notification(bool,disposeResult,"","","");
+            if(StringUtils.isBlank(documentId)){
+                bool = false;
+                disposeResult = e.getMessage();
+                notification(bool,disposeResult,"","","");
+            }
         }finally {
             if(StringUtils.isNotBlank(deleteFile)){
                 //根据路径创建文件对象

+ 22 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/thread/JudgementThread.java

@@ -45,6 +45,7 @@ public class JudgementThread extends Thread {
 
     private RuralProjectRecords ruralProjectRecords;
     private ProjectReportData projectReportData;
+    String documentId = "";
 
 
     public JudgementThread(RuralProjectRecords ruralProjectRecords, ProjectReportData projectReportData)
@@ -125,7 +126,7 @@ public class JudgementThread extends Thread {
                 //获取真签单的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);
@@ -139,13 +140,26 @@ public class JudgementThread extends Thread {
                     disposeResult =  message;
                     bool = false;
                 }
+
+
+                //签章完成则进行数据的保存
+                ruralProjectRecords.setQualitySignatureFlag(0);
+                ruralProjectRecords.setQualitySignatureDocumentId(documentId);
+                ruralProjectRecords.setQualitySignatureContractId("");
+                ruralProjectRecords.setQualitySignatureFileName(srcFileName);
+                ruralProjectRecords.setQualitySignatureUploadFileUser(UserUtils.getUser());
+                ruralProjectRecords.setQualitySignatureUploadDate(new Date());
+                //修改签章对应信息文件
+                projectReportDataService.updateJudgementSignatureInfo(ruralProjectRecords);
+
+
                 List<String> documentList = Lists.newArrayList();
                 documentList.add(documentId);
                 //根据项目id 和 documentId生成合同id
                 long s1 = System.currentTimeMillis();
                 HashMap contractIdHashMap = new HashMap();
                 if("doc".equals(substring.toLowerCase()) || "docx".equals(substring.toLowerCase()) || "pdf".equals(substring.toLowerCase()) ){
-                    contractIdHashMap = ruralProjectMessageService.getSignatureContractId(ruralProjectRecords.getId(), documentList,ruralProjectRecords.getProjectMasterId(),"");
+                    contractIdHashMap = ruralProjectMessageService.getJudgementSignatureContractId(ruralProjectRecords.getId(), documentList,ruralProjectRecords.getProjectMasterId(),"");
                 }else if("xls".equals(substring.toLowerCase()) || "xlsx".equals(substring.toLowerCase())){
                     contractIdHashMap = ruralProjectMessageService.getSignatureExcelContractId(ruralProjectRecords.getId(), documentList,ruralProjectRecords.getProjectMasterId(),"");
                 }
@@ -173,15 +187,18 @@ public class JudgementThread extends Thread {
                                 }*/
                 //将documentId 和contractId存储到质量复核对应的数据种
                 //签章完成则进行数据的保存
-                notification(bool,disposeResult,documentId,contractId,srcFileName);
+                //notification(bool,disposeResult,documentId,contractId,srcFileName);
             }else{
                 disposeResult = "审定单文件未找到,无法进行签章操作";
                 bool = false;
                 notification(bool,disposeResult,"","","");
             }
         }catch (Exception e){
-            bool = false;
-            notification(bool,disposeResult,"","","");
+            if(StringUtils.isBlank(documentId)){
+                bool = false;
+                disposeResult = e.getMessage();
+                notification(bool,disposeResult,"","","");
+            }
         }finally {
             if(StringUtils.isNotBlank(deleteFile)){
                 //根据路径创建文件对象

+ 175 - 163
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureCallBackController.java

@@ -1,81 +1,31 @@
 package com.jeeplus.modules.ruralprojectrecords.web;
 
 import com.alibaba.fastjson.JSON;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.gson.Gson;
 import com.jeeplus.common.config.Global;
-import com.jeeplus.common.persistence.Page;
-import com.jeeplus.common.utils.MyBeanUtils;
 import com.jeeplus.common.utils.SpringContextHolder;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
-import com.jeeplus.modules.act.entity.Act;
-import com.jeeplus.modules.act.service.ActTaskService;
-import com.jeeplus.modules.historical.entity.HistoricalData;
-import com.jeeplus.modules.historical.service.HistoricalService;
-import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
-import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
-import com.jeeplus.modules.projectAccessory.service.ProjectAccessoryRelationService;
-import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
-import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
-import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
-import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingBatchDao;
-import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingbatchRelationDao;
-import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
-import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingbatchRelation;
-import com.jeeplus.modules.projectFilingBatch.service.ProjectFilingBatchService;
+import com.jeeplus.modules.projectcontentinfo.dao.ProjectReportDataDao;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
-import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
-import com.jeeplus.modules.projectcontentinfo.service.ProjectReportChangeService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
-import com.jeeplus.modules.projectcontentinfo.service.ProjectReportRecordService;
-import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
-import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
-import com.jeeplus.modules.projectrecord.service.ProjectPlanService;
-import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectMessageElectronicSealDao;
-import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectRecordsReportedDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.*;
 import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageElectronicSealService;
-import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
-import com.jeeplus.modules.ruralprojectrecords.utils.FileUtil;
-import com.jeeplus.modules.sys.entity.Area;
-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.service.WorkattachmentService;
-import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.tools.utils.SignaturePostUtil;
 import com.jeeplus.modules.workactivity.service.WorkActivityProcessService;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
-import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import com.jeeplus.modules.workprojectnotify.util.UtilNotify;
-import com.jeeplus.modules.workstaff.entity.WorkStaffCertificate;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
 import org.activiti.engine.HistoryService;
-import org.activiti.engine.history.HistoricProcessInstance;
-import org.activiti.engine.runtime.ProcessInstance;
-import org.activiti.engine.task.Task;
-import org.apache.shiro.authz.annotation.Logical;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
-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.util.*;
 
 /**
@@ -89,50 +39,19 @@ public class RuralProjectSignatureCallBackController extends BaseController {
     @Autowired
     private RuralProjectRecordsService projectRecordsService;
     @Autowired
-    private ProjectRecordsService projectRecordsServices;
-    @Autowired
-    private RuralProjectMessageService ruralProjectMessageService;
-    @Autowired
     private ProjectReportDataService projectReportDataService;
     @Autowired
-    private ProjectcontentinfoService projectcontentinfoService;
-    @Autowired
-    private ProjectReportChangeService projectReportChangeService;
-    @Autowired
     protected HistoryService historyService;
     @Autowired
-    private ProjectReportRecordService projectReportRecordService;
-    @Autowired
-    private ProjectPlanService projectPlanService;
-    @Autowired
-    private ProjectTemplateService projectTemplateService;
-    @Autowired
-    private HistoricalService historicalService;
-    @Autowired
-    private ProjectAccessoryRelationService projectAccessoryRelationService;
-    @Autowired
-    private UserService userService;
-    @Autowired
-    private ProjectFilingBatchService projectFilingBatchService;
-    @Autowired
-    private ProjectFilingbatchRelationDao projectFilingbatchRelationDao;
-    @Autowired
-    private ProjectFilingBatchDao projectFilingBatchDao;
-    @Autowired
-    private RuralProjectRecordsService ruralProjectRecordsService;
-    @Autowired
-    private RuralProjectRecordsReportedDao ruralProjectRecordsReportedDao;
-    @Autowired
-    private ProjectEngineeringService engineeringService;
-    @Autowired
     private RuralProjectMessageElectronicSealService ruralProjectMessageElectronicSealService;
 
+    private ProjectReportDataDao projectReportDataDao = SpringContextHolder.getBean(ProjectReportDataDao.class);
+
 
     private WorkActivityProcessService workActivityProcessService = SpringContextHolder.getBean(WorkActivityProcessService.class);
     private WorkProjectNotifyService workProjectNotifyService = SpringContextHolder.getBean(WorkProjectNotifyService.class);
     private RuralProjectMessageElectronicSealDao dao = SpringContextHolder.getBean(RuralProjectMessageElectronicSealDao.class);
 
-    private static byte[] SYN_BYTE = new byte[0];
 
     private static final String HTTPTOP = Global.getConfig("signature_http_top");
 
@@ -155,89 +74,91 @@ public class RuralProjectSignatureCallBackController extends BaseController {
 
 
     /**
-     * 预签署回调操作
+     * 审定单签章回调操作
      * @param presignCallBack  回调参数
      * @return
      */
-    @RequestMapping(value = "/getPresignCoordinates", method=RequestMethod.POST)
-    public String getPresignCoordinates(PresignCallBack presignCallBack) {
+    @RequestMapping(value = "/getApprovalCoordinates", method=RequestMethod.POST)
+    public String getApprovalCoordinates(PresignCallBack presignCallBack) {
         long t1 = System.currentTimeMillis();
         //根据contractId查询对应的报告信息
-        ProjectReportData projectReportData = projectReportDataService.getProjectReportDataByContractId(presignCallBack.getContractId());
+        String[] documentIds = presignCallBack.getDocumentId().split(",");
+        ProjectReportData projectReportData = null;
+        if(documentIds.length>0){
+            projectReportData = projectReportDataService.getProjectReportDataByDocumentId(documentIds[0]);
+        }else{
+            return null;
+        }
+
         if(null == projectReportData){
             return null;
         }
-        //根据合同id查询坐标
-        Map map = new HashMap();
-        map.put("contractId",presignCallBack.getContractId());
-        String coordinateMapStr = SignaturePostUtil.doGet( map,HTTPTOP + "/contract/query/location");
-        HashMap hashMap = JSON.parseObject(coordinateMapStr, HashMap.class);
-        String resultStr = hashMap.get("result").toString();
-        Map  classMap = new HashMap();
-        classMap.put("locations", Location.class);
-        //2、使用JSONArray
-        JSONArray jsonArray= JSONArray.fromObject(resultStr);
-        //获得jsonArray的第一个元素
-        Object o=jsonArray.get(0);
-        JSONObject jsonObject= JSONObject.fromObject(o);
-        //对json数据进行实例化
-        CoordinateInfo coordinateInfo = (CoordinateInfo) JSONObject.toBean(jsonObject, CoordinateInfo.class, classMap);
-
-        //发起合同
-        Map sendContractMap = new HashMap();
-        sendContractMap.put("contractId",presignCallBack.getContractId());
-        String sendContractJsonString = JSON.toJSONString(sendContractMap);
-        String sendContractStr = SignaturePostUtil.sendPostApplicationJson( HTTPTOP + "/contract/send",sendContractJsonString);
-        HashMap signUrlHashMap = JSON.parseObject(sendContractStr, HashMap.class);
-        String sendContractResult = signUrlHashMap.get("code").toString();
-        //如果发起合同成功,则进行静默签署(静默签署,有几个章就会签署几次)
-        if("0".equals(sendContractResult)){
-            SignByCompanyInfo signByCompanyInfo = new SignByCompanyInfo();
-            signByCompanyInfo.setContractId(presignCallBack.getContractId());
-            signByCompanyInfo.setTenantName("江苏兴光项目管理有限公司");
-            List<Location> locations = coordinateInfo.getLocations();
-            //将无效的documentId转换为List
-            List<String> invalidDocumentIdList = Arrays.asList(projectReportData.getSignatureInvalidDocumentId().split(","));
-
-            Iterator iterator = locations.iterator();
-            while (iterator.hasNext()) {
-                Location data = (Location) iterator.next();
-                if (null == data.getPage()){
-                    iterator.remove();
-                }else if(!"1".equals(data.getPage())){
-                    iterator.remove();
-                }
-            }
 
-            //遍历坐标 将对应的印章和坐标填写在Stamper种
-            for (Location location : locations) {
-                List<Stamper> stampers = Lists.newArrayList();
-                for (String invalidDocumentId: invalidDocumentIdList) {
-                    Stamper stamper = new Stamper();
-                    stamper.setDocumentId(invalidDocumentId);
-                    stamper.setType("SEAL_CORPORATE");
-                    stamper.setSealId(location.getSealId());
-                    stamper.setPage(Integer.parseInt(location.getPage()));
-                    stamper.setX(Double.valueOf(location.getOffsetX()));
-                    stamper.setY(Double.valueOf(location.getOffsetY()));
-                    stampers.add(stamper);
-                }
-                signByCompanyInfo.setStampers(stampers);
-                //将数据转换为jsonString
-                Object obj = com.alibaba.fastjson.JSONArray.toJSON(signByCompanyInfo);
-                String signByCompanyInfoJsonStr = obj.toString();
-                //进行静默签署
-                String signByCompanyStr = SignaturePostUtil.sendPostApplicationJson( HTTPTOP + "/contract/signbycompany",signByCompanyInfoJsonStr);
-                HashMap signByCompanyStrMap = JSON.parseObject(signByCompanyStr, HashMap.class);
-                String signByCompanyStrResult = signByCompanyStrMap.get("code").toString();
-                if(!"0".equals(signByCompanyStrResult)){
-                    return null;
-                }
-            }
+        //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+        ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectReportData.getProject().getId());
+
+        //根据contractId查询对应的报告信息
+        RuralProjectRecords records = projectRecordsService.get(projectReportData.getProject().getId());
+        if(StringUtils.isBlank(presignCallBack.getContractId())){
+            String title = "报告号【"+projectReportData.getNumber()+"】审定单签章失败。";
+            String content = "报告号【"+projectReportData.getNumber()+"】审定单签章失败。";
+            projectApprovalSignature.setStatus(ProjectStatusEnum.TSTORE.getValue());
+                WorkProjectNotify notify = new WorkProjectNotify();
+                notify.setNotifyId(projectApprovalSignature.getId());
+                workProjectNotifyService
+                        .save(UtilNotify
+                                .saveNotify(projectApprovalSignature.getId(),
+                                        projectApprovalSignature.getCreateBy(),
+                                        projectApprovalSignature.getCompany().getId(),
+                                        title,
+                                        content,
+                                        "144",
+                                        "0",
+                                        "待通知",
+                                        "审批通过"));
+            workActivityProcessService.deleteProcessIdAuditUsers(projectApprovalSignature.getProcessInstanceId());
+
+            projectApprovalSignature.setStatus(1);
+            dao.updateApprovalSignature(projectApprovalSignature);
+        }
+
+        String title = "报告号【"+projectReportData.getNumber()+"】审定单签章审批登记完成";
+        String content = "报告号【"+projectReportData.getNumber()+"】审定单签章审批登记完成,项目编号:"+records.getProjectId();
+        projectApprovalSignature.setStatus(ProjectStatusEnum.SIGNED.getValue());
+        WorkProjectNotify notify = new WorkProjectNotify();
+        notify.setNotifyId(projectApprovalSignature.getId());
+
+        //查询是否已经进行发送通知,没有发送则进行发送,否则  直接跳过
+        List<WorkProjectNotify> byTitle = workProjectNotifyService.getByTitle(title);
+        if(byTitle.size() == 0) {
+            workProjectNotifyService
+                    .save(UtilNotify
+                            .saveNotify(projectApprovalSignature.getId(),
+                                    projectApprovalSignature.getCreateBy(),
+                                    projectApprovalSignature.getCompany().getId(),
+                                    title,
+                                    content,
+                                    "144",
+                                    "0",
+                                    "待通知",
+                                    "审批通过"));
+            workActivityProcessService.deleteProcessIdAuditUsers(projectApprovalSignature.getProcessInstanceId());
+            //修改签章信息
+
+            //签章完成则进行数据的保存
+            projectReportData.setSignatureFlag(1);
+            projectReportData.setSignatureContractId(presignCallBack.getContractId());
+            projectReportData.setSignatureUploadDate(new Date());
+            //修改签章对应信息文件
+            projectReportDataService.updateSignatureInfo(projectReportData);
+
+
+
+
+            projectApprovalSignature.setStatus(5);
+            dao.updateApprovalSignature(projectApprovalSignature);
+
         }
-        //签章完成则进行数据的保存
-        projectReportData.setSignatureFlag(1);
-        projectReportDataService.updateSignatureInfo(projectReportData);
         long t2 = System.currentTimeMillis();
         System.out.println("审定单回调运行耗时:" + (t2-t1) + " 毫秒");
         return null;
@@ -263,11 +184,9 @@ public class RuralProjectSignatureCallBackController extends BaseController {
             String title = "报告号【"+projectReportData.getNumber()+"】报告签章失败。请重新签章";
             String content = "报告号【"+projectReportData.getNumber()+"】报告签章失败。请重新签章";
             if ("yes".equals(projectReportSignature.getAct().getFlag())) {
-                projectReportSignature.setStatus(com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum.SIGNED.getValue());
+                projectReportSignature.setStatus(ProjectStatusEnum.TSTORE.getValue());
                 WorkProjectNotify notify = new WorkProjectNotify();
                 notify.setNotifyId(projectReportSignature.getId());
-                //userList = workProjectNotifyService.readByNotifyId(notify);
-                //users.add(projectReportSignature.getCreateBy());
                 //查询是否已经进行发送通知,没有发送则进行发送,否则  直接跳过
                 List<WorkProjectNotify> byTitle = workProjectNotifyService.getByTitle(title);
                 if(byTitle.size() == 0){
@@ -321,11 +240,9 @@ public class RuralProjectSignatureCallBackController extends BaseController {
         //发送通知
         String title = "报告号【"+projectReportData.getNumber()+"】报告签章审批登记完成";
         String content = "报告号【"+projectReportData.getNumber()+"】报告签章审批登记完成,项目编号:"+records.getProjectId();
-        projectReportSignature.setStatus(com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum.SIGNED.getValue());
+        projectReportSignature.setStatus(ProjectStatusEnum.SIGNED.getValue());
         WorkProjectNotify notify = new WorkProjectNotify();
         notify.setNotifyId(projectReportSignature.getId());
-        //userList = workProjectNotifyService.readByNotifyId(notify);
-        //users.add(projectReportSignature.getCreateBy());
         //查询是否已经进行发送通知,没有发送则进行发送,否则  直接跳过
         List<WorkProjectNotify> byTitle = workProjectNotifyService.getByTitle(title);
         if(byTitle.size() == 0){
@@ -375,6 +292,101 @@ public class RuralProjectSignatureCallBackController extends BaseController {
 
 
 
+
+    /**
+     * 审定内签章回调操作
+     * @param presignCallBack  回调参数
+     * @return
+     */
+    @RequestMapping(value = "/getJudgementCoordinates", method=RequestMethod.POST)
+    public String getJudgementCoordinates(PresignCallBack presignCallBack) {
+        long t1 = System.currentTimeMillis();
+        //根据contractId查询对应的报告信息
+        RuralProjectRecords records = projectRecordsService.getJudgementSignatureByDocumentId(presignCallBack.getDocumentId());
+        if(null == records){
+            return null;
+        }
+        ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(records.getId());
+        //如果没有返回contractId 则进行数据暂存处理
+        if(StringUtils.isBlank(presignCallBack.getContractId())){
+            String title = "报告号【"+projectReportData.getNumber()+"】审定(内)签章失败。请重新签章";
+            String content = "报告号【"+projectReportData.getNumber()+"】审定(内)签章失败。请重新签章";
+            if ("yes".equals(projectReportData.getAct().getFlag())) {
+                WorkProjectNotify notify = new WorkProjectNotify();
+                notify.setNotifyId(projectReportData.getId());
+                //查询是否已经进行发送通知,没有发送则进行发送,否则  直接跳过
+                List<WorkProjectNotify> byTitle = workProjectNotifyService.getByTitle(title);
+                if(byTitle.size() == 0){
+                    workProjectNotifyService
+                            .save(UtilNotify
+                                    .saveNotify(projectReportData.getId(),
+                                            projectReportData.getCreateBy(),
+                                            projectReportData.getCompanyId(),
+                                            title,
+                                            content,
+                                            "105",
+                                            "0",
+                                            "待通知",
+                                            "审批通过"));
+
+                }
+
+            }
+
+            workActivityProcessService.deleteProcessIdAuditUsers(projectReportData.getProcessInstanceId());
+
+            projectReportData.setStatus("1");
+            projectReportDataDao.update(projectReportData);
+
+
+        }
+        //修改签章信息
+
+        //发送通知
+        String title = "报告号【"+projectReportData.getNumber()+"】审定(内)签章审批登记完成";
+        String content = "报告号【"+projectReportData.getNumber()+"】审定(内)签章审批登记完成,项目编号:"+records.getProjectId();
+        WorkProjectNotify notify = new WorkProjectNotify();
+        notify.setNotifyId(projectReportData.getId());
+        //查询是否已经进行发送通知,没有发送则进行发送,否则  直接跳过
+        List<WorkProjectNotify> byTitle = workProjectNotifyService.getByTitle(title);
+        if(byTitle.size() == 0){
+            projectReportData.setStatus("5");
+            workProjectNotifyService
+                    .save(UtilNotify
+                            .saveNotify(projectReportData.getId(),
+                                    projectReportData.getCreateBy(),
+                                    projectReportData.getCompanyId(),
+                                    title,
+                                    content,
+                                    "105",
+                                    "0",
+                                    "待通知",
+                                    "审批通过"));
+
+            workActivityProcessService.deleteProcessIdAuditUsers(projectReportData.getProcessInstanceId());
+
+            //签章完成则进行数据的保存
+            records.setQualitySignatureFlag(1);
+            records.setQualitySignatureDocumentId(presignCallBack.getDocumentId());
+            records.setQualitySignatureContractId(presignCallBack.getContractId());
+            records.setQualitySignatureUploadDate(new Date());
+            //修改签章对应信息文件
+            projectReportDataService.updateJudgementSignatureInfo(records);
+
+            projectReportData.setStatus("5");
+            projectReportDataDao.update(projectReportData);
+        }
+
+
+
+        long t2 = System.currentTimeMillis();
+        System.out.println("审定(内)签章回调运行耗时:" + (t2-t1) + " 毫秒");
+        return null;
+    }
+
+
+
+
     /**
      * 下载附件
      */

+ 27 - 3
src/main/resources/jeeplus.properties

@@ -7,7 +7,7 @@ jdbc.type=mysql
 jdbc.driver=com.mysql.jdbc.Driver
 db.name=ruihuaoa-activity-data
 #jdbc.url=jdbc:mysql://192.168.2.4:3306/simple_xg_total_process?useUnicode=true&characterEncoding=utf-8
-jdbc.url=jdbc:mysql://127.0.0.1:3306/simple_xg_total_process?useUnicode=true&characterEncoding=utf-8
+jdbc.url=jdbc:mysql://127.0.0.1:3306/new_ccpm_2?useUnicode=true&characterEncoding=utf-8
 jdbc.username=root
 #jdbc.password=123456
 jdbc.password=root
@@ -152,9 +152,9 @@ endpoint=http://oss-cn-hangzhou.aliyuncs.com
 accessKeyId=LTAI5tQDWoM9c1WyJNPs86rX
 accessKeySecret=84dDIx4edT1n78KUOqqSmDZ35pchJv
 #\u5F00\u53D1\u73AF\u5883
-bucketName=xgxm-test
+#bucketName=xgxm-test
 #\u751F\u4EA7\u73AF\u5883
-#bucketName=xg-ccpm
+bucketName=xg-ccpm
 avatarDir=app-img/avatar/
 notifyDir=app-img/notify/
 reportDir=app-img/report/
@@ -307,4 +307,28 @@ company_parties_seal_id = 2895597212998434929
 approval_category_id = 2895535120981852163
 #报告用印流程id
 report_category_id = 2896237012158222343
+#审定内用印流程id
+judgement_category_id = 2912238663717396786
+
+##192.168.2.6签章测试参数
+#apptoken = uIJQmTwyGJ
+#appsecret = 2NMBqFigKoInmd43Wohxv5aEDKiiHo
+#signature = 232a44ee9ebd251d119f0a65628f678e
+#
+#signature_http_top = http://192.168.2.6:9182
+#
+##竖版模板templateId
+#vertical_templateId = 2894156236229259396
+##横板模板templateId
+#across_templateId = 2894156210627227768
+##公司圆章
+#company_round_seal_id = 2894161942659543252
+##公司圆章-竖
+#company_round_seal_id_vertical = 2898043523878957918
+##公司方章
+#company_parties_seal_id = 2894163220106129636
+##审定单用印流程id
+#approval_category_id = 2895582833566102435
+##报告用印流程id
+#report_category_id = 2895618951099527314
 

+ 16 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectReportDataDao.xml

@@ -1198,5 +1198,21 @@
 		WHERE a.signature_contract_id = #{contractId}
 	</select>
 
+	<select id="getProjectReportDataByDocumentId" resultType="ProjectReportData" >
+		SELECT
+		<include refid="projectReportDataColumns"/>
+		,a.bzshb_user_id as "bzshbUserId"
+		,a.audit_pass_date as "auditPassDate"
+		,c.name as "consultant.name"
+		,p.name as "principal.name"
+		,t.name as "technicist.name"
+		FROM project_report_data a
+		<include refid="projectReportDataJoins"/>
+		LEFT JOIN sys_user c ON c.id = a.consultant_id
+		LEFT JOIN sys_user p ON p.id = a.principal_id
+		LEFT JOIN sys_user t ON t.id = a.technicist_id
+		WHERE a.signature_document_id = #{documentId}
+	</select>
+
 
 </mapper>

+ 14 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml

@@ -116,6 +116,20 @@
 		WHERE a.report_signature_document_id = #{documentId}
 	</select>
 
+
+	<select id="getJudgementSignatureByDocumentId" resultType="RuralProjectRecords" >
+		SELECT
+			<include refid="projectRecordsColumns"/>
+		,a.file_num AS "fileNum"
+	    ,a.check_process_instance_id AS "checkProcessInstanceId"
+		,a.project_master_id as "projectMasterId"
+		,a.submit_money as "submitMoney"
+		,a.engineering_type as "engineeringType"
+        FROM rural_project_records a
+        <include refid="projectRecordsJoins"/>
+		WHERE a.quality_signature_document_id = #{documentId}
+	</select>
+
 	<select id="getProjectRecordsByContractId" resultType="RuralProjectRecords" >
 		SELECT
 			<include refid="projectRecordsColumns"/>

+ 3 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/judgementReport/projectRecordsJudgementMessageView.jsp

@@ -657,7 +657,9 @@
 											<%--													<c:if test="${workClientAttachment.createBy.id eq fns:getUser().id}">--%>
 											<%--														<a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,'${ctx}/sys/workattachment/deleteFileFromAliyun?url=${workClientAttachment.url}&id=${workClientAttachment.id}&type=2','addFile_attachment','_attachment')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>--%>
 											<%--													</c:if>--%>
-										<a href="javascript:location.href='${ctx}/ruralProject/signatureCallBack/downLoadJudgementReportAttach?contractId=${projectRecords.qualitySignatureContractId}'" class="op-btn  op-btn-download layui-bg-orange">审定单签章下载</a>
+										<c:if test="${not empty projectRecords.qualitySignatureContractId}">
+											<a href="javascript:location.href='${ctx}/ruralProject/signatureCallBack/downLoadJudgementReportAttach?contractId='+'${projectRecords.qualitySignatureContractId}'" class="op-btn  op-btn-download layui-bg-orange">审定单签章下载</a>
+										</c:if>
 									</div>
 								</td>
 							</tr>