feat:完善项目

This commit is contained in:
henry
2021-11-04 11:10:51 +08:00
parent 6ef32d16fc
commit 0234324e60
13 changed files with 374 additions and 40 deletions

View File

@ -18,16 +18,23 @@ type (
// EquipmentInfo 装备信息
EquipmentInfo struct {
basic.CommonIDString
Code string `json:"code"`
Title string `json:"title"`
Image string `json:"image"`
CreatedAt time.Time `json:"created_at"`
Code string `json:"code"`
Title string `json:"title"`
Image string `json:"image"`
CreatedAt time.Time `json:"created_at"`
Children []*EquipmentInfo `json:"children"`
}
// EquipmentDetail 装备详细信息
EquipmentDetail struct {
basic.CommonIDString
*model2.ManageEquipment
Image string `json:"image"`
Image string `json:"image"`
Materials []*EquipmentMaterialDetail `json:"materials"`
}
// EquipmentMaterialDetail 装备器材信息
EquipmentMaterialDetail struct {
*model.ManageEquipmentMaterialInfo
ID string `json:"id"`
}
// EquipmentParams 装备参数信息
EquipmentParams struct {
@ -45,8 +52,26 @@ func (c *EquipmentParams) isExist(iModel model2.IModel) (bool, error) {
return count > 0, nil
}
func (c *Equipment) tree(src []*model2.ManageEquipment, parentID uint64) []*EquipmentInfo {
out := make([]*EquipmentInfo, 0)
for _, v := range src {
if v.ParentID == parentID {
out = append(out, &EquipmentInfo{
CommonIDString: basic.CommonIDString{ID: v.GetEncodeID()},
Code: v.Code,
Title: v.Title,
Image: v.Analysis(config.SettingInfo.Domain),
CreatedAt: v.CreatedAt,
Children: c.tree(src, v.ID),
})
}
}
return out
}
// List 列表信息
func (c *Equipment) List(title string, page, pageSize int) (*basic.PageDataResponse, error) {
func (c *Equipment) List(title string, page, pageSize int) ([]*EquipmentInfo, error) {
mManageEquipment := model.NewManageEquipment()
out := make([]*model2.ManageEquipment, 0)
@ -61,23 +86,12 @@ func (c *Equipment) List(title string, page, pageSize int) (*basic.PageDataRespo
Where: model2.NewWhereLike("title", title),
})
}
var count int64
if err := model2.PagesFields(mManageEquipment.ManageEquipment, &out, []string{"id", "code", "title", "image", "created_at"},
page, pageSize, &count, where...); err != nil {
if err := model2.ScanFields(mManageEquipment.ManageEquipment, &out, []string{"id", "code", "title", "image", "created_at"},
where...); err != nil {
return nil, err
}
list := make([]*EquipmentInfo, 0)
for _, v := range out {
list = append(list, &EquipmentInfo{
CommonIDString: basic.CommonIDString{ID: v.GetEncodeID()},
Code: v.Code, Title: v.Title,
Image: v.Image.Analysis(config.SettingInfo.Domain),
CreatedAt: v.CreatedAt,
})
}
return &basic.PageDataResponse{Data: list, Count: count}, nil
return c.tree(out, 0), nil
}
// Detail 详细信息
@ -85,16 +99,35 @@ func (c *Equipment) Detail(id uint64) (*EquipmentDetail, error) {
mManageEquipment := model.NewManageEquipment()
mManageEquipment.ID = id
if isExist, err := model2.FirstWhere(mManageEquipment.ManageEquipment); err != nil {
isExist, err := model2.FirstWhere(mManageEquipment.ManageEquipment)
if err != nil {
return nil, err
} else if !isExist {
return nil, errors.New("")
return nil, errors.New("操作错误,数据不存在")
}
return &EquipmentDetail{
out := &EquipmentDetail{
CommonIDString: basic.CommonIDString{ID: mManageEquipment.GetEncodeID()},
ManageEquipment: mManageEquipment.ManageEquipment,
Image: mManageEquipment.Analysis(config.SettingInfo.Domain),
}, nil
Materials: make([]*EquipmentMaterialDetail, 0),
}
mManageEquipmentMaterial := model.NewManageEquipmentMaterial()
materials := make([]*model.ManageEquipmentMaterialInfo, 0)
if materials, err = mManageEquipmentMaterial.Materials(id); err != nil {
return nil, err
}
for _, v := range materials {
mManageEquipmentMaterial.ID = v.ID
out.Materials = append(out.Materials, &EquipmentMaterialDetail{
ManageEquipmentMaterialInfo: v,
ID: mManageEquipmentMaterial.GetEncodeID(),
})
}
return out, nil
}
// Form 数据处理

View File

@ -0,0 +1,77 @@
package manage
import (
model2 "ArmedPolice/app/common/model"
"ArmedPolice/app/controller/basic"
"ArmedPolice/app/model"
"ArmedPolice/app/service"
"ArmedPolice/lib"
)
type MaterialPurchase struct{ *service.Session }
type MaterialPurchaseHandle func(session *service.Session) *MaterialPurchase
type (
// MaterialPurchaseInfo 采购信息
MaterialPurchaseInfo struct {
basic.CommonIDString
*model.ManageMaterialPurchaseInfo
}
)
func (c *MaterialPurchase) List(orderNo, supplierName, materialTitle string, page, pageSize int) (*basic.PageDataResponse, error) {
mManageMaterialPurchase := model.NewManageMaterialPurchase()
where := make([]*model2.ModelWhere, 0)
if orderNo != "" {
where = append(where, model2.NewWhereLike("p.order_no", orderNo))
}
if supplierName != "" {
where = append(where, model2.NewWhereLike("s.name", supplierName))
}
if materialTitle != "" {
where = append(where, model2.NewWhereLike("m.title", materialTitle))
}
var count int64
out, err := mManageMaterialPurchase.Purchases(page, pageSize, &count, where...)
if err != nil {
return nil, err
}
list := make([]*MaterialPurchaseInfo, 0)
for _, v := range out {
list = append(list, &MaterialPurchaseInfo{
CommonIDString: basic.CommonIDString{ID: v.GetEncodeID()},
ManageMaterialPurchaseInfo: v,
})
}
return &basic.PageDataResponse{Data: list, Count: count}, nil
}
// Launch 采购发起
func (c *MaterialPurchase) Launch(materialSupplierID uint64, price float64, number int, remark string) error {
mManageMaterialPurchase := model.NewManageMaterialPurchase()
mManageMaterialPurchase.UID = c.UID
mManageMaterialPurchase.OrderNo = lib.OrderNo()
mManageMaterialPurchase.MaterialSupplierID = materialSupplierID
mManageMaterialPurchase.Price = price
mManageMaterialPurchase.Number = number
mManageMaterialPurchase.Remark = remark
return model2.Create(mManageMaterialPurchase.ManageMaterialPurchase)
}
func (c *MaterialPurchase) Delete(id uint64) error {
mManageMaterialPurchase := model.NewManageMaterialPurchase()
mManageMaterialPurchase.ID = id
return model2.Delete(mManageMaterialPurchase.ManageMaterialPurchase)
}
func NewMaterialPurchase() MaterialPurchaseHandle {
return func(session *service.Session) *MaterialPurchase {
return &MaterialPurchase{session}
}
}

View File

@ -0,0 +1,66 @@
package manage
import (
model2 "ArmedPolice/app/common/model"
"ArmedPolice/app/controller/basic"
"ArmedPolice/app/model"
"ArmedPolice/app/service"
"ArmedPolice/serve/orm"
"errors"
"gorm.io/gorm"
)
type MaterialWarehouse struct{ *service.Session }
type MaterialWarehouseHandle func(session *service.Session) *MaterialWarehouse
func (c *MaterialWarehouse) List() (*basic.PageDataResponse, error) {
return &basic.PageDataResponse{Data: nil, Count: 0}, nil
}
// Launch 入库发起
func (c *MaterialWarehouse) Launch(materialPurchaseID uint64, number int, remark string) error {
mManageMaterialPurchase := model.NewManageMaterialPurchase()
mManageMaterialPurchase.ID = materialPurchaseID
isExist, err := model2.FirstWhere(mManageMaterialPurchase.ManageMaterialPurchase)
if err != nil {
return err
} else if !isExist {
return errors.New("操作错误,未找到相应的采购单")
}
mManageMaterialWarehouse := model.NewManageMaterialWarehouse()
mManageMaterialWarehouse.UID = c.UID
mManageMaterialWarehouse.MaterialPurchaseID = materialPurchaseID
mManageMaterialWarehouse.Number = number
mManageMaterialWarehouse.Remark = remark
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
if err = model2.Create(mManageMaterialWarehouse.ManageMaterialWarehouse); err != nil {
return err
}
// 同步库存
mManageMaterial := model.NewManageMaterial()
if err = model2.Updates(mManageMaterial.ManageMaterial, map[string]interface{}{
"stock": gorm.Expr("stock + ?", number),
}); err != nil {
return err
}
return nil
})
}
// Delete 删除操作
func (c *MaterialWarehouse) Delete(id uint64) error {
mManageMaterialWarehouse := model.NewManageMaterialWarehouse()
mManageMaterialWarehouse.ID = id
return model2.Delete(mManageMaterialWarehouse.ManageMaterialWarehouse)
}
func NewMaterialWarehouse() MaterialWarehouseHandle {
return func(session *service.Session) *MaterialWarehouse {
return &MaterialWarehouse{session}
}
}

View File

@ -14,6 +14,11 @@ type Supplier struct{ *service.Session }
type SupplierHandle func(session *service.Session) *Supplier
type (
// SupplierBasic 基本 信息
SupplierBasic struct {
ID string `json:"id"`
Name string `json:"name"`
}
// SupplierInfo 基本信息
SupplierInfo struct {
ID string `json:"id"`
@ -72,12 +77,25 @@ func (c *Supplier) List(name, mobile string, kind model2.ManageSupplierKind, pag
return &basic.PageDataResponse{Data: list, Count: count}, nil
}
func (c *Supplier) Manufacturer() {
// Select 筛选信息
func (c *Supplier) Select(kind int) ([]*SupplierBasic, error) {
out := make([]*model2.ManageSupplier, 0)
}
func (c *Supplier) Partner() {
if err := model2.ScanFields(model.NewManageSupplier().ManageSupplier, &out, []string{"id", "name"},
&model2.ModelWhereOrder{
Where: model2.NewWhere("kind", kind),
}); err != nil {
return nil, err
}
list := make([]*SupplierBasic, 0)
for _, v := range out {
list = append(list, &SupplierBasic{
ID: v.GetEncodeID(),
Name: v.Name,
})
}
return list, nil
}
// Form 数据处理