|
@@ -9,22 +9,28 @@ import com.jeeplus.common.persistence.Page;
|
|
|
import com.jeeplus.common.service.CrudService;
|
|
|
import com.jeeplus.common.utils.IdGen;
|
|
|
import com.jeeplus.common.utils.MenuStatusEnum;
|
|
|
+import com.jeeplus.common.utils.MyBeanUtils;
|
|
|
import com.jeeplus.modules.act.entity.Act;
|
|
|
import com.jeeplus.modules.act.service.ActTaskService;
|
|
|
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
|
|
|
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
|
|
|
import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.entity.*;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
|
|
|
import com.jeeplus.modules.serialnum.service.SerialNumTplService;
|
|
|
import com.jeeplus.modules.signature.projectReportSignatureWork.dao.ProjectReportSignatureWorkDao;
|
|
|
import com.jeeplus.modules.signature.projectReportSignatureWork.entity.ProjectReportSignatureRelation;
|
|
|
import com.jeeplus.modules.signature.projectReportSignatureWork.entity.ProjectReportSignatureWork;
|
|
|
+import com.jeeplus.modules.sys.entity.MainDictDetail;
|
|
|
import com.jeeplus.modules.signature.projectReportSignatureWork.entity.ReportSignature;
|
|
|
import com.jeeplus.modules.sys.entity.Office;
|
|
|
import com.jeeplus.modules.sys.entity.User;
|
|
|
import com.jeeplus.modules.sys.entity.Workattachment;
|
|
|
import com.jeeplus.modules.sys.service.OfficeService;
|
|
|
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.dao.WorkActivityProcessDao;
|
|
@@ -42,6 +48,7 @@ import com.jeeplus.modules.workinvoice.entity.WorkInvoiceProjectRelation;
|
|
|
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 org.activiti.engine.ActivitiObjectNotFoundException;
|
|
|
import org.activiti.engine.IdentityService;
|
|
|
import org.activiti.engine.RuntimeService;
|
|
@@ -68,8 +75,12 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
* 公司圆章-横
|
|
|
*/
|
|
|
private static final String COMPANYROUNDSEALID = Global.getConfig("company_round_seal_id");
|
|
|
- //日常签章申请流程id
|
|
|
+ //日常签章报告申请流程id
|
|
|
private static final String PROJECTREPORTWORK = Global.getConfig("signature_project_report_work");
|
|
|
+ //日常签章审定单申请流程id
|
|
|
+ private static final String PROJECTAPPROVALWORK = Global.getConfig("signature_project_approval_work");
|
|
|
+
|
|
|
+ private static final String CUSTOMAPPROVALCATEGORYID = Global.getConfig("custom_approval_category_id");
|
|
|
|
|
|
@Autowired
|
|
|
private OfficeService officeService;
|
|
@@ -97,6 +108,10 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
private ActivityService activityService;
|
|
|
@Autowired
|
|
|
private RuralProjectRecordsService ruralProjectRecordsService;
|
|
|
+ @Autowired
|
|
|
+ private ProjectReportDataService projectReportDataService;
|
|
|
+ @Autowired
|
|
|
+ private RuralProjectMessageService ruralProjectMessageService;
|
|
|
|
|
|
|
|
|
|
|
@@ -161,11 +176,31 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
return projectReportSignature;
|
|
|
}
|
|
|
|
|
|
+ public ReportSignature getByDocumentReportId(String documentId) {
|
|
|
+ ReportSignature projectReportSignature = dao.getByDocumentReportId(documentId);
|
|
|
+ return projectReportSignature;
|
|
|
+ }
|
|
|
+
|
|
|
+ public ReportSignature getByDocumentApprovalId(String documentId) {
|
|
|
+ ReportSignature projectReportSignature = dao.getByDocumentApprovalId(documentId);
|
|
|
+ return projectReportSignature;
|
|
|
+ }
|
|
|
+
|
|
|
public ProjectReportSignatureWork getByContractId(String contractId) {
|
|
|
ProjectReportSignatureWork projectReportSignature = dao.getByContractId(contractId);
|
|
|
return projectReportSignature;
|
|
|
}
|
|
|
|
|
|
+ public ReportSignature getByContractReportId(String contractId) {
|
|
|
+ ReportSignature projectReportSignature = dao.getByContractReportId(contractId);
|
|
|
+ return projectReportSignature;
|
|
|
+ }
|
|
|
+
|
|
|
+ public ReportSignature getByContractApprovalId(String contractId) {
|
|
|
+ ReportSignature projectReportSignature = dao.getByContractApprovalId(contractId);
|
|
|
+ return projectReportSignature;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
public List<ProjectReportSignatureWork> findList(ProjectReportSignatureWork projectReportSignature) {
|
|
|
return super.findList(projectReportSignature);
|
|
@@ -200,7 +235,7 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
* @param projectReportSignature
|
|
|
*/
|
|
|
@Transactional(readOnly = false)
|
|
|
- public void saveInfo(ProjectReportSignatureWork projectReportSignature) {
|
|
|
+ public String saveInfo(ProjectReportSignatureWork projectReportSignature) {
|
|
|
|
|
|
projectReportSignature.setStatus(1);
|
|
|
User createBy = projectReportSignature.getCreateBy();
|
|
@@ -296,6 +331,7 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
|
|
|
//处理需要签章的报告信息
|
|
|
//this.disposeProjectReportRelevance(projectReportSignature);
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
@Transactional(readOnly = false)
|
|
@@ -406,7 +442,7 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@Transactional(readOnly = false)
|
|
|
- public void save(ProjectReportSignatureWork projectReportSignature, ProjectStatusEnum status) throws Exception {
|
|
|
+ public String save(ProjectReportSignatureWork projectReportSignature, ProjectStatusEnum status) throws Exception {
|
|
|
projectReportSignature.setCompany(UserUtils.getUser().getCompany());
|
|
|
projectReportSignature.setOffice(UserUtils.getUser().getOffice());
|
|
|
|
|
@@ -517,7 +553,14 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
|
|
|
|
|
|
//发起签章申请
|
|
|
-// this.getManualSignatureUrl(projectReportSignature.getId());
|
|
|
+ HashMap<String, Object> map = this.getManualSignatureUrl(projectReportSignature.getId() ,signature);
|
|
|
+ Boolean success = (Boolean) map.get("success");
|
|
|
+ //如果数据报错,则数据撤回到暂存环节
|
|
|
+ if(!success){
|
|
|
+ String message = (String) map.get("message");
|
|
|
+ return message;
|
|
|
+ }
|
|
|
+ return "保存签章申请成功";
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -527,7 +570,7 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@Transactional(readOnly = false)
|
|
|
- public void saveApproval(ProjectReportSignatureWork projectReportSignature, ProjectStatusEnum status) throws Exception {
|
|
|
+ public String saveApproval(ProjectReportSignatureWork projectReportSignature, ProjectStatusEnum status) throws Exception {
|
|
|
projectReportSignature.setCompany(UserUtils.getUser().getCompany());
|
|
|
projectReportSignature.setOffice(UserUtils.getUser().getOffice());
|
|
|
|
|
@@ -598,7 +641,14 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
|
|
|
|
|
|
//发起签章申请
|
|
|
-// this.getManualSignatureUrl(projectReportSignature.getId());
|
|
|
+ HashMap<String, Object> map = this.getManualSignatureUrl(projectReportSignature.getId(),signature);
|
|
|
+ Boolean success = (Boolean) map.get("success");
|
|
|
+ //如果数据报错,则数据撤回到暂存环节
|
|
|
+ if(!success){
|
|
|
+ String message = (String) map.get("message");
|
|
|
+ return message;
|
|
|
+ }
|
|
|
+ return "保存签章申请成功";
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -956,7 +1006,7 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
* @param dailyOfficeWorkId
|
|
|
* @return
|
|
|
*/
|
|
|
- public HashMap<String, Object> getManualSignatureUrl( String dailyOfficeWorkId) {
|
|
|
+ public HashMap<String, Object> getManualSignatureUrl( String dailyOfficeWorkId, ReportSignature signature) {
|
|
|
HashMap<String, Object> map = Maps.newHashMap();
|
|
|
map.put("contractUrl","");
|
|
|
map.put("success",false);
|
|
@@ -977,8 +1027,21 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
return map;
|
|
|
}
|
|
|
Workattachment workClientAttachment = new Workattachment();
|
|
|
- workClientAttachment.setAttachmentFlag("173");
|
|
|
- workClientAttachment.setAttachmentId(dailyOfficeWorkId);
|
|
|
+ if(projectReportSignature.getSignatureType().equals("2")){
|
|
|
+ //获取审定单信息
|
|
|
+ //ReportSignature approvalSignature = dao.getApprovalBySigId(projectReportSignature.getId());
|
|
|
+
|
|
|
+ workClientAttachment.setAttachmentFlag("174");
|
|
|
+ workClientAttachment.setAttachmentId(signature.getId());
|
|
|
+ }else{
|
|
|
+ //获取报告信息
|
|
|
+ //ReportSignature reportSignature = dao.getReportBySigId(projectReportSignature.getId());
|
|
|
+
|
|
|
+ workClientAttachment.setAttachmentFlag("173");
|
|
|
+ workClientAttachment.setAttachmentId(signature.getId());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
List<Workattachment> fileList = workattachmentService.findList(workClientAttachment);
|
|
|
|
|
|
//创建一个用于存放签章文件documentId的集合
|
|
@@ -1053,7 +1116,20 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
}
|
|
|
|
|
|
//根据项目id 和 documentId生成合同id
|
|
|
- HashMap contractIdHashMap = this.getManualSignatureContractId(documentList,projectReportSignature);
|
|
|
+ //HashMap contractIdHashMap = this.getManualSignatureContractId(documentList,projectReportSignature);
|
|
|
+ //根据项目id 和 documentId生成合同id
|
|
|
+
|
|
|
+ //区分是审定单签章申请 还是 报告签章申请
|
|
|
+ HashMap contractIdHashMap = new HashMap();
|
|
|
+ //审定单
|
|
|
+ if(projectReportSignature.getSignatureType().equals("2")){
|
|
|
+ contractIdHashMap = this.getManualApprovalSignatureContractId(projectReportSignature.getProjectId(), documentList);
|
|
|
+ }else{
|
|
|
+ //报告
|
|
|
+ contractIdHashMap = this.getManualReportSignatureContractId(projectReportSignature.getProjectId(), documentList);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
String contractIdCode = contractIdHashMap.get("code").toString();
|
|
|
String contractId = "";
|
|
|
if("0".equals(contractIdCode)){
|
|
@@ -1067,13 +1143,29 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
map.put("str",contractIdHashMap.get("message").toString());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
String documents = String.join(",", documentList);
|
|
|
//修改报告信息中对应的签章contractId
|
|
|
- projectReportSignature.setSignatureDocumentId(documents);
|
|
|
+ /*projectReportSignature.setSignatureDocumentId(documents);
|
|
|
projectReportSignature.setSignatureContractId(contractId);
|
|
|
//修改签章对应信息文件
|
|
|
- dao.updateSignatureInfo(projectReportSignature);
|
|
|
+ dao.updateSignatureInfo(projectReportSignature);*/
|
|
|
+
|
|
|
+ //判断是审定单 还是报告签章申请
|
|
|
+ if(projectReportSignature.getSignatureType().equals("2")){
|
|
|
+ //修改信息中对应的签章contractId(审定单)
|
|
|
+ signature.setSignatureDocumentId(documents);
|
|
|
+ signature.setSignatureContractId(contractId);
|
|
|
+ //修改签章对应信息文件
|
|
|
+ dao.updateApprovalSignatureInfo(signature);
|
|
|
+ }else{
|
|
|
+ //修改信息中对应的签章contractId(报告)
|
|
|
+ signature.setSignatureDocumentId(documents);
|
|
|
+ signature.setSignatureContractId(contractId);
|
|
|
+ //修改签章对应信息文件
|
|
|
+ dao.updateReportSignatureInfo(signature);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
map.put("success",true);
|
|
|
return map;
|
|
@@ -2115,6 +2207,435 @@ public class ProjectReportSignatureWorkService extends CrudService<ProjectReport
|
|
|
return projectRelationList;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据项目id 和 documentId生成合同id(手动签生成签署合同)(页面签)
|
|
|
+ * @param projectId
|
|
|
+ * @param documentList
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public HashMap getManualApprovalSignatureContractId(String projectId, List<String> documentList){
|
|
|
+ HashMap hashMap = new HashMap();
|
|
|
+ //创建签署方信息
|
|
|
+ List<Action> actions = Lists.newArrayList();
|
|
|
+ Set<String> serialIdSet = new HashSet<>();
|
|
|
+ //根据项目id查询项目信息
|
|
|
+ RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(projectId);
|
|
|
+ Action companyAction = new Action();
|
|
|
+ companyAction.setType("CORPORATE");
|
|
|
+ companyAction.setName("公司印章");
|
|
|
+ companyAction.setSerialNo("1");
|
|
|
+ //公司圆章
|
|
|
+ serialIdSet.add(COMPANYROUNDSEALID);
|
|
|
+ //添加盖章位置
|
|
|
+ List<Location> locations = Lists.newArrayList();
|
|
|
+ for (String documentId: documentList) {
|
|
|
+ Location location = new Location();
|
|
|
+ location.setSealId(COMPANYROUNDSEALID);
|
|
|
+ location.setDocumentId(documentId);
|
|
|
+ location.setPage("0");
|
|
|
+ location.setRectType("SEAL_CORPORATE");
|
|
|
+ location.setKeywordIndex(-1);
|
|
|
+ location.setOffsetX("0.6787");
|
|
|
+ location.setOffsetY("0.4664");
|
|
|
+ locations.add(location);
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据角色信息录入签署方信息
|
|
|
+ //负责人
|
|
|
+ if(StringUtils.isNotBlank(ruralProjectRecords.getProjectMasterId())){
|
|
|
+ User user = UserUtils.get(ruralProjectRecords.getProjectMasterId());
|
|
|
+ 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.5376");
|
|
|
+ principalLocation.setOffsetY("0.2771");
|
|
|
+ locations.add(principalLocation);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ hashMap.put("code","2");
|
|
|
+ hashMap.put("message","查询不到项目负责人 "+ user.getName() + " 的印章信息!请联系管理员");
|
|
|
+ return hashMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取成员个人签名章印章id信息
|
|
|
+ String userSignatureSealId = SignaturePostUtil.getUserSealByMobile(user.getMobile(),"",user.getName() + "个人签名章");
|
|
|
+ if(StringUtils.isNotBlank(userSignatureSealId)){
|
|
|
+ for (String documentId: documentList) {
|
|
|
+ //添加盖章位置
|
|
|
+ Location principalLocation = new Location();
|
|
|
+ serialIdSet.add(userSignatureSealId);
|
|
|
+ principalLocation.setSealId(userSignatureSealId);
|
|
|
+ principalLocation.setDocumentId(documentId);
|
|
|
+ principalLocation.setPage("0");
|
|
|
+ principalLocation.setRectType("SEAL_CORPORATE");
|
|
|
+ principalLocation.setKeywordIndex(-1);
|
|
|
+ principalLocation.setOffsetX("0.6476");
|
|
|
+ principalLocation.setOffsetY("0.2671");
|
|
|
+ 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.6958");
|
|
|
+ principalLocation.setOffsetY("0.4009");
|
|
|
+ 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("false");
|
|
|
+ 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(PROJECTAPPROVALWORK);
|
|
|
+
|
|
|
+ signatureContract.setSend(true);
|
|
|
+ signatureContract.setSignatories(signatories);
|
|
|
+ signatureContract.setSn("");
|
|
|
+ ProjectReportData reportData = projectReportDataService.getReportDataByProjectId(ruralProjectRecords.getId());
|
|
|
+ if(null != reportData && StringUtils.isNotBlank(reportData.getNumber())){
|
|
|
+ signatureContract.setSubject(reportData.getNumber() + "。" + ruralProjectRecords.getProjectName());//添加项目名称
|
|
|
+ }else{
|
|
|
+ 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 getManualReportSignatureContractId(String projectId, List<String> documentList){
|
|
|
+ HashMap hashMap = new HashMap();
|
|
|
+ //创建签署方信息
|
|
|
+ List<Action> actions = Lists.newArrayList();
|
|
|
+ Set<String> serialIdSet = new HashSet<>();
|
|
|
+ //根据项目id查询项目信息
|
|
|
+ RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(projectId);
|
|
|
+
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(ruralProjectRecords.getId());
|
|
|
+
|
|
|
+ Action companyAction = new Action();
|
|
|
+ companyAction.setType("CORPORATE");
|
|
|
+ companyAction.setName("公司印章");
|
|
|
+ companyAction.setSerialNo("1");
|
|
|
+ //公司圆章
|
|
|
+ serialIdSet.add(COMPANYROUNDSEALID);
|
|
|
+ //添加盖章位置
|
|
|
+ List<Location> locations = Lists.newArrayList();
|
|
|
+ for (String documentId: documentList) {
|
|
|
+ Location location = new Location();
|
|
|
+ location.setSealId(COMPANYROUNDSEALID);
|
|
|
+ location.setDocumentId(documentId);
|
|
|
+ location.setPage("0");
|
|
|
+ location.setRectType("SEAL_CORPORATE");
|
|
|
+ location.setKeywordIndex(-1);
|
|
|
+ location.setOffsetX("0.6787");
|
|
|
+ location.setOffsetY("0.4664");
|
|
|
+ locations.add(location);
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据角色信息录入签署方信息
|
|
|
+ //负责人
|
|
|
+ if(StringUtils.isNotBlank(ruralProjectRecords.getProjectMasterId())){
|
|
|
+ User user = UserUtils.get(ruralProjectRecords.getProjectMasterId());
|
|
|
+ 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.5376");
|
|
|
+ principalLocation.setOffsetY("0.2771");
|
|
|
+ locations.add(principalLocation);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ hashMap.put("code","2");
|
|
|
+ hashMap.put("message","查询不到项目负责人 "+ user.getName() + " 的印章信息!请联系管理员");
|
|
|
+ return hashMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取成员个人签名章印章id信息
|
|
|
+ String userSignatureSealId = SignaturePostUtil.getUserSealByMobile(user.getMobile(),"",user.getName() + "个人签名章");
|
|
|
+ if(StringUtils.isNotBlank(userSignatureSealId)){
|
|
|
+ for (String documentId: documentList) {
|
|
|
+ //添加盖章位置
|
|
|
+ Location principalLocation = new Location();
|
|
|
+ serialIdSet.add(userSignatureSealId);
|
|
|
+ principalLocation.setSealId(userSignatureSealId);
|
|
|
+ principalLocation.setDocumentId(documentId);
|
|
|
+ principalLocation.setPage("0");
|
|
|
+ principalLocation.setRectType("SEAL_CORPORATE");
|
|
|
+ principalLocation.setKeywordIndex(-1);
|
|
|
+ principalLocation.setOffsetX("0.6476");
|
|
|
+ principalLocation.setOffsetY("0.2671");
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+ //咨询员签字章和造价师章
|
|
|
+ //查询咨询员信息
|
|
|
+ List<User> consultantUserList = this.getConsultantUserList(ruralProjectRecords, projectReportData);
|
|
|
+ if(null != consultantUserList && consultantUserList.size()>0){
|
|
|
+ for(int i = 0; i<consultantUserList.size(); i ++){
|
|
|
+ User user = consultantUserList.get(i);
|
|
|
+ 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.5376");
|
|
|
+ principalLocation.setOffsetY("0.2771");
|
|
|
+ locations.add(principalLocation);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ hashMap.put("code","2");
|
|
|
+ hashMap.put("message","查询不到咨询员 "+ user.getName() + " 的印章信息!请联系管理员");
|
|
|
+ return hashMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取成员个人签名章印章id信息
|
|
|
+ String userSignatureSealId = SignaturePostUtil.getUserSealByMobile(user.getMobile(),"",user.getName() + "个人签名章");
|
|
|
+ if(StringUtils.isNotBlank(userSignatureSealId)){
|
|
|
+ for (String documentId: documentList) {
|
|
|
+ //添加盖章位置
|
|
|
+ Location principalLocation = new Location();
|
|
|
+ serialIdSet.add(userSignatureSealId);
|
|
|
+ principalLocation.setSealId(userSignatureSealId);
|
|
|
+ principalLocation.setDocumentId(documentId);
|
|
|
+ principalLocation.setPage("0");
|
|
|
+ principalLocation.setRectType("SEAL_CORPORATE");
|
|
|
+ principalLocation.setKeywordIndex(-1);
|
|
|
+ principalLocation.setOffsetX("0.6476");
|
|
|
+ principalLocation.setOffsetY("0.2671");
|
|
|
+ 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.6958");
|
|
|
+ principalLocation.setOffsetY("0.4009");
|
|
|
+ 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);
|
|
|
+ //法人章
|
|
|
+ User representativeUser = UserUtils.getByLoginName("杨荣华");
|
|
|
+ if(null != representativeUser){
|
|
|
+ //获取成员印章id信息
|
|
|
+ String userSealId = SignaturePostUtil.getUserSealByMobile(representativeUser.getMobile(),"","杨荣华个人签名章");
|
|
|
+ if(StringUtils.isNotBlank(userSealId)){
|
|
|
+
|
|
|
+ serialIdList.add(userSealId);
|
|
|
+ //添加盖章位置
|
|
|
+ Location principalLocation = new Location();
|
|
|
+ principalLocation.setDocumentId(documentList.get(0));
|
|
|
+ principalLocation.setSealId(userSealId);
|
|
|
+ principalLocation.setPage("0");
|
|
|
+ principalLocation.setRectType("SEAL_CORPORATE");
|
|
|
+ principalLocation.setKeywordIndex(-1);
|
|
|
+ principalLocation.setOffsetX("0.07");
|
|
|
+ principalLocation.setOffsetY("0.03");
|
|
|
+ locations.add(principalLocation);
|
|
|
+ }else{
|
|
|
+ hashMap.put("code","2");
|
|
|
+ hashMap.put("message","查询不到技术负责人 杨荣华 的印章信息!请联系管理员");
|
|
|
+ return hashMap;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ hashMap.put("code","2");
|
|
|
+ hashMap.put("message","查询不到技术负责人 杨荣华 的信息!请联系管理员");
|
|
|
+ return hashMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ companyAction.setSealIds("[" + String.join(",", serialIdList) + "]");
|
|
|
+ companyAction.setAutoSign("false");
|
|
|
+ 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(PROJECTREPORTWORK);
|
|
|
+
|
|
|
+ signatureContract.setSend(true);
|
|
|
+ signatureContract.setSignatories(signatories);
|
|
|
+ signatureContract.setSn("");
|
|
|
+ ProjectReportData reportData = projectReportDataService.getReportDataByProjectId(ruralProjectRecords.getId());
|
|
|
+ if(null != reportData && StringUtils.isNotBlank(reportData.getNumber())){
|
|
|
+ signatureContract.setSubject(reportData.getNumber() + "。" + ruralProjectRecords.getProjectName());//添加项目名称
|
|
|
+ }else{
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询咨询员信息
|
|
|
+ * @param ruralProjectRecords
|
|
|
+ * @param projectReportData
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<User> getConsultantUserList(RuralProjectRecords ruralProjectRecords,ProjectReportData projectReportData) {
|
|
|
+ List<User> userList = Lists.newArrayList();
|
|
|
+ //根据项目id查找报告咨询员信息
|
|
|
+ List<RuralReportConsultant> consultantList = ruralProjectMessageService.getConsultantsList(ruralProjectRecords.getId());
|
|
|
+ //遍历质量复核咨询员表信息
|
|
|
+ for (RuralReportConsultant consultant : consultantList) {
|
|
|
+ //如果咨询员信息中的人员id不是项目负责人 并且不是技术负责人,则他就是咨询员
|
|
|
+ if(!consultant.getZixunyuan().equals(ruralProjectRecords.getProjectMasterId()) && !consultant.getZixunyuan().equals(projectReportData.getBzshbUserId())){
|
|
|
+ User user = UserUtils.get(consultant.getZixunyuan());
|
|
|
+ if(null != user){
|
|
|
+ userList.add(user);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return userList;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据签章id查询报告签章信息
|
|
|
* @param id 签章id
|