diff --git a/src/bean/entity/work_order.go b/src/bean/entity/work_order.go index 50c68df0a7c2394931f8a32639089d4a9d32cec4..4a9ef8c7fd789ab5d9689deaad5935981c77eaaf 100644 --- a/src/bean/entity/work_order.go +++ b/src/bean/entity/work_order.go @@ -5,11 +5,11 @@ import ( ) type WorkOrder struct { - Id int `json:"id" xorm:"pk autoincr" ` // id - OrderName string `json:"order_name" xorm:"order_name"` // 工单名称 - OrderLevel int `json:"order_level" xorm:"order_level"` // 工单等级(1紧急任务 2重要任务 3一般任务) - OrderDesc string `json:"order_desc" xorm:"order_desc"` // 工单描述 - OrderCnt int `json:"order_cnt" xorm:"order_cnt"` // 实例工单数 + Id int `json:"id" xorm:"pk autoincr" ` // id + OrderName string `json:"order_name" xorm:"order_name"` // 工单名称 + OrderLevel int `json:"order_level" xorm:"order_level"` // 工单等级(1紧急任务 2重要任务 3一般任务) + OrderDesc string `json:"order_desc" xorm:"order_desc"` // 工单描述 + //OrderCnt int `json:"order_cnt" xorm:"order_cnt"` // 实例工单数 PushObj string `json:"push_obj" xorm:"push_obj"` // 推送对象 TimingType int `json:"timing_type" xorm:"timing_type"` // 定时类型(1手动下发 2按周 3自定义时间) TimingRule string `json:"timing_rule" xorm:"timing_rule"` // 定时规则 diff --git a/src/bean/vo/request/work_order.go b/src/bean/vo/request/work_order.go index e28859f455cecc7696c395cf5a0b66b426cf0a83..ca3a8674d3d1a28afc3a177a3a40abf79bc9afc0 100644 --- a/src/bean/vo/request/work_order.go +++ b/src/bean/vo/request/work_order.go @@ -1,7 +1,7 @@ package request type AddWorkOrderReq struct { - IsPush int `json:"is_push"` // 是否立刻下发(0否 1是) + IsPush int `json:"is_push" binding:"oneof=0 1"` // 是否立刻下发(0否 1是) OrderName string `json:"order_name" binding:"required"` // 工单名称 OrderLevel int `json:"order_level" binding:"oneof=1 2 3"` // 工单等级(1紧急任务 2重要任务 3一般任务) OrderDesc string `json:"order_desc" binding:"required"` // 工单描述 diff --git a/src/service/work_order.go b/src/service/work_order.go index 2ad043ed69b8e7dbde6aa621cea8a51714dabe63..6776b35a2b01a254c24d2d71ad1ff86666702670 100644 --- a/src/service/work_order.go +++ b/src/service/work_order.go @@ -156,7 +156,7 @@ func (w *WorkOrderManageSvc) EditWorkOrderManage(req request.EditWorkOrderReq) ( return } -// StateWorkOrderManage 编辑业务工单管理 +// StateWorkOrderManage 定时是否启用 func (w *WorkOrderManageSvc) StateWorkOrderManage(req request.StateWorkOrderReq) (err error) { db, err := client.GetDbClient() if err != nil { @@ -185,11 +185,31 @@ func (w *WorkOrderManageSvc) DelWorkOrderManage(req request.DelWorkOrderReq) (er return } + session := db.NewSession() + defer session.Close() + session.Begin() + _, err = db.Table("work_order_manage").In("id", req.Id).Delete(&entity.WorkOrder{}) if err != nil { err = resp.DbDeleteError.WithError(err) + session.Rollback() + return + } + + _, err = db.Table("work_order_issuance").In("order_id", req.Id).Delete(&entity.WorkOrderIssuance{}) + if err != nil { + err = resp.DbDeleteError.WithError(err) + session.Rollback() + return + } + + _, err = db.Table("work_order_me").In("order_id", req.Id).Delete(&entity.WorkOrderMe{}) + if err != nil { + err = resp.DbDeleteError.WithError(err) + session.Rollback() return } + session.Commit() return } @@ -260,25 +280,26 @@ func (w *WorkOrderManageSvc) ListWorkOrderManage(req request.ListWorkOrderManage return } - finder := db.Table("work_order_manage") + finder := db.Table("work_order_manage").Alias("wom") if req.Search != "" { - finder.Where(fmt.Sprintf("order_name LIKE '%s'", "%"+req.Search+"%")) + finder.Where(fmt.Sprintf("wom.order_name LIKE '%s'", "%"+req.Search+"%")) } if req.OrderLevel != 0 { - finder.Where("order_level = ?", req.OrderLevel) + finder.Where("wom.order_level = ?", req.OrderLevel) } if req.TimingType != 0 { - finder.Where("timing_type = ?", req.TimingType) + finder.Where("wom.timing_type = ?", req.TimingType) } if req.CreateDateFrom != "" { - finder.Where("create_time >= ?", req.CreateDateFrom) + finder.Where("wom.create_time >= ?", req.CreateDateFrom) } if req.CreateDateTo != "" { - finder.Where("create_time <= ?", req.CreateDateTo) + finder.Where("wom.create_time <= ?", req.CreateDateTo) } - finder.OrderBy("create_time desc") + finder.OrderBy("wom.create_time desc") //查询任务 - total, err = finder.Select("id,order_name,order_level,order_cnt,push_obj,timing_type,timing_state,create_user,create_time"). + total, err = finder.Select("wom.id,wom.order_name,wom.order_level,(select count(*) from work_order_issuance woi "+ + "where woi.order_id = wom.id) as order_cnt,wom.push_obj,wom.timing_type,wom.timing_state,wom.create_user,wom.create_time"). Limit(req.PageSize, (req.Page-1)*req.PageSize).FindAndCount(&workOrderListRes) if err != nil { err = resp.DbSelectError.WithError(err)