| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558 |
- package oilcontract
- import (
- "dashoo.cn/backend/api/business/oilcontract/contractEvaluationItems"
- "dashoo.cn/backend/api/business/oilcontract/contract"
- "dashoo.cn/business2/permission"
- "dashoo.cn/backend/api/business/oilcontract/contractReview"
- "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
- "dashoo.cn/backend/api/business/workflow"
- "encoding/json"
- "strconv"
- "strings"
- "time"
- "fmt"
- "dashoo.cn/backend/api/business/baseUser"
- // "dashoo.cn/backend/api/business/items"
- . "dashoo.cn/backend/api/controllers"
- "dashoo.cn/business2/userRole"
- "dashoo.cn/utils"
- )
- type OilContractReviewController struct {
- BaseController
- }
- // @Title 获取列表
- // @Description get user by token
- // @Success 200 {object} []contractReview.OilContractReviewWorkFlow
- // @router /list [get]
- func (this *OilContractReviewController) GetEntityList() {
- //获取分页信息
- page := this.GetPageInfoForm()
- where := " 1=1 "
- orderby := "Id"
- asc := " desc "
- Order := this.GetString("Order")
- Prop := this.GetString("Prop")
- if Order != "" && Prop != "" {
- orderby = Prop
- if Order == "asc" {
- asc = " asc "
- }
- }
- Id := this.GetString("Id")
- ContractClass := this.GetString("ContractClass")
- WorkflowId := this.GetString("WorkflowId")
- BusinessKey := this.GetString("BusinessKey")
- ProcessKey := this.GetString("ProcessKey")
- BackRemark := this.GetString("BackRemark")
- CreateOn := this.GetString("CreateOn")
- if Id != "" {
- where = where + " and r.Id like '%" + Id + "%'"
- }
- if ContractClass != "" {
- where = where + " and c.ContractClass = '" + ContractClass + "'"
- }
- if WorkflowId != "" {
- where = where + " and r.WorkflowId like '%" + WorkflowId + "%'"
- }
- if BusinessKey != "" {
- where = where + " and r.BusinessKey like '%" + BusinessKey + "%'"
- }
- if ProcessKey != "" {
- where = where + " and r.ProcessKey like '%" + ProcessKey + "%'"
- }
- if BackRemark != "" {
- where = where + " and r.BackRemark like '%" + BackRemark + "%'"
- }
- if CreateOn != "" {
- dates := strings.Split(CreateOn, ",")
- if len(dates) == 2 {
- minDate := dates[0]
- maxDate := dates[1]
- where = where + " and r.CreateOn>='" + minDate + "' and r.CreateOn<='" + maxDate + "'"
- }
- }
- //超级管理员和有查看所有数据权限的用户不加条件
- svcPerm := permission.GetPermissionService(utils.DBE)
- isauth := svcPerm.IsAuthorized(this.User.Id, "oil_contract.Review.AllRecord")
- if(!isauth){
- // 权限过滤 自己创建的评价 ,同二级部门创建的评价 ,企管法规处能看
- where = where + " and ( r.CreateUserId = '" + this.User.Id + "' "
- where = where + " or r.UnitId = '" + strconv.Itoa(this.User.UnitId) + "' "
- where = where + " )"
- }
- svc := contractReview.GetOilContractReviewService(utils.DBE)
- var list []contractReview.OilContractReviewListVo
- total := svc.GetContractReviewList(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 *OilContractReviewController) 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} contractReview.OilContractReviewWorkFlow
- // @router /get/:id [get]
- func (this *OilContractReviewController) GetEntity() {
- Id := this.Ctx.Input.Param(":id")
- var model contractReview.OilContractReview
- svc := contractReview.GetOilContractReviewService(utils.DBE)
- svc.GetEntityByIdBytbl(OilContractReviewName, Id, &model)
- this.Data["json"] = &model
- this.ServeJSON()
- }
- // @Title 添加
- // @Description 新增
- // @Param body body contractReview.OilContractReviewWorkFlow
- // @Success 200 {object} controllers.Request
- // @router /add [post]
- func (this *OilContractReviewController) AddEntity() {
- var modeVO contractReview.OilContractReviewVo
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &modeVO)
- svc := contractReview.GetOilContractReviewService(utils.DBE)
- itemSvc := contractEvaluationItems.GetOilContractEvaluationItemsService(utils.DBE)
- var reviewMode contractReview.OilContractReview
- reviewMode.ContractId = modeVO.ContractId
- reviewMode.Status = "0"
- reviewMode.Unit = this.User.Unit
- reviewMode.UnitId = this.User.UnitId
- reviewMode.CreateOn = time.Now()
- reviewMode.CreateBy = this.User.Realname
- reviewMode.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
- _, err := svc.InsertEntityBytbl(OilContractReviewName, &reviewMode)
- var items []contractEvaluationItems.OilContractEvaluationItems
- // 新增配置项
- for i,v := range modeVO.Items{
- fmt.Print(i)
- var temp contractEvaluationItems.OilContractEvaluationItems
- temp.ContentReviewId = reviewMode.Id
- temp.Category = 0
- temp.ItemId = v.Id
- temp.ParentId = v.ParentId
- temp.SequenceNo = v.SequenceNo
- temp.Content = v.Content
- temp.NormalScore = v.NormalScore
- temp.Score = v.Score
- temp.LevelCode = v.LevelCode
- temp.Remark = v.Remark
- temp.Content = v.Content
- items = append(items, temp)
- }
- _, err2 := itemSvc.DBE.Insert(items)
- var errinfo ErrorDataInfo
- if err == nil && err2 == nil{
- //新增
- errinfo.Message = "添加成功!"
- errinfo.Code = 0
- errinfo.Item = reviewMode.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 修改实体
- // @Param body body contractReview.OilContractReviewWorkFlow
- // @Success 200 {object} controllers.Request
- // @router /update/:id [post]
- func (this *OilContractReviewController) 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 modeVO contractReview.OilContractReviewVo
- svc := contractReview.GetOilContractReviewService(utils.DBE)
- itemSvc := contractEvaluationItems.GetOilContractEvaluationItemsService(utils.DBE)
- var jsonBlob = this.Ctx.Input.RequestBody
- json.Unmarshal(jsonBlob, &modeVO)
- var reviewMode contractReview.OilContractReview
- reviewMode.ContractId = modeVO.ContractId
- reviewMode.Status = "0"
- reviewMode.ModifiedOn = time.Now()
- reviewMode.ModifiedBy = this.User.Realname
- reviewMode.ModifiedUserId, _ = utils.StrTo(this.User.Id).Int()
- cols := []string{
- "Id",
- "ContractId",
- "Status",
- "WorkflowId",
- "BusinessKey",
- "ProcessKey",
- "BackRemark",
- "FirstAudit",
- "SecondAudit",
- "ThirdAudit",
- "FourthAudit",
- "ProfessionalAudit",
- "AuditIndex",
- "IsFinal",
- "CreateOn",
- "CreateUserId",
- "CreateBy",
- "ModifiedOn",
- "ModifiedUserId",
- "ModifiedBy",
- }
- err := svc.UpdateEntityBytbl(OilContractReviewName, id, &reviewMode, cols)
- where := "ContentReviewId=" + id
- // 清除掉之前的
- itemSvc.DeleteEntityBytbl(OilContractReviewName,where)
- var items []contractEvaluationItems.OilContractEvaluationItems
- // 新增配置项
- for i,v := range modeVO.Items{
- fmt.Print(i)
- var temp contractEvaluationItems.OilContractEvaluationItems
- temp.ContentReviewId = reviewMode.Id
- temp.Category = 0
- temp.ParentId = v.ParentId
- temp.SequenceNo = v.SequenceNo
- temp.Content = v.Content
- temp.NormalScore = v.NormalScore
- temp.Score = v.Score
- temp.LevelCode = v.LevelCode
- temp.Remark = v.Remark
- temp.Content = v.Content
- items = append(items, temp)
- }
- itemSvc.DBE.Insert(items)
- 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 *OilContractReviewController) 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 contractReview.OilContractReview
- var entityempty contractReview.OilContractReview
- svc := contractReview.GetOilContractReviewService(utils.DBE)
- // 评分审核是否结束校验
- opdesc := "删除-" + Id
- err := svc.DeleteOperationAndWriteLogBytbl(OilContractReviewName, 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} controllers.Request
- // @router /unit-audit/:id [post]
- func (this *OilContractReviewController) UnitAuditEntity() {
- Id := this.Ctx.Input.Param(":id")
- firstAudit := this.GetString("FirstAudit")
- secondAudit := this.GetString("SecondAudit")
- thirdAudit := this.GetString("ThirdAudit")
- 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
- fmt.Println("2222222222")
- 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()
- }
- }()
- //取出日常评审主表信息
- conRev := contractReview.GetOilContractReviewService(utils.DBE)
- var contractReviewEntity contractReview.OilContractReview
- conRev.GetEntityById(Id, &contractReviewEntity)
- //检查是否可提交
- //conRev.IsSupplierCertCanSubmit(strconv.Itoa(supplierCertEntity.SupplierId), certId)
- //取出合同表
- contractSvc := contract.GetOilContractService(utils.DBE)
- var contractEntity contract.OilContract
- contractSvc.GetEntityById(contractReviewEntity.ContractId, &contractEntity)
- svcActiviti := workflow.GetActivitiService(utils.DBE)
- //启动工作流
- businessKey := contractReviewEntity.BusinessKey
- processInstanceId := contractReviewEntity.WorkflowId
- // 如果被驳回,不再新启工作流
- if processInstanceId == "" {
- //启动工作流
- businessKey = Id + "-" + strconv.Itoa(contractReviewEntity.AuditIndex)
- processInstanceId = svcActiviti.StartProcess2(workflow.OIL_DAILY_CONTRACT_EVALUATION, businessKey, this.User.Id, "1", contractEntity.ContractClass, contractEntity.SupplierName)
- if len(processInstanceId) <= 0 {
- panic("工作流启动失败!")
- }
- contractReviewEntity.AuditIndex += 1
- }
- // 将启动和工作流,选择的初审和复审人员保存下来
- cols := []string{
- "Id",
- "FirstAudit",
- "SecondAudit",
- "thirdAudit",
- "WorkflowId",
- "BusinessKey",
- "ProcessKey",
- "CommitComId",
- "AuditIndex",
- }
- contractReviewEntity.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVALUATION
- contractReviewEntity.BusinessKey = businessKey
- contractReviewEntity.WorkflowId = processInstanceId
- contractReviewEntity.FirstAudit, _ = strconv.Atoi(firstAudit)
- contractReviewEntity.SecondAudit, _ = strconv.Atoi(secondAudit)
- contractReviewEntity.ThirdAudit, _ = strconv.Atoi(thirdAudit)
- contractReviewEntity.CommitComId = strconv.Itoa(unitId)
- conRev.UpdateEntityByIdCols(Id, contractReviewEntity, cols)
- var ActiComplete workflow.ActiCompleteVM
- ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVALUATION
- ActiComplete.BusinessKey = contractReviewEntity.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 /common-audit/:id [post]
- func (this *OilContractReviewController) CommonAuditEntity() {
- Id := 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 {
- //返回正确结果
- if result == "1" {
- errinfo.Message = "审核提交成功"
- } else {
- errinfo.Message = "审核驳回成功"
- }
- errinfo.Code = 0
- this.Data["json"] = &errinfo
- this.ServeJSON()
- }
- }()
- //取出日常评审主表信息
- conRev := contractReview.GetOilContractReviewService(utils.DBE)
- var contractReviewEntity contractReview.OilContractReview
- conRev.GetEntityById(Id, &contractReviewEntity)
- svcActiviti := workflow.GetActivitiService(utils.DBE)
- var ActiComplete workflow.ActiCompleteVM
- ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVALUATION
- ActiComplete.BusinessKey = contractReviewEntity.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 *OilContractReviewController) BusinessOfficeSeparateAuditEntity() {
- Id := 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()
- }
- }()
- //取出日常评审主表信息
- conRev := contractReview.GetOilContractReviewService(utils.DBE)
- var contractReviewEntity contractReview.OilContractReview
- conRev.GetEntityById(Id, &contractReviewEntity)
- svcActiviti := workflow.GetActivitiService(utils.DBE)
- var ActiComplete workflow.ActiCompleteVM
- ActiComplete.ProcessKey = workflow.OIL_DAILY_CONTRACT_EVALUATION
- ActiComplete.BusinessKey = contractReviewEntity.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(contractReviewEntity.BusinessKey, "-")[0]
- contractReviewEntity.Status = suppliercert.PROF_AUDIT_STATUS //专业处室接收
- contractReviewEntity.ProfessionalAudit, _ = strconv.Atoi(ProfessionalAudit)
- conRev.UpdateEntityByIdCols(supplierCertId, contractReviewEntity, cols)
- }
|