seal.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package seal
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_mobile_admin/models/tables/seal"
  6. "hongze/hongze_mobile_admin/utils"
  7. "strings"
  8. "time"
  9. )
  10. //添加用印
  11. func AddSeal(userId, contractId int, userName, use, useCompanyName, companyName, creditCode, serviceType, sealType, remark, fileUrl string) (sealInfo *seal.Seal, err error) {
  12. useList := []string{"销售合同", "渠道合同", "付款通知函", "招投标", "战略合作协议"}
  13. serviceTypeList := []string{"新增业务", "续约业务", "补充协议"}
  14. sealTypeList := []string{"合同章", "公章", "法人章"}
  15. if !strings.Contains(strings.Join(useList, ","), use) {
  16. err = errors.New("用印用途异常")
  17. return
  18. }
  19. if !strings.Contains(strings.Join(serviceTypeList, ","), serviceType) {
  20. err = errors.New("业务类型异常")
  21. return
  22. }
  23. if !strings.Contains(strings.Join(sealTypeList, ","), sealType) {
  24. err = errors.New("加盖印章类型异常")
  25. return
  26. }
  27. sealCode, err := seal.GetSealCode()
  28. if err != nil {
  29. return
  30. }
  31. sealInfo = &seal.Seal{
  32. Code: sealCode,
  33. UserId: userId,
  34. UserName: userName,
  35. Use: use,
  36. CompanyName: companyName,
  37. UseCompanyName: useCompanyName,
  38. CreditCode: creditCode,
  39. ServiceType: serviceType,
  40. SealType: sealType,
  41. Status: "待提交",
  42. Remark: remark,
  43. FileUrl: fileUrl,
  44. ContractId: contractId,
  45. ModifyTime: time.Now(),
  46. CreateTime: time.Now(),
  47. }
  48. err = seal.AddSeal(sealInfo)
  49. return
  50. }
  51. //修改用印
  52. func Edit(sealId, userId, contractId int, use, companyName, userCompanyName, creditCode, serviceType, sealType, remark, fileUrl string) (sealInfo *seal.Seal, err error) {
  53. useList := []string{"销售合同", "渠道合同", "付款通知函", "招投标", "战略合作协议"}
  54. serviceTypeList := []string{"新增业务", "续约业务", "补充协议"}
  55. sealTypeList := []string{"合同章", "公章", "法人章"}
  56. if !strings.Contains(strings.Join(useList, ","), use) {
  57. err = errors.New("用印用途异常")
  58. return
  59. }
  60. if !strings.Contains(strings.Join(serviceTypeList, ","), serviceType) {
  61. err = errors.New("业务类型异常")
  62. return
  63. }
  64. if !strings.Contains(strings.Join(sealTypeList, ","), sealType) {
  65. err = errors.New("加盖印章类型异常")
  66. return
  67. }
  68. //查询当前合同信息
  69. sealInfo, err = seal.GetSealInfoById(sealId)
  70. if err != nil {
  71. if err.Error() == utils.ErrNoRow() {
  72. err = errors.New(fmt.Sprint("根据用印编号:", sealId, " 找不到该用印"))
  73. }
  74. return
  75. }
  76. if sealInfo.UserId != userId {
  77. err = errors.New("当前账号无操作权限")
  78. return
  79. }
  80. ignoreStatus := []string{"待提交", "已撤回", "已驳回"}
  81. if !strings.Contains(strings.Join(ignoreStatus, ","), sealInfo.Status) {
  82. err = errors.New("用印状态异常,不允许修改,当前用印状态:" + sealInfo.Status)
  83. return
  84. }
  85. //sealId,userId int, userName, use, companyName, creditCode, serviceType, sealType, remark, fileUrl string
  86. sealInfo.Use = use
  87. sealInfo.CompanyName = companyName
  88. sealInfo.UseCompanyName = userCompanyName
  89. sealInfo.CreditCode = creditCode
  90. sealInfo.ServiceType = serviceType
  91. sealInfo.SealType = sealType
  92. sealInfo.Remark = remark
  93. sealInfo.FileUrl = fileUrl
  94. sealInfo.ContractId = contractId
  95. sealInfo.ModifyTime = time.Now()
  96. sealInfo.Status = "待提交" //用印状态
  97. err = sealInfo.Update([]string{"Use", "CompanyName", "CreditCode", "ServiceType", "SealType", "Remark", "FileUrl", "ModifyTime", "Status"})
  98. return
  99. }