seal.go 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. package controllers
  2. import (
  3. "encoding/json"
  4. sealReq "hongze/hongze_mobile_admin/models/request/seal"
  5. sealResp "hongze/hongze_mobile_admin/models/response/seal"
  6. "hongze/hongze_mobile_admin/models/tables/seal"
  7. sealService "hongze/hongze_mobile_admin/services/seal"
  8. "hongze/hongze_mobile_admin/utils"
  9. )
  10. //用印模块
  11. type SealCommon struct {
  12. BaseAuth
  13. }
  14. // @Title 新增用印
  15. // @Description 新增用印接口
  16. // @Param request body seal.AddReq true "type json string"
  17. // @Success Ret=200 新增用印成功
  18. // @router /add [post]
  19. func (this *SealCommon) Add() {
  20. var req sealReq.AddReq
  21. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  22. if err != nil {
  23. this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
  24. return
  25. }
  26. //参数校验
  27. paramVerify := utils.Rules{
  28. "Use": {utils.NotEmpty()},
  29. "CompanyName": {utils.NotEmpty()},
  30. "CreditCode": {utils.NotEmpty()},
  31. "ServiceType": {utils.NotEmpty()},
  32. "SealType": {utils.NotEmpty()},
  33. "FileUrl": {utils.NotEmpty()},
  34. }
  35. err = utils.Verify(req, paramVerify, utils.LANG_CN)
  36. if err != nil {
  37. this.FailWithMessage("缺少参数", err.Error())
  38. return
  39. }
  40. sealInfo, err := sealService.AddSeal(this.AdminWx.AdminId, req.ContractId, req.FileNum, this.AdminWx.RealName, req.Use, req.UseCompanyName, req.CompanyName, req.CreditCode, req.ServiceType, req.SealType, req.Remark, req.FileUrl)
  41. if err != nil {
  42. this.FailWithMessage("用印添加失败", err.Error())
  43. return
  44. }
  45. err = sealService.Apply(sealInfo)
  46. if err != nil {
  47. this.FailWithMessage("发起用印审批失败", "发起用印审批失败,Err:"+err.Error())
  48. return
  49. }
  50. this.OkDetailed(sealResp.AddSealResp{
  51. SealId: sealInfo.SealId,
  52. }, "发起用印审批成功")
  53. }
  54. // @Title 编辑用印
  55. // @Description 编辑用印接口
  56. // @Param request body seal.EditReq true "type json string"
  57. // @Success 200 {object} seal.AddSealResp
  58. // @router /edit [post]
  59. func (this *SealCommon) Edit() {
  60. var req sealReq.EditReq
  61. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  62. if err != nil {
  63. this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
  64. return
  65. }
  66. //参数校验
  67. paramVerify := utils.Rules{
  68. "SealId": {utils.NotEmpty()},
  69. "Use": {utils.NotEmpty()},
  70. "CompanyName": {utils.NotEmpty()},
  71. "CreditCode": {utils.NotEmpty()},
  72. "ServiceType": {utils.NotEmpty()},
  73. "SealType": {utils.NotEmpty()},
  74. "FileUrl": {utils.NotEmpty()},
  75. }
  76. err = utils.Verify(req, paramVerify, utils.LANG_CN)
  77. if req.SealId <= 0 {
  78. this.FailWithMessage("合同编号必传!", "合同编号必传!")
  79. return
  80. }
  81. sealInfo, err := sealService.Edit(req.SealId, this.AdminWx.AdminId, req.ContractId, req.FileNum, req.Use, req.CompanyName, req.UseCompanyName, req.CreditCode, req.ServiceType, req.SealType, req.Remark, req.FileUrl)
  82. if err != nil {
  83. this.FailWithMessage("修改合同失败!", "修改合同失败,Err:"+err.Error())
  84. return
  85. }
  86. tmpErr := sealService.Apply(sealInfo)
  87. if tmpErr != nil {
  88. this.FailWithMessage("发起重申失败!", "发起重申失败,Err:"+tmpErr.Error())
  89. return
  90. }
  91. this.OkDetailed(sealResp.AddSealResp{
  92. SealId: sealInfo.SealId,
  93. }, "发起重申成功")
  94. }
  95. // @Title 审批者编辑用印
  96. // @Description 审批者编辑用印接口
  97. // @Param request body seal.CheckEditReq true "type json string"
  98. // @Success 200 {object} seal.AddSealResp
  99. // @router /check_edit [post]
  100. func (this *SealCommon) CheckEdit() {
  101. var req sealReq.CheckEditReq
  102. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  103. if err != nil {
  104. this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
  105. return
  106. }
  107. //参数校验
  108. paramVerify := utils.Rules{
  109. "SealId": {utils.NotEmpty()},
  110. "Use": {utils.NotEmpty()},
  111. "CompanyName": {utils.NotEmpty()},
  112. "CreditCode": {utils.NotEmpty()},
  113. "ServiceType": {utils.NotEmpty()},
  114. "SealType": {utils.NotEmpty()},
  115. "FileUrl": {utils.NotEmpty()},
  116. }
  117. err = utils.Verify(req, paramVerify, utils.LANG_CN)
  118. sealId := req.SealId
  119. if sealId <= 0 {
  120. this.FailWithMessage("请传入用印单编号!", "请传入用印单编号!")
  121. return
  122. }
  123. //数据校验(校验是否具有审批权限)
  124. sealInfo, approvalInfo, approvalRecord, err := sealService.CheckApproveAuth(sealId, this.AdminWx)
  125. //合规修改
  126. err = sealService.CheckEdit(sealInfo, approvalInfo, approvalRecord, req.FileNum, req.FileUrl, req.Use, req.SealType, req.Remark, this.AdminWx)
  127. if err != nil {
  128. this.FailWithMessage("修改合同失败!", "修改合同失败,Err:"+err.Error())
  129. return
  130. }
  131. this.OkDetailed(sealResp.AddSealResp{
  132. SealId: sealInfo.SealId,
  133. }, "修改合同成功")
  134. }
  135. // @Title 获取用印详情
  136. // @Description 获取用印详情接口
  137. // @Param SealId query int true "用印id"
  138. // @Success 200 {object} seal.SealDetailResp
  139. // @router /detail [get]
  140. func (this *SealCommon) Detail() {
  141. //合同类型、产品类型、合同状态、更新时间、所选销售
  142. //关键字:合同编号、客户名称,社会信用码
  143. sealId, _ := this.GetInt("SealId")
  144. //用印id
  145. if sealId <= 0 {
  146. this.FailWithMessage("用印id必传!", "用印id必传!")
  147. return
  148. }
  149. sealInfo, flowNodeListResp, opButton, err := sealService.GetSealDetailBySealId(sealId, this.AdminWx)
  150. if err != nil {
  151. this.FailWithMessage("获取详情失败", "获取详情失败,Err:"+err.Error())
  152. return
  153. }
  154. resp := sealResp.SealDetailResp{
  155. SealDetail: sealInfo,
  156. FlowNodeList: flowNodeListResp,
  157. OpButton: opButton,
  158. }
  159. this.OkDetailed(resp, "获取成功")
  160. }
  161. // @Title 作废合同
  162. // @Description 作废合同接口
  163. // @Param request body seal.InvalidReq true "type json string"
  164. // @Success Ret=200 作废成功
  165. // @router /invalid [post]
  166. func (this *SealCommon) Invalid() {
  167. var req sealReq.InvalidReq
  168. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  169. if err != nil {
  170. this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
  171. return
  172. }
  173. //用印id
  174. if req.SealId <= 0 {
  175. this.FailWithMessage("用印id必传!", "用印id必传!")
  176. return
  177. }
  178. err = sealService.Invalid(req.SealId, this.AdminWx, req.IsInvalidContract)
  179. if err != nil {
  180. this.FailWithMessage("作废用印失败!", "作废用印失败,Err:"+err.Error())
  181. return
  182. }
  183. this.OkWithMessage("作废成功")
  184. return
  185. }
  186. // @Title 根据客户名称获取已存在系统中客户名称列表
  187. // @Description 获取合同详情接口
  188. // @Param CompanyName query string true "客户名称"
  189. // @Success 200 {object} []string
  190. // @router /company_list [get]
  191. func (this *SealCommon) CompanyList() {
  192. companyName := this.GetString("CompanyName")
  193. //合同id
  194. if companyName == "" {
  195. this.FailWithMessage("客户名称必传!", "客户名称必传!")
  196. return
  197. }
  198. companyNameList := make([]string, 0)
  199. list, err := seal.GetCompanyNameList(companyName)
  200. if err != nil {
  201. this.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
  202. return
  203. }
  204. for _, v := range list {
  205. companyNameList = append(companyNameList, v.CompanyName)
  206. }
  207. this.OkDetailed(companyNameList, "获取成功")
  208. }