package contract_request import ( "encoding/json" "git.sxidc.com/student-physical-examination/contract_lock_sdk/http" "git.sxidc.com/student-physical-examination/contract_lock_sdk/model/common" ) type ContractEditRequest struct { // format:string;core:true 【电子签约文件id】电子签约文件id 【作用】 查询需要编辑的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一,均传入以电子签约文件id为准。 Id *int64 `json:"id,omitempty"` // format:string;core:true 【第三方业务系统文件id】第三方业务系统文件id 【作用】 查询需要编辑的电子签约文件 【传参】 1、电子签约文件id和第三方业务系统文件id必传其一,均传入以电子签约文件id为准。 2、最大长度:100。 BizId string `json:"bizId,omitempty"` // 【文件编号】文件编号 【作用】 电子签约文件的编号,方便对文件进行查询、归档等管理,如“QYS-20160101-000001” 【传参】 最大长度:500(包含)。 【特殊说明】 用印流程若设置按规则自动生成,则接口传入无效;若设置为发起人自定义,则接口传入的文件编号生效 Sn string `json:"sn,omitempty"` // core:true;format:date 【文件定时发起时间】文件定时发起时间 【作用】 可以创建文件后保存草稿,在设定的时间由系统自动发起文件 【传参】 1、仅在send(是否发起电子签约)为false(保存为草稿)时生效。 2、日期格式:yyyy-MM-dd HH:mm SendTimeStr string `json:"sendTimeStr,omitempty"` // core:true 【文件主题】文件主题 【作用】 电子签约文件的标题,如签署劳动合同时,可设置为“劳动合同-XX公司-张三” 【传参】 最大长度:500。 【特殊说明】 用印流程-高级配置中可设置文件主题生成规则,若设置按规则自动生成,则接口传入无效;若设置为发起人自定义,则接口传入的文件主题生效 Subject string `json:"subject,omitempty"` // deprecated:true 【文件描述】文件描述 【作用】用于对文件进行补充描述,不会在页面展示,仅在系统数据库中记录 【传参】 最大长度:1200(包含)。 Description string `json:"description,omitempty"` // core:true 【签署截止日期】签署截止日期 【作用】 若超过该日期,文件的所有签署方将不能进行文件签署,文件状态变为“已截止签署” 【传参】 1、日期格式:yyyy-MM-dd。 2、若传入2022-03-09,系统将在2022年3月9日的23时59分59秒后将文件标记为“已截止签署”。 ExpireTime string `json:"expireTime,omitempty"` // core:true 【发起人姓名】发起人姓名 【作用】 当传入的发起人未在系统中时,将使用该姓名作为发起人账号的姓名。如发起人已存在,则传入的姓名无效。 CreatorName string `json:"creatorName,omitempty"` // core:true 【发起人联系方式】发起人联系方式 【作用】 可传入手机号、邮箱查询并记录该电子签约文件的发起人 【传参】 1、可传入用户手机号或者邮箱。 2、手机号允许使用大陆、港澳台、国际手机号,手机号格式为:区号+空格+手机号,例:852 9xxxxxxx ,大陆手机号可以不传区号。 3、邮箱需传入符合格式的字符串,例:xxxxxxxx@163.com。 4、联系方式与成员编号任传其一,均传入时以联系方式为准。 5、使用联系方式或成员编号查询用户且用户不存在时,将使用对应的参数值和发起人姓名创建新用户,并会加入发起主体组织内部。 6、不传发起人时默认为发起主体名称。 CreatorContact string `json:"creatorContact,omitempty"` // core:true 【发起人成员编号】发起人成员编号 【作用】 可传入成员编号查询并记录该电子签约文件的发起人 【传参】 1、联系方式与成员编号任传其一,均传入时以联系方式为准。 2、使用联系方式或成员编号查询用户且用户不存在时,将使用对应的参数值和发起人姓名创建新用户,并会加入发起主体组织内部。 3、不传发起人时默认为发起主体名称。 CreatorNumber string `json:"creatorNumber,omitempty"` // core:true 【发起人第三方业务系统用户id】发起人第三方业务系统用户id CreatorOpenUserId string `json:"creatorOpenUserId,omitempty"` // core:true 【业务系统标识 】业务系统标识 【作用】 1:根据发起人第三方业务系统用户id查询系统成员/用户信息时使用 2:涉及到多套业务系统集成且不同系统间发起人第三方业务系统用户id可能重复时需要传入该参数 SystemCode string `json:"systemCode,omitempty"` // core:true;format:string 【签署文档id】签署文档id 【作用】 可自定义上传本地、图片、文件模板作为本次签署的文件,但因转换文档需要时间,如在本接口发起文件时同步转换文档会导致发起文件耗时较长,所以需提前调用创建文档相关接口转换为签署文档id后再通过此参数填写。创建文档接口如下: 1、/v2/document/createbyfile :选择本地的文件转换为PDF格式的签署文档 2、/document/createbytemplate :传入系统中已维护的文件模板id,将模板转换成PDF格式的签署文档 3、/document/createbytemplates :传入系统中多个已维护的文件模板id,将模板转换为PDF格式的签署文档 4、/document/createbyfiles :选择多个本地的文件,合并并转换为PDF格式的签署文档 5、/v2/document/createbyurl :使用传入的url获取文件转换为PDF格式的签署文档,支持本地路径/网络路径或ftp存储路径的文件 6、/document/createbyofd :选择本地的OFD文件创建签署文档,签署文档格式仍是OFD,主要适用于国产化场景 【特殊说明】 用印流程-文件设置中开启“发起签约时,允许新增文件”,则传入的签署文档与用印流程中配置的文件模板都作为电子签约文档;若未开启配置,则只能使用用印流程中配置的文件模板 Documents []int64 `json:"documents,omitempty"` // core:true 【拟定方】拟定方 【作用】 即需拟定文件的组织和个人(如文件正式发起拟定前需与各签约方共同补全文件参数内容并完成内部审批)。 内部组织拟定方下可设置拟定节点(个人拟定、个人审批),其余拟定方仅支持个人拟定 【特殊说明】 拟定方须提前在用印流程预设好,接口暂不支持自定义拟定方。仅支持接口通过传入拟定方、拟定节点类型和顺序匹配流程预设的审批节点,为审批节点指定审批人 FillSignatories []*common.FillSignatory `json:"fillSignatories,omitempty"` // core:true 【签署方】签署方 【作用】 即需签署的组织和个人,组织签署方下可设置签署节点(签字、审批、签章、执业章签署等),个人签署方仅支持个人签字 【特殊说明】 签署方为空时,需在签署完成后调用 /contract/finish 完成电子签约,否则文件一直会处于签署状态不会结束 Signatories []*common.Signatory `json:"signatories,omitempty"` // core:true 【模板参数】模板参数 【作用】 1、签署文件中包含待填写的参数时,支持传入参数的值补全文件内容 2、支持传入所有签署方的待填参数,用户进行拟定时可查看接口传入的默认值,但可改 DocumentParams []*common.SimpleDocumentParam `json:"documentParams,omitempty"` // core:true;deprecated:true 【编辑模式】编辑模式 【作用】 1、对于参数中的数组对象(documents签署文档、signatories签署方、actions签署节点、contractPublicTag公共标签)支持两种模式的编辑:ALL_UPDATE(全量更新)、INCREASE_UPDATE(增量更新),通过传入的参数控制。 1)增量更新:如果原电子签约文件中已存在,则更新,不存在则新增。例如已有签署方“维森集团”,传入新的签署方“众畅科技”,则签署方会变成“维森集团”和“众畅科技” (1)传入签署文档:根据签署文档id匹配,如果已存在则更新,不存在则新增 (2)传入签署方:依次根据(signatoryNo)签署方编号、tenantName(组织签署方根据签署方名称)、contact(个人签署方按照联系方式)进行匹配,如果已存在对应的签署方则会进行更新,如果不存在该签署方则会新增签署方 (3)传入签署动作:根据类型匹配,如果已存在则更新,不存在则新增 2)全量更新:传入的数组对象会全量替换原电子签约文件中的内容。例如已有签署方“维森集团”,传入新的签署方“众畅科技”,则签署方会替换为“众畅科技” 【传参】 取值范围:ALL_UPDATE(全量更新),INCREASE_UPDATE(增量更新);不传值默认为:INCREASE_UPDATE(增量更新)。 【特殊说明】 1、水印设置仅支持增量更新 2、当前参数已废弃,请使用editContractType传参 EditType string `json:"editType,omitempty"` // core:true 【文件信息编辑更新类型】文件信息编辑更新类型 【作用】 1、增量更新:已存在,则更新,不存在则新增,且不支持删除。 (1)签署文档:根据签署文档id匹配,如果已存在则更新,不存在则新增 (2)签署方:依次根据(signatoryNo)签署方编号、tenantName(组织签署方根据签署方名称)、contact(个人签署方按照联系方式)进行匹配,如果已存在对应的签署方则会进行更新,如果不存在该签署方则会新增签署方。 (3)签署动作:根据类型匹配,如果已存在则更新,不存在则新增 (4)公共标签:传入即新增 (5)文件主题、编号、签署截止日期、模板参数等,均直接按传入的新值更新 2、全量更新:按最新传入的信息进行更新,原有的信息不生效。 (1)需将创建电子签约时传入的所需字段信息再次传入,传入的新值将全量替换原创建时传入的旧值。 【传参】 取值范围:ALL_UPDATE(全量更新),INCREASE_UPDATE(增量更新);不传值默认为:INCREASE_UPDATE(增量更新)。 EditContractType string `json:"editContractType,omitempty"` // 【水印配置】水印配置 【作用】 根据传入的水印配置,签署文件上添加水印,允许传入多组水印 【特殊说明】 1)当用印流程中已预设文字/图片水印并勾选通过接口传入内容:传入水印配置,按传入顺序优先匹配用印流程中预设的水印,且此时只有文字水印内容(content)/水印图片(imageBase64) 字段传值生效,样式以用印流程预设的为准,剩余传入水印内容,则为新增水印配置 2)当用印流程中未预设文字/图片水印通过接口传入内容:传入水印配置均为新增水印 3)若用户已调用创建电子签约接口添加了文件水印配置,此处添加的水印会覆盖之前设置的文件水印配置 4)若用印流程绑定的文件或发起时新增的文件已添加数字签名,因添加文件水印会篡改文件导致数字签名失效,故文件水印不会生效 WaterMarkConfigs []*common.WaterMarkContent `json:"waterMarkConfigs,omitempty"` // 【印章水印】印章水印 【作用】 根据传入的印章水印配置,在内部印章外观上添加水印,来防止签署文件上的印章被抠章,被二次使用,支持:印章类型、用印时间、文字水印;允许传入多组水印 【特殊说明】 1)当用印流程中已预设文字水印并勾选通过接口传入内容:传入的文字水印配置,按传入顺序优先匹配用印流程中预设的水印,且此时只有文字水印内容(content)字段传值生效,样式以用印流程预设的为准,剩余传入文字水印内容,则为新增文字水印配置 2)其余场景均为新增印章水印 • 当用印流程中未预设文字水印通过接口传入内容 • 当传入水印类型为:印章类型和用印时间 3)若用户已调用创建电子签约接口添加了印章水印配置,此处添加的水印会覆盖之前设置的印章水印配置 SealWaterMarkContents []*common.StampWaterMarkContent `json:"sealWaterMarkContents,omitempty"` // core:true 【自定义字段】自定义字段 【作用】 1、除文件主题、文件编号等基础信息,不同类型的文件发起时需要填写的字段信息是不同的,例如发起采购合同可填写金额,发起人事合同可填写员工岗位 2、自定义字段可在【电子签章管理后台】统一定义或在用印流程中根据业务定义,定义好后可通过该参数传入字段值 CustomizeFields []*common.CustomizeFiled `json:"customizeFields,omitempty"` // 【公共标签 】公共标签 【作用】 可传入电子签约文件的标签对文件进行分类、筛选等管理,公共标签仅发起方内部成员可见、可编辑 【传参】 支持传入多个,传参方式为:[\"公共标签1\",\"公共标签2\"]。 ContractPublicTag []string `json:"contractPublicTag,omitempty"` CancelContractInfo *common.ContractRequest `json:"cancelContractInfo,omitempty"` // core:true 【发起主体名称】发起主体名称 【作用】 即电子签约文件的发起单位,仅能传入用印流程设置的发起主体范围 【传参】 最大长度:500(包含)。 TenantName string `json:"tenantName,omitempty"` } func (obj ContractEditRequest) GetUrl() string { return "/contract/edit" } func (obj ContractEditRequest) GetHttpParameter() *http.HttpParameter { parameter := http.NewPostHttpParameter() jsonBytes, _ := json.Marshal(obj) parameter.SetJsonParamer(string(jsonBytes)) return parameter }