contract.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. package controllers
  2. import (
  3. "encoding/json"
  4. contractReq "hongze/hongze_mobile_admin/models/request/contract"
  5. contractResp "hongze/hongze_mobile_admin/models/response/contract"
  6. "hongze/hongze_mobile_admin/models/tables/contract"
  7. "hongze/hongze_mobile_admin/models/tables/contract_approval"
  8. contractService "hongze/hongze_mobile_admin/services/contract"
  9. "hongze/hongze_mobile_admin/services/seal"
  10. "hongze/hongze_mobile_admin/utils"
  11. "path"
  12. "rdluck_tools/paging"
  13. "strconv"
  14. "strings"
  15. )
  16. //合同模块
  17. type ContractCommon struct {
  18. BaseAuth
  19. }
  20. // @Title 上传签回附件
  21. // @Description 上传签回附件接口
  22. // @Param request body contract.UploadCheckBackFileReq true "type json string"
  23. // @Success Ret=200 上传成功
  24. // @router /upload_check_back_file [post]
  25. func (c *ContractCommon) UploadCheckBackFile() {
  26. //var req contractReq.UploadCheckBackFileReq
  27. //err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  28. //if err != nil {
  29. // c.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
  30. // return
  31. //}
  32. ////合同编号
  33. //if req.ContractId <= 0 {
  34. // c.FailWithMessage("请传入合同编号!", "请传入合同编号")
  35. // return
  36. //}
  37. //
  38. //if req.FileUrl == "" {
  39. // c.FailWithMessage("请先上传附件!", "请先上传附件")
  40. // return
  41. //}
  42. contractIdStr := c.Ctx.Request.Form.Get("ContractId")
  43. if contractIdStr == "" {
  44. c.FailWithMessage("合同ID必传!", "合同ID必传")
  45. return
  46. }
  47. contractId, err := strconv.Atoi(contractIdStr)
  48. if err != nil {
  49. c.FailWithMessage("合同ID异常!", "合同ID必传")
  50. return
  51. }
  52. //合同编号
  53. if contractId <= 0 {
  54. c.FailWithMessage("请传入合同编号", "请传入合同编号")
  55. return
  56. }
  57. fileMulti, h, err := c.GetFile("file")
  58. if err != nil {
  59. c.FailWithMessage("获取资源信息失败", "获取资源信息失败,Err:"+err.Error())
  60. return
  61. }
  62. ext := path.Ext(h.Filename)
  63. //err = contractService.UploadCheckBackFile(contractId, req.FileUrl, c.AdminWx)
  64. resourceUrl, err := contractService.UploadCheckBackFileByFile(contractId, ext, fileMulti, c.AdminWx)
  65. //更新用印中的签回合同
  66. _, _ = seal.UploadCheckBackFile(contractId, resourceUrl, c.AdminWx)
  67. c.OkWithMessage("上传成功")
  68. }
  69. // Detail
  70. // @Title 获取合同详情
  71. // @Description 获取合同详情接口
  72. // @Param ContractId query int true "合同id"
  73. // @Success 200 {object} contract.ContractDetailResp
  74. // @router /detail [get]
  75. func (c *ContractCommon) Detail() {
  76. //合同类型、产品类型、合同状态、更新时间、所选销售
  77. //关键字:合同编号、客户名称,社会信用码
  78. contractId, _ := c.GetInt("ContractId")
  79. //合同id
  80. if contractId <= 0 {
  81. c.FailWithMessage("合同id必传!", "合同id必传!")
  82. return
  83. }
  84. //获取合同详情
  85. contractInfo, flowNodeListResp, contractOpButton, err := contractService.GetContractDetailByContractId(contractId, c.AdminWx)
  86. if err != nil {
  87. c.FailWithMessage("获取合同详情失败!", "获取合同详情失败,ERR:"+err.Error())
  88. return
  89. }
  90. resp := contractResp.ContractDetailResp{
  91. ContractDetail: contractInfo,
  92. FlowNodeList: flowNodeListResp,
  93. OpButton: contractOpButton,
  94. }
  95. c.OkDetailed(resp, "获取成功")
  96. }
  97. // CompanyList
  98. // @Title 根据客户名称获取已存在合同系统中客户名称列表
  99. // @Description 获取合同详情接口
  100. // @Param CompanyName query string true "客户名称"
  101. // @Param Keyword query string true "关键字:客户名称、社会信用码"
  102. // @Param Status query string true "合同状态"
  103. // @Success 200 {object} []string
  104. // @router /company_list [get]
  105. func (c *ContractCommon) CompanyList() {
  106. sysUser := c.AdminWx
  107. keyword := c.GetString("Keyword")
  108. //搜索关键字
  109. if keyword == "" {
  110. c.FailWithMessage("搜索关键字必传!", "搜索关键字必传!")
  111. return
  112. }
  113. status := c.GetString("Status")
  114. companyNameList := make([]string, 0)
  115. list, err := contract.GetCompanyNameList(c.AdminWx.AdminId, keyword, status)
  116. if err != nil {
  117. c.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
  118. return
  119. }
  120. for _, v := range list {
  121. companyNameList = append(companyNameList, v.CompanyName)
  122. }
  123. //审批列表中(跟自己有关联的)
  124. childCondition := ""
  125. condition := ""
  126. childPars := make([]interface{}, 0)
  127. pars := make([]interface{}, 0)
  128. if status != "" {
  129. condition += `and c.status=? `
  130. pars = append(pars, status)
  131. }
  132. //归属
  133. //如果不是合规,那么只能查看跟自己有关联的
  134. if status == "待审批" {
  135. condition += ` AND ((c.seller_id = ? and a.start_node_id = a.curr_node_id) OR (d.approve_user_id = ? )) and d.status="待审批" `
  136. } else {
  137. condition += ` AND (c.seller_id = ? or (d.approve_user_id = ? and d.node_id <= a.curr_node_id and c.status != "已撤回") )`
  138. }
  139. pars = append(pars, sysUser.AdminId, sysUser.AdminId)
  140. condition += `and (company_name like '%` + keyword + `%' or credit_code like '%` + keyword + `%')`
  141. list2, err := contract_approval.GetCompanyNameListV2(childCondition, condition, childPars, pars)
  142. if err != nil {
  143. c.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
  144. return
  145. }
  146. for _, v := range list2 {
  147. if !strings.Contains(strings.Join(companyNameList, ","), v.CompanyName) {
  148. companyNameList = append(companyNameList, v.CompanyName)
  149. }
  150. }
  151. c.OkDetailed(companyNameList, "获取成功")
  152. }
  153. // List
  154. // @Title 合同列表
  155. // @Description 合同列表接口
  156. // @Param ContractType query string false "合同类型,枚举值:'新签合同','续约合同','补充协议'"
  157. // @Param Status query string false "合同状态,枚举值:'待提交','待审批','已撤回','已审批','已驳回','已作废'"
  158. // @Param ProductId query int false "客户类型:传0或者不传为当前账号权限,1 代表是:ficc;2 代表是:权益"
  159. // @Param ModifyStartTime query string false "服务更新时间的选择开始时间,格式:2021-05-23 00:00:00"
  160. // @Param ModifyEndTime query string false "服务更新时间的选择结束时间,格式:2021-05-26 23:59:59"
  161. // @Param SellerId query string false "选择的销售id"
  162. // @Param Keyword query string false "搜索关键字"
  163. // @Param KeywordEq query string false "搜索关键字(全等)"
  164. // @Success 200 {object} contract.ContractListResp
  165. // @router /list [get]
  166. func (c *ContractCommon) List() {
  167. //合同类型、产品类型、合同状态、更新时间、所选销售
  168. //关键字:合同编号、客户名称,社会信用码
  169. contractType := c.GetString("ContractType")
  170. status := c.GetString("Status")
  171. productId, _ := c.GetInt("ProductId")
  172. modifyStartTime := c.GetString("ModifyStartTime")
  173. modifyEndTime := c.GetString("ModifyEndTime")
  174. sellerIds := c.GetString("SellerId")
  175. keyword := c.GetString("Keyword")
  176. keywordEq := c.GetString("KeywordEq")
  177. condition := ""
  178. pars := make([]interface{}, 0)
  179. //如果不是超管或者合规,那么只能查看自己的合同
  180. condition += ` AND seller_id = ? `
  181. pars = append(pars, c.AdminWx.AdminId)
  182. //合同类型、、更新时间、所选销售
  183. //关键字:合同编号、客户名称,社会信用码
  184. if contractType != "" {
  185. condition += ` AND contract_type = ? `
  186. pars = append(pars, contractType)
  187. }
  188. //合同状态
  189. if status != "" {
  190. condition += ` AND status = ? `
  191. pars = append(pars, status)
  192. }
  193. //产品类型
  194. if productId > 0 {
  195. condition += ` AND product_id = ? `
  196. pars = append(pars, productId)
  197. }
  198. //所选销售
  199. if sellerIds != "" {
  200. condition += ` AND seller_id IN (` + sellerIds + `) `
  201. }
  202. //更新开始时间
  203. if modifyStartTime != "" {
  204. condition += ` AND modify_time >= ? `
  205. pars = append(pars, modifyStartTime)
  206. }
  207. //更新结束时间
  208. if modifyEndTime != "" {
  209. condition += ` AND modify_time <= ? `
  210. pars = append(pars, modifyEndTime)
  211. }
  212. //关键字
  213. if keyword != "" {
  214. condition += ` AND (contract_code LIKE '%` + keyword + `%' OR company_name LIKE '%` + keyword + `%' OR credit_code LIKE '%` + keyword + `%' ) `
  215. }
  216. //关键字(全等)
  217. if keywordEq != "" {
  218. condition += ` AND c.company_name =? `
  219. pars = append(pars, keywordEq)
  220. }
  221. pageSize, _ := c.GetInt("PageSize")
  222. currentIndex, _ := c.GetInt("CurrentIndex")
  223. var startSize int
  224. if pageSize <= 0 {
  225. pageSize = utils.PageSize20
  226. }
  227. if currentIndex <= 0 {
  228. currentIndex = 1
  229. }
  230. startSize = paging.StartIndex(currentIndex, pageSize)
  231. total, err := contract.GetContractListCount(condition, pars)
  232. if err != nil {
  233. c.FailWithMessage("获取失败", "获取数据总数失败,Err:"+err.Error())
  234. return
  235. }
  236. list, err := contract.GetContractList(condition, pars, startSize, pageSize)
  237. if err != nil {
  238. c.FailWithMessage("获取合同列表失败", "获取合同列表失败,Err:"+err.Error())
  239. return
  240. }
  241. page := paging.GetPaging(currentIndex, pageSize, total)
  242. c.OkDetailed(contractResp.ContractListResp{
  243. List: list,
  244. Paging: page,
  245. }, "获取成功")
  246. }
  247. // CompanyListBySeal
  248. // @Title 根据客户名称获取已存在合同系统中客户名称列表
  249. // @Description 获取合同详情接口
  250. // @Param CompanyName query string true "客户名称"
  251. // @Param Keyword query string true "关键字:客户名称、社会信用码"
  252. // @Param Status query string true "合同状态"
  253. // @Success 200 {object} []string
  254. // @router /companyListBySeal [get]
  255. func (c *ContractCommon) CompanyListBySeal() {
  256. sysUser := c.AdminWx
  257. keyword := c.GetString("Keyword")
  258. //搜索关键字
  259. if keyword == "" {
  260. c.FailWithMessage("搜索关键字必传!", "搜索关键字必传!")
  261. return
  262. }
  263. status := c.GetString("Status")
  264. companyNameList := make([]string, 0)
  265. sellerId := 0
  266. if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_COMPLIANCE {
  267. sellerId = c.AdminWx.AdminId
  268. }
  269. list, err := contract.GetCompanyNameList(sellerId, keyword, status)
  270. if err != nil {
  271. c.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
  272. return
  273. }
  274. for _, v := range list {
  275. companyNameList = append(companyNameList, v.CompanyName)
  276. }
  277. //审批列表中(跟自己有关联的)
  278. //childCondition := ""
  279. //condition := ""
  280. //childPars := make([]interface{}, 0)
  281. //pars := make([]interface{}, 0)
  282. //if status != "" {
  283. // condition += `and c.status=? `
  284. // pars = append(pars, status)
  285. //}
  286. ////归属
  287. ////如果不是合规,那么只能查看跟自己有关联的
  288. //if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_COMPLIANCE {
  289. // if status == "待审批" {
  290. // condition += ` AND ((c.seller_id = ? and a.start_node_id = a.curr_node_id) OR (d.approve_user_id = ? )) and d.status="待审批" `
  291. // } else {
  292. // condition += ` AND (c.seller_id = ? or d.approve_user_id = ?)`
  293. // }
  294. // pars = append(pars, sysUser.AdminId, sysUser.AdminId)
  295. //}
  296. //
  297. //condition += `and (company_name like '%` + keyword + `%' or credit_code like '%` + keyword + `%')`
  298. //
  299. //list2, err := contract_approval.GetCompanyNameListV2(childCondition, condition, childPars, pars)
  300. //if err != nil {
  301. // c.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
  302. // return
  303. //}
  304. //for _, v := range list2 {
  305. // if !strings.Contains(strings.Join(companyNameList, ","), v.CompanyName) {
  306. // companyNameList = append(companyNameList, v.CompanyName)
  307. // }
  308. //}
  309. c.OkDetailed(companyNameList, "获取成功")
  310. }
  311. // ListBySeal
  312. // @Title 合同列表
  313. // @Description 合同列表接口
  314. // @Param ContractType query string false "合同类型,枚举值:'新签合同','续约合同','补充协议'"
  315. // @Param Status query string false "合同状态,枚举值:'待提交','待审批','已撤回','已审批','已驳回','已作废'"
  316. // @Param ProductId query int false "客户类型:传0或者不传为当前账号权限,1 代表是:ficc;2 代表是:权益"
  317. // @Param ModifyStartTime query string false "服务更新时间的选择开始时间,格式:2021-05-23 00:00:00"
  318. // @Param ModifyEndTime query string false "服务更新时间的选择结束时间,格式:2021-05-26 23:59:59"
  319. // @Param SellerId query string false "选择的销售id"
  320. // @Param Keyword query string false "搜索关键字"
  321. // @Param KeywordEq query string false "搜索关键字(全等)"
  322. // @Success 200 {object} contract.ContractListResp
  323. // @router /listBySeal [get]
  324. func (c *ContractCommon) ListBySeal() {
  325. //合同类型、产品类型、合同状态、更新时间、所选销售
  326. //关键字:合同编号、客户名称,社会信用码
  327. contractType := c.GetString("ContractType")
  328. status := c.GetString("Status")
  329. productId, _ := c.GetInt("ProductId")
  330. modifyStartTime := c.GetString("ModifyStartTime")
  331. modifyEndTime := c.GetString("ModifyEndTime")
  332. sellerIds := c.GetString("SellerId")
  333. keyword := c.GetString("Keyword")
  334. keywordEq := c.GetString("KeywordEq")
  335. condition := ""
  336. pars := make([]interface{}, 0)
  337. //如果不是合规,那么只能查看自己的合同
  338. if c.AdminWx.RoleTypeCode != utils.ROLE_TYPE_CODE_COMPLIANCE {
  339. condition += ` AND seller_id = ? `
  340. pars = append(pars, c.AdminWx.AdminId)
  341. }
  342. //合同类型、、更新时间、所选销售
  343. //关键字:合同编号、客户名称,社会信用码
  344. if contractType != "" {
  345. condition += ` AND contract_type = ? `
  346. pars = append(pars, contractType)
  347. }
  348. //合同状态
  349. if status != "" {
  350. condition += ` AND status = ? `
  351. pars = append(pars, status)
  352. }
  353. //产品类型
  354. if productId > 0 {
  355. condition += ` AND product_id = ? `
  356. pars = append(pars, productId)
  357. }
  358. //所选销售
  359. if sellerIds != "" {
  360. condition += ` AND seller_id IN (` + sellerIds + `) `
  361. }
  362. //更新开始时间
  363. if modifyStartTime != "" {
  364. condition += ` AND modify_time >= ? `
  365. pars = append(pars, modifyStartTime)
  366. }
  367. //更新结束时间
  368. if modifyEndTime != "" {
  369. condition += ` AND modify_time <= ? `
  370. pars = append(pars, modifyEndTime)
  371. }
  372. //关键字
  373. if keyword != "" {
  374. condition += ` AND (contract_code LIKE '%` + keyword + `%' OR company_name LIKE '%` + keyword + `%' OR credit_code LIKE '%` + keyword + `%' ) `
  375. }
  376. //关键字(全等)
  377. if keywordEq != "" {
  378. condition += ` AND c.company_name =? `
  379. pars = append(pars, keywordEq)
  380. }
  381. pageSize, _ := c.GetInt("PageSize")
  382. currentIndex, _ := c.GetInt("CurrentIndex")
  383. var startSize int
  384. if pageSize <= 0 {
  385. pageSize = utils.PageSize20
  386. }
  387. if currentIndex <= 0 {
  388. currentIndex = 1
  389. }
  390. startSize = paging.StartIndex(currentIndex, pageSize)
  391. total, err := contract.GetContractListCount(condition, pars)
  392. if err != nil {
  393. c.FailWithMessage("获取失败", "获取数据总数失败,Err:"+err.Error())
  394. return
  395. }
  396. list, err := contract.GetContractList(condition, pars, startSize, pageSize)
  397. if err != nil {
  398. c.FailWithMessage("获取合同列表失败", "获取合同列表失败,Err:"+err.Error())
  399. return
  400. }
  401. page := paging.GetPaging(currentIndex, pageSize, total)
  402. c.OkDetailed(contractResp.ContractListResp{
  403. List: list,
  404. Paging: page,
  405. }, "获取成功")
  406. }
  407. // ListV2
  408. // @Title 合同列表(包含待提交的)
  409. // @Description 合同列表接口(包含待提交的)
  410. // @Param ContractType query string false "合同类型,枚举值:'新签合同','续约合同','补充协议'"
  411. // @Param Status query string false "合同状态,枚举值:'待提交','待审批','已撤回','已审批','已驳回','已作废'"
  412. // @Param ProductId query int false "客户类型:传0或者不传为当前账号权限,1 代表是:ficc;2 代表是:权益"
  413. // @Param ModifyStartTime query string false "服务更新时间的选择开始时间,格式:2021-05-23 00:00:00"
  414. // @Param ModifyEndTime query string false "服务更新时间的选择结束时间,格式:2021-05-26 23:59:59"
  415. // @Param SellerId query string false "选择的销售id"
  416. // @Param Keyword query string false "搜索关键字"
  417. // @Param KeywordEq query string false "搜索关键字(全等)"
  418. // @Success 200 {object} contract.ContractListRespV2
  419. // @router /listV2 [get]
  420. func (c *ContractCommon) ListV2() {
  421. sysUser := c.AdminWx
  422. //合同类型、产品类型、合同状态、更新时间、所选销售
  423. //关键字:合同编号、客户名称,社会信用码
  424. contractType := c.GetString("ContractType")
  425. status := c.GetString("Status")
  426. productId, _ := c.GetInt("ProductId")
  427. modifyStartTime := c.GetString("ModifyStartTime")
  428. modifyEndTime := c.GetString("ModifyEndTime")
  429. sellerIds := c.GetString("SellerId")
  430. keyword := c.GetString("Keyword")
  431. keywordEq := c.GetString("KeywordEq")
  432. childCondition := ""
  433. condition := ""
  434. unionCondition := ""
  435. childPars := make([]interface{}, 0)
  436. pars := make([]interface{}, 0)
  437. unionPars := make([]interface{}, 0)
  438. //归属
  439. if status == "待审批" {
  440. condition += ` AND ((c.seller_id = ? and a.start_node_id = a.curr_node_id) OR (d.approve_user_id = ? )) and d.status="待审批" `
  441. } else {
  442. condition += ` AND (c.seller_id = ? or d.approve_user_id = ?)`
  443. }
  444. pars = append(pars, sysUser.AdminId, sysUser.AdminId)
  445. unionCondition += ` AND c.seller_id = ? `
  446. unionPars = append(unionPars, sysUser.AdminId)
  447. //合同类型、、更新时间、所选销售
  448. //关键字:合同编号、客户名称,社会信用码
  449. if contractType != "" {
  450. condition += ` AND c.contract_type = ? `
  451. pars = append(pars, contractType)
  452. unionCondition += ` AND c.contract_type = ? `
  453. unionPars = append(unionPars, contractType)
  454. }
  455. //审批状态
  456. if status != "" {
  457. if status == "已审批" {
  458. condition += ` AND c.status in ("已审批","已驳回") `
  459. unionCondition += ` AND c.status in ("已审批","已驳回") `
  460. } else {
  461. condition += ` AND c.status = ? `
  462. unionCondition += ` AND c.status = ? `
  463. if status == "处理中" {
  464. pars = append(pars, "待审批")
  465. unionPars = append(unionPars, "待审批")
  466. } else {
  467. pars = append(pars, status)
  468. unionPars = append(unionPars, status)
  469. }
  470. }
  471. } else {
  472. condition += ` AND c.status not in ("已撤回","待提交") `
  473. unionCondition += ` AND c.status = "待提交" `
  474. }
  475. //产品类型
  476. if productId > 0 {
  477. condition += ` AND c.product_id = ? `
  478. pars = append(pars, productId)
  479. unionCondition += ` AND c.product_id = ? `
  480. unionPars = append(unionPars, productId)
  481. }
  482. //所选销售
  483. if sellerIds != "" {
  484. condition += ` AND c.seller_id IN (` + sellerIds + `) `
  485. unionCondition += ` AND c.seller_id IN (` + sellerIds + `) `
  486. }
  487. //更新开始时间
  488. if modifyStartTime != "" {
  489. condition += ` AND a.modify_time >= ? `
  490. pars = append(pars, modifyStartTime)
  491. unionCondition += ` AND a.modify_time >= ? `
  492. unionPars = append(unionPars, modifyStartTime)
  493. }
  494. //更新结束时间
  495. if modifyEndTime != "" {
  496. condition += ` AND a.modify_time <= ? `
  497. pars = append(pars, modifyEndTime)
  498. unionCondition += ` AND a.modify_time <= ? `
  499. unionPars = append(unionPars, modifyEndTime)
  500. }
  501. //关键字
  502. if keyword != "" {
  503. condition += ` AND (c.contract_code LIKE '%` + keyword + `%' OR c.company_name LIKE '%` + keyword + `%' OR c.credit_code LIKE '%` + keyword + `%' ) `
  504. unionCondition += ` AND (c.contract_code LIKE '%` + keyword + `%' OR c.company_name LIKE '%` + keyword + `%' OR c.credit_code LIKE '%` + keyword + `%' ) `
  505. }
  506. //关键字(全等)
  507. if keywordEq != "" {
  508. condition += ` AND c.company_name =? `
  509. pars = append(pars, keywordEq)
  510. unionCondition += ` AND c.company_name =? `
  511. unionPars = append(unionPars, keywordEq)
  512. }
  513. pageSize, _ := c.GetInt("PageSize")
  514. currentIndex, _ := c.GetInt("CurrentIndex")
  515. var startSize int
  516. if pageSize <= 0 {
  517. pageSize = utils.PageSize20
  518. }
  519. if currentIndex <= 0 {
  520. currentIndex = 1
  521. }
  522. startSize = paging.StartIndex(currentIndex, pageSize)
  523. //joinCondition := " and a.curr_node_id=d.node_id"
  524. joinCondition := ""
  525. total, err := contract_approval.GetContractListCountV2(childCondition, condition, joinCondition, unionCondition, childPars, pars, unionPars)
  526. if err != nil {
  527. c.FailWithMessage("获取失败", "获取数据总数失败,Err:"+err.Error())
  528. return
  529. }
  530. list, err := contract_approval.GetContractListV2(childCondition, condition, joinCondition, unionCondition, childPars, pars, unionPars, startSize, pageSize)
  531. if err != nil {
  532. c.FailWithMessage("获取合同列表失败", "获取合同列表失败,Err:"+err.Error())
  533. return
  534. }
  535. page := paging.GetPaging(currentIndex, pageSize, total)
  536. c.OkDetailed(contractResp.ContractListRespV2{
  537. List: list,
  538. Paging: page,
  539. }, "获取成功")
  540. }
  541. // @Title 作废合同
  542. // @Description 作废合同接口
  543. // @Param request body contract.InvalidReq true "type json string"
  544. // @Success Ret=200 作废成功
  545. // @router /invalid [post]
  546. func (c *ContractCommon) Invalid() {
  547. var req contractReq.InvalidReq
  548. err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
  549. if err != nil {
  550. c.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
  551. return
  552. }
  553. //合同id
  554. if req.ContractId <= 0 {
  555. c.FailWithMessage("合同id必传!", "合同id必传!")
  556. return
  557. }
  558. err = contractService.InvalidContract(req.ContractId, c.AdminWx)
  559. if err != nil {
  560. c.FailWithMessage("作废合同失败!", "作废合同失败,Err:"+err.Error())
  561. return
  562. }
  563. c.OkWithMessage("作废成功")
  564. return
  565. }