Jelajahi Sumber

信息变更修改

huahaiyan 6 tahun lalu
induk
melakukan
517620ed93

+ 73 - 71
src/dashoo.cn/backend/api/business/oilsupplier/infochange/infochange.go

@@ -5,81 +5,83 @@ import (
 )
 
 type OilInfoChange struct {
-	Id                 int       `xorm:"not null pk default 0 INT(10)"`
-	AccessCardNo       int       `xorm:"not null default 0 comment('准入证号') INT(10)"`
-	OldAccessCardNo    int       `xorm:"not null default 0 comment('曾用准入证号') INT(10)"`
-	SupplierName       string    `xorm:"comment('企业名称') VARCHAR(255)"`
-	Status             string    `xorm:"comment('状态标识') VARCHAR(10)"`
-	WorkFlowId         string    `xorm:"comment('工作流的ID') VARCHAR(50)"`
-	OldSupplierName    string    `xorm:"comment('曾用名') VARCHAR(255)"`
-	SupplierTypecode   string    `xorm:"comment('准入类别代码(1 物资类,2 基建类,3 技术服务类)') VARCHAR(5)"`
-	Suppliertypename   string    `xorm:"comment('准入类别名称(1 物资类,2 基建类,3 技术服务类)') VARCHAR(50)"`
-	OilCertificateNo   string    `xorm:"comment('中石油供应商证书号') VARCHAR(50)"`
-	Grade              string    `xorm:"comment('级别') VARCHAR(2)"`
-	MgrUnit            string    `xorm:"comment('管理单位') VARCHAR(50)"`
-	OperType           string    `xorm:"comment('经营方式') CHAR(1)"`
-	Country            string    `xorm:"comment('国家') VARCHAR(20)"`
-	MaunAgent          string    `xorm:"comment('所代理制造商名称') VARCHAR(100)"`
-	ConstructTeam      string    `xorm:"comment('施工队伍名称') VARCHAR(100)"`
-	CommercialNo       string    `xorm:"comment('工商注册号') VARCHAR(50)"`
-	OrganCode          string    `xorm:"comment('组织机构代码') VARCHAR(50)"`
-	CountryTaxNo       string    `xorm:"comment('税务登记证国税编号') VARCHAR(50)"`
-	LocalTaxNo         string    `xorm:"comment('税务登记证地税编号') VARCHAR(50)"`
-	Address            string    `xorm:"comment('单位地址') VARCHAR(500)"`
-	Province           string    `xorm:"comment('省直辖市') VARCHAR(20)"`
-	City               string    `xorm:"comment('地市区县') VARCHAR(20)"`
-	Street             string    `xorm:"comment('街道') VARCHAR(20)"`
-	HouseNo            string    `xorm:"comment('门牌号') VARCHAR(10)"`
-	ZipCode            string    `xorm:"comment('邮编') VARCHAR(20)"`
-	QualitySystemCert  string    `xorm:"comment('质量管理体系认证情况及认证机构') VARCHAR(200)"`
-	ProductQualityCert string    `xorm:"comment('产品质量认证情况及认证机构') VARCHAR(200)"`
-	MaunLicense        string    `xorm:"comment('生产制造许可证获证情况及编号') VARCHAR(200)"`
-	QualifCert         string    `xorm:"comment('企业资质证书编号') VARCHAR(200)"`
-	QualifCertLevel    string    `xorm:"comment('企业资质证书级别') VARCHAR(10)"`
-	SafetyLicense      string    `xorm:"comment('安全生产许可证') VARCHAR(200)"`
-	TechServiceLic     string    `xorm:"comment('技术服务类准入许可证') VARCHAR(200)"`
-	TJInNotify         string    `xorm:"comment('外地企业进津备案通知书') VARCHAR(50)"`
-	SpecIndustryCert   string    `xorm:"comment('行业特殊要求的认证证书') VARCHAR(200)"`
-	LegalPerson        string    `xorm:"comment('法定代表人姓名') VARCHAR(20)"`
-	CategoryCode       string    `xorm:"comment('行业类别代码') VARCHAR(10)"`
-	CategoryName       string    `xorm:"comment('行业类别名称') VARCHAR(20)"`
-	RegCapital         float32   `xorm:"default 0 comment('注册资本') FLOAT"`
-	Currency           string    `xorm:"comment('币种') VARCHAR(10)"`
-	ContactName        string    `xorm:"comment('联系人姓名') VARCHAR(20)"`
-	CompanyType        string    `xorm:"comment('公司类型') VARCHAR(20)"`
-	DepositBank        string    `xorm:"comment('开户银行') VARCHAR(50)"`
-	BankAccount        string    `xorm:"comment('银行账号') VARCHAR(50)"`
-	SetupTime          time.Time `xorm:"comment(' 成立时间') DATE"`
-	Email              string    `xorm:"comment('电子邮箱') VARCHAR(50)"`
-	BankCreditRating   string    `xorm:"comment('银行信用等级') VARCHAR(10)"`
-	Mobile             string    `xorm:"comment('移动电话') VARCHAR(20)"`
-	Telphone           string    `xorm:"comment('固定电话') VARCHAR(20)"`
-	Fax                string    `xorm:"comment('传真') VARCHAR(20)"`
-	CompanyTel         string    `xorm:"comment('公司电话') VARCHAR(20)"`
-	Qq                 string    `xorm:"comment('QQ号码') VARCHAR(20)"`
-	CompanyUrl         string    `xorm:"comment('公司网址') VARCHAR(20)"`
-	SpecSupplier       string    `xorm:"default '0' comment('是否特殊业务供应商(可不招标)') VARCHAR(2)"`
-	SpecTypeCode       string    `xorm:"comment('业务类型(1战略合作,2内部多经,3区域关键,4专业化实施)') VARCHAR(200)"`
-	SpecTypeName       string    `xorm:"comment('业务类型(1战略合作,2内部多经,3区域关键,4专业化实施)') VARCHAR(500)"`
-	Remark             string    `xorm:"comment('备注') VARCHAR(500)"`
-	IsDelete           int       `xorm:"default 0 comment('删除状态,0正常,1已删除') INT(10)"`
-	CreateOn           time.Time `xorm:"DATETIME"`
-	CreateUserId       int       `xorm:"INT(10)"`
-	CreateBy           string    `xorm:"VARCHAR(50)"`
-	ModifiedOn         time.Time `xorm:"DATETIME"`
-	ModifiedUserId     int       `xorm:"INT(10)"`
-	ModifiedBy         string    `xorm:"VARCHAR(50)"`
-	LinkAddress        string    `xorm:"comment('通信地址-单位地址') VARCHAR(500)"`
-	LinkProvince       string    `xorm:"comment('通信地址-省直辖市') VARCHAR(20)"`
-	LinkCity           string    `xorm:"comment('通信地址-地市区县') VARCHAR(20)"`
-	LinkStreet         string    `xorm:"comment('通信地址-街道') VARCHAR(20)"`
-	LinkHouseNo        string    `xorm:"comment('通信地址-门牌号') VARCHAR(10)"`
-	LinkZipCode        string    `xorm:"comment('通信地址-邮编') VARCHAR(20)"`
-	HseTraining        string    `xorm:"default '0' comment('是否需要进行HSE审查培训') VARCHAR(2)"`
+	Id                  int       `xorm:"<- not null pk autoincr INT(10)"`
+	AccessCardNo        int       `xorm:"not null default 0 comment('准入证号') INT(10)"`
+	OldAccessCardNo     int       `xorm:"not null default 0 comment('曾用准入证号') INT(10)"`
+	SupplierName        string    `xorm:"comment('企业名称') VARCHAR(255)"`
+	Status              string    `xorm:"comment('状态标识') VARCHAR(10)"`
+	WorkFlowId          string    `xorm:"comment('工作流的ID') VARCHAR(50)"`
+	OldSupplierName     string    `xorm:"comment('曾用名') VARCHAR(255)"`
+	SupplierTypeCode    string    `xorm:"comment('准入类别代码(1 物资类,2 基建类,3 技术服务类)') VARCHAR(5)"`
+	SupplierTypeName    string    `xorm:"comment('准入类别名称(1 物资类,2 基建类,3 技术服务类)') VARCHAR(50)"`
+	OilCertificateNo    string    `xorm:"comment('中石油供应商证书号') VARCHAR(50)"`
+	OldOilCertificateNo string    `xorm:"comment('中石油供应商证书号') VARCHAR(50)"`
+	Grade               string    `xorm:"comment('级别') VARCHAR(2)"`
+	MgrUnit             string    `xorm:"comment('管理单位') VARCHAR(50)"`
+	OperType            string    `xorm:"comment('经营方式') CHAR(1)"`
+	Country             string    `xorm:"comment('国家') VARCHAR(20)"`
+	MaunAgent           string    `xorm:"comment('所代理制造商名称') VARCHAR(100)"`
+	ConstructTeam       string    `xorm:"comment('施工队伍名称') VARCHAR(100)"`
+	CommercialNo        string    `xorm:"comment('工商注册号') VARCHAR(50)"`
+	OrganCode           string    `xorm:"comment('组织机构代码') VARCHAR(50)"`
+	CountryTaxNo        string    `xorm:"comment('税务登记证国税编号') VARCHAR(50)"`
+	LocalTaxNo          string    `xorm:"comment('税务登记证地税编号') VARCHAR(50)"`
+	Address             string    `xorm:"comment('单位地址') VARCHAR(500)"`
+	Province            string    `xorm:"comment('省直辖市') VARCHAR(20)"`
+	City                string    `xorm:"comment('地市区县') VARCHAR(20)"`
+	Street              string    `xorm:"comment('街道') VARCHAR(20)"`
+	HouseNo             string    `xorm:"comment('门牌号') VARCHAR(10)"`
+	ZipCode             string    `xorm:"comment('邮编') VARCHAR(20)"`
+	QualitySystemCert   string    `xorm:"comment('质量管理体系认证情况及认证机构') VARCHAR(200)"`
+	ProductQualityCert  string    `xorm:"comment('产品质量认证情况及认证机构') VARCHAR(200)"`
+	MaunLicense         string    `xorm:"comment('生产制造许可证获证情况及编号') VARCHAR(200)"`
+	QualifCert          string    `xorm:"comment('企业资质证书编号') VARCHAR(200)"`
+	QualifCertLevel     string    `xorm:"comment('企业资质证书级别') VARCHAR(10)"`
+	SafetyLicense       string    `xorm:"comment('安全生产许可证') VARCHAR(200)"`
+	TechServiceLic      string    `xorm:"comment('技术服务类准入许可证') VARCHAR(200)"`
+	TJInNotify          string    `xorm:"comment('外地企业进津备案通知书') VARCHAR(50)"`
+	SpecIndustryCert    string    `xorm:"comment('行业特殊要求的认证证书') VARCHAR(200)"`
+	LegalPerson         string    `xorm:"comment('法定代表人姓名') VARCHAR(20)"`
+	CategoryCode        string    `xorm:"comment('行业类别代码') VARCHAR(10)"`
+	CategoryName        string    `xorm:"comment('行业类别名称') VARCHAR(20)"`
+	RegCapital          float32   `xorm:"default 0 comment('注册资本') FLOAT"`
+	Currency            string    `xorm:"comment('币种') VARCHAR(10)"`
+	ContactName         string    `xorm:"comment('联系人姓名') VARCHAR(20)"`
+	CompanyType         string    `xorm:"comment('公司类型') VARCHAR(20)"`
+	DepositBank         string    `xorm:"comment('开户银行') VARCHAR(50)"`
+	BankAccount         string    `xorm:"comment('银行账号') VARCHAR(50)"`
+	SetupTime           time.Time `xorm:"comment(' 成立时间') DATE"`
+	Email               string    `xorm:"comment('电子邮箱') VARCHAR(50)"`
+	BankCreditRating    string    `xorm:"comment('银行信用等级') VARCHAR(10)"`
+	Mobile              string    `xorm:"comment('移动电话') VARCHAR(20)"`
+	Telphone            string    `xorm:"comment('固定电话') VARCHAR(20)"`
+	Fax                 string    `xorm:"comment('传真') VARCHAR(20)"`
+	CompanyTel          string    `xorm:"comment('公司电话') VARCHAR(20)"`
+	Qq                  string    `xorm:"comment('QQ号码') VARCHAR(20)"`
+	CompanyUrl          string    `xorm:"comment('公司网址') VARCHAR(20)"`
+	SpecSupplier        string    `xorm:"default '0' comment('是否特殊业务供应商(可不招标)') VARCHAR(2)"`
+	SpecTypeCode        string    `xorm:"comment('业务类型(1战略合作,2内部多经,3区域关键,4专业化实施)') VARCHAR(200)"`
+	SpecTypeName        string    `xorm:"comment('业务类型(1战略合作,2内部多经,3区域关键,4专业化实施)') VARCHAR(500)"`
+	Remark              string    `xorm:"comment('备注') VARCHAR(500)"`
+	IsDelete            int       `xorm:"default 0 comment('删除状态,0正常,1已删除') INT(10)"`
+	CreateOn            time.Time `xorm:"DATETIME"`
+	CreateUserId        int       `xorm:"INT(10)"`
+	CreateBy            string    `xorm:"VARCHAR(50)"`
+	ModifiedOn          time.Time `xorm:"DATETIME"`
+	ModifiedUserId      int       `xorm:"INT(10)"`
+	ModifiedBy          string    `xorm:"VARCHAR(50)"`
+	LinkAddress         string    `xorm:"comment('通信地址-单位地址') VARCHAR(500)"`
+	LinkProvince        string    `xorm:"comment('通信地址-省直辖市') VARCHAR(20)"`
+	LinkCity            string    `xorm:"comment('通信地址-地市区县') VARCHAR(20)"`
+	LinkStreet          string    `xorm:"comment('通信地址-街道') VARCHAR(20)"`
+	LinkHouseNo         string    `xorm:"comment('通信地址-门牌号') VARCHAR(10)"`
+	LinkZipCode         string    `xorm:"comment('通信地址-邮编') VARCHAR(20)"`
+	HseTraining         string    `xorm:"default '0' comment('是否需要进行HSE审查培训') VARCHAR(2)"`
 }
 
 type OilInfoChangeItem struct {
 	Id             int       `xorm:"not null pk autoincr INT(10)"`
+	InfoId         int       `xorm:"comment('信息变更主表Id') INT(10)"`
 	SupplierId     int       `xorm:"comment('供方Id') INT(10)"`
 	SelectItem     string    `xorm:"comment('变更字段名') VARCHAR(50)"`
 	SelectItemName string    `xorm:"comment('变更字段名') VARCHAR(255)"`

+ 20 - 0
src/dashoo.cn/backend/api/business/oilsupplier/infochange/infochangeService.go

@@ -1,6 +1,7 @@
 package infochange
 
 import (
+	"fmt"
 	"strconv"
 	"strings"
 
@@ -128,3 +129,22 @@ func (s *InfoChangeService) SubmitOrgAudit(workflowid, certId, annualId, wfName,
 	svcActiviti.MultiTaskComplete(ActiComplete)
 	return processInstanceId
 }
+
+func (s *InfoChangeService) Insertentityinfo(infoname string, items string) (int64, error){
+	allitem := strings.Split(items, ";")
+	var selectitem string
+	var selectiteval string
+	for i:=0; i<len(allitem); i++ {
+		infoitem := strings.Split(allitem[i],",")
+		selectitem = fmt.Sprintf("%s %s %s",selectitem, strings.Trim(infoitem[0]," ") +",", "Old"+strings.Trim(infoitem[0], " ")+"," )
+		selectiteval = fmt.Sprintf("%s %s %s",selectiteval, `"`+ strings.Trim(infoitem[1], " ") +`",`, `"`+ strings.Trim(infoitem[2], " ") +`",` )
+	}
+	selectitem = strings.Trim(selectitem, ",")
+	selectiteval = strings.Trim(selectiteval, ",")
+	var sql string
+	sql = `INSERT INTO ` + infoname + `(` + selectitem + `) VALUES (` + selectiteval +`)`
+	res, err := s.DBE.Exec(sql)
+	fmt.Println(res.LastInsertId())
+	infoid,_ := res.LastInsertId()
+	return infoid, err
+}

+ 2 - 0
src/dashoo.cn/backend/api/business/workflow/workflow.go

@@ -87,4 +87,6 @@ const (
 	OIL_AUDIT_APPLY string = "oil_audit_apply"
 	//供方增项流程图
 	OIL_APPEND_APPLY string = "oil_append_apply"
+	//信息变更流程图
+	OIL_INFO_CHANGE string = "oil_info_change"
 )

+ 1 - 0
src/dashoo.cn/backend/api/controllers/base.go

@@ -246,6 +246,7 @@ var (
 	OilAnnualAuditName                       string = "OilAnnualAudit"              //年审表
 	OilSupplierOpinionName                   string = "OilSupplierOpinion"          //追加意见表
 	OilInfoChangeItemName                    string = "OilInfoChangeItem"           //信息变更表
+	OilInfoChangeName                        string = "OilInfoChange"               //信息变更表
 )
 
 //分页信息及数据

+ 12 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/annualaudit.go

@@ -6,6 +6,7 @@ import (
 	"dashoo.cn/backend/api/business/paymentinfo"
 	"dashoo.cn/business2/areajson"
 	"dashoo.cn/business2/items"
+	"dashoo.cn/business2/permission"
 
 	"dashoo.cn/backend/api/business/auditsetting"
 	"encoding/json"
@@ -83,6 +84,17 @@ func (this *AnnualAuditController) GetEntityList() {
 			where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
 		}
 	}
+	//企业用户必须加创建人条件
+	if this.User.IsCompanyUser == 1 {
+		where = where + " and 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 CreateUserId = '" + this.User.Id + "'"
+		}
+	}
 
 	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
 	var list []annualaudit.OilAnnualAudit

+ 121 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/infochange.go

@@ -1,8 +1,13 @@
 package oilsupplier
 
 import (
+	"dashoo.cn/backend/api/business/auditsetting"
 	"dashoo.cn/backend/api/business/oilsupplier/infochange"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercert"
+	"dashoo.cn/business2/userRole"
 	"encoding/json"
+	"fmt"
+	"strconv"
 	"strings"
 	"time"
 
@@ -81,6 +86,10 @@ func (this *InfoChangeController) GetEntityList() {
 			where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
 		}
 	}
+	//找出待办任务
+	actisvc := workflow.GetActivitiService(utils.DBE)
+	certIdList := actisvc.GetMyTasks(workflow.OIL_INFO_CHANGE, this.User.Id)
+	where += " and Id in (" + certIdList + ")"
 
 	svc := infochange.GetInfoChangeService(utils.DBE)
 	var list []infochange.OilInfoChange
@@ -240,3 +249,115 @@ func (this *InfoChangeController) AddInfoChangeItem() {
 		this.ServeJSON()
 	}
 }
+
+// @Title 获取二级初审人员
+// @Description 获取二级初审人员
+// @router /getauditerbydept/:deptId [get]
+func (this *InfoChangeController) GetAuditerByDept() {
+	Id := this.Ctx.Input.Param(":deptId")
+
+	//var auditWorkflow auditsetting.Base_OilAuditSetting
+	rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
+	//rsvc.GetAuditStepRoleEntity(OilAuditSettingName, Id, workflow.FIRST_TRIAL, &auditWorkflow)
+	var userlist []userRole.Base_User
+	where := " CompanyId = "+ Id
+	rsvc.GetEntities(&userlist, where)
+
+	var datainfo ErrorDataInfo
+	datainfo.Item = userlist
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+
+// @Title 提交审批
+// @Description 提交审批
+// @Success	200	{object} controllers.Request
+// @router /audit/:id [post]
+func (this *InfoChangeController) AuditEntity() {
+	suppId := this.Ctx.Input.Param(":id")
+	firstAudit := this.GetString("firstAudit")
+
+	//取出审批列表
+	svc := infochange.GetInfoChangeService(utils.DBE)
+	var infoitems [] infochange.OilInfoChangeItem
+	where := " SupplierId = "+ suppId
+	svc.GetEntities(&infoitems, where)
+	var infochangeentity infochange.OilInfoChange
+	var infomodel infochange.OilInfoChangeItem
+	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()
+		}
+	}()
+	var items string
+	for i:=0 ;i<len(infoitems); i++ {
+		items = fmt.Sprintf("%s %s %s %s",items, infoitems[i].SelectItem , ","+ infoitems[i].BeChangeInfo , ","+ infoitems[i].ChangeInfo +";")
+	}
+	items = strings.Trim(items, ";")
+	infoid,_ := svc.Insertentityinfo(OilInfoChangeName, items)
+
+	for i:=0; i<len(infoitems); i++ {
+		infomodel.InfoId,_ = strconv.Atoi(strconv.FormatInt(infoid,10))
+		err := svc.UpdateEntityBytbl(OilInfoChangeItemName, infoitems[i].Id, &infomodel, []string{"InfoId"} )
+		fmt.Println(err)
+	}
+
+	svcActiviti := workflow.GetActivitiService(utils.DBE)
+	processInstanceId := ""
+	if infochangeentity.WorkFlowId == "0" || len(infochangeentity.WorkFlowId) <= 0 {
+		//启动工作流
+		processInstanceId = svcActiviti.StartProcess(workflow.OIL_INFO_CHANGE, utils.ToStr(infoid), this.User.Id)
+	}
+
+	var ActiComplete workflow.ActiCompleteVM
+	ActiComplete.ProcessKey = workflow.OIL_INFO_CHANGE
+	ActiComplete.BusinessKey = utils.ToStr(infoid)
+	ActiComplete.UserNames = firstAudit
+	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(首次提交时才会记录,中间状态请忽略) 及审批状态
+
+	infochangeentity.WorkFlowId = processInstanceId
+	infochangeentity.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
+	infochangeentity.CreateOn = time.Now()
+	infochangeentity.CreateBy = this.User.Realname
+	infochangeentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
+	cols := []string{
+		"Id",
+		"WorkflowId",
+		"Status",
+		"Step",
+		"FirstAudit",
+		"CreateOn",
+		"CreateBy",
+		"CreateUserId",
+	}
+	svc.UpdateEntityByIdCols(infoid, infochangeentity, cols)
+}
+

+ 11 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/supplier.go

@@ -337,6 +337,17 @@ func (this *OilSupplierController) GetEntityList() {
 			where = where + " and CreateOn>='" + minDate + "' and CreateOn<='" + maxDate + "'"
 		}
 	}
+	//企业用户必须加创建人条件
+	if this.User.IsCompanyUser == 1 {
+		where = where + " and 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 CreateUserId = '" + this.User.Id + "'"
+		}
+	}
 
 	svc := supplier.GetOilSupplierService(utils.DBE)
 	var list []supplier.OilSupplier

+ 0 - 1
src/dashoo.cn/backend/api/controllers/oilsupplier/suppliercertappend.go

@@ -97,7 +97,6 @@ func (this *OilSupplierCertAppendController) GetList() {
 		if !svcPerm.IsAdmin(this.User.Id) && !isauth {
 			where = where + " and a.CreateUserId = '" + this.User.Id + "'"
 		}
-
 	}
 
 	svc := suppliercertappend.GetOilSupplierCertAppendService(utils.DBE)

+ 5 - 13
src/dashoo.cn/frontend_web/src/api/oilsupplier/infochange.js

@@ -31,24 +31,16 @@ export default {
       method: 'delete'
     })
   },
-  auditEntity (entityId, myAxios) {
+  auditEntity (entityId, FirstAudit, myAxios) {
     return myAxios({
-      url: '/infochange/audit/' + entityId,
+      url: '/infochange/audit/' + entityId + '?firstAudit=' + FirstAudit,
       method: 'post'
     })
   },
-  // 专业审批
-  auditEntityadmission (entityId, myAxios) {
+  getAuditerByDept(deptId, myAxios) {
     return myAxios({
-      url: '/infochange/admission/' + entityId,
-      method: 'post'
-    })
-  },
-  // 增项审批
-  auditEntityappend (entityId, myAxios) {
-    return myAxios({
-      url: '/infochange/auditappend/' + entityId,
-      method: 'post'
+      url: '/infochange/getauditerbydept/' + deptId,
+      method: 'GET'
     })
   }
 }

+ 1 - 1
src/dashoo.cn/frontend_web/src/pages/oilsupplier/annualaudit/_opera/operation.vue

@@ -182,7 +182,7 @@
       <el-form label-width="90px" :model="entityForm" :rules="rules" ref="EntityFormref">
         <el-row>
           <el-col :span="24">
-            <el-form-item label="审单位" prop="FirstAudit" required>
+            <el-form-item label="审单位" prop="FirstAudit" required>
               <el-cascader :options="orgtreelist" :props="orgtreeprops" change-on-select :show-all-levels="false"
                 filterable @change="auditOrgChang" style="width: 100%" v-model="entityForm.FirstAudit"
                 placeholder="请选择组织"></el-cascader>

+ 292 - 0
src/dashoo.cn/frontend_web/src/pages/oilsupplier/infochange/_opera/auditoperation.vue

@@ -0,0 +1,292 @@
+<template>
+  <div>
+    <el-breadcrumb class="heading">
+      <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
+      <el-breadcrumb-item :to="{ path: '/oilsupplier/infochange' }">供方基本信息表</el-breadcrumb-item>
+      <el-breadcrumb-item>编辑</el-breadcrumb-item>
+    </el-breadcrumb>
+    <el-card class="box-card">
+      <div slot="header">
+        <span>
+          <i class="icon icon-table2"></i> 编辑
+        </span>
+        <span style="float: right;">
+          <el-button type="primary" size="mini" @click="submitInfoChange">审核</el-button>
+          <router-link :to="'/oilsupplier/infochange'">
+            <el-button type="primary" size="mini" style="margin-left: 8px">返回</el-button>
+          </router-link>
+        </span>
+      </div>
+      <el-card>
+        <div slot="header" class="clearfix" style="height:10px">
+          <span style="font-weight:bold;">信息变更</span>
+        </div>
+        <el-table :data="InfoData" border style="width: 100%">
+          <el-table-column align="center" prop="SelectItemName" label="变更项目">
+          </el-table-column>
+          <el-table-column align="center" prop="BeChangeInfo" label="变更前内容">
+          </el-table-column>
+          <el-table-column prop="ChangeInfo" align="center" label="变更后内容">
+          </el-table-column>
+        </el-table>
+      </el-card>
+    </el-card>
+    <el-dialog title="提交申请" :visible.sync="commitshow" width="360px">
+      <el-form label-width="90px" :model="entityForm" :rules="rules" ref="EntityFormref">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="审批单位" prop="FirstAudit" required>
+              <el-cascader :options="orgtreelist" :props="orgtreeprops" change-on-select :show-all-levels="false"
+                filterable @change="auditOrgChang" style="width: 100%" v-model="entityForm.FirstAudit"
+                placeholder="请选择组织"></el-cascader>
+              <!-- <el-select ref="selectauditOrg" v-model="entityForm.FirstAudit" placeholder="请选择" style="width: 100%"
+                @change="auditOrgChang" filterable allow-create default-first-option>
+                <el-option v-for="item in organizeOption" :key="item.id" :label="item.name" :value="item.id">
+                </el-option>
+              </el-select> -->
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="审批人" prop="auditer" required>
+              <el-select ref="selectAuditer" v-model="entityForm.auditer" placeholder="请选择" style="width: 100%"
+                filterable allow-create default-first-option>
+                <el-option v-for="item in auditerOption" :key="item.Id" :label="item.Realname" :value="item.Id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span style="float: right;margin-top:-10px;">
+        <el-button size="small" @click="commitshow = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="addInfoChangeAudit()">确 定</el-button>
+      </span>
+      <br>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+  import {
+    mapGetters
+  } from 'vuex'
+  import supplierapi from '@/api/oilsupplier/supplier';
+  import api from '@/api/oilsupplier/infochange';
+  export default {
+    computed: {
+      ...mapGetters({
+        authUser: 'authUser'
+      })
+    },
+    name: 'oilinfochangeEdit',
+
+    data() {
+      return {
+        infoitemsoptions: [{
+          value: 'SupplierName',
+          label: '企业名称'
+        }, {
+          value: 'OilCertificateNo',
+          label: '中石油供应商证书号'
+        }, {
+          value: 'Grade',
+          label: '级别'
+        }, {
+          value: 'MgrUnit',
+          label: '管理单位'
+        }, {
+          value: 'OperType',
+          label: '经营方式'
+        }],
+        orgtreelist: [],
+        orgtreeprops: {
+          value: 'id',
+          label: 'Fullname',
+          children: 'children'
+        },
+        supplierId:'',
+        auditerOption: [],
+        commitshow: false,
+        InfoData: [],
+        UnitRelationOptions: [],
+        UnitRelationAry: [],
+        countryoptions: [],
+        selectuserlist: [],
+        countryprops: {
+          value: 'adcode',
+          label: 'name',
+          children: 'districts'
+        },
+        infochangeForm: {
+          Id: '',
+          SupplierId: '',
+          SelectItem: '',
+          SelectItemName: '',
+          BeChangeInfo: '',
+          ChangeInfo: '',
+          ChangeStatus: '',
+        },
+        serviceId: '',
+        certId: '',
+        entityForm: {
+          Id: '',
+          SupplierName: '',
+          SupplierId: '',
+          SupplierTypeName: '',
+          FirstAudit: '',
+          auditer: '',
+        },
+        rules: {
+          FirstAudit: [{
+            required: true,
+            message: '请选择初审单位',
+            trigger: 'blur'
+          }],
+          auditer: [{
+            required: true,
+            message: '请选择审批人',
+            trigger: 'blur'
+          }]
+        }
+      }
+    },
+    created() {
+      this.serviceId = this.$route.params.opera
+      this.supplierId = this.serviceId
+      this.initDatas()
+    },
+    methods: {
+      initDatas() {
+        console.log("----this.formData.Id---", this.serviceId)
+        if (this.serviceId) {
+          api.getEntity(this.serviceId, this.$axios).then(res => {
+            this.InfoData = res.data.items
+            this.itemsfilter()
+            console.log("---res.data.items---", res.data.items)
+          }).catch(err => {
+            console.error(err)
+          });
+        }
+      },
+      itemsfilter() {
+        try {
+          let entityArray = this.InfoData
+          let arr = this.infoitemsoptions
+          if (entityArray == null) {
+            this.selectuserlist = arr
+            return false
+          }
+          this.selectuserlist = []
+          for (var i = 0; i < entityArray.length; i++) {
+            for (var j = 0; j < arr.length; j++) {
+              if (entityArray[i].SelectItem === arr[j].value) {
+                this.selectuserlist.push(arr[j])
+                arr.splice(j, 1)
+                j--
+              }
+            }
+          }
+          this.selectuserlist = arr
+        } catch (e) {
+          console.log(e)
+        }
+      },
+     
+      getorgtreelist() {
+        let _this = this
+        // request
+        let params = {
+          IsInnerOrganize: 1
+        }
+        _this.$axios.get('organizes/list', {
+            params
+          })
+          .then(res => {
+            _this.orgtreelist = window.toolfun_gettreejson(res.data.items, 'Id', 'Parentid', 'Id,Fullname')
+          })
+          .catch(err => {
+            // handle error
+            console.error(err)
+          })
+      },
+      auditOrgChang(val) {
+        console.log("------val----", val)
+        this.auditerOption = []
+        this.entityForm.auditer = ''
+        api.getAuditerByDept(val[val.length - 2], this.$axios).then(res => {
+          // if (res.data.item.length === 0) {
+          //   this.$message({
+          //     type: 'warning',
+          //     message: '该单位未设置审批人员!'
+          //   })
+          //   return
+          // }
+          console.log("---res.data.item--", res.data.item)
+          this.auditerOption = res.data.item
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      //提交信息变更审核
+      submitInfoChange() {
+        this.getorgtreelist()
+        this.commitshow = true
+      },
+      addInfoChangeAudit() {
+        console.log("==this.supplierId====",this.supplierId)
+        api.auditEntity(this.supplierId, this.entityForm.auditer, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            // 保存成功后,初始化数据,变成修改
+            this.initDatas()
+            this.commitshow = false
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            })
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            })
+          }
+        }).catch(err => {
+          console.error(err)
+        })
+      },
+      getCityList(val) {
+        let resultData = JSON.parse(val)
+        let countstr = JSON.stringify(resultData.districts[0].districts)
+        countstr = countstr.replace(/\,\"districts\"\:\[\]/g, '')
+        this.countryoptions = JSON.parse(countstr)
+      },
+      jstimehandle(val) {
+        if (val === '') {
+          return '----'
+        } else if (val === '0001-01-01T08:00:00+08:00') {
+          return '----'
+        } else if (val === '5000-01-01T23:59:59+08:00') {
+          return '永久'
+        } else {
+          val = val.replace('T', ' ')
+          return val.substring(0, 10)
+        }
+      },
+
+      formatDateTime(date) {
+        var y = date.getFullYear();
+        var m = date.getMonth() + 1;
+        m = m < 10 ? ('0' + m) : m;
+        var d = date.getDate();
+        d = d < 10 ? ('0' + d) : d;
+        var h = date.getHours();
+        var minute = date.getMinutes();
+        minute = minute < 10 ? ('0' + minute) : minute;
+        return y + '-' + m + '-' + d + ' ' + h + ':' + minute;
+      }
+    }
+  }
+
+</script>

+ 134 - 8
src/dashoo.cn/frontend_web/src/pages/oilsupplier/infochange/_opera/operation.vue

@@ -463,7 +463,7 @@
       <el-card>
         <div slot="header" class="clearfix" style="height:10px">
           <span style="font-weight:bold;">信息变更</span>
-          <el-button style="float: right;" size="mini" type="primary" @click="AddChangeShow = true">添加变更</el-button>
+          <el-button style="float: right;" size="mini" type="primary" @click="addchange">添加变更</el-button>
         </div>
         <el-table :data="InfoData" border style="width: 100%">
           <el-table-column label="操作" min-width="90" align="center" fixed>
@@ -511,6 +511,40 @@
         <el-button type="primary" size="small" @click="saveitemschange()">确 定</el-button>
       </div>
     </el-dialog>
+    <el-dialog title="提交申请" :visible.sync="commitshow" width="360px">
+      <el-form label-width="90px" :model="entityForm" :rules="rules" ref="EntityFormref">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="审批单位" prop="FirstAudit" required>
+              <el-cascader :options="orgtreelist" :props="orgtreeprops" change-on-select :show-all-levels="false"
+                filterable @change="auditOrgChang" style="width: 100%" v-model="entityForm.FirstAudit"
+                placeholder="请选择组织"></el-cascader>
+              <!-- <el-select ref="selectauditOrg" v-model="entityForm.FirstAudit" placeholder="请选择" style="width: 100%"
+                @change="auditOrgChang" filterable allow-create default-first-option>
+                <el-option v-for="item in organizeOption" :key="item.id" :label="item.name" :value="item.id">
+                </el-option>
+              </el-select> -->
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="审批人" prop="auditer" required>
+              <el-select ref="selectAuditer" v-model="entityForm.auditer" placeholder="请选择" style="width: 100%"
+                filterable allow-create default-first-option>
+                <el-option v-for="item in auditerOption" :key="item.Id" :label="item.Realname" :value="item.Id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span style="float: right;margin-top:-10px;">
+        <el-button size="small" @click="commitshow = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="addInfoChangeAudit()">确 定</el-button>
+      </span>
+      <br>
+    </el-dialog>
 
   </div>
 </template>
@@ -547,6 +581,15 @@
           value: 'OperType',
           label: '经营方式'
         }],
+        orgtreelist: [],
+        orgtreeprops: {
+          value: 'id',
+          label: 'Fullname',
+          children: 'children'
+        },
+        supplierId:'',
+        auditerOption: [],
+        commitshow: false,
         InfoData: [],
         AddChangeShow: false,
         UnitRelationOptions: [],
@@ -569,10 +612,31 @@
         },
         serviceId: '',
         certId: '',
+        entityForm: {
+          Id: '',
+          SupplierName: '',
+          SupplierId: '',
+          SupplierTypeName: '',
+          FirstAudit: '',
+          auditer: '',
+        },
+        rules: {
+          FirstAudit: [{
+            required: true,
+            message: '请选择初审单位',
+            trigger: 'blur'
+          }],
+          auditer: [{
+            required: true,
+            message: '请选择审批人',
+            trigger: 'blur'
+          }]
+        }
       }
     },
     created() {
       this.serviceId = this.$route.params.opera
+      this.supplierId = this.serviceId
       this.initDatas()
     },
     methods: {
@@ -588,6 +652,16 @@
           });
         }
       },
+      addchange() {
+        this.AddChangeShow = true
+        this.infochangeForm.Id = ''
+        this.infochangeForm.SupplierId = ''
+        this.infochangeForm.SelectItem = ''
+        this.infochangeForm.SelectItemName = ''
+        this.infochangeForm.BeChangeInfo = ''
+        this.infochangeForm.ChangeInfo = ''
+        this.infochangeForm.ChangeStatus = ''
+      },
       itemsfilter() {
         try {
           let entityArray = this.InfoData
@@ -615,12 +689,6 @@
       additems() {
         console.log(this.$refs.infochangeCorp.selectedLabel)
         api.getinfoforitem(this.serviceId, this.infochangeForm.Selectitem, this.$axios).then(res => {
-          // var selectvalue = res.data
-          // var list = {
-          //   Value: selectvalue,
-          //   ChangeItem: this.$refs.infochangeCorp.selectedLabel + ''
-          // }
-          // this.InfoData.unshift(list)
           this.infochangeForm.BeChangeInfo = res.data
           this.infochangeForm.SelectItemName = this.$refs.infochangeCorp.selectedLabel + ''
           //this.AddChangeShow = false
@@ -638,6 +706,7 @@
             //保存成功后,初始化数据,变成修改
             this.infochangeForm.Id = res.data.item;
             this.initDatas();
+            this.AddChangeShow = false
             this.$message({
               type: 'success',
               message: res.data.message
@@ -653,9 +722,66 @@
           console.error(err)
         });
       },
+      getorgtreelist() {
+        let _this = this
+        // request
+        let params = {
+          IsInnerOrganize: 1
+        }
+        _this.$axios.get('organizes/list', {
+            params
+          })
+          .then(res => {
+            _this.orgtreelist = window.toolfun_gettreejson(res.data.items, 'Id', 'Parentid', 'Id,Fullname')
+          })
+          .catch(err => {
+            // handle error
+            console.error(err)
+          })
+      },
+      auditOrgChang(val) {
+        console.log("------val----", val)
+        this.auditerOption = []
+        this.entityForm.auditer = ''
+        api.getAuditerByDept(val[val.length - 2], this.$axios).then(res => {
+          // if (res.data.item.length === 0) {
+          //   this.$message({
+          //     type: 'warning',
+          //     message: '该单位未设置审批人员!'
+          //   })
+          //   return
+          // }
+          console.log("---res.data.item--", res.data.item)
+          this.auditerOption = res.data.item
+        }).catch(err => {
+          console.error(err)
+        })
+      },
       //提交信息变更审核
       submitInfoChange() {
-
+        this.getorgtreelist()
+        this.commitshow = true
+      },
+      addInfoChangeAudit() {
+        console.log("==this.supplierId====",this.supplierId)
+        api.auditEntity(this.supplierId, this.entityForm.auditer, this.$axios).then(res => {
+          if (res.data.code === 0) {
+            // 保存成功后,初始化数据,变成修改
+            this.initDatas()
+            this.commitshow = false
+            this.$message({
+              type: 'success',
+              message: res.data.message
+            })
+          } else {
+            this.$message({
+              type: 'warning',
+              message: res.data.message
+            })
+          }
+        }).catch(err => {
+          console.error(err)
+        })
       },
       //删除信息变更项
       deleteEntity(row) {

+ 4 - 17
src/dashoo.cn/frontend_web/src/pages/oilsupplier/infochange/infoaudit.vue

@@ -38,24 +38,11 @@
       </div>
       <el-table :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby">
         <el-table-column label="操作" min-width="90" align="center" fixed>
-          <!-- <template slot-scope="scope"> -->
-            <!-- <router-link :to="'/oilsupplier/infochange/' + scope.row.Id + '/operation'"> -->
+          <template slot-scope="scope">
+            <router-link :to="'/oilsupplier/infochange/' + scope.row.Id + '/auditoperation'">
               <el-button type="primary" plain title="审核" size="mini">审核</el-button>
-            <!-- </router-link> -->
-            <!-- <el-popover placement="top" title="提示">
-              <el-alert
-                title=""
-                description="确认要删除吗?"
-                type="warning"
-                :closable="false">
-              </el-alert>
-              <br/>
-              <div style="text-align: right; margin: 0">
-                <el-button type="primary" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
-              </div>
-              <el-button :disabled="scope.row.Status != 0" slot="reference" type="primary" plain title="删除" style="margin-left:3px" size="mini">删除</el-button>
-            </el-popover> -->
-          <!-- </template> -->
+            </router-link>
+          </template>
         </el-table-column>
 
         <el-table-column v-for="column in tableColumns" :key="column.Id" :prop="column.prop" sortable min-width="100"