diff --git a/app/api/user.go b/app/api/user.go index 0d7f1b9..a9a4b4c 100644 --- a/app/api/user.go +++ b/app/api/user.go @@ -135,7 +135,7 @@ func (*User) Select(c *gin.Context) { * "link": "", * "component": "", * "icon": "", -* "parent_id": "0", +* "parent_id": "", * "checked": true, * "checked": [], * } @@ -476,7 +476,7 @@ func (*User) Frozen(c *gin.Context) { * { * "id": "EgmJ4Ga7LQ", * "name": "分管领导", - * "parent_id": "0", + * "parent_id": "", * "checked": true, * "children": [ * { diff --git a/app/api/work.go b/app/api/work.go index aa70867..b9fe16f 100644 --- a/app/api/work.go +++ b/app/api/work.go @@ -200,15 +200,16 @@ func (*Work) Instance(c *gin.Context) { */ func (*Work) Person(c *gin.Context) { form := &struct { - MaterialID uint64 `json:"material_id" form:"material_id"` - Kind int `json:"kind" form:"kind"` + EquipmentCode string `json:"equipment_code" form:"equipment_code"` + EquipmentTitle string `json:"equipment_title" form:"equipment_title"` + Kind int `json:"kind" form:"kind"` PageForm }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } - data, err := work.NewInstance()(getSession()(c).(*service.Session)).Person(form.MaterialID, form.Kind, form.Page, form.PageSize) + data, err := work.NewInstance()(getSession()(c).(*service.Session)).Person(form.EquipmentCode, form.EquipmentTitle, form.Kind, form.Page, form.PageSize) APIResponse(err, data)(c) } @@ -263,15 +264,16 @@ func (*Work) Person(c *gin.Context) { */ func (*Work) Workbench(c *gin.Context) { form := &struct { - MaterialID uint64 `json:"material_id" form:"material_id"` - Kind int `json:"kind" form:"kind"` + EquipmentCode string `json:"equipment_code" form:"equipment_code"` + EquipmentTitle string `json:"equipment_title" form:"equipment_title"` + Kind int `json:"kind" form:"kind"` PageForm }{} if err := bind(form)(c); err != nil { APIFailure(err.(error))(c) return } - data, err := work.NewInstance()(getSession()(c).(*service.Session)).Workbench(form.MaterialID, form.Kind, form.Page, form.PageSize) + data, err := work.NewInstance()(getSession()(c).(*service.Session)).Workbench(form.EquipmentCode, form.EquipmentTitle, form.Kind, form.Page, form.PageSize) APIResponse(err, data)(c) } diff --git a/app/common/model/work_progress.go b/app/common/model/work_progress.go index 95c900b..9b9470e 100644 --- a/app/common/model/work_progress.go +++ b/app/common/model/work_progress.go @@ -6,7 +6,7 @@ type WorkProgress struct { UID uint64 `gorm:"column:uid;type:int;default:0;comment:用户uuid" json:"-"` WorkID uint64 `gorm:"column:work_id;type:int(11);default:0;comment:工单ID" json:"-"` ScheduleID uint64 `gorm:"column:schedule_id;type:int(11);default:0;comment:工单流程ID" json:"-"` - Status WorkProgressStatus `gorm:"column:status;type:tinyint(1);default:1;comment:状态" json:"-"` + Status WorkProgressStatus `gorm:"column:status;type:tinyint(1);default:0;comment:状态" json:"-"` Remark string `gorm:"column:remark;type:varchar(255);default:null;comment:备注信息" json:"remark"` ModelDeleted ModelAt @@ -18,8 +18,10 @@ type WorkProgressStatus int const ( // WorkProgressStatusForRefuse 拒绝 WorkProgressStatusForRefuse WorkProgressStatus = iota - 1 + // WorkProgressStatusForCreate 新建 + WorkProgressStatusForCreate // WorkProgressStatusForAgree 同意 - WorkProgressStatusForAgree WorkProgressStatus = iota + WorkProgressStatusForAgree ) func (m *WorkProgress) TableName() string { diff --git a/app/common/model/work_purchase.go b/app/common/model/work_purchase.go new file mode 100644 index 0000000..22c5bf8 --- /dev/null +++ b/app/common/model/work_purchase.go @@ -0,0 +1,18 @@ +package model + +// WorkPurchase 工单采购数据模型 +type WorkPurchase struct { + Model + WorkID uint64 `gorm:"column:work_id;type:int(11);default:0;comment:工单ID" json:"-"` + MaterialPurchaseID uint64 `gorm:"column:material_purchase_id;type:int(11);default:0;comment:器材采购ID" json:"-"` + ModelDeleted + ModelAt +} + +func (m *WorkPurchase) TableName() string { + return "work_purchase" +} + +func NewWorkPurchase() *WorkPurchase { + return &WorkPurchase{} +} diff --git a/app/controller/manage/equipment.go b/app/controller/manage/equipment.go index f865b12..ba9f852 100644 --- a/app/controller/manage/equipment.go +++ b/app/controller/manage/equipment.go @@ -64,15 +64,11 @@ func (c *Equipment) tree(iModel model2.IModel, src []*model2.ManageEquipment, pa for _, v := range src { if v.ParentID == parentID { - parentID := "" + iModel.SetID(v.ParentID) - if v.ParentID > 0 { - iModel.SetID(v.ParentID) - parentID = iModel.GetEncodeID() - } out = append(out, &EquipmentInfo{ CommonIDString: basic.CommonIDString{ID: v.GetEncodeID()}, - ParentID: parentID, + ParentID: iModel.GetEncodeID(), Code: v.Code, Title: v.Title, Image: v.Analysis(config.SettingInfo.Domain), diff --git a/app/controller/menu/instance.go b/app/controller/menu/instance.go index c73790c..8b8e112 100644 --- a/app/controller/menu/instance.go +++ b/app/controller/menu/instance.go @@ -44,15 +44,11 @@ func (c *Instance) tree(iModel model2.IModel, src []*model2.SysMenu, parentID ui for _, v := range src { if v.ParentID == parentID { - parentID := "0" + iModel.SetID(v.ParentID) - if v.ParentID > 0 { - iModel.SetID(v.ParentID) - parentID = iModel.GetEncodeID() - } out = append(out, &InstanceInfo{ ID: v.GetEncodeID(), - ParentID: parentID, + ParentID: iModel.GetEncodeID(), SysMenu: v, Children: c.tree(iModel, src, v.ID), }) @@ -70,16 +66,11 @@ func TreeIdentity(iModel model2.IModel, src []*model.SysMenuScene, parentID uint iModel.SetID(v.ID) id := iModel.GetEncodeID() - _parentID := "0" - - if v.ParentID > 0 { - iModel.SetID(v.ParentID) - _parentID = iModel.GetEncodeID() - } + iModel.SetID(v.ParentID) out = append(out, &InstanceIdentityInfo{ ID: id, SysMenuBasic: v.SysMenuBasic, - ParentID: _parentID, + ParentID: iModel.GetEncodeID(), Checked: v.SceneID > 0, Children: TreeIdentity(iModel, src, v.ID), }) diff --git a/app/controller/user/role.go b/app/controller/user/role.go index 6f4f936..e5182a0 100644 --- a/app/controller/user/role.go +++ b/app/controller/user/role.go @@ -31,7 +31,7 @@ func (c *Role) tree(iModel model2.IModel, src []*model.SysRoleUserInfo, parentID iModel.SetID(v.ID) id := iModel.GetEncodeID() - _parentID := "0" + _parentID := "" if v.ParentID > 0 { iModel.SetID(v.ID) diff --git a/app/controller/work/instance.go b/app/controller/work/instance.go index 4c4c8d3..69fd9a0 100644 --- a/app/controller/work/instance.go +++ b/app/controller/work/instance.go @@ -30,7 +30,7 @@ type ( *model.WorkInstanceInfo Outside struct { SupplierName string `json:"supplier_name"` - } `json:"outside" form:"outside"` + } `json:"outside"` Within struct { Material []*model.WorkMaterialInfo `json:"material"` Purchase []*model.WorkPurchaseInfo `json:"purchase"` @@ -218,13 +218,16 @@ func (c *Instance) List(equipmentCode, equipmentTitle string, kind, page, pageSi } // Person 个人提交的审核信息 -func (c *Instance) Person(materialID uint64, kind, page, pageSize int) (*basic.PageDataResponse, error) { +func (c *Instance) Person(equipmentCode, equipmentTitle string, kind, page, pageSize int) (*basic.PageDataResponse, error) { mWorkInstance := model.NewWorkInstance() where := make([]*model2.ModelWhere, 0) - if materialID > 0 { - where = append(where, model2.NewWhere("w.material_id", materialID)) + if equipmentCode != "" { + where = append(where, model2.NewWhereLike("e.code", equipmentCode)) + } + if equipmentTitle != "" { + where = append(where, model2.NewWhereLike("e.title", equipmentTitle)) } if kind > 0 { where = append(where, model2.NewWhere("w.kind", kind)) @@ -249,7 +252,7 @@ func (c *Instance) Person(materialID uint64, kind, page, pageSize int) (*basic.P } // Workbench 工作台 -func (c *Instance) Workbench(materialID uint64, kind, page, pageSize int) (*basic.PageDataResponse, error) { +func (c *Instance) Workbench(equipmentCode, equipmentTitle string, kind, page, pageSize int) (*basic.PageDataResponse, error) { // 查询用户角色信息 mSysUserRole := model.NewSysUserRole() roleIDs := make([]string, 0) @@ -263,8 +266,11 @@ func (c *Instance) Workbench(materialID uint64, kind, page, pageSize int) (*basi where := make([]*model2.ModelWhere, 0) - if materialID > 0 { - where = append(where, model2.NewWhere("w.material_id", materialID)) + if equipmentCode != "" { + where = append(where, model2.NewWhereLike("e.code", equipmentCode)) + } + if equipmentTitle != "" { + where = append(where, model2.NewWhereLike("e.title", equipmentTitle)) } if kind > 0 { where = append(where, model2.NewWhere("w.kind", kind)) @@ -303,7 +309,7 @@ func (c *Instance) Detail(id uint64) (*InstanceDetailInfo, error) { } mWorkInstance.SetID(out.WorkInstanceInfo.ID) out.CommonIDString = basic.CommonIDString{ - ID: mWorkInstance.GetEncodeTenantID(), + ID: mWorkInstance.GetEncodeID(), } // 位置信息 mWorkInstance.Distribution = out.WorkInstanceInfo.Distribution @@ -332,6 +338,7 @@ func (c *Instance) Detail(id uint64) (*InstanceDetailInfo, error) { SupplierName string `json:"supplier_name"` }{SupplierName: out.WorkInstanceInfo.SupplierName} } + // 工单历史信息 if out.History, err = model.NewWorkProgress().Progress(id); err != nil { return nil, err } @@ -368,9 +375,6 @@ func (c *Instance) Launch(params *InstanceLaunchParams) error { }) mWorkInstance.Remark = params.Remark - // 工单流程信息 - mWorkProgress := model.NewWorkProgress() - if mWorkInstance.Kind == model2.WorkInstanceKindForOutside { if params.Supplier.SupplierID <= 0 { return errors.New("操作错误,承修单位不存在") @@ -391,6 +395,9 @@ func (c *Instance) Launch(params *InstanceLaunchParams) error { } mWorkInstance.Schedule = mWorkSchedule.ID mWorkInstance.Status = model2.WorkInstanceStatusForComplete + // 工单流程信息 + mWorkProgress := model.NewWorkProgress() + mWorkProgress.ScheduleID = mWorkInstance.Schedule // 下一流程 nextWorkSchedule := new(model.WorkScheduleInfo) @@ -402,19 +409,19 @@ func (c *Instance) Launch(params *InstanceLaunchParams) error { mWorkInstance.Schedule = nextWorkSchedule.ID } return orm.GetDB().Transaction(func(tx *gorm.DB) error { + // 工单信息 if err = model2.Create(mWorkInstance.WorkInstance, tx); err != nil { return err } + // 工单历史 mWorkProgress.UID = c.UID mWorkProgress.WorkID = mWorkInstance.ID - mWorkProgress.ScheduleID = mWorkInstance.Schedule - mWorkProgress.Status = model2.WorkProgressStatusForAgree - mWorkProgress.Remark = "发起工单" + mWorkProgress.Status = model2.WorkProgressStatusForCreate + mWorkProgress.Remark = "" if err = model2.Create(mWorkProgress.WorkProgress, tx); err != nil { return err } - // 内修模块信息 if mWorkInstance.Kind == model2.WorkInstanceKindForWithin && params.IsAssist <= 0 { // 物料信息 diff --git a/app/model/work_instance.go b/app/model/work_instance.go index f7e2d45..ce7d5c1 100644 --- a/app/model/work_instance.go +++ b/app/model/work_instance.go @@ -26,6 +26,8 @@ type ( SupplierName string `json:"-"` Priority int `json:"priority"` Distribution string `json:"distribution"` + PlateNumber string `json:"plate_number"` + Remark string `json:"remark"` Status int `json:"status"` Username string `json:"username"` CreatedAt time.Time `json:"created_at"` @@ -56,7 +58,7 @@ func (m *WorkInstance) Detail(id uint64) (*WorkInstanceInfo, error) { db := orm.GetDB().Table(m.TableName()+" AS w"). Select("w.id", "w.kind", "w.title", "e.code AS equipment_code", "e.title AS equipment_title", "w.priority", "(SELECT GROUP_CONCAT(s_b.title) FROM ( SELECT id, title FROM sys_breakdown) AS s_b WHERE FIND_IN_SET( s_b.id, w.breakdown )) AS breakdown_title", - "s.title AS schedule_title", "supplier.name AS supplier_name", "w.distribution", "w.status", "w.created_at"). + "s.title AS schedule_title", "supplier.name AS supplier_name", "w.distribution", "w.plate_number", "w.remark", "w.status", "w.created_at"). Joins(fmt.Sprintf("LEFT JOIN %s AS e ON w.equipment_id = e.id", model.NewManageEquipment().TableName())). Joins(fmt.Sprintf("LEFT JOIN %s AS s ON w.schedule = s.id", model.NewWorkSchedule().TableName())). Joins(fmt.Sprintf("LEFT JOIN %s AS supplier ON w.supplier_id = supplier.id", model.NewManageSupplier().TableName())).