- 新增联系人保存与删除逻辑处理 - 新增工厂信息保存逻辑,支持银行、财务等详细信息 - 部门与员工模块接口参数调整,统一使用实体对象返回 - 优化部门与员工的增删改查操作,去除冗余代码 - 统一使用 constant 包管理业务类型常量 - 增加性别转换与整型数组转字符串工具函数 - RPC 注册新增工厂与联系人服务路由 - 调整客户端调用参数结构,增强代码可读性与维护性
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"reflect"
|
"reflect"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -336,3 +337,21 @@ func InsertSorted[T any](array []T, value T, comp func(int) bool) []T {
|
|||||||
array[i] = value // 插入值
|
array[i] = value // 插入值
|
||||||
return array
|
return array
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetGender @TITLE 获取性别
|
||||||
|
func GetGender(sex string) string {
|
||||||
|
if InArray(sex, []string{"男", "M"}) {
|
||||||
|
return "SEX01_SYS"
|
||||||
|
} else if InArray(sex, []string{"女", "F"}) {
|
||||||
|
return "SEX02_SYS"
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func IntArrayToString(args []int64) string {
|
||||||
|
var result []string
|
||||||
|
for _, item := range args {
|
||||||
|
result = append(result, strconv.FormatInt(item, 10))
|
||||||
|
}
|
||||||
|
return strings.Join(result, ",")
|
||||||
|
}
|
||||||
|
|||||||
22
app/controller/contact.go
Normal file
22
app/controller/contact.go
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"ik3cloud/app/logic"
|
||||||
|
|
||||||
|
"git.kumo.work/shama/service/ik3cloud"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Contact struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save @TITLE 保存联系人
|
||||||
|
func (f *Contact) Save(ctx context.Context, args ik3cloud.ArgsContactSave, entity *[]ik3cloud.Entity) (err error) {
|
||||||
|
*entity, err = logic.ContactLogic.Save(args.CompanyType, args.Contacts)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete @TITLE 删除联系人
|
||||||
|
func (f *Contact) Delete(ctx context.Context, args ik3cloud.Unique, reply *int) error {
|
||||||
|
return logic.ContactLogic.Delete(args.Numbers, args.Ids)
|
||||||
|
}
|
||||||
@@ -17,8 +17,8 @@ func (d *Department) All(ctx context.Context, args int, reply *[]ik3cloud.Depart
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add @TITLE 添加部门
|
// Add @TITLE 添加部门
|
||||||
func (d *Department) Add(ctx context.Context, args ik3cloud.ArgsDepartmentAdd, departmentId *int64) (err error) {
|
func (d *Department) Add(ctx context.Context, args ik3cloud.ArgsDepartmentAdd, entity *ik3cloud.Entity) (err error) {
|
||||||
*departmentId, err = logic.DepartmentLogic.Add(args)
|
*entity, err = logic.DepartmentLogic.Add(args)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,6 +28,6 @@ func (d *Department) Edit(ctx context.Context, args ik3cloud.ArgsDepartmentEdit,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Delete @TITLE 删除部门
|
// Delete @TITLE 删除部门
|
||||||
func (d *Department) Delete(ctx context.Context, numbers []string, reply *int) error {
|
func (d *Department) Delete(ctx context.Context, args ik3cloud.Unique, reply *int) error {
|
||||||
return logic.DepartmentLogic.Delete(numbers)
|
return logic.DepartmentLogic.Delete(args.Numbers, args.Ids)
|
||||||
}
|
}
|
||||||
|
|||||||
17
app/controller/factory.go
Normal file
17
app/controller/factory.go
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package controller
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"ik3cloud/app/logic"
|
||||||
|
|
||||||
|
"git.kumo.work/shama/service/ik3cloud"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Factory struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save @TITLE 保存工厂
|
||||||
|
func (f *Factory) Save(ctx context.Context, args ik3cloud.ArgsFactorySave, entity *ik3cloud.Entity) (err error) {
|
||||||
|
*entity, err = logic.FactoryLogic.Save(args)
|
||||||
|
return err
|
||||||
|
}
|
||||||
@@ -21,8 +21,8 @@ func (s *Staff) List(ctx context.Context, args ik3cloud.ArgsStaffList, reply *ik
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add @TITLE 添加员工
|
// Add @TITLE 添加员工
|
||||||
func (s *Staff) Add(ctx context.Context, args ik3cloud.ArgsStaffAdd, staffId *int64) (err error) {
|
func (s *Staff) Add(ctx context.Context, args ik3cloud.ArgsStaffAdd, entity *ik3cloud.Entity) (err error) {
|
||||||
*staffId, err = logic.StaffLogic.Add(args)
|
*entity, err = logic.StaffLogic.Add(args)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,16 +32,16 @@ func (s *Staff) Edit(ctx context.Context, args ik3cloud.ArgsStaffEdit, reply *in
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Disable @TITLE 禁用员工
|
// Disable @TITLE 禁用员工
|
||||||
func (s *Staff) Disable(ctx context.Context, numbers []string, reply *int) error {
|
func (s *Staff) Disable(ctx context.Context, args ik3cloud.Unique, reply *int) error {
|
||||||
return logic.StaffLogic.Disable(numbers)
|
return logic.StaffLogic.Disable(args.Numbers, args.Ids)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable @TITLE 启用员工
|
// Enable @TITLE 启用员工
|
||||||
func (s *Staff) Enable(ctx context.Context, numbers []string, reply *int) error {
|
func (s *Staff) Enable(ctx context.Context, args ik3cloud.Unique, reply *int) error {
|
||||||
return logic.StaffLogic.Enable(numbers)
|
return logic.StaffLogic.Enable(args.Numbers, args.Ids)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete @TITLE 删除
|
// Delete @TITLE 删除
|
||||||
func (s *Staff) Delete(ctx context.Context, numbers []string, reply *int) error {
|
func (s *Staff) Delete(ctx context.Context, args ik3cloud.Unique, reply *int) error {
|
||||||
return logic.StaffLogic.Delete(numbers)
|
return logic.StaffLogic.Delete(args.Numbers, args.Ids)
|
||||||
}
|
}
|
||||||
|
|||||||
18
app/lib/ik3cloud/bean/contact.go
Normal file
18
app/lib/ik3cloud/bean/contact.go
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
package bean
|
||||||
|
|
||||||
|
import "ik3cloud/app/lib/ik3cloud"
|
||||||
|
|
||||||
|
type ContactData struct {
|
||||||
|
FCreateOrgId ik3cloud.FNumber `json:"FCreateOrgId"`
|
||||||
|
FCompanyType string `json:"FCompanyType"`
|
||||||
|
FCompany ik3cloud.FNumber `json:"FCompany"`
|
||||||
|
FEmail string `json:"FEmail"`
|
||||||
|
FFax string `json:"FFax"`
|
||||||
|
FIsDefaultContact bool `json:"FIsDefaultContact"`
|
||||||
|
FMobile string `json:"FMobile"`
|
||||||
|
FName string `json:"FName"`
|
||||||
|
FNumber string `json:"FNumber"`
|
||||||
|
FPost string `json:"FPost"`
|
||||||
|
FTel string `json:"FTel"`
|
||||||
|
Fex ik3cloud.FNumber `json:"Fex"`
|
||||||
|
}
|
||||||
@@ -2,10 +2,19 @@ package ik3cloud
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"ik3cloud/app/common"
|
||||||
|
"ik3cloud/app/config"
|
||||||
|
"ik3cloud/app/lib/logger"
|
||||||
|
"log"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"git.kumo.work/shama/service/ik3cloud"
|
||||||
|
"git.kumo.work/shama/service/ik3cloud/constant"
|
||||||
"github.com/deep-project/kingdee"
|
"github.com/deep-project/kingdee"
|
||||||
"github.com/deep-project/kingdee/adapters"
|
"github.com/deep-project/kingdee/adapters"
|
||||||
client2 "github.com/deep-project/kingdee/pkg/client"
|
client2 "github.com/deep-project/kingdee/pkg/client"
|
||||||
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Client = &client{}
|
var Client = &client{}
|
||||||
@@ -14,7 +23,9 @@ type client struct {
|
|||||||
config *Config
|
config *Config
|
||||||
*client2.Client
|
*client2.Client
|
||||||
}
|
}
|
||||||
|
type FNumber struct {
|
||||||
|
FNumber string `json:"FNumber"`
|
||||||
|
}
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Host string // 接口地址
|
Host string // 接口地址
|
||||||
AccountId string // 账套ID
|
AccountId string // 账套ID
|
||||||
@@ -57,16 +68,194 @@ type result struct {
|
|||||||
Message string `json:"Message"`
|
Message string `json:"Message"`
|
||||||
DIndex int `json:"DIndex"`
|
DIndex int `json:"DIndex"`
|
||||||
} `json:"Errors"`
|
} `json:"Errors"`
|
||||||
SuccessEntitys []struct {
|
SuccessEntitys []ik3cloud.Entity `json:"SuccessEntitys"`
|
||||||
Id int `json:"Id"`
|
SuccessMessages []interface{} `json:"SuccessMessages"`
|
||||||
Number string `json:"Number"`
|
MsgCode int `json:"MsgCode"`
|
||||||
DIndex int `json:"DIndex"`
|
|
||||||
} `json:"SuccessEntitys"`
|
|
||||||
SuccessMessages []interface{} `json:"SuccessMessages"`
|
|
||||||
MsgCode int `json:"MsgCode"`
|
|
||||||
} `json:"ResponseStatus"`
|
} `json:"ResponseStatus"`
|
||||||
Id int64 `json:"Id"`
|
Id int64 `json:"Id"`
|
||||||
Number string `json:"Number"`
|
Number string `json:"Number"`
|
||||||
NeedReturnData []any `json:"NeedReturnData"`
|
NeedReturnData []any `json:"NeedReturnData"`
|
||||||
} `json:"Result"`
|
} `json:"Result"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Save @TITLE 保存
|
||||||
|
func (c *client) Save(companyType constant.Action, editFields []string, model map[string]any) (entity ik3cloud.Entity, err error) {
|
||||||
|
raw, err := c.Client.Save(companyType, map[string]any{
|
||||||
|
"NeedUpDateFields": editFields,
|
||||||
|
"Model": model,
|
||||||
|
})
|
||||||
|
marshal, _ := json.Marshal(model)
|
||||||
|
log.Println(string(marshal))
|
||||||
|
log.Println(string(raw))
|
||||||
|
if err != nil {
|
||||||
|
return entity, errors.New("保存失败")
|
||||||
|
}
|
||||||
|
result, _ := c.GetResult(raw)
|
||||||
|
if !result.Result.ResponseStatus.IsSuccess {
|
||||||
|
for _, item := range result.Result.ResponseStatus.Errors {
|
||||||
|
logger.Logger.Error("保存失败", zap.Error(err))
|
||||||
|
return entity, errors.New(item.Message)
|
||||||
|
}
|
||||||
|
return entity, errors.New("保存失败")
|
||||||
|
}
|
||||||
|
entity = result.Result.ResponseStatus.SuccessEntitys[0]
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// MultiSave @TITLE 批量保存
|
||||||
|
func (c *client) MultiSave(companyType constant.Action, editFields []string, model any) (Entities []ik3cloud.Entity, err error) {
|
||||||
|
raw, err := c.Client.BatchSave(companyType, map[string]any{
|
||||||
|
"NeedUpDateFields": editFields,
|
||||||
|
"Model": model,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return Entities, errors.New("保存失败")
|
||||||
|
}
|
||||||
|
result, _ := c.GetResult(raw)
|
||||||
|
if !result.Result.ResponseStatus.IsSuccess {
|
||||||
|
for _, item := range result.Result.ResponseStatus.Errors {
|
||||||
|
logger.Logger.Error("保存失败", zap.Error(err))
|
||||||
|
return Entities, errors.New(item.Message)
|
||||||
|
}
|
||||||
|
return Entities, errors.New("保存失败")
|
||||||
|
}
|
||||||
|
Entities = result.Result.ResponseStatus.SuccessEntitys
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Submit @Title 提交
|
||||||
|
func (c *client) Submit(companyType constant.Action, numbers []string, ids []int64) error {
|
||||||
|
raw, err := c.Client.Submit(companyType, map[string]any{
|
||||||
|
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
||||||
|
"Numbers": strings.Join(numbers, ","),
|
||||||
|
"Ids": common.IntArrayToString(ids),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("提交失败")
|
||||||
|
}
|
||||||
|
result, err := c.GetResult(raw)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !result.Result.ResponseStatus.IsSuccess {
|
||||||
|
for _, item := range result.Result.ResponseStatus.Errors {
|
||||||
|
logger.Logger.Error("提交失败", zap.Error(err))
|
||||||
|
return errors.New(item.Message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Audit @Title 审核
|
||||||
|
func (c *client) Audit(companyType constant.Action, numbers []string, ids []int64) error {
|
||||||
|
raw, err := c.Client.Audit(companyType, map[string]any{
|
||||||
|
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
||||||
|
"Numbers": strings.Join(numbers, ","),
|
||||||
|
"Ids": common.IntArrayToString(ids),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("审核失败")
|
||||||
|
}
|
||||||
|
result, err := c.GetResult(raw)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !result.Result.ResponseStatus.IsSuccess {
|
||||||
|
for _, item := range result.Result.ResponseStatus.Errors {
|
||||||
|
logger.Logger.Error("提交失败", zap.Error(err))
|
||||||
|
return errors.New(item.Message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnAudit @Title 反审
|
||||||
|
func (c *client) UnAudit(companyType constant.Action, numbers []string, ids []int64) error {
|
||||||
|
raw, err := c.Client.UnAudit(companyType, map[string]any{
|
||||||
|
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
||||||
|
"Numbers": strings.Join(numbers, ","),
|
||||||
|
"Ids": common.IntArrayToString(ids),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("反审失败")
|
||||||
|
}
|
||||||
|
result, err := c.GetResult(raw)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !result.Result.ResponseStatus.IsSuccess {
|
||||||
|
for _, item := range result.Result.ResponseStatus.Errors {
|
||||||
|
logger.Logger.Error("提交失败", zap.Error(err))
|
||||||
|
return errors.New(item.Message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete @TITLE 删除
|
||||||
|
func (c *client) Delete(companyType constant.Action, numbers []string, ids []int64) error {
|
||||||
|
if err := c.UnAudit(companyType, numbers, ids); err != nil {
|
||||||
|
logger.Logger.Error("删除失败", zap.Error(err))
|
||||||
|
}
|
||||||
|
raw, err := c.Client.Delete(companyType, map[string]any{
|
||||||
|
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
||||||
|
"Numbers": strings.Join(numbers, ","),
|
||||||
|
"Ids": common.IntArrayToString(ids),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("删除失败")
|
||||||
|
}
|
||||||
|
result, err := c.GetResult(raw)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !result.Result.ResponseStatus.IsSuccess {
|
||||||
|
for _, item := range result.Result.ResponseStatus.Errors {
|
||||||
|
logger.Logger.Error("提交失败", zap.Error(err))
|
||||||
|
return errors.New(item.Message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enable @TITLE 启用
|
||||||
|
func (c *client) Enable(companyType constant.Action, numbers []string, ids []int64) error {
|
||||||
|
raw, err := c.Client.ExecuteOperation(companyType, "Enable", map[string]any{
|
||||||
|
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
||||||
|
"Numbers": strings.Join(numbers, ","),
|
||||||
|
"Ids": common.IntArrayToString(ids),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("启用失败")
|
||||||
|
}
|
||||||
|
result, _ := c.GetResult(raw)
|
||||||
|
if !result.Result.ResponseStatus.IsSuccess {
|
||||||
|
for _, item := range result.Result.ResponseStatus.Errors {
|
||||||
|
logger.Logger.Error("提交失败", zap.Error(err))
|
||||||
|
return errors.New(item.Message)
|
||||||
|
}
|
||||||
|
return errors.New("启用失败")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Disable @TITLE 禁用账户
|
||||||
|
func (c *client) Disable(companyType constant.Action, numbers []string, ids []int64) error {
|
||||||
|
raw, err := c.Client.ExecuteOperation(companyType, "Forbid", map[string]any{
|
||||||
|
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
||||||
|
"Numbers": strings.Join(numbers, ","),
|
||||||
|
"Ids": common.IntArrayToString(ids),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("禁用失败")
|
||||||
|
}
|
||||||
|
result, _ := c.GetResult(raw)
|
||||||
|
if !result.Result.ResponseStatus.IsSuccess {
|
||||||
|
for _, item := range result.Result.ResponseStatus.Errors {
|
||||||
|
logger.Logger.Error("提交失败", zap.Error(err))
|
||||||
|
return errors.New(item.Message)
|
||||||
|
}
|
||||||
|
return errors.New("禁用失败")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
55
app/logic/contact.go
Normal file
55
app/logic/contact.go
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
package logic
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ik3cloud/app/common"
|
||||||
|
"ik3cloud/app/config"
|
||||||
|
"ik3cloud/app/lib/ik3cloud"
|
||||||
|
|
||||||
|
ik3cloud2 "git.kumo.work/shama/service/ik3cloud"
|
||||||
|
"git.kumo.work/shama/service/ik3cloud/constant"
|
||||||
|
)
|
||||||
|
|
||||||
|
var ContactLogic = &contactLogic{}
|
||||||
|
|
||||||
|
type contactLogic struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save @TITLE 保存联系人
|
||||||
|
func (c *contactLogic) Save(companyType constant.Action, datas []ik3cloud2.ContactItem) (entities []ik3cloud2.Entity, err error) {
|
||||||
|
var model []map[string]any
|
||||||
|
for _, data := range datas {
|
||||||
|
fex := ""
|
||||||
|
if common.InArray(data.Sex, []string{"男", "M"}) {
|
||||||
|
fex = "SEX01_SYS"
|
||||||
|
} else if common.InArray(data.Sex, []string{"女", "F"}) {
|
||||||
|
fex = "SEX02_SYS"
|
||||||
|
}
|
||||||
|
model = append(model, map[string]any{
|
||||||
|
"FCONTACTID": data.ContactId,
|
||||||
|
"FCreateOrgId": map[string]any{
|
||||||
|
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
||||||
|
},
|
||||||
|
"FNumber": data.Number,
|
||||||
|
"FName": data.Name,
|
||||||
|
"Fex": map[string]any{
|
||||||
|
"FNumber": fex,
|
||||||
|
}, // 性别
|
||||||
|
"FPost": data.Job, // 职务
|
||||||
|
"FCompanyType": companyType,
|
||||||
|
"FCompany": map[string]any{
|
||||||
|
"FNumber": data.CompanyNumber,
|
||||||
|
},
|
||||||
|
"FTel": data.Tel,
|
||||||
|
"FMobile": data.Phone,
|
||||||
|
"FFax": data.Fax,
|
||||||
|
"FEmail": data.Email,
|
||||||
|
"FIsDefaultContact": data.IsDefault,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return ik3cloud.Client.MultiSave(constant.ActionContact, nil, model)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete @TITLE 删除联系人
|
||||||
|
func (c *contactLogic) Delete(numbers []string, ids []int64) error {
|
||||||
|
return ik3cloud.Client.Delete(constant.ActionContact, numbers, ids)
|
||||||
|
}
|
||||||
@@ -6,12 +6,10 @@ import (
|
|||||||
"ik3cloud/app/common"
|
"ik3cloud/app/common"
|
||||||
"ik3cloud/app/config"
|
"ik3cloud/app/config"
|
||||||
"ik3cloud/app/lib/ik3cloud"
|
"ik3cloud/app/lib/ik3cloud"
|
||||||
"ik3cloud/app/lib/logger"
|
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
ik3cloud2 "git.kumo.work/shama/service/ik3cloud"
|
ik3cloud2 "git.kumo.work/shama/service/ik3cloud"
|
||||||
"go.uber.org/zap"
|
"git.kumo.work/shama/service/ik3cloud/constant"
|
||||||
)
|
)
|
||||||
|
|
||||||
var DepartmentLogic = &departmentLogic{}
|
var DepartmentLogic = &departmentLogic{}
|
||||||
@@ -29,7 +27,7 @@ type departmentItem struct {
|
|||||||
// All @TITLE 全部部门
|
// All @TITLE 全部部门
|
||||||
func (d *departmentLogic) All() (result []ik3cloud2.DepartmentItem, err error) {
|
func (d *departmentLogic) All() (result []ik3cloud2.DepartmentItem, err error) {
|
||||||
raw, err := ik3cloud.Client.BillQuery(map[string]any{
|
raw, err := ik3cloud.Client.BillQuery(map[string]any{
|
||||||
"FormId": "BD_Department",
|
"FormId": constant.ActionDepartment,
|
||||||
"FieldKeys": "FNumber,FName,FParentID.FNumber,FParentID.FName,FDEPTID",
|
"FieldKeys": "FNumber,FName,FParentID.FNumber,FParentID.FName,FDEPTID",
|
||||||
"FilterString": []map[string]any{{
|
"FilterString": []map[string]any{{
|
||||||
"FieldName": "FUseOrgId.FNumber",
|
"FieldName": "FUseOrgId.FNumber",
|
||||||
@@ -60,53 +58,27 @@ func (d *departmentLogic) All() (result []ik3cloud2.DepartmentItem, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add @TITLE 添加部门
|
// Add @TITLE 添加部门
|
||||||
func (d *departmentLogic) Add(data ik3cloud2.ArgsDepartmentAdd) (departmentId int64, err error) {
|
func (d *departmentLogic) Add(data ik3cloud2.ArgsDepartmentAdd) (entity ik3cloud2.Entity, err error) {
|
||||||
raw, err := ik3cloud.Client.Save("BD_Department", map[string]any{
|
return ik3cloud.Client.Save(constant.ActionDepartment, nil, map[string]any{
|
||||||
"Model": map[string]any{
|
"FCreateOrgId": map[string]any{
|
||||||
"FCreateOrgId": map[string]any{
|
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
||||||
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
|
||||||
},
|
|
||||||
"FNumber": data.Number,
|
|
||||||
"FName": data.Name,
|
|
||||||
"FUseOrgId": map[string]any{
|
|
||||||
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
|
||||||
},
|
|
||||||
"FEffectDate": time.Now().Format("2006-01-02 15:04:05"),
|
|
||||||
"FLapseDate": "9999-12-31 00:00:00",
|
|
||||||
"FGroup": map[string]any{
|
|
||||||
"FNumber": data.GroupNumber,
|
|
||||||
},
|
|
||||||
"FParentID": map[string]any{
|
|
||||||
"FNumber": data.ParentNumber,
|
|
||||||
},
|
|
||||||
"FIsCopyFlush": false,
|
|
||||||
"FIsDetailDpt": false,
|
|
||||||
},
|
},
|
||||||
|
"FNumber": data.Number,
|
||||||
|
"FName": data.Name,
|
||||||
|
"FUseOrgId": map[string]any{
|
||||||
|
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
||||||
|
},
|
||||||
|
"FEffectDate": time.Now().Format("2006-01-02 15:04:05"),
|
||||||
|
"FLapseDate": "9999-12-31 00:00:00",
|
||||||
|
"FGroup": map[string]any{
|
||||||
|
"FNumber": data.GroupNumber,
|
||||||
|
},
|
||||||
|
"FParentID": map[string]any{
|
||||||
|
"FNumber": data.ParentNumber,
|
||||||
|
},
|
||||||
|
"FIsCopyFlush": false,
|
||||||
|
"FIsDetailDpt": false,
|
||||||
})
|
})
|
||||||
if err != nil {
|
|
||||||
err = errors.New("添加部门失败")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
err = errors.New("添加部门失败")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return departmentId, errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
departmentId = result.Result.Id
|
|
||||||
if err1 := d.submit([]string{data.Number}); err1 != nil {
|
|
||||||
logger.Logger.Error("部门提交失败", zap.Error(err1))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err1 := d.audit([]string{data.Number}); err1 != nil {
|
|
||||||
logger.Logger.Error("部门审核失败", zap.Error(err1))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit @TITLE 编辑部门
|
// Edit @TITLE 编辑部门
|
||||||
@@ -114,52 +86,22 @@ func (d *departmentLogic) Edit(departmentId int64, data ik3cloud2.ArgsDepartment
|
|||||||
if departmentId == 0 {
|
if departmentId == 0 {
|
||||||
return errors.New("部门错误")
|
return errors.New("部门错误")
|
||||||
}
|
}
|
||||||
raw, err := ik3cloud.Client.Save("BD_Department", map[string]any{
|
if _, err := ik3cloud.Client.Save(constant.ActionDepartment, []string{"FName", "FNumber", "FParentID.FNumber"}, map[string]any{
|
||||||
"NeedUpDateFields": []string{"FName", "FNumber", "FParentID.FNumber"},
|
"FDEPTID": departmentId,
|
||||||
"Model": map[string]any{
|
"FNumber": data.Number,
|
||||||
"FDEPTID": departmentId,
|
"FName": data.Name,
|
||||||
"FNumber": data.Number,
|
"FParentID": map[string]any{
|
||||||
"FName": data.Name,
|
"FNumber": data.ParentNumber,
|
||||||
"FParentID": map[string]any{
|
|
||||||
"FNumber": data.ParentNumber,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
})
|
}); err != nil {
|
||||||
if err != nil {
|
return errors.New("部门编辑失败")
|
||||||
return errors.New("编辑部门失败")
|
|
||||||
}
|
|
||||||
result, _ := ik3cloud.Client.GetResult(raw)
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
return errors.New("编辑部门失败")
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete @TITLE 删除部门
|
// Delete @TITLE 删除部门
|
||||||
func (d *departmentLogic) Delete(numbers []string) error {
|
func (d *departmentLogic) Delete(numbers []string, ids []int64) error {
|
||||||
if err := d.unAudit(numbers); err != nil {
|
return ik3cloud.Client.Delete(constant.ActionDepartment, numbers, ids)
|
||||||
logger.Logger.Error("部门反审失败", zap.Error(err))
|
|
||||||
}
|
|
||||||
raw, err := ik3cloud.Client.Delete("BD_Department", map[string]any{
|
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("删除部门失败")
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 获取菜单树
|
// @Title 获取菜单树
|
||||||
@@ -182,66 +124,3 @@ func (d *departmentLogic) getTree(datas []ik3cloud2.DepartmentItem) (result []ik
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 提交
|
|
||||||
func (d *departmentLogic) submit(numbers []string) error {
|
|
||||||
raw, err := ik3cloud.Client.Submit("BD_Department", map[string]any{
|
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("部门提交失败")
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Title 审核
|
|
||||||
func (d *departmentLogic) audit(numbers []string) error {
|
|
||||||
raw, err := ik3cloud.Client.Audit("BD_Department", map[string]any{
|
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("部门审核失败")
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Title 反审
|
|
||||||
func (d *departmentLogic) unAudit(numbers []string) error {
|
|
||||||
raw, err := ik3cloud.Client.UnAudit("BD_Department", map[string]any{
|
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("部门反审失败")
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|||||||
81
app/logic/factory.go
Normal file
81
app/logic/factory.go
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
package logic
|
||||||
|
|
||||||
|
import (
|
||||||
|
"ik3cloud/app/common"
|
||||||
|
"ik3cloud/app/config"
|
||||||
|
"ik3cloud/app/lib/ik3cloud"
|
||||||
|
|
||||||
|
ik3cloud2 "git.kumo.work/shama/service/ik3cloud"
|
||||||
|
"git.kumo.work/shama/service/ik3cloud/constant"
|
||||||
|
)
|
||||||
|
|
||||||
|
var FactoryLogic = &factoryLogic{}
|
||||||
|
|
||||||
|
type factoryLogic struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save @TITLE 保存工厂
|
||||||
|
func (f *factoryLogic) Save(data ik3cloud2.ArgsFactorySave) (entity ik3cloud2.Entity, err error) {
|
||||||
|
var contants []map[string]any
|
||||||
|
for _, contact := range data.Contacts {
|
||||||
|
contants = append(contants, map[string]any{
|
||||||
|
"FContactNumber": contact.ContactNumber,
|
||||||
|
"FContact": contact.Name,
|
||||||
|
"FPost": contact.Job,
|
||||||
|
"FTel": contact.Tel,
|
||||||
|
"FMobile": contact.Phone,
|
||||||
|
"FFax": contact.Fax,
|
||||||
|
"FEmail": contact.Email,
|
||||||
|
"FGender": map[string]any{"FNumber": common.GetGender(contact.Sex)}, // 性别
|
||||||
|
"FContactIsDefault": contact.IsDefault,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return ik3cloud.Client.Save(constant.ActionFactory, nil, map[string]any{
|
||||||
|
"FSupplierId": data.FactoryId,
|
||||||
|
"FCreateOrgId": map[string]any{
|
||||||
|
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
||||||
|
},
|
||||||
|
"FNumber": data.Number,
|
||||||
|
"FName": data.Name,
|
||||||
|
"FUseOrgId": map[string]any{
|
||||||
|
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
||||||
|
},
|
||||||
|
"FShortName": data.ShortName,
|
||||||
|
"FBaseInfo": map[string]any{
|
||||||
|
"FAddress": data.Address,
|
||||||
|
"FZip": data.ZipCode,
|
||||||
|
"FLegalPerson": data.LegalPerson,
|
||||||
|
"FRegisterCode": data.TaxNumber,
|
||||||
|
"FTendPermit": data.TaxNumber,
|
||||||
|
"FSOCIALCRECODE": data.TaxNumber,
|
||||||
|
"FRegisterAddress": data.RegAddress,
|
||||||
|
//"FRegisterFund": 11.0,
|
||||||
|
"FSupplyClassify": "CG",
|
||||||
|
},
|
||||||
|
"FFinanceInfo": map[string]any{
|
||||||
|
"FPayCurrencyId": map[string]any{
|
||||||
|
"FNumber": "PRE001",
|
||||||
|
},
|
||||||
|
"FPayAdvanceAmount": 0,
|
||||||
|
"FTaxType": map[string]any{
|
||||||
|
"FNumber": "SFL02_SYS",
|
||||||
|
},
|
||||||
|
"FInvoiceType": 0,
|
||||||
|
"FTaxRateId": map[string]any{
|
||||||
|
"FNumber": "SL02_SYS",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"FBankInfo": []map[string]any{
|
||||||
|
{
|
||||||
|
"FBankCountry": map[string]any{
|
||||||
|
"FNumber": "China",
|
||||||
|
},
|
||||||
|
"FBankCode": data.BankAccount,
|
||||||
|
"FBankHolder": data.Name,
|
||||||
|
"FOpenBankName": data.Bank,
|
||||||
|
"FBankIsDefault": true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"FSupplierContact": contants,
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -6,14 +6,12 @@ import (
|
|||||||
"ik3cloud/app/common"
|
"ik3cloud/app/common"
|
||||||
"ik3cloud/app/config"
|
"ik3cloud/app/config"
|
||||||
"ik3cloud/app/lib/ik3cloud"
|
"ik3cloud/app/lib/ik3cloud"
|
||||||
"ik3cloud/app/lib/logger"
|
|
||||||
"log"
|
"log"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
ik3cloud2 "git.kumo.work/shama/service/ik3cloud"
|
ik3cloud2 "git.kumo.work/shama/service/ik3cloud"
|
||||||
|
"git.kumo.work/shama/service/ik3cloud/constant"
|
||||||
"git.kumo.work/shama/service/lib/bean"
|
"git.kumo.work/shama/service/lib/bean"
|
||||||
"go.uber.org/zap"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var StaffLogic = &staffLogic{}
|
var StaffLogic = &staffLogic{}
|
||||||
@@ -85,7 +83,7 @@ func (s *staffLogic) List(page bean.Page, search ik3cloud2.StaffSearch) (list []
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
raw, err := ik3cloud.Client.BillQuery(map[string]interface{}{
|
raw, err := ik3cloud.Client.BillQuery(map[string]interface{}{
|
||||||
"FormId": "BD_Empinfo",
|
"FormId": constant.ActionStaff,
|
||||||
"FieldKeys": "FName,FStaffNumber,FBaseProperty,FMobile,FTel,FForbidStatus",
|
"FieldKeys": "FName,FStaffNumber,FBaseProperty,FMobile,FTel,FForbidStatus",
|
||||||
"FilterString": where,
|
"FilterString": where,
|
||||||
"StartRow": page.GetStart(),
|
"StartRow": page.GetStart(),
|
||||||
@@ -118,50 +116,24 @@ func (s *staffLogic) List(page bean.Page, search ik3cloud2.StaffSearch) (list []
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add @TITLE 添加员工
|
// Add @TITLE 添加员工
|
||||||
func (s *staffLogic) Add(data ik3cloud2.ArgsStaffAdd) (staffId int64, err error) {
|
func (s *staffLogic) Add(data ik3cloud2.ArgsStaffAdd) (entity ik3cloud2.Entity, err error) {
|
||||||
raw, err := ik3cloud.Client.Save("BD_Empinfo", map[string]any{
|
return ik3cloud.Client.Save(constant.ActionStaff, nil, map[string]any{
|
||||||
"Model": map[string]any{
|
"FCreateOrgId": map[string]any{
|
||||||
"FCreateOrgId": map[string]any{
|
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
||||||
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
|
||||||
},
|
|
||||||
"FName": data.Name,
|
|
||||||
"FStaffNumber": data.Number,
|
|
||||||
"FUseOrgId": map[string]any{
|
|
||||||
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
|
||||||
},
|
|
||||||
"FMobile": data.Mobile,
|
|
||||||
"FTel": data.Tel,
|
|
||||||
"FEmail": data.Email,
|
|
||||||
"FCreateSaler": false,
|
|
||||||
"FCreateUser": false,
|
|
||||||
"FCreateCashier": false,
|
|
||||||
"FJoinDate": time.Now().Format("2006-01-02 15:04:05"),
|
|
||||||
},
|
},
|
||||||
|
"FName": data.Name,
|
||||||
|
"FStaffNumber": data.Number,
|
||||||
|
"FUseOrgId": map[string]any{
|
||||||
|
"FNumber": config.Config.Ik3cloud.OrganizationNumber,
|
||||||
|
},
|
||||||
|
"FMobile": data.Mobile,
|
||||||
|
"FTel": data.Tel,
|
||||||
|
"FEmail": data.Email,
|
||||||
|
"FCreateSaler": false,
|
||||||
|
"FCreateUser": false,
|
||||||
|
"FCreateCashier": false,
|
||||||
|
"FJoinDate": time.Now().Format("2006-01-02 15:04:05"),
|
||||||
})
|
})
|
||||||
if err != nil {
|
|
||||||
err = errors.New("添加员工失败")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
err = errors.New("添加员工失败")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return staffId, errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
staffId = result.Result.Id
|
|
||||||
if err1 := s.submit([]string{data.Number}); err1 != nil {
|
|
||||||
logger.Logger.Error("员工提交失败", zap.Error(err1))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err1 := s.audit([]string{data.Number}); err1 != nil {
|
|
||||||
logger.Logger.Error("员工审核失败", zap.Error(err1))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Edit @TITLE 员工编辑
|
// Edit @TITLE 员工编辑
|
||||||
@@ -169,151 +141,30 @@ func (s *staffLogic) Edit(staffId int64, data ik3cloud2.ArgsStaffAdd) error {
|
|||||||
if staffId == 0 {
|
if staffId == 0 {
|
||||||
return errors.New("员工错误")
|
return errors.New("员工错误")
|
||||||
}
|
}
|
||||||
raw, err := ik3cloud.Client.Save("BD_Empinfo", map[string]any{
|
if _, err := ik3cloud.Client.Save(constant.ActionStaff, []string{"FStaffNumber", "FName", "FMobile", "FTel", "FEmail"}, map[string]any{
|
||||||
"NeedUpDateFields": []string{"FStaffNumber", "FName", "FMobile", "FTel", "FEmail"},
|
"FID": staffId,
|
||||||
"Model": map[string]any{
|
"FStaffNumber": data.Number,
|
||||||
"FID": staffId,
|
"FName": data.Name,
|
||||||
"FStaffNumber": data.Number,
|
"FMobile": data.Mobile,
|
||||||
"FName": data.Name,
|
"FTel": data.Tel,
|
||||||
"FMobile": data.Mobile,
|
"FEmail": data.Email,
|
||||||
"FTel": data.Tel,
|
}); err != nil {
|
||||||
"FEmail": data.Email,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("编辑员工失败")
|
|
||||||
}
|
|
||||||
result, _ := ik3cloud.Client.GetResult(raw)
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
return errors.New("编辑员工失败")
|
return errors.New("编辑员工失败")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disable @TITLE 禁用账户
|
// Disable @TITLE 禁用账户
|
||||||
func (s *staffLogic) Disable(numbers []string) error {
|
func (s *staffLogic) Disable(numbers []string, ids []int64) error {
|
||||||
raw, err := ik3cloud.Client.ExecuteOperation("BD_Empinfo", "Forbid", map[string]any{
|
return ik3cloud.Client.Disable(constant.ActionStaff, numbers, ids)
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("禁用员工失败")
|
|
||||||
}
|
|
||||||
result, _ := ik3cloud.Client.GetResult(raw)
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
return errors.New("禁用员工失败")
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable @TITLE 启用账户
|
// Enable @TITLE 启用账户
|
||||||
func (s *staffLogic) Enable(numbers []string) error {
|
func (s *staffLogic) Enable(numbers []string, ids []int64) error {
|
||||||
raw, err := ik3cloud.Client.ExecuteOperation("BD_Empinfo", "Enable", map[string]any{
|
return ik3cloud.Client.Enable(constant.ActionStaff, numbers, ids)
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("启用员工失败")
|
|
||||||
}
|
|
||||||
result, _ := ik3cloud.Client.GetResult(raw)
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
return errors.New("启用员工失败")
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete @TITLE 删除
|
// Delete @TITLE 删除
|
||||||
func (s *staffLogic) Delete(numbers []string) error {
|
func (s *staffLogic) Delete(numbers []string, ids []int64) error {
|
||||||
if err := s.unAudit(numbers); err != nil {
|
return ik3cloud.Client.Delete(constant.ActionStaff, numbers, ids)
|
||||||
logger.Logger.Error("部门反审失败", zap.Error(err))
|
|
||||||
}
|
|
||||||
raw, err := ik3cloud.Client.Delete("BD_Empinfo", map[string]any{
|
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("删除员工失败")
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Title 提交
|
|
||||||
func (s *staffLogic) submit(numbers []string) error {
|
|
||||||
raw, err := ik3cloud.Client.Submit("BD_Empinfo", map[string]any{
|
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("员工提交失败")
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Title 审核
|
|
||||||
func (s *staffLogic) audit(numbers []string) error {
|
|
||||||
raw, err := ik3cloud.Client.Audit("BD_Empinfo", map[string]any{
|
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("员工审核失败")
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// @Title 反审
|
|
||||||
func (s *staffLogic) unAudit(numbers []string) error {
|
|
||||||
raw, err := ik3cloud.Client.UnAudit("BD_Empinfo", map[string]any{
|
|
||||||
"CreateOrgId": config.Config.Ik3cloud.OrganizationId,
|
|
||||||
"Numbers": strings.Join(numbers, ","),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("员工反审失败")
|
|
||||||
}
|
|
||||||
result, err := ik3cloud.Client.GetResult(raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !result.Result.ResponseStatus.IsSuccess {
|
|
||||||
for _, item := range result.Result.ResponseStatus.Errors {
|
|
||||||
return errors.New(item.Message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,4 +16,10 @@ func SetRouter(server *server.Server) {
|
|||||||
if err := server.RegisterName("department", &controller.Department{}, ""); err != nil {
|
if err := server.RegisterName("department", &controller.Department{}, ""); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
// 工厂
|
||||||
|
if err := server.RegisterName("factory", &controller.Factory{}, ""); err != nil {
|
||||||
|
}
|
||||||
|
// 联系人
|
||||||
|
if err := server.RegisterName("contact", &controller.Contact{}, ""); err != nil {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"ik3cloud"
|
"ik3cloud"
|
||||||
"ik3cloud/app/config"
|
"ik3cloud/app/config"
|
||||||
"ik3cloud/app/router"
|
"ik3cloud/app/router"
|
||||||
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
@@ -21,12 +22,10 @@ func main() {
|
|||||||
defer fn()
|
defer fn()
|
||||||
}
|
}
|
||||||
|
|
||||||
//query.SetDefault(mysql.Db)
|
|
||||||
|
|
||||||
s := server.NewServer()
|
s := server.NewServer()
|
||||||
|
|
||||||
// 注册中心
|
// 注册中心
|
||||||
ik3cloud.AddRegistryPlugin(s)
|
//ik3cloud.AddRegistryPlugin(s)
|
||||||
|
|
||||||
// 设置路由
|
// 设置路由
|
||||||
router.SetRouter(s)
|
router.SetRouter(s)
|
||||||
@@ -64,7 +63,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
*((*time.Time)(ptr)) = location
|
*((*time.Time)(ptr)) = location
|
||||||
})
|
})
|
||||||
|
log.Println(config.Config.Server.Port)
|
||||||
if err := s.Serve("tcp", fmt.Sprintf(":%d", config.Config.Server.Port)); err != nil {
|
if err := s.Serve("tcp", fmt.Sprintf(":%d", config.Config.Server.Port)); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user