contract_register.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. package fms
  2. import (
  3. "hongze/fms_api/global"
  4. "hongze/fms_api/models/base"
  5. "hongze/fms_api/utils"
  6. "time"
  7. )
  8. // ContractRegister 合同登记表
  9. type ContractRegister struct {
  10. ContractRegisterId int `gorm:"primaryKey;column:contract_register_id" json:"contract_register_id" description:"登记ID"`
  11. ContractCode string `gorm:"column:contract_code" json:"contract_code" description:"合同编号"`
  12. RelateContractCode string `gorm:"column:relate_contract_code" json:"relate_contract_code" description:"关联合同编号"`
  13. CrmContractId int `gorm:"column:crm_contract_id" json:"crm_contract_id" description:"CRM系统-合同ID"`
  14. ContractSource int `gorm:"column:contract_source" json:"contract_source" description:"合同来源: 0-非系统合同导入; 1-CRM合同导入"`
  15. CompanyName string `gorm:"column:company_name" json:"company_name" description:"客户名称"`
  16. ActualCompanyName string `gorm:"column:actual_company_name" json:"actual_company_name" description:"实际使用方"`
  17. ProductId int `gorm:"column:product_id" json:"product_id" description:"产品ID: 1-FICC; 2-权益"`
  18. SellerId int `gorm:"column:seller_id" json:"seller_id" description:"CRM系统-销售ID"`
  19. SellerName string `gorm:"column:seller_name" json:"seller_name" description:"CRM系统-销售名称"`
  20. ContractType int `gorm:"column:contract_type" json:"contract_type" description:"合同类型: 1-新签; 2-续约; 3-代付; 4-补充协议"`
  21. ContractAmount float64 `gorm:"column:contract_amount" json:"contract_amount" description:"合同金额"`
  22. InvoicedAmount float64 `gorm:"column:invoiced_amount" json:"invoiced_amount" description:"开票金额"`
  23. PaymentAmount float64 `gorm:"column:payment_amount" json:"payment_amount" description:"到款金额"`
  24. CurrencyUnit string `gorm:"column:currency_unit" json:"currency_unit" description:"货币国际代码"`
  25. RMBRate float64 `gorm:"column:rmb_rate" json:"rmb_rate" description:"人民币汇率(create_time当日)"`
  26. StartDate time.Time `gorm:"column:start_date" json:"start_date" description:"合同开始日期"`
  27. EndDate time.Time `gorm:"column:end_date" json:"end_date" description:"合同结束日期"`
  28. SignDate time.Time `gorm:"column:sign_date" json:"sign_date" description:"合同签订日期"`
  29. AgreedPayTime string `gorm:"column:agreed_pay_time" json:"agreed_pay_time" description:"约定付款时间(如:生效日起10日内)"`
  30. ContractStatus int `gorm:"column:contract_status" json:"contract_status" description:"合同状态: 1-已审批; 2-单章寄出; 3-已签回"`
  31. RegisterStatus int `gorm:"column:register_status" json:"register_status" description:"登记状态: 1-进行中; 2-已完成;"`
  32. Remark string `gorm:"column:remark" json:"remark" description:"备注信息"`
  33. ServiceRemark string `gorm:"column:service_remark" json:"service_remark" description:"套餐备注信息"`
  34. HasPayment int `gorm:"column:has_payment" json:"has_payment" description:"是否有代付: 0-无; 1-有"`
  35. NewCompany int `gorm:"column:new_company" json:"new_company" description:"是否为新客户: 0-否; 1-是"`
  36. IsDeleted int `gorm:"column:is_deleted" json:"is_deleted" description:"是否已删除: 0-正常; 1-已删除"`
  37. base.TimeBase
  38. }
  39. func (c *ContractRegister) TableName() string {
  40. return "contract_register"
  41. }
  42. func (c *ContractRegister) Create() (err error) {
  43. err = global.DEFAULT_MYSQL.Create(c).Error
  44. return
  45. }
  46. func (c *ContractRegister) AddInBatches(list []*ContractRegister) (err error) {
  47. err = global.DEFAULT_MYSQL.CreateInBatches(list, len(list)).Error
  48. return
  49. }
  50. func (c *ContractRegister) Update(updateCols []string) (err error) {
  51. err = global.DEFAULT_MYSQL.Model(c).Select(updateCols).Updates(c).Error
  52. return
  53. }
  54. func (c *ContractRegister) Fetch(id int) (item *ContractRegister, err error) {
  55. err = global.DEFAULT_MYSQL.Model(c).Where("is_deleted = 0 AND contract_register_id = ?", id).First(&item).Error
  56. return
  57. }
  58. func (c *ContractRegister) FetchByCondition(condition string, pars []interface{}) (item *ContractRegister, err error) {
  59. err = global.DEFAULT_MYSQL.Model(c).
  60. Where("is_deleted = 0").
  61. Where(condition, pars...).
  62. First(&item).Error
  63. return
  64. }
  65. func (c *ContractRegister) List(condition string, pars []interface{}) (list []*ContractRegister, err error) {
  66. list = make([]*ContractRegister, 0)
  67. err = global.DEFAULT_MYSQL.Model(c).
  68. Where("is_deleted = 0").
  69. Where(condition, pars...).
  70. Find(&list).Error
  71. return
  72. }
  73. func (c *ContractRegister) PageList(page base.IPage, condition string, pars []interface{}) (count int64, results []*ContractRegister, err error) {
  74. results = make([]*ContractRegister, 0)
  75. query := global.DEFAULT_MYSQL.Model(c).
  76. Where("is_deleted = 0").
  77. Where(condition, pars...)
  78. query.Count(&count)
  79. if len(page.GetOrderItemsString()) > 0 {
  80. query = query.Order(page.GetOrderItemsString())
  81. }
  82. err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&results).Error
  83. return
  84. }
  85. // ContractRegisterListReq 合同登记列表请求体
  86. type ContractRegisterListReq struct {
  87. Keyword string `json:"keyword" form:"keyword" binding:"omitempty" description:"关键词"`
  88. StartDate string `json:"start_date" form:"start_date" binding:"omitempty,datetime=2006-01-02" description:"合同开始日期"`
  89. EndDate string `json:"end_date" form:"end_date" binding:"omitempty,datetime=2006-01-02" description:"合同结束日期"`
  90. ServiceType int `json:"service_type" form:"service_type" description:"套餐类型"`
  91. ContractType int `json:"contract_type" form:"contract_type" description:"合同类型"`
  92. RegisterStatus int `json:"register_status" form:"register_status" description:"登记状态"`
  93. base.PageReq
  94. }
  95. // ContractRegisterItem 合同登记
  96. type ContractRegisterItem struct {
  97. ContractRegisterId int `json:"contract_register_id" description:"登记ID"`
  98. ContractCode string `json:"contract_code" description:"合同编号"`
  99. RelateContractCode string `json:"relate_contract_code" description:"关联合同编号"`
  100. CrmContractId int `json:"crm_contract_id" description:"CRM系统-合同ID"`
  101. ContractSource int `json:"contract_source" description:"合同来源: 0-非系统合同导入; 1-CRM合同导入"`
  102. CompanyName string `json:"company_name" description:"客户名称"`
  103. ActualCompanyName string `json:"actual_company_name" description:"实际使用方"`
  104. SellerId int `json:"seller_id" description:"CRM系统-销售ID"`
  105. SellerName string `json:"seller_name" description:"CRM系统-销售名称"`
  106. ContractType int `json:"contract_type" description:"合同类型: 1-新签; 2-续约"`
  107. ContractAmount float64 `json:"contract_amount" description:"合同金额"`
  108. InvoicedAmount float64 `json:"invoiced_amount" description:"开票金额"`
  109. PaymentAmount float64 `json:"payment_amount" description:"到款金额"`
  110. CurrencyUnit string `json:"currency_unit" description:"货币国际代码"`
  111. RMBRate float64 `json:"rmb_rate" description:"人民币汇率(create_time当日)"`
  112. StartDate string `json:"start_date" description:"合同开始日期"`
  113. EndDate string `json:"end_date" description:"合同结束日期"`
  114. SignDate string `json:"sign_date" description:"合同签订日期"`
  115. AgreedPayTime string `json:"agreed_pay_time" description:"约定付款时间(如:生效日起10日内)"`
  116. ContractStatus int `json:"contract_status" description:"合同状态: 1-已审批; 2-单章寄出; 3-已签回"`
  117. RegisterStatus int `json:"register_status" description:"登记状态: 1-进行中; 2-已完成;"`
  118. Remark string `json:"remark" description:"备注信息"`
  119. ServiceRemark string `json:"service_remark" description:"套餐备注信息"`
  120. HasPayment int `json:"has_payment" description:"是否有代付: 0-无; 1-有"`
  121. NewCompany int `json:"new_company" description:"是否为新客户: 0-否; 1-是"`
  122. CreateTime string `json:"create_time" description:"登记时间"`
  123. }
  124. // ContractRegisterList 合同登记列表
  125. type ContractRegisterList struct {
  126. *ContractRegisterItem
  127. ServicesName string `json:"services" description:"套餐名称"`
  128. InvoiceList []*ContractInvoiceItem `json:"invoice_list" description:"开票信息"`
  129. PaymentList []*ContractInvoiceItem `json:"payment_list" description:"到款信息"`
  130. }
  131. // ContractRegisterDelReq 合同登记-删除请求体
  132. type ContractRegisterDelReq struct {
  133. ContractRegisterId int `json:"contract_register_id" binding:"required,gte=1" description:"登记ID"`
  134. }
  135. // ContractRegisterUpdateStatusReq 合同登记-修改合同状态请求体
  136. type ContractRegisterUpdateStatusReq struct {
  137. ContractRegisterId int `json:"contract_register_id" binding:"required,gte=1" description:"登记ID"`
  138. ContractStatus int `json:"contract_status" binding:"oneof=1 2 3 4" description:"合同状态: 1-已审批; 2-单章寄出; 3-已签回; 4-已终止"`
  139. }
  140. // ContractRegisterAddReq 新增合同登记请求体
  141. type ContractRegisterAddReq struct {
  142. ContractCode string `json:"contract_code" binding:"required" description:"合同编号"`
  143. RelateContractCode string `json:"relate_contract_code" description:"关联合同编号"`
  144. CrmContractId int `json:"crm_contract_id" description:"CRM系统-合同ID"`
  145. ContractSource int `json:"contract_source" binding:"oneof=0 1" description:"合同来源: 0-非系统合同导入; 1-CRM合同导入"`
  146. CompanyName string `json:"company_name" binding:"required" description:"客户名称"`
  147. ActualCompanyName string `json:"actual_company_name" description:"实际使用方"`
  148. SellerId int `json:"seller_id" binding:"required" description:"CRM系统-销售ID"`
  149. SellerName string `json:"seller_name" binding:"required" description:"CRM系统-销售名称"`
  150. ContractType int `json:"contract_type" binding:"oneof=1 2 3 4" description:"合同类型: 1-新签; 2-续约; 3-代付; 4-补充协议"`
  151. ContractAmount float64 `json:"contract_amount" binding:"required" description:"合同金额"`
  152. CurrencyUnit string `json:"currency_unit" binding:"required" description:"货币单位"`
  153. StartDate string `json:"start_date" binding:"required" description:"合同开始日期"`
  154. EndDate string `json:"end_date" binding:"required" description:"合同结束日期"`
  155. SignDate string `json:"sign_date" description:"合同签订日期"`
  156. AgreedPayTime string `json:"agreed_pay_time" description:"约定付款时间(如:生效日起10日内)"`
  157. ContractStatus int `json:"contract_status" binding:"oneof=1 2 3 4" description:"合同状态: 1-已审批; 2-单章寄出; 3-已签回; 4-已终止"`
  158. Remark string `json:"remark" description:"备注信息"`
  159. ProductId int `json:"product_id" binding:"oneof=1 2" description:"产品ID"`
  160. ServiceRemark string `json:"service_remark" description:"套餐备注"`
  161. HasPayment int `json:"has_payment" description:"是否有代付: 0-无; 1-有"`
  162. NewCompany int `json:"new_company" description:"是否为新客户: 0-否; 1-是"`
  163. Supplement int `json:"supplement" description:"是否为补录合同: 0-否; 1-是"`
  164. PrePayId int `json:"pre_pay_id" description:"预到款信息ID"`
  165. Services []ContractServiceAddReq `json:"services" description:"服务套餐内容"`
  166. }
  167. // ContractRegisterEditReq 编辑合同登记请求体
  168. type ContractRegisterEditReq struct {
  169. ContractRegisterId int `json:"contract_register_id" binding:"required,gte=1" description:"登记ID"`
  170. ContractRegisterAddReq
  171. }
  172. // CreateContractRegisterAndServices 新增合同登记及套餐
  173. func CreateContractRegisterAndServices(item *ContractRegister, serviceDetail []*ContractServiceAndDetail) (err error) {
  174. tx := global.DEFAULT_MYSQL.Begin()
  175. defer func() {
  176. if err != nil {
  177. tx.Rollback()
  178. } else {
  179. tx.Commit()
  180. }
  181. }()
  182. // 合同登记
  183. tx.Create(item)
  184. //nowTime := time.Now().Local()
  185. for i := 0; i < len(serviceDetail); i++ {
  186. // 合同服务
  187. t := serviceDetail[i]
  188. contractService := &ContractService{
  189. ContractRegisterId: item.ContractRegisterId,
  190. ProductId: item.ProductId,
  191. ServiceTemplateId: t.ServiceTemplateId,
  192. Title: t.Title,
  193. Value: t.Value,
  194. TableValue: t.TableValue,
  195. HasDetail: t.HasDetail,
  196. ChartPermissionId: t.ChartPermissionId,
  197. ChartPermissionIds: t.ChartPermissionIds,
  198. }
  199. contractService.Set()
  200. tx.Create(contractService)
  201. //// 合同服务详情
  202. //for j := 0; j < len(t.Detail); j++ {
  203. // contractServiceDetail := t.Detail[j]
  204. // contractServiceDetail.ContractServiceId = contractService.ContractServiceId
  205. // contractServiceDetail.ContractRegisterId = item.ContractRegisterId
  206. // contractServiceDetail.ServiceTemplateId = contractService.ServiceTemplateId
  207. // contractServiceDetail.CreateTime = nowTime
  208. // tx.Create(contractServiceDetail)
  209. // t.Detail[j] = contractServiceDetail
  210. //}
  211. }
  212. return
  213. }
  214. // UpdateContractRegister 更新合同登记
  215. func UpdateContractRegister(item *ContractRegister, updateCols []string, serviceDetail []*ContractServiceAndDetail,
  216. invoiceList []*ContractInvoice, invoiceUpdateCols []string, invoiceHandleType int) (err error) {
  217. tx := global.DEFAULT_MYSQL.Begin()
  218. defer func() {
  219. if err != nil {
  220. tx.Rollback()
  221. } else {
  222. tx.Commit()
  223. }
  224. }()
  225. // 更新合同登记
  226. if e := tx.Model(item).Select(updateCols).Updates(item).Error; e != nil {
  227. err = e
  228. return
  229. }
  230. // 删除原服务及详情信息
  231. sql := `DELETE FROM contract_service WHERE contract_register_id = ?`
  232. tx.Exec(sql, item.ContractRegisterId)
  233. sql = `DELETE FROM contract_service_detail WHERE contract_register_id = ?`
  234. tx.Exec(sql, item.ContractRegisterId)
  235. // 新增合同服务
  236. //nowTime := time.Now().Local()
  237. for i := 0; i < len(serviceDetail); i++ {
  238. // 合同服务
  239. t := serviceDetail[i]
  240. contractService := &ContractService{
  241. ContractRegisterId: item.ContractRegisterId,
  242. ProductId: item.ProductId,
  243. ServiceTemplateId: t.ServiceTemplateId,
  244. Title: t.Title,
  245. Value: t.Value,
  246. TableValue: t.TableValue,
  247. HasDetail: t.HasDetail,
  248. ChartPermissionId: t.ChartPermissionId,
  249. ChartPermissionIds: t.ChartPermissionIds,
  250. }
  251. contractService.Set()
  252. tx.Create(contractService)
  253. //// 合同服务详情
  254. //for j := 0; j < len(t.Detail); j++ {
  255. // contractServiceDetail := t.Detail[j]
  256. // contractServiceDetail.ContractServiceId = contractService.ContractServiceId
  257. // contractServiceDetail.ContractRegisterId = item.ContractRegisterId
  258. // contractServiceDetail.ServiceTemplateId = contractService.ServiceTemplateId
  259. // contractServiceDetail.CreateTime = nowTime
  260. // tx.Create(contractServiceDetail)
  261. // t.Detail[j] = contractServiceDetail
  262. //}
  263. }
  264. // 开票到款操作类型: 0-无; 1-更新; 2-删除;
  265. if invoiceHandleType == 2 {
  266. sql = `UPDATE contract_invoice SET is_deleted = 1 WHERE contract_register_id = ?`
  267. if e := tx.Exec(sql, item.ContractRegisterId).Error; e != nil {
  268. err = e
  269. return
  270. }
  271. }
  272. if invoiceHandleType == 1 {
  273. for i := range invoiceList {
  274. if e := tx.Model(invoiceList[i]).Select(invoiceUpdateCols).Updates(invoiceList[i]).Error; e != nil {
  275. err = e
  276. return
  277. }
  278. }
  279. }
  280. return
  281. }
  282. // ContractRegisterDetailReq 合同登记-详情请求体
  283. type ContractRegisterDetailReq struct {
  284. ContractRegisterId int `json:"contract_register_id" form:"contract_register_id" binding:"required,gte=1"`
  285. }
  286. // ContractRegisterDetail-合同登记详情
  287. type ContractRegisterDetail struct {
  288. *ContractRegisterItem
  289. ServiceList []*ContractServiceAndDetail `json:"service_list" description:"合同服务及详情"`
  290. InvoiceList []*ContractInvoiceItem `json:"invoice_list" description:"开票信息"`
  291. PaymentList []*ContractInvoiceItem `json:"payment_list" description:"到款信息"`
  292. Logs []*ContractRegisterLogItem `json:"logs" description:"登记日志"`
  293. }
  294. // GetContractRegisterItemById 获取合同登记信息
  295. func GetContractRegisterItemById(id int) (result *ContractRegisterItem, err error) {
  296. item := new(ContractRegister)
  297. err = global.DEFAULT_MYSQL.Model(ContractRegister{}).
  298. Where("is_deleted = 0 AND contract_register_id = ?", id).
  299. First(&item).Error
  300. if err != nil && err != utils.ErrNoRow {
  301. return
  302. }
  303. result = formatContractRegister2Item(item)
  304. return
  305. }
  306. // GetContractRegisterItemPageList 获取合同登记列表-分页
  307. func GetContractRegisterItemPageList(page base.IPage, condition string, pars []interface{}) (count int64, results []*ContractRegisterItem, err error) {
  308. list := make([]*ContractRegister, 0)
  309. query := global.DEFAULT_MYSQL.Table("contract_register").
  310. Where("is_deleted = 0").
  311. Where(condition, pars...)
  312. query.Count(&count)
  313. if len(page.GetOrderItemsString()) > 0 {
  314. query = query.Order(page.GetOrderItemsString())
  315. }
  316. err = query.Limit(int(page.GetPageSize())).Offset(int(page.Offset())).Find(&list).Error
  317. if err != nil {
  318. return
  319. }
  320. for i := range list {
  321. results = append(results, formatContractRegister2Item(list[i]))
  322. }
  323. return
  324. }
  325. // formatContractRegister2Item 格式化ContractRegister
  326. func formatContractRegister2Item(item *ContractRegister) (formatItem *ContractRegisterItem) {
  327. formatItem = new(ContractRegisterItem)
  328. formatItem.ContractRegisterId = item.ContractRegisterId
  329. formatItem.ContractCode = item.ContractCode
  330. formatItem.RelateContractCode = item.RelateContractCode
  331. formatItem.CrmContractId = item.CrmContractId
  332. formatItem.ContractSource = item.ContractSource
  333. formatItem.CompanyName = item.CompanyName
  334. formatItem.ActualCompanyName = item.ActualCompanyName
  335. formatItem.SellerId = item.SellerId
  336. formatItem.SellerName = item.SellerName
  337. formatItem.ContractType = item.ContractType
  338. formatItem.ContractAmount = item.ContractAmount
  339. formatItem.InvoicedAmount = item.InvoicedAmount
  340. formatItem.PaymentAmount = item.PaymentAmount
  341. formatItem.CurrencyUnit = item.CurrencyUnit
  342. formatItem.RMBRate = item.RMBRate
  343. formatItem.StartDate = utils.TimeTransferString(utils.FormatDate, item.StartDate)
  344. formatItem.EndDate = utils.TimeTransferString(utils.FormatDate, item.EndDate)
  345. formatItem.SignDate = utils.TimeTransferString(utils.FormatDate, item.SignDate)
  346. formatItem.AgreedPayTime = item.AgreedPayTime
  347. formatItem.ContractStatus = item.ContractStatus
  348. formatItem.RegisterStatus = item.RegisterStatus
  349. formatItem.Remark = item.Remark
  350. formatItem.ServiceRemark = item.ServiceRemark
  351. formatItem.HasPayment = item.HasPayment
  352. formatItem.NewCompany = item.NewCompany
  353. formatItem.CreateTime = utils.TimeTransferString(utils.FormatDateTime, item.CreateTime)
  354. return
  355. }
  356. // CreateImportContractRegister 新增导入的合同登记及套餐、开票到款信息
  357. func CreateImportContractRegister(item *ContractRegister, serviceList []*ContractService, invoiceList []*ContractInvoice) (newId int, err error) {
  358. tx := global.DEFAULT_MYSQL.Begin()
  359. defer func() {
  360. if err != nil {
  361. tx.Rollback()
  362. } else {
  363. tx.Commit()
  364. }
  365. }()
  366. // 新增合同登记
  367. if e := tx.Create(item).Error; e != nil {
  368. err = e
  369. return
  370. }
  371. newId = item.ContractRegisterId
  372. // 新增套餐
  373. if len(serviceList) > 0 {
  374. for i := range serviceList {
  375. serviceList[i].ContractRegisterId = newId
  376. }
  377. if e := tx.CreateInBatches(serviceList, len(serviceList)).Error; e != nil {
  378. err = e
  379. return
  380. }
  381. }
  382. // 新增开票/到款
  383. if len(invoiceList) > 0 {
  384. for i := range invoiceList {
  385. invoiceList[i].ContractRegisterId = newId
  386. }
  387. if e := tx.CreateInBatches(invoiceList, len(invoiceList)).Error; e != nil {
  388. err = e
  389. return
  390. }
  391. }
  392. return
  393. }
  394. // CreateContractRegisterAndServices 新增合同登记及套餐
  395. func CreateContractRegisterAndServicesAndPayMent(item *ContractRegister, serviceDetail []*ContractServiceAndDetail, prePayId int) (err error) {
  396. tx := global.DEFAULT_MYSQL.Begin()
  397. defer func() {
  398. if err != nil {
  399. tx.Rollback()
  400. } else {
  401. tx.Commit()
  402. }
  403. }()
  404. // 合同登记
  405. tx.Create(item)
  406. //nowTime := time.Now().Local()
  407. for i := 0; i < len(serviceDetail); i++ {
  408. // 合同服务
  409. t := serviceDetail[i]
  410. contractService := &ContractService{
  411. ContractRegisterId: item.ContractRegisterId,
  412. ProductId: item.ProductId,
  413. ServiceTemplateId: t.ServiceTemplateId,
  414. Title: t.Title,
  415. Value: t.Value,
  416. TableValue: t.TableValue,
  417. HasDetail: t.HasDetail,
  418. ChartPermissionId: t.ChartPermissionId,
  419. ChartPermissionIds: t.ChartPermissionIds,
  420. }
  421. contractService.Set()
  422. tx.Create(contractService)
  423. //// 合同服务详情
  424. //for j := 0; j < len(t.Detail); j++ {
  425. // contractServiceDetail := t.Detail[j]
  426. // contractServiceDetail.ContractServiceId = contractService.ContractServiceId
  427. // contractServiceDetail.ContractRegisterId = item.ContractRegisterId
  428. // contractServiceDetail.ServiceTemplateId = contractService.ServiceTemplateId
  429. // contractServiceDetail.CreateTime = nowTime
  430. // tx.Create(contractServiceDetail)
  431. // t.Detail[j] = contractServiceDetail
  432. //}
  433. }
  434. sql := `UPDATE contract_pre_payment SET contract_register_id = ?, contract_code = ?, modify_time = NOW() WHERE pre_pay_id = ?`
  435. tx.Exec(sql, item.ContractRegisterId, item.ContractCode, prePayId)
  436. return
  437. }