黄潞潞
2024-06-07 482f807361c9bc0dce2db949a29c755cf858548b
hotfix 签署方获取
8个文件已修改
160 ■■■■ 已修改文件
esign_weaver/src/weaver/BothSignService.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
esign_weaver/src/weaver/ISignService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
esign_weaver/src/weaver/PartyASignService.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
esign_weaver/src/weaver/PartyBSignService.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
esign_weaver/src/weaver/SignConfig.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
esign_weaver/src/weaver/WeaverHandler.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
foundation.system/src/foundation/org/Employee.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
foundation.system/src/foundation/user/OnlineUser.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
esign_weaver/src/weaver/BothSignService.java
@@ -10,9 +10,14 @@
import weaver.dao.ISignLetter;
import weaver.dao.Signer;
public class BothSignService implements ISignService{
    @Override
public class BothSignService extends ISignService{
    private SignConfig signConfig;
    public BothSignService(SignConfig signConfig) {
        super();
        this.signConfig = signConfig;
    }
    public List<Signer> getSigners(Entity entity) throws Exception {
        List<Signer> signers = new ArrayList();
        Signer signer;
@@ -26,21 +31,26 @@
        // 乙方
        DataObject dataObject = DataObject.getInstance("md_org_account");
        Entity org = dataObject.getBrowseEntity(customerId);
        String contractPhone = getContracePhone(signConfig.getPartybPhone(), companyId, customerId);
        signer = new Signer();
        signer.setSignatoryNo(org.getString("code")); 
        signer.setTenantName(org.getString("account_name"));
        signer.setReceiverName(org.getString("business_person")); 
        signer.setContactPhone(org.getString("business_phone"));
        signer.setContactPhone(contractPhone);
        signers.add(signer);
        
        // 甲方
        dataObject = DataObject.getInstance("md_org");
        org = dataObject.getTableEntity(companyId); 
        contractPhone = getContracePhone(signConfig.getPartyaPhone(), companyId, customerId);
        signer = new Signer();
        signer.setTenantName(ISignLetter.DefaultInitiator);;
        signer.setSignatoryNo(companyId); 
        signer.setReceiverName(org.getString("name")); 
        signer.setContactPhone(org.getString("business_phone"));
        signer.setContactPhone(contractPhone);
        signers.add(signer);
        
        return signers;
esign_weaver/src/weaver/ISignService.java
@@ -3,10 +3,48 @@
import java.util.List;
import foundation.data.entity.Entity;
import foundation.data.object.DataObject;
import foundation.org.Employee;
import foundation.user.OnlineUser;
import weaver.dao.Signer;
public interface ISignService{
    public List<Signer> getSigners(Entity entity) throws Exception;
public abstract class ISignService{
    public List<Signer> getSigners(Entity entity) throws Exception {
        return null;
    }
    public String getContracePhone(String sourceCode, String orgId, String accountId) throws Exception {
        int pos = sourceCode.indexOf("@{");
        if (pos == -1){
            return sourceCode;
        }
        sourceCode = sourceCode.substring(pos + 2, sourceCode.length());
        pos = sourceCode.indexOf(".");
        if (pos == -1) {
            OnlineUser user = OnlineUser.getInstance();
            Employee employee = user.getEmployee();
            if (employee != null) {
                return employee.getPhone();
            }
            return null;
        }
        String dataName = sourceCode.substring(0, pos);
        String field = sourceCode.substring(pos + 1);
        DataObject dataObject = DataObject.getInstance(dataName);
        if (dataName.equalsIgnoreCase("md_org")) {
            Entity entity = dataObject.getTableEntity(orgId);
            return entity.getString(field);
        }
        else {
            Entity entity = dataObject.getTableEntity(accountId);
            return entity.getString(field);
        }
    }
}
esign_weaver/src/weaver/PartyASignService.java
@@ -9,9 +9,14 @@
import weaver.dao.ISignLetter;
import weaver.dao.Signer;
public class PartyASignService  implements ISignService{
    @Override
public class PartyASignService  extends ISignService{
    private SignConfig signConfig;
    public PartyASignService(SignConfig signConfig) {
        super();
        this.signConfig = signConfig;
    }
    public List<Signer> getSigners(Entity entity) throws Exception {
        List<Signer> signers = new ArrayList(); 
        Signer signer = new Signer();
@@ -19,10 +24,13 @@
        DataObject dataObject = DataObject.getInstance("md_org");
        String companyId = entity.getString("company_id");
        Entity org = dataObject.getTableEntity(companyId); 
        String contractPhone = getContracePhone(signConfig.getPartyaPhone(), companyId, null);
        signer.setTenantName(ISignLetter.DefaultInitiator);;
        signer.setSignatoryNo(companyId); 
        signer.setReceiverName(org.getString("name")); 
        signer.setContactPhone(org.getString("business_phone"));
        signer.setContactPhone(contractPhone);
        signers.add(signer);
        
        return signers;
    }
esign_weaver/src/weaver/PartyBSignService.java
@@ -6,12 +6,19 @@
import foundation.data.entity.Entity;
import foundation.data.object.DataObject;
import foundation.org.Employee;
import foundation.user.OnlineUser;
import foundation.util.Util;
import weaver.dao.Signer;
public class PartyBSignService  implements ISignService{
public class PartyBSignService extends ISignService{
    private SignConfig signConfig;
    public PartyBSignService(SignConfig signConfig) {
        super();
        this.signConfig = signConfig;
    }
    @Override
    public List<Signer> getSigners(Entity entity) throws Exception {
        List<Signer> signers = new ArrayList(); 
        Signer signer = new Signer();
@@ -20,13 +27,16 @@
        if (Util.isEmpty(customerId)) {
            customerId = entity.getString("customer_id", "");
        }
        String contractPhone = getContracePhone(signConfig.getPartybPhone(), null, customerId);
        
        DataObject dataObject = DataObject.getInstance("md_org_account");
        Entity org = dataObject.getBrowseEntity(customerId);
        signer.setSignatoryNo(org.getString("code")); 
        signer.setTenantName(org.getString("account_name"));
        signer.setReceiverName(org.getString("business_person")); 
        signer.setContactPhone(org.getString("business_phone"));
        signer.setContactPhone(contractPhone);
        signers.add(signer);
        
        return signers;
esign_weaver/src/weaver/SignConfig.java
@@ -15,6 +15,8 @@
    private String fileField;
    private SignType signType;
    private String initiator;
    private String partyaPhone;
    private String partybPhone;
    private String subject;
    private VariantExpression expression;
    
@@ -25,6 +27,8 @@
        this.fileField = entity.getString("file_field");
        this.dataname = entity.getString("dataname");
        this.signType = SignType.parse(entity.getString("sign_type"));
        this.partyaPhone = entity.getString("partya_Phone");
        this.partybPhone = entity.getString("partyb_Phone");
        this.initiator = entity.getString("initiator");
        String subject = entity.getString("subject");
@@ -34,6 +38,7 @@
            this.expression = new VariantExpression(subject);
        }
    }
    public String getSubjectContent(Entity entity) {
        if(expression == null) {
            return subject;
@@ -79,5 +84,21 @@
    public VariantExpression getExpression() {
        return expression;
    }
    public String getInitiator() {
        return initiator;
    }
    public String getPartyaPhone() {
        return partyaPhone;
    }
    public String getPartybPhone() {
        return partybPhone;
    }
    public String getSubject() {
        return subject;
    }
}
esign_weaver/src/weaver/WeaverHandler.java
@@ -24,6 +24,7 @@
import foundation.icall.callout.RemoteSourceBucket;
import foundation.io.FileCenter;
import foundation.io.object.FileRecord;
import foundation.org.Employee;
import foundation.user.OnlineUser;
import foundation.util.MD5Utils;
import foundation.util.Util;
@@ -337,7 +338,6 @@
        String accessKey = eSignSourceMeta.getString(ISignLetter.AppToken);
        String accessSecret = eSignSourceMeta.getString(ISignLetter.AppSecret);
        
        String signerCode = dataReader.getString(ISignLetter.Signer);
        SignBucket signBucket = SignBucket.getInstance();
        SignConfig signConfig = signBucket.get(dataName);
@@ -442,13 +442,13 @@
        
        if (SignType.Both == signConfig.getSignType()) {
            signService = new BothSignService();
            signService = new BothSignService(signConfig);
        }
        else if (SignType.PartyB == signConfig.getSignType()) {
            signService = new PartyBSignService();
            signService = new PartyBSignService(signConfig);
        }
        else if (SignType.PartyA == signConfig.getSignType()) {
            signService = new PartyASignService();
            signService = new PartyASignService(signConfig);
        }
        List<Signer> signers = signService.getSigners(dataNameEntity);
        
@@ -650,6 +650,7 @@
    private Signer getSigner(String companyId) throws Exception {
        Signer signer = new Signer();
        OnlineUser user = OnlineUser.getInstance();
        Employee employee = user.getEmployee();
        ActorTarget actor = user.getCurrentActor();
        String actorId = user.getActorId();
        String accountId = actor.getTargetId();
@@ -668,13 +669,22 @@
            signer.setContactPhone(account.getString("business_phone"));
        }
        else {
            DataObject dataObject = DataObject.getInstance("md_org");
            Entity org = dataObject.getBrowseEntity(companyId);
            
            signer.setSignatoryNo(org.getString("id")); 
            signer.setTenantName(ISignLetter.DefaultInitiator);
            signer.setReceiverName(org.getString("business_person"));
            signer.setContactPhone(org.getString("business_phone"));
            signer.setReceiverName(user.getName());
            String businessPhone = "";
            if (employee != null) {
                businessPhone = employee.getPhone();
            }
            else {
                businessPhone = org.getString("business_phone");
            }
            signer.setContactPhone(businessPhone);
        }
        
        return signer;
foundation.system/src/foundation/org/Employee.java
@@ -19,6 +19,8 @@
    private String id;
    private String code;
    private String name;
    private String phone;
    private String email;
    private Org org;
    private MapList<String, Position> positions;
    
@@ -65,6 +67,8 @@
        id = entity.getString("id");
        code = entity.getString("code");
        name = entity.getString("name");
        phone = entity.getString("phone");
        email = entity.getString("email");
    }
    private void loadOnePosition(String positionId, Position position) {
@@ -87,6 +91,14 @@
        return name;
    }
    
    public String getPhone() {
        return phone;
    }
    public String getEmail() {
        return email;
    }
    public void setOrg(Org org) {
        this.org = org;
    }
foundation.system/src/foundation/user/OnlineUser.java
@@ -183,6 +183,15 @@
        return employee.getId();
    }
    public Employee getEmployee() {
        Employee employee = user.getCurrentEmployee();
        if (employee == null) {
            return null;
        }
        return employee;
    }
    @Override
    public String getEmployeeName() {
        Employee employee = user.getCurrentEmployee();