Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-operation-api
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-operation-api
Commits
b08e5d7c
Commit
b08e5d7c
authored
Jul 05, 2023
by
陈子龙
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev-czl' into dev
parents
8033565d
0c41a7f3
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1039 additions
and
140 deletions
+1039
-140
src/bean/entity/work_order.go
src/bean/entity/work_order.go
+21
-0
src/bean/vo/request/work_order.go
src/bean/vo/request/work_order.go
+91
-0
src/bean/vo/response/work_order.go
src/bean/vo/response/work_order.go
+97
-0
src/controller/work_order_manage.go
src/controller/work_order_manage.go
+232
-102
src/pkg/beagle/resp/code.go
src/pkg/beagle/resp/code.go
+10
-11
src/router/workorderrouter.go
src/router/workorderrouter.go
+21
-27
src/service/work_order.go
src/service/work_order.go
+567
-0
No files found.
src/bean/entity/work_order.go
View file @
b08e5d7c
...
@@ -17,3 +17,24 @@ type WorkOrder struct {
...
@@ -17,3 +17,24 @@ type WorkOrder struct {
UpdateUser
string
`json:"update_user" xorm:"update_user"`
// 修改人
UpdateUser
string
`json:"update_user" xorm:"update_user"`
// 修改人
UpdateTime
time
.
Time
`json:"update_time" xorm:"update_time" `
// 修改时间
UpdateTime
time
.
Time
`json:"update_time" xorm:"update_time" `
// 修改时间
}
}
type
WorkOrderIssuance
struct
{
Id
int
`json:"id" xorm:"pk autoincr" `
// id
OrderId
int
`json:"order_id" xorm:"order_id"`
// 工单id
PushObj
string
`json:"push_obj" xorm:"push_obj"`
// 下发对象
OrderState
int
`json:"order_state" xorm:"order_state"`
// 工单状态(1待处置 2已完成 3已关闭)
ReasonClosure
string
`json:"reason_closure" xorm:"reason_closure"`
// 关闭原因
CreateUser
string
`json:"create_user" xorm:"create_user" `
// 创建人
CreateTime
time
.
Time
`json:"create_time" xorm:"create_time" `
// 创建时间
CompleteTime
time
.
Time
`json:"complete_time" xorm:"complete_time" `
// 完成时间
}
type
WorkOrderMe
struct
{
Id
int
`json:"id" xorm:"pk autoincr" `
// id
OrderId
int
`json:"order_id" xorm:"order_id"`
// 工单id
OrderIssuanceId
int
`json:"order_issuance_id" xorm:"order_issuance_id"`
// 工单下发表id
SystemAccount
string
`json:"system_account" xorm:"system_account"`
// 用户账号
OrderState
int
`json:"order_state" xorm:"order_state"`
// 工单状态(1待处置 2已完成 3已关闭)
CompleteTime
time
.
Time
`json:"complete_time" xorm:"complete_time" `
// 完成时间
ResultFeedback
string
`json:"result_feedback" xorm:"result_feedback" `
// 结果反馈
}
src/bean/vo/request/work_order.go
0 → 100644
View file @
b08e5d7c
package
request
type
AddWorkOrderReq
struct
{
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"`
// 工单描述
PushObj
PushObj
`json:"push_obj" binding:"required,dive"`
// 推送对象
TimingType
int
`json:"timing_type" binding:"oneof=1 2 3"`
// 定时类型(1手动下发 2按周 3自定义时间)
TimingWeekly
TimingWeekly
`json:"timing_weekly"`
// 按周规则
TimingCustom
[]
TimingCustom
`json:"timing_custom"`
// 自定义时间规则
}
// 推送对象
type
PushObj
struct
{
PushMethod
int
`json:"push_method" binding:"oneof=1 2 3"`
// 推送方式(1钉钉 2短信 3all)
UserObj
[]
UserObj
`json:"user_obj" binding:"oneof=1 2 3,dive"`
// 用户对象
}
type
UserObj
struct
{
SystemAccount
string
`json:"system_account" binding:"required"`
// 账号
UserName
string
`json:"user_name"`
// 姓名
Phone
string
`json:"phone"`
// 联系方式
}
// 按周
type
TimingWeekly
struct
{
Week
[]
int
`json:"week"`
// 周日期(1周一 2周二 3周三 4周四 5周五 6周六 7周日)
PointTime
string
`json:"point_time"`
// 时间点
}
// 自定义
type
TimingCustom
struct
{
DateFrom
string
`json:"date_from"`
// 日期从
DateTo
string
`json:"date_to"`
// 日期至
PointTime
string
`json:"point_time"`
// 时间点
}
type
EditWorkOrderReq
struct
{
Id
int
`json:"id" binding:"required"`
// 主键id
OrderLevel
int
`json:"order_level" binding:"oneof=1 2 3"`
// 工单等级(1紧急任务 2重要任务 3一般任务)
OrderDesc
string
`json:"order_desc" binding:"required"`
// 工单描述
PushObj
PushObj
`json:"push_obj" binding:"required,dive"`
// 推送对象
TimingType
int
`json:"timing_type" binding:"oneof=1 2 3"`
// 定时类型(1手动下发 2按周 3自定义时间)
TimingWeekly
TimingWeekly
`json:"timing_weekly"`
// 按周规则
TimingCustom
[]
TimingCustom
`json:"timing_custom"`
// 自定义时间规则
}
type
StateWorkOrderReq
struct
{
Id
int
`json:"id" binding:"required"`
// 主键id
TimingState
int
`json:"timing_state" binding:"oneof=0 1"`
// 定时状态(0禁用 1启用)
}
type
DelWorkOrderReq
struct
{
Id
[]
int
`json:"id" binding:"required"`
// 主键ID
}
type
ListWorkOrderManageReq
struct
{
Search
string
`json:"search" form:"search"`
//关键词
OrderLevel
int
`json:"order_level" form:"order_level" binding:"oneof=0 1 2 3"`
//工单等级(0全部 1紧急任务 2重要任务 3一般任务)
TimingType
int
`json:"timing_type" form:"timing_type" binding:"oneof=0 1 2 3"`
//定时类型(0全部 1手动下发 2按周 3自定义时间)
CreateDateFrom
string
`json:"create_date_from" form:"create_date_from" `
// 创建时间从
CreateDateTo
string
`json:"create_date_to" form:"create_date_to" `
// 创建时间至
Pagination
}
type
PushWorkOrderReq
struct
{
Id
int
`json:"id" binding:"required"`
// 主键id
PushObj
PushObj
`json:"push_obj" binding:"required,dive"`
// 推送对象
}
type
CloseWorkOrderReq
struct
{
Id
int
`json:"id" binding:"required"`
// 主键id
ReasonClosure
string
`json:"reason_closure" binding:"required"`
// 关闭原因
}
type
ListWorkOrderReq
struct
{
Search
string
`json:"search" form:"search"`
//关键词
OrderLevel
int
`json:"order_level" form:"order_level" binding:"oneof=0 1 2 3"`
//工单等级(0全部 1紧急任务 2重要任务 3一般任务)
OrderState
int
`json:"order_state" form:"order_state" binding:"oneof=0 1 2 3"`
//工单状态(0全部 1待处置 2已完成 3已关闭)
CreateDateFrom
string
`json:"create_date_from" form:"create_date_from" `
// 创建时间从
CreateDateTo
string
`json:"create_date_to" form:"create_date_to" `
// 创建时间至
CompleteTimeFrom
string
`json:"complete_time_from" form:"complete_time_from" `
// 完成时间从
CompleteTimeTo
string
`json:"complete_time_to" form:"complete_time_to" `
// 完成时间至
Id
int
`json:"id" form:"id" `
// 工单管理主键id
Pagination
}
type
FeedbackWorkOrderReq
struct
{
Id
int
`json:"id" binding:"required"`
// 主键id
OrderIssuanceId
int
`json:"order_issuance_id" binding:"required"`
// 下发工单表id
ResultFeedback
string
`json:"result_feedback" binding:"required"`
// 结果反馈
}
src/bean/vo/response/work_order.go
0 → 100644
View file @
b08e5d7c
package
response
import
(
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/request"
"time"
)
type
WorkOrderRes
struct
{
Id
int
`json:"id"`
// 主键id
OrderName
string
`json:"order_name"`
// 工单名称
OrderLevel
int
`json:"order_level"`
// 工单等级(1紧急任务 2重要任务 3一般任务)
OrderDesc
string
`json:"order_desc"`
// 工单描述
PushObj
request
.
PushObj
`json:"push_obj" `
// 推送对象
TimingState
int
`json:"timing_state"`
// 定时状态(0禁用 1启用)
TimingType
int
`json:"timing_type"`
// 定时类型(1手动下发 2按周 3自定义时间)
TimingRule
interface
{}
`json:"timing_rule"`
// 定时规则
CreateUser
string
`json:"create_user"`
// 创建人
CreateTime
time
.
Time
`json:"create_time"`
// 创建时间
UpdateUser
string
`json:"update_user"`
// 修改人
UpdateTime
time
.
Time
`json:"update_time"`
// 修改时间
}
type
WorkOrderListRes
struct
{
Id
int
`json:"id"`
// 主键id
OrderName
string
`json:"order_name"`
// 工单名称
OrderLevel
int
`json:"order_level"`
// 工单等级(1紧急任务 2重要任务 3一般任务)
OrderCnt
int
`json:"order_cnt"`
// 实例工单数
PushObj
string
`json:"push_obj" `
// 推送对象
TimingType
int
`json:"timing_type"`
// 定时类型(1手动下发 2按周 3自定义时间)
TimingState
int
`json:"timing_state"`
// 定时状态(0禁用 1启用)
CreateUser
string
`json:"create_user"`
// 创建人
CreateTime
time
.
Time
`json:"create_time"`
// 创建时间
}
type
WorkOrderIssuanceListRes
struct
{
Id
int
`json:"id"`
// 主键id
OrderId
int
`json:"order_id"`
// 工单id
OrderName
string
`json:"order_name"`
// 工单名称
OrderLevel
int
`json:"order_level"`
// 工单等级(1紧急任务 2重要任务 3一般任务)
OrderState
int
`json:"order_state"`
// 工单状态(1待处置 2已完成 3已关闭)
PushObj
string
`json:"push_obj" `
// 推送对象
CreateUser
string
`json:"create_user"`
// 创建人
CreateTime
string
`json:"create_time"`
// 创建时间
CompleteTime
string
`json:"complete_time"`
// 完成时间
StateCnt
int
`json:"state_cnt"`
// 完成数量
AllCnt
int
`json:"all_cnt"`
// 全部数量
}
type
WorkOrderIssuanceRes
struct
{
Id
int
`json:"id"`
// 主键id
OrderId
int
`json:"order_id"`
// 工单id
OrderName
string
`json:"order_name"`
// 工单名称
OrderLevel
int
`json:"order_level"`
// 工单等级(1紧急任务 2重要任务 3一般任务)
OrderDesc
string
`json:"order_desc"`
// 工单描述
OrderState
int
`json:"order_state"`
// 工单状态(1待处置 2已完成 3已关闭)
PushObj
request
.
PushObj
`json:"push_obj" `
// 推送对象
CreateUser
string
`json:"create_user"`
// 创建人
CreateTime
string
`json:"create_time"`
// 创建时间
CompleteTime
string
`json:"complete_time"`
// 完成时间
WorkOrderMe
[]
WorkOrderMe
`json:"work_order_me"`
// 工单反馈
}
type
WorkOrderIssuance
struct
{
Id
int
`json:"id"`
// 主键id
OrderId
int
`json:"order_id"`
// 工单id
OrderName
string
`json:"order_name"`
// 工单名称
OrderLevel
int
`json:"order_level"`
// 工单等级(1紧急任务 2重要任务 3一般任务)
OrderDesc
string
`json:"order_desc"`
// 工单描述
OrderState
int
`json:"order_state"`
// 工单状态(1待处置 2已完成 3已关闭)
PushObj
string
`json:"push_obj" `
// 推送对象
CreateUser
string
`json:"create_user"`
// 创建人
CreateTime
string
`json:"create_time"`
// 创建时间
CompleteTime
string
`json:"complete_time"`
// 完成时间
}
type
WorkOrderMe
struct
{
Id
int
`json:"id"`
// id
OrderId
int
`json:"order_id"`
// 工单id
OrderIssuanceId
int
`json:"order_issuance_id"`
// 工单下发表id
SystemAccount
string
`json:"system_account"`
// 用户账号
OrderState
int
`json:"order_state"`
// 工单状态(1待处置 2已完成 3已关闭)
CompleteTime
string
`json:"complete_time"`
// 完成时间
ResultFeedback
string
`json:"result_feedback"`
// 结果反馈
}
type
WorkOrderMeListRes
struct
{
Id
int
`json:"id"`
// 主键id
OrderId
int
`json:"order_id"`
// 工单id
OrderIssuanceId
int
`json:"order_issuance_id"`
// 工单下发表id
OrderName
string
`json:"order_name"`
// 工单名称
OrderLevel
int
`json:"order_level"`
// 工单等级(1紧急任务 2重要任务 3一般任务)
OrderState
int
`json:"order_state"`
// 工单状态(1待处置 2已完成 3已关闭)
PushObj
string
`json:"push_obj" `
// 推送对象
CreateUser
string
`json:"create_user"`
// 创建人
CreateTime
string
`json:"create_time"`
// 创建时间
CompleteTime
string
`json:"complete_time"`
// 完成时间
}
src/controller/work_order_manage.go
View file @
b08e5d7c
package
controller
package
controller
import
(
import
(
"errors"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin"
"github.com/spf13/cast"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/request"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/service"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/util"
)
)
// AddWorkOrderManage 新增业务工单管理
// AddWorkOrderManage 新增业务工单管理
func
AddWorkOrderManage
(
c
*
gin
.
Context
)
{
func
AddWorkOrderManage
(
c
*
gin
.
Context
)
{
//var req request.AddTaskManageReq
var
req
request
.
AddWorkOrderReq
//if err := c.ShouldBindJSON(&req); err != nil {
if
err
:=
c
.
ShouldBindJSON
(
&
req
);
err
!=
nil
{
// SendJsonResponse(c, resp.InvalidParam.WithError(err), nil)
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
// return
return
//}
}
////参数校验
//if err := util.ValidateSimple(req, "TaskName,HostGroupId"); err != nil {
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
// SendJsonResponse(c, resp.InvalidParam.WithError(err), nil)
err
:=
workOrderManageSvc
.
AddWorkOrderManage
(
req
)
// return
if
err
!=
nil
{
//}
SendJsonResponse
(
c
,
err
,
nil
)
//
return
//taskManageSvc := service.TaskManageSvc{}
}
//err := taskManageSvc.AddTaskManage(req)
SendJsonResponse
(
c
,
resp
.
OK
,
nil
)
//if err != nil {
}
// SendJsonResponse(c, err, nil)
// return
// EditWorkOrderManage 编辑业务工单管理
//}
func
EditWorkOrderManage
(
c
*
gin
.
Context
)
{
var
req
request
.
EditWorkOrderReq
if
err
:=
c
.
ShouldBindJSON
(
&
req
);
err
!=
nil
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
return
}
//参数校验
if
err
:=
util
.
ValidateSimple
(
req
,
"Id,HostGroupId"
);
err
!=
nil
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
return
}
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
err
:=
workOrderManageSvc
.
EditWorkOrderManage
(
req
)
if
err
!=
nil
{
SendJsonResponse
(
c
,
err
,
nil
)
return
}
SendJsonResponse
(
c
,
resp
.
OK
,
nil
)
SendJsonResponse
(
c
,
resp
.
OK
,
nil
)
}
}
//
// StateWorkOrderManage 定时是否启用
//// EditTaskManage 编辑任务
func
StateWorkOrderManage
(
c
*
gin
.
Context
)
{
//func EditTaskManage(c *gin.Context) {
var
req
request
.
StateWorkOrderReq
// var req request.EditTaskManageReq
if
err
:=
c
.
ShouldBindJSON
(
&
req
);
err
!=
nil
{
// if err := c.ShouldBindJSON(&req); err != nil {
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
// SendJsonResponse(c, resp.InvalidParam.WithError(err), nil)
return
// return
}
// }
//参数校验
// //参数校验
if
err
:=
util
.
ValidateSimple
(
req
,
"Id,HostGroupId"
);
err
!=
nil
{
// if err := util.ValidateSimple(req, "Id,HostGroupId"); err != nil {
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
// SendJsonResponse(c, resp.InvalidParam.WithError(err), nil)
return
// return
}
// }
//
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
// taskManageSvc := service.TaskManageSvc{}
err
:=
workOrderManageSvc
.
StateWorkOrderManage
(
req
)
// err := taskManageSvc.EditTaskManage(req)
if
err
!=
nil
{
// if err != nil {
SendJsonResponse
(
c
,
err
,
nil
)
// SendJsonResponse(c, err, nil)
return
// return
}
// }
SendJsonResponse
(
c
,
resp
.
OK
,
nil
)
// SendJsonResponse(c, resp.OK, nil)
}
//}
//
// DelWorkOrderManage 删除
//// DelTaskManage 删除任务
func
DelWorkOrderManage
(
c
*
gin
.
Context
)
{
//func DelTaskManage(c *gin.Context) {
var
req
request
.
DelWorkOrderReq
// var req request.DelTaskManageReq
if
err
:=
c
.
ShouldBindJSON
(
&
req
);
err
!=
nil
{
// if err := c.ShouldBindJSON(&req); err != nil {
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
// SendJsonResponse(c, resp.InvalidParam.WithError(err), nil)
return
// return
}
// }
//参数校验
// //参数校验
if
err
:=
util
.
ValidateSimple
(
req
,
"Id"
);
err
!=
nil
{
// if err := util.ValidateSimple(req, "Id"); err != nil {
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
// SendJsonResponse(c, resp.InvalidParam.WithError(err), nil)
return
// return
}
// }
//
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
// taskManageSvc := service.TaskManageSvc{}
err
:=
workOrderManageSvc
.
DelWorkOrderManage
(
req
)
// err := taskManageSvc.DelTaskManage(req)
if
err
!=
nil
{
// if err != nil {
SendJsonResponse
(
c
,
err
,
nil
)
// SendJsonResponse(c, err, nil)
return
// return
}
// }
SendJsonResponse
(
c
,
resp
.
OK
,
nil
)
// SendJsonResponse(c, resp.OK, nil)
}
//}
//
// DetailsWorkOrderManage 详情
//// DetailsTaskManage 任务详情
func
DetailsWorkOrderManage
(
c
*
gin
.
Context
)
{
//func DetailsTaskManage(c *gin.Context) {
var
(
// var (
err
error
// err error
id
string
// id string
)
// )
//
if
id
=
c
.
Query
(
"id"
);
id
==
""
{
// if id = c.Query("id"); id == "" {
id
=
c
.
Param
(
"id"
)
// id = c.Param("id")
}
// }
if
id
==
""
{
// if id == "" {
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
errors
.
New
(
"id为空"
)),
nil
)
// SendJsonResponse(c, resp.InvalidParam.WithError(errors.New("id为空")), nil)
return
// return
}
// }
//
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
// taskManageSvc := service.TaskManageSvc{}
data
,
err
:=
workOrderManageSvc
.
DetailsWorkOrderManage
(
cast
.
ToInt
(
id
))
// data, err := taskManageSvc.DetailsTaskManage(cast.ToInt(id))
if
err
!=
nil
{
// if err != nil {
SendJsonResponse
(
c
,
err
,
nil
)
// SendJsonResponse(c, err, nil)
return
// return
}
// }
SendJsonResponse
(
c
,
resp
.
OK
,
data
)
// SendJsonResponse(c, resp.OK, data)
}
//}
//
// ListWorkOrderManage 列表
//// ListTaskManage 任务列表
func
ListWorkOrderManage
(
c
*
gin
.
Context
)
{
//func ListTaskManage(c *gin.Context) {
var
req
request
.
ListWorkOrderManageReq
// var req request.ListTaskManageReq
if
err
:=
c
.
ShouldBind
(
&
req
);
err
!=
nil
{
// if err := c.ShouldBind(&req); err != nil {
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
// SendJsonResponse(c, resp.InvalidParam.WithError(err), nil)
return
// return
}
// }
//
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
// taskManageSvc := service.TaskManageSvc{}
total
,
list
,
err
:=
workOrderManageSvc
.
ListWorkOrderManage
(
req
)
// total, list, err := taskManageSvc.ListTaskManage(req)
if
err
!=
nil
{
// if err != nil {
SendJsonPageResponse
(
c
,
err
,
nil
,
0
)
// SendJsonPageResponse(c, err, nil, 0)
return
// return
}
// }
SendJsonPageResponse
(
c
,
resp
.
OK
,
list
,
total
)
// SendJsonPageResponse(c, resp.OK, list, total)
}
//}
// PushWorkOrderManage 手动下发
func
PushWorkOrderManage
(
c
*
gin
.
Context
)
{
var
req
request
.
PushWorkOrderReq
if
err
:=
c
.
ShouldBindJSON
(
&
req
);
err
!=
nil
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
return
}
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
err
:=
workOrderManageSvc
.
PushWorkOrderManage
(
req
)
if
err
!=
nil
{
SendJsonResponse
(
c
,
err
,
nil
)
return
}
SendJsonResponse
(
c
,
resp
.
OK
,
nil
)
}
// CloseWorkOrderIssuance 关闭工单
func
CloseWorkOrderIssuance
(
c
*
gin
.
Context
)
{
var
req
request
.
CloseWorkOrderReq
if
err
:=
c
.
ShouldBindJSON
(
&
req
);
err
!=
nil
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
return
}
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
err
:=
workOrderManageSvc
.
CloseWorkOrderIssuance
(
req
)
if
err
!=
nil
{
SendJsonResponse
(
c
,
err
,
nil
)
return
}
SendJsonResponse
(
c
,
resp
.
OK
,
nil
)
}
// ListWorkOrderIssuance 业务工单下发列表
func
ListWorkOrderIssuance
(
c
*
gin
.
Context
)
{
var
req
request
.
ListWorkOrderReq
if
err
:=
c
.
ShouldBind
(
&
req
);
err
!=
nil
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
return
}
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
total
,
list
,
err
:=
workOrderManageSvc
.
ListWorkOrderIssuance
(
req
)
if
err
!=
nil
{
SendJsonPageResponse
(
c
,
err
,
nil
,
0
)
return
}
SendJsonPageResponse
(
c
,
resp
.
OK
,
list
,
total
)
}
// DetailsWorkOrderIssuance 业务工单下发详情
func
DetailsWorkOrderIssuance
(
c
*
gin
.
Context
)
{
var
(
err
error
id
string
)
if
id
=
c
.
Query
(
"id"
);
id
==
""
{
id
=
c
.
Param
(
"id"
)
}
if
id
==
""
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
errors
.
New
(
"id为空"
)),
nil
)
return
}
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
data
,
err
:=
workOrderManageSvc
.
DetailsWorkOrderIssuance
(
cast
.
ToInt
(
id
))
if
err
!=
nil
{
SendJsonResponse
(
c
,
err
,
nil
)
return
}
SendJsonResponse
(
c
,
resp
.
OK
,
data
)
}
// FeedbackWorkOrderMe 处置反馈
func
FeedbackWorkOrderMe
(
c
*
gin
.
Context
)
{
var
req
request
.
FeedbackWorkOrderReq
if
err
:=
c
.
ShouldBindJSON
(
&
req
);
err
!=
nil
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
return
}
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
err
:=
workOrderManageSvc
.
FeedbackWorkOrderMe
(
req
)
if
err
!=
nil
{
SendJsonResponse
(
c
,
err
,
nil
)
return
}
SendJsonResponse
(
c
,
resp
.
OK
,
nil
)
}
// ListWorkOrderMe 我的业务工单列表
func
ListWorkOrderMe
(
c
*
gin
.
Context
)
{
var
req
request
.
ListWorkOrderReq
if
err
:=
c
.
ShouldBind
(
&
req
);
err
!=
nil
{
SendJsonResponse
(
c
,
resp
.
InvalidParam
.
WithError
(
err
),
nil
)
return
}
workOrderManageSvc
:=
service
.
WorkOrderManageSvc
{}
total
,
list
,
err
:=
workOrderManageSvc
.
ListWorkOrderMe
(
req
)
if
err
!=
nil
{
SendJsonPageResponse
(
c
,
err
,
nil
,
0
)
return
}
SendJsonPageResponse
(
c
,
resp
.
OK
,
list
,
total
)
}
src/pkg/beagle/resp/code.go
View file @
b08e5d7c
...
@@ -26,16 +26,15 @@ var (
...
@@ -26,16 +26,15 @@ var (
DbSessionStartError
=
Resp
{
Code
:
5010007
,
Msg
:
"数据库事务开启失败"
}
DbSessionStartError
=
Resp
{
Code
:
5010007
,
Msg
:
"数据库事务开启失败"
}
DbDataCheckError
=
Resp
{
Code
:
5010008
,
Msg
:
"数据去重验证失败"
}
DbDataCheckError
=
Resp
{
Code
:
5010008
,
Msg
:
"数据去重验证失败"
}
EsConnectError
=
Resp
{
Code
:
5010009
,
Msg
:
"es连接失败"
}
EsConnectError
=
Resp
{
Code
:
5010009
,
Msg
:
"es连接失败"
}
AddSheetError
=
Resp
{
Code
:
5010010
,
Msg
:
"新建sheet失败"
}
UnableAccountLock
=
Resp
{
Code
:
5010011
,
Msg
:
"暂无账号锁定"
}
CmdExecError
=
Resp
{
Code
:
5010012
,
Msg
:
"执行shell命令失败"
}
FileExecError
=
Resp
{
Code
:
5010013
,
Msg
:
"文件执行失败"
}
YamlAnalysisError
=
Resp
{
Code
:
5010014
,
Msg
:
"yaml解析错误"
}
MarshalError
=
Resp
{
Code
:
5010015
,
Msg
:
"文件解析错误"
}
// 文件上传
AddSheetError
=
Resp
{
Code
:
5000001
,
Msg
:
"新建sheet失败"
}
UploadFileError
=
Resp
{
Code
:
6000001
,
Msg
:
"文件上传失败"
}
UnableAccountLock
=
Resp
{
Code
:
5000002
,
Msg
:
"暂无账号锁定"
}
GetFileStreamError
=
Resp
{
Code
:
6000002
,
Msg
:
"获取文件流失败"
}
CmdExecError
=
Resp
{
Code
:
5000003
,
Msg
:
"执行shell命令失败"
}
ReadFileError
=
Resp
{
Code
:
6000003
,
Msg
:
"读取文件失败"
}
FileExecError
=
Resp
{
Code
:
5000004
,
Msg
:
"文件执行失败"
}
FailedToParseFile
=
Resp
{
Code
:
6000004
,
Msg
:
"解析文件失败"
}
YamlAnalysisError
=
Resp
{
Code
:
5000005
,
Msg
:
"yaml解析错误"
}
MarshalError
=
Resp
{
Code
:
5000006
,
Msg
:
"文件解析错误"
}
UploadFileError
=
Resp
{
Code
:
5000007
,
Msg
:
"文件上传失败"
}
GetFileStreamError
=
Resp
{
Code
:
5000008
,
Msg
:
"获取文件流失败"
}
ReadFileError
=
Resp
{
Code
:
5000009
,
Msg
:
"读取文件失败"
}
FailedToParseFile
=
Resp
{
Code
:
5000010
,
Msg
:
"解析文件失败"
}
)
)
src/router/workorderrouter.go
View file @
b08e5d7c
...
@@ -13,33 +13,27 @@ func InitWorkOrderRouter(e *gin.Engine) {
...
@@ -13,33 +13,27 @@ func InitWorkOrderRouter(e *gin.Engine) {
//业务工单管理
//业务工单管理
manage
:=
so
.
Group
(
"/work_order_manage"
)
manage
:=
so
.
Group
(
"/work_order_manage"
)
{
{
manage
.
POST
(
"/add"
,
controller
.
AddWorkOrderManage
)
// 新增
manage
.
POST
(
"/add"
,
controller
.
AddWorkOrderManage
)
// 新增
//manage.PUT("/edit", controller.EditTaskManage) // 编辑
manage
.
PUT
(
"/edit"
,
controller
.
EditWorkOrderManage
)
// 编辑
//manage.DELETE("/del", controller.DelTaskManage) // 删除
manage
.
PUT
(
"/state"
,
controller
.
StateWorkOrderManage
)
// 定时是否启用
//manage.GET("/details", controller.DetailsTaskManage) // 详情
manage
.
DELETE
(
"/del"
,
controller
.
DelWorkOrderManage
)
// 删除
//manage.GET("/list", controller.ListTaskManage) // 列表
manage
.
GET
(
"/details"
,
controller
.
DetailsWorkOrderManage
)
// 详情
//manage.POST("/exec/script", controller.ExecScript) // 立即执行
manage
.
GET
(
"/list"
,
controller
.
ListWorkOrderManage
)
// 列表
manage
.
POST
(
"/push"
,
controller
.
PushWorkOrderManage
)
// 手动下发
}
}
////任务历史
//业务工单列表
//taskHistory := so.Group("/task_history")
list
:=
so
.
Group
(
"/work_order_issuance"
)
//{
{
// taskHistory.GET("/list", controller.TaskHistoryList) // 任务历史列表
list
.
PUT
(
"/close"
,
controller
.
CloseWorkOrderIssuance
)
// 关闭工单
// taskHistory.GET("/task_info_list", controller.TaskInfoList) // 任务历史详情列表
list
.
GET
(
"/list"
,
controller
.
ListWorkOrderIssuance
)
// 业务工单下发列表
// taskHistory.GET("/task_exec_log", controller.TaskExecLog) // 任务执行日志
list
.
GET
(
"/details"
,
controller
.
DetailsWorkOrderIssuance
)
// 业务工单下发详情
//}
}
//
////主机管理
//我的业务工单
//host := so.Group("/host_manage")
me
:=
so
.
Group
(
"/work_order_me"
)
//{
{
// host.POST("/add", controller.AddHostManage) // 新增
me
.
PUT
(
"/feedback"
,
controller
.
FeedbackWorkOrderMe
)
// 处置反馈
// host.PUT("/edit", controller.EditHostManage) // 编辑
me
.
GET
(
"/list"
,
controller
.
ListWorkOrderMe
)
// 我的业务工单列表
// host.DELETE("/del", controller.DelHostManage) // 删除
}
// host.GET("/details", controller.DetailsHostManage) // 详情
// host.GET("/page_list", controller.PageListHostManage) // 列表
// host.POST("/state", controller.StateHostManage) // 状态检测
// host.GET("/ip_exception_list", controller.HostIpExceptionList) // 主机ip异常列表
// host.GET("/export", controller.ExportIp) // 导出ip列表
// host.GET("/list", controller.ListHostManage) // 主机分组列表-不分页
//}
}
}
src/service/work_order.go
0 → 100644
View file @
b08e5d7c
package
service
import
(
"errors"
"fmt"
json
"github.com/json-iterator/go"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/entity"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/request"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/bean/vo/response"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/common/client"
"gitlab.wodcloud.com/smart-operation/so-operation-api/src/pkg/beagle/resp"
"time"
)
type
WorkOrderManageSvc
struct
{
User
*
entity
.
SystemUser
}
// AddWorkOrderManage 新增业务工单
func
(
w
*
WorkOrderManageSvc
)
AddWorkOrderManage
(
req
request
.
AddWorkOrderReq
)
(
err
error
)
{
var
timingWeekly
,
timingCustom
,
pushObj
[]
byte
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
// 校验 工单名称 是否重复
has
,
err
:=
db
.
Table
(
"work_order_manage"
)
.
Where
(
"order_name = ?"
,
req
.
OrderName
)
.
Exist
()
if
has
{
err
=
resp
.
DbDataCheckError
.
WithError
(
errors
.
New
(
"工单名称重复"
))
return
}
if
err
!=
nil
{
err
=
resp
.
DbSelectError
.
WithError
(
err
)
return
}
pushObj
,
err
=
json
.
Marshal
(
req
.
PushObj
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrder
:=
entity
.
WorkOrder
{
OrderName
:
req
.
OrderName
,
OrderLevel
:
req
.
OrderLevel
,
OrderDesc
:
req
.
OrderDesc
,
PushObj
:
fmt
.
Sprintf
(
"%s"
,
pushObj
),
TimingType
:
req
.
TimingType
,
CreateUser
:
""
,
CreateTime
:
time
.
Now
(),
UpdateUser
:
""
,
UpdateTime
:
time
.
Now
(),
}
if
req
.
TimingType
==
2
{
timingWeekly
,
err
=
json
.
Marshal
(
req
.
TimingWeekly
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrder
.
TimingRule
=
fmt
.
Sprintf
(
"%s"
,
timingWeekly
)
}
else
if
req
.
TimingType
==
3
{
timingCustom
,
err
=
json
.
Marshal
(
req
.
TimingCustom
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrder
.
TimingRule
=
fmt
.
Sprintf
(
"%s"
,
timingCustom
)
}
_
,
err
=
db
.
Table
(
"work_order_manage"
)
.
Insert
(
&
workOrder
)
if
err
!=
nil
{
err
=
resp
.
DbInsertError
.
WithError
(
err
)
return
}
return
}
// EditWorkOrderManage 编辑业务工单管理
func
(
w
*
WorkOrderManageSvc
)
EditWorkOrderManage
(
req
request
.
EditWorkOrderReq
)
(
err
error
)
{
var
timingWeekly
,
timingCustom
,
pushObj
[]
byte
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
pushObj
,
err
=
json
.
Marshal
(
req
.
PushObj
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrder
:=
entity
.
WorkOrder
{
OrderLevel
:
req
.
OrderLevel
,
OrderDesc
:
req
.
OrderDesc
,
PushObj
:
fmt
.
Sprintf
(
"%s"
,
pushObj
),
TimingType
:
req
.
TimingType
,
UpdateUser
:
""
,
UpdateTime
:
time
.
Now
(),
}
if
req
.
TimingType
==
2
{
timingWeekly
,
err
=
json
.
Marshal
(
req
.
TimingWeekly
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrder
.
TimingRule
=
fmt
.
Sprintf
(
"%s"
,
timingWeekly
)
}
else
if
req
.
TimingType
==
3
{
timingCustom
,
err
=
json
.
Marshal
(
req
.
TimingCustom
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrder
.
TimingRule
=
fmt
.
Sprintf
(
"%s"
,
timingCustom
)
}
_
,
err
=
db
.
Table
(
"work_order_manage"
)
.
Where
(
"id = ?"
,
req
.
Id
)
.
Cols
(
"order_level,order_desc,order_cnt,push_obj,timing_type,timing_rule"
)
.
Update
(
&
workOrder
)
if
err
!=
nil
{
err
=
resp
.
DbUpdateError
.
WithError
(
err
)
return
}
return
}
// StateWorkOrderManage 编辑业务工单管理
func
(
w
*
WorkOrderManageSvc
)
StateWorkOrderManage
(
req
request
.
StateWorkOrderReq
)
(
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
_
,
err
=
db
.
Table
(
"work_order_manage"
)
.
Where
(
"id = ?"
,
req
.
Id
)
.
Cols
(
"timing_state"
)
.
Update
(
&
entity
.
WorkOrder
{
TimingState
:
req
.
TimingState
})
if
err
!=
nil
{
err
=
resp
.
DbUpdateError
.
WithError
(
err
)
return
}
return
}
// DelWorkOrderManage 删除
func
(
w
*
WorkOrderManageSvc
)
DelWorkOrderManage
(
req
request
.
DelWorkOrderReq
)
(
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
_
,
err
=
db
.
Table
(
"work_order_manage"
)
.
In
(
"id"
,
req
.
Id
)
.
Delete
(
&
entity
.
WorkOrder
{})
if
err
!=
nil
{
err
=
resp
.
DbDeleteError
.
WithError
(
err
)
return
}
return
}
// DetailsWorkOrderManage 详情
func
(
w
*
WorkOrderManageSvc
)
DetailsWorkOrderManage
(
id
int
)
(
taskManageRes
response
.
WorkOrderRes
,
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
//查询任务详情
var
workOrder
entity
.
WorkOrder
finder
:=
db
.
Table
(
"work_order_manage"
)
.
Where
(
"id = ?"
,
id
)
_
,
err
=
finder
.
Get
(
&
workOrder
)
if
err
!=
nil
{
err
=
resp
.
DbSelectError
.
WithError
(
err
)
return
}
err
=
json
.
Unmarshal
([]
byte
(
workOrder
.
PushObj
),
&
taskManageRes
.
PushObj
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
err
=
json
.
Unmarshal
([]
byte
(
workOrder
.
TimingRule
),
&
taskManageRes
.
TimingRule
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
taskManageRes
.
Id
=
workOrder
.
Id
taskManageRes
.
OrderName
=
workOrder
.
OrderName
taskManageRes
.
OrderLevel
=
workOrder
.
OrderLevel
taskManageRes
.
OrderDesc
=
workOrder
.
OrderDesc
taskManageRes
.
TimingState
=
workOrder
.
TimingState
taskManageRes
.
TimingType
=
workOrder
.
TimingType
taskManageRes
.
CreateUser
=
workOrder
.
CreateUser
taskManageRes
.
CreateTime
=
workOrder
.
CreateTime
taskManageRes
.
UpdateUser
=
workOrder
.
UpdateUser
taskManageRes
.
UpdateUser
=
workOrder
.
UpdateUser
taskManageRes
.
UpdateTime
=
workOrder
.
UpdateTime
return
}
// ListWorkOrderManage 列表
func
(
w
*
WorkOrderManageSvc
)
ListWorkOrderManage
(
req
request
.
ListWorkOrderManageReq
)
(
total
int64
,
workOrderListRes
[]
response
.
WorkOrderListRes
,
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
finder
:=
db
.
Table
(
"work_order_manage"
)
if
req
.
Search
!=
""
{
finder
.
Where
(
fmt
.
Sprintf
(
"order_name LIKE %s"
,
"%"
+
req
.
Search
+
"%"
))
}
if
req
.
OrderLevel
!=
0
{
finder
.
Where
(
"order_level = ?"
,
req
.
OrderLevel
)
}
if
req
.
TimingType
!=
0
{
finder
.
Where
(
"timing_type = ?"
,
req
.
TimingType
)
}
if
req
.
CreateDateFrom
!=
""
{
finder
.
Where
(
"create_time >= ?"
,
req
.
CreateDateFrom
)
}
if
req
.
CreateDateTo
!=
""
{
finder
.
Where
(
"create_time <= ?"
,
req
.
CreateDateTo
)
}
finder
.
OrderBy
(
"create_time"
)
//查询任务
total
,
err
=
finder
.
Select
(
"id,order_name,order_level,order_cnt,push_obj,timing_type,timing_state,create_user,create_time"
)
.
Limit
(
req
.
PageSize
,
(
req
.
Page
-
1
)
*
req
.
PageSize
)
.
FindAndCount
(
&
workOrderListRes
)
if
err
!=
nil
{
err
=
resp
.
DbSelectError
.
WithError
(
err
)
return
}
for
k
,
v
:=
range
workOrderListRes
{
var
pushObj
request
.
PushObj
err
=
json
.
Unmarshal
([]
byte
(
v
.
PushObj
),
&
pushObj
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrderListRes
[
k
]
.
PushObj
=
pushObj
.
UserObj
[
0
]
.
UserName
for
i
:=
1
;
i
<
len
(
pushObj
.
UserObj
);
i
++
{
workOrderListRes
[
k
]
.
PushObj
=
workOrderListRes
[
k
]
.
PushObj
+
"、"
+
pushObj
.
UserObj
[
i
]
.
UserName
}
}
return
}
// PushWorkOrderManage 手动下发
func
(
w
*
WorkOrderManageSvc
)
PushWorkOrderManage
(
req
request
.
PushWorkOrderReq
)
(
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
session
:=
db
.
NewSession
()
defer
session
.
Close
()
session
.
Begin
()
//pushObj := req.PushObj.UserObj[0].UserName
//for i := 1; i < len(req.PushObj.UserObj); i++ {
// pushObj = pushObj + "、" + req.PushObj.UserObj[i].UserName
//}
pushObj
,
err
:=
json
.
Marshal
(
req
.
PushObj
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
//新增 下发工单表 数据
workOrderIssuance
:=
entity
.
WorkOrderIssuance
{
OrderId
:
req
.
Id
,
PushObj
:
fmt
.
Sprintf
(
"%s"
,
pushObj
),
OrderState
:
1
,
CreateUser
:
"admin"
,
CreateTime
:
time
.
Now
(),
}
_
,
err
=
session
.
Table
(
"work_order_issuance"
)
.
Insert
(
&
workOrderIssuance
)
if
err
!=
nil
{
err
=
resp
.
DbInsertError
.
WithError
(
err
)
session
.
Rollback
()
return
}
for
_
,
v
:=
range
req
.
PushObj
.
UserObj
{
//新增 个人业务工单表 数据
workOrderMe
:=
entity
.
WorkOrderMe
{
OrderId
:
req
.
Id
,
OrderIssuanceId
:
workOrderIssuance
.
Id
,
SystemAccount
:
v
.
SystemAccount
,
OrderState
:
1
,
}
_
,
err
=
session
.
Table
(
"work_order_me"
)
.
Insert
(
&
workOrderMe
)
if
err
!=
nil
{
err
=
resp
.
DbInsertError
.
WithError
(
err
)
session
.
Rollback
()
return
}
}
//发消息通知 czl..
//修改库表实例工单数
_
,
err
=
session
.
Table
(
"work_order_manage"
)
.
Where
(
"id = ?"
,
req
.
Id
)
.
Incr
(
"order_cnt"
)
.
Update
(
&
entity
.
WorkOrder
{})
if
err
!=
nil
{
err
=
resp
.
DbUpdateError
.
WithError
(
err
)
session
.
Rollback
()
return
}
session
.
Commit
()
return
}
// CloseWorkOrderIssuance 关闭工单
func
(
w
*
WorkOrderManageSvc
)
CloseWorkOrderIssuance
(
req
request
.
CloseWorkOrderReq
)
(
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
session
:=
db
.
NewSession
()
defer
session
.
Close
()
session
.
Begin
()
//修改 下发工单表 数据
_
,
err
=
session
.
Table
(
"work_order_issuance"
)
.
Where
(
"id = ?"
,
req
.
Id
)
.
Cols
(
"order_state,reason_closure"
)
.
Update
(
&
entity
.
WorkOrderIssuance
{
OrderState
:
3
,
ReasonClosure
:
req
.
ReasonClosure
,
})
if
err
!=
nil
{
err
=
resp
.
DbInsertError
.
WithError
(
err
)
session
.
Rollback
()
return
}
//修改 个人业务工单表 数据
_
,
err
=
session
.
Table
(
"work_order_me"
)
.
Where
(
"order_issuance_id = ?"
,
req
.
Id
)
.
Cols
(
"order_state"
)
.
Update
(
&
entity
.
WorkOrderMe
{
OrderState
:
3
,
})
if
err
!=
nil
{
err
=
resp
.
DbInsertError
.
WithError
(
err
)
session
.
Rollback
()
return
}
session
.
Commit
()
return
}
// ListWorkOrderIssuance 业务工单下发列表
func
(
w
*
WorkOrderManageSvc
)
ListWorkOrderIssuance
(
req
request
.
ListWorkOrderReq
)
(
total
int64
,
workOrderIssuanceListRes
[]
response
.
WorkOrderIssuanceListRes
,
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
finder
:=
db
.
Table
(
"work_order_issuance"
)
.
Alias
(
"woi"
)
.
Join
(
"INNER"
,
"work_order_manage wom"
,
"woi.order_id = wom.id"
)
if
req
.
Search
!=
""
{
finder
.
Where
(
fmt
.
Sprintf
(
"wom.order_name LIKE %s"
,
"%"
+
req
.
Search
+
"%"
))
}
if
req
.
OrderLevel
!=
0
{
finder
.
Where
(
"wom.order_level = ?"
,
req
.
OrderLevel
)
}
if
req
.
OrderState
!=
0
{
finder
.
Where
(
"woi.order_state = ?"
,
req
.
OrderState
)
}
if
req
.
CreateDateFrom
!=
""
{
finder
.
Where
(
"woi.create_time >= ?"
,
req
.
CreateDateFrom
)
}
if
req
.
CreateDateTo
!=
""
{
finder
.
Where
(
"woi.create_time <= ?"
,
req
.
CreateDateTo
)
}
if
req
.
CompleteTimeFrom
!=
""
{
finder
.
Where
(
"woi.complete_time <= ?"
,
req
.
CompleteTimeFrom
)
}
if
req
.
CompleteTimeTo
!=
""
{
finder
.
Where
(
"woi.complete_time <= ?"
,
req
.
CompleteTimeTo
)
}
if
req
.
Id
!=
0
{
finder
.
Where
(
"wom.id = ?"
,
req
.
Id
)
}
finder
.
OrderBy
(
"woi.create_time"
)
//查询任务
total
,
err
=
finder
.
Select
(
"woi.
\"
id
\"
,woi.order_id,wom.order_name,wom.order_level,woi.order_state,woi.push_obj,woi.create_user,woi.create_time,woi.complete_time,"
+
"(select count(1) from work_order_me wome where wome.order_issuance_id = woi.id and wome.order_state = woi.order_state) as state_cnt,"
+
"(select count(1) from work_order_me wome where wome.order_issuance_id = woi.id) as all_cnt"
)
.
Limit
(
req
.
PageSize
,
(
req
.
Page
-
1
)
*
req
.
PageSize
)
.
FindAndCount
(
&
workOrderIssuanceListRes
)
if
err
!=
nil
{
err
=
resp
.
DbSelectError
.
WithError
(
err
)
return
}
for
k
,
v
:=
range
workOrderIssuanceListRes
{
var
pushObj
request
.
PushObj
err
=
json
.
Unmarshal
([]
byte
(
v
.
PushObj
),
&
pushObj
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrderIssuanceListRes
[
k
]
.
PushObj
=
pushObj
.
UserObj
[
0
]
.
UserName
for
i
:=
1
;
i
<
len
(
pushObj
.
UserObj
);
i
++
{
workOrderIssuanceListRes
[
k
]
.
PushObj
=
workOrderIssuanceListRes
[
k
]
.
PushObj
+
"、"
+
pushObj
.
UserObj
[
i
]
.
UserName
}
}
return
}
// DetailsWorkOrderIssuance 业务工单下发详情
func
(
w
*
WorkOrderManageSvc
)
DetailsWorkOrderIssuance
(
id
int
)
(
workOrderIssuanceRes
response
.
WorkOrderIssuanceRes
,
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
var
workOrderIssuance
response
.
WorkOrderIssuance
finder
:=
db
.
Table
(
"work_order_issuance"
)
.
Alias
(
"woi"
)
.
Join
(
"INNER"
,
"work_order_manage wom"
,
"woi.order_id = wom.ID"
)
.
Where
(
"woi.id = ?"
,
id
)
_
,
err
=
finder
.
Select
(
"woi.
\"
id
\"
,woi.order_id,wom.order_name,wom.order_level,wom.order_desc,woi.order_state,woi.push_obj,woi.create_user,woi.create_time,woi.complete_time"
)
.
Get
(
&
workOrderIssuance
)
if
err
!=
nil
{
err
=
resp
.
DbSelectError
.
WithError
(
err
)
return
}
//var workOrderMe entity.WorkOrderMe
finder1
:=
db
.
Table
(
"work_order_me"
)
.
Where
(
"order_issuance_id = ?"
,
id
)
err
=
finder1
.
Find
(
&
workOrderIssuanceRes
.
WorkOrderMe
)
if
err
!=
nil
{
err
=
resp
.
DbSelectError
.
WithError
(
err
)
return
}
err
=
json
.
Unmarshal
([]
byte
(
workOrderIssuance
.
PushObj
),
&
workOrderIssuanceRes
.
PushObj
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrderIssuanceRes
.
Id
=
workOrderIssuance
.
Id
workOrderIssuanceRes
.
OrderId
=
workOrderIssuance
.
OrderId
workOrderIssuanceRes
.
OrderName
=
workOrderIssuance
.
OrderName
workOrderIssuanceRes
.
OrderLevel
=
workOrderIssuance
.
OrderLevel
workOrderIssuanceRes
.
OrderDesc
=
workOrderIssuance
.
OrderDesc
workOrderIssuanceRes
.
OrderState
=
workOrderIssuance
.
OrderState
workOrderIssuanceRes
.
CreateUser
=
workOrderIssuance
.
CreateUser
workOrderIssuanceRes
.
CreateTime
=
workOrderIssuance
.
CreateTime
workOrderIssuanceRes
.
CompleteTime
=
workOrderIssuance
.
CompleteTime
return
}
// FeedbackWorkOrderMe 处置反馈
func
(
w
*
WorkOrderManageSvc
)
FeedbackWorkOrderMe
(
req
request
.
FeedbackWorkOrderReq
)
(
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
session
:=
db
.
NewSession
()
defer
session
.
Close
()
session
.
Begin
()
completeTime
:=
time
.
Now
()
//修改 个人业务工单表 数据
_
,
err
=
session
.
Table
(
"work_order_me"
)
.
Where
(
"id = ?"
,
req
.
Id
)
.
Cols
(
"order_state,result_feedback,complete_time"
)
.
Update
(
&
entity
.
WorkOrderMe
{
OrderState
:
2
,
ResultFeedback
:
req
.
ResultFeedback
,
CompleteTime
:
completeTime
,
})
if
err
!=
nil
{
err
=
resp
.
DbInsertError
.
WithError
(
err
)
session
.
Rollback
()
return
}
//查询此工单是否已完成
has
,
err
:=
session
.
Table
(
"work_order_me"
)
.
Where
(
"order_state = 1 AND order_issuance_id = ?"
,
req
.
OrderIssuanceId
)
.
Exist
()
if
!
has
{
//修改 下发工单 数据
_
,
err
=
session
.
Table
(
"work_order_issuance"
)
.
Where
(
"id = ?"
,
req
.
OrderIssuanceId
)
.
Cols
(
"order_state,complete_time"
)
.
Update
(
&
entity
.
WorkOrderIssuance
{
OrderState
:
2
,
CompleteTime
:
completeTime
,
})
if
err
!=
nil
{
err
=
resp
.
DbInsertError
.
WithError
(
err
)
session
.
Rollback
()
return
}
}
if
err
!=
nil
{
err
=
resp
.
DbSelectError
.
WithError
(
err
)
session
.
Rollback
()
return
}
session
.
Commit
()
return
}
// ListWorkOrderMe 我的业务工单列表
func
(
w
*
WorkOrderManageSvc
)
ListWorkOrderMe
(
req
request
.
ListWorkOrderReq
)
(
total
int64
,
workOrderMeListRes
[]
response
.
WorkOrderMeListRes
,
err
error
)
{
db
,
err
:=
client
.
GetDbClient
()
if
err
!=
nil
{
err
=
resp
.
DbConnectError
.
WithError
(
err
)
return
}
finder
:=
db
.
Table
(
"work_order_me"
)
.
Alias
(
"wome"
)
.
Join
(
"INNER"
,
"work_order_issuance woi"
,
"wome.order_issuance_id = woi.id"
)
.
Join
(
"INNER"
,
"work_order_manage wom"
,
"woi.order_id = wom.id"
)
if
req
.
Search
!=
""
{
finder
.
Where
(
fmt
.
Sprintf
(
"wom.order_name LIKE %s"
,
"%"
+
req
.
Search
+
"%"
))
}
if
req
.
OrderLevel
!=
0
{
finder
.
Where
(
"wom.order_level = ?"
,
req
.
OrderLevel
)
}
if
req
.
OrderState
!=
0
{
finder
.
Where
(
"wome.order_state = ?"
,
req
.
OrderState
)
}
if
req
.
CreateDateFrom
!=
""
{
finder
.
Where
(
"woi.create_time >= ?"
,
req
.
CreateDateFrom
)
}
if
req
.
CreateDateTo
!=
""
{
finder
.
Where
(
"woi.create_time <= ?"
,
req
.
CreateDateTo
)
}
if
req
.
CompleteTimeFrom
!=
""
{
finder
.
Where
(
"wome.complete_time <= ?"
,
req
.
CompleteTimeFrom
)
}
if
req
.
CompleteTimeTo
!=
""
{
finder
.
Where
(
"wome.complete_time <= ?"
,
req
.
CompleteTimeTo
)
}
finder
.
OrderBy
(
"woi.create_time"
)
//查询任务
total
,
err
=
finder
.
Select
(
"wome.
\"
id
\"
,wome.order_id,wome.order_issuance_id,wom.order_name,wom.order_level,"
+
"wome.order_state,woi.push_obj,woi.create_user,woi.create_time,wome.complete_time"
)
.
Limit
(
req
.
PageSize
,
(
req
.
Page
-
1
)
*
req
.
PageSize
)
.
FindAndCount
(
&
workOrderMeListRes
)
if
err
!=
nil
{
err
=
resp
.
DbSelectError
.
WithError
(
err
)
return
}
for
k
,
v
:=
range
workOrderMeListRes
{
var
pushObj
request
.
PushObj
err
=
json
.
Unmarshal
([]
byte
(
v
.
PushObj
),
&
pushObj
)
if
err
!=
nil
{
err
=
resp
.
FAIL
.
WithError
(
err
)
return
}
workOrderMeListRes
[
k
]
.
PushObj
=
pushObj
.
UserObj
[
0
]
.
UserName
for
i
:=
1
;
i
<
len
(
pushObj
.
UserObj
);
i
++
{
workOrderMeListRes
[
k
]
.
PushObj
=
workOrderMeListRes
[
k
]
.
PushObj
+
"、"
+
pushObj
.
UserObj
[
i
]
.
UserName
}
}
return
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment