Browse Source

更新e签宝元数据

heyuan 5 months ago
parent
commit
0b04ef0e51

+ 3 - 3
metadata/com/kingdee/eas/custom/esign/ESignTemplate.bizunit

@@ -116,9 +116,9 @@
             <lang locale="zh_TW" value="com.kingdee.eas.custom.esign.client.ESignTemplateListUI" />
         </rs>
         <rs key="bizUnit[com.kingdee.eas.custom.esign.ESignTemplate].extendedProperty.maxFieldIndex">
-            <lang locale="en_US" value="19" />
-            <lang locale="zh_CN" value="19" />
-            <lang locale="zh_TW" value="19" />
+            <lang locale="en_US" value="20" />
+            <lang locale="zh_CN" value="20" />
+            <lang locale="zh_TW" value="20" />
         </rs>
         <rs key="bizUnit[com.kingdee.eas.custom.esign.ESignTemplate].extendedProperty.useTableEditUI">
             <lang locale="en_US" value="false" />

+ 26 - 0
metadata/com/kingdee/eas/custom/esign/app/CT_ESI_ESignTemplateFileEntry.table

@@ -147,6 +147,20 @@
             <scale>0</scale>
             <precision>0</precision>
         </column>
+        <column>
+            <name>CFSyncTime</name>
+            <alias>dataTable[com.kingdee.eas.custom.esign.app.CT_ESI_ESignTemplateFileEntry].columns.column[CFSyncTime].alias</alias>
+            <description>dataTable[com.kingdee.eas.custom.esign.app.CT_ESI_ESignTemplateFileEntry].columns.column[CFSyncTime].description</description>
+            <userDefined>true</userDefined>
+            <isMultilingual>false</isMultilingual>
+            <isEncoded>false</isEncoded>
+            <isNullable>true</isNullable>
+            <defaultValue />
+            <sqlType>DATETIME</sqlType>
+            <length>8</length>
+            <scale>0</scale>
+            <precision>0</precision>
+        </column>
     </columns>
     <primaryKey>
         <name>CPK_ESI_ESTFEIDcjt</name>
@@ -272,6 +286,18 @@
             <lang locale="zh_HK" value="同步狀態" />
             <lang locale="zh_TW" value="同步狀態" />
         </rs>
+        <rs key="dataTable[com.kingdee.eas.custom.esign.app.CT_ESI_ESignTemplateFileEntry].columns.column[CFSyncTime].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步时间" />
+            <lang locale="zh_HK" value="同步時間" />
+            <lang locale="zh_TW" value="同步時間" />
+        </rs>
+        <rs key="dataTable[com.kingdee.eas.custom.esign.app.CT_ESI_ESignTemplateFileEntry].columns.column[CFSyncTime].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步时间" />
+            <lang locale="zh_HK" value="同步時間" />
+            <lang locale="zh_TW" value="同步時間" />
+        </rs>
         <rs key="dataTable[com.kingdee.eas.custom.esign.app.CT_ESI_ESignTemplateFileEntry].columns.column[FID].alias">
             <lang locale="en_US" value="null" />
             <lang locale="zh_CN" value="null" />

+ 238 - 0
metadata/com/kingdee/eas/custom/esign/app/ESignTemplateFileEntry.entity

@@ -622,6 +622,88 @@
             </exceptions>
             <configured>false</configured>
         </method>
+        <method>
+            <name>syncSuccess</name>
+            <isListenerMethod>false</isListenerMethod>
+            <alias>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].alias</alias>
+            <description>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].description</description>
+            <innerID>fe556f35-7c27-4437-a0eb-3429aaabeb9a</innerID>
+            <accessLevel>public</accessLevel>
+            <subClassingMode>normal</subClassingMode>
+            <returnValueType />
+            <metadataRef />
+            <transactionAttribute>Required</transactionAttribute>
+            <userDefined>true</userDefined>
+            <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>entryId</name>
+                    <alias>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].parameters.parameter[entryId].alias</alias>
+                    <description>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].parameters.parameter[entryId].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+                <parameter>
+                    <name>syncResult</name>
+                    <alias>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].parameters.parameter[syncResult].alias</alias>
+                    <description>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].parameters.parameter[syncResult].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
+            <exceptions>
+                <bizException>
+                    <key name="package" value="com.kingdee.eas.common" />
+                    <key name="name" value="EASBizException" />
+                </bizException>
+            </exceptions>
+            <configured>false</configured>
+        </method>
+        <method>
+            <name>syncFail</name>
+            <isListenerMethod>false</isListenerMethod>
+            <alias>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].alias</alias>
+            <description>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].description</description>
+            <innerID>c21896ce-8584-4886-bec0-2a4c16bd6128</innerID>
+            <accessLevel>public</accessLevel>
+            <subClassingMode>normal</subClassingMode>
+            <returnValueType />
+            <metadataRef />
+            <transactionAttribute>Required</transactionAttribute>
+            <userDefined>true</userDefined>
+            <userDefinedLogic />
+            <parameters>
+                <parameter>
+                    <name>syncResult</name>
+                    <alias>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].parameters.parameter[syncResult].alias</alias>
+                    <description>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].parameters.parameter[syncResult].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+                <parameter>
+                    <name>entryid</name>
+                    <alias>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].parameters.parameter[entryid].alias</alias>
+                    <description>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].parameters.parameter[entryid].description</description>
+                    <direction>in</direction>
+                    <dataType>String</dataType>
+                    <metadataRef />
+                    <userDefined>true</userDefined>
+                </parameter>
+            </parameters>
+            <exceptions>
+                <bizException>
+                    <key name="package" value="com.kingdee.eas.common" />
+                    <key name="name" value="EASBizException" />
+                </bizException>
+            </exceptions>
+            <configured>false</configured>
+        </method>
     </methods>
     <isAbstract>false</isAbstract>
     <bizUnitPK>com.kingdee.eas.custom.esign.ESignTemplate</bizUnitPK>
@@ -773,6 +855,26 @@
                 <key name="name" value="CFSyncResult" />
             </mappingField>
         </ownProperty>
+        <ownProperty>
+            <name>syncTime</name>
+            <alias>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].alias</alias>
+            <description>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].description</description>
+            <userDefined>true</userDefined>
+            <configured>false</configured>
+            <dataType>Time</dataType>
+            <metadataRef />
+            <isMultilingual>false</isMultilingual>
+            <isNullable>false</isNullable>
+            <formula />
+            <length>8</length>
+            <precision>0</precision>
+            <decimalDigits>0</decimalDigits>
+            <defaultValue>entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].defaultValue</defaultValue>
+            <displayFormat />
+            <mappingField>
+                <key name="name" value="CFSyncTime" />
+            </mappingField>
+        </ownProperty>
     </properties>
     <logicalKey>
         <name>id</name>
@@ -1118,6 +1220,74 @@
             <lang locale="zh_HK" value="null" />
             <lang locale="zh_TW" value="null" />
         </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步失败" />
+            <lang locale="zh_HK" value="同步失敗" />
+            <lang locale="zh_TW" value="同步失敗" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="null" />
+            <lang locale="zh_HK" value="null" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].parameters.parameter[entryid].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="分录id" />
+            <lang locale="zh_HK" value="分錄id" />
+            <lang locale="zh_TW" value="分錄id" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].parameters.parameter[entryid].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].parameters.parameter[syncResult].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步结果" />
+            <lang locale="zh_HK" value="同步結果" />
+            <lang locale="zh_TW" value="同步結果" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncFail].parameters.parameter[syncResult].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步成功" />
+            <lang locale="zh_HK" value="同步成功" />
+            <lang locale="zh_TW" value="同步成功" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="null" />
+            <lang locale="zh_HK" value="null" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].parameters.parameter[entryId].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="分录id" />
+            <lang locale="zh_HK" value="分錄id" />
+            <lang locale="zh_TW" value="分錄id" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].parameters.parameter[entryId].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].parameters.parameter[syncResult].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步结果" />
+            <lang locale="zh_HK" value="同步結果" />
+            <lang locale="zh_TW" value="同步結果" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncSuccess].parameters.parameter[syncResult].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
         <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].methods.method[syncTemplateFields].alias">
             <lang locale="en_US" value="null" />
             <lang locale="zh_CN" value="同步模板字段" />
@@ -1679,5 +1849,73 @@
             <lang locale="zh_CN" value="true" />
             <lang locale="zh_TW" value="true" />
         </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].alias">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步时间" />
+            <lang locale="zh_HK" value="同步時間" />
+            <lang locale="zh_TW" value="同步時間" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].defaultValue">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="null" />
+            <lang locale="zh_HK" value="null" />
+            <lang locale="zh_TW" value="null" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].description">
+            <lang locale="en_US" value="null" />
+            <lang locale="zh_CN" value="同步时间" />
+            <lang locale="zh_HK" value="同步時間" />
+            <lang locale="zh_TW" value="同步時間" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.ColWidthInKDTable">
+            <lang locale="en_US" value="50" />
+            <lang locale="zh_CN" value="50" />
+            <lang locale="zh_TW" value="50" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.bizDataType">
+            <lang locale="en_US" value="TIME" />
+            <lang locale="zh_CN" value="TIME" />
+            <lang locale="zh_TW" value="TIME" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.enableFieldPermission">
+            <lang locale="en_US" value="false" />
+            <lang locale="zh_CN" value="false" />
+            <lang locale="zh_TW" value="false" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.isAsstAcctType">
+            <lang locale="en_US" value="false" />
+            <lang locale="zh_CN" value="false" />
+            <lang locale="zh_TW" value="false" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.isForGrouping">
+            <lang locale="en_US" value="false" />
+            <lang locale="zh_CN" value="false" />
+            <lang locale="zh_TW" value="false" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.isForMapping">
+            <lang locale="en_US" value="false" />
+            <lang locale="zh_CN" value="false" />
+            <lang locale="zh_TW" value="false" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.isForMatching">
+            <lang locale="en_US" value="false" />
+            <lang locale="zh_CN" value="false" />
+            <lang locale="zh_TW" value="false" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.isForWrittenBack">
+            <lang locale="en_US" value="false" />
+            <lang locale="zh_CN" value="false" />
+            <lang locale="zh_TW" value="false" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.isInCode">
+            <lang locale="en_US" value="false" />
+            <lang locale="zh_CN" value="false" />
+            <lang locale="zh_TW" value="false" />
+        </rs>
+        <rs key="entityObject[com.kingdee.eas.custom.esign.app.ESignTemplateFileEntry].properties.ownProperty[syncTime].extendedProperty.isVisibleForKDTable">
+            <lang locale="en_US" value="true" />
+            <lang locale="zh_CN" value="true" />
+            <lang locale="zh_TW" value="true" />
+        </rs>
     </resource>
 </entityObject>

+ 11 - 0
src/com/kingdee/eas/custom/esign/AbstractESignTemplateFileEntryInfo.java

@@ -106,6 +106,17 @@ public class AbstractESignTemplateFileEntryInfo extends com.kingdee.eas.framewor
     {
         setString("syncResult", item);
     }
+    /**
+     * Object:电子签文件模板's 同步时间property 
+     */
+    public java.sql.Time getSyncTime()
+    {
+        return getTime("syncTime");
+    }
+    public void setSyncTime(java.sql.Time item)
+    {
+        setTime("syncTime", item);
+    }
     public BOSObjectType getBOSType()
     {
         return new BOSObjectType("BE4E89AB");

+ 28 - 0
src/com/kingdee/eas/custom/esign/ESignTemplateFileEntry.java

@@ -348,4 +348,32 @@ public class ESignTemplateFileEntry extends CoreBillEntryBase implements IESignT
             throw new EJBRemoteException(err);
         }
     }
+    /**
+     *同步成功-User defined method
+     *@param entryId 分录id
+     *@param syncResult 同步结果
+     */
+    public void syncSuccess(String entryId, String syncResult) throws BOSException, EASBizException
+    {
+        try {
+            getController().syncSuccess(getContext(), entryId, syncResult);
+        }
+        catch(RemoteException err) {
+            throw new EJBRemoteException(err);
+        }
+    }
+    /**
+     *同步失败-User defined method
+     *@param syncResult 同步结果
+     *@param entryid 分录id
+     */
+    public void syncFail(String syncResult, String entryid) throws BOSException, EASBizException
+    {
+        try {
+            getController().syncFail(getContext(), syncResult, entryid);
+        }
+        catch(RemoteException err) {
+            throw new EJBRemoteException(err);
+        }
+    }
 }

+ 2 - 0
src/com/kingdee/eas/custom/esign/IESignTemplateFileEntry.java

@@ -45,4 +45,6 @@ public interface IESignTemplateFileEntry extends ICoreBillEntryBase
     public IObjectPK[] delete(String oql) throws BOSException, EASBizException;
     public void delete(IObjectPK[] arrayPK) throws BOSException, EASBizException;
     public void syncTemplateFields(String entryId) throws BOSException, EASBizException;
+    public void syncSuccess(String entryId, String syncResult) throws BOSException, EASBizException;
+    public void syncFail(String syncResult, String entryid) throws BOSException, EASBizException;
 }

+ 48 - 0
src/com/kingdee/eas/custom/esign/app/AbstractESignTemplateFileEntryControllerBean.java

@@ -587,6 +587,54 @@ public abstract class AbstractESignTemplateFileEntryControllerBean extends CoreB
         return;
     }
 
+    public void syncSuccess(Context ctx, String entryId, String syncResult) throws BOSException, EASBizException
+    {
+        try {
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("fe556f35-7c27-4437-a0eb-3429aaabeb9a"), new Object[]{ctx, entryId, syncResult});
+            invokeServiceBefore(svcCtx);
+              if(!svcCtx.invokeBreak()) {
+            _syncSuccess(ctx, entryId, syncResult);
+            }
+            invokeServiceAfter(svcCtx);
+        } catch (BOSException ex) {
+            this.setRollbackOnly();
+            throw ex;
+        } catch (EASBizException ex0) {
+            this.setRollbackOnly();
+            throw ex0;
+        } finally {
+            super.cleanUpServiceState();
+        }
+    }
+    protected void _syncSuccess(Context ctx, String entryId, String syncResult) throws BOSException, EASBizException
+    {    	
+        return;
+    }
+
+    public void syncFail(Context ctx, String syncResult, String entryid) throws BOSException, EASBizException
+    {
+        try {
+            ServiceContext svcCtx = createServiceContext(new MetaDataPK("c21896ce-8584-4886-bec0-2a4c16bd6128"), new Object[]{ctx, syncResult, entryid});
+            invokeServiceBefore(svcCtx);
+              if(!svcCtx.invokeBreak()) {
+            _syncFail(ctx, syncResult, entryid);
+            }
+            invokeServiceAfter(svcCtx);
+        } catch (BOSException ex) {
+            this.setRollbackOnly();
+            throw ex;
+        } catch (EASBizException ex0) {
+            this.setRollbackOnly();
+            throw ex0;
+        } finally {
+            super.cleanUpServiceState();
+        }
+    }
+    protected void _syncFail(Context ctx, String syncResult, String entryid) throws BOSException, EASBizException
+    {    	
+        return;
+    }
+
     public CoreBillEntryBaseCollection getCoreBillEntryBaseCollection (Context ctx) throws BOSException
     {
     	return (CoreBillEntryBaseCollection)(getESignTemplateFileEntryCollection(ctx).cast(CoreBillEntryBaseCollection.class));

+ 29 - 2
src/com/kingdee/eas/custom/esign/app/ESignTemplateControllerBean.java

@@ -1,8 +1,15 @@
 package com.kingdee.eas.custom.esign.app;
 
+import com.kingdee.bos.dao.IObjectValue;
 import com.kingdee.bos.dao.ormapping.CanNotDeleteException;
+import com.kingdee.bos.metadata.entity.FilterInfo;
+import com.kingdee.bos.metadata.entity.FilterItemCollection;
+import com.kingdee.bos.metadata.entity.FilterItemInfo;
+import com.kingdee.bos.metadata.query.util.CompareType;
+import com.kingdee.bos.util.BOSUuid;
 import com.kingdee.eas.custom.esign.ESignTemplateInfo;
 import com.kingdee.shr.base.syssetting.BaseItemStateEnum;
+import com.kingdee.util.StringUtils;
 import org.apache.log4j.Logger;
 
 import com.kingdee.bos.*;
@@ -14,12 +21,32 @@ import java.sql.Connection;
 public class ESignTemplateControllerBean extends AbstractESignTemplateControllerBean {
     private static Logger logger = Logger.getLogger(ESignTemplateControllerBean.class);
 
+    @Override
+    protected IObjectPK _save(Context ctx, IObjectValue model) throws BOSException, EASBizException {
+        ESignTemplateInfo info = (ESignTemplateInfo) model;
+        String eSignTemplateNum = info.getESignTemplateNum();
+        if (StringUtils.isEmpty(eSignTemplateNum)) {
+            throw new BOSException("e 签宝模板编码不能为空!");
+        }
+        BOSUuid id = info.getId();
+        FilterInfo filter = new FilterInfo();
+        FilterItemCollection filterItems = filter.getFilterItems();
+        if (id != null) {
+            filterItems.add(new FilterItemInfo("id", id.toString(), CompareType.NOTEQUALS));
+        }
+        filterItems.add(new FilterItemInfo("eSignTemplateNum", eSignTemplateNum));
+        if (exists(ctx, filter)) {
+            throw new BOSException(String.format("e 签宝模板编码[%s]已经存在!", eSignTemplateNum));
+        }
+        return super._save(ctx, model);
+    }
+
     /**
      * 检查电子签名模板是否可以删除
      *
      * @param ctx 业务上下文对象
-     * @param pk 电子签名模板主键
-     * @param cn 数据库连接对象
+     * @param pk  电子签名模板主键
+     * @param cn  数据库连接对象
      * @throws CanNotDeleteException 当数据处于启用状态时抛出此异常,表示不允许删除
      */
     @Override

+ 2 - 0
src/com/kingdee/eas/custom/esign/app/ESignTemplateFileEntryController.java

@@ -50,4 +50,6 @@ public interface ESignTemplateFileEntryController extends CoreBillEntryBaseContr
     public IObjectPK[] delete(Context ctx, String oql) throws BOSException, EASBizException, RemoteException;
     public void delete(Context ctx, IObjectPK[] arrayPK) throws BOSException, EASBizException, RemoteException;
     public void syncTemplateFields(Context ctx, String entryId) throws BOSException, EASBizException, RemoteException;
+    public void syncSuccess(Context ctx, String entryId, String syncResult) throws BOSException, EASBizException, RemoteException;
+    public void syncFail(Context ctx, String syncResult, String entryid) throws BOSException, EASBizException, RemoteException;
 }

+ 63 - 3
src/com/kingdee/eas/custom/esign/app/ESignTemplateFileEntryControllerBean.java

@@ -6,6 +6,7 @@ import com.kingdee.bos.dao.IObjectPK;
 import com.kingdee.bos.dao.ormapping.CanNotDeleteException;
 import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
 import com.kingdee.eas.custom.esign.*;
+import com.kingdee.eas.custom.esign.bizEnum.SyncStatusEnum;
 import com.kingdee.shr.base.syssetting.BaseItemStateEnum;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.log4j.Logger;
@@ -18,6 +19,7 @@ import com.kingdee.eas.common.EASBizException;
 
 import java.lang.String;
 import java.sql.Connection;
+import java.sql.Time;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -27,6 +29,64 @@ import java.util.Map;
 public class ESignTemplateFileEntryControllerBean extends AbstractESignTemplateFileEntryControllerBean {
     private static Logger logger = Logger.getLogger(ESignTemplateFileEntryControllerBean.class);
 
+    /**
+     * 同步成功
+     *
+     * @param ctx
+     * @param entryId
+     * @param syncResult
+     * @throws BOSException
+     * @throws EASBizException
+     */
+    @Override
+    protected void _syncSuccess(Context ctx, String entryId, String syncResult) throws BOSException, EASBizException {
+        super._syncSuccess(ctx, entryId, syncResult);
+        if (StringUtils.isBlank(entryId)) {
+            throw new EASBizException(EASBizException.CHECKBLANK, new Object[]{"单据id不能为空!"});
+        }
+        if (StringUtils.isBlank(syncResult)) {
+            syncResult = "同步成功";
+        }
+        ESignTemplateFileEntryInfo eSignTemplateFileEntryInfo = getESignTemplateFileEntryInfo(ctx, new ObjectUuidPK(entryId));
+        eSignTemplateFileEntryInfo.setSyncStatus(SyncStatusEnum.SYNCED);
+        eSignTemplateFileEntryInfo.setSyncResult(syncResult);
+        eSignTemplateFileEntryInfo.setSyncTime(new Time(System.currentTimeMillis()));
+        SelectorItemCollection sic = new SelectorItemCollection();
+        sic.add("syncStatus");
+        sic.add("syncResult");
+        sic.add("syncTime");
+        updatePartial(ctx, eSignTemplateFileEntryInfo, sic);
+    }
+
+    /**
+     * 同步失败
+     *
+     * @param ctx
+     * @param entryId
+     * @param syncResult
+     * @throws BOSException
+     * @throws EASBizException
+     */
+    @Override
+    protected void _syncFail(Context ctx, String entryId, String syncResult) throws BOSException, EASBizException {
+        super._syncFail(ctx, entryId, syncResult);
+        if (StringUtils.isBlank(entryId)) {
+            throw new EASBizException(EASBizException.CHECKBLANK, new Object[]{"单据id不能为空!"});
+        }
+        if (StringUtils.isBlank(syncResult)) {
+            syncResult = "同步失败";
+        }
+        ESignTemplateFileEntryInfo eSignTemplateFileEntryInfo = getESignTemplateFileEntryInfo(ctx, new ObjectUuidPK(entryId));
+        eSignTemplateFileEntryInfo.setSyncStatus(SyncStatusEnum.SYNC_FAILED);
+        eSignTemplateFileEntryInfo.setSyncResult(syncResult);
+        eSignTemplateFileEntryInfo.setSyncTime(new Time(System.currentTimeMillis()));
+        SelectorItemCollection sic = new SelectorItemCollection();
+        sic.add("syncStatus");
+        sic.add("syncResult");
+        sic.add("syncTime");
+        updatePartial(ctx, eSignTemplateFileEntryInfo, sic);
+    }
+
     /**
      * 同步模板字段
      *
@@ -99,16 +159,16 @@ public class ESignTemplateFileEntryControllerBean extends AbstractESignTemplateF
         update(ctx, new ObjectUuidPK(entryId), eSignTemplateFileEntryInfo);
         //3.同步模板附件
         //syncTemplateAttachments(ctx, billId);
-    }
 
+    }
 
 
     /**
      * 检查电子签名模板文件是否可以删除
      *
      * @param ctx 上下文对象
-     * @param pk 对象主键
-     * @param cn 数据库连接
+     * @param pk  对象主键
+     * @param cn  数据库连接
      * @throws CanNotDeleteException 当数据处于启用状态或发生业务异常时抛出
      */
     @Override

+ 0 - 2
src/com/kingdee/eas/custom/esign/app/GeneralESignBillControllerBean.java

@@ -1,8 +1,6 @@
 package com.kingdee.eas.custom.esign.app;
 
 import org.apache.log4j.Logger;
-//import com.kingdee.bos.metadata.entity.EntityViewInfo;
-//import com.kingdee.bos.dao.IObjectPK;
 
 
 public class GeneralESignBillControllerBean extends AbstractGeneralESignBillControllerBean

+ 114 - 0
websrc/com/kingdee/eas/custom/esign/handler/ESignTemplateEditHandler.java

@@ -0,0 +1,114 @@
+package com.kingdee.eas.custom.esign.handler;
+
+import com.kingdee.bos.Context;
+import com.kingdee.eas.custom.esign.ESignTemplateFileEntryFactory;
+import com.kingdee.eas.custom.esign.ESignTemplateFileEntryInfo;
+import com.kingdee.eas.custom.esign.IESignTemplateFileEntry;
+import com.kingdee.eas.custom.esign.bizEnum.SyncStatusEnum;
+import com.kingdee.eas.framework.CoreBaseInfo;
+import com.kingdee.shr.base.syssetting.BaseItemStateEnum;
+import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsBody;
+import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
+import com.kingdee.shr.base.syssetting.exception.SHRWebException;
+import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
+import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
+import com.kingdee.util.StringUtils;
+import org.springframework.ui.ModelMap;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 电子签模板表单Handler
+ * @Date 2025/11/17 16:43
+ * @Created by 禾源
+ */
+public class ESignTemplateEditHandler extends EditHandler {
+
+    /**
+     * 创建新的分录模型对象
+     *
+     * @param request  HTTP请求对象
+     * @param response HTTP响应对象
+     * @param modelMap 模型映射对象
+     * @return CoreBaseInfo 返回创建的条目信息对象
+     * @throws SHRWebException 当创建过程中发生错误时抛出异常
+     */
+    protected CoreBaseInfo createNewEntryModel(
+            HttpServletRequest request,
+            HttpServletResponse response,
+            ModelMap modelMap
+    ) throws SHRWebException {
+        ESignTemplateFileEntryInfo entryInfo =
+                (ESignTemplateFileEntryInfo) super.createNewEntryModel(request, response, modelMap);
+        if (entryInfo == null) {
+            entryInfo = new ESignTemplateFileEntryInfo();
+        }
+        //设置默认状态为启用
+        entryInfo.setState(BaseItemStateEnum.ENABLE);
+        entryInfo.setSyncStatus(SyncStatusEnum.UNSYNCED);
+        return entryInfo;
+    }
+
+
+    /**
+     * 创建新的入口模型通过服务器
+     *
+     * @return boolean 返回true表示成功创建新的入口模型,false表示创建失败
+     */
+    @Override
+    protected boolean createNewEntryModelByServer() {
+        return true;
+    }
+
+    /**
+     * 同步模板字段
+     *
+     * @param request
+     * @param response
+     * @param modelMap
+     * @throws SHRWebException
+     */
+    public void syncTemplateFieldsAction(
+            HttpServletRequest request,
+            HttpServletResponse response,
+            ModelMap modelMap
+    ) throws SHRWebException {
+        Context ctx = this.getContext();
+        String entryIds = request.getParameter("entryIds");
+        if (StringUtils.isEmpty(entryIds)) {
+            throw new ShrWebBizException("分录id不能为空!");
+        }
+        int sucess = 0;
+        int failure = 0;
+        BatchMessageTipsHeader batchMessageTipsHeader = new BatchMessageTipsHeader();
+        try {
+            String[] entryIdArr = entryIds.split(",");
+            IESignTemplateFileEntry iESignTemplateFileEntry = ESignTemplateFileEntryFactory.getLocalInstance(ctx);
+            for (int i = 0; i < entryIdArr.length; i++) {
+                BatchMessageTipsBody body = new BatchMessageTipsBody();
+                String entryId = entryIdArr[i];
+                body.setId(entryId);
+                try {
+                    iESignTemplateFileEntry.syncTemplateFields(entryId);
+                    iESignTemplateFileEntry.syncSuccess(entryId, null);
+                    ++sucess;
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    ++failure;
+                    iESignTemplateFileEntry.syncFail(entryId, e.getMessage());
+                    body.setMuitTipsState(Boolean.FALSE);
+                    body.setMuitTipsMessage(e.getMessage());
+                }
+                batchMessageTipsHeader.addResult(body);
+            }
+            batchMessageTipsHeader.setBillId(entryIds);
+            batchMessageTipsHeader.setFailureCount(failure);
+            batchMessageTipsHeader.setSuccessCount(sucess);
+            this.writeSuccessData(batchMessageTipsHeader);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new ShrWebBizException(e.getMessage(), e);
+        }
+    }
+}