瀏覽代碼

Merge branch 'contract_tmp' of http://code.dashoo.cn/dashoo/supplier_system into contract_tmp

王宇昕 5 年之前
父節點
當前提交
b2b0827f23

+ 12 - 13
src/dashoo.cn/backend/api/business/oilcontract/contractEvaluationItems/contractEvaluationItems.go

@@ -5,17 +5,16 @@ import (
 )
 
 type OilContractEvaluationItems struct {
-	Id             int       `json:"Id" xorm:"not null pk autoincr comment('ID') INT(11) 'Id'"`
-	ContractId     int       `json:"ContractId" xorm:"default 0 comment('合同表ID') INT(11) 'ContractId'"`
-	ContractWorkId int       `json:"ContractId" xorm:"default 0 comment('ReviewWork表ID') INT(11) 'ContractWorkId'"`
-	ParentId       int       `json:"ParentId" xorm:"not null default 0 comment('上级节点ID') INT(11) 'ParentId'"`
-	SequenceNo     string    `json:"SequenceNo" xorm:"default '0' comment('序号') VARCHAR(50) 'SequenceNo'"`
-	Content        string    `json:"content" xorm:"comment('评价内容') VARCHAR(1000) 'content'"`
-	NormalScore    string    `json:"NormalScore" xorm:"comment('标准分值') DECIMAL(11,2) 'NormalScore'"`
-	Score          string    `json:"Score" xorm:"comment('实得分数') DECIMAL(11,2) 'Score'"`
-	LevelCode      int       `json:"LevelCode" xorm:"not null default 0 comment('级别') INT(11) 'LevelCode'"`
-	Remark         string    `json:"Remark" xorm:"comment('备注') VARCHAR(500) 'Remark'"`
-	ModifiedOn     time.Time `json:"ModifiedOn" xorm:"DATETIME 'ModifiedOn'"`
-	ModifiedUserId int       `json:"ModifiedUserId" xorm:"INT(11) 'ModifiedUserId'"`
-	ModifiedBy     string    `json:"ModifiedBy" xorm:"VARCHAR(50) 'ModifiedBy'"`
+	Id              int       `json:"Id" xorm:"not null pk autoincr comment('ID') INT(11) 'Id'"`
+	ContentReviewId int       `json:"ContentReviewId" xorm:"default 0 comment('评价ID') INT(11) 'ContentReviewId'"`
+	ParentId        int       `json:"ParentId" xorm:"not null default 0 comment('上级节点ID') INT(11) 'ParentId'"`
+	SequenceNo      string    `json:"SequenceNo" xorm:"default '0' comment('序号') VARCHAR(50) 'SequenceNo'"`
+	Content         string    `json:"Content" xorm:"comment('评价内容') VARCHAR(1000) 'Content'"`
+	NormalScore     string    `json:"NormalScore" xorm:"comment('标准分值') DECIMAL(11,2) 'NormalScore'"`
+	Score           string    `json:"Score" xorm:"comment('实得分数') DECIMAL(11,2) 'Score'"`
+	LevelCode       int       `json:"LevelCode" xorm:"not null default 0 comment('级别') INT(11) 'LevelCode'"`
+	Remark          string    `json:"Remark" xorm:"comment('备注') VARCHAR(500) 'Remark'"`
+	ModifiedOn      time.Time `json:"ModifiedOn" xorm:"DATETIME 'ModifiedOn'"`
+	ModifiedUserId  int       `json:"ModifiedUserId" xorm:"INT(11) 'ModifiedUserId'"`
+	ModifiedBy      string    `json:"ModifiedBy" xorm:"VARCHAR(50) 'ModifiedBy'"`
 }

+ 41 - 0
src/dashoo.cn/backend/api/business/oilcontract/contractReview/contractReview.go

@@ -3,12 +3,41 @@ import (
 	"time"
 )
 type OilContractReview struct {
+	Id                int       `json:"Id" xorm:"not null pk autoincr INT(11) 'Id'"`
+	ContractId        int       `json:"ContractId" xorm:"not null comment('合同表Id') INT(11) 'ContractId'"`
+	Status            string    `json:"Status" xorm:"not null default '0' comment('状态标识( 0 初始 - 1待二级初审 - 2待二级复审 - 3-专业科室接收 4 待专业科室审核 - 5 待集中评审 - 6 待交费 - 7 待入库 - 8 完成 - 9审核未通过)') VARCHAR(10) 'Status'"`
+	WorkflowId        string    `json:"WorkflowId" xorm:"default '0' comment('工作流的ID') VARCHAR(50) 'WorkflowId'"`
+	BusinessKey       string    `json:"BusinessKey" xorm:"comment('流程序号') VARCHAR(255) 'BusinessKey'"`
+	ProcessKey        string    `json:"ProcessKey" xorm:"comment('工作流名称') VARCHAR(255) 'ProcessKey'"`
+	BackRemark        string    `json:"BackRemark" xorm:"comment('退回原因') VARCHAR(255) 'BackRemark'"`
+	FirstAudit        int       `json:"FirstAudit" xorm:"comment('初审') INT(11) 'FirstAudit'"`
+	SecondAudit       int       `json:"SecondAudit" xorm:"comment('复审') INT(11) 'SecondAudit'"`
+	ThirdAudit        int       `json:"ThirdAudit" xorm:"comment('专业科室审批') INT(11) 'ThirdAudit'"`
+	FourthAudit       int       `json:"FourthAudit" xorm:"comment('集中审批') INT(11) 'FourthAudit'"`
+	ProfessionalAudit int       `json:"ProfessionalAudit" xorm:"comment('业务处室专业审批人id') INT(11) 'ProfessionalAudit'"`
+	AuditIndex        int       `json:"AuditIndex" xorm:"default 0 comment('审批次数') INT(11) 'AuditIndex'"`
+	CreateOn          time.Time `json:"CreateOn" xorm:"DATETIME 'CreateOn'"`
+	CreateUserId      int       `json:"CreateUserId" xorm:"INT(11) 'CreateUserId'"`
+	CreateBy          string    `json:"CreateBy" xorm:"VARCHAR(50) 'CreateBy'"`
+	ModifiedOn        time.Time `json:"ModifiedOn" xorm:"DATETIME 'ModifiedOn'"`
+	ModifiedUserId    int       `json:"ModifiedUserId" xorm:"INT(11) 'ModifiedUserId'"`
+	ModifiedBy        string    `json:"ModifiedBy" xorm:"VARCHAR(50) 'ModifiedBy'"`
+}
+type OilContractReviewVo struct {
+	Items []*OilContractEvaluationItemsVo
 	Id             int       `json:"Id" xorm:"not null pk INT(11) 'Id'"`
 	ContractId     int       `json:"ContractId" xorm:"not null comment('合同表Id') INT(11) 'ContractId'"`
+	Status         string    `xorm:"not null default '0' VARCHAR(10)"`
 	WorkflowId     string    `json:"WorkflowId" xorm:"default '0' comment('工作流的ID') VARCHAR(50) 'WorkflowId'"`
 	BusinessKey    string    `json:"BusinessKey" xorm:"comment('流程序号') VARCHAR(255) 'BusinessKey'"`
 	ProcessKey     string    `json:"ProcessKey" xorm:"comment('工作流名称') VARCHAR(255) 'ProcessKey'"`
 	BackRemark     string    `json:"BackRemark" xorm:"comment('退回原因') VARCHAR(255) 'BackRemark'"`
+	FirstAudit        int       `xorm:"default 0 comment('初审') INT(10)"`
+	SecondAudit       int       `xorm:"default 0 comment('复审') INT(10)"`
+	ThirdAudit        int       `xorm:"default 0 comment('专业科室审批') INT(10)"`
+	ProfessionalAudit int       `xorm:"default 0 comment('业务处室专业审批') INT(10)"`
+	FourthAudit       int       `xorm:"default 0 comment('集中审批') INT(10)"`
+	AuditIndex        int       `xorm:"default 0 comment('审批次数') INT(11)"`
 	CreateOn       time.Time `json:"CreateOn" xorm:"DATETIME 'CreateOn'"`
 	CreateUserId   int       `json:"CreateUserId" xorm:"INT(11) 'CreateUserId'"`
 	CreateBy       string    `json:"CreateBy" xorm:"VARCHAR(50) 'CreateBy'"`
@@ -16,3 +45,15 @@ type OilContractReview struct {
 	ModifiedUserId int       `json:"ModifiedUserId" xorm:"INT(11) 'ModifiedUserId'"`
 	ModifiedBy     string    `json:"ModifiedBy" xorm:"VARCHAR(50) 'ModifiedBy'"`
 }
+type OilContractEvaluationItemsVo struct{
+	Id             int       `json:"Id" xorm:"not null pk autoincr comment('ID') INT(11) 'Id'"`
+	ContractId     int       `json:"ContractId" xorm:"default 0 comment('合同表ID') INT(11) 'ContractId'"`
+	ContractWorkId int       `json:"ContractId" xorm:"default 0 comment('ReviewWork表ID') INT(11) 'ContractWorkId'"`
+	ParentId       int       `json:"ParentId" xorm:"not null default 0 comment('上级节点ID') INT(11) 'ParentId'"`
+	SequenceNo     string    `json:"SequenceNo" xorm:"default '0' comment('序号') VARCHAR(50) 'SequenceNo'"`
+	Content        string    `json:"content" xorm:"comment('评价内容') VARCHAR(1000) 'content'"`
+	NormalScore    string    `json:"NormalScore" xorm:"comment('标准分值') DECIMAL(11,2) 'NormalScore'"`
+	Score          string    `json:"Score" xorm:"comment('实得分数') DECIMAL(11,2) 'Score'"`
+	LevelCode      int       `json:"LevelCode" xorm:"not null default 0 comment('级别') INT(11) 'LevelCode'"`
+	Remark         string    `json:"Remark" xorm:"comment('备注') VARCHAR(500) 'Remark'"`
+}

+ 19 - 0
src/dashoo.cn/backend/api/business/oilcontract/evaluationItems/evaluationItems.go

@@ -21,3 +21,22 @@ type OilEvaluationItems struct {
 	ModifiedUserId int       `json:"ModifiedUserId" xorm:"INT(11) 'ModifiedUserId'"`
 	ModifiedBy     string    `json:"ModifiedBy" xorm:"VARCHAR(50) 'ModifiedBy'"`
 }
+
+type DailyItems struct {
+	Id             int       `json:"Id"`
+	ParentId       int       `json:"ParentId"`
+	Type           string    `json:"Type"`
+	SequenceNo     string    `json:"SequenceNo"`
+	Content        string    `json:"content"`
+	NormalScore    string    `json:"NormalScore"`
+	LevelCode      int       `json:"LevelCode"`
+	Remark         string    `json:"Remark"`
+	IsDelete       int       `json:"IsDelete"`
+	CreateOn       time.Time `json:"CreateOn"`
+	CreateUserId   int       `json:"CreateUserId"`
+	CreateBy       string    `json:"CreateBy"`
+	ModifiedOn     time.Time `json:"ModifiedOn"`
+	ModifiedUserId int       `json:"ModifiedUserId"`
+	ModifiedBy     string    `json:"ModifiedBy"`
+	Son			   []DailyItems
+}

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

@@ -106,6 +106,10 @@ const (
 	OIL_INFO_CHANGE string = "oil_info_change"
 	//年审流程
 	OIL_AUDIT_APPLY string = "oil_audit_apply"
+	//合同日常评审流程
+	OIL_DAILY_CONTRACT_EVALUATION string = "oil_daily_contract_evaluation"
+	//合同年度评审流程
+	OIL_ANNUAL_CONTRACT_EVALUATION string = "oil_annual_contract_evaluation"
 
 	// 企业注册
 	OIL_REGISTER_APPLY string = "oil_register_apply"

+ 365 - 0
src/dashoo.cn/backend/api/controllers/oilcontract/contractAnnualListener.go

@@ -0,0 +1,365 @@
+package oilcontract
+
+import (
+	msg2 "dashoo.cn/backend/api/business/msg"
+	"dashoo.cn/backend/api/business/oilsupplier/annualaudit"
+	"dashoo.cn/backend/api/business/oilsupplier/oilcostmanage"
+	"dashoo.cn/backend/api/business/oilsupplier/supplier"
+	"dashoo.cn/backend/api/business/paymentinfo"
+	"encoding/json"
+	"strconv"
+	"strings"
+	"time"
+
+	"dashoo.cn/backend/api/business/auditsetting"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercert"
+	"dashoo.cn/backend/api/business/workflow"
+	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/utils"
+)
+
+type OilAnnualListenerController struct {
+	BaseController
+}
+
+// @Title 获取二级单位分办人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-fen-trail [post]
+func (this *OilAnnualListenerController) PreFenTrialStatus() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	annualId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.FEN_TRIAL_STATUS //二级单位分办
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//查出二级单位分办的人员
+	// 获取准入资质信息:
+	supplierCertSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
+	var supplierCertEntity suppliercert.OilSupplierCert
+	supplierCertSrv.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+
+	stepCode := workflow.GetWorkFlowStepCode(supplierCertEntity.SupplierTypeCode) // TODO 年审的准入方式
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeAndUnitId(stepCode, annualEntity.CommitComId)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// 用
+// @Title 获取二级单位初审人员列表--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-first-trail [get]
+func (this *OilAnnualListenerController) PreFirstTrail() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
+	svc.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//返回查出的初审人员操作人员列表
+	approverIds := annualEntity.FirstAudit
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 获取二级单位复审人员列表--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-second-trail [get]
+func (this *OilAnnualListenerController) PreSecondTrail() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "_")[0]
+
+	certSrv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	certSrv.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.SECOND_TRIAL_STATUS //二级单位复审
+	certSrv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//返回查出的复审人员操作人员列表
+	approverIds := annualEntity.SecondAudit
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 查询是否交费--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /check-need-pay [get]
+func (this *OilAnnualListenerController) CheckNeedPay() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+
+	certSvc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var supplierCertEntity suppliercert.OilSupplierCert
+	certSvc.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+
+	var isPayList []string
+	isPayList = append(isPayList, suppliercert.PINGSHEN)
+	isPayList = append(isPayList, suppliercert.WAIBUSHICHANG)
+	var unPayList []string
+	unPayList = append(unPayList, suppliercert.YIJIWUZI)
+	unPayList = append(unPayList, suppliercert.ERJIWUZI)
+	unPayList = append(unPayList, suppliercert.ZHANLUEHEZUO)
+	unPayList = append(unPayList, suppliercert.NEIBUDUOYUAN)
+
+	result := 0
+	isPay := "false"
+	unPay := "false"
+	for _, eachItem := range isPayList {
+		if eachItem == supplierCertEntity.InStyle {
+			// 需要付费
+			isPay = "true"
+			result = 1
+			break
+		}
+	}
+	for _, eachItem := range unPayList {
+		if eachItem == supplierCertEntity.InStyle {
+			// 不需要付费
+			unPay = "true"
+			result = 2
+			break
+		}
+	}
+	if isPay == unPay {
+		// 准入类型是否付费有误!请联系管理员
+		result = 0
+	}
+
+	this.Data["json"] = result
+	this.ServeJSON()
+}
+
+// @Title 获取交费人--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-payer [get]
+func (this *OilAnnualListenerController) GetPrePayer() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.PAYING_AUDIT_STATUS //待缴费
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	// 获取准入资质信息:
+	supplierCertSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
+	var supplierCertEntity suppliercert.OilSupplierCert
+	supplierCertSrv.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+
+	// 年审审批通过且需要交费, 创建交费信息
+	supplierSrv := supplier.GetOilSupplierService(utils.DBE)
+	var supplierEntity supplier.OilSupplier
+	supplierSrv.GetEntityById(annualEntity.SupplierId, &supplierEntity)
+
+	paySvc := paymentinfo.GetPaymentService(utils.DBE)
+	var Amount float64
+	costSvc := oilcostmanage.GetOilCostManageService(utils.DBE)
+	Amount = costSvc.GetAmount("ANNUAL", supplierCertEntity.SupplierTypeCode)
+	var payInfo paymentinfo.OilPaymentInfo
+	payInfo.SrcId = annualEntity.Id
+	payInfo.SupplierId = annualEntity.SupplierId
+	payInfo.SupplierCertId = annualEntity.CerId
+	payInfo.USCCode = supplierEntity.CommercialNo
+	payInfo.SupplierName = supplierEntity.SupplierName
+	payInfo.PayType = "2"
+	payInfo.IsPay = "0"
+	payInfo.IsInvoice = "0"
+	payInfo.Amount = strconv.FormatFloat(Amount, 'E', -1, 64)
+	payInfo.CreateUserId = annualEntity.CreateUserId
+	payInfo.CreateBy = annualEntity.CreateBy
+	payInfo.CreateOn = time.Now()
+	paySvc.InsertEntity(&payInfo)
+
+	//创建人即为交费的人员
+	approverIds := annualEntity.CreateUserId
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 企业法规处审批人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /law-office-auditors [post]
+func (this *OilAnnualListenerController) GetLawOfficeAuditors() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	annualId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.CENT_AUDIT_STATUS //企业法规处
+	svc.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//查出企业法规处审批的人员
+	stepCode := workflow.PROF_REGULATION //企业法规处
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeForConcentrateAudit(stepCode)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// @Title 企业法规处入库人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-storage-audit [post]
+func (this *OilAnnualListenerController) GetStorageAuditor() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	annualId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.STOREING_STATUS //待入库
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//查出入库审批的人员
+	stepCode := workflow.PROF_REGULATION //待入库(企业法规处)
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeForConcentrateAudit(stepCode)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// @Title 企业法规处审批入库完成, 工作流结束--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /workflow-end [get]
+func (this *OilAnnualListenerController) WorkflowEndAudit() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+		"ApplyTime",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.STORE_STATUS                  //审核完成
+	annualEntity.ApplyTime = annualEntity.ApplyTime.AddDate(1, 0, 0) //更新年审表时间
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//更新准入表时间
+	paymentInfoSvc := paymentinfo.GetPaymentService(utils.DBE)
+	var certModel suppliercert.OilSupplierCert
+	certModel.ApplyTime = annualEntity.ApplyTime.AddDate(1, 0, 0)
+	certModel.InFlag = "1"
+	paymentInfoSvc.UpdateEntityByIdCols(strconv.Itoa(annualEntity.CerId), &certModel, []string{"ApplyTime", "InFlag"})
+
+	this.Data["json"] = 1
+	this.ServeJSON()
+}
+
+// @Title 审批驳回--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /approval-refuse [get]
+func (this *OilAnnualListenerController) ApprovalRefuse() {
+	businessKey := this.GetString("businessKey")
+	stepCodeStatus := this.GetString("stepCode")
+	annualId := strings.Split(businessKey, "-")[0]
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = stepCodeStatus
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	// 获取准入资质信息:
+	//supplierCertSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
+	//var supplierCertEntity suppliercert.OilSupplierCert
+	//supplierCertSrv.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+	//supplierSrv := supplier.GetOilSupplierService(utils.DBE)
+	//var supplierEntity supplier.OilSupplier
+	//supplierSrv.GetEntityById(annualEntity.SupplierId, &supplierEntity)
+
+	// TODO 发送驳回通知短信
+	//this.AuditRejectNotice(supplierCertEntity, supplierEntity)
+
+	this.Data["json"] = annualEntity.CreateUserId
+	this.ServeJSON()
+}
+
+// @Title 增项申请审核未通过短信通知
+// @Description 审核未通过短信通知
+// @Success	200	{object}
+// @router /audit-reject-notice/:id [post]
+func (this *OilAnnualListenerController) AuditRejectNotice(supplierCertEntity suppliercert.OilSupplierCert, supplierEntity supplier.OilSupplier) {
+	toMobile := supplierEntity.Mobile
+	bFlag := ""
+	if supplierCertEntity.SupplierTypeCode == "01" {
+		bFlag = "物资类"
+	} else if supplierCertEntity.SupplierTypeCode == "02" {
+		bFlag = "基建类"
+	} else {
+		bFlag = "服务类"
+	}
+	msg := "您的" + bFlag + "年审申请审核未通过,请及时查看!"
+	msgService := msg2.GetMsgService(utils.DBE)
+	msgService.HandleMsg(toMobile, msg, "5-2", supplierCertEntity.CreateBy, supplierEntity.ContactName, strconv.Itoa(supplierCertEntity.CreateUserId), this.User.Username)
+}

+ 373 - 0
src/dashoo.cn/backend/api/controllers/oilcontract/contractDailyListener.go

@@ -0,0 +1,373 @@
+package oilcontract
+
+import (
+	msg2 "dashoo.cn/backend/api/business/msg"
+	"dashoo.cn/backend/api/business/oilsupplier/annualaudit"
+	"dashoo.cn/backend/api/business/oilsupplier/oilcostmanage"
+	"dashoo.cn/backend/api/business/oilsupplier/supplier"
+	"dashoo.cn/backend/api/business/paymentinfo"
+	"encoding/json"
+	"strconv"
+	"strings"
+	"time"
+
+	"dashoo.cn/backend/api/business/auditsetting"
+	"dashoo.cn/backend/api/business/oilsupplier/suppliercert"
+	"dashoo.cn/backend/api/business/workflow"
+	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/utils"
+)
+
+type OilContractDailyListenerController struct {
+	BaseController
+}
+
+type ListenerApproveParams struct {
+	BusinessKey string `json:"businessKey"`
+}
+
+type ListenerApproveInfo struct {
+	Users string `json:"users"`
+}
+
+// @Title 获取二级单位分办人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-fen-trail [post]
+func (this *OilContractDailyListenerController) PreFenTrialStatus() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	annualId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.FEN_TRIAL_STATUS //二级单位分办
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//查出二级单位分办的人员
+	// 获取准入资质信息:
+	supplierCertSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
+	var supplierCertEntity suppliercert.OilSupplierCert
+	supplierCertSrv.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+
+	stepCode := workflow.GetWorkFlowStepCode(supplierCertEntity.SupplierTypeCode) // TODO 年审的准入方式
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeAndUnitId(stepCode, annualEntity.CommitComId)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// 用
+// @Title 获取二级单位初审人员列表--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-first-trail [get]
+func (this *OilContractDailyListenerController) PreFirstTrail() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
+	svc.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//返回查出的初审人员操作人员列表
+	approverIds := annualEntity.FirstAudit
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 获取二级单位复审人员列表--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-second-trail [get]
+func (this *OilContractDailyListenerController) PreSecondTrail() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "_")[0]
+
+	certSrv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	certSrv.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.SECOND_TRIAL_STATUS //二级单位复审
+	certSrv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//返回查出的复审人员操作人员列表
+	approverIds := annualEntity.SecondAudit
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 查询是否交费--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /check-need-pay [get]
+func (this *OilContractDailyListenerController) CheckNeedPay() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+
+	certSvc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var supplierCertEntity suppliercert.OilSupplierCert
+	certSvc.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+
+	var isPayList []string
+	isPayList = append(isPayList, suppliercert.PINGSHEN)
+	isPayList = append(isPayList, suppliercert.WAIBUSHICHANG)
+	var unPayList []string
+	unPayList = append(unPayList, suppliercert.YIJIWUZI)
+	unPayList = append(unPayList, suppliercert.ERJIWUZI)
+	unPayList = append(unPayList, suppliercert.ZHANLUEHEZUO)
+	unPayList = append(unPayList, suppliercert.NEIBUDUOYUAN)
+
+	result := 0
+	isPay := "false"
+	unPay := "false"
+	for _, eachItem := range isPayList {
+		if eachItem == supplierCertEntity.InStyle {
+			// 需要付费
+			isPay = "true"
+			result = 1
+			break
+		}
+	}
+	for _, eachItem := range unPayList {
+		if eachItem == supplierCertEntity.InStyle {
+			// 不需要付费
+			unPay = "true"
+			result = 2
+			break
+		}
+	}
+	if isPay == unPay {
+		// 准入类型是否付费有误!请联系管理员
+		result = 0
+	}
+
+	this.Data["json"] = result
+	this.ServeJSON()
+}
+
+// @Title 获取交费人--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-payer [get]
+func (this *OilContractDailyListenerController) GetPrePayer() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.PAYING_AUDIT_STATUS //待缴费
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	// 获取准入资质信息:
+	supplierCertSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
+	var supplierCertEntity suppliercert.OilSupplierCert
+	supplierCertSrv.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+
+	// 年审审批通过且需要交费, 创建交费信息
+	supplierSrv := supplier.GetOilSupplierService(utils.DBE)
+	var supplierEntity supplier.OilSupplier
+	supplierSrv.GetEntityById(annualEntity.SupplierId, &supplierEntity)
+
+	paySvc := paymentinfo.GetPaymentService(utils.DBE)
+	var Amount float64
+	costSvc := oilcostmanage.GetOilCostManageService(utils.DBE)
+	Amount = costSvc.GetAmount("ANNUAL", supplierCertEntity.SupplierTypeCode)
+	var payInfo paymentinfo.OilPaymentInfo
+	payInfo.SrcId = annualEntity.Id
+	payInfo.SupplierId = annualEntity.SupplierId
+	payInfo.SupplierCertId = annualEntity.CerId
+	payInfo.USCCode = supplierEntity.CommercialNo
+	payInfo.SupplierName = supplierEntity.SupplierName
+	payInfo.PayType = "2"
+	payInfo.IsPay = "0"
+	payInfo.IsInvoice = "0"
+	payInfo.Amount = strconv.FormatFloat(Amount, 'E', -1, 64)
+	payInfo.CreateUserId = annualEntity.CreateUserId
+	payInfo.CreateBy = annualEntity.CreateBy
+	payInfo.CreateOn = time.Now()
+	paySvc.InsertEntity(&payInfo)
+
+	//创建人即为交费的人员
+	approverIds := annualEntity.CreateUserId
+	this.Data["json"] = approverIds
+	this.ServeJSON()
+}
+
+// @Title 企业法规处审批人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /law-office-auditors [post]
+func (this *OilContractDailyListenerController) GetLawOfficeAuditors() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	annualId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	svc.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.CENT_AUDIT_STATUS //企业法规处
+	svc.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//查出企业法规处审批的人员
+	stepCode := workflow.PROF_REGULATION //企业法规处
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeForConcentrateAudit(stepCode)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// @Title 企业法规处入库人员列表 --回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /pre-storage-audit [post]
+func (this *OilContractDailyListenerController) GetStorageAuditor() {
+	var jsonBlob = this.Ctx.Input.RequestBody
+	var listenerApprove ListenerApproveParams
+	json.Unmarshal(jsonBlob, &listenerApprove)
+	annualId := strings.Split(listenerApprove.BusinessKey, "-")[0]
+
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.STOREING_STATUS //待入库
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//查出入库审批的人员
+	stepCode := workflow.PROF_REGULATION //待入库(企业法规处)
+	auditSettingService := auditsetting.GetOilAuditSettingService(utils.DBE)
+	approverIds := auditSettingService.GetApproverIdsByStepCodeForConcentrateAudit(stepCode)
+	var approveInfo ListenerApproveInfo
+	approveInfo.Users = approverIds
+	this.Data["json"] = &approveInfo
+	this.ServeJSON()
+}
+
+// @Title 企业法规处审批入库完成, 工作流结束--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /workflow-end [get]
+func (this *OilContractDailyListenerController) WorkflowEndAudit() {
+	businessKey := this.GetString("businessKey")
+	annualId := strings.Split(businessKey, "-")[0]
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+		"ApplyTime",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = suppliercert.STORE_STATUS                  //审核完成
+	annualEntity.ApplyTime = annualEntity.ApplyTime.AddDate(1, 0, 0) //更新年审表时间
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	//更新准入表时间
+	paymentInfoSvc := paymentinfo.GetPaymentService(utils.DBE)
+	var certModel suppliercert.OilSupplierCert
+	certModel.ApplyTime = annualEntity.ApplyTime.AddDate(1, 0, 0)
+	certModel.InFlag = "1"
+	paymentInfoSvc.UpdateEntityByIdCols(strconv.Itoa(annualEntity.CerId), &certModel, []string{"ApplyTime", "InFlag"})
+
+	this.Data["json"] = 1
+	this.ServeJSON()
+}
+
+// @Title 审批驳回--回调
+// @Description get user by token
+// @Success 200 {string} string
+// @router /approval-refuse [get]
+func (this *OilContractDailyListenerController) ApprovalRefuse() {
+	businessKey := this.GetString("businessKey")
+	stepCodeStatus := this.GetString("stepCode")
+	annualId := strings.Split(businessKey, "-")[0]
+	srv := annualaudit.GetOilAnnualAuditService(utils.DBE)
+	var annualEntity annualaudit.OilAnnualAudit
+	srv.GetEntityById(annualId, &annualEntity)
+
+	cols := []string{
+		"Id",
+		"Status",
+	}
+	//进入此步骤,记录在数据库中
+	annualEntity.Status = stepCodeStatus
+	srv.UpdateEntityByIdCols(annualId, annualEntity, cols)
+
+	// 获取准入资质信息:
+	//supplierCertSrv := suppliercert.GetOilSupplierCertService(utils.DBE)
+	//var supplierCertEntity suppliercert.OilSupplierCert
+	//supplierCertSrv.GetEntityById(annualEntity.CerId, &supplierCertEntity)
+	//supplierSrv := supplier.GetOilSupplierService(utils.DBE)
+	//var supplierEntity supplier.OilSupplier
+	//supplierSrv.GetEntityById(annualEntity.SupplierId, &supplierEntity)
+
+	// TODO 发送驳回通知短信
+	//this.AuditRejectNotice(supplierCertEntity, supplierEntity)
+
+	this.Data["json"] = annualEntity.CreateUserId
+	this.ServeJSON()
+}
+
+// @Title 增项申请审核未通过短信通知
+// @Description 审核未通过短信通知
+// @Success	200	{object}
+// @router /audit-reject-notice/:id [post]
+func (this *OilContractDailyListenerController) AuditRejectNotice(supplierCertEntity suppliercert.OilSupplierCert, supplierEntity supplier.OilSupplier) {
+	toMobile := supplierEntity.Mobile
+	bFlag := ""
+	if supplierCertEntity.SupplierTypeCode == "01" {
+		bFlag = "物资类"
+	} else if supplierCertEntity.SupplierTypeCode == "02" {
+		bFlag = "基建类"
+	} else {
+		bFlag = "服务类"
+	}
+	msg := "您的" + bFlag + "年审申请审核未通过,请及时查看!"
+	msgService := msg2.GetMsgService(utils.DBE)
+	msgService.HandleMsg(toMobile, msg, "5-2", supplierCertEntity.CreateBy, supplierEntity.ContactName, strconv.Itoa(supplierCertEntity.CreateUserId), this.User.Username)
+}

+ 340 - 22
src/dashoo.cn/backend/api/controllers/oilcontract/contractReview.go

@@ -1,11 +1,18 @@
 package oilcontract
 
 import (
+
+	"dashoo.cn/backend/api/business/oilcontract/contractEvaluationItems"
+	"dashoo.cn/backend/api/business/oilcontract/contract"
+
 	"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"
@@ -150,23 +157,43 @@ func (this *OilContractReviewController) GetEntity() {
 // @Success	200	{object} controllers.Request
 // @router /add [post]
 func (this *OilContractReviewController) AddEntity() {
-	var model contractReview.OilContractReview
+	var modeVO contractReview.OilContractReviewVo
 	var jsonBlob = this.Ctx.Input.RequestBody
-	svc := contractReview.GetOilContractReviewService(utils.DBE)
-
-	json.Unmarshal(jsonBlob, &model)
-	model.CreateOn = time.Now()
-	model.CreateBy = this.User.Realname
-	model.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
-
-	_, err := svc.InsertEntityBytbl(this.User.AccCode+OilContractReviewName, &model)
+	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.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.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)
 	var errinfo ErrorDataInfo
 	if err == nil {
 		//新增
 		errinfo.Message = "添加成功!"
 		errinfo.Code = 0
-		errinfo.Item = model.Id
+		errinfo.Item = reviewMode.Id
 		this.Data["json"] = &errinfo
 		this.ServeJSON()
 	} else {
@@ -193,20 +220,25 @@ func (this *OilContractReviewController) UpdateEntity() {
 		return
 	}
 
-	var model contractReview.OilContractReview
+	var modeVO contractReview.OilContractReviewVo
 	svc := contractReview.GetOilContractReviewService(utils.DBE)
-
+	itemSvc := contractEvaluationItems.GetOilContractEvaluationItemsService(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()
+	json.Unmarshal(jsonBlob, &modeVO)
 
-	cols := []string{
+	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",
 
-		"ContractEId",
+		"ContractId",
+
+		"Status",
 
 		"WorkflowId",
 
@@ -216,7 +248,17 @@ func (this *OilContractReviewController) UpdateEntity() {
 
 		"BackRemark",
 
-		"ReviewType",
+		"FirstAudit",
+
+		"SecondAudit",
+
+		"ThirdAudit",
+
+		"FourthAudit",
+
+		"ProfessionalAudit",
+
+		"AuditIndex",
 
 		"CreateOn",
 
@@ -224,9 +266,38 @@ func (this *OilContractReviewController) UpdateEntity() {
 
 		"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.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)
 	}
-	err := svc.UpdateEntityBytbl(this.User.AccCode+OilContractReviewName, id, &model, cols)
+	itemSvc.DBE.Insert(items)
+
+
 	if err == nil {
 		errinfo.Message = "修改成功!"
 		errinfo.Code = 0
@@ -258,8 +329,13 @@ func (this *OilContractReviewController) DeleteEntity() {
 	var model contractReview.OilContractReview
 	var entityempty contractReview.OilContractReview
 	svc := contractReview.GetOilContractReviewService(utils.DBE)
+
+	// 评分审核是否结束校验
+
+
+
 	opdesc := "删除-" + Id
-	err := svc.DeleteOperationAndWriteLogBytbl(this.User.AccCode+OilContractReviewName, BaseOperationLogName, Id, &model, &entityempty, utils.ToStr(this.User.Id), this.User.Username, opdesc, this.User.AccCode, "钻井日报")
+	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
@@ -274,3 +350,245 @@ func (this *OilContractReviewController) DeleteEntity() {
 }
 
 
+
+// @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
+
+	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 {
+			//返回正确结果
+			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)
+}
+
+// @Title 集中审批
+// @Description 集中审批
+// @Success 200 {object} controllers.Request
+// @router /concentrate-audit/:id [post]
+func (this *OilContractReviewController) ConcentrateAuditEntity() {
+	Id := 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()
+		}
+	}()
+
+	//取出日常评审主表信息
+	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.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)
+}
+
+

+ 34 - 1
src/dashoo.cn/backend/api/controllers/oilcontract/evaluationItems.go

@@ -171,9 +171,42 @@ func (this *OilEvaluationItemsController) GetOneEntityList() {
 
 	svc := evaluationItems.GetOilEvaluationItemsService(utils.DBE)
 	var list []evaluationItems.OilEvaluationItems
+	var result []evaluationItems.DailyItems
 	total := svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, true, &list, where)
+
+	for _, value := range list {
+		var firstTmp evaluationItems.DailyItems
+		firstTmp.Content = value.Content
+		firstTmp.ParentId = value.ParentId
+		firstTmp.Id = value.Id
+		firstTmp.Type = value.Type
+		firstTmp.SequenceNo = value.SequenceNo
+		firstTmp.NormalScore = value.NormalScore
+		firstTmp.Remark = value.Remark
+		firstTmp.LevelCode = value.LevelCode
+
+		var list1 []evaluationItems.OilEvaluationItems
+		where1 := " ParentId = " + strconv.Itoa(value.Id)
+		svc.GetPagingEntitiesWithOrderBytbl("", page.CurrentPage, page.Size, orderby, true, &list1, where1)
+		for _, v := range list1 {
+			var secTmp evaluationItems.DailyItems
+			secTmp.Content = v.Content
+			secTmp.Content = v.Content
+			secTmp.ParentId = v.ParentId
+			secTmp.Id = v.Id
+			secTmp.Type = v.Type
+			secTmp.SequenceNo = v.SequenceNo
+			secTmp.NormalScore = v.NormalScore
+			secTmp.Remark = v.Remark
+			secTmp.LevelCode = v.LevelCode
+
+			firstTmp.Son = append(firstTmp.Son, secTmp)
+		}
+
+		result = append(result, firstTmp)
+	}
 	var datainfo DataInfo
-	datainfo.Items = list
+	datainfo.Items = result
 	datainfo.CurrentItemCount = total
 	//datainfo.PageIndex = page.CurrentPage
 	//datainfo.ItemsPerPage = page.Size

+ 6 - 0
src/dashoo.cn/backend/api/routers/router.go

@@ -483,6 +483,12 @@ func init() {
 				&oilcontract.OilEvaluationItemsController{},
 			),
 		),
+		// 合同评价
+		beego.NSNamespace("/contract-review",
+			beego.NSInclude(
+				&oilcontract.OilContractReviewController{},
+			),
+		),
 	)
 	beego.AddNamespace(ns)
 }