package oilsupplier import ( "dashoo.cn/backend/api/business/codecsequence" msg2 "dashoo.cn/backend/api/business/msg" "dashoo.cn/backend/api/business/oilsupplier/annualaudit" "dashoo.cn/backend/api/business/oilsupplier/infochange" "dashoo.cn/backend/api/business/oilsupplier/oilactivity" "dashoo.cn/backend/api/business/oilsupplier/supplier" "dashoo.cn/backend/api/business/oilsupplier/supplierapplytime" "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend" "dashoo.cn/backend/api/business/oilsupplier/suppliercertsub" "dashoo.cn/backend/api/business/oilsupplier/supplierfile" "dashoo.cn/backend/api/business/organize" "dashoo.cn/backend/api/business/paymentinfo" baseparameter "dashoo.cn/business2/parameter" "encoding/json" "fmt" "strconv" "strings" "time" "unicode/utf8" "dashoo.cn/backend/api/business/auditsetting" "dashoo.cn/backend/api/business/workflow" "dashoo.cn/backend/api/business/baseUser" "dashoo.cn/backend/api/business/oilsupplier/suppliercert" . "dashoo.cn/backend/api/controllers" "dashoo.cn/business2/userRole" "dashoo.cn/utils" ) type OilSupplierCertController struct { BaseController } // @Title 获取列表 // @Description get user by token // @Success 200 {object} []suppliercert.OilSupplierCert // @router /list [get] func (this *OilSupplierCertController) GetEntityList() { //获取分页信息 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 } } Id := this.GetString("Id") SupplierId := this.GetString("SupplierId") AccessCardNo := this.GetString("AccessCardNo") SupplierTypeCode := this.GetString("SupplierTypeCode") SupplierTypeName := this.GetString("SupplierTypeName") RecUnitReason := this.GetString("RecUnitReason") RecUnitPerson := this.GetString("RecUnitPerson") RecDate := this.GetString("RecDate") RecUnitId := this.GetString("RecUnitId") RecUnitName := this.GetString("RecUnitName") StatusA := this.GetString("StatusA") BackReason := this.GetString("BackReason") InFlag := this.GetString("InFlag") EffectStartTime := this.GetString("EffectStartTime") EffectEndTime := this.GetString("EffectEndTime") AuditProcessNote := this.GetString("AuditProcessNote") AuditDate := this.GetString("AuditDate") PayNotice := this.GetString("PayNotice") SupplierStatus := this.GetString("SupplierStatus") MgrType := this.GetString("MgrType") Type := this.GetString("Type") MgrUnit := this.GetString("MgrUnit") AddinTime := this.GetString("AddinTime") EffectTime := this.GetString("EffectTime") ApplyTime := this.GetString("ApplyTime") SupplierNo := this.GetString("SupplierNo") MDMFlag := this.GetString("MDMFlag") InternalFlag := this.GetString("InternalFlag") ImportFlag := this.GetString("ImportFlag") OutsideFlog := this.GetString("OutsideFlog") Remark := this.GetString("Remark") IsDelete := this.GetString("IsDelete") CreateOn := this.GetString("CreateOn") CreateUserId := this.GetString("CreateUserId") CreateBy := this.GetString("CreateBy") ModifiedOn := this.GetString("ModifiedOn") ModifiedUserId := this.GetString("ModifiedUserId") ModifiedBy := this.GetString("ModifiedBy") if Id != "" { where = where + " and Id like '%" + Id + "%'" } if SupplierId != "" { where = where + " and SupplierId like '%" + SupplierId + "%'" } if AccessCardNo != "" { where = where + " and AccessCardNo like '%" + AccessCardNo + "%'" } if SupplierTypeCode != "" { where = where + " and SupplierTypeCode like '%" + SupplierTypeCode + "%'" } if SupplierTypeName != "" { where = where + " and SupplierTypeName like '%" + SupplierTypeName + "%'" } if RecUnitReason != "" { where = where + " and RecUnitReason like '%" + RecUnitReason + "%'" } if RecUnitPerson != "" { where = where + " and RecUnitPerson like '%" + RecUnitPerson + "%'" } if RecDate != "" { where = where + " and RecDate like '%" + RecDate + "%'" } if RecUnitId != "" { where = where + " and RecUnitId like '%" + RecUnitId + "%'" } if RecUnitName != "" { where = where + " and RecUnitName like '%" + RecUnitName + "%'" } if StatusA != "" { where = where + " and StatusA like '%" + StatusA + "%'" } if BackReason != "" { where = where + " and BackReason like '%" + BackReason + "%'" } if InFlag != "" { where = where + " and InFlag like '%" + InFlag + "%'" } if EffectStartTime != "" { where = where + " and EffectStartTime like '%" + EffectStartTime + "%'" } if EffectEndTime != "" { where = where + " and EffectEndTime like '%" + EffectEndTime + "%'" } if AuditProcessNote != "" { where = where + " and AuditProcessNote like '%" + AuditProcessNote + "%'" } if AuditDate != "" { where = where + " and AuditDate like '%" + AuditDate + "%'" } if PayNotice != "" { where = where + " and PayNotice like '%" + PayNotice + "%'" } if SupplierStatus != "" { where = where + " and SupplierStatus like '%" + SupplierStatus + "%'" } if MgrType != "" { where = where + " and MgrType like '%" + MgrType + "%'" } if Type != "" { where = where + " and Type like '%" + Type + "%'" } if MgrUnit != "" { where = where + " and MgrUnit like '%" + MgrUnit + "%'" } if AddinTime != "" { where = where + " and AddinTime like '%" + AddinTime + "%'" } if EffectTime != "" { where = where + " and EffectTime like '%" + EffectTime + "%'" } if ApplyTime != "" { where = where + " and ApplyTime like '%" + ApplyTime + "%'" } if SupplierNo != "" { where = where + " and SupplierNo like '%" + SupplierNo + "%'" } if MDMFlag != "" { where = where + " and MDMFlag like '%" + MDMFlag + "%'" } if InternalFlag != "" { where = where + " and InternalFlag like '%" + InternalFlag + "%'" } if ImportFlag != "" { where = where + " and ImportFlag like '%" + ImportFlag + "%'" } if OutsideFlog != "" { where = where + " and OutsideFlog like '%" + OutsideFlog + "%'" } if Remark != "" { where = where + " and Remark like '%" + Remark + "%'" } if IsDelete != "" { where = where + " and IsDelete like '%" + IsDelete + "%'" } if CreateOn != "" { where = where + " and CreateOn like '%" + CreateOn + "%'" } if CreateUserId != "" { where = where + " and CreateUserId like '%" + CreateUserId + "%'" } if CreateBy != "" { where = where + " and CreateBy like '%" + CreateBy + "%'" } if ModifiedOn != "" { where = where + " and ModifiedOn like '%" + ModifiedOn + "%'" } if ModifiedUserId != "" { where = where + " and ModifiedUserId like '%" + ModifiedUserId + "%'" } if ModifiedBy != "" { where = where + " and ModifiedBy like '%" + ModifiedBy + "%'" } if CreateOn != "" { dates := strings.Split(CreateOn, ",") if len(dates) == 2 { minDate := dates[0] maxDate := dates[1] where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'" } } svc := suppliercert.GetOilSupplierCertService(utils.DBE) var list []suppliercert.OilSupplierCert total := svc.GetPagingEntitiesWithOrderBytbl(this.User.AccCode, 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} map[string]interface{} // @router /dictlist [get] func (this *OilSupplierCertController) 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", this.User.AccCode) var userEntity userRole.Base_User userSvc.GetEntityById(this.User.Id, &userEntity) dictList["Supervisers"] = userSvc.GetUserListByDepartmentId(this.User.AccCode, userEntity.Departmentid) //var dictCustomer []svccustomer.Customer //customerSvc.GetEntitysByWhere(this.User.AccCode + CustomerName, "", &dictCustomer) //dictList["EntrustCorp"] = &dictCustomer var datainfo DataInfo datainfo.Items = dictList this.Data["json"] = &datainfo this.ServeJSON() } // @Title 获取实体 // @Description 获取实体 // @Success 200 {object} suppliercert.OilSupplierCert // @router /get/:id [get] func (this *OilSupplierCertController) GetEntity() { Id := this.Ctx.Input.Param(":id") var model suppliercert.OilSupplierCert svc := suppliercert.GetOilSupplierCertService(utils.DBE) svc.GetEntityByIdBytbl(OilSupplierCertName, Id, &model) this.Data["json"] = &model this.ServeJSON() } // @Title 获取实体 // @Description 获取实体 // @Success 200 {object} suppliercert.OilSupplierCert // @router /getbycreatorandtype/:typecode [get] func (this *OilSupplierCertController) GetEntityByCreatorId() { creatorId := this.User.Id typeCode := this.Ctx.Input.Param(":typecode") var model suppliercert.OilSupplierCert svc := suppliercert.GetOilSupplierCertService(utils.DBE) where := " CreateUserId = '" + creatorId + "'" where += " and SupplierTypeCode = '" + typeCode + "'" svc.GetEntityByWhere(OilSupplierCertName, where, &model) this.Data["json"] = &model this.ServeJSON() } // @Title 添加 // @Description 新增 // @Success 200 {object} controllers.Request // @router /add [post] func (this *OilSupplierCertController) AddEntity() { var model suppliercert.OilSupplierCert var jsonBlob = this.Ctx.Input.RequestBody svc := suppliercert.GetOilSupplierCertService(utils.DBE) json.Unmarshal(jsonBlob, &model) model.IsRestrict = 1 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(OilSupplierCertName, &model) var errinfo ErrorDataInfo 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 *OilSupplierCertController) 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 suppliercert.OilSupplierCert svc := suppliercert.GetOilSupplierCertService(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", "SupplierId", "AccessCardNo", "SupplierTypeCode", "SupplierTypeName", "RecUnitReason", "RecUnitPerson", "RecDate", "RecUnitId", "RecUnitName", "Status", "BackReason", "InFlag", "EffectStartTime", "EffectEndTime", "AuditProcessNote", "AuditDate", "PayNotice", "SupplierStatus", "MgrType", "Type", "MgrUnit", "AddinTime", "EffectTime", "ApplyTime", "SupplierNo", "MDMFlag", "InternalFlag", "ImportFlag", "OutsideFlog", "Remark", "IsDelete", "CreateOn", "CreateUserId", "CreateBy", "ModifiedOn", "ModifiedUserId", "ModifiedBy", } err := svc.UpdateEntityBytbl(OilSupplierCertName, 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 企业入库 // @Success 200 {object} controllers.Request // @router /updatestorage/:id [post] func (this *OilSupplierCertController) UpdateStorage() { id := this.Ctx.Input.Param(":id") status := this.GetString("Status") PACNumber := this.GetString("PACNumber") SupplierId := this.GetString("SupplierId") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } var model suppliercert.OilSupplierCert svc := suppliercert.GetOilSupplierCertService(utils.DBE) //var jsonBlob = this.Ctx.Input.RequestBody //json.Unmarshal(jsonBlob, &model) var err error if status == suppliercert.NO_CENT_AUDIT_STATUS { model.Status = suppliercert.DRAFT_STATUS cols := []string{ "Status", } err = svc.UpdateEntityBytbl(OilSupplierCertName, id, &model, cols) } else { //TODO: 入库改用大工作流 var activity oilactivity.OilActivity where := "EntityId=" + id + " and ActType='" + oilactivity.STORAGE + "'" svc.GetEntity(&activity, where) svcActiviti := workflow.GetActivitiService(utils.DBE) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = activity.ProcessKey ActiComplete.BusinessKey = activity.BusinessKey ActiComplete.UserId = this.User.Id ActiComplete.Remarks = "" ActiComplete.Result = "1" receiveVal := svcActiviti.TaskComplete(ActiComplete) fmt.Println(receiveVal) model.Status = suppliercert.STORE_STATUS model.Step = 7 model.StorageOn = time.Now() model.ApplyTime = time.Now().AddDate(1, 0, 0) model.InFlag = "1" model.ModifiedOn = time.Now() model.ModifiedBy = this.User.Realname model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int() cols := []string{ "Step", "Status", "ApplyTime", "InFlag", "StorageOn", "ModifiedOn", "ModifiedUserId", "ModifiedBy", } err = svc.UpdateEntityBytbl(OilSupplierCertName, id, &model, cols) var model2 suppliercertsub.OilSupplierCertSub model2.CertSubStatus = "1" whereid := " SupplierCertId = " + id svc.UpdateEntityBywheretbl(OilSupplierCertSubName, &model2, []string{"CertSubStatus"}, whereid) var model3 supplier.OilSupplier model3.PACNumber = PACNumber cols3 := []string{"PACNumber"} svc.UpdateEntityByIdCols(SupplierId, &model3, cols3) } 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} ErrorInfo // @Failure 403 :id 为空 // @router /delete/:Id [delete] func (this *OilSupplierCertController) DeleteEntity() { 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 suppliercert.OilSupplierCert var entityempty suppliercert.OilSupplierCert svc := suppliercert.GetOilSupplierCertService(utils.DBE) opdesc := "删除-" + Id err := svc.DeleteOperationAndWriteLogBytbl(OilSupplierCertName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "钻井日报") 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} ErrorDataInfo // @router /check-suppliercert-submit/:id [post] func (this *OilSupplierCertController) CheckSupplierCertCanSubmit() { certId := this.Ctx.Input.Param(":id") 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() } }() //取出准入申请表 certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert certSrv.GetEntityById(certId, &supplierCertEntity) certSrv.IsSupplierCertCanSubmit(strconv.Itoa(supplierCertEntity.SupplierId), certId) } // @Title 企业用户提交按钮 --启动工作流 // @Description 企业用户提交按钮 // @Success 200 {object} controllers.Request // @router /company-audit/:id [post] func (this *OilSupplierCertController) CompanyAuditEntity() { certId := this.Ctx.Input.Param(":id") unitId := this.GetString("UnitId") // typeCode := this.GetString("TypeCode") AuditRemark := this.GetString("AuditRemark") 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() } }() if this.User.IsCompanyUser == 0 { // 0二级单位; 1企业用户 panic("非企业用户,请用分办功能提交!") } //取出准入申请表 certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert certSrv.GetEntityById(certId, &supplierCertEntity) certSrv.IsSupplierCertCanSubmit(strconv.Itoa(supplierCertEntity.SupplierId), certId) stepCode := workflow.GetWorkFlowStepCode(supplierCertEntity.SupplierTypeCode) auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE) approverIds := auditSettingService.GetApproverIdsByStepCodeAndUnitId(stepCode, unitId) if approverIds == "" { panic("该分办单位未配置审批人") } //取出企业主表 supplierSvc := supplier.GetOilSupplierService(utils.DBE) var supplierEntity supplier.OilSupplier //检查是否可提交 supplierSvc.GetEntityById(supplierCertEntity.SupplierId, &supplierEntity) status, _ := strconv.Atoi(supplierCertEntity.Status) if status > 0 { panic("工作流已经启动,请刷新重试!") } svcActiviti := workflow.GetActivitiService(utils.DBE) //启动工作流 businessKey := supplierCertEntity.BusinessKey processInstanceId := supplierCertEntity.WorkflowId // 如果被驳回,不再新启工作流 if processInstanceId == "" { businessKey = certId + "-" + strconv.Itoa(supplierCertEntity.AuditIndex) processInstanceId = svcActiviti.StartProcess2(workflow.OIL_ENUSER_SUPPLIER_APPLY, businessKey, this.User.Id, "1", supplierCertEntity.SupplierTypeCode, supplierEntity.SupplierName) if len(processInstanceId) <= 0 { panic("工作流启动失败!") } supplierCertEntity.AuditIndex += 1 } // 将启动和工作流,选择的初审和复审人员保存下来 cols := []string{ "Id", "WorkflowId", "BusinessKey", "ProcessKey", "CommitComId", "AuditIndex", } supplierCertEntity.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY supplierCertEntity.BusinessKey = businessKey supplierCertEntity.WorkflowId = processInstanceId supplierCertEntity.CommitComId = unitId certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY ActiComplete.BusinessKey = businessKey ActiComplete.UserId = this.User.Id ActiComplete.Result = "1" //提交给二级单位分办 ActiComplete.Remarks = AuditRemark ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost") receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal != "true" { panic("工作流异常,请联系管理员!" + receiveVal) } } // @Title 二级单位提交审批 --启动工作流 // @Description 二级单位提交审批 // @Success 200 {object} controllers.Request // @router /unit-audit/:id [post] func (this *OilSupplierCertController) UnitAuditEntity() { certId := this.Ctx.Input.Param(":id") firstAudit := this.GetString("FirstAudit") secondAudit := this.GetString("SecondAudit") thirdAudit := this.GetString("ThirdAudit") // typeCode := this.GetString("TypeCode") AuditRemark := this.GetString("AuditRemark") userId := this.User.Id var baseUserInfo userRole.Base_User userService := userRole.GetUserService(utils.DBE) userService.GetEntityById(userId, &baseUserInfo) unitId := baseUserInfo.UnitId 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() } }() //取出准入表信息 certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert certSrv.GetEntityById(certId, &supplierCertEntity) //检查是否可提交 certSrv.IsSupplierCertCanSubmit(strconv.Itoa(supplierCertEntity.SupplierId), certId) //取出企业主表 supplierSvc := supplier.GetOilSupplierService(utils.DBE) var supplierEntity supplier.OilSupplier supplierSvc.GetEntityById(supplierCertEntity.SupplierId, &supplierEntity) svcActiviti := workflow.GetActivitiService(utils.DBE) //启动工作流 businessKey := supplierCertEntity.BusinessKey processInstanceId := supplierCertEntity.WorkflowId // 如果被驳回,不再新启工作流 if processInstanceId == "" { //启动工作流 businessKey = certId + "-" + strconv.Itoa(supplierCertEntity.AuditIndex) processInstanceId = svcActiviti.StartProcess2(workflow.OIL_ENUSER_SUPPLIER_APPLY, businessKey, this.User.Id, "1", supplierCertEntity.SupplierTypeCode, supplierEntity.SupplierName) if len(processInstanceId) <= 0 { panic("工作流启动失败!") } supplierCertEntity.AuditIndex += 1 } // 将启动和工作流,选择的初审和复审人员保存下来 cols := []string{ "Id", "FirstAudit", "SecondAudit", "thirdAudit", "WorkflowId", "BusinessKey", "ProcessKey", "CommitComId", "AuditIndex", } supplierCertEntity.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY supplierCertEntity.BusinessKey = businessKey supplierCertEntity.WorkflowId = processInstanceId supplierCertEntity.FirstAudit, _ = strconv.Atoi(firstAudit) supplierCertEntity.SecondAudit, _ = strconv.Atoi(secondAudit) supplierCertEntity.ThirdAudit, _ = strconv.Atoi(thirdAudit) supplierCertEntity.CommitComId = strconv.Itoa(unitId) certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY ActiComplete.BusinessKey = supplierCertEntity.BusinessKey ActiComplete.UserId = this.User.Id // 当前审批操作人员 //ActiComplete.UserNames = secondAudit // 当前审批操作人员 ActiComplete.Result = "2" //分办提交给二级单位初审 ActiComplete.Remarks = AuditRemark ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost") receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal != "true" { panic("工作流异常,请联系管理员!" + receiveVal) } } // @Title 二级单位分办 --审批 // @Description 二级分办 // @Success 200 {object} controllers.Request // @router /separate-audit/:id [post] func (this *OilSupplierCertController) SeparateAuditEntity() { certId := this.Ctx.Input.Param(":id") firstAudit := this.GetString("FirstAudit") secondAudit := this.GetString("SecondAudit") thirdAudit := this.GetString("ThirdAudit") // typeCode := this.GetString("TypeCode") AuditRemark := this.GetString("AuditRemark") 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() } }() // 取出准入表信息 certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert certSrv.GetEntityById(certId, &supplierCertEntity) // 将选择的初审和复审人员保存下来 cols := []string{ "FirstAudit", "SecondAudit", "thirdAudit", } supplierCertEntity.FirstAudit, _ = strconv.Atoi(firstAudit) supplierCertEntity.SecondAudit, _ = strconv.Atoi(secondAudit) supplierCertEntity.ThirdAudit, _ = strconv.Atoi(thirdAudit) // 专业处室 certSrv.UpdateEntityByIdCols(certId, supplierCertEntity, cols) svcActiviti := workflow.GetActivitiService(utils.DBE) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY ActiComplete.BusinessKey = supplierCertEntity.BusinessKey ActiComplete.UserId = this.User.Id // 审批人员 // ActiComplete.UserNames = secondAudit // 初审人员 ActiComplete.Result = "1" //分办完成后只向前走 ActiComplete.Remarks = AuditRemark ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost") receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal != "true" { panic("工作流异常,请联系管理员!" + receiveVal) } } // @Title 分办之后的各级审批 --审批 包含:二级单位初审、复审, 业务处室专业审核, 集中评审 // @Description 分办之后的各级审批 // @Success 200 {object} controllers.Request // @router /common-audit/:id [post] func (this *OilSupplierCertController) CommonAuditEntity() { certId := this.Ctx.Input.Param(":id") result := this.GetString("result") AuditRemark := this.GetString("AuditRemark") 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() } }() //取出准入表信息 certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert certSrv.GetEntityById(certId, &supplierCertEntity) svcActiviti := workflow.GetActivitiService(utils.DBE) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY ActiComplete.BusinessKey = supplierCertEntity.BusinessKey ActiComplete.UserId = this.User.Id //审批人员 ActiComplete.Result = result //前台审批[同意、不同意] ActiComplete.Remarks = AuditRemark ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost") receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal != "true" { panic("工作流异常,请联系管理员!" + receiveVal) } } // @Title 业务处室接收分办 专业审批 // @Description 业务处室接收分办 专业审批 // @Success 200 {object} controllers.Request // @router /business-separate-audit/:id [post] func (this *OilSupplierCertController) BusinessOfficeSeparateAuditEntity() { certId := this.Ctx.Input.Param(":id") ProfessionalAudit := this.GetString("ProfessionalAudit") AuditRemark := this.GetString("AuditRemark") 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() } }() //取出准入表信息 certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert certSrv.GetEntityById(certId, &supplierCertEntity) svcActiviti := workflow.GetActivitiService(utils.DBE) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY ActiComplete.BusinessKey = supplierCertEntity.BusinessKey ActiComplete.UserId = this.User.Id //审批人员 ActiComplete.Result = "1" //前台审批[同意、不同意] ActiComplete.UserNames = ProfessionalAudit ActiComplete.Remarks = AuditRemark ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost") receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal != "true" { panic("工作流异常,请联系管理员!" + receiveVal) } cols := []string{ "Id", "Status", "ProfessionalAudit", } supplierCertId := strings.Split(supplierCertEntity.BusinessKey, "-")[0] supplierCertEntity.Status = suppliercert.PROF_AUDIT_STATUS //专业处室接收 supplierCertEntity.ProfessionalAudit, _ = strconv.Atoi(ProfessionalAudit) certSrv.UpdateEntityByIdCols(supplierCertId, supplierCertEntity, cols) } // @Title 集中审批 // @Description 集中审批 // @Success 200 {object} controllers.Request // @router /concentrate-audit/:id [post] func (this *OilSupplierCertController) ConcentrateAuditEntity() { certId := this.Ctx.Input.Param(":id") AuditRemark := this.GetString("AuditRemark") 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() } }() //取出准入表信息 certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert certSrv.GetEntityById(certId, &supplierCertEntity) svcActiviti := workflow.GetActivitiService(utils.DBE) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY ActiComplete.BusinessKey = supplierCertEntity.BusinessKey ActiComplete.UserId = this.User.Id //审批人员 ActiComplete.Result = "1" //前台审批[同意、不同意] ActiComplete.Remarks = AuditRemark ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost") receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal != "true" { panic("工作流异常,请联系管理员!" + receiveVal) } //cols := []string{ // "Id", // "Status", //} //supplierCertId := strings.Split(supplierCertEntity.BusinessKey, "-")[0] //supplierCertEntity.Status = suppliercert.PROF_AUDIT_STATUS //专业处室接收 //certSrv.UpdateEntityByIdCols(supplierCertId, supplierCertEntity, cols) } // @Title 确认是否入库 // @Description 确认是否入库 // @Success 200 {object} controllers.Request // @router /update-is-storage/:id [post] func (this *OilSupplierCertController) UpdateIsStorage() { id := this.Ctx.Input.Param(":id") result := this.GetString("result") AccessCardNo := this.GetString("AccessCardNo") BackRemark := this.GetString("BackRemark") SupplierId := this.GetString("SupplierId") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } defer func() { //finally处理失败的异常 if err := recover(); err != nil { errinfo.Message = err.(string) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } else { //返回正确结果 if result == "1" { errinfo.Message = "入库成功" } else { errinfo.Message = "退回成功" } errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } }() var supplierCertEntity suppliercert.OilSupplierCert certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) certSrv.GetEntityById(id, &supplierCertEntity) AuditRemark := "" if result == "1" { AuditRemark = "审批通过, 已入库。" var supplierEntity supplier.OilSupplier srv := supplier.GetOilSupplierService(utils.DBE) srv.GetEntityById(SupplierId, &supplierEntity) var srvCols []string if supplierCertEntity.SupplierTypeCode == "01" { supplierEntity.WZAccessCardNo = AccessCardNo srvCols = append(srvCols, "WZAccessCardNo") } else if supplierCertEntity.SupplierTypeCode == "02" { supplierEntity.WZAccessCardNo = AccessCardNo srvCols = append(srvCols, "JSAccessCardNo") } else if supplierCertEntity.SupplierTypeCode == "03" { supplierEntity.WZAccessCardNo = AccessCardNo srvCols = append(srvCols, "JFAccessCardNo") } else { panic("准入类别错误!") } srv.UpdateEntityByIdCols(SupplierId, &supplierEntity, srvCols) } else { if BackRemark != "" { AuditRemark = BackRemark } else { AuditRemark = "待入库未通过。" } } cols := []string{ "Id", "Status", "ApplyTime", "InFlag", "StorageOn", "ModifiedOn", } //进入此步骤,记录在数据库中 if result == "1" { supplierCertEntity.Status = suppliercert.STORE_STATUS // 7 已入库 supplierCertEntity.StorageOn = time.Now() supplierCertEntity.ApplyTime = time.Now().AddDate(1, 0, 0) supplierCertEntity.InFlag = "1" } else { supplierCertEntity.Status = suppliercert.NO_STOREING_STATUS // -7 待入库未通过 } supplierCertEntity.ModifiedOn = time.Now() certSrv.UpdateEntityByIdCols(id, supplierCertEntity, cols) svcActiviti := workflow.GetActivitiService(utils.DBE) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = workflow.OIL_ENUSER_SUPPLIER_APPLY ActiComplete.BusinessKey = supplierCertEntity.BusinessKey ActiComplete.UserId = this.User.Id //审批人员 ActiComplete.Result = result ActiComplete.Remarks = AuditRemark ActiComplete.CallbackUrl = utils.Cfg.MustValue("workflow", "callbackHost") receiveVal := svcActiviti.TaskComplete(ActiComplete) if receiveVal != "true" { panic("工作流异常,请联系管理员!" + receiveVal) } } // @Title 获取实体 // @Description 获取实体 // @Success 200 {object} controllers.Request // @router /isaccess [get] func (this *OilSupplierCertController) IsAccess() { auditstepcode := this.GetString("auditstepcode") processkey := this.GetString("processkey") id := this.GetString("id") //var users []userRole.Base_RoleList //var auditWorkflow auditsetting.Base_OilAuditSetting //rsvc := auditsetting.GetOilAuditSettingService(utils.DBE) res := false if auditstepcode == workflow.PROF_CONCENT { // 集中审批 //rsvc.GetAuditStepRoleEntity(OilAuditSettingName, this.User.DepartmentId, workflow.PROF_AUDIT, &auditWorkflow) //users = rsvc.GetUserByRole("10000204", this.User.AccCode) //for _, user := range users { // if this.User.Id == strconv.Itoa(int(user.Id)) { // res = true // break // } //} var setting auditsetting.Base_OilAuditSetting svc := organize.GetOrganizeService(utils.DBE) where := "AuditStepCode='" + auditstepcode + "'" svc.GetEntity(&setting, where) res = svc.UserInRoleById(this.User.Id, strconv.Itoa(setting.RoleId)) } else if auditstepcode == workflow.PAYING_FEE { // 待交费 // TODO 删掉。(交费按钮已去掉,统一走交费管理处确认。且此处未准确区分申请类型) certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert certSrv.GetEntityById(id, &supplierCertEntity) res1, res2, res3, res4 := false, false, false, false if strconv.Itoa(supplierCertEntity.CreateUserId) == this.User.Id { res1 = true } certAppendSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE) var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend certAppendSrv.GetEntityById(id, &supplierCertAppendEntity) if strconv.Itoa(supplierCertAppendEntity.CreateUserId) == this.User.Id { res2 = true } annualSrv := annualaudit.GetOilAnnualAuditService(utils.DBE) var annualEntity annualaudit.OilAnnualAudit annualSrv.GetEntityById(id, &annualEntity) if strconv.Itoa(annualEntity.CreateUserId) == this.User.Id { res3 = true } infoChangeSrv := infochange.GetInfoChangeService(utils.DBE) var infoChangeEntity infochange.OilInfoChange infoChangeSrv.GetEntityById(id, &infoChangeEntity) if strconv.Itoa(infoChangeEntity.CreateUserId) == this.User.Id { res4 = true } if res1 || res2 || res3 || res4 { res = true } } else { //var users []suppliercert.UserList //where := "OrganizeId=" + this.User.DepartmentId + " and AuditStepCode='" + auditstepcode + "'" //rsvc.GetEntitysByWhere(OilAuditSettingName,where, &users) //rsvc.GetAuditStepRoleEntity(OilAuditSettingName, this.User.DepartmentId, auditstepcode, &auditWorkflow) //users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), this.User.AccCode) //var users []userRole.Base_RoleList //certSrv := suppliercert.GetOilSupplierCertService(utils.DBE) //certSrv.GetAuditUser(this.User.DepartmentId, auditstepcode, &users) var setting auditsetting.Base_OilAuditSetting svc := organize.GetOrganizeService(utils.DBE) where := "AuditStepCode='" + auditstepcode + "'" svc.GetEntity(&setting, where) res = svc.UserInRoleById(this.User.Id, strconv.Itoa(setting.RoleId)) if res { actisvc := workflow.GetActivitiService(utils.DBE) ids := actisvc.GetMyTasks(processkey, this.User.Id) res = strings.Contains(ids, id) } //for _, user := range users { // if this.User.Id == strconv.Itoa(int(user.Id)) { // res = true // break // } //} } this.Data["json"] = res this.ServeJSON() } // @Title 获取准入编码 // @Description 获取准入编码 // @Success 200 {object} controllers.Request // @router /createaccesscardno/:type [get] func (this *OilSupplierCertController) CreateAccessCardNo() { Id := this.GetString("Id") certId := this.GetString(("SupplierCertId")) typeCode := this.Ctx.Input.Param(":type") codecSvc := codecsequence.GetCodecSequenceService(utils.DBE) var entitycert suppliercert.OilSupplierCert var entity supplier.OilSupplier //where := "Id = " + Id //codecSvc.GetEntities(&model, "") seqStr := "" cols := []string{} if typeCode == "01" { // 物质 has := true for has { seqStr = codecSvc.GetWZAccessCardNo(this.User.AccCode) where := "SupplierTypeCode='" + typeCode + "' and AccessCardNo='" + seqStr + "'" has = codecSvc.GetEntity(&entitycert, where) } cols = []string{"WZAccessCardNo"} entity.WZAccessCardNo = seqStr } else if typeCode == "03" { //技术服务 has := true for has { seqStr = codecSvc.GetJFAccessCardNo(this.User.AccCode) where := "SupplierTypeCode='" + typeCode + "' and AccessCardNo='" + seqStr + "'" has = codecSvc.GetEntity(&entitycert, where) } cols = []string{"JFAccessCardNo"} entity.JFAccessCardNo = seqStr } else if typeCode == "02" { // 基建 has := true for has { seqStr = codecSvc.GetJSAccessCardNo(this.User.AccCode) where := "SupplierTypeCode='" + typeCode + "' and AccessCardNo='" + seqStr + "'" has = codecSvc.GetEntity(&entitycert, where) } cols = []string{"JSAccessCardNo"} entity.JSAccessCardNo = seqStr } codecSvc.UpdateEntityByIdCols(Id, &entity, cols) var cert suppliercert.OilSupplierCert certcols := []string{"AccessCardNo"} cert.AccessCardNo = seqStr codecSvc.UpdateEntityByIdCols(certId, &cert, certcols) this.Data["json"] = seqStr this.ServeJSON() } // @Title 修改准入标识 // @Description 修改准入标识 // @Success 200 {object} controllers.Request // @router /updateinflag/ [get] func (this *OilSupplierCertController) UpdateInFlag() { t := time.Now() session := utils.DBE.NewSession() var certentitys []suppliercert.OilSupplierCert svc := suppliercert.GetOilSupplierCertSession(session) defer func() { session.Close() }() err := session.Begin() svc.GetEntities(&certentitys, "InFlag!='3'") currenttime := time.Now() //.Format("2006-01-02") for i := 0; i < len(certentitys); i++ { if currenttime.After(certentitys[i].ApplyTime) && !currenttime.After(certentitys[i].ApplyTime.AddDate(1, 0, 0)) && certentitys[i].InFlag != "2" { var certentity suppliercert.OilSupplierCert certentity.InFlag = "2" certentity.Remark = "未年审" cols := []string{"InFlag", "Remark"} _, err = svc.UpdateEntityByIdCols(certentitys[i].Id, &certentity, cols) if err != nil { session.Rollback() } } if currenttime.After(certentitys[i].ApplyTime.AddDate(1, 0, 0)) { fmt.Println(time.Now().Format("2006-01-02"), certentitys[i].ApplyTime.AddDate(1, 0, 0).Format("2006-01-02")) var certentity suppliercert.OilSupplierCert certentity.InFlag = "3" certentity.Remark = "超1年未年审" cols := []string{"InFlag", "Remark"} _, err = svc.UpdateEntityByIdCols(certentitys[i].Id, &certentity, cols) if err != nil { session.Rollback() } } } err = session.Commit() fmt.Println(err) elapsed := time.Since(t) fmt.Println(elapsed, "更新准入标识") } // @Title 退回 // @Description // @Success 200 {object} controllers.Request // @router /backstatus/:Id [post] func (this *OilSupplierCertController) BackStatus() { id := this.Ctx.Input.Param(":Id") status := this.GetString("Status") backRemark := this.GetString("BackRemark") var entity suppliercert.OilSupplierCert svc := suppliercert.GetOilSupplierCertService(utils.DBE) cols := []string{"Status", "BackRemark"} entity.Status = status entity.BackRemark = backRemark _, err := svc.UpdateEntityByIdCols(id, &entity, cols) var errinfo ErrorDataInfo if err == nil { //TODO: 入库改用大工作流 var activity oilactivity.OilActivity where := "EntityId=" + id + " and ActType='" + oilactivity.STORAGE + "'" svc.GetEntity(&activity, where) svcActiviti := workflow.GetActivitiService(utils.DBE) var ActiComplete workflow.ActiCompleteVM ActiComplete.ProcessKey = activity.ProcessKey //TODO: 获取工作流KEY ActiComplete.BusinessKey = activity.BusinessKey //TODO: 获取业务表ID ActiComplete.UserId = this.User.Id ActiComplete.Remarks = "" ActiComplete.Result = "1" svcActiviti.TaskComplete(ActiComplete) errinfo.Message = "操作成功!" errinfo.Code = 00 this.Data["json"] = &errinfo this.ServeJSON() } else { errinfo.Message = "操作失败!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 保存准入编码 // @Description 保存准入编码 // @Success 200 {object} controllers.Request // @router /saveaccesscardno/:Id [get] func (this *OilSupplierCertController) SaveAccessCardNo() { id := this.Ctx.Input.Param(":Id") certId := this.GetString(("SupplierCertId")) typeCode := this.GetString("typeCode") accessCardNo := this.GetString("AccessCardNo") var model []suppliercert.OilSupplierCert var supplier supplier.OilSupplier svc := suppliercert.GetOilSupplierCertService(utils.DBE) where := "AccessCardNo='" + accessCardNo + "'" svc.GetEntities(&model, where) supcols := []string{} if model == nil || len(model) == 0 { if typeCode == "01" { // 物质 supplier.WZAccessCardNo = accessCardNo supcols = []string{"WZAccessCardNo"} } else if typeCode == "03" { //技术服务 supplier.JFAccessCardNo = accessCardNo supcols = []string{"JFAccessCardNo"} } else if typeCode == "02" { // 基建 supplier.JSAccessCardNo = accessCardNo supcols = []string{"JSAccessCardNo"} } svc.UpdateEntityByIdCols(id, &supplier, supcols) var cert suppliercert.OilSupplierCert certcols := []string{"AccessCardNo"} cert.AccessCardNo = accessCardNo svc.UpdateEntityByIdCols(certId, &cert, certcols) var errinfo ErrorDataInfo errinfo.Message = "保存成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() } else { var errinfo ErrorDataInfo errinfo.Message = "准入编码已经存在!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } // @Title 快到期短信通知 // @Description 修改准入标识 // @Success 200 {object} controllers.Request // @router /sendingSMS/ [get] func (this *OilSupplierCertController) SendingSMS() { t := time.Now() svcsupp := supplier.GetOilSupplierService(utils.DBE) var list []supplier.OilSupplierView where := "b.InFlag = '1'" svcsupp.GetMyPagingEntitiesWithOrderBytbl(OilSupplierName, OilSupplierCertName, 0, 0, "Id", true, &list, where) currenttime := time.Now() loginName := "TimingTask" if this.User != nil { loginName = this.User.Username } for _, item := range list { if currenttime.AddDate(0, 3, 0).Format("2006-01-02") == (item.ApplyTime.Format("2006-01-02")) { toMobile := item.Mobile msg := "您的" + item.SupplierTypeName + "准入还有3个月到期" msgService := msg2.GetMsgService(utils.DBE) msgService.HandleMsg(toMobile, msg, "1-1", item.CreateBy, item.ContactName, strconv.Itoa(item.CreateUserId), loginName) } if currenttime.AddDate(0, 2, 0).Format("2006-01-02") == (item.ApplyTime.Format("2006-01-02")) { toMobile := item.Mobile msg := "您的" + item.SupplierTypeName + "准入还有2个月到期" msgService := msg2.GetMsgService(utils.DBE) msgService.HandleMsg(toMobile, msg, "1-1", item.CreateBy, item.ContactName, strconv.Itoa(item.CreateUserId), loginName) } if currenttime.AddDate(0, 1, 0).Format("2006-01-02") == (item.ApplyTime.Format("2006-01-02")) { toMobile := item.Mobile msg := "您的" + item.SupplierTypeName + "准入还有1个月到期" msgService := msg2.GetMsgService(utils.DBE) msgService.HandleMsg(toMobile, msg, "1-1", item.CreateBy, item.ContactName, strconv.Itoa(item.CreateUserId), loginName) } } elapsed := time.Since(t) fmt.Println(elapsed, "快到期提醒") } // @Title 资质快到期短信通知 // @Description // @Success 200 {object} controllers.Request // @router /sendingSMSSupplierFile/ [get] func (this *OilSupplierCertController) SendingSMSSupplierFile() { t := time.Now() svcsupp := supplier.GetOilSupplierService(utils.DBE) paramSvc := baseparameter.GetBaseparameterService(utils.DBE) month, _ := strconv.Atoi(paramSvc.GetBaseparameterMessage("GFGL", "paramset", "QualificationMonth")) var expireFile []supplier.ExpireFile where := " b.EffectDate LIKE '%" + time.Now().AddDate(0, month, 0).Format("2006-01-02") + "%'" err := svcsupp.GetExpireFile(OilSupplierName, OilSupplierFileName, &expireFile, where) if err == nil { for _, item := range expireFile { fileName := "" if utf8.RuneCountInString(item.NeedAllFile) > 50 { fileName = string([]rune(item.NeedAllFile)[0:50]) fileName = fileName[0:strings.LastIndex(fileName, ";")] + "等资质" } else { fileName = item.NeedAllFile } toMobile := item.Mobile msg := "您的" + fileName + "还有" + strconv.Itoa(month) + "个月到期" msgService := msg2.GetMsgService(utils.DBE) loginName := "TimingTask" if this.User != nil { loginName = this.User.Username } // TODO typeCode值 msgService.HandleMsg(toMobile, msg, "1-1", item.CreateBy, item.ContactName, strconv.Itoa(item.CreateUserId), loginName) } } elapsed := time.Since(t) fmt.Println(elapsed, "资质到期提醒") } // @Title 资质 // @Description // @Success 200 {object} controllers.Request // @router /changeSupplierStatus/ [get] func (this *OilSupplierCertController) ChangeSupplierStatus() { svcsupp := supplier.GetOilSupplierService(utils.DBE) var fileData []supplier.ExpireFileList where := " b.EffectDate <= '" + time.Now().AddDate(0, 0, -1).Format("2006-01-02") + "'" svcsupp.GetExpireFileList(OilSupplierName, OilSupplierFileName, &fileData, where) for _, item := range fileData { var sert suppliercert.OilSupplierCert cols := []string{ "InFlag", "Remark", } sert.InFlag = "2" sert.Remark = "资质已到期" where := "SupplierId=" + strconv.Itoa(item.Id) + " AND InFlag = '1'" if item.SupplierTypeCode != "000" { where = where + " and SupplierTypeCode='" + item.SupplierTypeCode + "'" } svcsupp.UpdateEntityBywheretbl(OilSupplierCertName, &sert, cols, where) } } // @Title 更新Inflag状态 // @Description 企业入库 // @Success 200 {object} controllers.Request // @router /reinput/:id [post] func (this *OilSupplierCertController) ReInput() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } session := utils.DBE.NewSession() svc := suppliercert.GetOilSupplierCertSession(session) defer func() { session.Close() }() err := session.Begin() var model []suppliercert.Del_OilSupplierCert where := "SupplierId=" + id var sql string sql = "select * from " + OilSupplierCertName + " where " + where utils.DBE.SQL(sql).Find(&model) isdelsupplier := false if model != nil && len(model) > 0 { isdelsupplier = true } for _, item := range model { if item.InFlag == "3" { where := "Id=" + strconv.Itoa(item.Id) err = svc.DeleteEntityBytbl(OilSupplierCertName, where) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } item.DeleteDate = time.Now() _, err = svc.InsertEntityBytbl(DelOilSupplierCertName, &item) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } // 交费信息 var delpay []paymentinfo.Del_OilPaymentInfo wherepay := "SupplierCertId=" + strconv.Itoa(model[0].Id) var sqlpay string sqlpay = "select * from " + OilPaymentInfoName + " where " + wherepay utils.DBE.SQL(sqlpay).Find(&delpay) err = svc.DeleteEntityBytbl(OilPaymentInfoName, wherepay) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } for idx, _ := range delpay { delpay[idx].DeleteDate = time.Now() } _, err = svc.InsertEntityBytbl(DelOilPaymentInfoName, &delpay) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } // 删除增项记录 var modelapp []suppliercertappend.Del_OilSupplierCertAppend whereapp := "SupplierCertId=" + strconv.Itoa(model[0].Id) var sqlapp string sqlapp = "select * from " + OilSupplierCertAppendName + " where " + whereapp utils.DBE.SQL(sqlapp).Find(&modelapp) err = svc.DeleteEntityBytbl(OilSupplierCertAppendName, whereapp) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } for idx, _ := range modelapp { modelapp[idx].DeleteDate = time.Now() } _, err = svc.InsertEntityBytbl(DelOilSupplierCertAppendName, &modelapp) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } // 删除年审记录 var modelann []annualaudit.Del_OilAnnualAudit whereann := "CerId=" + strconv.Itoa(model[0].Id) var sqlann string sqlann = "select * from " + OilAnnualAuditName + " where " + whereann utils.DBE.SQL(sqlann).Find(&modelann) err = svc.DeleteEntityBytbl(OilAnnualAuditName, whereann) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } for idx, _ := range modelann { modelann[idx].DeleteDate = time.Now() } _, err = svc.InsertEntityBytbl(DelOilAnnualAuditName, &modelann) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } // 删除准入范围 var certsup []suppliercertsub.Del_OilSupplierCertSub wheresup := "SupplierCertId=" + strconv.Itoa(model[0].Id) var sqlsup string sqlsup = "select * from " + OilSupplierCertSubName + " where " + wheresup utils.DBE.SQL(sqlsup).Find(&certsup) err = svc.DeleteEntityBytbl(OilSupplierCertSubName, wheresup) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } for idx, _ := range certsup { certsup[idx].DeleteDate = time.Now() } _, err = svc.InsertEntityBytbl(DelOilSupplierCertSubName, &certsup) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } else { isdelsupplier = false } } if isdelsupplier { // 删除企业信息 var modelsupp supplier.Del_OilSupplier where := "Id=" + strconv.Itoa(model[0].SupplierId) var sql string sql = "select * from " + OilSupplierName + " where " + where utils.DBE.SQL(sql).Get(&modelsupp) err = svc.DeleteEntityBytbl(OilSupplierName, where) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } modelsupp.DeleteDate = time.Now() _, err = svc.InsertEntityBytbl(DelOilSupplierName, &modelsupp) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } // 删除企业资质 var delfile []supplierfile.Del_OilSupplierFile wheref := "SupplierId=" + strconv.Itoa(model[0].SupplierId) var sqlw string sqlw = "select * from " + OilSupplierFileName + " where " + wheref utils.DBE.SQL(sqlw).Find(&delfile) err = svc.DeleteEntityBytbl(OilSupplierFileName, wheref) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } for idx, _ := range delfile { delfile[idx].DeleteDate = time.Now() } _, err = svc.InsertEntityBytbl(DelOilSupplierFileName, &delfile) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } // 删除信息变更 var delinfo []infochange.Del_OilInfoChange whereinfo := "SupplierId=" + strconv.Itoa(model[0].SupplierId) var sqlinfo string sqlinfo = "select * from " + OilInfoChangeName + " where " + whereinfo utils.DBE.SQL(sqlinfo).Find(&delinfo) err = svc.DeleteEntityBytbl(OilInfoChangeName, whereinfo) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } for idx, _ := range delinfo { delinfo[idx].DeleteDate = time.Now() } _, err = svc.InsertEntityBytbl(DelOilInfoChangeName, &delinfo) if err != nil { session.Rollback() errinfo.Message = "提交失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } } err = session.Commit() 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 /updateapplytime/:id [post] func (this *OilSupplierCertController) UpdateApplyTime() { session := utils.DBE.NewSession() defer func() { session.Close() }() 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 supplierapplytime.OilSupplierApplyTime svc := suppliercert.GetOilSupplierCertSession(session) var jsonBlob = this.Ctx.Input.RequestBody json.Unmarshal(jsonBlob, &model) 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(SupplierApplyTimeName, &model) if err != nil { session.Rollback() errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } var modelcert suppliercert.OilSupplierCert modelcert.ApplyTime = model.AfterDate if model.AfterDate.Unix() < time.Now().Unix() { modelcert.InFlag = "2" } else { modelcert.InFlag = "1" } var cols = []string{ "ApplyTime", "InFlag", } err = svc.UpdateEntityBytbl(OilSupplierCertName, id, &modelcert, cols) if err != nil { session.Rollback() errinfo.Message = "修改失败!" + utils.AlertProcess(err.Error()) errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() return } err = session.Commit() 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 get user by token // @Success 200 {object} []suppliercert.OilSupplierCert // @router /getapplytimelist [get] func (this *OilSupplierCertController) GetApplyTimeList() { SupplierCertId := this.GetString("SupplierCertId") var model []supplierapplytime.OilSupplierApplyTime svc := suppliercert.GetOilSupplierCertService(utils.DBE) where := "SupplierCertId = " + SupplierCertId svc.GetEntities(&model, where) var errinfo ErrorDataInfo errinfo.Message = "修改成功!" errinfo.Code = 0 errinfo.Item = model this.Data["json"] = &model this.ServeJSON() } // @Title 修改增项是否需要限制 针对企业 // @Description 修改年审到期时间 // @Success 200 {object} controllers.Request // @router /updateisrestrict/:id [post] func (this *OilSupplierCertController) UpdateIsRestrict() { id := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if id == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } isRestrict := this.GetString("IsRestrict") var model suppliercert.OilSupplierCert svc := suppliercert.GetOilSupplierCertService(utils.DBE) cols := []string{ "IsRestrict", } model.IsRestrict, _ = strconv.Atoi(isRestrict) err := svc.UpdateEntityBytbl(OilSupplierCertName, 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 交费用户确认交费 // @Success 200 {object} controllers.Request // @router /update-pay-status/:id [post] func (this *OilSupplierCertController) UpdatePayStatus() { certId := this.Ctx.Input.Param(":id") var errinfo ErrorInfo if certId == "" { errinfo.Message = "操作失败!请求信息不完整" errinfo.Code = -2 this.Data["json"] = &errinfo this.ServeJSON() return } supplierCertSrv := suppliercert.GetOilSupplierCertService(utils.DBE) var supplierCertEntity suppliercert.OilSupplierCert supplierCertSrv.GetEntityById(certId, &supplierCertEntity) paySrv := paymentinfo.GetPaymentService(utils.DBE) var paymentInfoEntities []paymentinfo.OilPaymentInfo err := paySrv.GetPaymentInfoBySrcId(certId, "1", &paymentInfoEntities) if err != nil { errinfo.Message = "未知错误,请稍后再试!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } if len(paymentInfoEntities) == 1 { for _, item := range paymentInfoEntities { if item.IsPay == "1" { errinfo.Message = "已确认交费!请耐心等待" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } if item.IsPay == "2" { errinfo.Message = "已交费!请勿重复操作!" errinfo.Code = -1 this.Data["json"] = &errinfo this.ServeJSON() } } } sql := "UPDATE OilPaymentInfo SET IsPay ='1' where SrcId=" + certId + " and PayType='1'" supplierCertSrv.DBE.Exec(sql) errinfo.Message = "确认交费成功!" errinfo.Code = 0 this.Data["json"] = &errinfo this.ServeJSON() }