| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373 |
- package oilsupplier
- import (
- "dashoo.cn/backend/api/business/auditsetting"
- "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
- "dashoo.cn/backend/api/business/workflow"
- "dashoo.cn/business2/userRole"
- "encoding/json"
- "strconv"
- "strings"
- "time"
- "dashoo.cn/backend/api/business/oilsupplier/suppliercertappend"
- "dashoo.cn/backend/api/business/oilsupplier/suppliercertappendsub"
- . "dashoo.cn/backend/api/controllers"
- "dashoo.cn/utils"
- "github.com/go-xorm/xorm"
- )
- type OilSupplierCertAppendController struct {
- BaseController
- }
- // @Title 获取列表
- // @Description 获取列表
- // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
- // @router /list [get]
- func (this *OilSupplierCertAppendController) GetList() {
- //获取分页信息
- 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
- }
- }
- ApplyDate := this.GetString("ApplyDate")
- RecUnitId := this.GetString("RecUnitId")
- RecUnitName := this.GetString("RecUnitName")
- AppendType := this.GetString("AppendType")
- DenyReason := this.GetString("DenyReason")
- AuditDate := this.GetString("AuditDate")
- Remark := this.GetString("Remark")
- CreateOn := this.GetString("CreateOn")
- if ApplyDate != "" {
- where = where + " and ApplyDate like '%" + ApplyDate + "%'"
- }
- if RecUnitId != "" {
- where = where + " and RecUnitId like '%" + RecUnitId + "%'"
- }
- if RecUnitName != "" {
- where = where + " and RecUnitName like '%" + RecUnitName + "%'"
- }
- if AppendType != "" {
- where = where + " and AppendType like '" + AppendType + "'"
- }
- if DenyReason != "" {
- where = where + " and DenyReason like '%" + DenyReason + "%'"
- }
- if AuditDate != "" {
- where = where + " and AuditDate like '%" + AuditDate + "%'"
- }
- if Remark != "" {
- where = where + " and Remark like '%" + Remark + "%'"
- }
- 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 := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
- var list []suppliercertappend.OilSupplierCertAppend
- 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 通过Id获取信息
- // @Description get user by token
- // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
- // @router /getEntityById/:id [get]
- func (this *OilSupplierCertAppendController) GetEntityById() {
- Id := this.Ctx.Input.Param(":id")
- var model suppliercertappend.OilSupplierCertAppend
- svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
- svc.GetEntityByIdBytbl(OilSupplierCertAppendName, Id, &model)
- this.Data["json"] = &model
- this.ServeJSON()
- }
- // @Title 获取公司信息
- // @Description 根据创建用户Id和增项类别号获取公司信息
- // @Success 200 {object} []suppliercertappend.OilSupplierCertAppend
- // @router /getsupplier/:id [get]
- func (this *OilSupplierCertAppendController) GetSupplier() {
- Id := this.Ctx.Input.Param(":id")
- svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
- sqlStr := "SELECT b.Id AS SupplierId, a.Id AS SupplierCertId, b.SupplierName AS SupplierName FROM OilSupplierCert AS a LEFT JOIN OilSupplier AS b ON a.SupplierId = b.Id "
- where := "WHERE b.Id is NOT NULL AND a.SupplierTypeCode = " + Id + " AND a.CreateUserId = " + this.User.Id
- sqlStr = sqlStr + where
- model, _ := svc.DBE.QueryString(sqlStr)
- this.Data["json"] = &model
- this.ServeJSON()
- }
- // @Title 添加
- // @Description 添加增项信息
- // @Success 200 {object} controllers.Request
- // @router /addappend [post]
- func (this *OilSupplierCertAppendController) AddAppend() {
- var model suppliercertappend.OilSupplierCertAppend
- var jsonblob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonblob, &model)
- model.ApplyDate = time.Now() //申请日期
- model.CreateOn = time.Now()
- model.CreateBy = this.User.Realname
- model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
- svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
- _, err := svc.InsertEntityBytbl(OilSupplierCertAppendName, &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 *OilSupplierCertAppendController) UpdateEntity() {
- var errinfo ErrorInfo
- var model suppliercertappend.OilSupplierCertAppend
- id := this.Ctx.Input.Param(":id")
- if id == "" {
- errinfo.Message = "操作失败!请求信息不完整"
- errinfo.Code = -2
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &model)
- model.ApplyDate = time.Now() //更新申请日期
- model.ModifiedOn = time.Now()
- model.ModifiedBy = this.User.Realname
- model.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
- cols := []string{
- "Id",
- "ApplyDate",
- "RecUnitFlag",
- "RecUnitId",
- "RecUnitName",
- "WorkRange",
- "Remark",
- "ModifiedOn",
- "ModifiedUserId",
- "ModifiedBy",
- }
- err := svc.UpdateEntityBytbl(OilSupplierCertAppendName, 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} ErrorInfo
- // @Failure 403 :id 为空
- // @router /delete/:Id [delete]
- func (this *OilSupplierCertAppendController) DeleteEntity() {
- Id := this.Ctx.Input.Param(":Id")
- var errinfo ErrorInfo
- if Id == "" {
- errinfo.Message = "操作失败!请求信息不完整"
- errinfo.Code = -2
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- //定义session
- var session *xorm.Session
- session = utils.DBE.NewSession()
- svc := suppliercertappend.GetOilSupplierCertAppendSession(session)
- svcSub := suppliercertappendsub.GetOilSupplierCertAppendSubSession(session)
- //"session开始" 之前,首先定义 "session关闭"
- defer session.Close()
- err := session.Begin()
- //首先删除子表信息
- where := "SupplierCertAppendId = " + Id
- err = svcSub.DeleteEntityBytbl(OilSupplierCertAppendSubName, where)
- if err != nil {
- //回滚操作
- session.Rollback()
- }
- //最后删除主表信息
- var model suppliercertappend.OilSupplierCertAppend
- var entityempty suppliercertappend.OilSupplierCertAppend
- opdesc := "删除-" + Id
- err = svc.DeleteOperationAndWriteLogBytbl(OilSupplierCertAppendName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "增项信息")
- if err != nil {
- session.Rollback()
- }
- //提交操作
- 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 /audit/:id [post]
- func (this *OilSupplierCertAppendController) AuditEntity() {
- certappendId := this.Ctx.Input.Param(":id")
- firstAudit := this.GetString("firstAudit")
- //取出审批列表
- certSrv := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)
- var supplierCertAppendEntity suppliercertappend.OilSupplierCertAppend
- certSrv.GetEntityById(certappendId, &supplierCertAppendEntity)
- 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)
- //获得有审核权限的人员
- var users []userRole.Base_RoleList
- var userIds string
- var auditWorkflow auditsetting.Base_OilAuditSetting
- rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
- rsvc.GetAuditStepRoleEntity(OilAuditSettingName, firstAudit, workflow.FIRST_TRIAL, &auditWorkflow)
- users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), this.User.AccCode) //
- processInstanceId := ""
- if supplierCertAppendEntity.WorkFlowId == "0" || len(supplierCertAppendEntity.WorkFlowId) <= 0 {
- //启动工作流
- processInstanceId = svcActiviti.StartProcess(workflow.OIL_APPEND_APPLY, certappendId, this.User.Id)
- }
- for _, tmpUser := range users {
- userIds += strconv.FormatInt(tmpUser.Id, 10) + ","
- }
- userIds = strings.Trim(userIds, ",")
- var ActiComplete workflow.ActiCompleteVM
- ActiComplete.ProcessKey = workflow.OIL_APPEND_APPLY
- ActiComplete.BusinessKey = certappendId
- ActiComplete.UserNames = userIds
- ActiComplete.UserId = this.User.Id
- ActiComplete.Result = "1"
- ActiComplete.Remarks = ""
- ActiComplete.CallbackUrl = ""
- receiveVal := svcActiviti.TaskComplete(ActiComplete)
- if receiveVal == "true" {
- errinfo.Message = "提交成功!"
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- } else {
- errinfo.Message = "工作流异常,请联系管理员!"
- errinfo.Code = -1
- this.Data["json"] = &errinfo
- this.ServeJSON()
- return
- }
- //记下workflowID(首次提交时才会记录,中间状态请忽略) 及审批状态
- var model suppliercertappend.OilSupplierCertAppend
- model.WorkFlowId = processInstanceId
- model.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
- cols := []string{
- "Id",
- "WorkFlowId",
- "Status",
- }
- certSrv.UpdateEntityByIdCols(certappendId, model, cols)
- }
|