123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- package controllers
- import (
- "encoding/json"
- sealReq "hongze/hongze_mobile_admin/models/request/seal"
- sealResp "hongze/hongze_mobile_admin/models/response/seal"
- "hongze/hongze_mobile_admin/models/tables/contract_approval"
- "hongze/hongze_mobile_admin/models/tables/contract_approval_record"
- "hongze/hongze_mobile_admin/models/tables/seal"
- sealService "hongze/hongze_mobile_admin/services/seal"
- "hongze/hongze_mobile_admin/utils"
- )
- //用印模块
- type SealCommon struct {
- BaseAuth
- }
- // @Title 新增用印
- // @Description 新增用印接口
- // @Param request body seal.AddReq true "type json string"
- // @Success Ret=200 新增用印成功
- // @router /add [post]
- func (this *SealCommon) Add() {
- var req sealReq.AddReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
- return
- }
- //参数校验
- paramVerify := utils.Rules{
- "Use": {utils.NotEmpty()},
- "CompanyName": {utils.NotEmpty()},
- "CreditCode": {utils.NotEmpty()},
- "ServiceType": {utils.NotEmpty()},
- "SealType": {utils.NotEmpty()},
- "FileUrl": {utils.NotEmpty()},
- }
- err = utils.Verify(req, paramVerify, utils.LANG_CN)
- if err != nil {
- this.FailWithMessage("缺少参数", err.Error())
- return
- }
- 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)
- if err != nil {
- this.FailWithMessage("用印添加失败", err.Error())
- return
- }
- err = sealService.Apply(sealInfo)
- if err != nil {
- this.FailWithMessage("发起用印审批失败", "发起用印审批失败,Err:"+err.Error())
- return
- }
- this.OkDetailed(sealResp.AddSealResp{
- SealId: sealInfo.SealId,
- }, "发起用印审批成功")
- }
- // @Title 编辑用印
- // @Description 编辑用印接口
- // @Param request body seal.EditReq true "type json string"
- // @Success 200 {object} seal.AddSealResp
- // @router /edit [post]
- func (this *SealCommon) Edit() {
- var req sealReq.EditReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
- return
- }
- //参数校验
- paramVerify := utils.Rules{
- "SealId": {utils.NotEmpty()},
- "Use": {utils.NotEmpty()},
- "CompanyName": {utils.NotEmpty()},
- "CreditCode": {utils.NotEmpty()},
- "ServiceType": {utils.NotEmpty()},
- "SealType": {utils.NotEmpty()},
- "FileUrl": {utils.NotEmpty()},
- }
- err = utils.Verify(req, paramVerify, utils.LANG_CN)
- if req.SealId <= 0 {
- this.FailWithMessage("合同编号必传!", "合同编号必传!")
- return
- }
- 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)
- if err != nil {
- this.FailWithMessage("修改合同失败!", "修改合同失败,Err:"+err.Error())
- return
- }
- tmpErr := sealService.Apply(sealInfo)
- if tmpErr != nil {
- this.FailWithMessage("发起重申失败!", "发起重申失败,Err:"+tmpErr.Error())
- return
- }
- this.OkDetailed(sealResp.AddSealResp{
- SealId: sealInfo.SealId,
- }, "发起重申成功")
- }
- // @Title 审批者编辑用印
- // @Description 审批者编辑用印接口
- // @Param request body seal.EditReq true "type json string"
- // @Success 200 {object} seal.AddSealResp
- // @router /check_edit [post]
- func (this *SealCommon) CheckEdit() {
- var req sealReq.CheckEditReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
- return
- }
- //参数校验
- paramVerify := utils.Rules{
- "SealId": {utils.NotEmpty()},
- "Use": {utils.NotEmpty()},
- "CompanyName": {utils.NotEmpty()},
- "CreditCode": {utils.NotEmpty()},
- "ServiceType": {utils.NotEmpty()},
- "SealType": {utils.NotEmpty()},
- "FileUrl": {utils.NotEmpty()},
- }
- err = utils.Verify(req, paramVerify, utils.LANG_CN)
- sealId := req.SealId
- if sealId <= 0 {
- this.FailWithMessage("请传入用印单编号!", "请传入用印单编号!")
- return
- }
- //数据校验(校验是否具有审批权限)
- sealInfo, approvalInfo, approvalRecord, err := sealService.CheckApproveAuth(sealId, this.AdminWx)
- err = sealService.CheckEdit(sealInfo, approvalInfo, approvalRecord, req.FileNum, req.Use, req.SealType, req.Remark, this.AdminWx)
- if err != nil {
- this.FailWithMessage("修改合同失败!", "修改合同失败,Err:"+err.Error())
- return
- }
- tmpErr := sealService.Apply(sealInfo)
- if tmpErr != nil {
- this.FailWithMessage("发起重申失败!", "发起重申失败,Err:"+tmpErr.Error())
- return
- }
- this.OkDetailed(sealResp.AddSealResp{
- SealId: sealInfo.SealId,
- }, "发起重申成功")
- }
- // @Title 获取用印详情
- // @Description 获取用印详情接口
- // @Param SealId query int true "用印id"
- // @Success 200 {object} seal.SealDetailResp
- // @router /detail [get]
- func (this *SealCommon) Detail() {
- //合同类型、产品类型、合同状态、更新时间、所选销售
- //关键字:合同编号、客户名称,社会信用码
- sealId, _ := this.GetInt("SealId")
- //用印id
- if sealId <= 0 {
- this.FailWithMessage("用印id必传!", "用印id必传!")
- return
- }
- sealInfo, err := seal.GetSealInfoById(sealId)
- if err != nil {
- this.FailWithMessage("获取合同详情失败!", "获取合同详情失败,ERR:"+err.Error())
- return
- }
- //审批流
- flowNodeListResp := make([][]contract_approval_record.ContractApprovalRecord, 0)
- //审批操作权限,上传签回文件权限
- var opButton sealResp.OpButton
- //查询最近一次审批单信息
- lastApprovalInfo, err := contract_approval.GetLastContractApprovalByContractId(sealInfo.SealId, "seal")
- if err != nil {
- if err.Error() != utils.NotEmpty() {
- this.FailWithMessage("获取最近一次审批单信息失败!", "获取最近一次审批单信息失败,ERR:"+err.Error())
- return
- }
- }
- if lastApprovalInfo != nil {
- //获取审批操作和审批流数据
- tmpSealOpButton, tmpFlowNodeListResp, err := sealService.GetOpButton(sealInfo, lastApprovalInfo, this.AdminWx)
- if err != nil {
- this.FailWithMessage("获取用印详情失败", "获取用印详情失败,Err:"+err.Error())
- }
- opButton = tmpSealOpButton
- flowNodeListResp = tmpFlowNodeListResp
- }
- resp := sealResp.SealDetailResp{
- SealDetail: sealInfo,
- FlowNodeList: flowNodeListResp,
- OpButton: opButton,
- }
- this.OkDetailed(resp, "获取成功")
- }
- // @Title 作废合同
- // @Description 作废合同接口
- // @Param request body seal.InvalidReq true "type json string"
- // @Success Ret=200 作废成功
- // @router /invalid [post]
- func (this *SealCommon) Invalid() {
- var req sealReq.InvalidReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
- return
- }
- //用印id
- if req.SealId <= 0 {
- this.FailWithMessage("用印id必传!", "用印id必传!")
- return
- }
- err = sealService.Invalid(req.SealId, this.AdminWx, req.IsInvalidContract)
- if err != nil {
- this.FailWithMessage("作废用印失败!", "作废用印失败,Err:"+err.Error())
- return
- }
- this.OkWithMessage("作废成功")
- return
- }
- // @Title 根据客户名称获取已存在系统中客户名称列表
- // @Description 获取合同详情接口
- // @Param CompanyName query string true "客户名称"
- // @Success 200 {object} []string
- // @router /company_list [get]
- func (this *SealCommon) CompanyList() {
- companyName := this.GetString("CompanyName")
- //合同id
- if companyName == "" {
- this.FailWithMessage("客户名称必传!", "客户名称必传!")
- return
- }
- companyNameList := make([]string, 0)
- list, err := seal.GetCompanyNameList(companyName)
- if err != nil {
- this.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
- return
- }
- for _, v := range list {
- companyNameList = append(companyNameList, v.CompanyName)
- }
- this.OkDetailed(companyNameList, "获取成功")
- }
|