openapi: 3.0.0 info: title: micro_learning description: CRM version: 0.0.1 paths: /Test.Nullable: post: tags: - 测试 operationId: Test.Nullable summary: 测试空值参数 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/Nullable' examples: AllPass: $ref: '#/components/examples/NullableReqAllPass' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContract.Get: post: tags: - 合同 operationId: CtrContractGet summary: 合同详情 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/IdReq' examples: IdReq: $ref: '#/components/examples/IdReq' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContract.List: post: tags: - 合同 operationId: CtrContractList summary: 查询合同 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractList' examples: CtrContractList: $ref: '#/components/examples/CtrContractList' responses: 200: description: 请求成功 content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractListRsp' examples: success: $ref: "#/components/examples/success" /CtrContract.DynamicsList: post: tags: - 合同 operationId: CtrContractDynamicsList summary: 查询合同活动 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractDynamicsList' examples: CtrContractDynamicsList: $ref: '#/components/examples/CtrContractDynamicsList' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContract.Add: post: tags: - 合同 operationId: CtrContractAdd summary: 新增合同 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractAdd' examples: CtrContractAdd: $ref: '#/components/examples/CtrContractAdd' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContract.Update: post: tags: - 合同 operationId: CtrContractUpdate summary: 更新合同 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractUpdate' examples: CtrContractUpdate: $ref: '#/components/examples/CtrContractUpdate' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContract.Transfer: post: tags: - 合同 operationId: CtrContractTransfer summary: 转移合同 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractTransfer' examples: CtrContractTransfer: $ref: '#/components/examples/CtrContractTransfer' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContract.Delete: post: tags: - 合同 operationId: CtrContractDelete summary: 删除合同 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/IdsReq' examples: IdsReq: $ref: '#/components/examples/IdsReq' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractCollectionPlan.Get: post: tags: - 回款计划 operationId: CtrContractCollectionPlanGet summary: 回款计划详情 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/IdReq' examples: IdReq: $ref: '#/components/examples/IdReq' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractCollectionPlan.List: post: tags: - 回款计划 operationId: CtrContractCollectionPlanList summary: 查询回款计划 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractCollectionPlanList' examples: CtrContractCollectionPlanList: $ref: '#/components/examples/CtrContractCollectionPlanList' responses: 200: description: 请求成功 content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractCollectionPlanListRsp' examples: success: $ref: "#/components/examples/success" /CtrContractCollectionPlan.Add: post: tags: - 回款计划 operationId: CtrContractCollectionPlanAdd summary: 新增回款计划 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractCollectionPlanAdd' examples: CtrContractCollectionPlanAdd: $ref: '#/components/examples/CtrContractCollectionPlanAdd' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractCollectionPlan.Update: post: tags: - 回款计划 operationId: CtrContractCollectionPlanUpdate summary: 更新回款计划 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractCollectionPlanUpdate' examples: CtrContractCollectionPlanUpdate: $ref: '#/components/examples/CtrContractCollectionPlanUpdate' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractCollectionPlan.Delete: post: tags: - 回款计划 operationId: CtrContractCollectionPlanDelete summary: 删除回款计划 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/IdsReq' examples: IdsReq: $ref: '#/components/examples/IdsReq' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractCollection.List: post: tags: - 回款 operationId: CtrContractCollectionList summary: 查询回款 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractCollectionList' examples: CtrContractCollectionList: $ref: '#/components/examples/CtrContractCollectionList' responses: 200: description: 请求成功 content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractCollectionListRsp' examples: success: $ref: "#/components/examples/success" /CtrContractCollection.Add: post: tags: - 回款 operationId: CtrContractCollectionAdd summary: 新增回款 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractCollectionAdd' examples: CtrContractCollectionAdd: $ref: '#/components/examples/CtrContractCollectionAdd' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractCollection.Update: post: tags: - 回款 operationId: CtrContractCollectionUpdate summary: 更新回款 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractCollectionUpdate' examples: CtrContractCollectionUpdate: $ref: '#/components/examples/CtrContractCollectionUpdate' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractCollection.Delete: post: tags: - 回款 operationId: CtrContractCollectionDelete summary: 删除回款 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/IdsReq' examples: IdsReq: $ref: '#/components/examples/IdsReq' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractAppend.List: post: tags: - 合同附件 operationId: CtrContractAppendList summary: 查询合同附件 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractAppendList' examples: CtrContractAppendList: $ref: '#/components/examples/CtrContractAppendList' responses: 200: description: 请求成功 content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractAppendListRsp' examples: success: $ref: "#/components/examples/success" /CtrContractAppend.Add: post: tags: - 合同附件 operationId: CtrContractAppendAdd summary: 新增合同附件 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractAppendAdd' examples: CtrContractAppendAdd: $ref: '#/components/examples/CtrContractAppendAdd' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractAppend.Update: post: tags: - 合同附件 operationId: CtrContractAppendUpdate summary: 更新合同附件 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractAppendUpdate' examples: CtrContractAppendUpdate: $ref: '#/components/examples/CtrContractAppendUpdate' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractAppend.Delete: post: tags: - 合同附件 operationId: CtrContractAppendDelete summary: 删除合同附件 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/IdsReq' examples: IdsReq: $ref: '#/components/examples/IdsReq' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractInvoice.List: post: tags: - 合同发票 operationId: CtrContractInvoiceList summary: 查询合同发票 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractInvoiceList' examples: CtrContractInvoiceList: $ref: '#/components/examples/CtrContractInvoiceList' responses: 200: description: 请求成功 content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractInvoiceListRsp' examples: success: $ref: "#/components/examples/success" /CtrContractInvoice.Add: post: tags: - 合同发票 operationId: CtrContractInvoiceAdd summary: 新增合同发票 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractInvoiceAdd' examples: CtrContractInvoiceAdd: $ref: '#/components/examples/CtrContractInvoiceAdd' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractInvoice.Update: post: tags: - 合同发票 operationId: CtrContractInvoiceUpdate summary: 更新合同发票 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CtrContractInvoiceUpdate' examples: CtrContractInvoiceUpdate: $ref: '#/components/examples/CtrContractInvoiceUpdate' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" /CtrContractInvoice.Delete: post: tags: - 合同发票 operationId: CtrContractInvoiceDelete summary: 删除合同发票 requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/IdsReq' examples: IdsReq: $ref: '#/components/examples/IdsReq' responses: 200: description: 请求成功 content: application/json: examples: success: $ref: "#/components/examples/success" # 添加这个 swagger ui 会显示授权按钮 security: - bearerAuth: [] components: securitySchemes: basicAuth: type: http scheme: basic bearerAuth: type: http scheme: bearer schemas: Nullable: type: object required: - Str - Int - Bool - Slice properties: Str: type: string description: 字符串参数 Int: type: integer description: Int 参数 Bool: type: boolean description: Bool 参数 Slice: type: array description: Slice 参数 items: type: integer NoArgs: type: object properties: noargs: type: string description: 无参数,但是 body 中必须传输一个 json 空对象 "{}" IdReq: type: object required: - id properties: id: type: integer description: ID IdsReq: type: object required: - id properties: id: type: array description: ID items: type: integer CtrContractList: type: object properties: beginTime: type: string description: 开始时间 endTime: type: string description: 结束时间 pageNum: type: integer description: 当前页码 pageSize: type: integer description: 每页数 orderBy: type: string description: 排序方式 searchText: type: string description: 按合同编号,合同名称,客户名称,项目名称搜索 contractCode: type: string description: 合同编号 contractName: type: string description: 合同名称 custId: type: integer description: 关联客户 custName: type: string description: 客户名称 nboId: type: integer description: 关联项目 nboName: type: string description: 项目名称 approStatus: type: string description: 审批状态 contractType: type: string description: 合同类型 contractAmount: type: number description: 合同金额 invoiceAmount: type: number description: 已开票金额 collectedAmount: type: number description: 已回款金额 # contractStartTime: # type: string # description: 合同开始时间 # contractEndTime: # type: string # description: 合同结束时间 inchargeId: type: integer description: 负责人ID inchargeName: type: string description: 负责人 signatoryId: type: integer description: 公司签约人ID signatoryName: type: string description: 公司签约人 distributorId: type: integer description: 经销商ID distributorName: type: string description: 经销商 CtrContractDynamicsList: type: object properties: beginTime: type: string description: 开始时间 endTime: type: string description: 结束时间 pageNum: type: integer description: 当前页码 pageSize: type: integer description: 每页数 orderBy: type: string description: 排序方式 searchText: type: string description: 操作人,操作内容 contractId: type: integer description: 合同ID opnPeopleId: type: integer description: 操作人ID opnPeople: type: string description: 操作人 opnType: type: string description: 操作类型 # opnContent: # type: string # description: 操作内容 CtrContractAdd: type: object required: properties: contractCode: type: string description: 合同编号 contractName: type: string description: 合同名称 # custId: # type: integer # description: 关联客户 # custName: # type: string # description: 客户名称 nboId: type: integer description: 关联项目 # nboName: # type: string # description: 项目名称 # approStatus: # type: string # description: 审批状态 contractType: type: string description: 合同类型 # contractAmount: # type: number # description: 合同金额 # invoiceAmount: # type: number # description: 已开票金额 # collectedAmount: # type: number # description: 已回款金额 contractStartTime: type: string description: 合同开始时间 contractEndTime: type: string description: 合同结束时间 inchargeId: type: integer description: 负责人ID inchargeName: type: string description: 负责人 signatoryId: type: integer description: 公司签约人ID signatoryName: type: string description: 公司签约人 custSignatoryId: type: integer description: 客户签约人ID custSignatoryName: type: string description: 客户签约人 distributorId: type: integer description: 经销商ID distributorName: type: string description: 经销商 remark: type: string description: 备注 product: type: array description: 产品 items: type: object properties: prodId: type: integer description: 关联产品 prodNum: type: integer description: 产品数量 maintTerm: type: integer description: 维保期 sugSalesPrice: type: number description: 建议成交价 tranPrice: type: number description: 成交价格 remark: type: string description: 备注 CtrContractUpdate: type: object required: - id properties: id: type: integer description: Id # contractCode: # type: string # description: 合同编号 contractName: type: string description: 合同名称 # custId: # type: integer # description: 关联客户 # custName: # type: string # description: 客户名称 nboId: type: integer description: 关联项目 # nboName: # type: string # description: 项目名称 # approStatus: # type: string # description: 审批状态 contractType: type: string description: 合同类型 # contractAmount: # type: number # description: 合同金额 # invoiceAmount: # type: number # description: 已开票金额 # collectedAmount: # type: number # description: 已回款金额 contractStartTime: type: string description: 合同开始时间 contractEndTime: type: string description: 合同结束时间 # inchargeId: # type: integer # description: 负责人ID # inchargeName: # type: string # description: 负责人 signatoryId: type: integer description: 公司签约人ID signatoryName: type: string description: 公司签约人 custSignatoryId: type: integer description: 客户签约人ID custSignatoryName: type: string description: 客户签约人 distributorId: type: integer description: 经销商ID distributorName: type: string description: 经销商 remark: type: string description: 备注 product: type: array description: 产品 items: type: object properties: prodId: type: integer description: 关联产品 prodNum: type: integer description: 产品数量 maintTerm: type: integer description: 维保期 sugSalesPrice: type: number description: 建议成交价 tranPrice: type: number description: 成交价格 remark: type: string description: 备注 CtrContractTransfer: type: object required: - id properties: id: type: array description: Id items: type: integer inchargeId: type: integer description: 负责人ID inchargeName: type: string description: 负责人 CtrContractCollectionPlanList: type: object properties: beginTime: type: string description: 开始时间 endTime: type: string description: 结束时间 pageNum: type: integer description: 当前页码 pageSize: type: integer description: 每页数 orderBy: type: string description: 排序方式 searchText: type: string description: 按合同编号,客户名称搜索 custId: type: integer description: 关联客户 custName: type: string description: 客户名称 contractId: type: integer description: 关联合同 contractCode: type: string description: 合同编号 contractStatus: type: string description: 回款状态(10待回款20部分回款30全部回款) # planAmount: # type: number # description: 计划回款金额 # planDatetime: # type: string # description: 计划回款日期 # cashedAmount: # type: number # description: 实际回款金额 # cashedDatetime: # type: string # description: 实际回款日期 CtrContractCollectionPlanAdd: type: object required: properties: # custId: # type: integer # description: 关联客户 # custName: # type: string # description: 客户名称 contractId: type: integer description: 关联合同 # contractCode: # type: string # description: 合同编号 # contractStatus: # type: string # description: 回款状态(10待回款20部分回款30全部回款) planAmount: type: number description: 计划回款金额 planDatetime: type: string description: 计划回款日期 # cashedAmount: # type: number # description: 实际回款金额 # cashedDatetime: # type: string # description: 实际回款日期 remark: type: string description: 备注 CtrContractCollectionPlanUpdate: type: object required: - id properties: id: type: integer description: Id # custId: # type: integer # description: 关联客户 # custName: # type: string # description: 客户名称 # contractId: # type: integer # description: 关联合同 # contractCode: # type: string # description: 合同编号 # contractStatus: # type: string # description: 回款状态(10待回款20部分回款30全部回款) planAmount: type: number description: 计划回款金额 planDatetime: type: string description: 计划回款日期 # cashedAmount: # type: number # description: 实际回款金额 # cashedDatetime: # type: string # description: 实际回款日期 remark: type: string description: 备注 CtrContractCollectionList: type: object properties: beginTime: type: string description: 开始时间 endTime: type: string description: 结束时间 pageNum: type: integer description: 当前页码 pageSize: type: integer description: 每页数 orderBy: type: string description: 排序方式 searchText: type: string description: 按合同编号,客户名称搜索 planId: type: integer description: 合同回款计划 custId: type: integer description: 关联客户 custName: type: string description: 客户名称 contractId: type: integer description: 关联合同 contractCode: type: string description: 合同编号 # collectionDatetime: # type: string # description: 回款日期 # collectionAmount: # type: number # description: 回款金额 collectionType: type: string description: 回款方式 approStatus: type: string description: 审核状态 10 未回款 20 已回款 # contractAmount: # type: number # description: 合同金额 CtrContractCollectionAdd: type: object required: properties: planId: type: integer description: 合同回款计划 # custId: # type: integer # description: 关联客户 # custName: # type: string # description: 客户名称 contractId: type: integer description: 关联合同 # contractCode: # type: string # description: 合同编号 collectionDatetime: type: string description: 回款日期 collectionAmount: type: number description: 回款金额 collectionType: type: string description: 回款方式 # approStatus: # type: string # description: 审核状态 10 未回款 20 已回款 # contractAmount: # type: number # description: 合同金额 remark: type: string description: 备注 CtrContractCollectionUpdate: type: object required: - id properties: id: type: integer description: Id planId: type: integer description: 合同回款计划 # custId: # type: integer # description: 关联客户 # custName: # type: string # description: 客户名称 # contractId: # type: integer # description: 关联合同 # contractCode: # type: string # description: 合同编号 collectionDatetime: type: string description: 回款日期 collectionAmount: type: number description: 回款金额 collectionType: type: string description: 回款方式 approStatus: type: string description: 审核状态 10 未回款 20 已回款 # contractAmount: # type: number # description: 合同金额 remark: type: string description: 备注 CtrContractAppendList: type: object properties: beginTime: type: string description: 开始时间 endTime: type: string description: 结束时间 pageNum: type: integer description: 当前页码 pageSize: type: integer description: 每页数 orderBy: type: string description: 排序方式 contractId: type: integer description: 关联合同 fileName: type: string description: 文件名称 # fileType: # type: string # description: 文件类型 # fileUrl: # type: string # description: 文件地址 CtrContractAppendAdd: type: object required: properties: contractId: type: integer description: 关联合同 fileName: type: string description: 文件名称 fileType: type: string description: 文件类型 fileUrl: type: string description: 文件地址 remark: type: string description: 备注 CtrContractAppendUpdate: type: object required: - id properties: id: type: integer description: Id contractId: type: integer description: 关联合同 fileName: type: string description: 文件名称 fileType: type: string description: 文件类型 fileUrl: type: string description: 文件地址 remark: type: string description: 备注 CtrContractInvoiceList: type: object properties: beginTime: type: string description: 开始时间 endTime: type: string description: 结束时间 pageNum: type: integer description: 当前页码 pageSize: type: integer description: 每页数 orderBy: type: string description: 排序方式 searchText: type: string description: 合同编号,客户名称 custId: type: integer description: 关联客户 custName: type: string description: 客户名称 contractId: type: integer description: 关联合同 contractCode: type: string description: 合同编号 # contractAmount: # type: number # description: 合同金额 # invoiceAmount: # type: number # description: 开票金额 # invoiceDate: # type: string # description: 开票日期 invoiceType: type: string description: 开票类型 approStatus: type: string description: 审核状态 10 未通过 20 已通过 invoiceCode: type: string description: 发票号码 # actualInvoiceDate: # type: string # description: 实际开票日期 courierCode: type: string description: 快递单号 CtrContractInvoiceAdd: type: object required: properties: # custId: # type: integer # description: 关联客户 # custName: # type: string # description: 客户名称 contractId: type: integer description: 关联合同 # contractCode: # type: string # description: 合同编号 # contractAmount: # type: number # description: 合同金额 invoiceAmount: type: number description: 开票金额 invoiceDate: type: string description: 开票日期 invoiceType: type: string description: 开票类型 # approStatus: # type: string # description: 审核状态 invoiceCode: type: string description: 发票号码 actualInvoiceDate: type: string description: 实际开票日期 courierCode: type: string description: 快递单号 remark: type: string description: 备注 CtrContractInvoiceUpdate: type: object required: - id properties: id: type: integer description: Id # custId: # type: integer # description: 关联客户 # custName: # type: string # description: 客户名称 # contractId: # type: integer # description: 关联合同 # contractCode: # type: string # description: 合同编号 # contractAmount: # type: number # description: 合同金额 invoiceAmount: type: number description: 开票金额 invoiceDate: type: string description: 开票日期 invoiceType: type: string description: 开票类型 approStatus: type: string description: 审核状态 invoiceCode: type: string description: 发票号码 actualInvoiceDate: type: string description: 实际开票日期 courierCode: type: string description: 快递单号 remark: type: string description: 备注 examples: success: summary: 请求成功 value: code: 200, msg: "success" NullableReqAllPass: value: Str: "" Int: 0 Bool: false Slice: [] NoArgs: value: noargs: "" IdReq: value: id: 2 IdsReq: value: id: [1] CtrContractList: value: searchText: "" CtrContractDynamicsList: value: searchText: "" CtrContractAdd: value: contractCode: "1" contractName: "1" nboId: 1 contractType: "1" contractStartTime: "2020-01-01 01:01:01" contractEndTime: "2020-01-01 01:01:01" inchargeId: 1 inchargeName: "管理员" signatoryId: 1 signatoryName: "管理员" custSignatoryId: 1 custSignatoryName: "客户联系人1" distributorId: 1 distributorName: "管理员" remark: "备注" product: - prodId: 2 prodNum: 1 maintTerm: 1 sugSalesPrice: 1 tranPrice: 1 remark: "备注" CtrContractUpdate: value: id: 2 # contractCode: "2" contractName: "2" nboId: 2 contractType: "2" contractStartTime: "2020-01-01 02:02:02" contractEndTime: "2020-01-01 02:02:02" signatoryId: 1 signatoryName: "管理员" custSignatoryId: 2 custSignatoryName: "客户联系人2" distributorId: 1 distributorName: "管理员" remark: "备注2" product: [] CtrContractTransfer: value: id: [2] inchargeId: 2 inchargeName: "管理员2" CtrContractCollectionPlanList: value: searchText: "" CtrContractCollectionPlanAdd: value: # custId: 1 # custName: 1 contractId: 1 # contractCode: 1 # contractStatus: 1 planAmount: 1 planDatetime: "2020-01-01 01:01:01" # cashedAmount: 1 # cashedDatetime: "2020-01-01 02:02:02" remark: "备注" CtrContractCollectionPlanUpdate: value: id: 2 # custId: 2 # custName: 2 # contractId: 2 # contractCode: 2 # contractStatus: 2 planAmount: 2 planDatetime: "2020-01-01 02:02:02" # cashedAmount: 2 # cashedDatetime: 2 remark: "备注2" CtrContractCollectionList: value: searchText: "" CtrContractCollectionAdd: value: planId: 1 # custId: 1 # custName: 1 contractId: 1 # contractCode: 1 collectionDatetime: "2020-01-01 01:01:01" collectionAmount: 1 collectionType: "1" # approStatus: 1 # contractAmount: 1 remark: "备注" CtrContractCollectionUpdate: value: id: 2 # planId: 2 # custId: 2 # custName: 2 # contractId: 2 # contractCode: 2 collectionDatetime: "2020-01-01 02:02:02" collectionAmount: 2 collectionType: "2" approStatus: "20" # contractAmount: 2 remark: "备注2" CtrContractAppendList: value: fileName: "" CtrContractAppendAdd: value: contractId: 1 fileName: "1" fileType: "1" fileUrl: "1" remark: "1" CtrContractAppendUpdate: value: id: 2 contractId: 2 fileName: "2" fileType: "2" fileUrl: "2" remark: "2" CtrContractInvoiceList: value: searchText: "" CtrContractInvoiceAdd: value: # custId: 1 # custName: 1 contractId: 1 # contractCode: 1 # contractAmount: 1 invoiceAmount: 1 invoiceDate: "2020-01-01 01:01:01" invoiceType: "1" # approStatus: 1 invoiceCode: "1" actualInvoiceDate: "2020-01-01 01:01:01" courierCode: "1" remark: "备注" CtrContractInvoiceUpdate: value: id: 2 # custId: 2 # custName: 2 # contractId: 2 # contractCode: 2 # contractAmount: 2 invoiceAmount: 2 invoiceDate: "2020-01-01 02:02:02" invoiceType: "2" approStatus: "20" invoiceCode: "2" actualInvoiceDate: "2020-01-01 02:02:02" courierCode: "2" remark: "备注2"