Browse Source

修改抄送发送范围

v2
herenshan112 6 months ago
parent
commit
841a79c2d4
  1. 17
      api/shiyan/maptostruct/shiyan.go
  2. 6
      api/shiyan/maptostruct/type.go
  3. 7
      api/version1/customerform/formTableList.go
  4. 8
      api/version1/entry.go
  5. 25
      api/version1/publicapi/api.go
  6. 65
      api/version1/systemrole_empower.go
  7. 2
      api/version1/taskplatform/taskflowing/appTaskFlow.go
  8. 2
      api/version1/taskplatform/taskflowing/editformflow.go
  9. 20
      api/version1/taskplatform/taskflowing/flowType.go
  10. 2
      api/version1/taskplatform/taskflowing/flowengine.go
  11. 2
      api/version1/taskplatform/taskflowing/judgmentFlow.go
  12. 2
      api/version1/taskplatform/taskflowing/runflow.go
  13. 2
      api/version1/taskplatform/taskflowing/taskFlow.go
  14. 2
      api/version1/taskplatform/taskflowing/types.go
  15. 2
      api/version1/taskplatform/taskflowing/workFlowRun.go
  16. 2
      api/version1/taskplatform/taskflowing/workflow.go
  17. 147
      api/version1/taskplatform/taskmanagement/ruanTask.go
  18. 14
      api/version1/user/userCont.go
  19. 2
      api/version1/workFlowRun/common.go
  20. 2
      api/version1/workFlowRun/flow.go
  21. 2
      api/version1/workFlowRun/flowNode.go
  22. 2
      api/version1/workFlowRun/flowType.go
  23. 2
      api/version1/workFlowRun/type.go
  24. 9
      go.sum
  25. 2
      initialization/nosql/redis.go
  26. 6
      overall/publicmethod/getUserPower.go

17
api/shiyan/maptostruct/shiyan.go

@ -2,7 +2,6 @@ package maptostruct
import (
"appPlatform/api/version1/customerform"
"appPlatform/api/version1/taskplatform/taskflow"
"appPlatform/api/version1/workWechat"
"appPlatform/models/modelAppPlatform"
"appPlatform/models/modelshr"
@ -530,23 +529,23 @@ func (a *ApiMethod) CreateFlowChart(c *gin.Context) {
publicmethod.Result(106, err, c)
return
}
var flowVersionCont taskflow.FlowMainBody
err = json.Unmarshal([]byte(flowInfo.Content), &flowVersionCont)
if err != nil {
publicmethod.Result(104, err, c)
return
}
// var flowVersionCont taskflow.FlowMainBody
// err = json.Unmarshal([]byte(flowInfo.Content), &flowVersionCont)
// if err != nil {
// publicmethod.Result(104, err, c)
// return
// }
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context)
// workFlowInfo := flowVersionCont.GenerateFlow(userCont, 349)
workFlowInfo := flowVersionCont.NodeConfig.CircularParsing(1, userCont, 349, requestData.ConditionList, requestData.NodelPeople)
// workFlowInfo := flowVersionCont.NodeConfig.CircularParsing(1, userCont, 349, requestData.ConditionList, requestData.NodelPeople)
sendData := publicmethod.MapOut[string]()
// sendData["context"] = context
// sendData["userCont"] = userCont
// sendData["flowInfo"] = flowInfo
// sendData["flowVersionCont"] = flowVersionCont
sendData["workFlowInfo"] = workFlowInfo
// sendData["workFlowInfo"] = workFlowInfo
publicmethod.Result(0, sendData, c)
}

6
api/shiyan/maptostruct/type.go

@ -1,7 +1,7 @@
package maptostruct
import (
"appPlatform/api/version1/taskplatform/taskflow"
"appPlatform/api/version1/taskplatform/taskflowing"
"appPlatform/models/modelsstorage"
"appPlatform/overall/publicmethod"
"sync"
@ -117,8 +117,8 @@ type JiaMi struct {
// 生成表单参数
type CreatFlowView struct {
publicmethod.PublicId
ConditionList []taskflow.ConditionListInfo `json:"conditionList"` //判断条件主体
NodelPeople []taskflow.NodelPeopleInfo `json:"nodelPeople"` //节点操作人
ConditionList []taskflowing.ConditionListInfo `json:"conditionList"` //判断条件主体
NodelPeople []taskflowing.NodelPeopleInfo `json:"nodelPeople"` //节点操作人
}
type PersonalityTestIn struct {

7
api/version1/customerform/formTableList.go

@ -55,7 +55,7 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
//获取表单数据
var formInfo modelAppPlatform.CustomerFormView
err = formInfo.GetCont(map[string]interface{}{"`cfid`": requestData.FormId, "`status`": 1}, "`tablekey`", "`table_structure`", "`mastesform`", "`mastesformjson`", "`listjson`", "`flowIsOpen`", "`flowkey`", "`groupid`", "`id`")
err = formInfo.GetCont(map[string]interface{}{"`cfid`": requestData.FormId, "`status`": 1}, "`tablekey`", "`table_structure`", "`mastesform`", "`mastesformjson`", "`listjson`", "`flowIsOpen`", "`flowkey`", "`groupid`", "`cfid`")
if err != nil {
publicmethod.Result(1, err, c, "未知表单!无法获取字段!")
return
@ -96,7 +96,7 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
powerSearch.OrgId = userCont.AdminOrg //行政组织
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.Id //归属哪个表格
powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource)
//Step 4 获取一共有多少条数据
var total int64
@ -177,7 +177,7 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
powerSearch.OrgId = userCont.AdminOrg //行政组织
powerSearch.PostId = userCont.Position //岗位
powerSearch.AppKey = formInfo.Groupid //归属哪个App
powerSearch.TableId = formInfo.Id //归属哪个表格
powerSearch.TableId = formInfo.CfId //归属哪个表格
gormDb = powerSearch.MakeSearchSql(gormDb, userCont, formJsonCont.Form.DataSource)
//Step 3 获取一共有多少条数据
var total int64
@ -188,6 +188,7 @@ func (a *ApiMethod) GainFormPageListContNew(c *gin.Context) {
//Step 4 翻页配置
gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize)
err = gormDb.Order("f.`id` DESC").Find(&formList).Error
fmt.Printf("err----%v------->%v\n\n\n", formJsonCont.Form.DataSource, err)
if err != nil && len(formList) < 1 {
publicmethod.Result(0, err, c)
return

8
api/version1/entry.go

@ -12,11 +12,11 @@ import (
"appPlatform/api/version1/newsclass"
"appPlatform/api/version1/publicapi"
matsformula "appPlatform/api/version1/taskplatform/matsFormula"
"appPlatform/api/version1/taskplatform/taskflow"
"appPlatform/api/version1/taskplatform/taskflowing"
"appPlatform/api/version1/taskplatform/taskmanagement"
"appPlatform/api/version1/user"
webstocetmsg "appPlatform/api/version1/webStocetmsg"
workflow "appPlatform/api/version1/workFlow"
workflowRun "appPlatform/api/version1/workFlowRun"
"appPlatform/api/version1/workWechat"
)
@ -29,7 +29,7 @@ type ApiEntry struct {
PublicApi publicapi.ApiMethod //公共方法
CustomerFormApi customerform.ApiMethod //自定表单
TaskManagementApi taskmanagement.ApiMethod
TaskFlowApi taskflow.ApiMethod
TaskFlowApi taskflowing.ApiMethod
NewsClassApi newsclass.ApiMethod //新闻类
RedisManagApi redisController.ApiMethod
MathsApi matsformula.ApiMethod
@ -37,7 +37,7 @@ type ApiEntry struct {
DataCenterApi datacenter.ApiMethod //数据中台
CustomerAppApi customerApp.ApiMethod //自定App
WebSocketApi webstocetmsg.ApiMethod //webSocket通讯相关
WorkFlowApi workflow.ApiMethod //工作流相关
WorkFlowApi workflowRun.ApiMethod //工作流相关
}
var AppApiEntry = new(ApiEntry)

25
api/version1/publicapi/api.go

@ -1,7 +1,6 @@
package publicapi
import (
"appPlatform/api/version1/taskplatform/taskflow"
"appPlatform/middleware/grocerystore"
"appPlatform/models/modelshr"
"appPlatform/models/modelsschool"
@ -237,19 +236,19 @@ func StringToPinYin(types int, title, connector, formJson string) string {
var formCont map[string]interface{}
json.Unmarshal([]byte(formJson), &formCont)
// taskflow.RecursionFormUnit
var formUnit taskflow.RecursionFormUnit
if list, ok := formCont["list"]; ok {
if listAry, ok := list.([]interface{}); ok {
formUnit.AllUnitNodes("", listAry)
}
}
if len(formUnit.UnitAllKey) > 0 {
// var formUnit taskflow.RecursionFormUnit
// if list, ok := formCont["list"]; ok {
// if listAry, ok := list.([]interface{}); ok {
// formUnit.AllUnitNodes("", listAry)
// }
// }
// if len(formUnit.UnitAllKey) > 0 {
var oneName OnleyOneName
oneName.NameAry = formUnit.UnitAllKey
oneName.OneName(str)
str = oneName.Name
}
// var oneName OnleyOneName
// oneName.NameAry = formUnit.UnitAllKey
// oneName.OneName(str)
// str = oneName.Name
// }
}
if len(str) > 25 {
str = StringToPinYin(4, title, connector, formJson)

65
api/version1/systemrole_empower.go

@ -0,0 +1,65 @@
package version1
import (
"appPlatform/overall"
"strings"
)
// 角色权限视图
type SystemroleEmpower struct {
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"`
RoleId int64 `json:"roleid" gorm:"column:role_id;type:bigint(20) unsigned;default:0;not null;comment:行政组织"`
System string `json:"system" gorm:"column:system;type:varchar(255) ;comment:系统"`
PointId string `json:"pointid" gorm:"column:point_id;type:longtext;comment:权限点位"`
Operation string `json:"operation" gorm:"column:operation;type:longtext;comment:操作点位"`
State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"`
Level int `json:"level" gorm:"column:level;type:int(1) unsigned;default:1;not null;comment:授权范围等级(1:本部门;2:本分部;3:所有)"`
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:创建时间"`
Name string `json:"name" gorm:"column:name;type:varchar(255) ;comment:系统名称"`
Sort int `json:"sort" gorm:"column:sort;type:int(5) unsigned;default:50;not null;comment:排序"`
}
func (SystemroleEmpower *SystemroleEmpower) TableName() string {
return "systemrole_empower"
}
// 编辑内容
func (cont *SystemroleEmpower) EiteCont(whereMap interface{}, saveData interface{}) (err error) {
err = overall.CONSTANT_DB_System_Permission.Model(&cont).Where(whereMap).Updates(saveData).Error
return
}
// 获取内容
func (cont *SystemroleEmpower) GetCont(whereMap interface{}, field ...string) (err error) {
gormDb := overall.CONSTANT_DB_System_Permission.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
gormDb = gormDb.Where(whereMap)
err = gormDb.First(&cont).Error
return
}
// 根据条件获取总数
func (cont *SystemroleEmpower) CountCont(whereMap interface{}) (countId int64) {
overall.CONSTANT_DB_System_Permission.Model(&cont).Where(whereMap).Count(&countId)
return
}
// 读取全部信息
func (cont *SystemroleEmpower) ContMap(whereMap interface{}, field ...string) (countAry []SystemroleEmpower, err error) {
gormDb := overall.CONSTANT_DB_System_Permission.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
err = gormDb.Where(whereMap).Find(&countAry).Error
return
}
// 删除内容
func (cont *SystemroleEmpower) DelCont(whereMap interface{}) (err error) {
err = overall.CONSTANT_DB_System_Permission.Where(whereMap).Delete(&cont).Error
return
}

2
api/version1/taskplatform/taskflow/appTaskFlow.go → api/version1/taskplatform/taskflowing/appTaskFlow.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/api/version1/customerform"

2
api/version1/taskplatform/taskflow/editformflow.go → api/version1/taskplatform/taskflowing/editformflow.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/api/version1/customerform"

20
api/version1/taskplatform/taskflow/flowType.go → api/version1/taskplatform/taskflowing/flowType.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import "appPlatform/overall/publicmethod"
@ -68,18 +68,18 @@ type NodePublicInfo struct {
//矩阵信息
type MatrixInfo struct {
MatrixId int64 `json:"matrixid"`
FactorId int64 `json:"factorid"`
OutcomeId int64 `json:"outcomeid"`
MatrixName string `json:"matrixName"`
FactorName string `json:"factorName"`
OutcomeName string `json:"outcomeName"`
List []MatrListInfo `json:"list"`
MatrixId int64 `json:"matrixid"` //矩阵ID
FactorId int64 `json:"factorid"` //行政组织
OutcomeId int64 `json:"outcomeid"` //人力资源
MatrixName string `json:"matrixName"` //矩阵名称
FactorName string `json:"factorName"` //行政组织名称
OutcomeName string `json:"outcomeName"` //人力资源
List []MatrListInfo `json:"list"` //选项列表
}
type MatrListInfo struct {
OutcomeId int64 `json:"outcomeid"`
OutcomeName string `json:"outcomeName"`
OutcomeId int64 `json:"outcomeid"` //人力资源ID
OutcomeName string `json:"outcomeName"` //人力资源名称
}
//节点执行人

2
api/version1/taskplatform/taskflow/flowengine.go → api/version1/taskplatform/taskflowing/flowengine.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/models/modelAppPlatform"

2
api/version1/taskplatform/taskflow/judgmentFlow.go → api/version1/taskplatform/taskflowing/judgmentFlow.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/models/modelshr"

2
api/version1/taskplatform/taskflow/runflow.go → api/version1/taskplatform/taskflowing/runflow.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/models/modelAppPlatform"

2
api/version1/taskplatform/taskflow/taskFlow.go → api/version1/taskplatform/taskflowing/taskFlow.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/api/version1/workWechat"

2
api/version1/taskplatform/taskflow/types.go → api/version1/taskplatform/taskflowing/types.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/api/version1/customerform"

2
api/version1/taskplatform/taskflow/workFlowRun.go → api/version1/taskplatform/taskflowing/workFlowRun.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/models/flowlog"

2
api/version1/taskplatform/taskflow/workflow.go → api/version1/taskplatform/taskflowing/workflow.go

@ -1,4 +1,4 @@
package taskflow
package taskflowing
import (
"appPlatform/api/version1/customerform"

147
api/version1/taskplatform/taskmanagement/ruanTask.go

@ -1577,6 +1577,9 @@ func ReformFlow(step int, nodeList []RunFlow) (nodeKey string, nextStep int, nod
#
*/
func (n *NodePublicInfo) CircularParsing(step int, creater modelshr.ManCont, orgId int64, condition []ConditionListInfo, nodelPeople []NodelPeopleInfo) (nodeList []RunFlow) {
fmt.Printf("\n\n\n节点处理---->%v\n\n\n", n)
var nodeInfo RunFlow
nodeInfo.Step = step
@ -1673,6 +1676,7 @@ func (n *NodePublicInfo) CircularParsing(step int, creater modelshr.ManCont, org
nodeInfo.Operator = GainMatrixUserList(orgId, n.Matrix)
}
case 10: //指定部门负责人
fmt.Printf("指定部门负责人-->\n\n\n%v\n\n\n", n.OrgList)
if len(n.OrgList) > 0 {
nodeInfo.Operator = GainOrgManager(n.OrgList)
}
@ -1689,10 +1693,83 @@ func (n *NodePublicInfo) CircularParsing(step int, creater modelshr.ManCont, org
nodeInfo.RunType = 4
nodeInfo.RunScope = n.CcSelfSelectFlag
nodeInfo.Operator = OperatorHandle(n.NodeUserList)
switch n.Settype {
case 2: //主管
var levelUserList ContinuousMultiLevelSupervisor
levelUserList.MaxLevel = n.DirectorLevel
levelUserList.Continuity = false
if n.Attribute == 1 {
//申请人
nodeInfo.Operator = append(nodeInfo.Operator, levelUserList.ObtainRelevantLevelLeaders(creater.AdminOrg)...)
} else {
//执行部门
nodeInfo.Operator = append(nodeInfo.Operator, levelUserList.ObtainRelevantLevelLeaders(orgId)...)
}
case 3: //行政岗位
if n.Attribute == 1 {
nodeInfo.Operator = append(nodeInfo.Operator, GainOrgPostUserList(creater.AdminOrg, n.NodeUserList)...)
} else {
nodeInfo.Operator = append(nodeInfo.Operator, GainOrgPostUserList(orgId, n.NodeUserList)...)
}
case 5: //发起人自己
var myCont modelshr.ManCont
myCont.GetCont(map[string]interface{}{"`id`": creater.Id}, "`key`", "`name`", "`number`", "`icon`", "`icon_photo`", "`wechat`", "`work_wechat`", "`admin_org`", "`position`", "`teamid`", "`mobilephone`,`company`")
nodeInfo.Operator = append(nodeInfo.Operator, TransformPublicUs(myCont))
case 6: //连续多级主管
var levelUserList ContinuousMultiLevelSupervisor
levelUserList.MaxLevel = n.ExamineEndDirectorLevel
levelUserList.Continuity = true
if n.Attribute == 1 {
//申请人
nodeInfo.Operator = append(nodeInfo.Operator, levelUserList.ObtainRelevantLevelLeaders(creater.AdminOrg)...)
} else {
//执行部门
nodeInfo.Operator = append(nodeInfo.Operator, levelUserList.ObtainRelevantLevelLeaders(orgId)...)
}
case 8: //表单字段
reg1 := regexp.MustCompile(`\(([^)]+)\)`) //解析()内的数据
var userNumber []string //工号切片
for _, v := range n.NodeUserList { //判断本节点需要什么样的表格字段
for _, e := range nodelPeople { //循环找出提交得表格字段
if v.Id == e.FactorId { //判断提交得字段是否为当前节点操作字段
userAry := reg1.FindAllStringSubmatch(e.UserList, -1) //按照正则规则提取数据
for _, u := range userAry {
vLen := len(u)
if vLen > 0 {
if !publicmethod.IsInTrue[string](u[vLen-1], userNumber) {
userNumber = append(userNumber, u[vLen-1]) //将工号写入数组
}
}
}
}
}
}
fmt.Printf("获取到的人员-->\n\n\n%v\n\n\n", userNumber)
if len(userNumber) > 0 {
nodeInfo.Operator = append(nodeInfo.Operator, GainUserCode(userNumber)...)
}
case 9: //权限矩阵
fmt.Printf("权限矩阵-->\n\n\n%v\n\n\n", n.Matrix)
if n.Attribute == 1 {
nodeInfo.Operator = append(nodeInfo.Operator, GainMatrixUserList(creater.AdminOrg, n.Matrix)...)
} else {
nodeInfo.Operator = append(nodeInfo.Operator, GainMatrixUserList(orgId, n.Matrix)...)
}
case 10: //指定部门负责人
fmt.Printf("指定部门负责人-->\n\n\n%v\n\n\n", n.OrgList)
if len(n.OrgList) > 0 {
nodeInfo.Operator = append(nodeInfo.Operator, GainOrgManager(n.OrgList)...)
}
default:
}
nodeList = append(nodeList, nodeInfo)
if n.ChildNode != nil {
nodeList = append(nodeList, n.ChildNode.CircularParsing(step+1, creater, orgId, condition, nodelPeople)...)
}
case 4:
case 5:
if len(n.ConditionNodes) > 0 { //判断条件,当节点是路由时有效
@ -2012,6 +2089,8 @@ func GainOneLevel(level int, UserList []MultiLeveUserList) (UserAry []OperatorLi
#
*/
func (c *ContinuousMultiLevelSupervisor) ObtainRelevantLevelLeadersUser(level int, orgId int64) {
if orgId != 0 {
var orgInfo modelshr.AdministrativeOrganization
err := orgInfo.GetCont(map[string]interface{}{"`id`": orgId}, "`superior`")
if err == nil {
@ -2031,6 +2110,7 @@ func (c *ContinuousMultiLevelSupervisor) ObtainRelevantLevelLeadersUser(level in
c.ObtainRelevantLevelLeadersUser(nextLevel, orgInfo.Superior)
}
}
}
}
/*
@ -2350,6 +2430,7 @@ func CondToNodeUser(condition []FlowPermissionInfo) (usAry []NodeUserListInfo) {
@ 参数
#userList 节点处理人
#examineMode 1依次审批2会签3或签
@ 返回值
@ -2360,20 +2441,26 @@ func CondToNodeUser(condition []FlowPermissionInfo) (usAry []NodeUserListInfo) {
#func OperatorHandle(userList []NodeUserListInfo) (userAry []OperatorList)
*/
func OperatorHandle(userList []NodeUserListInfo) (userAry []OperatorList) {
if len(userList) > 0 {
var userIdAry []int64
var oneIdAry []int64
var roleUserIdAry []int64
var orgUserIdAry []int64
for _, v := range userList {
switch v.Types { //1:人员;2:角色;3:行政组织
case 1:
myKey, myErr := strconv.ParseInt(v.TargetId, 10, 64)
if myErr == nil {
userIdAry = append(userIdAry, myKey)
oneIdAry = append(oneIdAry, myKey)
}
case 2: //角色
var usIdList []int64
overall.CONSTANT_DB_HR.Model(&modelshr.PersonArchives{}).Select("`key`").Where("FIND_IN_SET(?,`role`) AND `emp_type` BETWEEN ? AND ?", v.TargetId, 1, 10).Find(&usIdList)
if len(usIdList) > 0 {
userIdAry = append(userIdAry, usIdList...)
roleUserIdAry = append(roleUserIdAry, usIdList...)
}
case 3: //行政组织
myKey, myErr := strconv.ParseInt(v.TargetId, 10, 64)
@ -2385,18 +2472,43 @@ func OperatorHandle(userList []NodeUserListInfo) (userAry []OperatorList) {
overall.CONSTANT_DB_HR.Model(&modelshr.PersonArchives{}).Select("`key`").Where("`admin_org` IN ? AND `emp_type` BETWEEN ? AND ?", sunOrg.Id, 1, 10).Find(&usIdList)
if len(usIdList) > 0 {
userIdAry = append(userIdAry, usIdList...)
orgUserIdAry = append(orgUserIdAry, usIdList...)
}
}
default:
}
}
var userContMap []modelshr.ManCont
overall.CONSTANT_DB_HR.Model(&modelshr.ManCont{}).Select("`key`,`name`,`number`,`icon`,`icon_photo`,`wechat`,`work_wechat`,`admin_org`,`position`,`teamid`,`mobilephone`,`company`").Where("`key` IN ?", userIdAry).Find(&userContMap)
for _, v := range userContMap {
fmt.Printf("\n\n\n员工----------->%v------->%v\n\n\n", oneIdAry, userList)
if len(oneIdAry) > 0 {
var userOneContMap []modelshr.ManCont
overall.CONSTANT_DB_HR.Model(&modelshr.ManCont{}).Select("`key`,`name`,`number`,`icon`,`icon_photo`,`wechat`,`work_wechat`,`admin_org`,`position`,`teamid`,`mobilephone`,`company`").Where("`key` IN ?", oneIdAry).Find(&userOneContMap)
if len(userOneContMap) > 0 {
for _, v := range oneIdAry {
for _, uv := range userOneContMap {
if v == uv.Key {
userAry = append(userAry, TransformPublicUs(uv))
}
}
}
}
}
if len(roleUserIdAry) > 0 {
var userRoleContMap []modelshr.ManCont
overall.CONSTANT_DB_HR.Model(&modelshr.ManCont{}).Select("`key`,`name`,`number`,`icon`,`icon_photo`,`wechat`,`work_wechat`,`admin_org`,`position`,`teamid`,`mobilephone`,`company`").Where("`key` IN ?", roleUserIdAry).Find(&userRoleContMap)
for _, v := range userRoleContMap {
userAry = append(userAry, TransformPublicUs(v))
}
}
if len(orgUserIdAry) > 0 {
var userOrgContMap []modelshr.ManCont
overall.CONSTANT_DB_HR.Model(&modelshr.ManCont{}).Select("`key`,`name`,`number`,`icon`,`icon_photo`,`wechat`,`work_wechat`,`admin_org`,`position`,`teamid`,`mobilephone`,`company`").Where("`key` IN ?", orgUserIdAry).Find(&userOrgContMap)
for _, v := range userOrgContMap {
userAry = append(userAry, TransformPublicUs(v))
}
}
fmt.Printf("\n\n\n员工----1------->%v------->%v\n\n\n", oneIdAry, userAry)
}
return
}
@ -2672,12 +2784,31 @@ person_in_charge
#
*/
func GainOrgManager(orgId []int64) (UserList []OperatorList) {
var userInfoAry []modelshr.ManCont
overall.CONSTANT_DB_HR.Model(&modelshr.ManCont{}).Select("`key`,`name`,`number`,`icon`,`icon_photo`,`wechat`,`work_wechat`,`admin_org`,`position`,`teamid`,`mobilephone`,`company`").Where("`admin_org` IN ? AND `person_in_charge` = ? AND `emp_type` BETWEEN ? AND ?", orgId, 1, 1, 10).Find(&userInfoAry)
if len(userInfoAry) > 0 {
for _, uv := range userInfoAry {
UserList = append(UserList, TransformPublicUs(uv))
// fmt.Printf("\n\n\n指定部门负责人!---------->%v\n\n\n", orgId)
var keyList []int64
// var userInfoAry []modelshr.ManCont
// overall.CONSTANT_DB_HR.Model(&modelshr.ManCont{}).Select("`key`,`name`,`number`,`icon`,`icon_photo`,`wechat`,`work_wechat`,`admin_org`,`position`,`teamid`,`mobilephone`,`company`").Where("`admin_org` IN ? AND `person_in_charge` = ? AND `emp_type` BETWEEN ? AND ?", orgId, 1, 1, 10).Find(&userInfoAry)
// if len(userInfoAry) > 0 {
// for _, uv := range userInfoAry {
// if !publicmethod.IsInTrue[int64](uv.Key, keyList) {
// UserList = append(UserList, TransformPublicUs(uv))
// keyList = append(keyList, uv.Key)
// }
// }
// }
for _, v := range orgId {
var userInfoAryes []modelshr.ManCont
overall.CONSTANT_DB_HrInside.Model(&modelshr.ManCont{}).Select("`key`,`name`,`number`,`icon`,`icon_photo`,`wechat`,`work_wechat`,`admin_org`,`position`,`teamid`,`mobilephone`,`company`").Where("FIND_IN_SET(?,`responsible_department`) AND `person_in_charge` = ? AND `emp_type` BETWEEN ? AND ?", v, 1, 1, 10).Find(&userInfoAryes)
if len(userInfoAryes) > 0 {
for _, uvs := range userInfoAryes {
if !publicmethod.IsInTrue[int64](uvs.Key, keyList) {
UserList = append(UserList, TransformPublicUs(uvs))
keyList = append(keyList, uvs.Key)
}
}
}
}
return
}

14
api/version1/user/userCont.go

@ -111,33 +111,33 @@ func GainOrgPostLog(uid int64) (postLog []string) {
for _, v := range workHistory {
var orgList []int64
var orgNameList []string
if !publicmethod.IsInTrue[int64](v.Company, orgList) {
if !publicmethod.IsInTrue[int64](v.Company, orgList) && v.Company != 0 {
orgList = append(orgList, v.Company)
var orgOne modelshr.AdministrativeOrganization
orgOne.GetCont(map[string]interface{}{"`id`": v.Company}, "`name`")
orgNameList = append(orgNameList, orgOne.Name)
}
if !publicmethod.IsInTrue[int64](v.Department, orgList) {
if !publicmethod.IsInTrue[int64](v.Department, orgList) && v.Department != 0 {
orgList = append(orgList, v.Department)
var orgTwo modelshr.AdministrativeOrganization
orgTwo.GetCont(map[string]interface{}{"`id`": v.Department}, "`name`")
orgNameList = append(orgNameList, orgTwo.Name)
}
if !publicmethod.IsInTrue[int64](v.WorkShop, orgList) {
if !publicmethod.IsInTrue[int64](v.WorkShop, orgList) && v.WorkShop != 0 {
orgList = append(orgList, v.WorkShop)
var orgTree modelshr.AdministrativeOrganization
orgTree.GetCont(map[string]interface{}{"`id`": v.WorkShop}, "`name`")
orgNameList = append(orgNameList, orgTree.Name)
}
if !publicmethod.IsInTrue[int64](v.WorkshopSection, orgList) {
if !publicmethod.IsInTrue[int64](v.WorkshopSection, orgList) && v.WorkshopSection != 0 {
orgList = append(orgList, v.WorkshopSection)
var orgTree modelshr.AdministrativeOrganization
orgTree.GetCont(map[string]interface{}{"`id`": v.WorkshopSection}, "`name`")
orgNameList = append(orgNameList, orgTree.Name)
}
fmt.Println(orgNameList)
fmt.Println(orgList)
fmt.Println(v.WorkshopSection)
// fmt.Println(orgNameList)
// fmt.Println(orgList)
// fmt.Println(v.WorkshopSection)
if len(orgNameList) > 0 {
allOrgName := strings.Join(orgNameList, " / ")
if v.Position != 0 {

2
api/version1/workFlow/common.go → api/version1/workFlowRun/common.go

@ -1,4 +1,4 @@
package workflow
package workFlowRun
import (
"appPlatform/api/version1/customerform"

2
api/version1/workFlow/flow.go → api/version1/workFlowRun/flow.go

@ -1,4 +1,4 @@
package workflow
package workFlowRun
import (
"appPlatform/api/version1/taskplatform/taskmanagement"

2
api/version1/workFlow/flowNode.go → api/version1/workFlowRun/flowNode.go

@ -1,4 +1,4 @@
package workflow
package workFlowRun
import "appPlatform/overall/publicmethod"

2
api/version1/workFlow/flowType.go → api/version1/workFlowRun/flowType.go

@ -1,4 +1,4 @@
package workflow
package workFlowRun
import "appPlatform/overall/publicmethod"

2
api/version1/workFlow/type.go → api/version1/workFlowRun/type.go

@ -1,4 +1,4 @@
package workflow
package workFlowRun
import "sync"

9
go.sum

@ -18,7 +18,9 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaC
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
@ -45,6 +47,7 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/flipped-aurora/gin-vue-admin/server v0.0.0-20231212025023-e0a8e9370425 h1:XTvBOk+EFcon1fL8gzFRN2N7jGvc2QGZMqWF+evZT10=
github.com/flipped-aurora/gin-vue-admin/server v0.0.0-20231212025023-e0a8e9370425/go.mod h1:zsseaaJleMl86IDc9evuQx6gJYfdG0kW67+MTVxwTAU=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
@ -54,6 +57,7 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm
github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
@ -90,6 +94,7 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@ -127,7 +132,9 @@ github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
@ -164,6 +171,7 @@ github.com/redis/go-redis/v9 v9.3.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
@ -318,6 +326,7 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

2
initialization/nosql/redis.go

@ -17,5 +17,5 @@ func LoadRedis() {
overall.CONSTANT_REDIS4 = redisConfig.MasterRedis4.OpenRedis()
overall.CONSTANT_REDIS5 = redisConfig.MasterRedis5.OpenRedis()
overall.CONSTANT_Cluster = redisConfig.RedisCluster.OpenRedisClan()
overall.CONSTANT_ClusterClient = redisConfig.RedisCluster.OpenRedisColony()
// overall.CONSTANT_ClusterClient = redisConfig.RedisCluster.OpenRedisColony()
}

6
overall/publicmethod/getUserPower.go

@ -35,7 +35,7 @@ func (g *GainUserPower) GetUserPower() (powerInfo SendUserPower) {
roleAry := strings.Split(g.RoleId, ",")
if len(roleAry) > 0 {
var rolePowerList []modelssystempermission.RoleEmpower
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.RoleEmpower{}).Where("`state` = 1 AND `system` = ? AND `role_id` IN ?", g.SystemName, roleAry).Updates(&rolePowerList)
overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.RoleEmpower{}).Where("`state` = 1 AND `system` = ? AND `role_id` IN ?", g.SystemName, roleAry).Find(&rolePowerList)
for _, v := range rolePowerList {
if v.Level >= powerInfo.System.Level {
powerInfo.System.Level = v.Level
@ -221,7 +221,7 @@ func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont
fmt.Printf("\n\n\n等级-----%v------->%v\n\n\n", powerInfo.AppSystem.Level, g)
if isOdeb == "yes" {
switch powerInfo.AppSystem.Level {
case 2, 3, 4:
case 2, 3, 4, 5:
if len(powerInfo.AppSystem.OrgList) > 0 {
gormDb = gormDb.Where("`createrOrg` IN ?", powerInfo.AppSystem.OrgList)
} else {
@ -234,7 +234,7 @@ func (g *GainUserPower) MakeSearchSql(gormDb *gorm.DB, userCont modelshr.ManCont
}
} else {
switch powerInfo.AppSystem.Level {
case 2, 3, 4:
case 2, 3, 4, 5:
if len(powerInfo.AppSystem.OrgList) > 0 {
gormDb = gormDb.Where("f.`createrOrg` IN ?", powerInfo.AppSystem.OrgList)
} else {

Loading…
Cancel
Save