|
@@ -28,7 +28,7 @@ type ContractApprovalCommon struct {
|
|
|
// @Param Keyword query string false "搜索关键字"
|
|
|
// @Param ModifyStartTime query string false "服务更新时间的选择开始时间,格式:2021-05-23 00:00:00"
|
|
|
// @Param ModifyEndTime query string false "服务更新时间的选择结束时间,格式:2021-05-26 23:59:59"
|
|
|
-// @Success 200 {object} response.ContractApprovalListResp
|
|
|
+// @Success 200 {object} contract.ContractApprovalListResp
|
|
|
// @router /list [get]
|
|
|
func (this *ContractApprovalCommon) List() {
|
|
|
sysUser := this.AdminWx
|
|
@@ -205,10 +205,9 @@ func (this *ContractApprovalCommon) List() {
|
|
|
// @Title 审批单详情
|
|
|
// @Description 审批单详情接口
|
|
|
// @Param ContractApprovalId query int false "审批单id"
|
|
|
-// @Success 200 {object} response.ContractApprovalListResp
|
|
|
+// @Success 200 {object} contract.ContractDetailResp
|
|
|
// @router /detail [get]
|
|
|
func (this *ContractApprovalCommon) Detail() {
|
|
|
-
|
|
|
//审批单id
|
|
|
contractApprovalId, _ := this.GetInt("ContractApprovalId")
|
|
|
|
|
@@ -218,13 +217,67 @@ func (this *ContractApprovalCommon) Detail() {
|
|
|
this.FailWithMessage("获取审批单失败!", "获取审批单失败,Err:"+err.Error())
|
|
|
return
|
|
|
}
|
|
|
- var contractDetail contract.ContractDetail
|
|
|
+ var contractDetail contractResp.ContractDetail
|
|
|
jsonErr := json.Unmarshal([]byte(contractApprovalInfo.ContractDetail), &contractDetail)
|
|
|
if jsonErr != nil {
|
|
|
this.FailWithMessage("审批合同数据转换失败!", "审批合同数据转换失败,Err:"+jsonErr.Error())
|
|
|
return
|
|
|
}
|
|
|
- this.OkDetailed(contractDetail, "获取成功")
|
|
|
+
|
|
|
+ //合同详情
|
|
|
+ contractInfo, err := contract.GetContractById(contractApprovalInfo.ContractId)
|
|
|
+ if err != nil {
|
|
|
+ this.FailWithMessage("获取合同详情失败!", "获取合同详情失败,Err:"+err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //替换快照数据
|
|
|
+ contractDetail.Status = contractInfo.Status
|
|
|
+ contractDetail.FileUrl = contractInfo.FileUrl
|
|
|
+
|
|
|
+ //审批操作权限,上传签回文件权限
|
|
|
+ var contractOpButton contractResp.ContractOpButton
|
|
|
+
|
|
|
+ //审批流
|
|
|
+ approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalId(contractApprovalId)
|
|
|
+ if err != nil {
|
|
|
+ this.FailWithMessage("获取审批失败!", "获取审批失败,Err:"+err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ flowNodeMap := make(map[int][]contract_approval_record.ContractApprovalRecord, 0)
|
|
|
+ keySort := make([]int, 0)
|
|
|
+ for _, approvalRecord := range approvalRecordList {
|
|
|
+ //如果当前节点正好是该节点,同时审批单状态是待审批状态,然后当前账号又有权限,该账号也正是审批人,那么允许审批操作
|
|
|
+ if contractApprovalInfo.CurrNodeId == approvalRecord.NodeId && contractApprovalInfo.Status == "待审批" {
|
|
|
+ if this.AdminWx.AdminId == approvalRecord.ApproveUserId && approvalRecord.NodeType == "check" {
|
|
|
+ contractOpButton.ApprovalButton = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if tmpFlowNodeList, ok := flowNodeMap[approvalRecord.NodeId]; ok {
|
|
|
+ flowNodeMap[approvalRecord.NodeId] = append(tmpFlowNodeList, *approvalRecord)
|
|
|
+ } else {
|
|
|
+ tmpFlowNodeList := make([]contract_approval_record.ContractApprovalRecord, 1)
|
|
|
+ tmpFlowNodeList[0] = *approvalRecord
|
|
|
+ flowNodeMap[approvalRecord.NodeId] = tmpFlowNodeList
|
|
|
+
|
|
|
+ keySort = append(keySort, approvalRecord.NodeId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ flowNodeListResp := make([][]contract_approval_record.ContractApprovalRecord, 0)
|
|
|
+ for _, key := range keySort {
|
|
|
+ flowNodeListResp = append(flowNodeListResp, flowNodeMap[key])
|
|
|
+ }
|
|
|
+
|
|
|
+ uploadStatus := []string{"已审批", "已签回"}
|
|
|
+ if this.AdminWx.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE && strings.Contains(strings.Join(uploadStatus, ","), contractInfo.Status) {
|
|
|
+ contractOpButton.UploadFileButton = true
|
|
|
+ }
|
|
|
+ resp := contractResp.ContractDetailResp{
|
|
|
+ ContractDetail: contractDetail,
|
|
|
+ FlowNodeList: flowNodeListResp,
|
|
|
+ ContractOpButton: contractOpButton,
|
|
|
+ }
|
|
|
+ this.OkDetailed(resp, "获取成功")
|
|
|
}
|
|
|
|
|
|
// @Title 驳回审批
|
|
@@ -239,20 +292,35 @@ func (this *ContractApprovalCommon) Reject() {
|
|
|
this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
|
|
|
return
|
|
|
}
|
|
|
- //审批流id编号
|
|
|
- contractApprovalRecordId := req.ContractApprovalRecordId
|
|
|
- if contractApprovalRecordId <= 0 {
|
|
|
- this.FailWithMessage("请传入审批流编号!", "请传入审批流编号")
|
|
|
+ //审批单id编号
|
|
|
+ contractApprovalId := req.ApprovalId
|
|
|
+ if contractApprovalId <= 0 {
|
|
|
+ this.FailWithMessage("请传入审批单编号!", "请传入审批单编号!")
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- //获取审批流信息
|
|
|
- contractApprovalRecord, err := contract_approval_record.GetContractApprovalRecordById(contractApprovalRecordId)
|
|
|
+ //审批单详情
|
|
|
+ approvalInfo, err := contract_approval.GetContractApprovalById(contractApprovalId)
|
|
|
+ if err != nil {
|
|
|
+ this.FailWithMessage("获取审批单失败!", "获取审批单失败,Err:"+err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //审批流
|
|
|
+ approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalIdAndNodeId(contractApprovalId, approvalInfo.CurrNodeId)
|
|
|
if err != nil {
|
|
|
- this.FailWithMessage("获取审批流信息失败!", "获取审批流信息失败,Err:"+err.Error())
|
|
|
+ this.FailWithMessage("获取审批失败!", "获取审批失败,Err:"+err.Error())
|
|
|
return
|
|
|
}
|
|
|
- err = contractService.Reject(contractApprovalRecord, this.AdminWx, req.Remark)
|
|
|
+ var approvalRecord *contract_approval_record.ContractApprovalRecord
|
|
|
+ for _, tmpApprovalRecord := range approvalRecordList {
|
|
|
+ if tmpApprovalRecord.NodeType == "check" && tmpApprovalRecord.ApproveUserId == this.AdminWx.AdminId {
|
|
|
+ approvalRecord = tmpApprovalRecord
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if approvalRecord == nil {
|
|
|
+ this.FailWithMessage("当前账号没有审批权限", "当前账号没有审批权限")
|
|
|
+ }
|
|
|
+ err = contractService.Reject(approvalRecord, this.AdminWx, req.Remark)
|
|
|
if err != nil {
|
|
|
this.FailWithMessage("驳回审批失败!", "驳回审批失败,Err:"+err.Error())
|
|
|
return
|
|
@@ -273,20 +341,35 @@ func (this *ContractApprovalCommon) Approved() {
|
|
|
this.FailWithMessage("参数解析异常!", "参数解析失败,Err:"+err.Error())
|
|
|
return
|
|
|
}
|
|
|
- //审批流id编号
|
|
|
- contractApprovalRecordId := req.ContractApprovalRecordId
|
|
|
- if contractApprovalRecordId <= 0 {
|
|
|
- this.FailWithMessage("请传入审批流编号!", "请传入审批流编号")
|
|
|
+ //审批单id编号
|
|
|
+ contractApprovalId := req.ApprovalId
|
|
|
+ if contractApprovalId <= 0 {
|
|
|
+ this.FailWithMessage("请传入审批单编号!", "请传入审批单编号!")
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- //获取审批流信息
|
|
|
- contractApprovalRecord, err := contract_approval_record.GetContractApprovalRecordById(contractApprovalRecordId)
|
|
|
+ //审批单详情
|
|
|
+ approvalInfo, err := contract_approval.GetContractApprovalById(contractApprovalId)
|
|
|
+ if err != nil {
|
|
|
+ this.FailWithMessage("获取审批单失败!", "获取审批单失败,Err:"+err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //审批流
|
|
|
+ approvalRecordList, err := contract_approval_record.GetContractApprovalRecordListByContractApprovalIdAndNodeId(contractApprovalId, approvalInfo.CurrNodeId)
|
|
|
if err != nil {
|
|
|
- this.FailWithMessage("获取审批流信息失败!", "获取审批流信息失败,Err:"+err.Error())
|
|
|
+ this.FailWithMessage("获取审批失败!", "获取审批失败,Err:"+err.Error())
|
|
|
return
|
|
|
}
|
|
|
- err = contractService.Approved(contractApprovalRecord, this.AdminWx, req.Remark)
|
|
|
+ var approvalRecord *contract_approval_record.ContractApprovalRecord
|
|
|
+ for _, tmpApprovalRecord := range approvalRecordList {
|
|
|
+ if tmpApprovalRecord.NodeType == "check" && tmpApprovalRecord.ApproveUserId == this.AdminWx.AdminId {
|
|
|
+ approvalRecord = tmpApprovalRecord
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if approvalRecord == nil {
|
|
|
+ this.FailWithMessage("当前账号没有审批权限", "当前账号没有审批权限")
|
|
|
+ }
|
|
|
+ err = contractService.Approved(approvalRecord, this.AdminWx, req.Remark)
|
|
|
if err != nil {
|
|
|
this.FailWithMessage("审核失败!", "审核失败,Err:"+err.Error())
|
|
|
return
|