package oilsupplier import ( "dashoo.cn/backend/api/business/audithistory" "dashoo.cn/backend/api/business/auditsetting" "dashoo.cn/backend/api/business/oilsupplier/tableheader" "dashoo.cn/business2/parameter" "encoding/json" "strconv" "strings" "time" "dashoo.cn/backend/api/business/oilsupplier/qualchange" "dashoo.cn/backend/api/business/oilsupplier/suppliercert" "dashoo.cn/backend/api/business/oilsupplier/supplierfile" "dashoo.cn/business2/permission" "dashoo.cn/backend/api/business/oilsupplier/annualaudit" "dashoo.cn/backend/api/business/oilsupplier/supplier" "dashoo.cn/backend/api/business/workflow" "dashoo.cn/backend/api/business/baseUser" "dashoo.cn/business2/userRole" . "dashoo.cn/backend/api/controllers" "dashoo.cn/utils" ) type QualChangeController struct { BaseController } type QualShenHeModel struct { QualId int SuccessStatus int AuditorRemark string SuppId int } // @Title 获取列表 // @Description get user by token // @Success 200 {object} []supplier.OilSupplierView // @router /list [get] func (this *QualChangeController) GetEntityList() { //获取分页信息 page := this.GetPageInfoForm() where := " b.Status >= 1 " //where := " b.Status >= 7 " orderby := "a.CreateOn desc" Order := this.GetString("Order") Prop := this.GetString("Prop") if Order != "" && Prop != "" { orderby = Prop + " " + Order } CommercialNo := this.GetString("CommercialNo") AccessCardNo := this.GetString("AccessCardNo") SupplierName := this.GetString("SupplierName") CreateOn := this.GetString("CreateOn") if CommercialNo != "" { where = where + " and a.CommercialNo like '%" + CommercialNo + "%'" } if AccessCardNo != "" { where = where + " and b.AccessCardNo like '%" + AccessCardNo + "%'" } if SupplierName != "" { where = where + " and a.SupplierName like '%" + SupplierName + "%'" } if CreateOn != "" { dates := strings.Split(CreateOn, ",") if len(dates) == 2 { minDate := dates[0] maxDate := dates[1] where = where + " and a.CreateOn>='" + minDate + "' and a.CreateOn<='" + maxDate + "'" } } //企业用户必须加创建人条件 if this.User.IsCompanyUser == 1 { where = where + " and a.CreateUserId = '" + this.User.Id + "'" } else { //超级管理员和有查看所有数据权限的用户不加条件 svcPerm := permission.GetPermissionService(utils.DBE) isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord") if !svcPerm.IsAdmin(this.User.Id) && !isauth { where = where + " and a.CreateUserId = '" + this.User.Id + "'" } } svc := qualchange.GetQualChangeService(utils.DBE) var list []qualchange.OilSupplierQual total, list := svc.GetQualPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, OilSupplierFileName, OilQualChangeMainName, orderby, where, page.CurrentPage, page.Size) var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total datainfo.PageIndex = page.CurrentPage datainfo.ItemsPerPage = page.Size this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取列表 // @Description get user by token // @Success 200 {object} []supplier.OilSupplierView // @router /mytasks [get] func (this *QualChangeController) GetMyTaskEntityList() { //获取分页信息 page := this.GetPageInfoForm() where := " 1=1 " orderby := "Id" asc := false Order := this.GetString("Order") Prop := this.GetString("Prop") if Order != "" && Prop != "" { orderby = Prop if Order == "asc" { asc = true } } SupplierTypeName := this.GetString("SupplierTypeName") RecUnitId := this.GetString("RecUnitId") AccessCardNo := this.GetString("AccessCardNo") SupplierName := this.GetString("SupplierName") CreateOn := this.GetString("CreateOn") if SupplierTypeName != "" { where = where + " and SupplierTypeName like '%" + SupplierTypeName + "%'" } if RecUnitId != "" { where = where + " and RecUnitId like '%" + RecUnitId + "%'" } if AccessCardNo != "" { where = where + " and AccessCardNo like '%" + AccessCardNo + "%'" } if SupplierName != "" { where = where + " and SupplierName like '%" + SupplierName + "%'" } if CreateOn != "" { dates := strings.Split(CreateOn, ",") if len(dates) == 2 { minDate := dates[0] maxDate := dates[1] where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'" } } //找出待办任务 actisvc := workflow.GetActivitiService(utils.DBE) certIdList := actisvc.GetMyTasks(workflow.OIL_INFO_CHANGE, this.User.Id) appendIdarr := strings.Split(certIdList, ",") for i, item := range appendIdarr { idx := strings.Index(item, "-") if idx >= 0 { appendIdarr[i] = strings.Split(item, "-")[0] } } certIdList = strings.Join(appendIdarr, ",") svc := qualchange.GetQualChangeService(utils.DBE) var list []qualchange.OilQualChangeMain var total int64 = 0 if certIdList != "" { where += " and Id in (" + certIdList + ")" where += " and Status != -2 " total = svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, asc, &list, where) } var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total datainfo.PageIndex = page.CurrentPage datainfo.ItemsPerPage = page.Size this.Data["json"] = &datainfo this.ServeJSON() } // @Title 资质文件 // @Description get user by token // @Success 200 {object} models.Userblood // @router /filelist [get] func (this *QualChangeController) FileList() { page := this.GetPageInfoForm() var list []qualchange.OilQualChangeDetail svc := qualchange.GetQualChangeService(utils.DBE) where := " 1=1 and a.IsDelete = 0" orderby := "a.SupplierTypeCode,a.Id" asc := true Order := this.GetString("Order") Prop := this.GetString("Prop") if Order != "" && Prop != "" { orderby = Prop if Order == "asc" { asc = true } } SupplierId := this.GetString("SupplierId") MInfoId := this.GetString("MInfoId") if SupplierId != "" { where = where + " and a.SupplierId = '" + SupplierId + "'" } SupplierTypeCode := this.GetString("SupplierTypeCode") if SupplierTypeCode != "" { where = where + " and a.SupplierTypeCode in ( '000', '" + SupplierTypeCode + "')" } var total int64 AuditStatus := this.GetString("Status") if AuditStatus == "8" { total = svc.GetQualPagingEntitiesStatus(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId) } else { total = svc.GetQualPagingEntities(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId) } var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title 添加 // @Description 新增信息变更 // @Success 200 {object} controllers.Request // @router /addqualmain [post] func (this *QualChangeController) AddQualMain() { SupplierId := this.GetString("SupplierId") Remark := this.GetString("Remark") var qualchmain qualchange.OilQualChangeMain var errinfo ErrorDataInfo qualchmain.SupplierId, _ = strconv.Atoi(SupplierId) qualchmain.Remark = Remark qualchmain.CreateOn = time.Now() qualchmain.CreateBy = this.User.Realname qualchmain.CreateUserId, _ = utils.StrTo(this.User.Id).Int() svc := qualchange.GetQualChangeService(utils.DBE) _, err := svc.InsertEntityBytbl(OilQualChangeMainName, &qualchmain) if err == nil { errinfo.Message = "添加成功!" errinfo.Code = 0 errinfo.Item = qualchmain.Id this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "添加失败!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 资质文件 // @Description get user by token // @Success 200 {object} models.Userblood // @router /auditfilelist [get] func (this *QualChangeController) AuditFileList() { page := this.GetPageInfoForm() var list []qualchange.OilQualChangeDetail1 svc := qualchange.GetQualChangeService(utils.DBE) where := " 1=1" orderby := "a.Id" asc := true Order := this.GetString("Order") Prop := this.GetString("Prop") if Order != "" && Prop != "" { orderby = Prop if Order == "asc" { asc = true } } SupplierId := this.GetString("SupplierId") MInfoId := this.GetString("MInfoId") if SupplierId != "" { where = where + " and a.SupplierId = '" + SupplierId + "'" } SupplierTypeCode := this.GetString("SupplierTypeCode") if SupplierTypeCode != "" { where = where + " and a.SupplierTypeCode in ( '000', '" + SupplierTypeCode + "')" } where = where + " and a.IsDelete = 0" var total int64 AuditStatus := this.GetString("Status") if AuditStatus == "8" { total = svc.GetQualPagingEntitiesStatus(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId) } else { total = svc.GetQualPagingEntities(OilSupplierFileName, OilQualChangeDetailName, page.CurrentPage, page.Size, orderby, asc, &list, where, MInfoId) } var datainfo DataInfo datainfo.Items = list datainfo.CurrentItemCount = total this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取年审企业名称 // @Description 获取实体 // @Success 200 {object} annualaudit.OilAnnualAudit // @router /supplierlist [get] func (this *QualChangeController) GetSupplierList() { svc := annualaudit.GetOilAnnualAuditService(utils.DBE) var supplierlist []annualaudit.Suppliername supplierlist = svc.GetSupplierList(""+OilSupplierName, ""+OilAnnualAuditName) var datainfo DataInfo datainfo.Items = supplierlist this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取字典列表 // @Description get user by token // @Success 200 {object} map[string]interface{} // @router /dictlist [get] func (this *QualChangeController) GetDictList() { dictList := make(map[string]interface{}) //dictSvc := items.GetItemsService(utils.DBE) userSvc := baseUser.GetBaseUserService(utils.DBE) //customerSvc := svccustomer.GetCustomerService(utils.DBE) //dictList["WellNo"] = dictSvc.GetKeyValueItems("WellNo", "") var userEntity userRole.Base_User userSvc.GetEntityById(this.User.Id, &userEntity) dictList["Supervisers"] = userSvc.GetUserListByDepartmentId("", userEntity.Departmentid) //var dictCustomer []svccustomer.Customer //customerSvc.GetEntitysByWhere("" + CustomerName, "", &dictCustomer) //dictList["EntrustCorp"] = &dictCustomer var datainfo DataInfo datainfo.Items = dictList this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取实体 // @Description 获取实体 // @Success 200 {object} annualaudit.OilAnnualAudit // @router /get/:id [get] func (this *QualChangeController) GetEntity() { Id := this.Ctx.Input.Param(":id") var model annualaudit.OilAnnualAudit svc := annualaudit.GetOilAnnualAuditService(utils.DBE) svc.GetEntityByIdBytbl(""+OilAnnualAuditName, Id, &model) this.Data["json"] = &model this.ServeJSON() } // @Title 添加 // @Description 新增 // @Success 200 {object} controllers.Request // @router /add [post] func (this *QualChangeController) AddEntity() { var model annualaudit.OilAnnualAudit var errinfo ErrorDataInfo var jsonBlob = this.Ctx.Input.RequestBody svc := annualaudit.GetOilAnnualAuditService(utils.DBE) json.Unmarshal(jsonBlob, &model) where := "SupplierId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName var auditentity []annualaudit.OilAnnualAudit svc.GetEntitysByWhere(""+OilAnnualAuditName, where, &auditentity) if len(auditentity) == 1 { errinfo.Message = "已提交年审,请勿重复提交!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } supwhere := "a.Id = " + utils.ToStr(model.SupplierId) + " and b.SupplierTypeCode = " + model.SupplierTypeName supsvc := supplier.GetOilSupplierService(utils.DBE) var list []supplier.OilSupplierView total := supsvc.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 1, 1, "a.Id", true, &list, supwhere) if total == 0 { errinfo.Message = "请先提交准入申请再提交年审!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } var suppliermodel supplier.OilSupplierView suppliermodel = list[0] model.RecUnitId = suppliermodel.RecUnitId model.CerId, _ = strconv.Atoi(suppliermodel.CertId) model.Status = "0" model.BackReason = suppliermodel.BackReason //svc.GetEntitysByWhere(""+OilSupplierName, supwhere, &supplierlist) model.CreateOn = time.Now() model.CreateBy = this.User.Realname model.CreateUserId, _ = utils.StrTo(this.User.Id).Int() //model.OrganizeId, _ = utils.StrTo(this.User.DepartmentId).Int() _, err := svc.InsertEntityBytbl(""+OilAnnualAuditName, &model) annualId := model.Id //工作流开始 processInstanceId, _ := svc.SubmitOrgAudit("", model.WorkflowId, utils.ToStr(model.CerId), utils.ToStr(model.Id), workflow.OIL_AUDIT_APPLY, workflow.FIRST_TRIAL, this.User.Id, "1", "提交给二级单位初审", OilSupplierCertSubName, OilClassOrgSettingName) var auditmodel annualaudit.OilAnnualAudit auditmodel.WorkflowId = processInstanceId cols := []string{ "Id", "WorkflowId", } svc.UpdateEntityByIdCols(annualId, auditmodel, cols) if err == nil { //新增 errinfo.Message = "添加成功!" errinfo.Code = 0 errinfo.Item = model.Id this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 修改实体 // @Description 修改实体 // @Success 200 {object} controllers.Request // @router /update/:id [post] func (this *QualChangeController) UpdateEntity() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var model annualaudit.OilAnnualAudit svc := annualaudit.GetOilAnnualAuditService(utils.DBE) var jsonBlob = this.Ctx.Input.RequestBody json.Unmarshal(jsonBlob, &model) model.ModifiedOn = time.Now() model.ModifiedBy = this.User.Realname model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() cols := []string{ "Id", "Code", "Name", "F01", "F02", "F03", "F04", "F05", "F06", "F07", "F25", "Remark", "DeletionStateCode", "CreateOn", "CreateUserId", "CreateBy", "ModifiedOn", "ModifiedUserId", "ModifiedBy", } err := svc.UpdateEntityBytbl(""+OilAnnualAuditName, id, &model, cols) if err == nil { errinfo.Message = "修改成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 资质文件变更上传 // @Description 更新文件上传 // @Param id path string true // @Success 200 {object} // @router /editqualchange/:id [put] func (this *QualChangeController) EditQualChange() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var model qualchange.OilQualChangeDetail var jsonblob = this.Ctx.Input.RequestBody svc := qualchange.GetQualChangeService(utils.DBE) json.Unmarshal(jsonblob, &model) if strings.ReplaceAll(model.FileUrl, " ", "") == "" { errinfo.Message = "资质文件地址错误,请重新上传!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } model.FileUrl = strings.Trim(model.FileUrl, "$") model.FileName = strings.Trim(model.FileName, "$") model.OldFileUrl = strings.Trim(model.OldFileUrl, "$") model.OldFileName = strings.Trim(model.OldFileName, "$") var supplierfile supplierfile.OilSupplierFile svc.GetEntityByIdBytbl(OilSupplierFileName, model.Id, &supplierfile) if supplierfile.FileUrl == "" { //区别 更新前和更新后文件 supplierfile.FileUrl = strings.Trim(model.FileUrl, "$") supplierfile.FileName = strings.Trim(model.FileName, "$") supplierfile.EffectDate = model.EffectDate } supplierfile.ModifiedOn = time.Now() supplierfile.ModifiedUserId, _ = strconv.Atoi(this.User.Id) supplierfile.ModifiedBy = this.User.Realname supplierfile.OtherRemark = model.Remark svc.UpdateEntityBywheretbl(OilSupplierFileName, &supplierfile, []string{"EffectDate", "FileUrl", "FileName", "ModifiedOn", "ModifiedUserId", "ModifiedBy", "OtherRemark"}, "Id = "+strconv.Itoa(model.Id)) var err error var entity qualchange.OilQualChangeDetail var qualdetaimodel []qualchange.OilQualChangeDetail var mainentirt qualchange.OilQualChangeMain var qualmain []qualchange.OilQualChangeMain qmwhere := " SupplierId = " + utils.ToStr(model.SupplierId) svc.GetEntitysByWhere(OilQualChangeMainName, qmwhere, &qualmain) mainentirt.SupplierCertId = model.SupplierCertId mainentirt.Status = "0" mainentirt.Step = 1 err = svc.UpdateEntityBywheretbl(OilQualChangeMainName, &mainentirt, []string{"SupplierCertId", "Status", "Step"}, qmwhere) qdwhere := " SupplierId = " + utils.ToStr(model.SupplierId) + " and FileId = " + utils.ToStr(model.Id) + " and ParentId=" + id svc.GetEntitysByWhere(OilQualChangeDetailName, qdwhere, &qualdetaimodel) entity = model entity.Id = 0 entity.ParentId, _ = strconv.Atoi(id) entity.SupplierCertId = model.SupplierCertId entity.FileId = model.Id if len(qualdetaimodel) == 0 { entity.CreateOn = time.Now() entity.CreateBy = this.User.Realname entity.CreateUserId, _ = utils.StrTo(this.User.Id).Int() _, err = svc.InsertEntityBytbl(OilQualChangeDetailName, &entity) } else { err = svc.UpdateEntityBywheretbl(OilQualChangeDetailName, &entity, []string{"EffectDate", "FileUrl", "FileName", "OtherRemark"}, qdwhere) } if err == nil { errinfo.Message = "操作成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 信息变更添加资质 // @Description 信息变更添加资质 // @Success 200 {object} // @router /addqualchange/:id [post] func (this *QualChangeController) AddQualChange() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var model qualchange.OilQualChangeDetail var jsonblob = this.Ctx.Input.RequestBody json.Unmarshal(jsonblob, &model) if strings.ReplaceAll(model.FileUrl, " ", "") == "" { errinfo.Message = "资质文件地址错误,请重新上传!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } svc := qualchange.GetQualChangeService(utils.DBE) var supplierfile supplierfile.OilSupplierFile where := "SupplierId = '" + strconv.Itoa(model.SupplierId) + "' and NeedFileType='" + model.NeedFileType + "' and SupplierTypeCode in ( '000', '" + model.SupplierTypeCode + "')" has := svc.GetEntity(&supplierfile, where) var tableHeader tableheader.BaseTableheader where1 := "Name = '" + model.NeedFileType + "'" svc.GetEntityByWhere(BaseTableHeader, where1, &tableHeader) if has { errinfo.Message = "操作失败!该资质已添加!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } supplierfile.SupplierId = model.SupplierId supplierfile.SupplierTypeCode = model.SupplierTypeCode supplierfile.IsManuf = tableHeader.IsManuf supplierfile.NeedFileType = model.NeedFileType supplierfile.FileType = 1 supplierfile.SupType = 4 supplierfile.CreateOn = time.Now() supplierfile.CreateUserId, _ = strconv.Atoi(this.User.Id) supplierfile.CreateBy = this.User.Realname supplierfile.FileUrl = strings.Trim(model.FileUrl, "$") supplierfile.FileName = strings.Trim(model.FileName, "$") supplierfile.EffectDate = model.EffectDate supplierfile.OtherRemark = model.Remark svc.InsertEntity(&supplierfile) model.ParentId, _ = strconv.Atoi(id) model.FileId = supplierfile.Id model.FileUrl = strings.Trim(model.FileUrl, "$") model.FileName = strings.Trim(model.FileName, "$") var err error var qualdetaimodel []qualchange.OilQualChangeDetail qdwhere := " SupplierId = " + utils.ToStr(model.SupplierId) + " and FileId = " + utils.ToStr(supplierfile.Id) + " and ParentId=" + id svc.GetEntitysByWhere(OilQualChangeDetailName, qdwhere, &qualdetaimodel) if len(qualdetaimodel) == 0 { model.CreateOn = time.Now() model.CreateBy = this.User.Realname model.CreateUserId, _ = utils.StrTo(this.User.Id).Int() _, err = svc.InsertEntityBytbl(OilQualChangeDetailName, &model) } else { err = svc.UpdateEntityBywheretbl(OilQualChangeDetailName, &model, []string{"OldEffectDate", "FileUrl", "FileName", "OtherRemark"}, qdwhere) } if err == nil { errinfo.Message = "操作成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 提交审批 // @Description 提交审批 // @Success 200 {object} controllers.Request // @router /audit/:id [post] func (this *QualChangeController) AuditEntity() { suppId := this.Ctx.Input.Param(":id") firstAudit := this.GetString("auditer") fushenauditer := this.GetString("fushenauditer") Remark := this.GetString("Remark") //取出审批列表 svc := qualchange.GetQualChangeService(utils.DBE) var suppentity supplier.OilSupplier //供方信息 svc.GetEntityById(suppId, &suppentity) var qualmain qualchange.OilQualChangeMain where := " SupplierId = " + suppId svc.GetEntity(&qualmain, where) var errinfo ErrorDataInfo defer func() { //finally处理失败的异常 if err := recover(); err != nil { errinfo.Message = "提交失败," + err.(string) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } else { //返回正确结果 errinfo.Message = "审核提交成功" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } }() svcActiviti := workflow.GetActivitiService(utils.DBE) processInstanceId := "" businessKey := "" if qualmain.WorkFlowId == "0" || len(qualmain.WorkFlowId) <= 0 { //启动工作流 businessKey = utils.ToStr(qualmain.Id) + "-" + strconv.Itoa(qualmain.AuditIndex) processInstanceId = svcActiviti.StartProcess(workflow.OIL_INFO_CHANGE, businessKey, this.User.Id) } var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_INFO_CHANGE ActiComplete.BusinessKey = businessKey ActiComplete.UserNames = firstAudit ActiComplete.UserId = this.User.Id ActiComplete.Result = "1" ActiComplete.Remarks = Remark ActiComplete.CallbackUrl = "" receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal == "true" { //记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态 var qualmainmodel qualchange.OilQualChangeMain qualmainmodel.WorkFlowId = processInstanceId qualmainmodel.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审 qualmainmodel.AuditIndex = qualmain.AuditIndex + 1 qualmainmodel.FirstAudit, _ = strconv.Atoi(firstAudit) qualmainmodel.SecondAudit, _ = strconv.Atoi(fushenauditer) qualmainmodel.BusinessKey = ActiComplete.BusinessKey qualmainmodel.CreateOn = time.Now() qualmainmodel.CreateBy = this.User.Realname qualmainmodel.CreateUserId, _ = utils.StrTo(this.User.Id).Int() qualmainmodel.SupplierName = suppentity.SupplierName qualmainmodel.CommercialNo = suppentity.CommercialNo cols := []string{ "Id", "WorkflowId", "Status", "Step", "AuditIndex", "FirstAudit", "SecondAudit", "BusinessKey", "CreateOn", "CreateBy", "CreateUserId", "SupplierName", "CommercialNo", } _, err := svc.UpdateEntityByIdCols(qualmain.Id, qualmainmodel, cols) if err == nil { errinfo.Message = "提交成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "提交失败!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } else { errinfo.Message = "工作流异常,请联系管理员!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } // @Title 审批 // @Description 审批 // @Success 200 {object} controllers.Request // @router /qualaudit [post] func (this *QualChangeController) QualAudit() { svc := qualchange.GetQualChangeService(utils.DBE) var jsonblob = this.Ctx.Input.RequestBody var dataother QualShenHeModel json.Unmarshal(jsonblob, &dataother) //取出审批列表 var qualid = dataother.QualId var qualmodel qualchange.OilQualChangeMain svc.GetEntityById(utils.ToStr(dataother.QualId), &qualmodel) var qualdetail []qualchange.OilQualChangeDetail where := "ParentId = " + utils.ToStr(qualid) svc.GetEntities(&qualdetail, where) var errinfo ErrorDataInfo defer func() { //finally处理失败的异常 if err := recover(); err != nil { errinfo.Message = "提交失败," + err.(string) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } else { //返回正确结果 errinfo.Message = "审核提交成功" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } }() //审核状态判断进行的操作 step := 2 status := "" backstatus := "0" var userIds string if qualmodel.Status == suppliercert.FIRST_TRIAL_STATUS { userIds = utils.ToStr(qualmodel.SecondAudit) status = suppliercert.SECOND_TRIAL_STATUS step = 2 backstatus = suppliercert.NOPASS_STATUS } else if qualmodel.Status == suppliercert.SECOND_TRIAL_STATUS { status = suppliercert.CENT_AUDIT_STATUS backstatus = suppliercert.NO_SECOND_TRIAL_STATUS step = 2 //dictSvc := items.GetItemsService(utils.DBE) //deptIds := dictSvc.GetKeyValueItems("CENT_AUDIT") //var users []userRole.Base_RoleList //certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) //for _, dept := range deptIds { // certSrv.GetAuditUser(dept.Value, workflow.PROF_REGULATION, &users) // for _, tmpUser := range users { // userIds += strconv.FormatInt(tmpUser.Id, 10) + "," // } //} paramSvc := baseparameter.GetBaseparameterService(utils.DBE) topid := paramSvc.GetBaseparameterMessage("", "paramset", "CENT_AUDIT") var userlist []userRole.Base_User var setting auditsetting.Base_OilAuditSetting usvc := userRole.GetUserService(utils.DBE) where := "AuditStepCode='" + workflow.PROF_REGULATION + "'" svc.GetEntity(&setting, where) ids := usvc.GetUserIdsByRoleId(strconv.Itoa(setting.RoleId)) tempstr := strings.Join(ids, ",") uids := strings.Replace(tempstr, "uid_", "", -1) uids = strings.Trim(uids, ",") if uids != "" { where := "Id in (" + uids + ")" + " and UnitId=" + topid svc.GetEntities(&userlist, where) } for _, tmpUser := range userlist { userIds += strconv.Itoa(tmpUser.Id) + "," } userIds = strings.Trim(userIds, ",") } else if qualmodel.Status == suppliercert.CENT_AUDIT_STATUS { status = suppliercert.ALL_PASE_STATUS step = 3 backstatus = suppliercert.NO_THIRD_TRIAL_STATUS } svcActiviti := workflow.GetActivitiService(utils.DBE) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_INFO_CHANGE ActiComplete.BusinessKey = qualmodel.BusinessKey ActiComplete.UserNames = userIds ActiComplete.UserId = this.User.Id ActiComplete.Remarks = dataother.AuditorRemark ActiComplete.CallbackUrl = "" var myerr error if dataother.SuccessStatus == 1 { ActiComplete.Result = "1" receiveVal := svcActiviti.TaskComplete(ActiComplete) qualmodel.Status = status qualmodel.Step = step if receiveVal == "true" { cols := []string{ "Id", "Status", "Step", } _, err := svc.UpdateEntityByIdCols(qualid, qualmodel, cols) if err == nil { //原信息表更新 if qualmodel.Status == suppliercert.CENT_AUDIT_STATUS { if len(qualdetail) > 0 { for i := 0; i < len(qualdetail); i++ { var supfilemodel supplierfile.OilSupplierFile supfilemodel.FileName = qualdetail[i].FileName supfilemodel.FileUrl = qualdetail[i].FileUrl supfilemodel.EffectDate = qualdetail[i].EffectDate err = svc.UpdateEntityBytbl(OilSupplierFileName, qualdetail[i].FileId, &supfilemodel, []string{"FileName", "FileUrl", "EffectDate"}) } } } if myerr == nil { errinfo.Message = "提交成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "提交失败!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } else { errinfo.Message = "工作流异常,请联系管理员!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } else { ActiComplete.Result = "0" receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal == "true" { if qualmodel.Status == suppliercert.CENT_AUDIT_STATUS { qualmodel.Status = backstatus } else { qualmodel.Status = backstatus // 审批历史 var audithistoryentity audithistory.Base_AuditHistory audithistoryentity.EntityId = qualid audithistoryentity.WorkflowId = qualmodel.WorkFlowId audithistoryentity.Process = ActiComplete.ProcessKey audithistoryentity.BusinessKey = ActiComplete.BusinessKey audithistoryentity.Type = "04" audithistoryentity.BackStep = qualmodel.Status audithistoryentity.Index = qualmodel.AuditIndex audithistoryentity.CreateOn = time.Now() audithistoryentity.CreateBy = this.User.Realname audithistoryentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int() _, myerr = svc.InsertEntity(audithistoryentity) qualmodel.WorkFlowId = "" } qualmodel.Step = 1 cols := []string{ "Status", "Step", } _, myerr := svc.UpdateEntityByIdCols(qualid, qualmodel, cols) if myerr == nil { errinfo.Message = "提交成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "提交失败!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } else { errinfo.Message = "工作流异常,请联系管理员!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } } }