Commit 0fb2e9f1 by jianan

查询分公司电子印章

parent 4d9938b7
package com.yd.api.practitioner.service;
import com.yd.api.practitioner.vo.hiring.GeneratePDFRequestVO;
import com.yd.dal.entity.customer.AclPractitioner;
import java.util.Map;
public interface PractitionerHiringContractService {
String generatePractitionerContract(String practitionerNO, String contractNo, Long hiringBasicInfoId) throws Exception;
String generatePractitionerContract(AclPractitioner practitioner) throws Exception;
Map<String, String> initHiringBasicInfoData(Long hiringBasicInfoId, String contractNo);
Map<String, String> initHiringImageInfoData(Long hiringBasicInfoId);
Map<String, String> initHiringImageInfoData(Long hiringBasicInfoId, String signImage);
String generatePractitionerPDF(String practitionerNO,Map<String, String> initDatas,Map<String, String> initImages);
String generatePractitionerPDF(AclPractitioner practitioner, String signImage, Map<String, String> initDatas, Map<String, String> initImages) throws Exception;
String getNextContractNo();
}
\ No newline at end of file
......@@ -10,6 +10,8 @@ import com.yd.rmi.cache.SystemConfigService;
import com.yd.util.CommonUtil;
import com.yd.util.HttpUtil;
import com.yd.util.PDFConfiguration;
import com.yd.util.config.ZHBErrorConfig;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -37,16 +39,24 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
private AclPractitionerHiringPersonalStatementsMapper statementsMapper;
@Autowired
private SystemConfigService systemConfigService;
@Autowired
private AclInsurerBranchMapper branchMapper;
@Autowired
private AclInsurerBranchDeptMapper deptMapper;
/**
* 申请经纪人的ID,生成电子合同,在经纪人表中自动生成记录
*
* @param hiringBasicInfoId
* @param practitioner
* @return
*/
@Override
public String generatePractitionerContract(String practitionerNO, String contractNo, Long hiringBasicInfoId) throws Exception {
public String generatePractitionerContract(AclPractitioner practitioner) throws Exception {
String contractNo = practitioner.getContractNo();
Long hiringBasicInfoId = practitioner.getHiringBasicInfoId();
//0、查询分公司电子印章
String signImage = this.getSignImageLocalPath(practitioner);
//1、从DB中按照hiringBasicInfoId,获取经纪人的文字信息
Map<String, String> initDatas = new HashMap<String, String>();
......@@ -54,15 +64,11 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
//2、从DB中按照hiringBasicInfoId,从oss上获取经纪人上传的图片信息,需存本地临时文件
Map<String, String> initImages = new HashMap<String, String>();
initImages = initHiringImageInfoData(hiringBasicInfoId);
initImages = initHiringImageInfoData(hiringBasicInfoId, signImage);
//ag_acl_practitioner.practitioner_code
//String practitionerNO = "YDSH00009";
//String contractNO = "CTSH00009";
//3、PDF模板生成合同文件,存本地临时文件后,上传oss
String contractFile = generatePractitionerPDF(practitionerNO, initDatas, initImages);
String contractFile = generatePractitionerPDF(practitioner, signImage, initDatas, initImages);
//上传至oss ossService
String contractFileOSS = this.putContractFileToOSS(contractFile, hiringBasicInfoId);
......@@ -383,7 +389,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
* @return
*/
@Override
public Map<String, String> initHiringImageInfoData(Long hiringBasicInfoId) {
public Map<String, String> initHiringImageInfoData(Long hiringBasicInfoId, String signImage) {
AclPractitionerHiringBasicInfo basicInfo = basicInfoMapper.selectByPrimaryKey(hiringBasicInfoId);
......@@ -401,7 +407,7 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
String personerPicture = this.getImgTolocal(localDirectory,"personerPicture.png", basicInfo.getPersonerPictureOssPath());
images.put("secondPersonerPicture", personerPicture);
//印章从配置文件读
String signImage = PDFConfiguration.getProperty("pdf.signImage");
// String signImage = PDFConfiguration.getProperty("pdf.signImage");
images.put("yindunESignature1001", signImage);
images.put("yindunESignature1201", signImage);
images.put("yindunESignature1401", signImage);
......@@ -589,13 +595,16 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
* @return
*/
@Override
public String generatePractitionerPDF(String practitionerNO, Map<String, String> initDatas, Map<String, String> initImages) {
public String generatePractitionerPDF(AclPractitioner practitioner, String signImage,
Map<String, String> initDatas, Map<String, String> initImages) throws Exception {
String templatePDF = "D:\\pcs12\\templatePractitionerContract.pdf";
templatePDF = PDFConfiguration.getProperty("pdf.template");
//模板文件生成零时文件
String tmpPathPDF = PDFConfiguration.getProperty("pdf.temp.path");
//PDF模板输出结果文件
String practitionerNO = practitioner.getPractitionerCode();
String templateResultPDF = tmpPathPDF + practitionerNO + "-template.pdf";
//按模板填充数据生成结果PDF
PDFTemplate.generatePDF(templatePDF, templateResultPDF, initDatas, initImages);
......@@ -614,8 +623,9 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
String signSourcePDF = templateResultPDF;
//电子印章文件
String signImage = "D:\\pcs12\\上海银盾保险经纪有限公司.png";
signImage = PDFConfiguration.getProperty("pdf.signImage");
// String signImage = "D:\\pcs12\\上海银盾保险经纪有限公司.png";
// signImage = PDFConfiguration.getProperty("pdf.signImage");
float x = 450;
float y = 150;
x = Float.parseFloat(PDFConfiguration.getProperty("pdf.position.x"));
......@@ -629,6 +639,38 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
return signResultPDF;
}
private String getSignImageLocalPath(AclPractitioner practitioner) throws Exception {
Long insurerBranchId = practitioner.getInsurerBranchId();
Long deptId = practitioner.getDeptId();
// 1.获取电子印章url
InputStream inputStream = null;
String electronicTaxSeal = null;
AclInsurerBranchDept dept = deptMapper.selectByPrimaryKey(deptId);
if (dept != null && StringUtils.isNotBlank(dept.getElectronicTaxSeal())) {
electronicTaxSeal = dept.getElectronicTaxSeal();
} else {
AclInsurerBranch insurerBranch = branchMapper.selectByPrimaryKey(insurerBranchId);
if (insurerBranch != null && StringUtils.isNotBlank(insurerBranch.getElectronicTaxSeal())) {
electronicTaxSeal = insurerBranch.getElectronicTaxSeal();
}
}
if (StringUtils.isBlank(electronicTaxSeal)) {
throw new Exception("分公司和部门电子印章url不能同时为空");
}
// 2.从Oss下载电子印章图片到本地
//本地图片目录
String localDirectory = PDFConfiguration.getProperty("pdf.signImage");
String signature = this.getImgTolocal(localDirectory,"signImage.png", electronicTaxSeal);
return signature;
}
@Override
public String getNextContractNo() {
return practitionerHiringMapper.getNextContractNo();
......
......@@ -756,7 +756,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
if (StringUtils.isEmpty(contractNo)) {
contractNo = hiringContractService.getNextContractNo();
}
String contractOssPath = hiringContractService.generatePractitionerContract(practitionerCode, contractNo, hiringBasicInfoId);
String contractOssPath = hiringContractService.generatePractitionerContract(practitioner);
//4、经纪人表生成经纪人记录ag_acl_practitioner,ag_acl_practitioner.contract_oss_path
// 经纪人经纪人类型级别定义表ag_acl_practitioner_setting
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment